Skip to content
Brass Orrery

Orrery Terrain · OrreryTerrainEditor module · struct

FOrreryTerrainBrushDabV2

ExperimentalEditor only

One brush dab handed to a V2 brush target, in world space: the V1 fields, plus the brush mask and how the kernel places it.

Declaration

struct FOrreryTerrainBrushDabV2
Header
#include "Mode/OrreryTerrainEdExtensionV2.h"
Module
PublicDependencyModuleNames.Add("OrreryTerrainEditor"); in an editor module’s Build.cs: an editor module, not in packaged games.
Stability
Experimental: supported, may change in a minor version, with a changelog line.
Thread
Game thread, editor only.

Description

The mask fields describe the dab exactly as the terrain's sculpt kernel would apply it, with the angle the tool resolved for this dab (rotation mode and jitter included), so a target that follows SampleMask follows the same shape as the built-in targets. Without a mask (MaskHash 0) the dab is the round brush and every mask field is at its default.

Note.

Game thread, editor only. Copyable; it shares the mask, which stays alive as long as any dab holds it.

Functions

  • HasMask

    Whether the dab carries a mask the target can sample.

  • SampleMaskQ16

    The mask at a world point as the sculpt kernel reads it, in Q16 (0 to 65536).

  • SampleMask

    SampleMaskQ16 as 0 to 1, 0 where it answers -1.

  • ToV1

    The V1 dab of this one: the same position, radius, strength, time and inversion, with no mask.

Properties

NameTypeDefaultMeaning
Position_mFVectorFVector::ZeroVector

Hit point on the ground, metres (a stamp: its centre).

Radius_mdouble10.0

Brush radius, metres; with a mask, half the mask's longer side.

Strengthdouble1.0

0..1, before the author's per-step limit; 1 for a stamp.

DeltaSecondsdouble0.0

Time this dab stands for, seconds.

bInvertboolfalse

Shift held: raise becomes lower, hole becomes fill.

MaskHashuint640

The mask's content hash; 0 is the round brush.

Maskstd::shared_ptr<const OrreryTerrain::Native::FBrushMask>—

The baked samples, read-only; null with MaskHash 0, or when the terrain does not hold the mask.

MaskAngle_degdouble0.0

This dab's resolved angle, degrees from +X toward +Y in [0, 360), as the kernel quantises it.

MaskAngle_turnuint160

The same angle in 1/65536 of a turn, the kernel's integer.

bMirrorboolfalse

The mask is mirrored left to right before the rotation.

bSquareboolfalse

The footprint is the mask's own rotated rectangle instead of the disc.

bBicubicboolfalse

The mask is sampled by the Catmull-Rom cubic instead of bilinearly.

MaskAspectdouble1.0

The mask's width over its height.

MaskAspect_q8uint16256

The same ratio in 1/256, the kernel's integer.

Radius_mmuint320

The kernel's radius in whole millimetres; SampleMask scales the mask by it.

EditCell_mmint321

The terrain's edit cell in millimetres; it picks the mask's mip level as the kernel does.

bStampboolfalse

The dab is a height stamp: one dab, placed once.

StampHeight_mdouble0.0

Stamp only: the peak height over the base, metres (negative digs).

SplatStepint32-1

A splat dab: the channel's place among the splat's used channels, 0 for the first; -1 for a plain dab. A splat dab reaches a V2 target as one dab per used channel, each with that channel's mask.

SplatChannelint32-1

A splat dab: the splat image channel (0 red to 3 alpha) this dab's mask comes from; -1 for a plain dab.

PaintLayerint32-1

A splat dab: the paint layer the channel paints; -1 for a plain dab.