API Documentation
Loading...
Searching...
No Matches
Geometry Class Reference

A core class within the model heirarchy containing vertex-based data (Usually 3D data) within a set container. Geometries can be shared by multiple Model parents. The primary information for Geometry comes from its vertices, which can be resized. In addition, primitive columns are used to group these vertices in various different ways. Geometries can take on different shapes depending on their Type. See PrimitiveMode. In addition to vertices some data is stored in the form of GeometryProperty values which can be accessed via getGeometryProperty(GeometryProperty). For iterating over each vertex in the Geometry, use VertexIterator For iterating over each line in linework Geometry, use LineIterator For iterating over Geoemetry colors, use VertexColorIterator. More...

#include <Geometry.h>

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

Classes

struct  OptimizedPrimitiveDef
 
struct  SmoothingParameters
 

Public Types

enum  GeometryProperty {
  e_geometry_type , e_thickness , e_thickness_mode , e_winding ,
  e_property_fields , e_is_surface , e_has_closed_primitive , e_plane_normal ,
  e_plane_offset , e_poly_holes , e_is_smooth , e_smooth_algorithm ,
  e_smooth_level , e_normal_mode , e_normal_smoothing_angle , e_is_closed_solid ,
  e_shape_type , e_is_clipping_geo , e_preserve_primitive_order , e_preserve_vertex_order ,
  e_no_auto_tree_creation
}
 
enum  ThicknessMode {
  e_none , e_pixel , e_flat_single , e_flat_per_vertex ,
  e_circle , e_circle_per_vertex
}
 
enum  TreeMode { e_no_tree , e_r_tree , e_kd_tree , e_quad_tree }
 
enum  VertexMode : uint01 {
  e_no_vertex , e_index , e_cartesian_1F , e_cartesian_1D ,
  e_cartesian_2F , e_cartesian_3F , e_cartesian_2D , e_cartesian_3D ,
  e_normal_ray_3F , e_normal_ray_3D , e_cartesian_grid_1F , e_cartesian_grid_3F ,
  e_cartesian_grid_1D , e_cartesian_grid_3D , e_cartesian_grid_image , e_polar_grid_1F ,
  e_color_aci , e_color_hsb , e_color_hsl , e_color_lab ,
  e_color_rgb , e_color_xyz , e_bitflag , e_cartesian_2I ,
  e_cartesian_3I , e_cartesian_2S , e_cartesian_3S
}
 
- Public Types inherited from DesignObject
enum  DesignObjectType {
  e_model = 0x00000001 , e_geometry = 0x00000002 , e_material = 0x00000004 , e_bone = 0x00000008 ,
  e_effect = 0x00000010 , e_layer = 0x00000020 , e_scene = 0x00000040 , e_camera = 0x00000080 ,
  e_selection = 0x00000100
}
 
enum  DesignProperty {
  e_guid , e_design_types , e_transform , e_bounding_box ,
  e_selection_box , e_name , e_description , e_editable_description ,
  e_creation_time , e_modified_time , e_asc_modified_time , e_desc_modified_time ,
  e_bounds_modified_time , e_author , e_creation_software , e_3D_visible ,
  e_tree_visible , e_icon , e_is_selected , e_is_focused ,
  e_allow_interactions , e_file , e_search_terms , e_category ,
  e_deletion_allowed , e_is_deleted , e_is_application_locked , e_is_application_owned ,
  e_bounds_ignored , e_selection_ignored , e_meta_data , e_untranslated_string_data ,
  e_translated_string_data , e_uncompressed_data , e_compressed_data , e_manager_visible ,
  e_library_id , e_is_frozen , e_applied_filters , e_design_property_size
}
 Values stored in the property database. More...
 

Public Member Functions

template<class t_type >
uint04 addPrimitive (PrimitiveProperty index_property, const t_type &primitive)
 
uint04 addPrimitives (PrimitiveProperty index_property, uint04 insersion_size)
 
