Skip to content
Orbdale

Orbdale Terrain · OrbdaleTerrainCore module · struct

Native::

FScatterKeepClear

Experimental

The keep-clear state of one sub-cell, rasterised once and tested per candidate (kScatterMaskSize² cells).

Declaration

struct FScatterKeepClear
Header
#include "Native/TerrainScatter.h"
Module
PublicDependencyModuleNames.Add("OrbdaleTerrainCore"); in your module’s Build.cs.
Stability
Experimental: supported, may change in a minor version, with a changelog line.
Thread
Tier 1: plain C++, no allocation, deterministic in canonical order (ascending candidate index), any thread. (the header’s rule)

Description

About 8 KB; lives in the caller's scratch. Empty (bAny false) when no footprint touches the sub-cell. Every cell is conservative for every point inside it (the cell centre's distance less the half diagonal; for a corridor also the wider side where the cell may cross its centreline, and the half width's taper), so no candidate inside a footprint (plus margin) ever passes; grass stops up to about one mask cell short of the exact edge.

Properties

NameTypeDefaultMeaning
bAnyboolfalse

False: nothing to test, every candidate passes.

MinXCmdouble0.0

World corner of the mask, cm: it covers kScatterMaskSize × CellCm from here.

MinYCmdouble0.0—
CellCmdouble50.0

Mask cell size, cm: kScatterSubCellQuads posts / kScatterMaskSize.

MarginDistQuint8_t—

The nearest corridor or opening, for every point of the cell: 0 = the cell may touch a footprint (cleared); 1..254 = at least (q − 1) × kScatterMaskDistStepCm away; 255 = at least the rasterised margin away.

Flagsuint8_t—

Bit 0: the cell may touch a plate. Bit 1: may touch an exclusion.