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