Open CASCADE Technology 6.6.0
|
A SelectExplore determines from an input list of Entities,
a list obtained by a way of exploration. This implies the
possibility of recursive exploration : the output list is
itself reused as input, etc...
Examples : Shared Entities, can be considered at one level
(immediate shared) or more, or max level
Then, for each input entity, if it is not rejected, it can be
either taken itself, or explored : it then produces a list.
According to a level, either the produced lists or taken
entities give the result (level one), or lists are themselves
considered and for each item, is it taken or explored.
Remark that rejection is just a safety : normally, an input
entity is, either taken itself, or explored
A maximum level can be specified. Else, the process continues
until all entities have been either taken or rejected
#include <IFSelect_SelectExplore.hxx>
Public Member Functions | |
Standard_Integer | Level () const |
Returns the required exploring level | |
Interface_EntityIterator | RootResult (const Interface_Graph &G) const |
Returns the list of selected entities. Works by calling the method Explore on each input entity : it can be rejected, taken for output, or to explore. If the maximum level has not yet been attained, or if no max level is specified, entities to be explored are themselves used as if they were input | |
virtual Standard_Boolean | Explore (const Standard_Integer level, const Handle< Standard_Transient > &ent, const Interface_Graph &G, Interface_EntityIterator &explored) const =0 |
Analyses and, if required, Explores an entity, as follows : The explored list starts as empty, it has to be filled by this method. If it returns False, <ent> is rejected for result (this is to be used only as safety) If it returns True and <explored> remains empty, <ent> is taken itself for result, not explored If it returns True and <explored> is not empty, the content of this list is considered : If maximum level is attained, it is taken for result Else (or no max), each of its entity will be itself explored | |
TCollection_AsciiString | Label () const |
Returns a text saying "(Recursive)" or "(Level nn)" plus specific criterium returned by ExploreLabel (see below) | |
virtual TCollection_AsciiString | ExploreLabel () const =0 |
Returns a text defining the way of exploration | |
Protected Member Functions | |
IFSelect_SelectExplore (const Standard_Integer level) | |
Initializes a SelectExplore : the level must be specified on starting. 0 means all levels, 1 means level one only, etc... |
IFSelect_SelectExplore::IFSelect_SelectExplore | ( | const Standard_Integer | level | ) | [protected] |
virtual Standard_Boolean IFSelect_SelectExplore::Explore | ( | const Standard_Integer | level, |
const Handle< Standard_Transient > & | ent, | ||
const Interface_Graph & | G, | ||
Interface_EntityIterator & | explored | ||
) | const [pure virtual] |
Implemented in IFSelect_SelectSignedShared, IFSelect_SelectSignedSharing, XSControl_ConnectedShapes, STEPSelections_SelectFaces, STEPSelections_SelectGSCurves, STEPSelections_SelectAssembly, STEPSelections_SelectInstances, IGESSelect_SelectBypassGroup, IGESSelect_SelectBypassSubfigure, IGESSelect_SelectBasicGeom, IGESSelect_SelectFaces, and IGESSelect_SelectPCurves.
virtual TCollection_AsciiString IFSelect_SelectExplore::ExploreLabel | ( | ) | const [pure virtual] |
Implemented in IFSelect_SelectSignedShared, IFSelect_SelectSignedSharing, XSControl_ConnectedShapes, STEPSelections_SelectFaces, STEPSelections_SelectGSCurves, STEPSelections_SelectAssembly, STEPSelections_SelectInstances, IGESSelect_SelectBypassGroup, IGESSelect_SelectBypassSubfigure, IGESSelect_SelectBasicGeom, IGESSelect_SelectFaces, and IGESSelect_SelectPCurves.
TCollection_AsciiString IFSelect_SelectExplore::Label | ( | ) | const [virtual] |
Implements IFSelect_Selection.
Standard_Integer IFSelect_SelectExplore::Level | ( | ) | const |
Interface_EntityIterator IFSelect_SelectExplore::RootResult | ( | const Interface_Graph & | G | ) | const [virtual] |
Implements IFSelect_Selection.
Reimplemented in STEPSelections_SelectInstances.