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

#include <Geometry.h>

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

Classes

struct  OptimizedPrimitiveDef
 
struct  SmoothingParameters
 

Public Types

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
}
 
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  TreeMode { e_no_tree , e_r_tree , e_kd_tree , e_quad_tree }
 
enum  ThicknessMode {
  e_none , e_pixel , e_flat_single , e_flat_per_vertex ,
  e_circle , e_circle_per_vertex
}
 
- 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
}
 

Public Member Functions

 Geometry ()=default
 
 Geometry (DesignObjectBase *base)
 
 Geometry (uint04 index, DesignObjectBase *base)
 
 Geometry (const DesignObject &obj)
 
void setGeometryType (GeometryType geometry_type)
 
GeometryType getGeometryType () const
 
void clearVerticesAndPrimitives ()
 
template<class t_type >
void setGeometryProperty (GeometryProperty property, const t_type &value)
 
template<class t_type >
void updateGeometryProperty (GeometryProperty property, const t_type &type, const void *lock_ptr=nullptr)
 
template<class t_type >
t_type getGeometryProperty (GeometryProperty property) const
 
void split (Geometry &other_geo, const Buffer< bool > &vertex_mask)
 
void combine (const Geometry &geo, const Matrix< fltp08 > &conversion=Matrix< fltp08 >(1.0))
 
void combine (const Geometry &geo, const Matrix< fltp08 > &conversion, Buffer< bool > vertex_mask)
 
void copyFrom (const Geometry &geo, bool copy_tree=true)
 
void copyTraitsFrom (const Geometry &geo)
 
uint04 numberOfParents () const
 
Vertex< 3, fltp08faceCenter (uint04 index) const
 
Buffer< LineSegment< 3, fltp08 > > faceEdges (uint04 index) const
 
Buffer< Model, uint04, ObjectAllocator< DESIGN_PRIM > > getParents () const
 
Model getParent (uint04 index) const
 
void deleteGeometry ()
 
uint01 parity (const Matrix< fltp04 > &parent_matrix, PrimitiveMode mode) const
 
uint01 parity (const Matrix< fltp08 > &parent_matrix, PrimitiveMode mode) const
 
