@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
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
faceIndex
number