void addToTree (uint04 start, uint04 size, PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
uint04 addVertex ()
 
void addVertices (uint04 location, uint04 size)
 
uint04 addVertices (uint04 size)
 
void autoCalculateIndices (PrimitiveProperty property, const void *lock=nullptr, ProgressInfo *log=nullptr, const Matrix< fltp08 > &transform=Matrix< fltp08 >(1.0))
 
Vector< 3, fltp08calculateAverageDirection (const Matrix< fltp08 > &mat) const
 
Vector< 2, fltp08calculateHVLength (const Matrix< fltp08 > &mat) const
 
void calculateIndexNeighborList (PrimitiveProperty primitive_property)
 
fltp08 calculateLength (const Matrix< fltp08 > &transform) const
 
void calculateNormals (NormalMode mode, Angle< fltp08 > max_difference, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
Plane< 3, fltp08calculatePlaneAtVertex (uint04 vertex_index) const
 
fltp08 calculateSurfaceArea (const Matrix< fltp08 > &parent_transform) const
 
void calculateTangentSpace (bool calc_tan, bool calc_bitan)
 
fltp08 calculateVolume (const Matrix< fltp08 > &parent_transform) const
 
Vector< 2, fltp08calculateVolumeAndSurfaceArea (const Matrix< fltp08 > &transform, const void *lock) const
 
bool canBeClosedSolid (const void *lock=nullptr) const
 
bool canExplode () const
 
void centerAlign ()
 
void clearSmoothing (const SmoothingParameters &properties)
 
void clearVerticesAndPrimitives ()
 
void closePolyline (PrimitiveProperty property)
 
TableColumncolumn (VertexProperty property)
 
const TableColumncolumn (VertexProperty property) const
 
void combine (const Geometry &geo, const Matrix< fltp08 > &conversion, Buffer< bool > vertex_mask)
 
void combine (const Geometry &geo, const Matrix< fltp08 > &conversion=Matrix< fltp08 >(1.0))
 
void convertPolarToCartesian (const String &roll_column, const String &pitch_column, const String &distance_column)
 
void copyFrom (const Geometry &geo, bool copy_tree=true)
 
void copyTraitsFrom (const Geometry &geo)
 
void cotangentLaplacianSmoothing (const SmoothingParameters &properties)
 
void createDrapedMaterialCoordinates (const Matrix< fltp08 > &mat=Matrix< fltp08 >())
 
template<class t_type >
uint04 createVertexProperty (const String &property_name)
 
uint04 createVertexProperty (const String &property_name, const TypeInfo &type)
 
void deleteGeometry ()
 
TableColumnedgeToFaceColumn ()
 
const TableColumnedgeToFaceColumn () const
 
Buffer< Geometry, uint04, ObjectAllocator< DESIGN_PRIM > > explode () const
 
Vertex< 3, fltp08faceCenter (uint04 index) const
 
Buffer< LineSegment< 3, fltp08 > > faceEdges (uint04 index) const
 
TableColumnfaceToEdgeColumn ()
 
const TableColumnfaceToEdgeColumn () const
 
void fillHolesByNeighbor (PrimitiveProperty property, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void flipNormals ()
 
 Geometry ()=default
 
 Geometry (const DesignObject &obj)
 
 Geometry (DesignObjectBase *base)
 
 Geometry (uint04 index, DesignObjectBase *base)
 
Time getAscModifiedTime (bool include_self, bool include_layer=false) const
 
Bounds< 3, fltp08getBounds () const
 
String getGeometryIcon () const
 
template<class t_type >
t_type getGeometryProperty (GeometryProperty property) const
 
GeometryType getGeometryType () const
 
Model getParent (uint04 index) const
 
Buffer< Model, uint04, ObjectAllocator< DESIGN_PRIM > > getParents () const
 
Buffer< uint04getSelectedVertices () const
 
const Buffer< uint04 > & getTreeIndices (PrimitiveProperty primitive_property) const
 
template<class t_type >
Buffer< t_type > getTreeSortedVertices (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
bool hasColumn (VertexProperty property) const
 
bool hasHoles (PrimitiveProperty property) const
 
bool hasIndexColumn () const
 
bool hasIndexFanColumn () const
 
bool hasParent (const Model &model) const
 
bool hasProperty (PrimitiveProperty property) const
 
bool hasProperty (VertexProperty property) const
 
bool hasTree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
bool hasVertexProperty (const String &property_name) const
 
bool hasVertexProperty (const VertexProperty &property) const
 
uint04 indexFanCount () const
 
uint04 indexFanOffset () const
 
uint04 indexOffset () const
 
uint04 indexOffset (PrimitiveProperty property) const
 
Buffer< uint04indices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const
 
void invalidateBounds ()
 
void laplacianSmoothing (const SmoothingParameters &properties)
 
Buffer< Vector< 2, uint04 > > lineIndices (PrimitiveProperty primitive_property) const
 
Buffer< Vector< 2, uint04 > > lineIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const
 
template<uint01 t_dims, class t_type >
LineSegment< t_dims, t_type > lineSegment (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 line_index) const
 
template<uint01 t_dims, class t_type >
Buffer< LineSegment< t_dims, t_type > > lineSegments (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
PrimitiveMode mode (PrimitiveProperty property) const
 
VertexMode mode (VertexProperty property) const
 
void normalExpansion (const Vector< 3, fltp04 > &expansion_vector)
 
uint04 numberOfParents () const
 
bool operator!= (const Geometry &model) const
 
bool operator== (const Geometry &model) const
 
OptimizedPrimitiveDef optimizedPrimitiveDef (PrimitiveProperty property)
 
void optimizeVertexLocations ()
 
void outline ()
 
uint01 parity (const Matrix< fltp04 > &parent_matrix, PrimitiveMode mode) const
 
uint01 parity (const Matrix< fltp08 > &parent_matrix, PrimitiveMode mode) const
 
template<uint01 t_dims, class t_type >
Buffer< Polygon< t_type, Vertex< t_dims, t_type > > > polygons (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
template<uint01 t_dims, class t_type >
Buffer< Polygon< t_type, Vertex< t_dims, t_type > > > polygons (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 start, uint04 size) const
 
Buffer< Buffer< uint04 > > polyIndices (PrimitiveProperty primitive_property) const
 
Buffer< Buffer< uint04 > > polyIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const
 
template<uint01 t_dims, class t_type >
Buffer< Polyline< t_dims, t_type > > polylines (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
template<uint01 t_dims, class t_type >
Buffer< Polyline< t_dims, t_type > > polylines (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 start, uint04 size) const
 
template<class t_type >
t_type primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions<=1, uint04 >::type index) const
 
template<class t_type >
t_type primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions==2, uint04 >::type index) const
 
template<class t_type >
t_type primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions==3, uint04 >::type index) const
 
TableColumnprimitiveColumn ()
 
const TableColumnprimitiveColumn () const
 
uint04 primitiveCount (PrimitiveProperty property) const
 
TableColumnprimitiveFanColumn ()
 
const TableColumnprimitiveFanColumn () const
 
TableColumnprimitiveFlagColumn ()
 
const TableColumnprimitiveFlagColumn () const
 
uint04 primitiveIndexCount () const
 
uint04 primitiveIndexCount (PrimitiveProperty property) const
 
bool primitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag) const
 
Buffer< uint04primitiveIndices (PrimitiveProperty primitive_property) const
 
TableColumnpropertyColumn (const String &property)
 
const TableColumnpropertyColumn (const String &property) const
 
TableColumnpropertyColumn (uint04 property)
 
const TableColumnpropertyColumn (uint04 property) const
 
template<class t_type >
Buffer< t_type > propertyVertices (uint04 property) const
 
template<class t_type >
Buffer< t_type > propertyVertices (uint04 property, uint04 start, uint04 size) const
 
uint01 provokingPrimitiveOffset () const
 
void removeDuplicateVertices (fltp08 epsilon, const void *lock, ProgressInfo *log=nullptr)
 
void removeHoleFill (const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void removePrimitive (PrimitiveProperty property, Buffer< uint04 > vertices)
 
void removePrimitive (PrimitiveProperty property, const Buffer< bool > &selection_mask)
 
void removePrimitive (PrimitiveProperty property, uint04 location)
 
void removePrimitive (PrimitiveProperty property, uint04 location, uint04 size)
 
void removeTree (PrimitiveProperty property, VertexProperty vertex_property=VertexProperty::Position)
 
void removeTrees (VertexProperty vertex_property=VertexProperty::Position)
 
void removeVertex (uint04 location)
 
void removeVertices (Buffer< uint04 > vertices)
 
void removeVertices (const Buffer< bool > &selection_mask)
 
void removeVertices (uint04 location, uint04 size)
 
void removeVertices (uint04 mask_offset, const Buffer< bool > &selection_mask)
 
void reservePrimitiveIndexSpace (uint04 index_size)
 
template<class t_type >
void setGeometryProperty (GeometryProperty property, const t_type &value)
 
void setGeometryType (GeometryType geometry_type)
 
void setNormalMode (NormalMode mode, Angle< fltp08 > max_sep_angle, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, t_type index_value)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Triangle< 1, t_type > index_value)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Vector< 2, t_type > index_value)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Vector< 3, t_type > index_value)
 
void setPrimitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag, bool value)
 
void setPrimitiveMode (PrimitiveProperty property, PrimitiveMode mode)
 
void setPrimitiveRange (PrimitiveProperty mode, uint04 start, uint04 primitive_count)
 
void setRealThickness (fltp08 real_thickness, const Matrix< fltp08 > &transform, const void *lock, ProgressInfo *log=nullptr)
 
void setSolidVertexCountValue (uint04 count)
 
void setSolidVertexOffsetValue (uint04 count)
 
void setSolidVertexReservedValue (uint04 count)
 
void setThicknessMode (ThicknessMode mode)
 
void setTransform (const Matrix< fltp08 > &transform)
 