void fillHolesByNeighbor (PrimitiveProperty property, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void removeHoleFill (const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void setWindingMode (WindingMode mode, const void *lock=nullptr)
 
void optimizeVertexLocations ()
 
void centerAlign ()
 
void invalidateBounds ()
 
bool canBeClosedSolid (const void *lock=nullptr) const
 
bool hasParent (const Model &model) const
 
void calculateIndexNeighborList (PrimitiveProperty primitive_property)
 
Bounds< 3, fltp08getBounds () const
 
bool canExplode () const
 
Buffer< Geometry, uint04, ObjectAllocator< DESIGN_PRIM > > explode () const
 
void outline ()
 
void setNormalMode (NormalMode mode, Angle< fltp08 > max_sep_angle, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void calculateNormals (NormalMode mode, Angle< fltp08 > max_difference, const void *lock=nullptr, ProgressInfo *log=nullptr)
 
void setRealThickness (fltp08 real_thickness, const Matrix< fltp08 > &transform, const void *lock, ProgressInfo *log=nullptr)
 
void setThicknessMode (ThicknessMode mode)
 
ThicknessMode thicknessMode () const
 
void flipNormals ()
 
void removeDuplicateVertices (fltp08 epsilon, const void *lock, ProgressInfo *log=nullptr)
 
void splitDuplicateVertices ()
 
void convertPolarToCartesian (const String &roll_column, const String &pitch_column, const String &distance_column)
 
void laplacianSmoothing (const SmoothingParameters &properties)
 
void cotangentLaplacianSmoothing (const SmoothingParameters &properties)
 
void clearSmoothing (const SmoothingParameters &properties)
 
void calculateTangentSpace (bool calc_tan, bool calc_bitan)
 
bool validate () const
 
bool hasHoles (PrimitiveProperty property) const
 
void setVertexFlag (uint04 vertex, VertexFlags flag, bool value)
 
void setVerticesFlag (const Buffer< uint04 > &vertices, VertexFlags flag, bool value)
 
void setVerticesFlag (const Buffer< bool > &selection_mask, 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 setVerticesFlagAll (VertexFlags flag, bool value)
 
void setVerticesFlagAll (uint01 on_flags, uint01 off_flags)
 
void setPrimitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag, bool value)
 
bool primitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag) const
 
bool vertexFlag (uint04 vertex_index, VertexFlags flag) const
 
Buffer< uint04getSelectedVertices () const
 
bool vertexSelected (uint04 vertex) const
 
void setTransform (const Matrix< fltp08 > &transform)
 
void updateTransform (const Matrix< fltp08 > &transform, const void *lock_ptr=nullptr)
 
String getGeometryIcon () const
 
bool operator== (const Geometry &model) const
 
bool operator!= (const Geometry &model) const
 
Time getAscModifiedTime (bool include_self, bool include_layer=false) const
 
void normalExpansion (const Vector< 3, fltp04 > &expansion_vector)
 
TableColumnprimitiveColumn ()
 
const TableColumnprimitiveColumn () const
 
TableColumnprimitiveFanColumn ()
 
const TableColumnprimitiveFanColumn () const
 
TableColumnprimitiveFlagColumn ()
 
const TableColumnprimitiveFlagColumn () const
 
TableColumnfaceToEdgeColumn ()
 
const TableColumnfaceToEdgeColumn () const
 
TableColumnedgeToFaceColumn ()
 
const TableColumnedgeToFaceColumn () const
 
PrimitiveMode mode (PrimitiveProperty property) const
 
bool hasProperty (PrimitiveProperty property) const
 
bool hasIndexColumn () const
 
bool hasIndexFanColumn () const
 
void reservePrimitiveIndexSpace (uint04 index_size)
 
void setPrimitiveRange (PrimitiveProperty mode, uint04 start, uint04 primitive_count)
 
void setPrimitiveMode (PrimitiveProperty property, PrimitiveMode mode)
 
void updatePrimitiveColumn (PrimitiveProperty property, bool remove_tree=true)
 
void updatePrimitiveColumns (bool remove_tree=true)
 
void updateModifiedTime (Time time=Time::SystemTime())
 
Plane< 3, fltp08calculatePlaneAtVertex (uint04 vertex_index) const
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, t_type index_value)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Vector< 2, t_type > index_value)
 
OptimizedPrimitiveDef optimizedPrimitiveDef (PrimitiveProperty property)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Vector< 3, t_type > index_value)
 
template<class t_type >
void setPrimitive (PrimitiveProperty property, uint04 index, Triangle< 1, t_type > index_value)
 
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
 
Buffer< uint04primitiveIndices (PrimitiveProperty primitive_property) const
 
Buffer< uint04indices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const
 
Buffer< Vector< 2, uint04 > > lineIndices (PrimitiveProperty primitive_property) const
 
