nx_solid_grid_candidate_t365.nx
buildroot/runtime/nx_solid_grid_candidate_t365.nx
about
Part-aware union grid, using counted YZ buckets and one reusable workspace.
Field scalars are signed X-column boundary distances; NOT Euclidean SDF.
Unmerged (part ID, crossing) events are retained for every column as provenance.
dependencies 1 imports · 1 importers
imports: nx_solid_mesh_column_candidate_t365.nx
imported by: nx_solid_grid_gate_t365.nx
structs
| 5 | struct SfgRecipe { ox:i64,oy:i64,oz:i64,step:i64,nx:i64,ny:i64,nz:i64,units:i64,max_bytes:i64,max_tests:i64, } |
| 6 | struct SfgStats { field_words:i64,columns:i64,event_offset:i64,event_count:i64,peak_bytes:i64,tests:i64,insertions:i64,max_bucket:i64,failed_y:i64,failed_z:i64, } |
consts
| none |
functions
| 7 | func sfg_add(a:i64,b:i64)->i64{if a<0||b<0||b>NX_BO_I64_MAX-a{return -1};return a+b} called by 1: sfg_grid_v1 |
| 8 | func sfg_mul(a:i64,b:i64)->i64{if a<0||b<0{return -1};if a==0||b==0{return 0};if b>NX_BO_I64_MAX/a{return -1};return a*b} called by 1: sfg_grid_v1 |
| 9 | func sfg_axis(o:i64,n:i64,step:i64)->i64{if o<0-SFC_COORD||o>SFC_COORD||n<1||step<1||step>2*SFC_COORD{return 0};if n-1>(SFC_COORD-o)/step{return 0};return 1} called by 1: sfg_grid_v1 |
| 10 | func sfg_lo(t:*i64,axis:i64,o:i64,step:i64,n:i64)->i64{var v:i64=t[axis];if t[axis+3]<v{v=t[axis+3]};if t[axis+6]<v{v=t[axis+6]};if v<=o{return 0};let j:i64=(v-o+step-1)/step;if j>n{return n};return j} called by 1: sfg_grid_v1 |
| 11 | func sfg_hi(t:*i64,axis:i64,o:i64,step:i64,n:i64)->i64{var v:i64=t[axis];if t[axis+3]>v{v=t[axis+3]};if t[axis+6]>v{v=t[axis+6]};if v<o{return -1};let j:i64=(v-o)/step;if j>=n{return n-1};return j} called by 1: sfg_grid_v1 |
| 12 | func sfg_grid_v1(tri:*i64,nt:i64,part_tris:*i64,np:i64,r:*SfgRecipe,out:*NxBufOwned,stats:*SfgStats,e:*SfuFailure)->i64 |