struct SimulationParams_std140_0
{
@align(16) gravity_0 : vec3<f32>,
@align(4) dt_0 : f32,
};
@binding(0) @group(0) var<uniform> entryPointParams_params_0 : SimulationParams_std140_0;
struct GridGeneric_std430_0
{
@align(4) num_active_blocks_0 : u32,
@align(4) cell_width_0 : f32,
@align(4) hmap_capacity_0 : u32,
@align(4) capacity_0 : u32,
};
@binding(1) @group(0) var<storage, read> entryPointParams_grid_0 : array<GridGeneric_std430_0>;
struct BlockVirtualId_std430_0
{
@align(16) id_0 : vec3<i32>,
};
struct BlockHeaderId_std430_0
{
@align(4) id_1 : u32,
};
struct GridHashMapEntryGeneric_std430_0
{
@align(16) state_0 : u32,
@align(16) key_0 : BlockVirtualId_std430_0,
@align(16) value_0 : BlockHeaderId_std430_0,
};
@binding(2) @group(0) var<storage, read> entryPointParams_hmap_entries_0 : array<GridHashMapEntryGeneric_std430_0>;
struct ActiveBlockHeaderGeneric_std430_0
{
@align(16) virtual_id_0 : BlockVirtualId_std430_0,
@align(16) first_particle_0 : u32,
@align(4) num_particles_0 : u32,
};
@binding(3) @group(0) var<storage, read> entryPointParams_active_blocks_0 : array<ActiveBlockHeaderGeneric_std430_0>;
struct NodeCdf_std430_0
{
@align(4) distance_0 : f32,
@align(4) affinities_0 : u32,
@align(4) closest_id_0 : u32,
};
struct Node_std430_0
{
@align(16) momentum_velocity_mass_0 : vec4<f32>,
@align(16) cdf_0 : NodeCdf_std430_0,
};
@binding(4) @group(0) var<storage, read> entryPointParams_nodes_0 : array<Node_std430_0>;
@binding(5) @group(0) var<storage, read> entryPointParams_sorted_particle_ids_0 : array<u32>;
struct Position_std430_0
{
@align(16) pt_0 : vec3<f32>,
};
@binding(6) @group(0) var<storage, read> entryPointParams_particles_pos_0 : array<Position_std430_0>;
struct _MatrixStorage_float3x3std430_0
{
@align(16) data_0 : array<vec3<f32>, i32(3)>,
};
struct Cdf_std430_0
{
@align(16) normal_0 : vec3<f32>,
@align(16) rigid_vel_0 : vec3<f32>,
@align(4) signed_distance_0 : f32,
@align(16) affinity_0 : u32,
};
struct Dynamics_std430_0
{
@align(16) velocity_0 : vec3<f32>,
@align(16) def_grad_0 : _MatrixStorage_float3x3std430_0,
@align(16) affine_0 : _MatrixStorage_float3x3std430_0,
@align(16) cdf_1 : Cdf_std430_0,
@align(16) init_volume_0 : f32,
@align(4) init_radius_0 : f32,
@align(8) mass_0 : f32,
};
@binding(7) @group(0) var<storage, read_write> entryPointParams_particles_dyn_0 : array<Dynamics_std430_0>;
struct BlockVirtualId_0
{
@align(16) id_0 : vec3<i32>,
};
fn BlockVirtualId_x24init_0( i_0 : vec3<i32>) -> BlockVirtualId_0
{
var _S1 : BlockVirtualId_0;
_S1.id_0 = i_0;
return _S1;
}
fn pack_key_0( key_1 : BlockVirtualId_0) -> u32
{
return (((((bitcast<u32>(key_1.id_0.x + i32(1023)) & (u32(2047)))) | (((((bitcast<u32>(key_1.id_0.y + i32(511)) & (u32(1023)))) << (u32(11))))))) | (((((bitcast<u32>(key_1.id_0.z + i32(1023)) & (u32(2047)))) << (u32(21))))));
}
fn hash_0( packed_key_0 : u32) -> u32
{
var key_2 : u32 = packed_key_0 * u32(3432918353);
return ((((key_2 << (u32(15)))) | (((key_2 >> (u32(17))))))) * u32(461845907);
}
struct BlockHeaderId_0
{
@align(4) id_1 : u32,
};
fn BlockHeaderId_x24init_0( i_1 : u32) -> BlockHeaderId_0
{
var _S2 : BlockHeaderId_0;
_S2.id_1 = i_1;
return _S2;
}
fn flatten_shared_index_0( x_0 : u32, y_0 : u32, z_0 : u32) -> u32
{
return x_0 + y_0 * u32(6) + z_0 * u32(6) * u32(6);
}
struct BlockPhysicalId_0
{
id_2 : u32,
};
fn BlockPhysicalId_x24init_0( i_2 : u32) -> BlockPhysicalId_0
{
var _S3 : BlockPhysicalId_0;
_S3.id_2 = i_2;
return _S3;
}
fn block_header_id_to_physical_id_0( hid_0 : BlockHeaderId_0) -> BlockPhysicalId_0
{
return BlockPhysicalId_x24init_0(hid_0.id_1 * u32(64));
}
struct NodePhysicalId_0
{
id_3 : u32,
};
fn NodePhysicalId_x24init_0( i_3 : u32) -> NodePhysicalId_0
{
var _S4 : NodePhysicalId_0;
_S4.id_3 = i_3;
return _S4;
}
fn node_id_0( pid_0 : BlockPhysicalId_0, shift_in_block_0 : vec3<u32>) -> NodePhysicalId_0
{
return NodePhysicalId_x24init_0(pid_0.id_2 + shift_in_block_0.x + shift_in_block_0.y * u32(4) + shift_in_block_0.z * u32(4) * u32(4));
}
struct NodeCdf_0
{
@align(4) distance_0 : f32,
@align(4) affinities_0 : u32,
@align(4) closest_id_0 : u32,
};
var<workgroup> shared_nodes_0 : array<NodeCdf_0, i32(216)>;
fn NodeCdf_x24init_0( distance_1 : f32, affinities_1 : u32, closest_id_1 : u32) -> NodeCdf_0
{
var _S5 : NodeCdf_0;
_S5.distance_0 = distance_1;
_S5.affinities_0 = affinities_1;
_S5.closest_id_0 = closest_id_1;
return _S5;
}
struct Position_0
{
@align(16) pt_0 : vec3<f32>,
};
fn associated_grid_pos_0( part_pos_0 : Position_0, cell_width_1 : f32) -> vec3<f32>
{
var _S6 : vec3<f32> = vec3<f32>(cell_width_1);
return (round(part_pos_0.pt_0 / _S6) - vec3<f32>(1.0f)) * _S6;
}
fn dir_to_associated_grid_node_0( part_pos_1 : Position_0, cell_width_2 : f32) -> vec3<f32>
{
return associated_grid_pos_0(part_pos_1, cell_width_2) - part_pos_1.pt_0;
}
fn QuadraticKernel_eval_all_0( x_1 : f32) -> vec3<f32>
{
var _S7 : f32 = 1.5f - x_1;
var _S8 : f32 = x_1 - 1.0f;
var _S9 : f32 = x_1 - 0.5f;
return vec3<f32>(0.5f * _S7 * _S7, 0.75f - _S8 * _S8, 0.5f * _S9 * _S9);
}
fn QuadraticKernel_precompute_weights_0( ref_elt_pos_minus_particle_pos_0 : vec3<f32>, h_0 : f32) -> mat3x3<f32>
{
return mat3x3<f32>(QuadraticKernel_eval_all_0(- ref_elt_pos_minus_particle_pos_0.x / h_0), QuadraticKernel_eval_all_0(- ref_elt_pos_minus_particle_pos_0.y / h_0), QuadraticKernel_eval_all_0(- ref_elt_pos_minus_particle_pos_0.z / h_0));
}
fn associated_cell_index_in_block_off_by_one_0( part_pos_2 : Position_0, cell_width_3 : f32) -> vec3<u32>
{
var _S10 : vec3<f32> = round(part_pos_2.pt_0 / vec3<f32>(cell_width_3)) - vec3<f32>(1.0f);
var _S11 : vec3<f32> = vec3<f32>(4.0f);
return vec3<u32>(_S10 - floor(_S10 / _S11) * _S11);
}
fn affinity_bit_0( i_collider_0 : u32, affinity_1 : u32) -> bool
{
return ((affinity_1 & (((u32(1) << (i_collider_0)))))) != u32(0);
}
fn sign_bit_0( i_collider_1 : u32, affinity_2 : u32) -> bool
{
return ((((affinity_2 >> (u32(16)))) & (((u32(1) << (i_collider_1)))))) != u32(0);
}
fn shape_has_solid_interior_0( i_collider_2 : u32) -> bool
{
return false;
}
fn outer_product_0( a_0 : vec4<f32>, b_0 : vec4<f32>) -> mat4x4<f32>
{
return mat4x4<f32>(a_0 * vec4<f32>(b_0.x), a_0 * vec4<f32>(b_0.y), a_0 * vec4<f32>(b_0.z), a_0 * vec4<f32>(b_0.w));
}
fn inv_0( m_0 : mat4x4<f32>) -> mat4x4<f32>
{
var _S12 : f32 = m_0[i32(2)][i32(2)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(2)] * m_0[i32(2)][i32(3)];
var _S13 : f32 = m_0[i32(2)][i32(1)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(1)] * m_0[i32(2)][i32(3)];
var _S14 : f32 = m_0[i32(2)][i32(1)] * m_0[i32(3)][i32(2)] - m_0[i32(3)][i32(1)] * m_0[i32(2)][i32(2)];
var _S15 : f32 = m_0[i32(2)][i32(0)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(0)] * m_0[i32(2)][i32(3)];
var _S16 : f32 = m_0[i32(2)][i32(0)] * m_0[i32(3)][i32(2)] - m_0[i32(3)][i32(0)] * m_0[i32(2)][i32(2)];
var _S17 : f32 = m_0[i32(2)][i32(0)] * m_0[i32(3)][i32(1)] - m_0[i32(3)][i32(0)] * m_0[i32(2)][i32(1)];
var _S18 : f32 = m_0[i32(1)][i32(2)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(2)] * m_0[i32(1)][i32(3)];
var _S19 : f32 = m_0[i32(1)][i32(1)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(1)] * m_0[i32(1)][i32(3)];
var _S20 : f32 = m_0[i32(1)][i32(1)] * m_0[i32(3)][i32(2)] - m_0[i32(3)][i32(1)] * m_0[i32(1)][i32(2)];
var _S21 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(3)][i32(3)] - m_0[i32(3)][i32(0)] * m_0[i32(1)][i32(3)];
var _S22 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(3)][i32(2)] - m_0[i32(3)][i32(0)] * m_0[i32(1)][i32(2)];
var _S23 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(3)][i32(1)] - m_0[i32(3)][i32(0)] * m_0[i32(1)][i32(1)];
var _S24 : f32 = m_0[i32(1)][i32(2)] * m_0[i32(2)][i32(3)] - m_0[i32(2)][i32(2)] * m_0[i32(1)][i32(3)];
var _S25 : f32 = m_0[i32(1)][i32(1)] * m_0[i32(2)][i32(3)] - m_0[i32(2)][i32(1)] * m_0[i32(1)][i32(3)];
var _S26 : f32 = m_0[i32(1)][i32(1)] * m_0[i32(2)][i32(2)] - m_0[i32(2)][i32(1)] * m_0[i32(1)][i32(2)];
var _S27 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(2)][i32(3)] - m_0[i32(2)][i32(0)] * m_0[i32(1)][i32(3)];
var _S28 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(2)][i32(2)] - m_0[i32(2)][i32(0)] * m_0[i32(1)][i32(2)];
var _S29 : f32 = m_0[i32(1)][i32(0)] * m_0[i32(2)][i32(1)] - m_0[i32(2)][i32(0)] * m_0[i32(1)][i32(1)];
var adj_0 : mat4x4<f32>;
adj_0[i32(0)][i32(0)] = m_0[i32(1)][i32(1)] * _S12 - m_0[i32(1)][i32(2)] * _S13 + m_0[i32(1)][i32(3)] * _S14;
adj_0[i32(1)][i32(0)] = - (m_0[i32(1)][i32(0)] * _S12 - m_0[i32(1)][i32(2)] * _S15 + m_0[i32(1)][i32(3)] * _S16);
adj_0[i32(2)][i32(0)] = m_0[i32(1)][i32(0)] * _S13 - m_0[i32(1)][i32(1)] * _S15 + m_0[i32(1)][i32(3)] * _S17;
adj_0[i32(3)][i32(0)] = - (m_0[i32(1)][i32(0)] * _S14 - m_0[i32(1)][i32(1)] * _S16 + m_0[i32(1)][i32(2)] * _S17);
adj_0[i32(0)][i32(1)] = - (m_0[i32(0)][i32(1)] * _S12 - m_0[i32(0)][i32(2)] * _S13 + m_0[i32(0)][i32(3)] * _S14);
adj_0[i32(1)][i32(1)] = m_0[i32(0)][i32(0)] * _S12 - m_0[i32(0)][i32(2)] * _S15 + m_0[i32(0)][i32(3)] * _S16;
adj_0[i32(2)][i32(1)] = - (m_0[i32(0)][i32(0)] * _S13 - m_0[i32(0)][i32(1)] * _S15 + m_0[i32(0)][i32(3)] * _S17);
adj_0[i32(3)][i32(1)] = m_0[i32(0)][i32(0)] * _S14 - m_0[i32(0)][i32(1)] * _S16 + m_0[i32(0)][i32(2)] * _S17;
adj_0[i32(0)][i32(2)] = m_0[i32(0)][i32(1)] * _S18 - m_0[i32(0)][i32(2)] * _S19 + m_0[i32(0)][i32(3)] * _S20;
adj_0[i32(1)][i32(2)] = - (m_0[i32(0)][i32(0)] * _S18 - m_0[i32(0)][i32(2)] * _S21 + m_0[i32(0)][i32(3)] * _S22);
adj_0[i32(2)][i32(2)] = m_0[i32(0)][i32(0)] * _S19 - m_0[i32(0)][i32(1)] * _S21 + m_0[i32(0)][i32(3)] * _S23;
adj_0[i32(3)][i32(2)] = - (m_0[i32(0)][i32(0)] * _S20 - m_0[i32(0)][i32(1)] * _S22 + m_0[i32(0)][i32(2)] * _S23);
adj_0[i32(0)][i32(3)] = - (m_0[i32(0)][i32(1)] * _S24 - m_0[i32(0)][i32(2)] * _S25 + m_0[i32(0)][i32(3)] * _S26);
adj_0[i32(1)][i32(3)] = m_0[i32(0)][i32(0)] * _S24 - m_0[i32(0)][i32(2)] * _S27 + m_0[i32(0)][i32(3)] * _S28;
adj_0[i32(2)][i32(3)] = - (m_0[i32(0)][i32(0)] * _S25 - m_0[i32(0)][i32(1)] * _S27 + m_0[i32(0)][i32(3)] * _S29);
adj_0[i32(3)][i32(3)] = m_0[i32(0)][i32(0)] * _S26 - m_0[i32(0)][i32(1)] * _S28 + m_0[i32(0)][i32(2)] * _S29;
var _S30 : mat4x4<f32> = mat4x4<f32>(1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]), 1.0f / (m_0[i32(0)][i32(0)] * adj_0[i32(0)][i32(0)] + m_0[i32(0)][i32(1)] * adj_0[i32(1)][i32(0)] + m_0[i32(0)][i32(2)] * adj_0[i32(2)][i32(0)] + m_0[i32(0)][i32(3)] * adj_0[i32(3)][i32(0)]));
var _S31 : mat4x4<f32> = adj_0;
return mat4x4<f32>(_S31[0] * _S30[0], _S31[1] * _S30[1], _S31[2] * _S30[2], _S31[3] * _S30[3]);
}
struct Cdf_0
{
@align(16) normal_0 : vec3<f32>,
@align(16) rigid_vel_0 : vec3<f32>,
@align(4) signed_distance_0 : f32,
@align(16) affinity_0 : u32,
};
fn Cdf_x24init_0( normal_1 : vec3<f32>, rigid_vel_1 : vec3<f32>, signed_distance_1 : f32, affinity_3 : u32) -> Cdf_0
{
var _S32 : Cdf_0;
_S32.normal_0 = normal_1;
_S32.rigid_vel_0 = rigid_vel_1;
_S32.signed_distance_0 = signed_distance_1;
_S32.affinity_0 = affinity_3;
return _S32;
}
fn Cdf_x24init_1() -> Cdf_0
{
var _S33 : Cdf_0;
var _S34 : vec3<f32> = vec3<f32>(0.0f);
_S33.normal_0 = _S34;
_S33.rigid_vel_0 = _S34;
_S33.signed_distance_0 = 0.0f;
_S33.affinity_0 = u32(0);
return _S33;
}
fn find_block_header_id_0( _S35 : BlockVirtualId_0) -> BlockHeaderId_0
{
var _S36 : u32 = pack_key_0(_S35);
var slot_0 : u32 = ((hash_0(_S36)) & ((entryPointParams_grid_0[i32(0)].hmap_capacity_0 - u32(1))));
for(;;)
{
var _S37 : u32 = entryPointParams_hmap_entries_0[slot_0].state_0;
if((entryPointParams_hmap_entries_0[slot_0].state_0) == _S36)
{
var _S38 : BlockHeaderId_0 = BlockHeaderId_0( entryPointParams_hmap_entries_0[slot_0].value_0.id_1 );
return _S38;
}
else
{
if(_S37 == u32(4294967295))
{
break;
}
}
slot_0 = ((slot_0 + u32(1)) & ((entryPointParams_grid_0[i32(0)].hmap_capacity_0 - u32(1))));
}
return BlockHeaderId_x24init_0(u32(4294967295));
}
fn global_shared_memory_transfers_0( _S39 : vec3<u32>, _S40 : BlockVirtualId_0)
{
var i_4 : u32 = u32(0);
for(;;)
{
if(i_4 <= u32(1))
{
}
else
{
break;
}
var j_0 : u32 = u32(0);
for(;;)
{
if(j_0 <= u32(1))
{
}
else
{
break;
}
var k_0 : u32 = u32(0);
for(;;)
{
if(k_0 <= u32(1))
{
}
else
{
break;
}
var _S41 : bool;
if(i_4 == u32(1))
{
_S41 = (_S39.x) > u32(1);
}
else
{
_S41 = false;
}
var _S42 : bool;
if(_S41)
{
_S42 = true;
}
else
{
if(j_0 == u32(1))
{
_S42 = (_S39.y) > u32(1);
}
else
{
_S42 = false;
}
}
var _S43 : bool;
if(_S42)
{
_S43 = true;
}
else
{
if(k_0 == u32(1))
{
_S43 = (_S39.z) > u32(1);
}
else
{
_S43 = false;
}
}
if(_S43)
{
k_0 = k_0 + u32(1);
continue;
}
var _S44 : vec3<u32> = vec3<u32>(i_4, j_0, k_0);
var _S45 : BlockHeaderId_0 = find_block_header_id_0(BlockVirtualId_x24init_0(_S40.id_0 + vec3<i32>(_S44)));
var _S46 : vec3<u32> = _S44 * vec3<u32>(u32(4)) + _S39;
var _S47 : u32 = flatten_shared_index_0(_S46.x, _S46.y, _S46.z);
if((_S45.id_1) != u32(4294967295))
{
var _S48 : u32 = entryPointParams_nodes_0[node_id_0(block_header_id_to_physical_id_0(_S45), _S39).id_3].cdf_0.affinities_0;
var _S49 : u32 = entryPointParams_nodes_0[node_id_0(block_header_id_to_physical_id_0(_S45), _S39).id_3].cdf_0.closest_id_0;
shared_nodes_0[_S47].distance_0 = entryPointParams_nodes_0[node_id_0(block_header_id_to_physical_id_0(_S45), _S39).id_3].cdf_0.distance_0;
shared_nodes_0[_S47].affinities_0 = _S48;
shared_nodes_0[_S47].closest_id_0 = _S49;
}
else
{
shared_nodes_0[_S47] = NodeCdf_x24init_0(0.0f, u32(0), u32(4294967295));
}
k_0 = k_0 + u32(1);
}
j_0 = j_0 + u32(1);
}
i_4 = i_4 + u32(1);
}
return;
}
fn particle_g2p_0( _S50 : u32, _S51 : f32, _S52 : f32)
{
var affinity_signs_0 : array<f32, i32(16)>;
affinity_signs_0[i32(0)] = 0.0f;
affinity_signs_0[i32(1)] = 0.0f;
affinity_signs_0[i32(2)] = 0.0f;
affinity_signs_0[i32(3)] = 0.0f;
affinity_signs_0[i32(4)] = 0.0f;
affinity_signs_0[i32(5)] = 0.0f;
affinity_signs_0[i32(6)] = 0.0f;
affinity_signs_0[i32(7)] = 0.0f;
affinity_signs_0[i32(8)] = 0.0f;
affinity_signs_0[i32(9)] = 0.0f;
affinity_signs_0[i32(10)] = 0.0f;
affinity_signs_0[i32(11)] = 0.0f;
affinity_signs_0[i32(12)] = 0.0f;
affinity_signs_0[i32(13)] = 0.0f;
affinity_signs_0[i32(14)] = 0.0f;
affinity_signs_0[i32(15)] = 0.0f;
var _S53 : u32 = entryPointParams_particles_dyn_0[_S50].cdf_1.affinity_0;
var _S54 : Position_0 = Position_0( entryPointParams_particles_pos_0[_S50].pt_0 );
var _S55 : vec3<f32> = dir_to_associated_grid_node_0(_S54, _S51);
var _S56 : mat3x3<f32> = QuadraticKernel_precompute_weights_0(_S55, _S51);
var _S57 : vec3<u32> = associated_cell_index_in_block_off_by_one_0(_S54, _S51);
var _S58 : u32 = flatten_shared_index_0(_S57.x, _S57.y, _S57.z);
var _S59 : NodeCdf_0 = shared_nodes_0[_S58 + u32(86)];
var particle_affinity_0 : u32 = (u32(0) | ((((shared_nodes_0[_S58 + u32(86)].affinities_0) & (u32(65535))))));
var _S60 : f32 = _S56[i32(0)][u32(2)] * _S56[i32(1)][u32(2)];
var _S61 : f32 = _S60 * _S56[i32(2)][u32(2)];
var _S62 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(86)].affinities_0));
var _S63 : bool;
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(86)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S62 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S64 : f32 = f32(affinity_bit_0(u32(1), _S59.affinities_0));
if(sign_bit_0(u32(1), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S64 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S65 : f32 = f32(affinity_bit_0(u32(2), _S59.affinities_0));
if(sign_bit_0(u32(2), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S65 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S66 : f32 = f32(affinity_bit_0(u32(3), _S59.affinities_0));
if(sign_bit_0(u32(3), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S66 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S67 : f32 = f32(affinity_bit_0(u32(4), _S59.affinities_0));
if(sign_bit_0(u32(4), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S67 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S68 : f32 = f32(affinity_bit_0(u32(5), _S59.affinities_0));
if(sign_bit_0(u32(5), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S68 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S69 : f32 = f32(affinity_bit_0(u32(6), _S59.affinities_0));
if(sign_bit_0(u32(6), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S69 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S70 : f32 = f32(affinity_bit_0(u32(7), _S59.affinities_0));
if(sign_bit_0(u32(7), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S70 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S71 : f32 = f32(affinity_bit_0(u32(8), _S59.affinities_0));
if(sign_bit_0(u32(8), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S71 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S72 : f32 = f32(affinity_bit_0(u32(9), _S59.affinities_0));
if(sign_bit_0(u32(9), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S72 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S73 : f32 = f32(affinity_bit_0(u32(10), _S59.affinities_0));
if(sign_bit_0(u32(10), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S73 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S74 : f32 = f32(affinity_bit_0(u32(11), _S59.affinities_0));
if(sign_bit_0(u32(11), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S74 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S75 : f32 = f32(affinity_bit_0(u32(12), _S59.affinities_0));
if(sign_bit_0(u32(12), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S75 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S76 : f32 = f32(affinity_bit_0(u32(13), _S59.affinities_0));
if(sign_bit_0(u32(13), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S76 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S77 : f32 = f32(affinity_bit_0(u32(14), _S59.affinities_0));
if(sign_bit_0(u32(14), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S77 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S78 : f32 = f32(affinity_bit_0(u32(15), _S59.affinities_0));
if(sign_bit_0(u32(15), _S59.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S78 * _S61 * select(1.0f, -1.0f, _S63) * _S59.distance_0;
var _S79 : NodeCdf_0 = shared_nodes_0[_S58 + u32(74)];
var particle_affinity_1 : u32 = (particle_affinity_0 | ((((shared_nodes_0[_S58 + u32(74)].affinities_0) & (u32(65535))))));
var _S80 : f32 = _S56[i32(0)][u32(2)] * _S56[i32(1)][u32(0)];
var _S81 : f32 = _S80 * _S56[i32(2)][u32(2)];
var _S82 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(74)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(74)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S82 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S83 : f32 = f32(affinity_bit_0(u32(1), _S79.affinities_0));
if(sign_bit_0(u32(1), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S83 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S84 : f32 = f32(affinity_bit_0(u32(2), _S79.affinities_0));
if(sign_bit_0(u32(2), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S84 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S85 : f32 = f32(affinity_bit_0(u32(3), _S79.affinities_0));
if(sign_bit_0(u32(3), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S85 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S86 : f32 = f32(affinity_bit_0(u32(4), _S79.affinities_0));
if(sign_bit_0(u32(4), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S86 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S87 : f32 = f32(affinity_bit_0(u32(5), _S79.affinities_0));
if(sign_bit_0(u32(5), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S87 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S88 : f32 = f32(affinity_bit_0(u32(6), _S79.affinities_0));
if(sign_bit_0(u32(6), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S88 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S89 : f32 = f32(affinity_bit_0(u32(7), _S79.affinities_0));
if(sign_bit_0(u32(7), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S89 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S90 : f32 = f32(affinity_bit_0(u32(8), _S79.affinities_0));
if(sign_bit_0(u32(8), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S90 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S91 : f32 = f32(affinity_bit_0(u32(9), _S79.affinities_0));
if(sign_bit_0(u32(9), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S91 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S92 : f32 = f32(affinity_bit_0(u32(10), _S79.affinities_0));
if(sign_bit_0(u32(10), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S92 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S93 : f32 = f32(affinity_bit_0(u32(11), _S79.affinities_0));
if(sign_bit_0(u32(11), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S93 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S94 : f32 = f32(affinity_bit_0(u32(12), _S79.affinities_0));
if(sign_bit_0(u32(12), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S94 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S95 : f32 = f32(affinity_bit_0(u32(13), _S79.affinities_0));
if(sign_bit_0(u32(13), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S95 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S96 : f32 = f32(affinity_bit_0(u32(14), _S79.affinities_0));
if(sign_bit_0(u32(14), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S96 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S97 : f32 = f32(affinity_bit_0(u32(15), _S79.affinities_0));
if(sign_bit_0(u32(15), _S79.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S97 * _S81 * select(1.0f, -1.0f, _S63) * _S79.distance_0;
var _S98 : NodeCdf_0 = shared_nodes_0[_S58 + u32(80)];
var particle_affinity_2 : u32 = (particle_affinity_1 | ((((shared_nodes_0[_S58 + u32(80)].affinities_0) & (u32(65535))))));
var _S99 : f32 = _S56[i32(0)][u32(2)] * _S56[i32(1)][u32(1)];
var _S100 : f32 = _S99 * _S56[i32(2)][u32(2)];
var _S101 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(80)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(80)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S101 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S102 : f32 = f32(affinity_bit_0(u32(1), _S98.affinities_0));
if(sign_bit_0(u32(1), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S102 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S103 : f32 = f32(affinity_bit_0(u32(2), _S98.affinities_0));
if(sign_bit_0(u32(2), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S103 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S104 : f32 = f32(affinity_bit_0(u32(3), _S98.affinities_0));
if(sign_bit_0(u32(3), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S104 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S105 : f32 = f32(affinity_bit_0(u32(4), _S98.affinities_0));
if(sign_bit_0(u32(4), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S105 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S106 : f32 = f32(affinity_bit_0(u32(5), _S98.affinities_0));
if(sign_bit_0(u32(5), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S106 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S107 : f32 = f32(affinity_bit_0(u32(6), _S98.affinities_0));
if(sign_bit_0(u32(6), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S107 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S108 : f32 = f32(affinity_bit_0(u32(7), _S98.affinities_0));
if(sign_bit_0(u32(7), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S108 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S109 : f32 = f32(affinity_bit_0(u32(8), _S98.affinities_0));
if(sign_bit_0(u32(8), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S109 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S110 : f32 = f32(affinity_bit_0(u32(9), _S98.affinities_0));
if(sign_bit_0(u32(9), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S110 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S111 : f32 = f32(affinity_bit_0(u32(10), _S98.affinities_0));
if(sign_bit_0(u32(10), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S111 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S112 : f32 = f32(affinity_bit_0(u32(11), _S98.affinities_0));
if(sign_bit_0(u32(11), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S112 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S113 : f32 = f32(affinity_bit_0(u32(12), _S98.affinities_0));
if(sign_bit_0(u32(12), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S113 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S114 : f32 = f32(affinity_bit_0(u32(13), _S98.affinities_0));
if(sign_bit_0(u32(13), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S114 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S115 : f32 = f32(affinity_bit_0(u32(14), _S98.affinities_0));
if(sign_bit_0(u32(14), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S115 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S116 : f32 = f32(affinity_bit_0(u32(15), _S98.affinities_0));
if(sign_bit_0(u32(15), _S98.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S116 * _S100 * select(1.0f, -1.0f, _S63) * _S98.distance_0;
var _S117 : NodeCdf_0 = shared_nodes_0[_S58 + u32(84)];
var particle_affinity_3 : u32 = (particle_affinity_2 | ((((shared_nodes_0[_S58 + u32(84)].affinities_0) & (u32(65535))))));
var _S118 : f32 = _S56[i32(0)][u32(0)] * _S56[i32(1)][u32(2)];
var _S119 : f32 = _S118 * _S56[i32(2)][u32(2)];
var _S120 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(84)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(84)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S120 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S121 : f32 = f32(affinity_bit_0(u32(1), _S117.affinities_0));
if(sign_bit_0(u32(1), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S121 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S122 : f32 = f32(affinity_bit_0(u32(2), _S117.affinities_0));
if(sign_bit_0(u32(2), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S122 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S123 : f32 = f32(affinity_bit_0(u32(3), _S117.affinities_0));
if(sign_bit_0(u32(3), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S123 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S124 : f32 = f32(affinity_bit_0(u32(4), _S117.affinities_0));
if(sign_bit_0(u32(4), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S124 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S125 : f32 = f32(affinity_bit_0(u32(5), _S117.affinities_0));
if(sign_bit_0(u32(5), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S125 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S126 : f32 = f32(affinity_bit_0(u32(6), _S117.affinities_0));
if(sign_bit_0(u32(6), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S126 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S127 : f32 = f32(affinity_bit_0(u32(7), _S117.affinities_0));
if(sign_bit_0(u32(7), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S127 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S128 : f32 = f32(affinity_bit_0(u32(8), _S117.affinities_0));
if(sign_bit_0(u32(8), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S128 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S129 : f32 = f32(affinity_bit_0(u32(9), _S117.affinities_0));
if(sign_bit_0(u32(9), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S129 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S130 : f32 = f32(affinity_bit_0(u32(10), _S117.affinities_0));
if(sign_bit_0(u32(10), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S130 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S131 : f32 = f32(affinity_bit_0(u32(11), _S117.affinities_0));
if(sign_bit_0(u32(11), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S131 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S132 : f32 = f32(affinity_bit_0(u32(12), _S117.affinities_0));
if(sign_bit_0(u32(12), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S132 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S133 : f32 = f32(affinity_bit_0(u32(13), _S117.affinities_0));
if(sign_bit_0(u32(13), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S133 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S134 : f32 = f32(affinity_bit_0(u32(14), _S117.affinities_0));
if(sign_bit_0(u32(14), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S134 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S135 : f32 = f32(affinity_bit_0(u32(15), _S117.affinities_0));
if(sign_bit_0(u32(15), _S117.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S135 * _S119 * select(1.0f, -1.0f, _S63) * _S117.distance_0;
var _S136 : NodeCdf_0 = shared_nodes_0[_S58 + u32(72)];
var particle_affinity_4 : u32 = (particle_affinity_3 | ((((shared_nodes_0[_S58 + u32(72)].affinities_0) & (u32(65535))))));
var _S137 : f32 = _S56[i32(0)][u32(0)] * _S56[i32(1)][u32(0)];
var _S138 : f32 = _S137 * _S56[i32(2)][u32(2)];
var _S139 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(72)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(72)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S139 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S140 : f32 = f32(affinity_bit_0(u32(1), _S136.affinities_0));
if(sign_bit_0(u32(1), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S140 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S141 : f32 = f32(affinity_bit_0(u32(2), _S136.affinities_0));
if(sign_bit_0(u32(2), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S141 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S142 : f32 = f32(affinity_bit_0(u32(3), _S136.affinities_0));
if(sign_bit_0(u32(3), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S142 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S143 : f32 = f32(affinity_bit_0(u32(4), _S136.affinities_0));
if(sign_bit_0(u32(4), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S143 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S144 : f32 = f32(affinity_bit_0(u32(5), _S136.affinities_0));
if(sign_bit_0(u32(5), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S144 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S145 : f32 = f32(affinity_bit_0(u32(6), _S136.affinities_0));
if(sign_bit_0(u32(6), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S145 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S146 : f32 = f32(affinity_bit_0(u32(7), _S136.affinities_0));
if(sign_bit_0(u32(7), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S146 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S147 : f32 = f32(affinity_bit_0(u32(8), _S136.affinities_0));
if(sign_bit_0(u32(8), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S147 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S148 : f32 = f32(affinity_bit_0(u32(9), _S136.affinities_0));
if(sign_bit_0(u32(9), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S148 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S149 : f32 = f32(affinity_bit_0(u32(10), _S136.affinities_0));
if(sign_bit_0(u32(10), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S149 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S150 : f32 = f32(affinity_bit_0(u32(11), _S136.affinities_0));
if(sign_bit_0(u32(11), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S150 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S151 : f32 = f32(affinity_bit_0(u32(12), _S136.affinities_0));
if(sign_bit_0(u32(12), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S151 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S152 : f32 = f32(affinity_bit_0(u32(13), _S136.affinities_0));
if(sign_bit_0(u32(13), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S152 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S153 : f32 = f32(affinity_bit_0(u32(14), _S136.affinities_0));
if(sign_bit_0(u32(14), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S153 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S154 : f32 = f32(affinity_bit_0(u32(15), _S136.affinities_0));
if(sign_bit_0(u32(15), _S136.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S154 * _S138 * select(1.0f, -1.0f, _S63) * _S136.distance_0;
var _S155 : NodeCdf_0 = shared_nodes_0[_S58 + u32(78)];
var particle_affinity_5 : u32 = (particle_affinity_4 | ((((shared_nodes_0[_S58 + u32(78)].affinities_0) & (u32(65535))))));
var _S156 : f32 = _S56[i32(0)][u32(0)] * _S56[i32(1)][u32(1)];
var _S157 : f32 = _S156 * _S56[i32(2)][u32(2)];
var _S158 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(78)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(78)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S158 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S159 : f32 = f32(affinity_bit_0(u32(1), _S155.affinities_0));
if(sign_bit_0(u32(1), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S159 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S160 : f32 = f32(affinity_bit_0(u32(2), _S155.affinities_0));
if(sign_bit_0(u32(2), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S160 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S161 : f32 = f32(affinity_bit_0(u32(3), _S155.affinities_0));
if(sign_bit_0(u32(3), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S161 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S162 : f32 = f32(affinity_bit_0(u32(4), _S155.affinities_0));
if(sign_bit_0(u32(4), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S162 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S163 : f32 = f32(affinity_bit_0(u32(5), _S155.affinities_0));
if(sign_bit_0(u32(5), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S163 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S164 : f32 = f32(affinity_bit_0(u32(6), _S155.affinities_0));
if(sign_bit_0(u32(6), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S164 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S165 : f32 = f32(affinity_bit_0(u32(7), _S155.affinities_0));
if(sign_bit_0(u32(7), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S165 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S166 : f32 = f32(affinity_bit_0(u32(8), _S155.affinities_0));
if(sign_bit_0(u32(8), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S166 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S167 : f32 = f32(affinity_bit_0(u32(9), _S155.affinities_0));
if(sign_bit_0(u32(9), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S167 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S168 : f32 = f32(affinity_bit_0(u32(10), _S155.affinities_0));
if(sign_bit_0(u32(10), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S168 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S169 : f32 = f32(affinity_bit_0(u32(11), _S155.affinities_0));
if(sign_bit_0(u32(11), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S169 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S170 : f32 = f32(affinity_bit_0(u32(12), _S155.affinities_0));
if(sign_bit_0(u32(12), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S170 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S171 : f32 = f32(affinity_bit_0(u32(13), _S155.affinities_0));
if(sign_bit_0(u32(13), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S171 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S172 : f32 = f32(affinity_bit_0(u32(14), _S155.affinities_0));
if(sign_bit_0(u32(14), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S172 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S173 : f32 = f32(affinity_bit_0(u32(15), _S155.affinities_0));
if(sign_bit_0(u32(15), _S155.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S173 * _S157 * select(1.0f, -1.0f, _S63) * _S155.distance_0;
var _S174 : NodeCdf_0 = shared_nodes_0[_S58 + u32(85)];
var particle_affinity_6 : u32 = (particle_affinity_5 | ((((shared_nodes_0[_S58 + u32(85)].affinities_0) & (u32(65535))))));
var _S175 : f32 = _S56[i32(0)][u32(1)] * _S56[i32(1)][u32(2)];
var _S176 : f32 = _S175 * _S56[i32(2)][u32(2)];
var _S177 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(85)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(85)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S177 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S178 : f32 = f32(affinity_bit_0(u32(1), _S174.affinities_0));
if(sign_bit_0(u32(1), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S178 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S179 : f32 = f32(affinity_bit_0(u32(2), _S174.affinities_0));
if(sign_bit_0(u32(2), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S179 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S180 : f32 = f32(affinity_bit_0(u32(3), _S174.affinities_0));
if(sign_bit_0(u32(3), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S180 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S181 : f32 = f32(affinity_bit_0(u32(4), _S174.affinities_0));
if(sign_bit_0(u32(4), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S181 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S182 : f32 = f32(affinity_bit_0(u32(5), _S174.affinities_0));
if(sign_bit_0(u32(5), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S182 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S183 : f32 = f32(affinity_bit_0(u32(6), _S174.affinities_0));
if(sign_bit_0(u32(6), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S183 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S184 : f32 = f32(affinity_bit_0(u32(7), _S174.affinities_0));
if(sign_bit_0(u32(7), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S184 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S185 : f32 = f32(affinity_bit_0(u32(8), _S174.affinities_0));
if(sign_bit_0(u32(8), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S185 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S186 : f32 = f32(affinity_bit_0(u32(9), _S174.affinities_0));
if(sign_bit_0(u32(9), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S186 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S187 : f32 = f32(affinity_bit_0(u32(10), _S174.affinities_0));
if(sign_bit_0(u32(10), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S187 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S188 : f32 = f32(affinity_bit_0(u32(11), _S174.affinities_0));
if(sign_bit_0(u32(11), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S188 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S189 : f32 = f32(affinity_bit_0(u32(12), _S174.affinities_0));
if(sign_bit_0(u32(12), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S189 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S190 : f32 = f32(affinity_bit_0(u32(13), _S174.affinities_0));
if(sign_bit_0(u32(13), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S190 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S191 : f32 = f32(affinity_bit_0(u32(14), _S174.affinities_0));
if(sign_bit_0(u32(14), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S191 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S192 : f32 = f32(affinity_bit_0(u32(15), _S174.affinities_0));
if(sign_bit_0(u32(15), _S174.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S192 * _S176 * select(1.0f, -1.0f, _S63) * _S174.distance_0;
var _S193 : NodeCdf_0 = shared_nodes_0[_S58 + u32(73)];
var particle_affinity_7 : u32 = (particle_affinity_6 | ((((shared_nodes_0[_S58 + u32(73)].affinities_0) & (u32(65535))))));
var _S194 : f32 = _S56[i32(0)][u32(1)] * _S56[i32(1)][u32(0)];
var _S195 : f32 = _S194 * _S56[i32(2)][u32(2)];
var _S196 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(73)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(73)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S196 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S197 : f32 = f32(affinity_bit_0(u32(1), _S193.affinities_0));
if(sign_bit_0(u32(1), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S197 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S198 : f32 = f32(affinity_bit_0(u32(2), _S193.affinities_0));
if(sign_bit_0(u32(2), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S198 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S199 : f32 = f32(affinity_bit_0(u32(3), _S193.affinities_0));
if(sign_bit_0(u32(3), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S199 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S200 : f32 = f32(affinity_bit_0(u32(4), _S193.affinities_0));
if(sign_bit_0(u32(4), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S200 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S201 : f32 = f32(affinity_bit_0(u32(5), _S193.affinities_0));
if(sign_bit_0(u32(5), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S201 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S202 : f32 = f32(affinity_bit_0(u32(6), _S193.affinities_0));
if(sign_bit_0(u32(6), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S202 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S203 : f32 = f32(affinity_bit_0(u32(7), _S193.affinities_0));
if(sign_bit_0(u32(7), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S203 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S204 : f32 = f32(affinity_bit_0(u32(8), _S193.affinities_0));
if(sign_bit_0(u32(8), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S204 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S205 : f32 = f32(affinity_bit_0(u32(9), _S193.affinities_0));
if(sign_bit_0(u32(9), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S205 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S206 : f32 = f32(affinity_bit_0(u32(10), _S193.affinities_0));
if(sign_bit_0(u32(10), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S206 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S207 : f32 = f32(affinity_bit_0(u32(11), _S193.affinities_0));
if(sign_bit_0(u32(11), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S207 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S208 : f32 = f32(affinity_bit_0(u32(12), _S193.affinities_0));
if(sign_bit_0(u32(12), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S208 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S209 : f32 = f32(affinity_bit_0(u32(13), _S193.affinities_0));
if(sign_bit_0(u32(13), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S209 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S210 : f32 = f32(affinity_bit_0(u32(14), _S193.affinities_0));
if(sign_bit_0(u32(14), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S210 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S211 : f32 = f32(affinity_bit_0(u32(15), _S193.affinities_0));
if(sign_bit_0(u32(15), _S193.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S211 * _S195 * select(1.0f, -1.0f, _S63) * _S193.distance_0;
var _S212 : NodeCdf_0 = shared_nodes_0[_S58 + u32(79)];
var particle_affinity_8 : u32 = (particle_affinity_7 | ((((shared_nodes_0[_S58 + u32(79)].affinities_0) & (u32(65535))))));
var _S213 : f32 = _S56[i32(0)][u32(1)] * _S56[i32(1)][u32(1)];
var _S214 : f32 = _S213 * _S56[i32(2)][u32(2)];
var _S215 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(79)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(79)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S215 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S216 : f32 = f32(affinity_bit_0(u32(1), _S212.affinities_0));
if(sign_bit_0(u32(1), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S216 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S217 : f32 = f32(affinity_bit_0(u32(2), _S212.affinities_0));
if(sign_bit_0(u32(2), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S217 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S218 : f32 = f32(affinity_bit_0(u32(3), _S212.affinities_0));
if(sign_bit_0(u32(3), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S218 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S219 : f32 = f32(affinity_bit_0(u32(4), _S212.affinities_0));
if(sign_bit_0(u32(4), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S219 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S220 : f32 = f32(affinity_bit_0(u32(5), _S212.affinities_0));
if(sign_bit_0(u32(5), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S220 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S221 : f32 = f32(affinity_bit_0(u32(6), _S212.affinities_0));
if(sign_bit_0(u32(6), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S221 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S222 : f32 = f32(affinity_bit_0(u32(7), _S212.affinities_0));
if(sign_bit_0(u32(7), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S222 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S223 : f32 = f32(affinity_bit_0(u32(8), _S212.affinities_0));
if(sign_bit_0(u32(8), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S223 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S224 : f32 = f32(affinity_bit_0(u32(9), _S212.affinities_0));
if(sign_bit_0(u32(9), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S224 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S225 : f32 = f32(affinity_bit_0(u32(10), _S212.affinities_0));
if(sign_bit_0(u32(10), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S225 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S226 : f32 = f32(affinity_bit_0(u32(11), _S212.affinities_0));
if(sign_bit_0(u32(11), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S226 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S227 : f32 = f32(affinity_bit_0(u32(12), _S212.affinities_0));
if(sign_bit_0(u32(12), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S227 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S228 : f32 = f32(affinity_bit_0(u32(13), _S212.affinities_0));
if(sign_bit_0(u32(13), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S228 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S229 : f32 = f32(affinity_bit_0(u32(14), _S212.affinities_0));
if(sign_bit_0(u32(14), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S229 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S230 : f32 = f32(affinity_bit_0(u32(15), _S212.affinities_0));
if(sign_bit_0(u32(15), _S212.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S230 * _S214 * select(1.0f, -1.0f, _S63) * _S212.distance_0;
var _S231 : NodeCdf_0 = shared_nodes_0[_S58 + u32(14)];
var particle_affinity_9 : u32 = (particle_affinity_8 | ((((shared_nodes_0[_S58 + u32(14)].affinities_0) & (u32(65535))))));
var _S232 : f32 = _S60 * _S56[i32(2)][u32(0)];
var _S233 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(14)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(14)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S233 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S234 : f32 = f32(affinity_bit_0(u32(1), _S231.affinities_0));
if(sign_bit_0(u32(1), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S234 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S235 : f32 = f32(affinity_bit_0(u32(2), _S231.affinities_0));
if(sign_bit_0(u32(2), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S235 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S236 : f32 = f32(affinity_bit_0(u32(3), _S231.affinities_0));
if(sign_bit_0(u32(3), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S236 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S237 : f32 = f32(affinity_bit_0(u32(4), _S231.affinities_0));
if(sign_bit_0(u32(4), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S237 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S238 : f32 = f32(affinity_bit_0(u32(5), _S231.affinities_0));
if(sign_bit_0(u32(5), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S238 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S239 : f32 = f32(affinity_bit_0(u32(6), _S231.affinities_0));
if(sign_bit_0(u32(6), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S239 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S240 : f32 = f32(affinity_bit_0(u32(7), _S231.affinities_0));
if(sign_bit_0(u32(7), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S240 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S241 : f32 = f32(affinity_bit_0(u32(8), _S231.affinities_0));
if(sign_bit_0(u32(8), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S241 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S242 : f32 = f32(affinity_bit_0(u32(9), _S231.affinities_0));
if(sign_bit_0(u32(9), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S242 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S243 : f32 = f32(affinity_bit_0(u32(10), _S231.affinities_0));
if(sign_bit_0(u32(10), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S243 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S244 : f32 = f32(affinity_bit_0(u32(11), _S231.affinities_0));
if(sign_bit_0(u32(11), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S244 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S245 : f32 = f32(affinity_bit_0(u32(12), _S231.affinities_0));
if(sign_bit_0(u32(12), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S245 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S246 : f32 = f32(affinity_bit_0(u32(13), _S231.affinities_0));
if(sign_bit_0(u32(13), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S246 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S247 : f32 = f32(affinity_bit_0(u32(14), _S231.affinities_0));
if(sign_bit_0(u32(14), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S247 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S248 : f32 = f32(affinity_bit_0(u32(15), _S231.affinities_0));
if(sign_bit_0(u32(15), _S231.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S248 * _S232 * select(1.0f, -1.0f, _S63) * _S231.distance_0;
var _S249 : NodeCdf_0 = shared_nodes_0[_S58 + u32(2)];
var particle_affinity_10 : u32 = (particle_affinity_9 | ((((shared_nodes_0[_S58 + u32(2)].affinities_0) & (u32(65535))))));
var _S250 : f32 = _S80 * _S56[i32(2)][u32(0)];
var _S251 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(2)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(2)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S251 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S252 : f32 = f32(affinity_bit_0(u32(1), _S249.affinities_0));
if(sign_bit_0(u32(1), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S252 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S253 : f32 = f32(affinity_bit_0(u32(2), _S249.affinities_0));
if(sign_bit_0(u32(2), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S253 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S254 : f32 = f32(affinity_bit_0(u32(3), _S249.affinities_0));
if(sign_bit_0(u32(3), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S254 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S255 : f32 = f32(affinity_bit_0(u32(4), _S249.affinities_0));
if(sign_bit_0(u32(4), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S255 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S256 : f32 = f32(affinity_bit_0(u32(5), _S249.affinities_0));
if(sign_bit_0(u32(5), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S256 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S257 : f32 = f32(affinity_bit_0(u32(6), _S249.affinities_0));
if(sign_bit_0(u32(6), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S257 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S258 : f32 = f32(affinity_bit_0(u32(7), _S249.affinities_0));
if(sign_bit_0(u32(7), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S258 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S259 : f32 = f32(affinity_bit_0(u32(8), _S249.affinities_0));
if(sign_bit_0(u32(8), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S259 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S260 : f32 = f32(affinity_bit_0(u32(9), _S249.affinities_0));
if(sign_bit_0(u32(9), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S260 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S261 : f32 = f32(affinity_bit_0(u32(10), _S249.affinities_0));
if(sign_bit_0(u32(10), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S261 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S262 : f32 = f32(affinity_bit_0(u32(11), _S249.affinities_0));
if(sign_bit_0(u32(11), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S262 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S263 : f32 = f32(affinity_bit_0(u32(12), _S249.affinities_0));
if(sign_bit_0(u32(12), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S263 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S264 : f32 = f32(affinity_bit_0(u32(13), _S249.affinities_0));
if(sign_bit_0(u32(13), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S264 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S265 : f32 = f32(affinity_bit_0(u32(14), _S249.affinities_0));
if(sign_bit_0(u32(14), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S265 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S266 : f32 = f32(affinity_bit_0(u32(15), _S249.affinities_0));
if(sign_bit_0(u32(15), _S249.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S266 * _S250 * select(1.0f, -1.0f, _S63) * _S249.distance_0;
var _S267 : NodeCdf_0 = shared_nodes_0[_S58 + u32(8)];
var particle_affinity_11 : u32 = (particle_affinity_10 | ((((shared_nodes_0[_S58 + u32(8)].affinities_0) & (u32(65535))))));
var _S268 : f32 = _S99 * _S56[i32(2)][u32(0)];
var _S269 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(8)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(8)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S269 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S270 : f32 = f32(affinity_bit_0(u32(1), _S267.affinities_0));
if(sign_bit_0(u32(1), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S270 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S271 : f32 = f32(affinity_bit_0(u32(2), _S267.affinities_0));
if(sign_bit_0(u32(2), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S271 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S272 : f32 = f32(affinity_bit_0(u32(3), _S267.affinities_0));
if(sign_bit_0(u32(3), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S272 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S273 : f32 = f32(affinity_bit_0(u32(4), _S267.affinities_0));
if(sign_bit_0(u32(4), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S273 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S274 : f32 = f32(affinity_bit_0(u32(5), _S267.affinities_0));
if(sign_bit_0(u32(5), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S274 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S275 : f32 = f32(affinity_bit_0(u32(6), _S267.affinities_0));
if(sign_bit_0(u32(6), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S275 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S276 : f32 = f32(affinity_bit_0(u32(7), _S267.affinities_0));
if(sign_bit_0(u32(7), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S276 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S277 : f32 = f32(affinity_bit_0(u32(8), _S267.affinities_0));
if(sign_bit_0(u32(8), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S277 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S278 : f32 = f32(affinity_bit_0(u32(9), _S267.affinities_0));
if(sign_bit_0(u32(9), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S278 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S279 : f32 = f32(affinity_bit_0(u32(10), _S267.affinities_0));
if(sign_bit_0(u32(10), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S279 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S280 : f32 = f32(affinity_bit_0(u32(11), _S267.affinities_0));
if(sign_bit_0(u32(11), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S280 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S281 : f32 = f32(affinity_bit_0(u32(12), _S267.affinities_0));
if(sign_bit_0(u32(12), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S281 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S282 : f32 = f32(affinity_bit_0(u32(13), _S267.affinities_0));
if(sign_bit_0(u32(13), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S282 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S283 : f32 = f32(affinity_bit_0(u32(14), _S267.affinities_0));
if(sign_bit_0(u32(14), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S283 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S284 : f32 = f32(affinity_bit_0(u32(15), _S267.affinities_0));
if(sign_bit_0(u32(15), _S267.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S284 * _S268 * select(1.0f, -1.0f, _S63) * _S267.distance_0;
var _S285 : NodeCdf_0 = shared_nodes_0[_S58 + u32(12)];
var particle_affinity_12 : u32 = (particle_affinity_11 | ((((shared_nodes_0[_S58 + u32(12)].affinities_0) & (u32(65535))))));
var _S286 : f32 = _S118 * _S56[i32(2)][u32(0)];
var _S287 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(12)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(12)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S287 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S288 : f32 = f32(affinity_bit_0(u32(1), _S285.affinities_0));
if(sign_bit_0(u32(1), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S288 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S289 : f32 = f32(affinity_bit_0(u32(2), _S285.affinities_0));
if(sign_bit_0(u32(2), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S289 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S290 : f32 = f32(affinity_bit_0(u32(3), _S285.affinities_0));
if(sign_bit_0(u32(3), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S290 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S291 : f32 = f32(affinity_bit_0(u32(4), _S285.affinities_0));
if(sign_bit_0(u32(4), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S291 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S292 : f32 = f32(affinity_bit_0(u32(5), _S285.affinities_0));
if(sign_bit_0(u32(5), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S292 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S293 : f32 = f32(affinity_bit_0(u32(6), _S285.affinities_0));
if(sign_bit_0(u32(6), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S293 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S294 : f32 = f32(affinity_bit_0(u32(7), _S285.affinities_0));
if(sign_bit_0(u32(7), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S294 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S295 : f32 = f32(affinity_bit_0(u32(8), _S285.affinities_0));
if(sign_bit_0(u32(8), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S295 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S296 : f32 = f32(affinity_bit_0(u32(9), _S285.affinities_0));
if(sign_bit_0(u32(9), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S296 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S297 : f32 = f32(affinity_bit_0(u32(10), _S285.affinities_0));
if(sign_bit_0(u32(10), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S297 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S298 : f32 = f32(affinity_bit_0(u32(11), _S285.affinities_0));
if(sign_bit_0(u32(11), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S298 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S299 : f32 = f32(affinity_bit_0(u32(12), _S285.affinities_0));
if(sign_bit_0(u32(12), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S299 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S300 : f32 = f32(affinity_bit_0(u32(13), _S285.affinities_0));
if(sign_bit_0(u32(13), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S300 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S301 : f32 = f32(affinity_bit_0(u32(14), _S285.affinities_0));
if(sign_bit_0(u32(14), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S301 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S302 : f32 = f32(affinity_bit_0(u32(15), _S285.affinities_0));
if(sign_bit_0(u32(15), _S285.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S302 * _S286 * select(1.0f, -1.0f, _S63) * _S285.distance_0;
var _S303 : NodeCdf_0 = shared_nodes_0[_S58];
var particle_affinity_13 : u32 = (particle_affinity_12 | ((((shared_nodes_0[_S58].affinities_0) & (u32(65535))))));
var _S304 : f32 = _S137 * _S56[i32(2)][u32(0)];
var _S305 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S305 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S306 : f32 = f32(affinity_bit_0(u32(1), _S303.affinities_0));
if(sign_bit_0(u32(1), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S306 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S307 : f32 = f32(affinity_bit_0(u32(2), _S303.affinities_0));
if(sign_bit_0(u32(2), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S307 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S308 : f32 = f32(affinity_bit_0(u32(3), _S303.affinities_0));
if(sign_bit_0(u32(3), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S308 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S309 : f32 = f32(affinity_bit_0(u32(4), _S303.affinities_0));
if(sign_bit_0(u32(4), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S309 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S310 : f32 = f32(affinity_bit_0(u32(5), _S303.affinities_0));
if(sign_bit_0(u32(5), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S310 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S311 : f32 = f32(affinity_bit_0(u32(6), _S303.affinities_0));
if(sign_bit_0(u32(6), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S311 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S312 : f32 = f32(affinity_bit_0(u32(7), _S303.affinities_0));
if(sign_bit_0(u32(7), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S312 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S313 : f32 = f32(affinity_bit_0(u32(8), _S303.affinities_0));
if(sign_bit_0(u32(8), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S313 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S314 : f32 = f32(affinity_bit_0(u32(9), _S303.affinities_0));
if(sign_bit_0(u32(9), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S314 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S315 : f32 = f32(affinity_bit_0(u32(10), _S303.affinities_0));
if(sign_bit_0(u32(10), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S315 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S316 : f32 = f32(affinity_bit_0(u32(11), _S303.affinities_0));
if(sign_bit_0(u32(11), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S316 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S317 : f32 = f32(affinity_bit_0(u32(12), _S303.affinities_0));
if(sign_bit_0(u32(12), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S317 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S318 : f32 = f32(affinity_bit_0(u32(13), _S303.affinities_0));
if(sign_bit_0(u32(13), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S318 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S319 : f32 = f32(affinity_bit_0(u32(14), _S303.affinities_0));
if(sign_bit_0(u32(14), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S319 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S320 : f32 = f32(affinity_bit_0(u32(15), _S303.affinities_0));
if(sign_bit_0(u32(15), _S303.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S320 * _S304 * select(1.0f, -1.0f, _S63) * _S303.distance_0;
var _S321 : NodeCdf_0 = shared_nodes_0[_S58 + u32(6)];
var particle_affinity_14 : u32 = (particle_affinity_13 | ((((shared_nodes_0[_S58 + u32(6)].affinities_0) & (u32(65535))))));
var _S322 : f32 = _S156 * _S56[i32(2)][u32(0)];
var _S323 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(6)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(6)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S323 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S324 : f32 = f32(affinity_bit_0(u32(1), _S321.affinities_0));
if(sign_bit_0(u32(1), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S324 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S325 : f32 = f32(affinity_bit_0(u32(2), _S321.affinities_0));
if(sign_bit_0(u32(2), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S325 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S326 : f32 = f32(affinity_bit_0(u32(3), _S321.affinities_0));
if(sign_bit_0(u32(3), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S326 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S327 : f32 = f32(affinity_bit_0(u32(4), _S321.affinities_0));
if(sign_bit_0(u32(4), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S327 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S328 : f32 = f32(affinity_bit_0(u32(5), _S321.affinities_0));
if(sign_bit_0(u32(5), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S328 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S329 : f32 = f32(affinity_bit_0(u32(6), _S321.affinities_0));
if(sign_bit_0(u32(6), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S329 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S330 : f32 = f32(affinity_bit_0(u32(7), _S321.affinities_0));
if(sign_bit_0(u32(7), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S330 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S331 : f32 = f32(affinity_bit_0(u32(8), _S321.affinities_0));
if(sign_bit_0(u32(8), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S331 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S332 : f32 = f32(affinity_bit_0(u32(9), _S321.affinities_0));
if(sign_bit_0(u32(9), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S332 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S333 : f32 = f32(affinity_bit_0(u32(10), _S321.affinities_0));
if(sign_bit_0(u32(10), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S333 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S334 : f32 = f32(affinity_bit_0(u32(11), _S321.affinities_0));
if(sign_bit_0(u32(11), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S334 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S335 : f32 = f32(affinity_bit_0(u32(12), _S321.affinities_0));
if(sign_bit_0(u32(12), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S335 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S336 : f32 = f32(affinity_bit_0(u32(13), _S321.affinities_0));
if(sign_bit_0(u32(13), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S336 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S337 : f32 = f32(affinity_bit_0(u32(14), _S321.affinities_0));
if(sign_bit_0(u32(14), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S337 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S338 : f32 = f32(affinity_bit_0(u32(15), _S321.affinities_0));
if(sign_bit_0(u32(15), _S321.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S338 * _S322 * select(1.0f, -1.0f, _S63) * _S321.distance_0;
var _S339 : NodeCdf_0 = shared_nodes_0[_S58 + u32(13)];
var particle_affinity_15 : u32 = (particle_affinity_14 | ((((shared_nodes_0[_S58 + u32(13)].affinities_0) & (u32(65535))))));
var _S340 : f32 = _S175 * _S56[i32(2)][u32(0)];
var _S341 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(13)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(13)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S341 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S342 : f32 = f32(affinity_bit_0(u32(1), _S339.affinities_0));
if(sign_bit_0(u32(1), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S342 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S343 : f32 = f32(affinity_bit_0(u32(2), _S339.affinities_0));
if(sign_bit_0(u32(2), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S343 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S344 : f32 = f32(affinity_bit_0(u32(3), _S339.affinities_0));
if(sign_bit_0(u32(3), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S344 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S345 : f32 = f32(affinity_bit_0(u32(4), _S339.affinities_0));
if(sign_bit_0(u32(4), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S345 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S346 : f32 = f32(affinity_bit_0(u32(5), _S339.affinities_0));
if(sign_bit_0(u32(5), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S346 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S347 : f32 = f32(affinity_bit_0(u32(6), _S339.affinities_0));
if(sign_bit_0(u32(6), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S347 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S348 : f32 = f32(affinity_bit_0(u32(7), _S339.affinities_0));
if(sign_bit_0(u32(7), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S348 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S349 : f32 = f32(affinity_bit_0(u32(8), _S339.affinities_0));
if(sign_bit_0(u32(8), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S349 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S350 : f32 = f32(affinity_bit_0(u32(9), _S339.affinities_0));
if(sign_bit_0(u32(9), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S350 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S351 : f32 = f32(affinity_bit_0(u32(10), _S339.affinities_0));
if(sign_bit_0(u32(10), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S351 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S352 : f32 = f32(affinity_bit_0(u32(11), _S339.affinities_0));
if(sign_bit_0(u32(11), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S352 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S353 : f32 = f32(affinity_bit_0(u32(12), _S339.affinities_0));
if(sign_bit_0(u32(12), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S353 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S354 : f32 = f32(affinity_bit_0(u32(13), _S339.affinities_0));
if(sign_bit_0(u32(13), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S354 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S355 : f32 = f32(affinity_bit_0(u32(14), _S339.affinities_0));
if(sign_bit_0(u32(14), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S355 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S356 : f32 = f32(affinity_bit_0(u32(15), _S339.affinities_0));
if(sign_bit_0(u32(15), _S339.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S356 * _S340 * select(1.0f, -1.0f, _S63) * _S339.distance_0;
var _S357 : NodeCdf_0 = shared_nodes_0[_S58 + u32(1)];
var particle_affinity_16 : u32 = (particle_affinity_15 | ((((shared_nodes_0[_S58 + u32(1)].affinities_0) & (u32(65535))))));
var _S358 : f32 = _S194 * _S56[i32(2)][u32(0)];
var _S359 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(1)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(1)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S359 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S360 : f32 = f32(affinity_bit_0(u32(1), _S357.affinities_0));
if(sign_bit_0(u32(1), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S360 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S361 : f32 = f32(affinity_bit_0(u32(2), _S357.affinities_0));
if(sign_bit_0(u32(2), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S361 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S362 : f32 = f32(affinity_bit_0(u32(3), _S357.affinities_0));
if(sign_bit_0(u32(3), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S362 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S363 : f32 = f32(affinity_bit_0(u32(4), _S357.affinities_0));
if(sign_bit_0(u32(4), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S363 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S364 : f32 = f32(affinity_bit_0(u32(5), _S357.affinities_0));
if(sign_bit_0(u32(5), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S364 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S365 : f32 = f32(affinity_bit_0(u32(6), _S357.affinities_0));
if(sign_bit_0(u32(6), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S365 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S366 : f32 = f32(affinity_bit_0(u32(7), _S357.affinities_0));
if(sign_bit_0(u32(7), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S366 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S367 : f32 = f32(affinity_bit_0(u32(8), _S357.affinities_0));
if(sign_bit_0(u32(8), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S367 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S368 : f32 = f32(affinity_bit_0(u32(9), _S357.affinities_0));
if(sign_bit_0(u32(9), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S368 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S369 : f32 = f32(affinity_bit_0(u32(10), _S357.affinities_0));
if(sign_bit_0(u32(10), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S369 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S370 : f32 = f32(affinity_bit_0(u32(11), _S357.affinities_0));
if(sign_bit_0(u32(11), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S370 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S371 : f32 = f32(affinity_bit_0(u32(12), _S357.affinities_0));
if(sign_bit_0(u32(12), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S371 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S372 : f32 = f32(affinity_bit_0(u32(13), _S357.affinities_0));
if(sign_bit_0(u32(13), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S372 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S373 : f32 = f32(affinity_bit_0(u32(14), _S357.affinities_0));
if(sign_bit_0(u32(14), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S373 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S374 : f32 = f32(affinity_bit_0(u32(15), _S357.affinities_0));
if(sign_bit_0(u32(15), _S357.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S374 * _S358 * select(1.0f, -1.0f, _S63) * _S357.distance_0;
var _S375 : NodeCdf_0 = shared_nodes_0[_S58 + u32(7)];
var particle_affinity_17 : u32 = (particle_affinity_16 | ((((shared_nodes_0[_S58 + u32(7)].affinities_0) & (u32(65535))))));
var _S376 : f32 = _S213 * _S56[i32(2)][u32(0)];
var _S377 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(7)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(7)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S377 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S378 : f32 = f32(affinity_bit_0(u32(1), _S375.affinities_0));
if(sign_bit_0(u32(1), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S378 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S379 : f32 = f32(affinity_bit_0(u32(2), _S375.affinities_0));
if(sign_bit_0(u32(2), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S379 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S380 : f32 = f32(affinity_bit_0(u32(3), _S375.affinities_0));
if(sign_bit_0(u32(3), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S380 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S381 : f32 = f32(affinity_bit_0(u32(4), _S375.affinities_0));
if(sign_bit_0(u32(4), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S381 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S382 : f32 = f32(affinity_bit_0(u32(5), _S375.affinities_0));
if(sign_bit_0(u32(5), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S382 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S383 : f32 = f32(affinity_bit_0(u32(6), _S375.affinities_0));
if(sign_bit_0(u32(6), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S383 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S384 : f32 = f32(affinity_bit_0(u32(7), _S375.affinities_0));
if(sign_bit_0(u32(7), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S384 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S385 : f32 = f32(affinity_bit_0(u32(8), _S375.affinities_0));
if(sign_bit_0(u32(8), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S385 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S386 : f32 = f32(affinity_bit_0(u32(9), _S375.affinities_0));
if(sign_bit_0(u32(9), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S386 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S387 : f32 = f32(affinity_bit_0(u32(10), _S375.affinities_0));
if(sign_bit_0(u32(10), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S387 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S388 : f32 = f32(affinity_bit_0(u32(11), _S375.affinities_0));
if(sign_bit_0(u32(11), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S388 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S389 : f32 = f32(affinity_bit_0(u32(12), _S375.affinities_0));
if(sign_bit_0(u32(12), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S389 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S390 : f32 = f32(affinity_bit_0(u32(13), _S375.affinities_0));
if(sign_bit_0(u32(13), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S390 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S391 : f32 = f32(affinity_bit_0(u32(14), _S375.affinities_0));
if(sign_bit_0(u32(14), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S391 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S392 : f32 = f32(affinity_bit_0(u32(15), _S375.affinities_0));
if(sign_bit_0(u32(15), _S375.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S392 * _S376 * select(1.0f, -1.0f, _S63) * _S375.distance_0;
var _S393 : NodeCdf_0 = shared_nodes_0[_S58 + u32(50)];
var particle_affinity_18 : u32 = (particle_affinity_17 | ((((shared_nodes_0[_S58 + u32(50)].affinities_0) & (u32(65535))))));
var _S394 : f32 = _S60 * _S56[i32(2)][u32(1)];
var _S395 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(50)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(50)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S395 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S396 : f32 = f32(affinity_bit_0(u32(1), _S393.affinities_0));
if(sign_bit_0(u32(1), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S396 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S397 : f32 = f32(affinity_bit_0(u32(2), _S393.affinities_0));
if(sign_bit_0(u32(2), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S397 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S398 : f32 = f32(affinity_bit_0(u32(3), _S393.affinities_0));
if(sign_bit_0(u32(3), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S398 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S399 : f32 = f32(affinity_bit_0(u32(4), _S393.affinities_0));
if(sign_bit_0(u32(4), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S399 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S400 : f32 = f32(affinity_bit_0(u32(5), _S393.affinities_0));
if(sign_bit_0(u32(5), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S400 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S401 : f32 = f32(affinity_bit_0(u32(6), _S393.affinities_0));
if(sign_bit_0(u32(6), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S401 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S402 : f32 = f32(affinity_bit_0(u32(7), _S393.affinities_0));
if(sign_bit_0(u32(7), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S402 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S403 : f32 = f32(affinity_bit_0(u32(8), _S393.affinities_0));
if(sign_bit_0(u32(8), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S403 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S404 : f32 = f32(affinity_bit_0(u32(9), _S393.affinities_0));
if(sign_bit_0(u32(9), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S404 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S405 : f32 = f32(affinity_bit_0(u32(10), _S393.affinities_0));
if(sign_bit_0(u32(10), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S405 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S406 : f32 = f32(affinity_bit_0(u32(11), _S393.affinities_0));
if(sign_bit_0(u32(11), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S406 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S407 : f32 = f32(affinity_bit_0(u32(12), _S393.affinities_0));
if(sign_bit_0(u32(12), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S407 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S408 : f32 = f32(affinity_bit_0(u32(13), _S393.affinities_0));
if(sign_bit_0(u32(13), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S408 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S409 : f32 = f32(affinity_bit_0(u32(14), _S393.affinities_0));
if(sign_bit_0(u32(14), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S409 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S410 : f32 = f32(affinity_bit_0(u32(15), _S393.affinities_0));
if(sign_bit_0(u32(15), _S393.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S410 * _S394 * select(1.0f, -1.0f, _S63) * _S393.distance_0;
var _S411 : NodeCdf_0 = shared_nodes_0[_S58 + u32(38)];
var particle_affinity_19 : u32 = (particle_affinity_18 | ((((shared_nodes_0[_S58 + u32(38)].affinities_0) & (u32(65535))))));
var _S412 : f32 = _S80 * _S56[i32(2)][u32(1)];
var _S413 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(38)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(38)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S413 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S414 : f32 = f32(affinity_bit_0(u32(1), _S411.affinities_0));
if(sign_bit_0(u32(1), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S414 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S415 : f32 = f32(affinity_bit_0(u32(2), _S411.affinities_0));
if(sign_bit_0(u32(2), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S415 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S416 : f32 = f32(affinity_bit_0(u32(3), _S411.affinities_0));
if(sign_bit_0(u32(3), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S416 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S417 : f32 = f32(affinity_bit_0(u32(4), _S411.affinities_0));
if(sign_bit_0(u32(4), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S417 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S418 : f32 = f32(affinity_bit_0(u32(5), _S411.affinities_0));
if(sign_bit_0(u32(5), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S418 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S419 : f32 = f32(affinity_bit_0(u32(6), _S411.affinities_0));
if(sign_bit_0(u32(6), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S419 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S420 : f32 = f32(affinity_bit_0(u32(7), _S411.affinities_0));
if(sign_bit_0(u32(7), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S420 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S421 : f32 = f32(affinity_bit_0(u32(8), _S411.affinities_0));
if(sign_bit_0(u32(8), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S421 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S422 : f32 = f32(affinity_bit_0(u32(9), _S411.affinities_0));
if(sign_bit_0(u32(9), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S422 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S423 : f32 = f32(affinity_bit_0(u32(10), _S411.affinities_0));
if(sign_bit_0(u32(10), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S423 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S424 : f32 = f32(affinity_bit_0(u32(11), _S411.affinities_0));
if(sign_bit_0(u32(11), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S424 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S425 : f32 = f32(affinity_bit_0(u32(12), _S411.affinities_0));
if(sign_bit_0(u32(12), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S425 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S426 : f32 = f32(affinity_bit_0(u32(13), _S411.affinities_0));
if(sign_bit_0(u32(13), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S426 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S427 : f32 = f32(affinity_bit_0(u32(14), _S411.affinities_0));
if(sign_bit_0(u32(14), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S427 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S428 : f32 = f32(affinity_bit_0(u32(15), _S411.affinities_0));
if(sign_bit_0(u32(15), _S411.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S428 * _S412 * select(1.0f, -1.0f, _S63) * _S411.distance_0;
var _S429 : NodeCdf_0 = shared_nodes_0[_S58 + u32(44)];
var particle_affinity_20 : u32 = (particle_affinity_19 | ((((shared_nodes_0[_S58 + u32(44)].affinities_0) & (u32(65535))))));
var _S430 : f32 = _S99 * _S56[i32(2)][u32(1)];
var _S431 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(44)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(44)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S431 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S432 : f32 = f32(affinity_bit_0(u32(1), _S429.affinities_0));
if(sign_bit_0(u32(1), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S432 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S433 : f32 = f32(affinity_bit_0(u32(2), _S429.affinities_0));
if(sign_bit_0(u32(2), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S433 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S434 : f32 = f32(affinity_bit_0(u32(3), _S429.affinities_0));
if(sign_bit_0(u32(3), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S434 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S435 : f32 = f32(affinity_bit_0(u32(4), _S429.affinities_0));
if(sign_bit_0(u32(4), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S435 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S436 : f32 = f32(affinity_bit_0(u32(5), _S429.affinities_0));
if(sign_bit_0(u32(5), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S436 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S437 : f32 = f32(affinity_bit_0(u32(6), _S429.affinities_0));
if(sign_bit_0(u32(6), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S437 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S438 : f32 = f32(affinity_bit_0(u32(7), _S429.affinities_0));
if(sign_bit_0(u32(7), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S438 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S439 : f32 = f32(affinity_bit_0(u32(8), _S429.affinities_0));
if(sign_bit_0(u32(8), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S439 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S440 : f32 = f32(affinity_bit_0(u32(9), _S429.affinities_0));
if(sign_bit_0(u32(9), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S440 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S441 : f32 = f32(affinity_bit_0(u32(10), _S429.affinities_0));
if(sign_bit_0(u32(10), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S441 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S442 : f32 = f32(affinity_bit_0(u32(11), _S429.affinities_0));
if(sign_bit_0(u32(11), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S442 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S443 : f32 = f32(affinity_bit_0(u32(12), _S429.affinities_0));
if(sign_bit_0(u32(12), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S443 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S444 : f32 = f32(affinity_bit_0(u32(13), _S429.affinities_0));
if(sign_bit_0(u32(13), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S444 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S445 : f32 = f32(affinity_bit_0(u32(14), _S429.affinities_0));
if(sign_bit_0(u32(14), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S445 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S446 : f32 = f32(affinity_bit_0(u32(15), _S429.affinities_0));
if(sign_bit_0(u32(15), _S429.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S446 * _S430 * select(1.0f, -1.0f, _S63) * _S429.distance_0;
var _S447 : NodeCdf_0 = shared_nodes_0[_S58 + u32(48)];
var particle_affinity_21 : u32 = (particle_affinity_20 | ((((shared_nodes_0[_S58 + u32(48)].affinities_0) & (u32(65535))))));
var _S448 : f32 = _S118 * _S56[i32(2)][u32(1)];
var _S449 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(48)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(48)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S449 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S450 : f32 = f32(affinity_bit_0(u32(1), _S447.affinities_0));
if(sign_bit_0(u32(1), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S450 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S451 : f32 = f32(affinity_bit_0(u32(2), _S447.affinities_0));
if(sign_bit_0(u32(2), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S451 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S452 : f32 = f32(affinity_bit_0(u32(3), _S447.affinities_0));
if(sign_bit_0(u32(3), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S452 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S453 : f32 = f32(affinity_bit_0(u32(4), _S447.affinities_0));
if(sign_bit_0(u32(4), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S453 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S454 : f32 = f32(affinity_bit_0(u32(5), _S447.affinities_0));
if(sign_bit_0(u32(5), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S454 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S455 : f32 = f32(affinity_bit_0(u32(6), _S447.affinities_0));
if(sign_bit_0(u32(6), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S455 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S456 : f32 = f32(affinity_bit_0(u32(7), _S447.affinities_0));
if(sign_bit_0(u32(7), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S456 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S457 : f32 = f32(affinity_bit_0(u32(8), _S447.affinities_0));
if(sign_bit_0(u32(8), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S457 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S458 : f32 = f32(affinity_bit_0(u32(9), _S447.affinities_0));
if(sign_bit_0(u32(9), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S458 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S459 : f32 = f32(affinity_bit_0(u32(10), _S447.affinities_0));
if(sign_bit_0(u32(10), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S459 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S460 : f32 = f32(affinity_bit_0(u32(11), _S447.affinities_0));
if(sign_bit_0(u32(11), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S460 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S461 : f32 = f32(affinity_bit_0(u32(12), _S447.affinities_0));
if(sign_bit_0(u32(12), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S461 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S462 : f32 = f32(affinity_bit_0(u32(13), _S447.affinities_0));
if(sign_bit_0(u32(13), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S462 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S463 : f32 = f32(affinity_bit_0(u32(14), _S447.affinities_0));
if(sign_bit_0(u32(14), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S463 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S464 : f32 = f32(affinity_bit_0(u32(15), _S447.affinities_0));
if(sign_bit_0(u32(15), _S447.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S464 * _S448 * select(1.0f, -1.0f, _S63) * _S447.distance_0;
var _S465 : NodeCdf_0 = shared_nodes_0[_S58 + u32(36)];
var particle_affinity_22 : u32 = (particle_affinity_21 | ((((shared_nodes_0[_S58 + u32(36)].affinities_0) & (u32(65535))))));
var _S466 : f32 = _S137 * _S56[i32(2)][u32(1)];
var _S467 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(36)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(36)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S467 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S468 : f32 = f32(affinity_bit_0(u32(1), _S465.affinities_0));
if(sign_bit_0(u32(1), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S468 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S469 : f32 = f32(affinity_bit_0(u32(2), _S465.affinities_0));
if(sign_bit_0(u32(2), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S469 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S470 : f32 = f32(affinity_bit_0(u32(3), _S465.affinities_0));
if(sign_bit_0(u32(3), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S470 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S471 : f32 = f32(affinity_bit_0(u32(4), _S465.affinities_0));
if(sign_bit_0(u32(4), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S471 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S472 : f32 = f32(affinity_bit_0(u32(5), _S465.affinities_0));
if(sign_bit_0(u32(5), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S472 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S473 : f32 = f32(affinity_bit_0(u32(6), _S465.affinities_0));
if(sign_bit_0(u32(6), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S473 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S474 : f32 = f32(affinity_bit_0(u32(7), _S465.affinities_0));
if(sign_bit_0(u32(7), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S474 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S475 : f32 = f32(affinity_bit_0(u32(8), _S465.affinities_0));
if(sign_bit_0(u32(8), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S475 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S476 : f32 = f32(affinity_bit_0(u32(9), _S465.affinities_0));
if(sign_bit_0(u32(9), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S476 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S477 : f32 = f32(affinity_bit_0(u32(10), _S465.affinities_0));
if(sign_bit_0(u32(10), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S477 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S478 : f32 = f32(affinity_bit_0(u32(11), _S465.affinities_0));
if(sign_bit_0(u32(11), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S478 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S479 : f32 = f32(affinity_bit_0(u32(12), _S465.affinities_0));
if(sign_bit_0(u32(12), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S479 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S480 : f32 = f32(affinity_bit_0(u32(13), _S465.affinities_0));
if(sign_bit_0(u32(13), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S480 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S481 : f32 = f32(affinity_bit_0(u32(14), _S465.affinities_0));
if(sign_bit_0(u32(14), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S481 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S482 : f32 = f32(affinity_bit_0(u32(15), _S465.affinities_0));
if(sign_bit_0(u32(15), _S465.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S482 * _S466 * select(1.0f, -1.0f, _S63) * _S465.distance_0;
var _S483 : NodeCdf_0 = shared_nodes_0[_S58 + u32(42)];
var particle_affinity_23 : u32 = (particle_affinity_22 | ((((shared_nodes_0[_S58 + u32(42)].affinities_0) & (u32(65535))))));
var _S484 : f32 = _S156 * _S56[i32(2)][u32(1)];
var _S485 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(42)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(42)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S485 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S486 : f32 = f32(affinity_bit_0(u32(1), _S483.affinities_0));
if(sign_bit_0(u32(1), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S486 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S487 : f32 = f32(affinity_bit_0(u32(2), _S483.affinities_0));
if(sign_bit_0(u32(2), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S487 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S488 : f32 = f32(affinity_bit_0(u32(3), _S483.affinities_0));
if(sign_bit_0(u32(3), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S488 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S489 : f32 = f32(affinity_bit_0(u32(4), _S483.affinities_0));
if(sign_bit_0(u32(4), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S489 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S490 : f32 = f32(affinity_bit_0(u32(5), _S483.affinities_0));
if(sign_bit_0(u32(5), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S490 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S491 : f32 = f32(affinity_bit_0(u32(6), _S483.affinities_0));
if(sign_bit_0(u32(6), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S491 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S492 : f32 = f32(affinity_bit_0(u32(7), _S483.affinities_0));
if(sign_bit_0(u32(7), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S492 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S493 : f32 = f32(affinity_bit_0(u32(8), _S483.affinities_0));
if(sign_bit_0(u32(8), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S493 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S494 : f32 = f32(affinity_bit_0(u32(9), _S483.affinities_0));
if(sign_bit_0(u32(9), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S494 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S495 : f32 = f32(affinity_bit_0(u32(10), _S483.affinities_0));
if(sign_bit_0(u32(10), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S495 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S496 : f32 = f32(affinity_bit_0(u32(11), _S483.affinities_0));
if(sign_bit_0(u32(11), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S496 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S497 : f32 = f32(affinity_bit_0(u32(12), _S483.affinities_0));
if(sign_bit_0(u32(12), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S497 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S498 : f32 = f32(affinity_bit_0(u32(13), _S483.affinities_0));
if(sign_bit_0(u32(13), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S498 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S499 : f32 = f32(affinity_bit_0(u32(14), _S483.affinities_0));
if(sign_bit_0(u32(14), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S499 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S500 : f32 = f32(affinity_bit_0(u32(15), _S483.affinities_0));
if(sign_bit_0(u32(15), _S483.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S500 * _S484 * select(1.0f, -1.0f, _S63) * _S483.distance_0;
var _S501 : NodeCdf_0 = shared_nodes_0[_S58 + u32(49)];
var particle_affinity_24 : u32 = (particle_affinity_23 | ((((shared_nodes_0[_S58 + u32(49)].affinities_0) & (u32(65535))))));
var _S502 : f32 = _S175 * _S56[i32(2)][u32(1)];
var _S503 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(49)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(49)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S503 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S504 : f32 = f32(affinity_bit_0(u32(1), _S501.affinities_0));
if(sign_bit_0(u32(1), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S504 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S505 : f32 = f32(affinity_bit_0(u32(2), _S501.affinities_0));
if(sign_bit_0(u32(2), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S505 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S506 : f32 = f32(affinity_bit_0(u32(3), _S501.affinities_0));
if(sign_bit_0(u32(3), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S506 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S507 : f32 = f32(affinity_bit_0(u32(4), _S501.affinities_0));
if(sign_bit_0(u32(4), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S507 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S508 : f32 = f32(affinity_bit_0(u32(5), _S501.affinities_0));
if(sign_bit_0(u32(5), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S508 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S509 : f32 = f32(affinity_bit_0(u32(6), _S501.affinities_0));
if(sign_bit_0(u32(6), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S509 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S510 : f32 = f32(affinity_bit_0(u32(7), _S501.affinities_0));
if(sign_bit_0(u32(7), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S510 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S511 : f32 = f32(affinity_bit_0(u32(8), _S501.affinities_0));
if(sign_bit_0(u32(8), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S511 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S512 : f32 = f32(affinity_bit_0(u32(9), _S501.affinities_0));
if(sign_bit_0(u32(9), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S512 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S513 : f32 = f32(affinity_bit_0(u32(10), _S501.affinities_0));
if(sign_bit_0(u32(10), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S513 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S514 : f32 = f32(affinity_bit_0(u32(11), _S501.affinities_0));
if(sign_bit_0(u32(11), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S514 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S515 : f32 = f32(affinity_bit_0(u32(12), _S501.affinities_0));
if(sign_bit_0(u32(12), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S515 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S516 : f32 = f32(affinity_bit_0(u32(13), _S501.affinities_0));
if(sign_bit_0(u32(13), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S516 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S517 : f32 = f32(affinity_bit_0(u32(14), _S501.affinities_0));
if(sign_bit_0(u32(14), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S517 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S518 : f32 = f32(affinity_bit_0(u32(15), _S501.affinities_0));
if(sign_bit_0(u32(15), _S501.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S518 * _S502 * select(1.0f, -1.0f, _S63) * _S501.distance_0;
var _S519 : NodeCdf_0 = shared_nodes_0[_S58 + u32(37)];
var particle_affinity_25 : u32 = (particle_affinity_24 | ((((shared_nodes_0[_S58 + u32(37)].affinities_0) & (u32(65535))))));
var _S520 : f32 = _S194 * _S56[i32(2)][u32(1)];
var _S521 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(37)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(37)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S521 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S522 : f32 = f32(affinity_bit_0(u32(1), _S519.affinities_0));
if(sign_bit_0(u32(1), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S522 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S523 : f32 = f32(affinity_bit_0(u32(2), _S519.affinities_0));
if(sign_bit_0(u32(2), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S523 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S524 : f32 = f32(affinity_bit_0(u32(3), _S519.affinities_0));
if(sign_bit_0(u32(3), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S524 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S525 : f32 = f32(affinity_bit_0(u32(4), _S519.affinities_0));
if(sign_bit_0(u32(4), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S525 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S526 : f32 = f32(affinity_bit_0(u32(5), _S519.affinities_0));
if(sign_bit_0(u32(5), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S526 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S527 : f32 = f32(affinity_bit_0(u32(6), _S519.affinities_0));
if(sign_bit_0(u32(6), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S527 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S528 : f32 = f32(affinity_bit_0(u32(7), _S519.affinities_0));
if(sign_bit_0(u32(7), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S528 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S529 : f32 = f32(affinity_bit_0(u32(8), _S519.affinities_0));
if(sign_bit_0(u32(8), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S529 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S530 : f32 = f32(affinity_bit_0(u32(9), _S519.affinities_0));
if(sign_bit_0(u32(9), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S530 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S531 : f32 = f32(affinity_bit_0(u32(10), _S519.affinities_0));
if(sign_bit_0(u32(10), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S531 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S532 : f32 = f32(affinity_bit_0(u32(11), _S519.affinities_0));
if(sign_bit_0(u32(11), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S532 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S533 : f32 = f32(affinity_bit_0(u32(12), _S519.affinities_0));
if(sign_bit_0(u32(12), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S533 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S534 : f32 = f32(affinity_bit_0(u32(13), _S519.affinities_0));
if(sign_bit_0(u32(13), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S534 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S535 : f32 = f32(affinity_bit_0(u32(14), _S519.affinities_0));
if(sign_bit_0(u32(14), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S535 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S536 : f32 = f32(affinity_bit_0(u32(15), _S519.affinities_0));
if(sign_bit_0(u32(15), _S519.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S536 * _S520 * select(1.0f, -1.0f, _S63) * _S519.distance_0;
var _S537 : NodeCdf_0 = shared_nodes_0[_S58 + u32(43)];
var particle_affinity_26 : u32 = (particle_affinity_25 | ((((shared_nodes_0[_S58 + u32(43)].affinities_0) & (u32(65535))))));
var _S538 : f32 = _S213 * _S56[i32(2)][u32(1)];
var _S539 : f32 = f32(affinity_bit_0(u32(0), shared_nodes_0[_S58 + u32(43)].affinities_0));
if(sign_bit_0(u32(0), shared_nodes_0[_S58 + u32(43)].affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(0));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(0)] = affinity_signs_0[u32(0)] + _S539 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S540 : f32 = f32(affinity_bit_0(u32(1), _S537.affinities_0));
if(sign_bit_0(u32(1), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(1));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(1)] = affinity_signs_0[u32(1)] + _S540 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S541 : f32 = f32(affinity_bit_0(u32(2), _S537.affinities_0));
if(sign_bit_0(u32(2), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(2));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(2)] = affinity_signs_0[u32(2)] + _S541 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S542 : f32 = f32(affinity_bit_0(u32(3), _S537.affinities_0));
if(sign_bit_0(u32(3), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(3));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(3)] = affinity_signs_0[u32(3)] + _S542 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S543 : f32 = f32(affinity_bit_0(u32(4), _S537.affinities_0));
if(sign_bit_0(u32(4), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(4));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(4)] = affinity_signs_0[u32(4)] + _S543 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S544 : f32 = f32(affinity_bit_0(u32(5), _S537.affinities_0));
if(sign_bit_0(u32(5), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(5));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(5)] = affinity_signs_0[u32(5)] + _S544 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S545 : f32 = f32(affinity_bit_0(u32(6), _S537.affinities_0));
if(sign_bit_0(u32(6), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(6));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(6)] = affinity_signs_0[u32(6)] + _S545 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S546 : f32 = f32(affinity_bit_0(u32(7), _S537.affinities_0));
if(sign_bit_0(u32(7), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(7));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(7)] = affinity_signs_0[u32(7)] + _S546 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S547 : f32 = f32(affinity_bit_0(u32(8), _S537.affinities_0));
if(sign_bit_0(u32(8), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(8));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(8)] = affinity_signs_0[u32(8)] + _S547 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S548 : f32 = f32(affinity_bit_0(u32(9), _S537.affinities_0));
if(sign_bit_0(u32(9), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(9));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(9)] = affinity_signs_0[u32(9)] + _S548 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S549 : f32 = f32(affinity_bit_0(u32(10), _S537.affinities_0));
if(sign_bit_0(u32(10), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(10));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(10)] = affinity_signs_0[u32(10)] + _S549 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S550 : f32 = f32(affinity_bit_0(u32(11), _S537.affinities_0));
if(sign_bit_0(u32(11), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(11));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(11)] = affinity_signs_0[u32(11)] + _S550 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S551 : f32 = f32(affinity_bit_0(u32(12), _S537.affinities_0));
if(sign_bit_0(u32(12), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(12));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(12)] = affinity_signs_0[u32(12)] + _S551 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S552 : f32 = f32(affinity_bit_0(u32(13), _S537.affinities_0));
if(sign_bit_0(u32(13), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(13));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(13)] = affinity_signs_0[u32(13)] + _S552 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S553 : f32 = f32(affinity_bit_0(u32(14), _S537.affinities_0));
if(sign_bit_0(u32(14), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(14));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(14)] = affinity_signs_0[u32(14)] + _S553 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var _S554 : f32 = f32(affinity_bit_0(u32(15), _S537.affinities_0));
if(sign_bit_0(u32(15), _S537.affinities_0))
{
_S63 = !shape_has_solid_interior_0(u32(15));
}
else
{
_S63 = false;
}
affinity_signs_0[u32(15)] = affinity_signs_0[u32(15)] + _S554 * _S538 * select(1.0f, -1.0f, _S63) * _S537.distance_0;
var particle_affinity_27 : u32;
if(((_S53 & (u32(1)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_26 | (select(u32(0), u32(65536), (affinity_signs_0[u32(0)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_26 | (((_S53 & (u32(65536))))));
}
if(((_S53 & (u32(2)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(131072), (affinity_signs_0[u32(1)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(131072))))));
}
if(((_S53 & (u32(4)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(262144), (affinity_signs_0[u32(2)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(262144))))));
}
if(((_S53 & (u32(8)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(524288), (affinity_signs_0[u32(3)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(524288))))));
}
if(((_S53 & (u32(16)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(1048576), (affinity_signs_0[u32(4)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(1048576))))));
}
if(((_S53 & (u32(32)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(2097152), (affinity_signs_0[u32(5)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(2097152))))));
}
if(((_S53 & (u32(64)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(4194304), (affinity_signs_0[u32(6)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(4194304))))));
}
if(((_S53 & (u32(128)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(8388608), (affinity_signs_0[u32(7)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(8388608))))));
}
if(((_S53 & (u32(256)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(16777216), (affinity_signs_0[u32(8)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(16777216))))));
}
if(((_S53 & (u32(512)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(33554432), (affinity_signs_0[u32(9)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(33554432))))));
}
if(((_S53 & (u32(1024)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(67108864), (affinity_signs_0[u32(10)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(67108864))))));
}
if(((_S53 & (u32(2048)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(134217728), (affinity_signs_0[u32(11)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(134217728))))));
}
if(((_S53 & (u32(4096)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(268435456), (affinity_signs_0[u32(12)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(268435456))))));
}
if(((_S53 & (u32(8192)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(536870912), (affinity_signs_0[u32(13)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(536870912))))));
}
if(((_S53 & (u32(16384)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(1073741824), (affinity_signs_0[u32(14)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(1073741824))))));
}
if(((_S53 & (u32(32768)))) == u32(0))
{
particle_affinity_27 = (particle_affinity_27 | (select(u32(0), u32(2147483648), (affinity_signs_0[u32(15)]) < 0.0f)));
}
else
{
particle_affinity_27 = (particle_affinity_27 | (((_S53 & (u32(2147483648))))));
}
var _S555 : mat4x4<f32> = mat4x4<f32>(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
var _S556 : vec4<f32> = vec4<f32>(0.0f);
var cell_data_0 : NodeCdf_0 = shared_nodes_0[_S58 + u32(86)];
var _S557 : vec3<f32> = vec3<f32>(_S51);
var _S558 : u32 = ((((shared_nodes_0[_S58 + u32(86)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S559 : u32 = (particle_affinity_27 >> (u32(16)));
var _S560 : u32 = ((((((shared_nodes_0[_S58 + u32(86)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S558));
var _S561 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(2), u32(2))) * _S557, 1.0f);
var qtq_0 : mat4x4<f32>;
var qtu_0 : vec4<f32>;
if(_S558 != u32(0))
{
if(_S560 == u32(0))
{
var _S562 : mat4x4<f32> = outer_product_0(_S561, _S561);
var _S563 : mat4x4<f32> = mat4x4<f32>(_S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61);
var _S564 : vec4<f32> = _S561 * vec4<f32>(_S61) * vec4<f32>(cell_data_0.distance_0);
qtq_0 = mat4x4<f32>(_S562[0] * _S563[0], _S562[1] * _S563[1], _S562[2] * _S563[2], _S562[3] * _S563[3]);
qtu_0 = _S564;
}
else
{
var _S565 : mat4x4<f32> = outer_product_0(_S561, _S561);
var _S566 : mat4x4<f32> = mat4x4<f32>(_S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61, _S61);
var _S567 : vec4<f32> = _S561 * vec4<f32>(_S61) * vec4<f32>(- cell_data_0.distance_0);
qtq_0 = mat4x4<f32>(_S565[0] * _S566[0], _S565[1] * _S566[1], _S565[2] * _S566[2], _S565[3] * _S566[3]);
qtu_0 = _S567;
}
}
else
{
qtq_0 = _S555;
qtu_0 = _S556;
}
var cell_data_1 : NodeCdf_0 = shared_nodes_0[_S58 + u32(74)];
var _S568 : u32 = ((((shared_nodes_0[_S58 + u32(74)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S569 : u32 = ((((((shared_nodes_0[_S58 + u32(74)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S568));
var _S570 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(0), u32(2))) * _S557, 1.0f);
if(_S568 != u32(0))
{
if(_S569 == u32(0))
{
var _S571 : mat4x4<f32> = outer_product_0(_S570, _S570);
var _S572 : mat4x4<f32> = mat4x4<f32>(_S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81);
var qtu_1 : vec4<f32> = qtu_0 + _S570 * vec4<f32>(_S81) * vec4<f32>(cell_data_1.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S571[0] * _S572[0], _S571[1] * _S572[1], _S571[2] * _S572[2], _S571[3] * _S572[3]);
qtu_0 = qtu_1;
}
else
{
var _S573 : mat4x4<f32> = outer_product_0(_S570, _S570);
var _S574 : mat4x4<f32> = mat4x4<f32>(_S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81, _S81);
var qtu_2 : vec4<f32> = qtu_0 + _S570 * vec4<f32>(_S81) * vec4<f32>(- cell_data_1.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S573[0] * _S574[0], _S573[1] * _S574[1], _S573[2] * _S574[2], _S573[3] * _S574[3]);
qtu_0 = qtu_2;
}
}
var cell_data_2 : NodeCdf_0 = shared_nodes_0[_S58 + u32(80)];
var _S575 : u32 = ((((shared_nodes_0[_S58 + u32(80)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S576 : u32 = ((((((shared_nodes_0[_S58 + u32(80)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S575));
var _S577 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(1), u32(2))) * _S557, 1.0f);
if(_S575 != u32(0))
{
if(_S576 == u32(0))
{
var _S578 : mat4x4<f32> = outer_product_0(_S577, _S577);
var _S579 : mat4x4<f32> = mat4x4<f32>(_S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100);
var qtu_3 : vec4<f32> = qtu_0 + _S577 * vec4<f32>(_S100) * vec4<f32>(cell_data_2.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S578[0] * _S579[0], _S578[1] * _S579[1], _S578[2] * _S579[2], _S578[3] * _S579[3]);
qtu_0 = qtu_3;
}
else
{
var _S580 : mat4x4<f32> = outer_product_0(_S577, _S577);
var _S581 : mat4x4<f32> = mat4x4<f32>(_S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100, _S100);
var qtu_4 : vec4<f32> = qtu_0 + _S577 * vec4<f32>(_S100) * vec4<f32>(- cell_data_2.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S580[0] * _S581[0], _S580[1] * _S581[1], _S580[2] * _S581[2], _S580[3] * _S581[3]);
qtu_0 = qtu_4;
}
}
var cell_data_3 : NodeCdf_0 = shared_nodes_0[_S58 + u32(84)];
var _S582 : u32 = ((((shared_nodes_0[_S58 + u32(84)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S583 : u32 = ((((((shared_nodes_0[_S58 + u32(84)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S582));
var _S584 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(2), u32(2))) * _S557, 1.0f);
if(_S582 != u32(0))
{
if(_S583 == u32(0))
{
var _S585 : mat4x4<f32> = outer_product_0(_S584, _S584);
var _S586 : mat4x4<f32> = mat4x4<f32>(_S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119);
var qtu_5 : vec4<f32> = qtu_0 + _S584 * vec4<f32>(_S119) * vec4<f32>(cell_data_3.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S585[0] * _S586[0], _S585[1] * _S586[1], _S585[2] * _S586[2], _S585[3] * _S586[3]);
qtu_0 = qtu_5;
}
else
{
var _S587 : mat4x4<f32> = outer_product_0(_S584, _S584);
var _S588 : mat4x4<f32> = mat4x4<f32>(_S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119, _S119);
var qtu_6 : vec4<f32> = qtu_0 + _S584 * vec4<f32>(_S119) * vec4<f32>(- cell_data_3.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S587[0] * _S588[0], _S587[1] * _S588[1], _S587[2] * _S588[2], _S587[3] * _S588[3]);
qtu_0 = qtu_6;
}
}
var cell_data_4 : NodeCdf_0 = shared_nodes_0[_S58 + u32(72)];
var _S589 : u32 = ((((shared_nodes_0[_S58 + u32(72)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S590 : u32 = ((((((shared_nodes_0[_S58 + u32(72)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S589));
var _S591 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(0), u32(2))) * _S557, 1.0f);
if(_S589 != u32(0))
{
if(_S590 == u32(0))
{
var _S592 : mat4x4<f32> = outer_product_0(_S591, _S591);
var _S593 : mat4x4<f32> = mat4x4<f32>(_S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138);
var qtu_7 : vec4<f32> = qtu_0 + _S591 * vec4<f32>(_S138) * vec4<f32>(cell_data_4.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S592[0] * _S593[0], _S592[1] * _S593[1], _S592[2] * _S593[2], _S592[3] * _S593[3]);
qtu_0 = qtu_7;
}
else
{
var _S594 : mat4x4<f32> = outer_product_0(_S591, _S591);
var _S595 : mat4x4<f32> = mat4x4<f32>(_S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138, _S138);
var qtu_8 : vec4<f32> = qtu_0 + _S591 * vec4<f32>(_S138) * vec4<f32>(- cell_data_4.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S594[0] * _S595[0], _S594[1] * _S595[1], _S594[2] * _S595[2], _S594[3] * _S595[3]);
qtu_0 = qtu_8;
}
}
var cell_data_5 : NodeCdf_0 = shared_nodes_0[_S58 + u32(78)];
var _S596 : u32 = ((((shared_nodes_0[_S58 + u32(78)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S597 : u32 = ((((((shared_nodes_0[_S58 + u32(78)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S596));
var _S598 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(1), u32(2))) * _S557, 1.0f);
if(_S596 != u32(0))
{
if(_S597 == u32(0))
{
var _S599 : mat4x4<f32> = outer_product_0(_S598, _S598);
var _S600 : mat4x4<f32> = mat4x4<f32>(_S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157);
var qtu_9 : vec4<f32> = qtu_0 + _S598 * vec4<f32>(_S157) * vec4<f32>(cell_data_5.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S599[0] * _S600[0], _S599[1] * _S600[1], _S599[2] * _S600[2], _S599[3] * _S600[3]);
qtu_0 = qtu_9;
}
else
{
var _S601 : mat4x4<f32> = outer_product_0(_S598, _S598);
var _S602 : mat4x4<f32> = mat4x4<f32>(_S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157, _S157);
var qtu_10 : vec4<f32> = qtu_0 + _S598 * vec4<f32>(_S157) * vec4<f32>(- cell_data_5.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S601[0] * _S602[0], _S601[1] * _S602[1], _S601[2] * _S602[2], _S601[3] * _S602[3]);
qtu_0 = qtu_10;
}
}
var cell_data_6 : NodeCdf_0 = shared_nodes_0[_S58 + u32(85)];
var _S603 : u32 = ((((shared_nodes_0[_S58 + u32(85)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S604 : u32 = ((((((shared_nodes_0[_S58 + u32(85)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S603));
var _S605 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(2), u32(2))) * _S557, 1.0f);
if(_S603 != u32(0))
{
if(_S604 == u32(0))
{
var _S606 : mat4x4<f32> = outer_product_0(_S605, _S605);
var _S607 : mat4x4<f32> = mat4x4<f32>(_S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176);
var qtu_11 : vec4<f32> = qtu_0 + _S605 * vec4<f32>(_S176) * vec4<f32>(cell_data_6.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S606[0] * _S607[0], _S606[1] * _S607[1], _S606[2] * _S607[2], _S606[3] * _S607[3]);
qtu_0 = qtu_11;
}
else
{
var _S608 : mat4x4<f32> = outer_product_0(_S605, _S605);
var _S609 : mat4x4<f32> = mat4x4<f32>(_S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176, _S176);
var qtu_12 : vec4<f32> = qtu_0 + _S605 * vec4<f32>(_S176) * vec4<f32>(- cell_data_6.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S608[0] * _S609[0], _S608[1] * _S609[1], _S608[2] * _S609[2], _S608[3] * _S609[3]);
qtu_0 = qtu_12;
}
}
var cell_data_7 : NodeCdf_0 = shared_nodes_0[_S58 + u32(73)];
var _S610 : u32 = ((((shared_nodes_0[_S58 + u32(73)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S611 : u32 = ((((((shared_nodes_0[_S58 + u32(73)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S610));
var _S612 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(0), u32(2))) * _S557, 1.0f);
if(_S610 != u32(0))
{
if(_S611 == u32(0))
{
var _S613 : mat4x4<f32> = outer_product_0(_S612, _S612);
var _S614 : mat4x4<f32> = mat4x4<f32>(_S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195);
var qtu_13 : vec4<f32> = qtu_0 + _S612 * vec4<f32>(_S195) * vec4<f32>(cell_data_7.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S613[0] * _S614[0], _S613[1] * _S614[1], _S613[2] * _S614[2], _S613[3] * _S614[3]);
qtu_0 = qtu_13;
}
else
{
var _S615 : mat4x4<f32> = outer_product_0(_S612, _S612);
var _S616 : mat4x4<f32> = mat4x4<f32>(_S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195, _S195);
var qtu_14 : vec4<f32> = qtu_0 + _S612 * vec4<f32>(_S195) * vec4<f32>(- cell_data_7.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S615[0] * _S616[0], _S615[1] * _S616[1], _S615[2] * _S616[2], _S615[3] * _S616[3]);
qtu_0 = qtu_14;
}
}
var cell_data_8 : NodeCdf_0 = shared_nodes_0[_S58 + u32(79)];
var _S617 : u32 = ((((shared_nodes_0[_S58 + u32(79)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S618 : u32 = ((((((shared_nodes_0[_S58 + u32(79)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S617));
var _S619 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(1), u32(2))) * _S557, 1.0f);
if(_S617 != u32(0))
{
if(_S618 == u32(0))
{
var _S620 : mat4x4<f32> = outer_product_0(_S619, _S619);
var _S621 : mat4x4<f32> = mat4x4<f32>(_S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214);
var qtu_15 : vec4<f32> = qtu_0 + _S619 * vec4<f32>(_S214) * vec4<f32>(cell_data_8.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S620[0] * _S621[0], _S620[1] * _S621[1], _S620[2] * _S621[2], _S620[3] * _S621[3]);
qtu_0 = qtu_15;
}
else
{
var _S622 : mat4x4<f32> = outer_product_0(_S619, _S619);
var _S623 : mat4x4<f32> = mat4x4<f32>(_S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214, _S214);
var qtu_16 : vec4<f32> = qtu_0 + _S619 * vec4<f32>(_S214) * vec4<f32>(- cell_data_8.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S622[0] * _S623[0], _S622[1] * _S623[1], _S622[2] * _S623[2], _S622[3] * _S623[3]);
qtu_0 = qtu_16;
}
}
var cell_data_9 : NodeCdf_0 = shared_nodes_0[_S58 + u32(14)];
var _S624 : u32 = ((((shared_nodes_0[_S58 + u32(14)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S625 : u32 = ((((((shared_nodes_0[_S58 + u32(14)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S624));
var _S626 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(2), u32(0))) * _S557, 1.0f);
if(_S624 != u32(0))
{
if(_S625 == u32(0))
{
var _S627 : mat4x4<f32> = outer_product_0(_S626, _S626);
var _S628 : mat4x4<f32> = mat4x4<f32>(_S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232);
var qtu_17 : vec4<f32> = qtu_0 + _S626 * vec4<f32>(_S232) * vec4<f32>(cell_data_9.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S627[0] * _S628[0], _S627[1] * _S628[1], _S627[2] * _S628[2], _S627[3] * _S628[3]);
qtu_0 = qtu_17;
}
else
{
var _S629 : mat4x4<f32> = outer_product_0(_S626, _S626);
var _S630 : mat4x4<f32> = mat4x4<f32>(_S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232, _S232);
var qtu_18 : vec4<f32> = qtu_0 + _S626 * vec4<f32>(_S232) * vec4<f32>(- cell_data_9.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S629[0] * _S630[0], _S629[1] * _S630[1], _S629[2] * _S630[2], _S629[3] * _S630[3]);
qtu_0 = qtu_18;
}
}
var cell_data_10 : NodeCdf_0 = shared_nodes_0[_S58 + u32(2)];
var _S631 : u32 = ((((shared_nodes_0[_S58 + u32(2)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S632 : u32 = ((((((shared_nodes_0[_S58 + u32(2)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S631));
var _S633 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(0), u32(0))) * _S557, 1.0f);
if(_S631 != u32(0))
{
if(_S632 == u32(0))
{
var _S634 : mat4x4<f32> = outer_product_0(_S633, _S633);
var _S635 : mat4x4<f32> = mat4x4<f32>(_S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250);
var qtu_19 : vec4<f32> = qtu_0 + _S633 * vec4<f32>(_S250) * vec4<f32>(cell_data_10.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S634[0] * _S635[0], _S634[1] * _S635[1], _S634[2] * _S635[2], _S634[3] * _S635[3]);
qtu_0 = qtu_19;
}
else
{
var _S636 : mat4x4<f32> = outer_product_0(_S633, _S633);
var _S637 : mat4x4<f32> = mat4x4<f32>(_S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250, _S250);
var qtu_20 : vec4<f32> = qtu_0 + _S633 * vec4<f32>(_S250) * vec4<f32>(- cell_data_10.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S636[0] * _S637[0], _S636[1] * _S637[1], _S636[2] * _S637[2], _S636[3] * _S637[3]);
qtu_0 = qtu_20;
}
}
var cell_data_11 : NodeCdf_0 = shared_nodes_0[_S58 + u32(8)];
var _S638 : u32 = ((((shared_nodes_0[_S58 + u32(8)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S639 : u32 = ((((((shared_nodes_0[_S58 + u32(8)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S638));
var _S640 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(1), u32(0))) * _S557, 1.0f);
if(_S638 != u32(0))
{
if(_S639 == u32(0))
{
var _S641 : mat4x4<f32> = outer_product_0(_S640, _S640);
var _S642 : mat4x4<f32> = mat4x4<f32>(_S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268);
var qtu_21 : vec4<f32> = qtu_0 + _S640 * vec4<f32>(_S268) * vec4<f32>(cell_data_11.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S641[0] * _S642[0], _S641[1] * _S642[1], _S641[2] * _S642[2], _S641[3] * _S642[3]);
qtu_0 = qtu_21;
}
else
{
var _S643 : mat4x4<f32> = outer_product_0(_S640, _S640);
var _S644 : mat4x4<f32> = mat4x4<f32>(_S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268, _S268);
var qtu_22 : vec4<f32> = qtu_0 + _S640 * vec4<f32>(_S268) * vec4<f32>(- cell_data_11.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S643[0] * _S644[0], _S643[1] * _S644[1], _S643[2] * _S644[2], _S643[3] * _S644[3]);
qtu_0 = qtu_22;
}
}
var cell_data_12 : NodeCdf_0 = shared_nodes_0[_S58 + u32(12)];
var _S645 : u32 = ((((shared_nodes_0[_S58 + u32(12)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S646 : u32 = ((((((shared_nodes_0[_S58 + u32(12)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S645));
var _S647 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(2), u32(0))) * _S557, 1.0f);
if(_S645 != u32(0))
{
if(_S646 == u32(0))
{
var _S648 : mat4x4<f32> = outer_product_0(_S647, _S647);
var _S649 : mat4x4<f32> = mat4x4<f32>(_S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286);
var qtu_23 : vec4<f32> = qtu_0 + _S647 * vec4<f32>(_S286) * vec4<f32>(cell_data_12.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S648[0] * _S649[0], _S648[1] * _S649[1], _S648[2] * _S649[2], _S648[3] * _S649[3]);
qtu_0 = qtu_23;
}
else
{
var _S650 : mat4x4<f32> = outer_product_0(_S647, _S647);
var _S651 : mat4x4<f32> = mat4x4<f32>(_S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286, _S286);
var qtu_24 : vec4<f32> = qtu_0 + _S647 * vec4<f32>(_S286) * vec4<f32>(- cell_data_12.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S650[0] * _S651[0], _S650[1] * _S651[1], _S650[2] * _S651[2], _S650[3] * _S651[3]);
qtu_0 = qtu_24;
}
}
var cell_data_13 : NodeCdf_0 = shared_nodes_0[_S58];
var _S652 : u32 = ((((shared_nodes_0[_S58].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S653 : u32 = ((((((shared_nodes_0[_S58].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S652));
var _S654 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(0), u32(0))) * _S557, 1.0f);
if(_S652 != u32(0))
{
if(_S653 == u32(0))
{
var _S655 : mat4x4<f32> = outer_product_0(_S654, _S654);
var _S656 : mat4x4<f32> = mat4x4<f32>(_S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304);
var qtu_25 : vec4<f32> = qtu_0 + _S654 * vec4<f32>(_S304) * vec4<f32>(cell_data_13.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S655[0] * _S656[0], _S655[1] * _S656[1], _S655[2] * _S656[2], _S655[3] * _S656[3]);
qtu_0 = qtu_25;
}
else
{
var _S657 : mat4x4<f32> = outer_product_0(_S654, _S654);
var _S658 : mat4x4<f32> = mat4x4<f32>(_S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304, _S304);
var qtu_26 : vec4<f32> = qtu_0 + _S654 * vec4<f32>(_S304) * vec4<f32>(- cell_data_13.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S657[0] * _S658[0], _S657[1] * _S658[1], _S657[2] * _S658[2], _S657[3] * _S658[3]);
qtu_0 = qtu_26;
}
}
var cell_data_14 : NodeCdf_0 = shared_nodes_0[_S58 + u32(6)];
var _S659 : u32 = ((((shared_nodes_0[_S58 + u32(6)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S660 : u32 = ((((((shared_nodes_0[_S58 + u32(6)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S659));
var _S661 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(1), u32(0))) * _S557, 1.0f);
if(_S659 != u32(0))
{
if(_S660 == u32(0))
{
var _S662 : mat4x4<f32> = outer_product_0(_S661, _S661);
var _S663 : mat4x4<f32> = mat4x4<f32>(_S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322);
var qtu_27 : vec4<f32> = qtu_0 + _S661 * vec4<f32>(_S322) * vec4<f32>(cell_data_14.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S662[0] * _S663[0], _S662[1] * _S663[1], _S662[2] * _S663[2], _S662[3] * _S663[3]);
qtu_0 = qtu_27;
}
else
{
var _S664 : mat4x4<f32> = outer_product_0(_S661, _S661);
var _S665 : mat4x4<f32> = mat4x4<f32>(_S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322, _S322);
var qtu_28 : vec4<f32> = qtu_0 + _S661 * vec4<f32>(_S322) * vec4<f32>(- cell_data_14.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S664[0] * _S665[0], _S664[1] * _S665[1], _S664[2] * _S665[2], _S664[3] * _S665[3]);
qtu_0 = qtu_28;
}
}
var cell_data_15 : NodeCdf_0 = shared_nodes_0[_S58 + u32(13)];
var _S666 : u32 = ((((shared_nodes_0[_S58 + u32(13)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S667 : u32 = ((((((shared_nodes_0[_S58 + u32(13)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S666));
var _S668 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(2), u32(0))) * _S557, 1.0f);
if(_S666 != u32(0))
{
if(_S667 == u32(0))
{
var _S669 : mat4x4<f32> = outer_product_0(_S668, _S668);
var _S670 : mat4x4<f32> = mat4x4<f32>(_S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340);
var qtu_29 : vec4<f32> = qtu_0 + _S668 * vec4<f32>(_S340) * vec4<f32>(cell_data_15.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S669[0] * _S670[0], _S669[1] * _S670[1], _S669[2] * _S670[2], _S669[3] * _S670[3]);
qtu_0 = qtu_29;
}
else
{
var _S671 : mat4x4<f32> = outer_product_0(_S668, _S668);
var _S672 : mat4x4<f32> = mat4x4<f32>(_S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340, _S340);
var qtu_30 : vec4<f32> = qtu_0 + _S668 * vec4<f32>(_S340) * vec4<f32>(- cell_data_15.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S671[0] * _S672[0], _S671[1] * _S672[1], _S671[2] * _S672[2], _S671[3] * _S672[3]);
qtu_0 = qtu_30;
}
}
var cell_data_16 : NodeCdf_0 = shared_nodes_0[_S58 + u32(1)];
var _S673 : u32 = ((((shared_nodes_0[_S58 + u32(1)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S674 : u32 = ((((((shared_nodes_0[_S58 + u32(1)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S673));
var _S675 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(0), u32(0))) * _S557, 1.0f);
if(_S673 != u32(0))
{
if(_S674 == u32(0))
{
var _S676 : mat4x4<f32> = outer_product_0(_S675, _S675);
var _S677 : mat4x4<f32> = mat4x4<f32>(_S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358);
var qtu_31 : vec4<f32> = qtu_0 + _S675 * vec4<f32>(_S358) * vec4<f32>(cell_data_16.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S676[0] * _S677[0], _S676[1] * _S677[1], _S676[2] * _S677[2], _S676[3] * _S677[3]);
qtu_0 = qtu_31;
}
else
{
var _S678 : mat4x4<f32> = outer_product_0(_S675, _S675);
var _S679 : mat4x4<f32> = mat4x4<f32>(_S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358, _S358);
var qtu_32 : vec4<f32> = qtu_0 + _S675 * vec4<f32>(_S358) * vec4<f32>(- cell_data_16.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S678[0] * _S679[0], _S678[1] * _S679[1], _S678[2] * _S679[2], _S678[3] * _S679[3]);
qtu_0 = qtu_32;
}
}
var cell_data_17 : NodeCdf_0 = shared_nodes_0[_S58 + u32(7)];
var _S680 : u32 = ((((shared_nodes_0[_S58 + u32(7)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S681 : u32 = ((((((shared_nodes_0[_S58 + u32(7)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S680));
var _S682 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(1), u32(0))) * _S557, 1.0f);
if(_S680 != u32(0))
{
if(_S681 == u32(0))
{
var _S683 : mat4x4<f32> = outer_product_0(_S682, _S682);
var _S684 : mat4x4<f32> = mat4x4<f32>(_S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376);
var qtu_33 : vec4<f32> = qtu_0 + _S682 * vec4<f32>(_S376) * vec4<f32>(cell_data_17.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S683[0] * _S684[0], _S683[1] * _S684[1], _S683[2] * _S684[2], _S683[3] * _S684[3]);
qtu_0 = qtu_33;
}
else
{
var _S685 : mat4x4<f32> = outer_product_0(_S682, _S682);
var _S686 : mat4x4<f32> = mat4x4<f32>(_S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376, _S376);
var qtu_34 : vec4<f32> = qtu_0 + _S682 * vec4<f32>(_S376) * vec4<f32>(- cell_data_17.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S685[0] * _S686[0], _S685[1] * _S686[1], _S685[2] * _S686[2], _S685[3] * _S686[3]);
qtu_0 = qtu_34;
}
}
var cell_data_18 : NodeCdf_0 = shared_nodes_0[_S58 + u32(50)];
var _S687 : u32 = ((((shared_nodes_0[_S58 + u32(50)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S688 : u32 = ((((((shared_nodes_0[_S58 + u32(50)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S687));
var _S689 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(2), u32(1))) * _S557, 1.0f);
if(_S687 != u32(0))
{
if(_S688 == u32(0))
{
var _S690 : mat4x4<f32> = outer_product_0(_S689, _S689);
var _S691 : mat4x4<f32> = mat4x4<f32>(_S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394);
var qtu_35 : vec4<f32> = qtu_0 + _S689 * vec4<f32>(_S394) * vec4<f32>(cell_data_18.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S690[0] * _S691[0], _S690[1] * _S691[1], _S690[2] * _S691[2], _S690[3] * _S691[3]);
qtu_0 = qtu_35;
}
else
{
var _S692 : mat4x4<f32> = outer_product_0(_S689, _S689);
var _S693 : mat4x4<f32> = mat4x4<f32>(_S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394, _S394);
var qtu_36 : vec4<f32> = qtu_0 + _S689 * vec4<f32>(_S394) * vec4<f32>(- cell_data_18.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S692[0] * _S693[0], _S692[1] * _S693[1], _S692[2] * _S693[2], _S692[3] * _S693[3]);
qtu_0 = qtu_36;
}
}
var cell_data_19 : NodeCdf_0 = shared_nodes_0[_S58 + u32(38)];
var _S694 : u32 = ((((shared_nodes_0[_S58 + u32(38)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S695 : u32 = ((((((shared_nodes_0[_S58 + u32(38)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S694));
var _S696 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(0), u32(1))) * _S557, 1.0f);
if(_S694 != u32(0))
{
if(_S695 == u32(0))
{
var _S697 : mat4x4<f32> = outer_product_0(_S696, _S696);
var _S698 : mat4x4<f32> = mat4x4<f32>(_S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412);
var qtu_37 : vec4<f32> = qtu_0 + _S696 * vec4<f32>(_S412) * vec4<f32>(cell_data_19.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S697[0] * _S698[0], _S697[1] * _S698[1], _S697[2] * _S698[2], _S697[3] * _S698[3]);
qtu_0 = qtu_37;
}
else
{
var _S699 : mat4x4<f32> = outer_product_0(_S696, _S696);
var _S700 : mat4x4<f32> = mat4x4<f32>(_S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412, _S412);
var qtu_38 : vec4<f32> = qtu_0 + _S696 * vec4<f32>(_S412) * vec4<f32>(- cell_data_19.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S699[0] * _S700[0], _S699[1] * _S700[1], _S699[2] * _S700[2], _S699[3] * _S700[3]);
qtu_0 = qtu_38;
}
}
var cell_data_20 : NodeCdf_0 = shared_nodes_0[_S58 + u32(44)];
var _S701 : u32 = ((((shared_nodes_0[_S58 + u32(44)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S702 : u32 = ((((((shared_nodes_0[_S58 + u32(44)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S701));
var _S703 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(2), u32(1), u32(1))) * _S557, 1.0f);
if(_S701 != u32(0))
{
if(_S702 == u32(0))
{
var _S704 : mat4x4<f32> = outer_product_0(_S703, _S703);
var _S705 : mat4x4<f32> = mat4x4<f32>(_S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430);
var qtu_39 : vec4<f32> = qtu_0 + _S703 * vec4<f32>(_S430) * vec4<f32>(cell_data_20.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S704[0] * _S705[0], _S704[1] * _S705[1], _S704[2] * _S705[2], _S704[3] * _S705[3]);
qtu_0 = qtu_39;
}
else
{
var _S706 : mat4x4<f32> = outer_product_0(_S703, _S703);
var _S707 : mat4x4<f32> = mat4x4<f32>(_S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430, _S430);
var qtu_40 : vec4<f32> = qtu_0 + _S703 * vec4<f32>(_S430) * vec4<f32>(- cell_data_20.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S706[0] * _S707[0], _S706[1] * _S707[1], _S706[2] * _S707[2], _S706[3] * _S707[3]);
qtu_0 = qtu_40;
}
}
var cell_data_21 : NodeCdf_0 = shared_nodes_0[_S58 + u32(48)];
var _S708 : u32 = ((((shared_nodes_0[_S58 + u32(48)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S709 : u32 = ((((((shared_nodes_0[_S58 + u32(48)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S708));
var _S710 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(2), u32(1))) * _S557, 1.0f);
if(_S708 != u32(0))
{
if(_S709 == u32(0))
{
var _S711 : mat4x4<f32> = outer_product_0(_S710, _S710);
var _S712 : mat4x4<f32> = mat4x4<f32>(_S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448);
var qtu_41 : vec4<f32> = qtu_0 + _S710 * vec4<f32>(_S448) * vec4<f32>(cell_data_21.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S711[0] * _S712[0], _S711[1] * _S712[1], _S711[2] * _S712[2], _S711[3] * _S712[3]);
qtu_0 = qtu_41;
}
else
{
var _S713 : mat4x4<f32> = outer_product_0(_S710, _S710);
var _S714 : mat4x4<f32> = mat4x4<f32>(_S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448, _S448);
var qtu_42 : vec4<f32> = qtu_0 + _S710 * vec4<f32>(_S448) * vec4<f32>(- cell_data_21.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S713[0] * _S714[0], _S713[1] * _S714[1], _S713[2] * _S714[2], _S713[3] * _S714[3]);
qtu_0 = qtu_42;
}
}
var cell_data_22 : NodeCdf_0 = shared_nodes_0[_S58 + u32(36)];
var _S715 : u32 = ((((shared_nodes_0[_S58 + u32(36)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S716 : u32 = ((((((shared_nodes_0[_S58 + u32(36)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S715));
var _S717 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(0), u32(1))) * _S557, 1.0f);
if(_S715 != u32(0))
{
if(_S716 == u32(0))
{
var _S718 : mat4x4<f32> = outer_product_0(_S717, _S717);
var _S719 : mat4x4<f32> = mat4x4<f32>(_S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466);
var qtu_43 : vec4<f32> = qtu_0 + _S717 * vec4<f32>(_S466) * vec4<f32>(cell_data_22.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S718[0] * _S719[0], _S718[1] * _S719[1], _S718[2] * _S719[2], _S718[3] * _S719[3]);
qtu_0 = qtu_43;
}
else
{
var _S720 : mat4x4<f32> = outer_product_0(_S717, _S717);
var _S721 : mat4x4<f32> = mat4x4<f32>(_S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466, _S466);
var qtu_44 : vec4<f32> = qtu_0 + _S717 * vec4<f32>(_S466) * vec4<f32>(- cell_data_22.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S720[0] * _S721[0], _S720[1] * _S721[1], _S720[2] * _S721[2], _S720[3] * _S721[3]);
qtu_0 = qtu_44;
}
}
var cell_data_23 : NodeCdf_0 = shared_nodes_0[_S58 + u32(42)];
var _S722 : u32 = ((((shared_nodes_0[_S58 + u32(42)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S723 : u32 = ((((((shared_nodes_0[_S58 + u32(42)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S722));
var _S724 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(0), u32(1), u32(1))) * _S557, 1.0f);
if(_S722 != u32(0))
{
if(_S723 == u32(0))
{
var _S725 : mat4x4<f32> = outer_product_0(_S724, _S724);
var _S726 : mat4x4<f32> = mat4x4<f32>(_S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484);
var qtu_45 : vec4<f32> = qtu_0 + _S724 * vec4<f32>(_S484) * vec4<f32>(cell_data_23.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S725[0] * _S726[0], _S725[1] * _S726[1], _S725[2] * _S726[2], _S725[3] * _S726[3]);
qtu_0 = qtu_45;
}
else
{
var _S727 : mat4x4<f32> = outer_product_0(_S724, _S724);
var _S728 : mat4x4<f32> = mat4x4<f32>(_S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484, _S484);
var qtu_46 : vec4<f32> = qtu_0 + _S724 * vec4<f32>(_S484) * vec4<f32>(- cell_data_23.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S727[0] * _S728[0], _S727[1] * _S728[1], _S727[2] * _S728[2], _S727[3] * _S728[3]);
qtu_0 = qtu_46;
}
}
var cell_data_24 : NodeCdf_0 = shared_nodes_0[_S58 + u32(49)];
var _S729 : u32 = ((((shared_nodes_0[_S58 + u32(49)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S730 : u32 = ((((((shared_nodes_0[_S58 + u32(49)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S729));
var _S731 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(2), u32(1))) * _S557, 1.0f);
if(_S729 != u32(0))
{
if(_S730 == u32(0))
{
var _S732 : mat4x4<f32> = outer_product_0(_S731, _S731);
var _S733 : mat4x4<f32> = mat4x4<f32>(_S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502);
var qtu_47 : vec4<f32> = qtu_0 + _S731 * vec4<f32>(_S502) * vec4<f32>(cell_data_24.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S732[0] * _S733[0], _S732[1] * _S733[1], _S732[2] * _S733[2], _S732[3] * _S733[3]);
qtu_0 = qtu_47;
}
else
{
var _S734 : mat4x4<f32> = outer_product_0(_S731, _S731);
var _S735 : mat4x4<f32> = mat4x4<f32>(_S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502, _S502);
var qtu_48 : vec4<f32> = qtu_0 + _S731 * vec4<f32>(_S502) * vec4<f32>(- cell_data_24.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S734[0] * _S735[0], _S734[1] * _S735[1], _S734[2] * _S735[2], _S734[3] * _S735[3]);
qtu_0 = qtu_48;
}
}
var cell_data_25 : NodeCdf_0 = shared_nodes_0[_S58 + u32(37)];
var _S736 : u32 = ((((shared_nodes_0[_S58 + u32(37)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S737 : u32 = ((((((shared_nodes_0[_S58 + u32(37)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S736));
var _S738 : vec4<f32> = vec4<f32>(_S55 + vec3<f32>(vec3<u32>(u32(1), u32(0), u32(1))) * _S557, 1.0f);
if(_S736 != u32(0))
{
if(_S737 == u32(0))
{
var _S739 : mat4x4<f32> = outer_product_0(_S738, _S738);
var _S740 : mat4x4<f32> = mat4x4<f32>(_S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520);
var qtu_49 : vec4<f32> = qtu_0 + _S738 * vec4<f32>(_S520) * vec4<f32>(cell_data_25.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S739[0] * _S740[0], _S739[1] * _S740[1], _S739[2] * _S740[2], _S739[3] * _S740[3]);
qtu_0 = qtu_49;
}
else
{
var _S741 : mat4x4<f32> = outer_product_0(_S738, _S738);
var _S742 : mat4x4<f32> = mat4x4<f32>(_S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520, _S520);
var qtu_50 : vec4<f32> = qtu_0 + _S738 * vec4<f32>(_S520) * vec4<f32>(- cell_data_25.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S741[0] * _S742[0], _S741[1] * _S742[1], _S741[2] * _S742[2], _S741[3] * _S742[3]);
qtu_0 = qtu_50;
}
}
var cell_data_26 : NodeCdf_0 = shared_nodes_0[_S58 + u32(43)];
var _S743 : u32 = ((((shared_nodes_0[_S58 + u32(43)].affinities_0) & (particle_affinity_27))) & (u32(65535)));
var _S744 : u32 = ((((((shared_nodes_0[_S58 + u32(43)].affinities_0) >> (u32(16)))) ^ (_S559))) & (_S743));
var _S745 : vec4<f32> = vec4<f32>(_S55 + _S557, 1.0f);
if(_S743 != u32(0))
{
if(_S744 == u32(0))
{
var _S746 : mat4x4<f32> = outer_product_0(_S745, _S745);
var _S747 : mat4x4<f32> = mat4x4<f32>(_S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538);
var qtu_51 : vec4<f32> = qtu_0 + _S745 * vec4<f32>(_S538) * vec4<f32>(cell_data_26.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S746[0] * _S747[0], _S746[1] * _S747[1], _S746[2] * _S747[2], _S746[3] * _S747[3]);
qtu_0 = qtu_51;
}
else
{
var _S748 : mat4x4<f32> = outer_product_0(_S745, _S745);
var _S749 : mat4x4<f32> = mat4x4<f32>(_S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538, _S538);
var qtu_52 : vec4<f32> = qtu_0 + _S745 * vec4<f32>(_S538) * vec4<f32>(- cell_data_26.distance_0);
qtq_0 = qtq_0 + mat4x4<f32>(_S748[0] * _S749[0], _S748[1] * _S749[1], _S748[2] * _S749[2], _S748[3] * _S749[3]);
qtu_0 = qtu_52;
}
}
if((determinant(qtq_0)) > 9.99999993922529029e-09f)
{
var _S750 : vec4<f32> = (((inv_0(qtq_0)) * (qtu_0)));
var _S751 : vec3<f32> = _S750.xyz;
var _S752 : Cdf_0 = Cdf_x24init_0(_S751 / vec3<f32>(length(_S751)), vec3<f32>(0.0f), _S750.w, particle_affinity_27);
entryPointParams_particles_dyn_0[_S50].cdf_1.normal_0 = _S752.normal_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.rigid_vel_0 = _S752.rigid_vel_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.signed_distance_0 = _S752.signed_distance_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.affinity_0 = _S752.affinity_0;
}
else
{
var _S753 : Cdf_0 = Cdf_x24init_1();
entryPointParams_particles_dyn_0[_S50].cdf_1.normal_0 = _S753.normal_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.rigid_vel_0 = _S753.rigid_vel_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.signed_distance_0 = _S753.signed_distance_0;
entryPointParams_particles_dyn_0[_S50].cdf_1.affinity_0 = _S753.affinity_0;
}
return;
}
@compute
@workgroup_size(4, 4, 4)
fn g2p_cdf(@builtin(workgroup_id) block_id_0 : vec3<u32>, @builtin(local_invocation_id) tid_0 : vec3<u32>, @builtin(local_invocation_index) tid_flat_0 : u32)
{
var _S754 : u32 = block_id_0.x;
var _S755 : BlockVirtualId_0 = BlockVirtualId_0( entryPointParams_active_blocks_0[_S754].virtual_id_0.id_0 );
global_shared_memory_transfers_0(tid_0, _S755);
workgroupBarrier();
var _S756 : u32 = entryPointParams_active_blocks_0[_S754].first_particle_0 + entryPointParams_active_blocks_0[_S754].num_particles_0;
var sorted_particle_id_0 : u32 = entryPointParams_active_blocks_0[_S754].first_particle_0 + tid_flat_0;
for(;;)
{
if(sorted_particle_id_0 < _S756)
{
}
else
{
break;
}
particle_g2p_0(entryPointParams_sorted_particle_ids_0[sorted_particle_id_0], entryPointParams_grid_0[i32(0)].cell_width_0, entryPointParams_params_0.dt_0);
sorted_particle_id_0 = sorted_particle_id_0 + u32(64);
}
return;
}