Source code for voxcity.importer.units

"""Unit handling for OBJ import (model units -> meters)."""

_UNIT_SCALE = {
    "m": 1.0,
    "cm": 0.01,
    "mm": 0.001,
    "ft": 0.3048,
    "in": 0.0254,
}


[docs] def unit_scale(units: str) -> float: """Return meters-per-unit for a model unit string (case-insensitive).""" if not isinstance(units, str): raise ValueError(f"Unknown units: {units!r}. Expected one of {sorted(_UNIT_SCALE)}.") key = units.lower() if key not in _UNIT_SCALE: raise ValueError(f"Unknown units: {units!r}. Expected one of {sorted(_UNIT_SCALE)}.") return _UNIT_SCALE[key]
[docs] def validate_units(units: str) -> None: """Raise ValueError if *units* is not a known unit string.""" unit_scale(units)