API Documentation
Loading...
Searching...
No Matches
SelectionInfo Class Referencefinal

#include <Selector.h>

Inheritance diagram for SelectionInfo:
[legend]
Collaboration diagram for SelectionInfo:
[legend]

Classes

class  ClosestModelInfo
 
struct  ProcessStruct
 

Public Member Functions

 SelectionInfo ()
 
void clear ()
 
void clearLastSelection ()
 
void pushTransform (const Matrix< fltp08 > &transform, bool apply_to_original)
 
void popTransform ()
 
ParseResult process (Model &model) override
 
ParseResult postProcess (Model &model) override
 
ParseResult process (Model &model, Material &mat) override
 
ParseResult process (Model &model, Geometry &geo) override
 
bool processGeometry (const Geometry &geo, PrimitiveProperty primitive_property)
 
fltp08 screenClosestDistanceSqr (bool outer_bound) const
 
fltp08 screenClosestDistanceSqr (PrimitiveMode mode) const
 
fltp08 localClosestDistanceSqr (PrimitiveMode mode) const
 
void setNearestGeometry (const Geometry &geo, PrimitiveMode primitive_mode, uint04 index, uint04 vertex)
 
bool setNearestScreenPosition (PrimitiveMode mode, const Vertex< 3, fltp08 > &screen_point, fltp08 screen_distance)
 
void setGeometryTransform (PrimitiveMode mode, const Matrix< fltp08 > &mat)
 
void setNearestModel (PrimitiveMode mode, const Model &model)
 
void setNearestMaterial (PrimitiveMode mode, const UUID &material)
 
void setNearestLayer (PrimitiveMode mode, const UUID &layer)
 
void updateLineEndPoint (PrimitiveMode mode, Vertex< 3, fltp08 > vec)
 
bool validModelSelection (const Model &model) const
 
void setAllowSolidInteraction (bool allow_solid_intersection)
 
bool allowSolidInteraction () const
 
UUID nearestModel () const
 
Vertex< 3, fltp08nearestScreenLocation () const
 
Vertex< 3, fltp08nearestWorldLocation () const
 
UUID nearestGeometry (PrimitiveMode mode) const
 
void getEnclosedVertices (GeometryVertices &vertices) const
 
UUID uuid () const
 
bool operator== (const SelectionInfo &) const
 
Bounds< 3, fltp08selectionBounds () const
 
Bounds< 3, fltp08globalSelectionBounds () const
 
- Public Member Functions inherited from ModelIterator
 ModelIterator ()
 
 ModelIterator (const Model &model)
 
 ModelIterator (Buffer< Model > models)
 
void parseAll (const Model &model)
 
void parseAll (const Buffer< Model > &models)
 
void parseAll ()
 
ParseResult parseNext ()
 
Model currentModel () const
 

Public Attributes

Material override_material
 
SelectionArea< 3, fltp08current_selection
 
Buffer< SelectionArea< 3, fltp08 > > selection_masks
 
LineSegment< 3, fltp08world_selection_line
 
Vertex< 3, fltp08world_nearest_location
 
DesignSelection selection
 
ClosestModelInfo nearest_point
 
ClosestModelInfo nearest_line
 
ClosestModelInfo nearest_solid
 
WindingMode selection_winding_mode
 
fltp08 min_screen_cutoff_distance = 0.0
 
fltp08 screen_point_bias = 0.0
 
fltp08 screen_line_bias = 0.0
 
UUID current_model = Constant<UUID>::NaN
 
UUID camera = Constant<UUID>::NaN
 
UUID grips = Constant<UUID>::NaN
 
bool is_edit = false
 
bool is_exact = true
 
bool use_interaction_flag = true
 
bool mask_added = false
 
bool mask_subtracted = true
 
bool allow_inverse_trans = false
 
std::function< bool(const Model &)> selection_filter
 
- Public Attributes inherited from ModelIterator
std::function< bool(const Model &, const Geometry &)> geo_filter
 
std::function< bool(const Model &, const Material &)> material_filter
 
std::function< bool(const Model &)> model_filter
 
bool process_material = false
 
bool process_geometry = true
 
bool process_model = true
 
bool post_process_model = false
 
bool depth_first = true
 
bool is_recursive = true
 
bool use_unit = false
 
PrimitiveProperty material_property = PrimitiveProperty::Solid
 

Protected Member Functions

void _processGeometryNoTree (ProcessStruct &geo)
 
void _processGeometryWithTree (ProcessStruct &geo)
 
bool _doesIntersect (const Model &model) const
 
bool _processLineSelection (ProcessStruct &pstruct)
 
bool _processLineSelection (uint04 current_index, ProcessStruct &pstruct)
 
- Protected Member Functions inherited from ModelIterator
void removeFromPostProcessStack ()
 
virtual void _parseAll ()
 
Model popNextModel ()
 

Protected Attributes

Buffer< Modelm_valid_model_stack
 
Buffer< Matrix< fltp08 > > m_pushed_transforms
 
Buffer< Buffer< Matrix< fltp08 > > > m_pushed_mask_transforms
 
UUID m_id
 
bool m_allow_solid_intersection
 
- Protected Attributes inherited from ModelIterator
Buffer< Modelm_model_stack
 
Buffer< uint04m_model_parent_child_count
 
Buffer< Modelm_model_parent_stack
 

Additional Inherited Members

- Public Types inherited from ModelIterator
enum  ParseResult { e_continue_parsing , e_do_not_parse_children , e_finish_parsing }
 

Constructor & Destructor Documentation

◆ SelectionInfo()

Member Function Documentation

◆ _doesIntersect()

bool _doesIntersect ( const Model & model) const
protected

◆ _processGeometryNoTree()

