Class: GroupedSpaceData

GroupedSpaceData

An internal class for managing the boundaries of spaces wholly contained within a host space.

Instances of this class are stored in the attributes of the host space and are used for both constructing the required shell geometry and rendering it.


new GroupedSpaceData()

Creates a new grouped space data instance.

Members


:Array.<Array.<PD.ClipPt2D>>

boundaryPaths

Accumulates the outer space boundaries of bounded spaces that lie on the floor slab.

Type

:Array.<Array.<PD.ClipPt2D>>

innerPaths

Accumulates the internal space footprints of all bounded spaces.

Type

:PD.Polyline

internalWalls

Stores the inner boundary footprint of the host space with the outer boundaries of all bounded spaces removed.

    +  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - +
    . +-----------------+ +  -  -  -  + +  -  -  -  -  + .
    . |                 | .           . .              . .
    . |                 | .           . .              . .
    . |                 | .           . .              . .
    . |                 | +  -  -  -  + .              . .
    . |                 +-------------+ .              . .
    . |                               | +  -  -  -  -  + .
    . |                               +----------------+ .
    . |                                                | .
    . |     +---------------+                          | .
    . |     | +  -  -  -  + |                          | .
    . |     | .           ' |                          | .
    . |     | +  -  -  -  + |                          | .
    . |     +---------------+                          | .
    . |                                                | .
    . +------------------------------------------------+ .
    +  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - +

Storing this shape allows improved identification of those areas of the host space footprint that are fully exposed to the interior and not abutted by any bounded spaces at any height. Thus, rather than try to work out from the footprint which parts of each segment are exposed, we can quickly check which segments of this polygon lie on the outer boundary and know exactly which parts are which.

Whilst this is a separate polyline, its vertices are all cached and reused from the inner shell of the host space, so it can be completely cleared and recreated on each update without triggering garbage collection.

Type

:Array

junctionsWithApertures

Caches all path junctions in bounded spaces that contain apertures.

Type
  • Array

:Array

junctionsWithExternalApertures

Caches all path junctions in bounded spaces that contain apertures likely to be adjacent to external walls.

Type
  • Array

:Array.<Array.<PD.ClipPt2D>>

outerPaths

Accumulates the outer space footprints of all bounded spaces.

Type

:PD.Polyline

planSection

Stores the outer boundary footprint of all bounded spaces with both the inner space footprint and sectioned apertures removed.

    +  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - +
    . +  -  -  -  -  -  + +  -  -  -  + +  -  -  -  -  + .
    . .                 | |           | |              . .
    . .                 | |           | |              . .
    . .                 | |           | |              . .
    . .                 | +-+       +-+ |              . .
    . .                 +---+       +-+ |              . .
    . .                               | +--+        +--+ .
    . .                               +----+        +--+ .
    . .                                                . .
    . .     +----+     +----+                          . .
    . .     | +--+     +--+ |                          . .
    . .     | |           | |                          . .
    . .     | +-----------+ |                          . .
    . .     +---------------+                          . .
    . .                                                . .
    . +  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -+ .
    +  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - +

This polygon is used to display the outline of internal bounded space walls when the model is displayed in 2D plan-section view.

This is stored as a polyline rather than a polygon as aperture holes may result in multiple separate islands of grouped space walls. A useful byproduct of this is that internal spaces with no apertures will automatically highlight as a completely filled area (being rendered as two overlapping shapes). This is a great visual indicator that there are no doors so no-one can actually access the space.

Whilst this is a separate polyline, its vertices are all cached and reused from the inner shell of the host space, so it can be completely cleared and recreated on each update without triggering garbage collection.

Type