void setTree (DynamicPointer< RTree< 3, fltp04 > > tree, PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
void setupIndexFanColumn ()
 
void setupVertexTable (uint04 vertex_size, VertexMode position, VertexMode normal=VertexMode::e_no_vertex, VertexMode color=VertexMode::e_no_vertex, VertexMode texture=VertexMode::e_no_vertex, VertexMode tangent=VertexMode::e_no_vertex, VertexMode bitangent=VertexMode::e_no_vertex, VertexMode bones=VertexMode::e_no_vertex)
 
template<class t_type >
void setVertex (VertexProperty property, uint04 index, const t_type &vector)
 
template<class t_type >
void setVertex (VertexProperty property, uint04 index, uint04 sub_index, const t_type &vector)
 
void setVertexFlag (uint04 vertex, VertexFlags flag, bool value)
 
void setVertexMode (VertexProperty property, VertexMode mode)
 
template<class t_type >
void setVertexProperties (const String &property, const Buffer< t_type > &vertices, uint04 offset=0)
 
template<class t_type >
void setVertexProperty (const String &property, uint04 index, const t_type &property_value)
 
template<class t_type >
void setVertexProperty (const String &property, uint04 index, uint04 sub_index, const t_type &vector)
 
template<class t_type >
void setVertexProperty (uint04 property, uint04 index, const t_type &vector)
 
template<class t_type >
void setVertexProperty (uint04 property, uint04 index, uint04 sub_index, const t_type &vector)
 
void setVertexSize (uint04 size)
 
template<class t_type , class t_matrix_type >
void setVertices (VertexProperty property, const Buffer< t_type > &vertices, const Matrix< t_matrix_type > &matrix, uint04 offset=0)
 
template<class t_type >
void setVertices (VertexProperty property, const Buffer< t_type > &vertices, uint04 offset=0)
 
template<class t_type >
void setVertices (VertexProperty property, const t_type *vertices, uint04 size, uint04 offset=0)
 
void setVerticesFlag (const Buffer< bool > &selection_mask, VertexFlags flag, bool value)
 
void setVerticesFlag (const Buffer< uint04 > &vertices, VertexFlags flag, bool value)
 
void setVerticesFlagAll (uint01 on_flags, uint01 off_flags)
 
void setVerticesFlagAll (VertexFlags flag, bool value)
 
void setVerticesFlags (const Buffer< bool > &selection_mask, BitFlag on_flags, BitFlag off_flags)
 
void setVerticesFlags (const Buffer< bool > &selection_mask, BitFlag selected_on_flags, BitFlag selected_off_flags, BitFlag unselected_on_flags, BitFlag unselected_off_flags, uint04 bitmask_offset=0)
 
void setWindingMode (WindingMode mode, const void *lock=nullptr)
 
uint04 solidVertexCount () const
 
uint04 solidVertexOffset () const
 
uint04 solidVertexReservedCount () const
 
void split (Geometry &other_geo, const Buffer< bool > &vertex_mask)
 
void splitDuplicateVertices ()
 
Ray< 3, fltp08surfaceNormal () const
 
ThicknessMode thicknessMode () const
 
DynamicPointer< RTree< 3, fltp04 > > tree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
template<uint01 t_dims, class t_type >
Triangle< t_dims, t_type > triangle (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 tri_index) const
 
template<uint01 t_dims, class t_type >
Buffer< Triangle< t_dims, t_type > > triangles (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
template<uint01 t_dims, class t_type >
Buffer< Triangle< t_dims, t_type > > triangles (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 start, uint04 size) const
 
Buffer< Vector< 3, uint04 > > triIndices (PrimitiveProperty primitive_property) const
 
Buffer< Vector< 3, uint04 > > triIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const
 
template<class t_type >
void updateGeometryProperty (GeometryProperty property, const t_type &type, const void *lock_ptr=nullptr)
 
void updateModifiedTime (Time time=Time::SystemTime())
 
void updatePrimitiveColumn (PrimitiveProperty property, bool remove_tree=true)
 
void updatePrimitiveColumns (bool remove_tree=true)
 
void updateSolidVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true)
 
void updateTransform (const Matrix< fltp08 > &transform, const void *lock_ptr=nullptr)
 
void updateVertexColumn (const String &property)
 
void updateVertexColumn (const String &property, uint04 index, uint04 size)
 
void updateVertexColumn (VertexProperty property)
 
void updateVertexColumn (VertexProperty property, uint04 index, uint04 size)
 
void updateVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true)
 
void updateVertexColumns (uint04 index, uint04 size, bool invalidate_bounds=true, bool erase_kd_tree=true)
 
bool validate () const
 
template<class t_type >
t_type vertex (VertexProperty property, uint04 index) const
 
uint04 vertexCount () const
 
bool vertexFlag (uint04 vertex_index, VertexFlags flag) const
 
uint04 vertexOffset () const
 
template<class t_type >
t_type vertexProperty (const String &property, uint04 vertex_index) const
 
template<class t_type >
t_type vertexProperty (const String &property, uint04 vertex_index, uint04 sub_index) const
 
template<class t_type >
t_type vertexProperty (uint04 property_index, uint04 vertex_index) const
 
template<class t_type >
t_type vertexProperty (uint04 property_index, uint04 vertex_index, uint04 sub_index) const
 
uint04 vertexPropertyCount () const
 
uint04 vertexPropertyIndex (const String &property_name) const
 
const StringvertexPropertyName (uint04 property_index) const
 
TypeInfo vertexPropertyType (uint04 property_index) const
 
uint04 vertexReservedCount () const
 
bool vertexSelected (uint04 vertex) const
 
template<class t_type >
Buffer< t_type > vertices (const String &property) const
 
template<class t_type >
Buffer< t_type > vertices (const String &property, uint04 start, uint04 size) const
 
template<class t_type >
Buffer< t_type > vertices (VertexProperty property) const
 
template<class t_type >
Buffer< t_type > vertices (VertexProperty property, uint04 start, uint04 size) const
 
- Public Member Functions inherited from DesignObject
void actionDeletedIndex (uint04 index, uint04 size)
 
JSONNode activeFilters () const
 
void addIndex (uint04 index, uint04 size)
 
void appendData (const String &data, bool compressed)
 
DesignObjectBasebase () const
 
void clearMetaData (const String &index)
 
void copyFrom (const DesignObject &object)
 
uint04 designIndex () const
 
 DesignObject ()=default
 Creates an "invalid" design object. This object does not have a backing database, and all indices will be Invalid. Checking properties on this object is not permitted but you may use the '=' to set this model to a different model.
 
 DesignObject (DesignObjectBase *base)
 Creates an new design object within the given DesignObjectBase. This object is appended to the end of the DesignObjectBase data structure and values are setup to defaults.
 
 DesignObject (uint04 index, DesignObjectBase *base)
 Sets a DesignObject up to be a pointer to an existing object in the database. If the index is invalid behavior is undefined.
 
bool doesPropertyBeginWith (DesignProperty property, const char *value, bool ignore_case) const
 
bool doesPropertyBeginWith (DesignProperty property, const String &value, bool ignore_case) const
 
bool doesPropertyContain (DesignProperty property, const char *value, bool ignore_case) const
 
bool doesPropertyContain (DesignProperty property, const String &value, bool ignore_case) const
 
File file () const
 
uint04 getDesignParentIndex () const
 
String getIcon () const
 
template<class t_type >
t_type getInheritedProperty (DesignProperty property) const
 
Time getModifiedTime () const
 
template<class t_type >
t_type getProperty (DesignProperty property) const
 
Scene getScene () const
 
Matrix< fltp08getTransform () const
 
bool hasMetaData (const String &index) const
 
