33#include <NDEVR/Model.h>
34#include <NDEVR/Material.h>
35#include <NDEVR/SnapsManager.h>
36#include <NDEVR/ModelIterator.h>
37#include <NDEVR/DesignSelection.h>
38#include <NDEVR/SelectionArea.h>
44 struct GeometryVertices;
63 bool is_smooth =
false;
68 void clearLastSelection();
69 void pushTransform(
const Matrix<fltp08>& transform,
bool apply_to_original);
78 fltp08 screenClosestDistanceSqr(
bool outer_bound)
const;
89 bool validModelSelection(
const Model& model)
const;
92 UUID nearestModel()
const;
119 bool is_edit =
false;
120 bool is_exact =
true;
121 bool use_interaction_flag =
true;
122 bool mask_added =
false;
123 bool mask_subtracted =
true;
124 bool allow_inverse_trans =
false;
141 bool _doesIntersect(
const Model& model)
const;
A specification of upper and lower bounds in N-dimensions.
Definition Bounds.hpp:57
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:64
Definition DesignSelection.h:19
A line segment represented by two vertices, a start and end.
Definition Line.hpp:55
Definition Matrix.hpp:173
Definition ModelIterator.h:39
ParseResult
Definition ModelIterator.h:42
Definition SelectionArea.hpp:52
uint04 nearest_vertex
Definition Selector.h:62
UUID nearest_layer
Definition Selector.h:59
UUID nearest_material
Definition Selector.h:58
fltp08 screen_distance
Definition Selector.h:60
UUID nearest_model
Definition Selector.h:57
UUID nearest_geometry
Definition Selector.h:56
uint04 nearest_index
Definition Selector.h:61
Matrix< fltp08 > geometry_transform
Definition Selector.h:54
Vertex< 3, fltp08 > screen_location
Definition Selector.h:55
DesignSelection selection
Definition Selector.h:108
ClosestModelInfo nearest_point
Definition Selector.h:109
Buffer< Matrix< fltp08 > > m_pushed_transforms
Definition Selector.h:146
ClosestModelInfo nearest_solid
Definition Selector.h:111
bool operator==(const SelectionInfo &) const
Definition Selector.h:100
Buffer< Buffer< Matrix< fltp08 > > > m_pushed_mask_transforms
Definition Selector.h:147
bool allowSolidInteraction() const
Definition Selector.h:91
Vertex< 3, fltp08 > world_nearest_location
Definition Selector.h:107
UUID m_id
Definition Selector.h:148
UUID uuid() const
Definition Selector.h:99
void setAllowSolidInteraction(bool allow_solid_intersection)
Definition Selector.h:90
WindingMode selection_winding_mode
Definition Selector.h:112
Buffer< SelectionArea< 3, fltp08 > > selection_masks
Definition Selector.h:105
LineSegment< 3, fltp08 > world_selection_line
Definition Selector.h:106
Material override_material
Definition Selector.h:103
SelectionArea< 3, fltp08 > current_selection
Definition Selector.h:104
ClosestModelInfo nearest_line
Definition Selector.h:110
bool m_allow_solid_intersection
Definition Selector.h:149
std::function< bool(const Model &)> selection_filter
Definition Selector.h:125
Buffer< Model > m_valid_model_stack
Definition Selector.h:145
A vertex.
Definition Vertex.hpp:54
PrimitiveProperty
Definition DesignObjectBase.h:44
float fltp04
Defines an alias representing a 4 byte floating-point number.
Definition BaseValues.hpp:157
PrimitiveMode
Definition DesignObjectBase.h:113
WindingMode
Definition DesignObjectBase.h:97
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:120
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:181
Definition BaseValues.hpp:272
Definition GeometryVertices.h:14
Definition Selector.h:128
fltp04 perspective_distance
Definition Selector.h:137
SelectionArea< 3, fltp08 > linear_selection
Definition Selector.h:131
PrimitiveMode primitive_mode
Definition Selector.h:133
Geometry geo
Definition Selector.h:129
SelectionArea< 3, fltp08 > perspective_selection
Definition Selector.h:130
PrimitiveProperty primitive_property
Definition Selector.h:132
Buffer< bool > selection_mask
Definition Selector.h:135
Buffer< uint04 > indices
Definition Selector.h:134
fltp04 linear_distance
Definition Selector.h:136