pub enum OperandKind {
BooleanResult,
CsgPrimitive,
HalfSpace,
SolidModel,
TessellatedFaceSet,
}Expand description
What an IfcBooleanOperand reference actually points at.
The SELECT permits five families. A walker needs to know whether to recurse (a nested result) or to hand the entity to a solid builder, and classifying once here keeps that decision out of every call site.
Variants§
BooleanResult
Another IfcBooleanResult (or IfcBooleanClippingResult): recurse.
CsgPrimitive
An IfcCsgPrimitive3D subtype.
HalfSpace
An IfcHalfSpaceSolid subtype: infinite, only valid here.
SolidModel
An IfcSolidModel subtype: swept, brep or CSG solid.
TessellatedFaceSet
An IfcTessellatedFaceSet subtype. The schema requires it to be closed
when used as a boolean operand.
Implementations§
Source§impl OperandKind
impl OperandKind
Sourcepub fn classify(type_name: &str) -> Option<Self>
pub fn classify(type_name: &str) -> Option<Self>
Classify by IFC type name.
Name-based because the model is untyped by design; the alternative is a generated subtype table per schema version, which is what this codebase exists to avoid.
Sourcepub fn is_nested_boolean(self) -> bool
pub fn is_nested_boolean(self) -> bool
Must a walker descend into this operand?