template<class t_type >
bool hasProperty (DesignProperty property) const
 
uint04 index () const
 
bool isDesignType (DesignObjectType mode) const
 
bool isDesignType (uint04 mode) const
 
bool isProperty (DesignProperty property, const char *value) const
 
bool isProperty (DesignProperty property, const String &value) const
 
bool isValid () const
 
const JSONNodemetaData () const
 
const JSONNodemetaData (const String &index) const
 
void offset (const Vector< 3, fltp08 > &offset)
 
 operator bool () const
 
bool operator!= (const DesignObject &model) const
 
bool operator< (const DesignObject &model) const
 
bool operator== (const DesignObject &model) const
 
bool operator> (const DesignObject &model) const
 
DynamicPointer< Table > & propertyTable ()
 
const DynamicPointer< Table > & propertyTable () const
 
void removeMetaData (const String &index, const void *lock_ptr=nullptr)
 
void scale (Vector< 3, fltp08 > scale, Vertex< 3, fltp08 > center_of_scale=Constant< Vertex< 3, fltp08 > >::Invalid)
 
void setActiveFilters (const JSONNode &node)
 
void setDesignType (DesignObjectType mode, bool is_type)
 
void setDesignVisible (bool is_visible)
 
void setMetaData (const JSONNode &node)
 
void setMetaData (const String &index, const bool &data)
 
void setMetaData (const String &index, const fltp08 &data)
 
void setMetaData (const String &index, const JSONNode &node)
 
void setMetaData (const String &index, const String &data)
 
void setMetaData (const String &index, const uint04 &data)
 
template<>
void setProperty (DesignProperty property, const String &value)
 
template<class t_type >
void setProperty (DesignProperty property, const t_type &value)
 
template<>
void setProperty (DesignProperty property, const UUID &value)
 
void updateCreatedTime ()
 
void updateDesignModifiedTime (Time time=Time::SystemTime())
 
void updateDesignTransform (const Matrix< fltp08 > &transform, const void *lock=nullptr)
 
void updateDesignVisible (bool is_visible, const void *lock=nullptr)
 
void updateMetaData (const String &index, const bool &data, const void *lock_ptr=nullptr)
 
void updateMetaData (const String &index, const fltp08 &data, const void *lock_ptr=nullptr)
 
void updateMetaData (const String &index, const String &data, const void *lock_ptr=nullptr)
 
template<class t_type >
void updateProperty (DesignProperty property, const t_type &value, const void *lock=nullptr)
 
UUID uuid () const
 
bool validateDesignObject () const
 

Static Public Member Functions

static constexpr uint04 indicesPerPrimitive (PrimitiveMode property)
 
template<class t_vec_type >
static t_vec_type OptimizedGetPrimitiveVec (const OptimizedPrimitiveDef &ref, uint04 index)
 
template<class t_vec_type >
static void OptimizedSetPrimitive (const OptimizedPrimitiveDef &ref, uint04 index, t_vec_type index_value)
 
template<class t_vec_type >
static void OptimizedSetPrimitiveVec (const OptimizedPrimitiveDef &ref, uint04 index, t_vec_type index_value)
 
static void SetTriangulationMethod (std::function< void(Geometry &geo, const Matrix< fltp08 > &matrix, const void *lock, ProgressInfo *log)> function)
 
- Static Public Member Functions inherited from DesignObject
static constexpr const char * FilePathDesignNameVariable ()
 

Protected Member Functions

void addFromParent (Model &parent)
 
void removeParent (const Model &parent)
 
void setCountValue (PrimitiveProperty property, uint04 count)
 
void setIndexCountValue (uint04 count)
 Index.
 
void setIndexFanCountValue (uint04 count)
 
void setIndexFanOffsetValue (uint04 offset)
 
void setIndexOffsetValue (uint04 offset)
 
void setModeValue (PrimitiveProperty property, PrimitiveMode mode)
 
void setModeValue (VertexProperty property, VertexMode vert_mode)
 
void setOffsetValue (PrimitiveProperty property, uint04 offset)
 
template<class t_index_type , class t_vec_type >
void setPrimitiveVec (PrimitiveProperty property, uint04 index, t_vec_type &index_value)
 
void setVertexCountValue (uint04 count)
 Vertex.
 
void setVertexOffsetValue (uint04 count)
 
void setVertexReservedValue (uint04 count)
 
- Protected Member Functions inherited from DesignObject
void onNameChange (const String &new_name)
 

Static Protected Attributes

static std::function< void(Geometry &geo, const Matrix< fltp08 > &matrix, const void *lock, ProgressInfo *log)> s_geometry_triangulation
 

Friends

class Model
 

Additional Inherited Members

- Protected Attributes inherited from DesignObject
DesignObjectBasem_base = nullptr
 
uint04 m_design_index = Constant<uint04>::Invalid
 
uint04 m_index = Constant<uint04>::Invalid
 
UUID m_uuid = Constant<UUID>::Invalid
 

Detailed Description

A core class within the model heirarchy containing vertex-based data (Usually 3D data) within a set container. Geometries can be shared by multiple Model parents. The primary information for Geometry comes from its vertices, which can be resized. In addition, primitive columns are used to group these vertices in various different ways. Geometries can take on different shapes depending on their Type. See PrimitiveMode. In addition to vertices some data is stored in the form of GeometryProperty values which can be accessed via getGeometryProperty(GeometryProperty). For iterating over each vertex in the Geometry, use VertexIterator For iterating over each line in linework Geometry, use LineIterator For iterating over Geoemetry colors, use VertexColorIterator.


Warning
Access to these members and data should be made in a thread-safe manner using DesignObjectLookup read and write locks.

Member Enumeration Documentation

◆ GeometryProperty

Enumerator
e_geometry_type 
e_thickness 
e_thickness_mode 
e_winding 
e_property_fields 
e_is_surface 
e_has_closed_primitive 
e_plane_normal 
e_plane_offset 
e_poly_holes 
e_is_smooth 
e_smooth_algorithm 
e_smooth_level 
e_normal_mode 
e_normal_smoothing_angle 
e_is_closed_solid 
e_shape_type 
e_is_clipping_geo 
e_preserve_primitive_order 
e_preserve_vertex_order 
e_no_auto_tree_creation 

◆ ThicknessMode

Enumerator
e_none 
e_pixel 
e_flat_single 
e_flat_per_vertex 
e_circle 
e_circle_per_vertex 

◆ TreeMode

enum TreeMode
Enumerator
e_no_tree 
e_r_tree 
e_kd_tree 
e_quad_tree 

◆ VertexMode

Enumerator
e_no_vertex 
e_index 
e_cartesian_1F 
e_cartesian_1D 
e_cartesian_2F 
e_cartesian_3F 
e_cartesian_2D 
e_cartesian_3D 
e_normal_ray_3F 
e_normal_ray_3D 
e_cartesian_grid_1F 
e_cartesian_grid_3F 
e_cartesian_grid_1D 
e_cartesian_grid_3D 
e_cartesian_grid_image 
e_polar_grid_1F 
e_color_aci 
e_color_hsb 
e_color_hsl 
e_color_lab 
e_color_rgb 
e_color_xyz 
e_bitflag 
e_cartesian_2I 
e_cartesian_3I 
e_cartesian_2S 
e_cartesian_3S 

