Documentation
    Preparing search index...

    Class GeometryAbstract

    §53's abstract root of the geometry family: stable identity, a mutation counter, a bounding volume, cloning, and disposal.

    function upload(geometry: Geometry): void {
    if (cache.get(geometry.id)?.version === geometry.version) return;
    // …
    }

    A backend that only needs identity and freshness — a cache, a diagnostic, a §83 accounting pass — should take a Geometry. A backend that needs vertex data still takes the concrete BufferGeometry, because the attribute layout is what it reads and §53's other family members do not exist yet to abstract over.

    See the module header for why the family below this base is deliberately one class deep today.

    Hierarchy (View Summary)

    Implements

    Index
    id: string = ...

    Stable identity (§53), assigned at construction from a monotonic counter and formatted geometry-<n>. Unique within a process, ascending in construction order, never reused — and, crucially, never copied: a clone is a different geometry and gets the next id (see Geometry.clone).

    • get version(): number

      Counter incremented on every mutation (§53). Backends cache GPU buffers against it; treat it as opaque and compare for inequality, exactly like Transform.version. Monotonic, never wraps in a realistic session.

      Returns number

    • Recomputes the bounding volume if the version has advanced, and returns it (§53). Allocates nothing: the returned object and its vectors are owned by the geometry and rewritten in place by the next recompute.

      Returns BoundingVolume