Skip to content
Shapemetry

@huukhanhnguyen/model / nodeMethods/filterSynthesis

nodeMethods/filterSynthesis

synthesizeDataFilter()

synthesizeDataFilter(siblings, targetIndex): SynthesizedFilter<DataFilterTier>

A filter expression naming siblings[targetIndex] among the data documents one node emitted, in the (data, index) => dialect every per-document callback arg takes.

Tiers, in test order: type (the only face / curve / point in the stream) · sizeRank (uniquely largest or smallest bbox) · point (bbox centre) · ordinal (index === n — the array-copy case, where every copy is congruent and nothing qualitative separates them).

Parameters

siblings

ObjectData[]

targetIndex

number

Returns

SynthesizedFilter<DataFilterTier>


synthesizeFaceFilter()

synthesizeFaceFilter(data, faceIndex): SynthesizedFilter<FaceFilterTier>

A filter expression naming face faceIndex of one brep wrap, in the (points, normal) => dialect faceExtrude consumes.

Tiers, in test order: normal (the only face pointing that way) · plane (that direction at that offset) · areaRank (uniquely largest or smallest, as a scale-stable threshold) · point (bbox centre of the face) · ordinal (last resort).

ordinal is NOT an index: this dialect hands the predicate no face index, so the last resort is the tightest available fingerprint (plane AND centre) and is flagged brittle — it may still name more than one face when two faces genuinely coincide.

Parameters

data

BrepData

faceIndex

number

Returns

SynthesizedFilter<FaceFilterTier>

Last updated: 📖 1 min readEdit on GitHub