Constructor & Destructor Documentation

◆ Geometry() [1/4]

Geometry ( )
default

◆ Geometry() [2/4]

◆ Geometry() [3/4]

Geometry ( uint04 index,
DesignObjectBase * base )

◆ Geometry() [4/4]

Geometry ( const DesignObject & obj)
explicit

Member Function Documentation

◆ addFromParent()

void addFromParent ( Model & parent)
protected

◆ addPrimitive()

template<class t_type >
uint04 addPrimitive ( PrimitiveProperty index_property,
const t_type & primitive )
inline

◆ addPrimitives()

uint04 addPrimitives ( PrimitiveProperty index_property,
uint04 insersion_size )
inline

◆ addToTree()

void addToTree ( uint04 start,
uint04 size,
PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const

◆ addVertex()

uint04 addVertex ( )
inline

◆ addVertices() [1/2]

void addVertices ( uint04 location,
uint04 size )

◆ addVertices() [2/2]

uint04 addVertices ( uint04 size)
inline

◆ autoCalculateIndices()

void autoCalculateIndices ( PrimitiveProperty property,
const void * lock = nullptr,
ProgressInfo * log = nullptr,
const Matrix< fltp08 > & transform = Matrixfltp08 >(1.0) )

◆ calculateAverageDirection()

Vector< 3, fltp08 > calculateAverageDirection ( const Matrix< fltp08 > & mat) const

◆ calculateHVLength()

Vector< 2, fltp08 > calculateHVLength ( const Matrix< fltp08 > & mat) const

◆ calculateIndexNeighborList()

void calculateIndexNeighborList ( PrimitiveProperty primitive_property)

◆ calculateLength()

fltp08 calculateLength ( const Matrix< fltp08 > & transform) const

◆ calculateNormals()

void calculateNormals ( NormalMode mode,
Angle< fltp08 > max_difference,
const void * lock = nullptr,
ProgressInfo * log = nullptr )

◆ calculatePlaneAtVertex()

Plane< 3, fltp08 > calculatePlaneAtVertex ( uint04 vertex_index) const

◆ calculateSurfaceArea()

fltp08 calculateSurfaceArea ( const Matrix< fltp08 > & parent_transform) const

◆ calculateTangentSpace()

void calculateTangentSpace ( bool calc_tan,
bool calc_bitan )

◆ calculateVolume()

fltp08 calculateVolume ( const Matrix< fltp08 > & parent_transform) const

◆ calculateVolumeAndSurfaceArea()

Vector< 2, fltp08 > calculateVolumeAndSurfaceArea ( const Matrix< fltp08 > & transform,
const void * lock ) const

◆ canBeClosedSolid()

bool canBeClosedSolid ( const void * lock = nullptr) const

◆ canExplode()

bool canExplode ( ) const

◆ centerAlign()

void centerAlign ( )

◆ clearSmoothing()

void clearSmoothing ( const SmoothingParameters & properties)

◆ clearVerticesAndPrimitives()

void clearVerticesAndPrimitives ( )

◆ closePolyline()

void closePolyline ( PrimitiveProperty property)

◆ column() [1/2]

TableColumn & column ( VertexProperty property)
inline

◆ column() [2/2]

const TableColumn & column ( VertexProperty property) const
inline

◆ combine() [1/2]

void combine ( const Geometry & geo,
const Matrix< fltp08 > & conversion,
Buffer< bool > vertex_mask )

◆ combine() [2/2]

void combine ( const Geometry & geo,
const Matrix< fltp08 > & conversion = Matrixfltp08 >(1.0) )

◆ convertPolarToCartesian()

void convertPolarToCartesian ( const String & roll_column,
const String & pitch_column,
const String & distance_column )

◆ copyFrom()

void copyFrom ( const Geometry & geo,
bool copy_tree = true )

◆ copyTraitsFrom()

void copyTraitsFrom ( const Geometry & geo)

◆ cotangentLaplacianSmoothing()

void cotangentLaplacianSmoothing ( const SmoothingParameters & properties)

◆ createDrapedMaterialCoordinates()

void createDrapedMaterialCoordinates ( const Matrix< fltp08 > & mat = Matrixfltp08 >())

◆ createVertexProperty() [1/2]

template<class t_type >
uint04 createVertexProperty ( const String & property_name)
inline

◆ createVertexProperty() [2/2]

uint04 createVertexProperty ( const String & property_name,
const TypeInfo & type )

◆ deleteGeometry()

void deleteGeometry ( )

◆ edgeToFaceColumn() [1/2]

TableColumn & edgeToFaceColumn ( )
inline

◆ edgeToFaceColumn() [2/2]

const TableColumn & edgeToFaceColumn ( ) const
inline

◆ explode()

Buffer< Geometry, uint04, ObjectAllocator< DESIGN_PRIM > > explode ( ) const

◆ faceCenter()

Vertex< 3, fltp08 > faceCenter ( uint04 index) const

◆ faceEdges()

Buffer< LineSegment< 3, fltp08 > > faceEdges ( uint04 index) const

◆ faceToEdgeColumn() [1/2]

TableColumn & faceToEdgeColumn ( )
inline

◆ faceToEdgeColumn() [2/2]

const TableColumn & faceToEdgeColumn ( ) const
inline

◆ fillHolesByNeighbor()

void fillHolesByNeighbor ( PrimitiveProperty property,
const void * lock = nullptr,
ProgressInfo * log = nullptr )

◆ flipNormals()

void flipNormals ( )

◆ getAscModifiedTime()

Time getAscModifiedTime ( bool include_self,
bool include_layer = false ) const

◆ getBounds()

Bounds< 3, fltp08 > getBounds ( ) const

◆ getGeometryIcon()

String getGeometryIcon ( ) const

◆ getGeometryProperty()

template<class t_type >
t_type getGeometryProperty ( GeometryProperty property) const
inline

◆ getGeometryType()

GeometryType getGeometryType ( ) const

◆ getParent()

Model getParent ( uint04 index) const

◆ getParents()

Buffer< Model, uint04, ObjectAllocator< DESIGN_PRIM > > getParents ( ) const

◆ getSelectedVertices()

Buffer< uint04 > getSelectedVertices ( ) const

◆ getTreeIndices()

const Buffer< uint04 > & getTreeIndices ( PrimitiveProperty primitive_property) const

◆ getTreeSortedVertices()

template<class t_type >
Buffer< t_type > getTreeSortedVertices ( PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const
inline

◆ hasColumn()

bool hasColumn ( VertexProperty property) const
inline

◆ hasHoles()

bool hasHoles ( PrimitiveProperty property) const

◆ hasIndexColumn()

bool hasIndexColumn ( ) const
inline

◆ hasIndexFanColumn()

bool hasIndexFanColumn ( ) const
inline

◆ hasParent()

bool hasParent ( const Model & model) const

◆ hasProperty() [1/2]

bool hasProperty ( PrimitiveProperty property) const
inline

◆ hasProperty() [2/2]

bool hasProperty ( VertexProperty property) const
inline

◆ hasTree()

bool hasTree ( PrimitiveProperty primitive_property,
VertexProperty vertex_property = VertexProperty::Position ) const

◆ hasVertexProperty() [1/2]

bool hasVertexProperty ( const String & property_name) const

◆ hasVertexProperty() [2/2]

bool hasVertexProperty ( const VertexProperty & property) const

◆ indexFanCount()

uint04 indexFanCount ( ) const
inline

◆ indexFanOffset()

uint04 indexFanOffset ( ) const
inline

◆ indexOffset() [1/2]

uint04 indexOffset ( ) const
inline

◆ indexOffset() [2/2]

uint04 indexOffset ( PrimitiveProperty property) const
inline

◆ indices()

Buffer< uint04 > indices ( PrimitiveProperty primitive_property,
uint04 start,
uint04 size ) const

◆ indicesPerPrimitive()

static constexpr uint04 indicesPerPrimitive ( PrimitiveMode property)
inlinestaticconstexpr

◆ invalidateBounds()

void invalidateBounds ( )

◆ laplacianSmoothing()

void laplacianSmoothing ( const SmoothingParameters & properties)

◆ lineIndices() [1/2]

Buffer< Vector< 2, uint04 > > lineIndices ( PrimitiveProperty primitive_property) const
inline

◆ lineIndices() [2/2]

Buffer< Vector< 2, uint04 > > lineIndices ( PrimitiveProperty primitive_property,
uint04 start,
uint04 size ) const

◆ lineSegment()

template<uint01 t_dims, class t_type >
LineSegment< t_dims, t_type > lineSegment ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
uint04 line_index ) const
inline

◆ lineSegments()

template<uint01 t_dims, class t_type >
Buffer< LineSegment< t_dims, t_type > > lineSegments ( PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const
inline

◆ mode() [1/2]

PrimitiveMode mode ( PrimitiveProperty property) const
inline

◆ mode() [2/2]

VertexMode mode ( VertexProperty property) const
inline

◆ normalExpansion()

void normalExpansion ( const Vector< 3, fltp04 > & expansion_vector)

◆ numberOfParents()

uint04 numberOfParents ( ) const

◆ operator!=()

bool operator!= ( const Geometry & model) const
inline

◆ operator==()

bool operator== ( const Geometry & model) const
inline

◆ OptimizedGetPrimitiveVec()

template<class t_vec_type >
static t_vec_type OptimizedGetPrimitiveVec ( const OptimizedPrimitiveDef & ref,
uint04 index )
inlinestatic

◆ optimizedPrimitiveDef()

OptimizedPrimitiveDef optimizedPrimitiveDef ( PrimitiveProperty property)
inline

◆ OptimizedSetPrimitive()

template<class t_vec_type >
static void OptimizedSetPrimitive ( const OptimizedPrimitiveDef & ref,
uint04 index,
t_vec_type index_value )
inlinestatic

◆ OptimizedSetPrimitiveVec()

template<class t_vec_type >
static void OptimizedSetPrimitiveVec ( const OptimizedPrimitiveDef & ref,
uint04 index,
t_vec_type index_value )
inlinestatic

◆ optimizeVertexLocations()

void optimizeVertexLocations ( )

◆ outline()

void outline ( )

◆ parity() [1/2]

uint01 parity ( const Matrix< fltp04 > & parent_matrix,
PrimitiveMode mode ) const

◆ parity() [2/2]

uint01 parity ( const Matrix< fltp08 > & parent_matrix,
PrimitiveMode mode ) const

◆ polygons() [1/2]

template<uint01 t_dims, class t_type >
Buffer< Polygon< t_type, Vertex< t_dims, t_type > > > polygons ( PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const
inline

◆ polygons() [2/2]

template<uint01 t_dims, class t_type >
Buffer< Polygon< t_type, Vertex< t_dims, t_type > > > polygons ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
uint04 start,
uint04 size ) const
inline

◆ polyIndices() [1/2]

Buffer< Buffer< uint04 > > polyIndices ( PrimitiveProperty primitive_property) const

◆ polyIndices() [2/2]

Buffer< Buffer< uint04 > > polyIndices ( PrimitiveProperty primitive_property,
uint04 start,
uint04 size ) const

◆ polylines() [1/2]

template<uint01 t_dims, class t_type >
Buffer< Polyline< t_dims, t_type > > polylines ( PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const
inline

◆ polylines() [2/2]

template<uint01 t_dims, class t_type >
Buffer< Polyline< t_dims, t_type > > polylines ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
uint04 start,
uint04 size ) const
inline

◆ primitive() [1/3]

template<class t_type >
t_type primitive ( PrimitiveProperty property) const
inline

◆ primitive() [2/3]

template<class t_type >
t_type primitive ( PrimitiveProperty property,
typename std::enable_if< ObjectInfo< t_type >::Dimensions==2, uint04 >::type index ) const
inline

◆ primitive() [3/3]

template<class t_type >
t_type primitive ( PrimitiveProperty property,
typename std::enable_if< ObjectInfo< t_type >::Dimensions==3, uint04 >::type index ) const
inline

◆ primitiveColumn() [1/2]

TableColumn & primitiveColumn ( )

◆ primitiveColumn() [2/2]

const TableColumn & primitiveColumn ( ) const
inline

◆ primitiveCount()

uint04 primitiveCount ( PrimitiveProperty property) const
inline

◆ primitiveFanColumn() [1/2]

TableColumn & primitiveFanColumn ( )
inline

◆ primitiveFanColumn() [2/2]

const TableColumn & primitiveFanColumn ( ) const
inline

◆ primitiveFlagColumn() [1/2]

TableColumn & primitiveFlagColumn ( )
inline

◆ primitiveFlagColumn() [2/2]

const TableColumn & primitiveFlagColumn ( ) const
inline

◆ primitiveIndexCount() [1/2]

uint04 primitiveIndexCount ( ) const
inline

◆ primitiveIndexCount() [2/2]

uint04 primitiveIndexCount ( PrimitiveProperty property) const
inline

◆ primitiveIndexFlag()

bool primitiveIndexFlag ( PrimitiveProperty property,
uint04 primitive_index,
PrimitiveBitFlags flag ) const

◆ primitiveIndices()

Buffer< uint04 > primitiveIndices ( PrimitiveProperty primitive_property) const

◆ propertyColumn() [1/4]

TableColumn & propertyColumn ( const String & property)
inline

◆ propertyColumn() [2/4]

const TableColumn & propertyColumn ( const String & property) const
inline

◆ propertyColumn() [3/4]

TableColumn & propertyColumn ( uint04 property)
inline

◆ propertyColumn() [4/4]

const TableColumn & propertyColumn ( uint04 property) const
inline

◆ propertyVertices() [1/2]

template<class t_type >
Buffer< t_type > propertyVertices ( uint04 property) const
inline

◆ propertyVertices() [2/2]

template<class t_type >
Buffer< t_type > propertyVertices ( uint04 property,
uint04 start,
uint04 size ) const
inline

◆ provokingPrimitiveOffset()

uint01 provokingPrimitiveOffset ( ) const

◆ removeDuplicateVertices()

void removeDuplicateVertices ( fltp08 epsilon,
const void * lock,
ProgressInfo * log = nullptr )

◆ removeHoleFill()

void removeHoleFill ( const void * lock = nullptr,
ProgressInfo * log = nullptr )

◆ removeParent()

void removeParent ( const Model & parent)
protected

◆ removePrimitive() [1/4]

void removePrimitive ( PrimitiveProperty property,
Buffer< uint04 > vertices )

◆ removePrimitive() [2/4]

void removePrimitive ( PrimitiveProperty property,
const Buffer< bool > & selection_mask )

◆ removePrimitive() [3/4]

void removePrimitive ( PrimitiveProperty property,
uint04 location )

◆ removePrimitive() [4/4]

void removePrimitive ( PrimitiveProperty property,
uint04 location,
uint04 size )

◆ removeTree()

void removeTree ( PrimitiveProperty property,
VertexProperty vertex_property = VertexProperty::Position )

◆ removeTrees()

void removeTrees ( VertexProperty vertex_property = VertexProperty::Position)

◆ removeVertex()

void removeVertex ( uint04 location)

◆ removeVertices() [1/4]

void removeVertices ( Buffer< uint04 > vertices)

◆ removeVertices() [2/4]

void removeVertices ( const Buffer< bool > & selection_mask)

◆ removeVertices() [3/4]

void removeVertices ( uint04 location,
uint04 size )

◆ removeVertices() [4/4]

void removeVertices ( uint04 mask_offset,
const Buffer< bool > & selection_mask )

◆ reservePrimitiveIndexSpace()

void reservePrimitiveIndexSpace ( uint04 index_size)

◆ setCountValue()

void setCountValue ( PrimitiveProperty property,
uint04 count )
inlineprotected

◆ setGeometryProperty()

template<class t_type >
void setGeometryProperty ( GeometryProperty property,
const t_type & value )
inline

◆ setGeometryType()

void setGeometryType ( GeometryType geometry_type)

◆ setIndexCountValue()

void setIndexCountValue ( uint04 count)
inlineprotected

Index.

◆ setIndexFanCountValue()

void setIndexFanCountValue ( uint04 count)
inlineprotected

◆ setIndexFanOffsetValue()

void setIndexFanOffsetValue ( uint04 offset)
inlineprotected

◆ setIndexOffsetValue()

void setIndexOffsetValue ( uint04 offset)
inlineprotected

◆ setModeValue() [1/2]

void setModeValue ( PrimitiveProperty property,
PrimitiveMode mode )
inlineprotected

◆ setModeValue() [2/2]

void setModeValue ( VertexProperty property,
VertexMode vert_mode )
inlineprotected

◆ setNormalMode()

void setNormalMode ( NormalMode mode,
Angle< fltp08 > max_sep_angle,
const void * lock = nullptr,
ProgressInfo * log = nullptr )

◆ setOffsetValue()

void setOffsetValue ( PrimitiveProperty property,
uint04 offset )
inlineprotected

◆ setPrimitive() [1/4]

template<class t_type >
void setPrimitive ( PrimitiveProperty property,
uint04 index,
t_type index_value )
inline

◆ setPrimitive() [2/4]

template<class t_type >
void setPrimitive ( PrimitiveProperty property,
uint04 index,
Triangle< 1, t_type > index_value )
inline

◆ setPrimitive() [3/4]

template<class t_type >
void setPrimitive ( PrimitiveProperty property,
uint04 index,
Vector< 2, t_type > index_value )
inline

◆ setPrimitive() [4/4]

template<class t_type >
void setPrimitive ( PrimitiveProperty property,
uint04 index,
Vector< 3, t_type > index_value )
inline

◆ setPrimitiveIndexFlag()

void setPrimitiveIndexFlag ( PrimitiveProperty property,
uint04 primitive_index,
PrimitiveBitFlags flag,
bool value )

◆ setPrimitiveMode()

void setPrimitiveMode ( PrimitiveProperty property,
PrimitiveMode mode )

◆ setPrimitiveRange()

void setPrimitiveRange ( PrimitiveProperty mode,
uint04 start,
uint04 primitive_count )

◆ setPrimitiveVec()

template<class t_index_type , class t_vec_type >
void setPrimitiveVec ( PrimitiveProperty property,
uint04 index,
t_vec_type & index_value )
inlineprotected

◆ setRealThickness()

void setRealThickness ( fltp08 real_thickness,
const Matrix< fltp08 > & transform,
const void * lock,
ProgressInfo * log = nullptr )

◆ setSolidVertexCountValue()

void setSolidVertexCountValue ( uint04 count)
inline

◆ setSolidVertexOffsetValue()

void setSolidVertexOffsetValue ( uint04 count)
inline

◆ setSolidVertexReservedValue()

void setSolidVertexReservedValue ( uint04 count)
inline

◆ setThicknessMode()

void setThicknessMode ( ThicknessMode mode)

◆ setTransform()

void setTransform ( const Matrix< fltp08 > & transform)

◆ setTree()

void setTree ( DynamicPointer< RTree< 3, fltp04 > > tree,
PrimitiveProperty primitive_property,
VertexProperty vertex_property = VertexProperty::Position ) const

◆ SetTriangulationMethod()

static void SetTriangulationMethod ( std::function< void(Geometry &geo, const Matrix< fltp08 > &matrix, const void *lock, ProgressInfo *log)> function)
static

◆ setupIndexFanColumn()

void setupIndexFanColumn ( )

◆ setupVertexTable()

◆ setVertex() [1/2]

template<class t_type >
void setVertex ( VertexProperty property,
uint04 index,
const t_type & vector )
inline

◆ setVertex() [2/2]

template<class t_type >
void setVertex ( VertexProperty property,
uint04 index,
uint04 sub_index,
const t_type & vector )
inline

◆ setVertexCountValue()

void setVertexCountValue ( uint04 count)
inlineprotected

◆ setVertexFlag()

void setVertexFlag ( uint04 vertex,
VertexFlags flag,
bool value )

◆ setVertexMode()

void setVertexMode ( VertexProperty property,
VertexMode mode )

◆ setVertexOffsetValue()

void setVertexOffsetValue ( uint04 count)
inlineprotected

◆ setVertexProperties()

template<class t_type >
void setVertexProperties ( const String & property,
const Buffer< t_type > & vertices,
uint04 offset = 0 )
inline

◆ setVertexProperty() [1/4]

template<class t_type >
void setVertexProperty ( const String & property,
uint04 index,
const t_type & property_value )
inline

◆ setVertexProperty() [2/4]

template<class t_type >
void setVertexProperty ( const String & property,
uint04 index,
uint04 sub_index,
const t_type & vector )
inline

◆ setVertexProperty() [3/4]

template<class t_type >
void setVertexProperty ( uint04 property,
uint04 index,
const t_type & vector )
inline

◆ setVertexProperty() [4/4]

template<class t_type >
void setVertexProperty ( uint04 property,
uint04 index,
uint04 sub_index,
const t_type & vector )
inline

◆ setVertexReservedValue()

void setVertexReservedValue ( uint04 count)
inlineprotected

◆ setVertexSize()

void setVertexSize ( uint04 size)

◆ setVertices() [1/3]

template<class t_type , class t_matrix_type >
void setVertices ( VertexProperty property,
const Buffer< t_type > & vertices,
const Matrix< t_matrix_type > & matrix,
uint04 offset = 0 )
inline

◆ setVertices() [2/3]

template<class t_type >
void setVertices ( VertexProperty property,
const Buffer< t_type > & vertices,
uint04 offset = 0 )
inline

◆ setVertices() [3/3]

template<class t_type >
void setVertices ( VertexProperty property,
const t_type * vertices,
uint04 size,
uint04 offset = 0 )
inline

◆ setVerticesFlag() [1/2]

void setVerticesFlag ( const Buffer< bool > & selection_mask,
VertexFlags flag,
bool value )

◆ setVerticesFlag() [2/2]

void setVerticesFlag ( const Buffer< uint04 > & vertices,
VertexFlags flag,
bool value )

◆ setVerticesFlagAll() [1/2]

void setVerticesFlagAll ( uint01 on_flags,
uint01 off_flags )

◆ setVerticesFlagAll() [2/2]

void setVerticesFlagAll ( VertexFlags flag,
bool value )

◆ setVerticesFlags() [1/2]

void setVerticesFlags ( const Buffer< bool > & selection_mask,
BitFlag on_flags,
BitFlag off_flags )

◆ setVerticesFlags() [2/2]

void setVerticesFlags ( const Buffer< bool > & selection_mask,
BitFlag selected_on_flags,
BitFlag selected_off_flags,
BitFlag unselected_on_flags,
BitFlag unselected_off_flags,
uint04 bitmask_offset = 0 )

◆ setWindingMode()

void setWindingMode ( WindingMode mode,
const void * lock = nullptr )

◆ solidVertexCount()

uint04 solidVertexCount ( ) const
inline

◆ solidVertexOffset()

uint04 solidVertexOffset ( ) const
inline

◆ solidVertexReservedCount()

uint04 solidVertexReservedCount ( ) const
inline

◆ split()

void split ( Geometry & other_geo,
const Buffer< bool > & vertex_mask )

◆ splitDuplicateVertices()

void splitDuplicateVertices ( )

◆ surfaceNormal()

Ray< 3, fltp08 > surfaceNormal ( ) const

◆ thicknessMode()

ThicknessMode thicknessMode ( ) const

◆ tree()

DynamicPointer< RTree< 3, fltp04 > > tree ( PrimitiveProperty primitive_property,
VertexProperty vertex_property = VertexProperty::Position ) const

◆ triangle()

template<uint01 t_dims, class t_type >
Triangle< t_dims, t_type > triangle ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
uint04 tri_index ) const
inline

◆ triangles() [1/2]

template<uint01 t_dims, class t_type >
Buffer< Triangle< t_dims, t_type > > triangles ( PrimitiveProperty primitive_property,
VertexProperty vertex_property ) const
inline

◆ triangles() [2/2]

template<uint01 t_dims, class t_type >
Buffer< Triangle< t_dims, t_type > > triangles ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
uint04 start,
uint04 size ) const
inline

