Skip to content

Georeferenced coordinates

Sebastien DUMETZ edited this page Oct 20, 2026 · 2 revisions

Georeferenced coordinates

Source precision

Position decimals, including scientific notation, are parsed directly into signed 64-bit fixed-point integers with ten fractional digits. Values beyond ten fractional digits round to the nearest fixed-point unit, ties away from zero. The supported range is approximately ±922 million source units.

Center before float32 conversion

--center measures all declared positions, subtracts the center using widened integer arithmetic, then converts the local result to float32. This avoids first rounding projected world coordinates to float32. The center is rounded to the fixed-point grid; glTF geometry still has float32 precision, so very large local extents can require spatial tiling.

Recover the source origin

The origin and original bounds are recorded as decimal strings in extras.objtools. Restore a source position by undoing the optional axis rotation and adding the stored origin. The origin is not applied back as a scene translation, because that would defeat recentering.

Axis, units and alignment

The default assumes Y-up input. --up-axis z gives each mesh node a rotation mapping (x, y, z) to (x, z, -y) in glTF's Y-up frame. Coordinates and origin metadata remain in the source frame. Source units are assumed to be metres; no CRS, reprojection or unit conversion is inferred. For sibling assets that must stay aligned, independently centering each file will give different origins; retain and account for the recorded origins.

Conversion · Documentation home

Clone this wiki locally