Free Electron
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fe::ext::ShapeSelector Class Reference

Intersect a shape or shapes with a RecordGroup. More...

#include <ShapeSelector.h>

Inheritance diagram for fe::ext::ShapeSelector:
Inheritance graph
[legend]

Public Member Functions

virtual void handle (Record &record)
 
virtual void configure (const Record &rCriteria, const sp< FilterI > &rspFilter)
 Configure selection based on a single criteria. More...
 
virtual void configure (const sp< RecordGroup > &rspCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
 Configure selection based on a group of criteria. More...
 
- Public Member Functions inherited from fe::ext::HandlerI
virtual void handleBind (sp< SignalerI > spSignalerI, sp< Layout > spLayout)
 
virtual void handleSignal (Record &signal, sp< SignalerI > spSignalerI)
 
- Public Member Functions inherited from fe::Component
const Stringname (void) const
 Return the components chosen name. More...
 
const String verboseName (void) const
 Return the annotated chosen name. More...
 
void setName (const String &name)
 Rename the component to anything you want. More...
 
hp< Registryregistry (void) const
 Get the Registry that created this component. More...
 
void adjoin (sp< Component > spComponent)
 Tie this component's lifetime to another. More...
 
sp< Componentcreate (const String &implementation, BWORD quiet=FALSE) const
 Convienience function to registry()->create() More...
 
void disjoin (void)
 Untie component from Hub, if connected. More...
 
String factoryName (void)
 
void setLibrary (sp< Library > spLibrary)
 Store a reference to the library used to instantiate this component. More...
 
sp< Librarylibrary (void)
 Get the library that created the component. More...
 
void setFactoryIndex (I32 a_factoryIndex)
 Set the library's factory index. More...
 
I32 factoryIndex (void)
 Get the library's factory index. More...
 
void setSingleton (BWORD set)
 Specify whether component is a singleton. More...
 
BWORD isSingleton (void)
 Return whether component is a singleton. More...
 
virtual void acquire (void)
 Specialized reference increment. More...
 
virtual void release (void)
 Specialized reference decrement. More...
 
- Public Member Functions inherited from fe::Handled< Component >
const hp< Component > & getHandle (void) const
 Get a safe handle to this object. More...
 
- Public Member Functions inherited from fe::Protectable
virtual I32 protection (void) const
 
virtual void protect (void)
 
virtual void unprotect (void)
 
virtual Protectableclone (Protectable *pInstance=NULL)
 
- Public Member Functions inherited from fe::Counted
virtual void acquire (int &rCount)
 Increment the reference count (and get the count) More...
 
virtual void abandon (void)
 Decrement the reference count. More...
 
int count (void) const
 Return the count of references. More...
 
void setName (const String &)
 
void trackReference (void *pReference, String what)
 
void untrackReference (void *pReference)
 
void registerRegion (void *pT, U32 bytes)
 
- Public Member Functions inherited from fe::Initialized
void initializeAll (void)
 
void setActive (bool a_active)
 

Private Member Functions

virtual Record pickSingle (sp< RecordGroup > &rspSelection, const sp< RecordGroup > &rspSource, const Record &rCriteria, const sp< FilterI > &rspFilter)
 
virtual Record pickGroup (sp< RecordGroup > &rspSelection, const sp< RecordGroup > &rspSource, const sp< RecordGroup > &rspCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
 
virtual Record pick (sp< RecordGroup > &rspSelection, const sp< RecordGroup > &rspSource, const Record &rCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
 
Record pickInCylinder (sp< RecordGroup > &rspSelection, const sp< RecordGroup > &rspSource, const Record &rCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
 
Record pickInSphere (sp< RecordGroup > &rspSelection, const sp< RecordGroup > &rspSource, const Record &rCriteria, const sp< FilterI > &rspFilter, BWORD cumulative)
 
void resetPicked (const sp< RecordGroup > &rspSource)
 

Private Attributes

Record m_criteria
 
sp< RecordGroupm_spCriteriaRG
 
sp< FilterIm_spFilter
 
BWORD m_cumulative
 
Cylinder m_cylinderView
 
RecordArrayView< Spherem_sphereRAV
 
Operator m_operatorView
 
Accessor< Recordm_aShape
 
Accessor< Real > m_aPicked
 

Additional Inherited Members

- Static Public Member Functions inherited from fe::Counted
static String reportTracker (void)
 
static U32 trackerCount (void)
 
- Protected Types inherited from fe::Initialized
typedef void(* InitializeFunction) (Initialized *)
 
- Protected Member Functions inherited from fe::Handled< Component >
void abandonHandle (void)
 
- Protected Member Functions inherited from fe::Counted
int releaseInternal (void)
 Decrement the reference count. More...
 
void suppressReport (void)
 
- Protected Member Functions inherited from fe::Initialized
void addInitializer (InitializeFunction function)
 

Detailed Description

Intersect a shape or shapes with a RecordGroup.

The configured criteria should be either a Record or RecordGroup of shapes. Each criteria Record is checked to contain a "bnd:shape" attribute or to be a shape itself.

Currently, the supported shapes are sphere and cylinder.

As a SelectorI, "marking" a shape is defined as setting any "bnd:picked" atrribute to 1.

Member Function Documentation

◆ configure() [1/2]

void fe::ext::ShapeSelector::configure ( const Record rCriteria,
const sp< FilterI > &  rspFilter 
)
virtual

Configure selection based on a single criteria.

Reimplemented from fe::ext::SelectorI.

◆ configure() [2/2]

void fe::ext::ShapeSelector::configure ( const sp< RecordGroup > &  rspCriteria,
const sp< FilterI > &  rspFilter,
BWORD  cumulative 
)
virtual

Configure selection based on a group of criteria.

Each Record in the criteria RecordGroup is applied in the order of iteration.

If cumulative, a test against multiple elements accumulate into a union instead of an intersection.

Reimplemented from fe::ext::SelectorI.


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