◆ triIndices() [1/2]

Buffer< Vector< 3, uint04 > > triIndices ( PrimitiveProperty primitive_property) const
inline

◆ triIndices() [2/2]

Buffer< Vector< 3, uint04 > > triIndices ( PrimitiveProperty primitive_property,
uint04 start,
uint04 size ) const

◆ updateGeometryProperty()

template<class t_type >
void updateGeometryProperty ( GeometryProperty property,
const t_type & type,
const void * lock_ptr = nullptr )
inline

◆ updateModifiedTime()

void updateModifiedTime ( Time time = Time::SystemTime())

◆ updatePrimitiveColumn()

void updatePrimitiveColumn ( PrimitiveProperty property,
bool remove_tree = true )

◆ updatePrimitiveColumns()

void updatePrimitiveColumns ( bool remove_tree = true)

◆ updateSolidVertexColumns()

void updateSolidVertexColumns ( bool invalidate_bounds = true,
bool erase_kd_tree = true )

◆ updateTransform()

void updateTransform ( const Matrix< fltp08 > & transform,
const void * lock_ptr = nullptr )

◆ updateVertexColumn() [1/4]

void updateVertexColumn ( const String & property)

◆ updateVertexColumn() [2/4]

void updateVertexColumn ( const String & property,
uint04 index,
uint04 size )

◆ updateVertexColumn() [3/4]

void updateVertexColumn ( VertexProperty property)

◆ updateVertexColumn() [4/4]

void updateVertexColumn ( VertexProperty property,
uint04 index,
uint04 size )

◆ updateVertexColumns() [1/2]

void updateVertexColumns ( bool invalidate_bounds = true,
bool erase_kd_tree = true )

◆ updateVertexColumns() [2/2]

void updateVertexColumns ( uint04 index,
uint04 size,
bool invalidate_bounds = true,
bool erase_kd_tree = true )

◆ validate()

bool validate ( ) const

◆ vertex()

template<class t_type >
t_type vertex ( VertexProperty property,
uint04 index ) const
inline

◆ vertexCount()

uint04 vertexCount ( ) const
inline

◆ vertexFlag()

bool vertexFlag ( uint04 vertex_index,
VertexFlags flag ) const

◆ vertexOffset()

uint04 vertexOffset ( ) const
inline

◆ vertexProperty() [1/4]

template<class t_type >
t_type vertexProperty ( const String & property,
uint04 vertex_index ) const
inline

◆ vertexProperty() [2/4]

template<class t_type >
t_type vertexProperty ( const String & property,
uint04 vertex_index,
uint04 sub_index ) const
inline

◆ vertexProperty() [3/4]