Buffer< Vector< 2, uint04 > > lineIndices (PrimitiveProperty primitive_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
 
uint04 indexOffset () const
 
uint04 indexOffset (PrimitiveProperty property) const
 
uint04 indexFanOffset () const
 
uint04 indexFanCount () const
 
template<class t_type >
uint04 addPrimitive (PrimitiveProperty index_property, const t_type &primitive)
 
uint04 addPrimitives (PrimitiveProperty index_property, uint04 insersion_size)
 
void closePolyline (PrimitiveProperty property)
 
void autoCalculateIndices (PrimitiveProperty property, const void *lock=nullptr, ProgressInfo *log=nullptr, const Matrix< fltp08 > &transform=Matrix< fltp08 >(1.0))
 
uint04 primitiveIndexCount () const
 
uint04 primitiveCount (PrimitiveProperty property) const
 
uint04 primitiveIndexCount (PrimitiveProperty property) const
 
uint04 addVertex ()
 
uint04 addVertices (uint04 size)
 
void addVertices (uint04 location, uint04 size)
 
void setVertexSize (uint04 size)
 
void removeVertex (uint04 location)
 
void removeVertices (uint04 location, uint04 size)
 
void removeVertices (Buffer< uint04 > vertices)
 
void removeVertices (const Buffer< bool > &selection_mask)
 
void removeVertices (uint04 mask_offset, const Buffer< bool > &selection_mask)
 
void removePrimitive (PrimitiveProperty property, uint04 location)
 
void removePrimitive (PrimitiveProperty property, uint04 location, uint04 size)
 
void removePrimitive (PrimitiveProperty property, Buffer< uint04 > vertices)
 
void removePrimitive (PrimitiveProperty property, const Buffer< bool > &selection_mask)
 
void createDrapedMaterialCoordinates (const Matrix< fltp08 > &mat=Matrix< fltp08 >())
 
uint04 vertexReservedCount () const
 
uint04 vertexOffset () const
 
uint04 vertexCount () const
 
uint04 solidVertexOffset () const
 
uint04 solidVertexReservedCount () const
 
uint04 solidVertexCount () const
 
const StringvertexPropertyName (uint04 property_index) const
 
uint04 vertexPropertyCount () const
 
uint04 vertexPropertyIndex (const String &property_name) const
 
bool hasVertexProperty (const String &property_name) const
 
bool hasVertexProperty (const VertexProperty &property) const
 
TypeInfo vertexPropertyType (uint04 property_index) const
 
template<class t_type >
uint04 createVertexProperty (const String &property_name)
 
uint04 createVertexProperty (const String &property_name, const TypeInfo &type)
 
template<class t_type >
t_type vertexProperty (uint04 property_index, uint04 vertex_index) const
 
template<class t_type >
t_type vertexProperty (const String &property, uint04 vertex_index) const
 
template<class t_type >
t_type vertexProperty (uint04 property_index, uint04 vertex_index, uint04 sub_index) const
 
template<class t_type >
t_type vertexProperty (const String &property, uint04 vertex_index, uint04 sub_index) const
 
template<class t_type >
void setVertexProperty (uint04 property, uint04 index, const t_type &vector)
 
template<class t_type >
void setVertexProperty (const String &property, uint04 index, const t_type &property_value)
 
template<class t_type >
void setVertexProperty (uint04 property, uint04 index, uint04 sub_index, const t_type &vector)
 
template<class t_type >
void setVertexProperty (const String &property, uint04 index, uint04 sub_index, const t_type &vector)
 
template<class t_type >
void setVertexProperties (const String &property, const Buffer< t_type > &vertices, uint04 offset=0)
 
TableColumnpropertyColumn (uint04 property)
 
const TableColumnpropertyColumn (uint04 property) const
 
bool hasProperty (VertexProperty property) const
 
VertexMode mode (VertexProperty property) const
 
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)
 
void updateVertexColumn (VertexProperty property)
 
void updateVertexColumn (VertexProperty property, uint04 index, uint04 size)
 
void updateVertexColumn (const String &property)
 
void updateVertexColumn (const String &property, uint04 index, uint04 size)
 
void updateVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true)
 
void updateSolidVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true)
 
void updateVertexColumns (uint04 index, uint04 size, bool invalidate_bounds=true, bool erase_kd_tree=true)
 
fltp08 calculateVolume (const Matrix< fltp08 > &parent_transform) const
 
fltp08 calculateSurfaceArea (const Matrix< fltp08 > &parent_transform) const
 
Vector< 2, fltp08calculateVolumeAndSurfaceArea (const Matrix< fltp08 > &transform, const void *lock) const
 
fltp08 calculateLength (const Matrix< fltp08 > &transform) const
 
Vector< 3, fltp08calculateAverageDirection (const Matrix< fltp08 > &mat) const
 
