code wiki / (root) / nx_partid.nx

nx_partid.nx

buildroot/runtime/nx_partid.nx

5877 B148 linesdepth 4pulls 6 transitivereach 6 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_partid.nx -- geometric PART IDENTIFICATION (cadtwin P5): recognize a mesh part's shape CATEGORY by a ROTATION- and SCALE-INVARIANT descriptor = the eigenvalue ratios of the vertex covariance (principal-moment signature). A rod -> one dominant axis (long,thin,thin); a plate -> two dominant (flat); a cube -> three equal. Invariant BY CONSTRUCTION: covariance rotates as R C R^T (eigenvalues unchanged) and scales by s^2 (ratios unchanged). Match a query descriptor to the nearest catalog entry. Composes nx_mesh3 (verts) + nx_epose (power-iteration 3x3 eigensolver). HONEST: coarse shape CLASS (fastener/plate/bracket/rod), NOT fine OEM part-number ID -- that needs the EPC catalog corpus + finer/neural matching (the fuller P5 rung, benchmark-free per the research). Deterministic. license_tier: ORIGINAL

dependencies 2 imports · 3 importers

nx_mesh3.nx nx_epose.nx nx_partid.nx nx_cadtwin_report.nx nx_partid_gate.nx nx_step_geom_gate.nx

imports: nx_mesh3.nxnx_epose.nx

imported by: nx_cadtwin_report.nxnx_partid_gate.nxnx_step_geom_gate.nx

structs

none

consts

none

functions

13func pid_cov(base: i64, C: *i64) -> i64
called by 1: pid_descriptor calls 2: m3_hdrm3_vert
43func pid_rayleigh(C: *i64, v: *i64) -> i64
called by 1: pid_eigvals calls 1: ep_mv
49func pid_deflate(C: *i64, l: i64, v: *i64, out: *i64) -> i64
called by 1: pid_eigvals
66func pid_eigvals(C: *i64, out3: *i64) -> i64
100func pid_descriptor(base: i64, out2: *i64) -> i64
called by 3: mainmainmain calls 2: pid_covpid_eigvals
111func pid_match(d: *i64, cat: *i64, ncat: i64, out_dist: *i64) -> i64
called by 1: main
128func pid_rotate_mesh(src: i64, dst: i64, R: *i64) -> i64