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...
|
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, fltp08 > | calculateAverageDirection (const Matrix< fltp08 > &mat) const |
|
Vector< 2, fltp08 > | calculateHVLength (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, fltp08 > | calculatePlaneAtVertex (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, fltp08 > | calculateVolumeAndSurfaceArea (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) |
|
TableColumn & | column (VertexProperty property) |
|
const TableColumn & | column (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 () |
|
TableColumn & | edgeToFaceColumn () |
|
const TableColumn & | edgeToFaceColumn () const |
|
Buffer< Geometry, uint04, ObjectAllocator< DESIGN_PRIM > > | explode () const |
|
Vertex< 3, fltp08 > | faceCenter (uint04 index) const |
|
Buffer< LineSegment< 3, fltp08 > > | faceEdges (uint04 index) const |
|
TableColumn & | faceToEdgeColumn () |
|
const TableColumn & | faceToEdgeColumn () 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, fltp08 > | getBounds () 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< uint04 > | getSelectedVertices () 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< uint04 > | indices (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 |
|
TableColumn & | primitiveColumn () |
|
const TableColumn & | primitiveColumn () const |
|
uint04 | primitiveCount (PrimitiveProperty property) const |
|
TableColumn & | primitiveFanColumn () |
|
const TableColumn & | primitiveFanColumn () const |
|
TableColumn & | primitiveFlagColumn () |
|
const TableColumn & | primitiveFlagColumn () const |
|
uint04 | primitiveIndexCount () const |
|
uint04 | primitiveIndexCount (PrimitiveProperty property) const |
|
bool | primitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag) const |
|
Buffer< uint04 > | primitiveIndices (PrimitiveProperty primitive_property) const |
|
TableColumn & | propertyColumn (const String &property) |
|
const TableColumn & | propertyColumn (const String &property) const |
|
TableColumn & | propertyColumn (uint04 property) |
|
const TableColumn & | propertyColumn (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, fltp08 > | surfaceNormal () 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 String & | vertexPropertyName (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 |
|
void | actionDeletedIndex (uint04 index, uint04 size) |
|
JSONNode | activeFilters () const |
|
void | addIndex (uint04 index, uint04 size) |
|
void | appendData (const String &data, bool compressed) |
|
DesignObjectBase & | base () 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< fltp08 > | getTransform () 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 JSONNode & | metaData () const |
|
const JSONNode & | metaData (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 |
|