Vector< 2, fltp08calculateHVLength (const Matrix< fltp08 > &mat) const
 
bool hasTree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
DynamicPointer< RTree< 3, fltp04 > > tree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
void setTree (DynamicPointer< RTree< 3, fltp04 > > tree, PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const
 
void removeTrees (VertexProperty vertex_property=VertexProperty::Position)
 
void removeTree (PrimitiveProperty property, VertexProperty vertex_property=VertexProperty::Position)
 
const Buffer< uint04 > & getTreeIndices (PrimitiveProperty primitive_property) const
 
template<class t_type >
Buffer< t_type > getTreeSortedVertices (PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
void addToTree (uint04 start, uint04 size, PrimitiveProperty primitive_property, VertexProperty vertex_property) const
 
Ray< 3, fltp08surfaceNormal () const
 
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)
 
template<class t_type >
void setVertices (VertexProperty property, const Buffer< t_type > &vertices, uint04 offset=0)
 
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 t_type *vertices, uint04 size, uint04 offset=0)
 
template<class t_type >
t_type vertex (VertexProperty property, uint04 index) 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 >
Triangle< t_dims, t_type > triangle (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 tri_index) const
 
bool hasColumn (VertexProperty 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
 
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
 
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<uint01 t_dims, class t_type >
Buffer< LineSegment< t_dims, t_type > > lineSegments (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) 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< 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< 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
 
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
 
void setVertexMode (VertexProperty property, VertexMode mode)
 
TableColumncolumn (VertexProperty property)
 
const TableColumncolumn (VertexProperty property) const
 
TableColumnpropertyColumn (const String &property)
 
const TableColumnpropertyColumn (const String &property) const
 
void setSolidVertexCountValue (uint04 count)
 
void setSolidVertexReservedValue (uint04 count)
 
void setSolidVertexOffsetValue (uint04 count)
 
void setupIndexFanColumn ()
 
uint01 provokingPrimitiveOffset () const
 
- Public Member Functions inherited from DesignObject
 DesignObject ()=default
 
 DesignObject (DesignObjectBase *base)
 
 DesignObject (uint04 index, DesignObjectBase *base)
 
void setDesignType (DesignObjectType mode, bool is_type)
 
bool isDesignType (DesignObjectType mode) const
 
bool isDesignType (uint04 mode) const
 
bool validateDesignObject () const
 
JSONNode activeFilters () const
 
void setActiveFilters (const JSONNode &node)
 
template<class t_type >
void setProperty (DesignProperty property, const t_type &value)
 
template<>
void setProperty (DesignProperty property, const UUID &value)
 
template<>
void setProperty (DesignProperty property, const String &value)
 
File file () const
 
template<class t_type >
void updateProperty (DesignProperty property, const t_type &value, const void *lock=nullptr)
 
template<class t_type >
t_type getProperty (DesignProperty property) const
 
template<class t_type >
bool hasProperty (DesignProperty property) const
 
bool isProperty (DesignProperty property, const String &value) const
 
bool isProperty (DesignProperty property, const char *value) const
 
bool doesPropertyBeginWith (DesignProperty property, const String &value, bool ignore_case) const
 
bool doesPropertyBeginWith (DesignProperty property, const char *value, bool ignore_case) const
 
bool doesPropertyContain (DesignProperty property, const String &value, bool ignore_case) const
 
bool doesPropertyContain (DesignProperty property, const char *value, bool ignore_case) const
 
template<class t_type >
t_type getInheritedProperty (DesignProperty property) const
 
String getIcon () const
 
uint04 getDesignParentIndex () const
 
Time getModifiedTime () const
 
void updateDesignModifiedTime (Time time=Time::SystemTime())
 
void updateCreatedTime ()
 
void copyFrom (const DesignObject &object)
 
void actionDeletedIndex (uint04 index, uint04 size)
 
void addIndex (uint04 index, uint04 size)
 
void scale (Vector< 3, fltp08 > scale, Vertex< 3, fltp08 > center_of_scale=Constant< Vertex< 3, fltp08 > >::NaN)
 
void offset (const Vector< 3, fltp08 > &offset)
 
bool hasMetaData (const String &index) const
 
const JSONNodemetaData (const String &index) const
 
const JSONNodemetaData () const
 
void setMetaData (const JSONNode &node)
 
void setMetaData (const String &index, const JSONNode &node)
 
void setMetaData (const String &index, const String &data)
 
void setMetaData (const String &index, const bool &data)
 
void setMetaData (const String &index, const fltp08 &data)
 
void setMetaData (const String &index, const uint04 &data)
 
void clearMetaData (const String &index)
 
void updateMetaData (const String &index, const String &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 bool &data, const void *lock_ptr=nullptr)
 
void removeMetaData (const String &index, const void *lock_ptr=nullptr)
 
void appendData (const String &data, bool compressed)
 
uint04 index () const
 
uint04 designIndex () const
 
const DynamicPointer< Table > & propertyTable () const
 
DynamicPointer< Table > & propertyTable ()
 
bool operator== (const DesignObject &model) const
 
bool operator!= (const DesignObject &model) const
 
bool operator< (const DesignObject &model) const
 
bool operator> (const DesignObject &model) const
 
 operator bool () const
 
DesignObjectBasebase () const
 
UUID uuid () const
 
void updateDesignTransform (const Matrix< fltp08 > &transform, const void *lock=nullptr)
 
void setDesignVisible (bool is_visible)
 
void updateDesignVisible (bool is_visible, const void *lock=nullptr)
 
Matrix< fltp08getTransform () const
 
bool isValid () const
 
Scene getScene () const
 

Static Public Member Functions

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)
 
