code wiki / (root) / nx_nxa_surface_support_candidate_t207.nx

nx_nxa_surface_support_candidate_t207.nx

buildroot/runtime/nx_nxa_surface_support_candidate_t207.nx

13879 B144 linesdepth 8pulls 16 transitivereach 0 importersview sourcekind tooltopic nxa
docsdependenciesstructsconstsfunctions

about

nx_nxa_surface_support_candidate_t207.nx -- Computes surface intersection parameters for garment attachment validation using exact rational arithmetic.

dependencies 4 imports · 0 importers

nx_quicksort.nx nx_nxa_garment_bind_lib.nx nx_fs_create_lib.nx nx_sha256.nx nx_nxa_surface_support_candida

imports: nx_quicksort.nxnx_nxa_garment_bind_lib.nxnx_fs_create_lib.nxnx_sha256.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main ngb_attach_source_v1 nsa_seed_arg nsa_component_boundary_v1 ngb_attach_source_v1 ↻ ngb_clip_product nsa_component_labels_v1 ngb_attach_source_v1 ↻ nsa_component_join_v1 nsa_component_root_v1 nsa_component_root_v1 ↻ nx_quicksort nx_quicksort_recur nx_quicksort_partition nx_quicksort_recur ↻ nsa_rigid_component_joint_ nsa_component_labels_v1 ↻ sha256_digest sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ sha256_init sys_mmap ↻ sha256_seed_allocated sha256_k sha256_update sha256_compress_ni_blocks blk_set_byte

structs

none

consts

6const NSA_E_INPUT:i64=-50
7const NSA_E_RANGE:i64=-51
8const NSA_E_MISS:i64=-52
9const NSA_E_AMBIGUOUS:i64=-53
87const NSA_E_MIXED_SUPPORT:i64=-54
102const NSA_E_NONMANIFOLD:i64=-55

functions

11func nsa_unsigned_ratio_cmp(a:i64,b:i64,c:i64,d:i64)->i64
called by 1: nsa_ratio_cmp
18func nsa_ratio_cmp(a:i64,b:i64,c:i64,d:i64)->i64
24func nsa_triangle_y_v1(p:*i64,idx:*i64,face:i64,qx:i64,qz:i64,result:*i64)->i64
40func nsa_landmark_y_v1(b:*u8,n:i64,qx:i64,qz:i64,direction:i64,out:*i64,cap:i64,work:*i64,words:i64)->i64
52func nsa_landmark_mesh_y_v1(p:*i64,idx:*i64,nt:i64,qx:i64,qz:i64,direction:i64,out:*i64,work:*i64)->i64
65func nsa_component_root_v1(labels:*i64,v:i64)->i64
69func nsa_component_join_v1(labels:*i64,a:i64,b:i64)->i64
75func nsa_component_labels_v1(b:*u8,n:i64,labels:*i64,capacity:i64)->i64
90func nsa_rigid_component_joint_v1(b:*u8,n:i64,seed:i64,labels:*i64,capacity:i64)->i64
called by 1: main calls 1: nsa_component_labels_v1
103func nsa_component_boundary_v1(b:*u8,n:i64,seed:i64,labels:*i64,label_words:i64,work:*i64,work_words:i64,out:*i64,out_words:i64)->i64
124func nsa_text(r:*i64,s:*u8)->i64{var n:i64=0;while s[n]!=0{n=n+1};if n>NGB_CLIP_I64_MAX-r[2]{r[3]=1;return -1};if r[0]!=0{if r[2]>r[1]||n>r[1]-r[2]{r[3]=1;return -1};let b:*u8=r[0] as *u8;var i:i64=0;while i<n{b[r[2]+i]=s[i];i=i+1}};r[2]=r[2]+n;return n}
125func nsa_number(r:*i64,x:i64)->i64{let b:*u8=r[4] as *u8;var v:i64=x;var p:i64=30;b[31]=0 as u8;if v<0{nsa_text(r,"-");v=0-v};if v==0{b[p]=48 as u8;p=p-1};while v>0{b[p]=(48+v%10) as u8;v=v/10;p=p-1};return nsa_text(r,((b as i64)+p+1) as *u8)}
called by 1: nsa_support_json calls 1: nsa_text
126func nsa_seed_arg(s:*u8)->i64{var i:i64=0;var n:i64=0;if s[0]==0{return -1};while s[i]!=0{let v:i64=s[i] as i64;if v<48||v>57||n>(NGB_CLIP_I64_MAX-(v-48))/10{return -1};n=n*10+v-48;i=i+1};return n}
called by 1: main
127func nsa_support_json(r:*i64,sha:*u8,n:i64,records:*i64,count:i64,edges:*i64)->i64
called by 1: main calls 2: nsa_textnsa_number
131func main(argc:i64,argv:*i64)->i64