template<class t_type >
t_type vertexProperty ( uint04 property_index,
uint04 vertex_index ) const
inline

◆ vertexProperty() [4/4]

template<class t_type >
t_type vertexProperty ( uint04 property_index,
uint04 vertex_index,
uint04 sub_index ) const
inline

◆ vertexPropertyCount()

uint04 vertexPropertyCount ( ) const

◆ vertexPropertyIndex()

uint04 vertexPropertyIndex ( const String & property_name) const

◆ vertexPropertyName()

const String & vertexPropertyName ( uint04 property_index) const
inline

◆ vertexPropertyType()

TypeInfo vertexPropertyType ( uint04 property_index) const
inline

◆ vertexReservedCount()

uint04 vertexReservedCount ( ) const
inline

◆ vertexSelected()

bool vertexSelected ( uint04 vertex) const

◆ vertices() [1/4]

template<class t_type >
Buffer< t_type > vertices ( const String & property) const
inline

◆ vertices() [2/4]

template<class t_type >
Buffer< t_type > vertices ( const String & property,
uint04 start,
uint04 size ) const
inline

◆ vertices() [3/4]

template<class t_type >
Buffer< t_type > vertices ( VertexProperty property) const
inline

◆ vertices() [4/4]

template<class t_type >
Buffer< t_type > vertices ( VertexProperty property,
uint04 start,
uint04 size ) const
inline

Friends And Related Symbol Documentation

◆ Model

friend class Model
friend

Member Data Documentation

◆ s_geometry_triangulation

std::function<void(Geometry& geo, const Matrix<fltp08>& matrix, const void* lock, ProgressInfo* log)> s_geometry_triangulation
staticprotected

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