Enzo
Loading...
Searching...
No Matches
enzo::SelectionComponent Class Referenceabstract

Abstract base for one piece of a Selection expression. More...

#include <SelectionComponent.h>

Inheritance diagram for enzo::SelectionComponent:
enzo::GroupSelectionComponent enzo::PathSelectionComponent

Public Member Functions

virtual bool containsPrim (const geo::Primitive &prim) const =0
 
virtual bool containsFace (const geo::Primitive &prim, Index index, Offset offset, bool inverted=false) const =0
 
virtual bool containsPoint (const geo::Primitive &prim, Index index, Offset offset, bool inverted=false) const =0
 
virtual bool containsVertex (const geo::Primitive &prim, Index index, Offset offset, bool inverted=false) const =0
 
virtual bool isWholePrim (const geo::Primitive &prim) const =0
 Whether the component selects the prim as a whole.
 

Static Public Member Functions

static std::unique_ptr< SelectionComponentfromString (std::string_view string)
 Parses one component string and returns the appropriate subclass.
 
static std::unique_ptr< SelectionComponentfromGroup (std::string_view name)
 Creates a group based component for the named group.
 

Detailed Description

Abstract base for one piece of a Selection expression.

A Selection is a comma separated list of components. Each component knows how to answer membership queries for a primitive and its faces, points, and vertices. Path based components match a primitive by path and use explicit index sets. Group based components look up named groups on the primitive.

Member Function Documentation

◆ isWholePrim()

virtual bool enzo::SelectionComponent::isWholePrim ( const geo::Primitive & prim) const
pure virtual

Whether the component selects the prim as a whole.

Whole prim selection means every face, point, and vertex of a matched prim is implicitly included. Group components consult the primitive group flag for this answer, which is why the prim is required.

Implemented in enzo::GroupSelectionComponent, and enzo::PathSelectionComponent.


The documentation for this class was generated from the following files: