nx_trimesh.nx
buildroot/runtime/nx_trimesh.nx
about
dependencies 2 imports · 35 importers
diagram shows first 10 each side; +0 more imports, +25 more importers in the complete lists below.
imports: nx_syscalls.nxnx_itrig.nx
imported by: nx_aa_gate.nxnx_authorworld_gate.nxnx_being_showcase.nxnx_bodyatlas_mesh_gate.nxnx_boxtex_gate.nxnx_bunny_gate.nxnx_cornell.nxnx_cornell_dyn_gate.nxnx_cornell_gate.nxnx_donor_native.nxnx_engine_lod_gate.nxnx_engine_phys_gate.nxnx_engine_scene_gate.nxnx_engine_stream_gate.nxnx_gltf_anim.nxnx_gltf_anim_gate.nxnx_gltf_load.nxnx_gltf_load_gate.nxnx_gltf_mesh.nxnx_gltf_mesh_gate.nxnx_gltf_scene.nxnx_gltf_scene_gate.nxnx_hands_gate.nxnx_isosurf.nxnx_isosurf_gate.nxnx_native_turntable.nxnx_objload.nxnx_phong_gate.nxnx_retarget_emit.nxnx_retarget_showcase.nxnx_stdassets_gate.nxnx_texture_gate.nxnx_trimesh_gate.nxnx_worldpipe.nxnx_worldpipe_gate.nx
structs
| none |
consts
| 10 | const TM_MAGIC_1024: i64 = 1024 |
| 11 | const TM_MAGIC_1000000000: i64 = 1000000000 |
| 12 | const TM_MAGIC_374761393: i64 = 374761393 |
| 13 | const TM_MAGIC_668265263: i64 = 668265263 |
| 14 | const TM_MAGIC_1610612741: i64 = 1610612741 |
| 15 | const TM_MAGIC_1274126177: i64 = 1274126177 |
| 16 | const TM_MAGIC_1048576: i64 = 1048576 |
| 17 | const TM_MAGIC_4096: i64 = 4096 |
| 18 | const TM_MAGIC_1618: i64 = 1618 |
| 19 | const TM_MAGIC_65536: i64 = 65536 |
| 20 | const TM_MAGIC_1300: i64 = 1300 |
| 21 | const TM_MAGIC_2400: i64 = 2400 |
| 22 | const TM_MAGIC_3000: i64 = 3000 |
| 23 | const TM_MAGIC_100000: i64 = 100000 |
| 24 | const TM_MAGIC_90000: i64 = 90000 |
| 25 | const TM_MAGIC_65535: i64 = 65535 |
| 26 | const TM_MAGIC_37777: i64 = 37777 |
| 27 | const TM_MAGIC_91131: i64 = 91131 |
| 28 | const TM_MAGIC_6144: i64 = 6144 |
| 29 | const TM_MAGIC_81111: i64 = 81111 |
| 30 | const TM_MAGIC_2000000000: i64 = 2000000000 |
| 39 | const TM_GRID: i64 = 256 // max polygonizer grid resolution supported |
| 40 | const TM_FOLD: i64 = 6 // surface-crossings per cell column, worst case |
| 41 | const TM_VCAP: i64 = TM_GRID*TM_GRID*TM_FOLD |
| 42 | const TM_TCAP: i64 = TM_VCAP*2 // surface nets emits ~2 triangles per vertex |
| 65 | const TM_SHRES: i64 = 576 |
functions
| 57 | func tm_ovf() -> i64 { return TM_OVF } |
| 59 | func tm_set_spec(v: i64) -> i64 { TM_SPEC = v; return 0 } |
| 61 | func tm_set_tex(scale: i64) -> i64 { TM_TEX = scale; return 0 } |
| 81 | func tm_set_sun(x: i64, y: i64, z: i64) -> i64 |
| 88 | func tm_set_shadow(v: i64) -> i64 { TM_SHON = v; return 0 } |
| 89 | func tm_shadow_bake() -> i64 |
| 172 | func tm_shadow_at(wx: i64, wy: i64, wz: i64) -> i64 called by 1: trimesh_render |
| 191 | func tm_set_image(rgb: *u8, w: i64, h: i64) -> i64 { TM_IMG = rgb as i64; TM_IMGW = w; TM_IMGH = h; return 0 } |
| 194 | func tm_vuv(idx: i64, u: i64, v: i64) -> i64 { let pu: *i64 = TM_VU as *i64; let pv: *i64 = TM_VV as *i64; pu[idx] = u; pv[idx] = v; return 0 } called by 1: gltf_load_std |
| 195 | func tm_hash3(a: i64, b: i64, c: i64) -> i64 |
| 202 | func tm_noise3(x: i64, y: i64, z: i64, S: i64) -> i64 |
| 219 | func tm_isqrt(v: i64) -> i64 { if v <= 0 { return 0 } var x: i64 = v; var y: i64 = (x+1)/2; while y < x { x=y; y=(x+v/x)/2 } return x } |
| 220 | func tm_min(a: i64, b: i64) -> i64 { if a<b {return a} return b } called by 1: tm_min3 |
| 221 | func tm_max(a: i64, b: i64) -> i64 { if a>b {return a} return b } called by 1: tm_max3 |
| 222 | func tm_min3(a: i64, b: i64, c: i64) -> i64 { return tm_min(tm_min(a,b),c) } |
| 223 | func tm_max3(a: i64, b: i64, c: i64) -> i64 { return tm_max(tm_max(a,b),c) } |
| 225 | func tm_reset() -> i64 |
| 236 | func tm_vcol(idx: i64, col: i64) -> i64 { let p: *i64 = TM_VCOL as *i64; p[idx] = col; return 0 } |
| 238 | func tm_vpos(idx: i64, out: *i64) -> i64 { let px: *i64=TM_VX as *i64; let py: *i64=TM_VY as *i64; let pz: *i64=TM_VZ as *i64; out[0]=px[idx]; out[1]=py[idx]; out[2]=pz[idx]; return 0 } |
| 239 | func tm_vnorm(idx: i64, out: *i64) -> i64 { let px: *i64=TM_VNX as *i64; let py: *i64=TM_VNY as *i64; let pz: *i64=TM_VNZ as *i64; out[0]=px[idx]; out[1]=py[idx]; out[2]=pz[idx]; return 0 } |
| 240 | func tm_getvcol(idx: i64) -> i64 { let p: *i64=TM_VCOL as *i64; return p[idx] } |
| 244 | func tm_vx(i: i64) -> i64 { let p: *i64=TM_VX as *i64; return p[i] } |
| 245 | func tm_vy(i: i64) -> i64 { let p: *i64=TM_VY as *i64; return p[i] } |
| 246 | func tm_vz(i: i64) -> i64 { let p: *i64=TM_VZ as *i64; return p[i] } called by 1: main |
| 247 | func tm_vnx(i: i64) -> i64 { let p: *i64=TM_VNX as *i64; return p[i] } called by 1: main |
| 248 | func tm_vny(i: i64) -> i64 { let p: *i64=TM_VNY as *i64; return p[i] } called by 1: main |
| 249 | func tm_vnz(i: i64) -> i64 { let p: *i64=TM_VNZ as *i64; return p[i] } called by 1: main |
| 250 | func tm_ta(i: i64) -> i64 { let p: *i64=TM_TA as *i64; return p[i] } called by 1: main |
| 251 | func tm_tb(i: i64) -> i64 { let p: *i64=TM_TB as *i64; return p[i] } called by 1: main |
| 252 | func tm_tc(i: i64) -> i64 { let p: *i64=TM_TC as *i64; return p[i] } called by 1: main |
| 253 | func tm_tget(t: i64, out: *i64) -> i64 { let pa: *i64=TM_TA as *i64; let pb: *i64=TM_TB as *i64; let pc: *i64=TM_TC as *i64; out[0]=pa[t]; out[1]=pb[t]; out[2]=pc[t]; return 0 } |
| 255 | func tm_place(from: i64, to: i64, dx: i64, dy: i64, dz: i64, mil: i64) -> i64 |
| 267 | func tm_compute_normals() -> i64 |
| 294 | func tm_vert(x: i64, y: i64, z: i64) -> i64 |
| 303 | func tm_vert_n(x: i64, y: i64, z: i64, nx: i64, ny: i64, nz: i64) -> i64 |
| 312 | func tm_tri(a: i64, b: i64, c: i64, col: i64) -> i64 |
| 320 | func tm_quad(a: i64, b: i64, c: i64, d: i64, col: i64) -> i64 { tm_tri(a,b,c,col); tm_tri(a,c,d,col); return 0 } |
| 321 | func tm_nt() -> i64 { return TM_NT } |
| 322 | func tm_nv() -> i64 { return TM_NV } |
| 325 | func tm_cube(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 |
| 337 | func tm_tetra(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 |
| 343 | func tm_octa(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 |
| 350 | func tm_pyramid(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 |
| 358 | func tm_prism(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 { // triangular prism (extruded triangle along z) |
| 367 | func tm_icosa(cx: i64, cy: i64, cz: i64, s: i64, col: i64) -> i64 |
| 380 | func tm_uvsphere(cx: i64, cy: i64, cz: i64, s: i64, rings: i64, segs: i64, col: i64) -> i64 |
| 416 | func tm_figure(cx: i64, cy: i64, cz: i64, col: i64) -> i64 |
| 434 | func trimesh_render(fb: *i64, zbuf: *i64, W: i64, H: i64, yaw: i64, pitch: i64, camz: i64, focal: i64, smooth: i64) -> i64 |
| 641 | func trimesh_zclear(zbuf: *i64, n: i64) -> i64 { var i: i64=0; while i<n { zbuf[i] = TM_MAGIC_2000000000; i=i+1 } return 0 } |
| 643 | func trimesh_render_aa(fb: *i64, W: i64, H: i64, yaw: i64, pitch: i64, camz: i64, focal: i64, smooth: i64) -> i64 |