void _processGeometryNoTree ( ProcessStruct & geo)
protected

◆ _processGeometryWithTree()

void _processGeometryWithTree ( ProcessStruct & geo)
protected

◆ _processLineSelection() [1/2]

bool _processLineSelection ( ProcessStruct & pstruct)
protected

◆ _processLineSelection() [2/2]

bool _processLineSelection ( uint04 current_index,
ProcessStruct & pstruct )
protected

◆ allowSolidInteraction()

bool allowSolidInteraction ( ) const
inline

◆ clear()

void clear ( )

◆ clearLastSelection()

void clearLastSelection ( )

◆ getEnclosedVertices()

void getEnclosedVertices ( GeometryVertices & vertices) const

◆ globalSelectionBounds()

Bounds< 3, fltp08 > globalSelectionBounds ( ) const

◆ localClosestDistanceSqr()

fltp08 localClosestDistanceSqr ( PrimitiveMode mode) const

◆ nearestGeometry()

UUID nearestGeometry ( PrimitiveMode mode) const

◆ nearestModel()

UUID nearestModel ( ) const

◆ nearestScreenLocation()

Vertex< 3, fltp08 > nearestScreenLocation ( ) const

◆ nearestWorldLocation()

Vertex< 3, fltp08 > nearestWorldLocation ( ) const

◆ operator==()

bool operator== ( const SelectionInfo & ) const
inline

◆ popTransform()

void popTransform ( )

◆ postProcess()

ModelIterator::ParseResult postProcess ( Model & model)
overridevirtual

Reimplemented from ModelIterator.

◆ process() [1/3]

ModelIterator::ParseResult process ( Model & model)
overridevirtual

Reimplemented from ModelIterator.

◆ process() [2/3]

ModelIterator::ParseResult process ( Model & model,
Geometry & geo )
overridevirtual

Reimplemented from ModelIterator.

◆ process() [3/3]

ModelIterator::ParseResult process ( Model & model,
Material & mat )
overridevirtual

Reimplemented from ModelIterator.

◆ processGeometry()

bool processGeometry ( const Geometry & geo,
PrimitiveProperty primitive_property )

◆ pushTransform()

void pushTransform ( const Matrix< fltp08 > & transform,
bool apply_to_original )

◆ screenClosestDistanceSqr() [1/2]

fltp08 screenClosestDistanceSqr ( bool outer_bound) const

◆ screenClosestDistanceSqr() [2/2]

fltp08 screenClosestDistanceSqr ( PrimitiveMode mode) const

◆ selectionBounds()

Bounds< 3, fltp08 > selectionBounds ( ) const

◆ setAllowSolidInteraction()

void setAllowSolidInteraction ( bool allow_solid_intersection)
inline

◆ setGeometryTransform()

void setGeometryTransform ( PrimitiveMode mode,
const Matrix< fltp08 > & mat )

◆ setNearestGeometry()

void setNearestGeometry ( const Geometry & geo,
PrimitiveMode primitive_mode,
uint04 index,
uint04 vertex )

◆ setNearestLayer()

void setNearestLayer ( PrimitiveMode mode,
const UUID & layer )

◆ setNearestMaterial()

void setNearestMaterial ( PrimitiveMode mode,
const UUID & material )

◆ setNearestModel()

void setNearestModel ( PrimitiveMode mode,
const Model & model )

◆ setNearestScreenPosition()

bool setNearestScreenPosition ( PrimitiveMode mode,
const Vertex< 3, fltp08 > & screen_point,
fltp08 screen_distance )

◆ updateLineEndPoint()

void updateLineEndPoint ( PrimitiveMode mode,
Vertex< 3, fltp08 > vec )

◆ uuid()

UUID uuid ( ) const
inline

◆ validModelSelection()

bool validModelSelection ( const Model & model) const

Member Data Documentation

◆ allow_inverse_trans

bool allow_inverse_trans = false

◆ camera

UUID camera = Constant<UUID>::NaN

◆ current_model

UUID current_model = Constant<UUID>::NaN

◆ current_selection

SelectionArea<3, fltp08> current_selection

◆ grips

UUID grips = Constant<UUID>::NaN

◆ is_edit

bool is_edit = false

◆ is_exact

bool is_exact = true

◆ m_allow_solid_intersection

bool m_allow_solid_intersection
protected

◆ m_id

UUID m_id
protected

◆ m_pushed_mask_transforms

Buffer<Buffer<Matrix<fltp08> > > m_pushed_mask_transforms
protected

◆ m_pushed_transforms

Buffer<Matrix<fltp08> > m_pushed_transforms
protected

◆ m_valid_model_stack

Buffer<Model> m_valid_model_stack
protected

◆ mask_added

bool mask_added = false

◆ mask_subtracted

bool mask_subtracted = true

◆ min_screen_cutoff_distance

fltp08 min_screen_cutoff_distance = 0.0

◆ nearest_line

ClosestModelInfo nearest_line

◆ nearest_point

ClosestModelInfo nearest_point

◆ nearest_solid

ClosestModelInfo nearest_solid

◆ override_material

Material override_material

◆ screen_line_bias

fltp08 screen_line_bias = 0.0

◆ screen_point_bias

fltp08 screen_point_bias = 0.0

◆ selection

DesignSelection selection

◆ selection_filter

std::function<bool(const Model&)> selection_filter

◆ selection_masks

Buffer<SelectionArea<3, fltp08> > selection_masks

◆ selection_winding_mode

WindingMode selection_winding_mode

◆ use_interaction_flag

bool use_interaction_flag = true

◆ world_nearest_location

Vertex<3, fltp08> world_nearest_location

◆ world_selection_line

LineSegment<3, fltp08> world_selection_line

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