Small World Engine API Reference - v0.78.00
    Preparing search index...

    Class PointedPillar

    A pointed pillar geometry (Spitze Säule / obelisk-like column with conical tip).

    Consists of a lower frustum column of height $h_1$ tapering from base radius $a$ to transition radius $b$, topped by a conical tip of height $h_2$ with base radius $b$.

    Mathematical formulas:

    • Pillar slant height: $s_1 = \sqrt{(a - b)^2 + h_1^2}$
    • Tip slant height: $s_2 = \sqrt{b^2 + h_2^2}$
    • Lateral area (Mantelfläche): $M = \pi \left( (a + b)s_1 + b s_2 \right)$
    • Base area: $A_{\text{base}} = \pi a^2$
    • Total surface area: $A = \pi a^2 + M$
    • Volume: $V = \frac{\pi}{3} \left( h_1(a^2 + ab + b^2) + b^2 h_2 \right)$

    Hierarchy (View Summary)

    Index
    _cachedBoundingVolume: BoundingVolume | undefined = undefined

    Cached bounding volume to prevent re-allocation

    _indices:
        | Uint16Array<ArrayBufferLike>
        | Uint32Array<ArrayBufferLike>
        | undefined = undefined

    The indices of the geometry for indexed rendering.

    _isLineGeometry: boolean = false

    Whether the geometry is purely line-based.

    _joints?: Float32Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> = undefined

    Optional skinning joints (4 IDs per vertex).

    _normals: Float32Array = ...

    The normals of the geometry (nx, ny, nz).

    _tangents: Float32Array = ...

    The tangents of the geometry (tx, ty, tz).

    _uvs: Float32Array = ...

    The UV coordinates of the geometry (u, v).

    _vertices: Float32Array = ...

    The vertices of the geometry (x, y, z).

    _weights?: Float32Array<ArrayBufferLike> = undefined

    Optional skinning weights (4 weights per vertex).

    _wireframeIndices:
        | Uint16Array<ArrayBufferLike>
        | Uint32Array<ArrayBufferLike>
        | undefined = undefined

    The indices for wireframe rendering.

    heightPillar: number

    Height of the lower column shaft (h1).

    heightSegments: number

    Number of height subdivisions on column shaft.

    heightTip: number

    Height of the conical roof tip (h2).

    openEnded: boolean

    Whether the bottom base is open.

    radialSegments: number

    Number of radial subdivisions.

    radiusBase: number

    Radius at the bottom base (a).

    radiusTransition: number

    Radius at the transition ring (b).

    thetaLength: number

    Central angle in radians.

    thetaStart: number

    Start angle in radians.

    • Helper method to create an appropriately sized index array. Automatically chooses between 16-bit and 32-bit indices based on vertex count.

      Parameters

      • indexCount: number

        The number of indices needed.

      Returns Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>

      A Uint16Array or Uint32Array.

    • Calculates the bottom base circular area $A_{\text{base}} = \pi a^2$.

      Returns number

    • Calculates the lateral mantle area (column mantle + tip mantle).

      Returns number

    • Calculates the slant height of the lower column $s_1 = \sqrt{(a - b)^2 + h_1^2}$.

      Returns number

    • Calculates the slant height of the conical tip $s_2 = \sqrt{b^2 + h_2^2}$.

      Returns number

    • Calculates the total surface area $A = A_{\text{base}} + M$.

      Returns number

    • Calculates the volume $V = \frac{\pi}{3} \left( h_1(a^2 + ab + b^2) + b^2 h_2 \right)$.

      Returns number