template<class t_vec_type >
static t_vec_type OptimizedGetPrimitiveVec (const OptimizedPrimitiveDef &ref, uint04 index)
 
static constexpr uint04 indicesPerPrimitive (PrimitiveMode property)
 
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

Bounds< 3, fltp08_calculateBounds () const
 
template<class t_index_type , class t_vec_type >
void setPrimitiveVec (PrimitiveProperty property, uint04 index, t_vec_type &index_value)
 
void setIndexCountValue (uint04 count)
 Index.
 
void setIndexFanCountValue (uint04 count)
 
void setCountValue (PrimitiveProperty property, uint04 count)
 
void setIndexFanOffsetValue (uint04 offset)
 
void setIndexOffsetValue (uint04 offset)
 
void setOffsetValue (PrimitiveProperty property, uint04 offset)
 
void setModeValue (PrimitiveProperty property, PrimitiveMode mode)
 
void setVertexCountValue (uint04 count)
 Vertex.
 
void setVertexReservedValue (uint04 count)
 
void setVertexOffsetValue (uint04 count)
 
void setModeValue (VertexProperty property, VertexMode vert_mode)
 
void addFromParent (Model &parent)
 
void removeParent (const Model &parent)
 
- 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
UUID m_uuid = Constant<UUID>::NaN
 
uint04 m_index = Constant<uint04>::NaN
 
uint04 m_design_index = Constant<uint04>::NaN
 
DesignObjectBasem_base = nullptr
 

Detailed Description


Class: Geometry

The equivelent of std::vector but with a bit more control. The basic array unit of the library.

t_type = what the buffer holds t_index_type = the index reference (default uint04 but can be made uint08 for large buffer support) t_memory_allocator = The object in charge of object allocation when creating space t_memory_manager = The thing that actually stores the memory Author: Tyler Parke

Date: 2021-04-08

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

◆ _calculateBounds()

Bounds< 3, fltp08 > _calculateBounds ( ) const
protected

◆ 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 = Matrix<fltp08>(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 = Matrix<fltp08>(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 = Matrix<fltp08>())

◆ 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 > 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 > 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()

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()

Geometry::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 files: