![]() |
NDEVR
API Documentation
|
A core class within the model hierarchy containing vertex-based data (Usually 3D data) within a set container. More...
Classes | |
| struct | OptimizedPrimitiveDef |
| Pre-computed offsets and references for fast primitive index access without repeated lookups. More... | |
| struct | SmoothingParameters |
| Parameters controlling mesh smoothing operations. More... | |
Public Types | |
| enum | ThicknessMode { e_none , e_pixel , e_flat_single , e_flat_per_vertex , e_circle , e_circle_per_vertex } |
| Describes how line/edge thickness is applied to geometry rendering. More... | |
| enum | TreeMode { e_no_tree , e_r_tree , e_kd_tree , e_quad_tree } |
| Describes the type of spatial index tree used for acceleration. More... | |
| 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 } |
| Describes the storage format and coordinate system of vertex data. More... | |
| Public Types inherited from DesignInfo | |
| enum | DesignObjectType : uint01 |
Public Member Functions | |
| Geometry (const DesignObject &obj) | |
| Constructs a Geometry from a generic DesignObject. | |
| Geometry (DesignObjectBase *base) | |
| Constructs a new Geometry and allocates it in the given design database. | |
| Geometry (uint04 index, DesignObjectBase *base) | |
| Constructs a Geometry referencing an existing entry in the design database. | |
| void | addFromParent (Model &parent) |
| Registers a parent Model for this geometry. | |
| template<class t_type> | |
| uint04 | addPrimitive (PrimitiveProperty index_property, const t_type &primitive) |
| Adds a single primitive and sets its index data. | |
| uint04 | addPrimitives (PrimitiveProperty index_property, uint04 insersion_size) |
| Adds multiple uninitialized primitives to the geometry. | |
| void | autoCalculateIndices (PrimitiveProperty property, const void *lock=nullptr, const Matrix< fltp08 > &transform=Matrix< fltp08 >(1.0), LogPtr log=LogPtr()) |
| Automatically calculates primitive indices (e.g. | |
| void | calculateIndexNeighborList (PrimitiveProperty primitive_property) |
| Builds a neighbor list for primitive indices to accelerate adjacency queries. | |
| void | calculateNormals (NormalMode mode, Angle< fltp08 > max_difference, const void *lock=nullptr, LogPtr log=LogPtr()) |
| Calculates vertex normals using the specified mode. | |
| void | calculateTangentSpace (bool calc_tan, bool calc_bitan) |
| Calculates tangent and/or bitangent vectors for texture mapping. | |
| bool | canBeClosedSolid (const void *lock=nullptr) const |
| Checks whether this geometry can form a closed solid (watertight mesh). | |
| bool | canExplode () const |
| Checks whether this geometry can be exploded into individual primitives. | |
| void | centerAlign () |
| Translates all vertices so that the geometry center aligns with the origin. | |
| void | clearSmoothing (const SmoothingParameters &properties) |
| Removes smoothing and restores original vertex positions. | |
| void | clearVerticesAndPrimitives () |
| Removes all vertex and primitive data from this geometry. | |
| void | closePolyline (PrimitiveProperty property) |
| Closes an open polyline by connecting the last vertex to the first. | |
| void | combine (Geometry &geo, const Matrix< fltp08 > &conversion=Matrix< fltp08 >(1.0)) |
| Combines another geometry into this one. | |
| void | convertPolarToCartesian (const StringView &roll_column, const StringView &pitch_column, const StringView &distance_column) |
| Converts polar coordinate vertex properties to Cartesian coordinates. | |
| void | copyFrom (const Geometry &geo, bool copy_tree=true, bool copy_vertices=true) |
| Copies all data from another geometry into this one. | |
| void | copyTraitsFrom (const Geometry &geo) |
| Copies traits (properties) from another geometry without copying vertices or primitives. | |
| void | cotangentLaplacianSmoothing (const SmoothingParameters &properties) |
| Applies cotangent-weighted Laplacian smoothing to the mesh. | |
| void | deleteGeometry () |
| Deletes this geometry and removes it from the design database. | |
| void | ensureFlagColumnExists () |
| Ensures a bitflag column exists in the vertex table, creating one if necessary. | |
| GeometryBuffer | explode () const |
| Explodes this geometry into individual primitive geometries. | |
| Vertex< 3, fltp08 > | faceCenter (uint04 index) const |
| Calculates the center point of a face at the given index. | |
| Buffer< LineSegment< 3, fltp08 > > | faceEdges (uint04 index) const |
| Retrieves all edges of a face at the given index. | |
| void | fillHolesByNeighbor (PrimitiveProperty property, const void *lock=nullptr, LogPtr log=LogPtr()) |
| Fills holes in the mesh by interpolating from neighboring primitives. | |
| void | flipNormals () |
| Reverses the direction of all vertex normals. | |
| Time | getAscModifiedTime (bool include_self, bool include_layer=false) const |
| Gets the most recent ascending modified time across hierarchy. | |
| Bounds< 3, fltp08 > | getBounds () const |
| Retrieves the 3D bounding box of this geometry. | |
| StringView | getGeometryIcon () const |
| Retrieves the icon identifier string for this geometry type. | |
| GeometryType | getGeometryType () const |
| Retrieves the geometry type identifier. | |
| Model | getParent (uint04 index) const |
| Retrieves a specific parent Model by index. | |
| ModelBuffer | getParents () const |
| Retrieves all parent Models of this geometry. | |
| Buffer< uint04 > | getSelectedVertices () const |
| Retrieves indices of all currently selected vertices. | |
| bool | hasHoles (PrimitiveProperty property) const |
| Checks whether the mesh has holes for the given primitive property. | |
| bool | hasParent (const Model &model) const |
| Checks whether a given Model is a parent of this geometry. | |
| uint04 | indexFanCount () const |
| Returns the number of fan indices for this geometry. | |
| uint04 | indexFanOffset () const |
| Returns the offset into the fan index column for this geometry. | |
| uint04 | indexOffset () const |
| Returns the base index offset for this geometry within the shared index column. | |
| uint04 | indexOffset (PrimitiveProperty property) const |
| Returns the index offset for a specific primitive property. | |
| Buffer< uint04 > | indices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const |
| Retrieves a range of raw primitive indices. | |
| void | invalidateBounds () |
| Invalidates cached bounding box, forcing recalculation on next access. | |
| void | laplacianSmoothing (const SmoothingParameters &properties) |
| Applies Laplacian smoothing to the mesh. | |
| Buffer< Vector< 2, uint04 > > | lineIndices (PrimitiveProperty primitive_property) const |
| Retrieves all line index pairs for a primitive property. | |
| Buffer< Vector< 2, uint04 > > | lineIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const |
| Retrieves a range of line index pairs. | |
| void | normalExpansion (const Vector< 3, fltp04 > &expansion_vector) |
| Expands vertex positions along their normals by a given vector. | |
| bool | operator!= (const Geometry &geo) const |
| Checks inequality with another Geometry. | |
| bool | operator== (const Geometry &geo) const |
| Checks equality with another Geometry by comparing base and index. | |
| OptimizedPrimitiveDef | optimizedPrimitiveDef (PrimitiveProperty property) |
| Creates a pre-computed primitive definition for fast repeated access. | |
| void | optimizeVertexLocations () |
| Reorders vertices to optimize spatial locality for rendering. | |
| void | outline () |
| Converts the geometry to its outline representation. | |
| uint04 | parentCount () const |
| Returns the number of parent Models referencing this geometry. | |
| uint01 | parity (const Matrix< fltp04 > &parent_matrix, PrimitiveMode mode) const |
| Calculates the parity (orientation) of the geometry relative to a transformation. | |
| uint01 | parity (const Matrix< fltp08 > &parent_matrix, PrimitiveMode mode) const |
| Calculates the parity (orientation) of the geometry relative to a transformation. | |
| template<class t_type> | |
| t_type | primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions<=1, uint04 >::type index) const |
| Retrieves a scalar (1D) primitive index value, adjusted for vertex offset. | |
| template<class t_type> | |
| t_type | primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions==2, uint04 >::type index) const |
| Retrieves a line (2D) primitive index pair, adjusted for vertex offset. | |
| template<class t_type> | |
| t_type | primitive (PrimitiveProperty property, typename std::enable_if< ObjectInfo< t_type >::Dimensions==3, uint04 >::type index) const |
| Retrieves a triangle (3D) primitive index triple, adjusted for vertex offset. | |
| uint04 | primitiveCount (PrimitiveProperty property) const |
| Returns the number of primitives for a specific property. | |
| uint04 | primitiveIndexCount () const |
| Returns the total number of primitive indices across all properties. | |
| uint04 | primitiveIndexCount (PrimitiveProperty property) const |
| Returns the total number of index entries for a specific property. | |
| bool | primitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag) const |
| Retrieves a flag value from a specific primitive index. | |
| Buffer< uint04 > | primitiveIndices (PrimitiveProperty primitive_property) const |
| Retrieves all raw primitive indices for a given property. | |
| uint01 | provokingPrimitiveOffset () const |
| Returns the provoking primitive offset for flat shading. | |
| void | removeDuplicateVertices (fltp08 epsilon, const void *lock, LogPtr log=LogPtr()) |
| Removes vertices that are within epsilon distance of each other. | |
| void | removeHoleFill (const void *lock=nullptr, LogPtr log=LogPtr()) |
| Removes any previously applied hole fill data. | |
| void | removeParent (Model &parent) |
| Removes a parent Model from this geometry. | |
| void | setBounds (const Bounds< 3, fltp08 > &bounds) |
| Manually sets the bounding box for this geometry. | |
| void | setGeometryTransform (const Matrix< fltp08 > &transform) |
| Applies a transformation matrix to all geometry vertices. | |
| void | setGeometryType (GeometryType geometry_type) |
| Sets the geometry type identifier. | |
| void | setNormalMode (NormalMode mode, Angle< fltp08 > max_sep_angle, const void *lock=nullptr, LogPtr log=LogPtr()) |
| Sets the normal calculation mode and recalculates normals. | |
| template<class t_type> | |
| void | setPrimitive (PrimitiveProperty property, uint04 index, t_type index_value) |
| Sets a single primitive index value. | |
| template<class t_type> | |
| void | setPrimitive (PrimitiveProperty property, uint04 index, Triangle< 1, t_type > index_value) |
| Sets a triangle primitive from a Triangle index type. | |
| template<class t_type> | |
| void | setPrimitive (PrimitiveProperty property, uint04 index, Vector< 2, t_type > index_value) |
| Sets a line primitive (2-vertex index pair). | |
| template<class t_type> | |
| void | setPrimitive (PrimitiveProperty property, uint04 index, Vector< 3, t_type > index_value) |
| Sets a triangle primitive (3-vertex index vector). | |
| void | setPrimitiveIndexFlag (PrimitiveProperty property, uint04 primitive_index, PrimitiveBitFlags flag, bool value) |
| Sets a flag on a specific primitive index. | |
| void | setRealThickness (fltp08 real_thickness, const Matrix< fltp08 > &transform, const void *lock, LogPtr log=LogPtr()) |
| Sets a real-world thickness value and generates thickness geometry. | |
| void | setSolidVertexCountValue (uint04 count) |
| Sets the solid vertex count value in the database. | |
| void | setSolidVertexOffsetValue (uint04 count) |
| Sets the solid vertex offset value in the database. | |
| void | setSolidVertexReservedValue (uint04 count) |
| Sets the solid vertex reserved count value in the database. | |
| void | setThicknessMode (ThicknessMode mode) |
| Sets how thickness is interpreted during rendering. | |
| void | setupIndexFanColumn () |
| Ensures the index fan column is initialized and allocated. | |
| void | setVertexFlag (uint04 vertex, VertexFlags flag, bool value) |
| Sets a flag on a single vertex. | |
| void | setVerticesFlag (const Buffer< bool > &selection_mask, VertexFlags flag, bool value) |
| Sets a flag on vertices indicated by a boolean mask. | |
| void | setVerticesFlag (const Buffer< uint04 > &vertices, VertexFlags flag, bool value) |
| Sets a flag on a list of vertices by index. | |
| void | setVerticesFlagAll (uint01 on_flags, uint01 off_flags) |
| Sets on/off flag masks for all vertices. | |
| void | setVerticesFlagAll (VertexFlags flag, bool value) |
| Sets a flag value for all vertices in this geometry. | |
| void | setVerticesFlags (const Buffer< bool > &selection_mask, BitFlag on_flags, BitFlag off_flags) |
| Sets multiple flags on vertices using a boolean mask with on/off flag pairs. | |
| 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) |
| Sets different flag combinations for selected and unselected vertices. | |
| void | setWindingMode (WindingMode mode) |
| Sets the winding mode for face orientation. | |
| uint04 | solidVertexCount () const |
| Returns the number of solid vertices. | |
| uint04 | solidVertexOffset () const |
| Returns the offset of solid (thickness-expanded) vertices in the vertex table. | |
| uint04 | solidVertexReservedCount () const |
| Returns the reserved capacity for solid vertices. | |
| void | sortVertices (Buffer< uint04 > new_order) |
| Reorders vertices according to the given index mapping. | |
| void | split (Geometry &other_geo, const Buffer< bool > &vertex_mask) |
| Splits this geometry into two based on a vertex mask. | |
| void | splitDuplicateVertices () |
| Splits shared vertices so each primitive has its own unique vertex data. | |
| ThicknessMode | thicknessMode () const |
| Retrieves the current thickness mode. | |
| Buffer< Vector< 3, uint04 > > | triIndices (PrimitiveProperty primitive_property) const |
| Retrieves all triangle index triples for a primitive property. | |
| Buffer< Vector< 3, uint04 > > | triIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const |
| Retrieves a range of triangle index triples. | |
| void | updateGeometryTransform (const Matrix< fltp08 > &transform, const void *lock_ptr=nullptr) |
| Updates geometry after a transform change, recalculating derived data. | |
| bool | validate () const |
| Validates the internal consistency of the geometry data. | |
| uint04 | vertexCount () const |
| Returns the number of vertices in this geometry. | |
| BitFlag | vertexFlag (uint04 vertex_index) const |
| Retrieves all flags for a vertex as a BitFlag. | |
| bool | vertexFlag (uint04 vertex_index, VertexFlags flag) const |
| Retrieves whether a specific flag is set on a vertex. | |
| uint04 | vertexOffset () const |
| Returns the offset of this geometry's vertices within the shared vertex table. | |
| uint04 | vertexReservedCount () const |
| Returns the total reserved (allocated) vertex capacity. | |
| bool | vertexSelected (uint04 vertex) const |
| Checks whether a vertex is selected. | |
Index / Primitive Access | |
| ColumnT< uint04 > & | primitiveColumn () |
| Returns a mutable reference to the primitive index column. | |
| const ColumnT< uint04 > & | primitiveColumn () const |
| Returns a const reference to the primitive index column. | |
| ColumnT< uint04 > & | primitiveFanColumn () |
| Returns a mutable reference to the primitive fan column. | |
| const ColumnT< uint04 > & | primitiveFanColumn () const |
| Returns a const reference to the primitive fan column. | |
| ColumnT< uint01 > & | primitiveFlagColumn () |
| Returns a mutable reference to the primitive flag column. | |
| const ColumnT< uint01 > & | primitiveFlagColumn () const |
| Returns a const reference to the primitive flag column. | |
| TableColumn & | faceToEdgeColumn () |
| Returns a mutable reference to the face-to-edge mapping column. | |
| const TableColumn & | faceToEdgeColumn () const |
| Returns a const reference to the face-to-edge mapping column. | |
| TableColumn & | edgeToFaceColumn () |
| Returns a mutable reference to the edge-to-face mapping column. | |
| const TableColumn & | edgeToFaceColumn () const |
| Returns a const reference to the edge-to-face mapping column. | |
| PrimitiveMode | mode (PrimitiveProperty property) const |
| Retrieves the primitive mode for a given primitive property. | |
| bool | hasProperty (PrimitiveProperty property) const |
| Checks whether a given primitive property has index data. | |
| bool | hasIndexColumn () const |
| Checks whether the primitive index column has any entries. | |
| bool | hasIndexFanColumn () const |
| Checks whether the primitive fan index column has any entries. | |
| void | reservePrimitiveIndexSpace (uint04 index_size) |
| Pre-allocates space in the primitive index column. | |
| void | setPrimitiveRange (PrimitiveProperty mode, uint04 start, uint04 primitive_count) |
| Sets the start offset and count for a primitive property range. | |
| void | setPrimitiveMode (PrimitiveProperty property, PrimitiveMode mode) |
| Sets the primitive mode for a given property. | |
| void | updatePrimitiveColumn (PrimitiveProperty property, bool remove_tree=true) |
| Notifies the system that a primitive column has been modified. | |
| void | updatePrimitiveColumns (bool remove_tree=true) |
| Notifies the system that all primitive columns have been modified. | |
| void | updateModifiedTime (Time time=Time::SystemTime()) |
| Updates the modified timestamp for this geometry. | |
| void | updateGeometryTime (Time time=Time::SystemTime()) |
| Updates the geometry-specific timestamp. | |
| Plane< 3, fltp08 > | calculatePlaneAtVertex (uint04 vertex_index) const |
| Calculates the best-fit plane at a given vertex position. | |
General Vertex Operations | |
| uint04 | addVertex () |
| Adds a single vertex to the geometry. | |
| uint04 | addVertexWithExtraReservedSpace () |
| Adds a single vertex with extra reserved space for future growth. | |
| uint04 | addVertices (uint04 size) |
| Adds multiple vertices to the geometry. | |
| void | addVertices (uint04 location, uint04 size) |
| Inserts vertices at a specific location. | |
| void | setVertexCount (uint04 size, bool deallocate_if_possible=true) |
| Sets the total vertex count, resizing vertex data columns. | |
| void | removeVertex (uint04 location) |
| Removes a single vertex at the given location. | |
| void | removeVertices (uint04 location, uint04 size) |
| Removes a contiguous range of vertices. | |
| void | removeVertices (Buffer< uint04 > vertices) |
| Removes vertices at the specified indices. | |
| void | removeVertices (const Buffer< bool > &selection_mask) |
| Removes vertices indicated by a boolean mask. | |
| void | removeVertices (uint04 mask_offset, const Buffer< bool > &selection_mask) |
| Removes vertices indicated by a boolean mask with an offset. | |
| void | removePrimitive (PrimitiveProperty property, uint04 location) |
| Removes a single primitive at the given location. | |
| void | removePrimitive (PrimitiveProperty property, uint04 location, uint04 size) |
| Removes a contiguous range of primitives. | |
| void | removePrimitive (PrimitiveProperty property, Buffer< uint04 > vertices) |
| Removes primitives at the specified indices. | |
| void | removePrimitive (PrimitiveProperty property, const Buffer< bool > &selection_mask) |
| Removes primitives indicated by a boolean mask. | |
| void | createDrapedMaterialCoordinates (const Matrix< fltp08 > &mat=Matrix< fltp08 >()) |
| Creates material (texture) coordinates by draping them onto the geometry surface. | |
| Matrix< fltp08 > | getCompleteTransform (const Model &parent) const |
| Computes the complete transformation matrix from geometry space to world space via a parent Model. | |
Custom Vertex Property Access | |
| const String & | vertexPropertyName (uint04 property_index) const |
| Returns the name of a vertex property by its column index. | |
| uint04 | vertexPropertyCount () const |
| Returns the number of vertex property columns. | |
| uint04 | vertexPropertyIndex (const StringView &property_name) const |
| Finds the column index of a named vertex property. | |
| bool | hasVertexProperty (const StringView &property_name) const |
| Checks whether a named vertex property exists. | |
| bool | hasVertexProperty (const VertexProperty &property) const |
| Checks whether a standard vertex property exists. | |
| TypeInfo | vertexPropertyType (uint04 property_index) const |
| Returns the type information for a vertex property column. | |
| template<class t_type> | |
| uint04 | createVertexProperty (const StringView &property_name) |
| Creates a new custom vertex property column with a compile-time type. | |
| uint04 | createVertexProperty (const StringView &property_name, const TypeInfo &type) |
| Creates a new custom vertex property column with a runtime type. | |
| template<class t_type> | |
| t_type | vertexProperty (uint04 property_index, uint04 vertex_index) const |
| Retrieves a custom vertex property value by column index. | |
| template<class t_type> | |
| t_type | vertexProperty (const StringView &property, uint04 vertex_index) const |
| Retrieves a custom vertex property value by name. | |
| template<class t_type> | |
| t_type | vertexProperty (uint04 property_index, uint04 vertex_index, uint04 sub_index) const |
| Retrieves a sub-component of a custom vertex property by column index. | |
| template<class t_type> | |
| t_type | vertexProperty (const StringView &property, uint04 vertex_index, uint04 sub_index) const |
| Retrieves a sub-component of a custom vertex property by name. | |
| template<class t_type> | |
| void | setVertexProperty (uint04 property, uint04 index, const t_type &vector) |
| Sets a custom vertex property value by column index. | |
| template<class t_type> | |
| void | setVertexProperty (const StringView &property, uint04 index, const t_type &property_value) |
| Sets a custom vertex property value by name. | |
| template<class t_type> | |
| void | setVertexProperty (uint04 property, uint04 index, uint04 sub_index, const t_type &vector) |
| Sets a sub-component of a custom vertex property by column index. | |
| template<class t_type> | |
| void | setVertexProperty (const StringView &property, uint04 index, uint04 sub_index, const t_type &vector) |
| Sets a sub-component of a custom vertex property by name. | |
| template<class t_type> | |
| void | setVertexProperties (const StringView &property, const Buffer< t_type > &vertices, uint04 offset=0) |
| Sets a named vertex property for multiple vertices from a buffer. | |
Column Access | |
| TableColumn & | propertyColumn (uint04 property) |
| Returns a mutable reference to a custom vertex property column by index. | |
| const TableColumn & | propertyColumn (uint04 property) const |
| Returns a const reference to a custom vertex property column by index. | |
| bool | hasProperty (VertexProperty property) const |
| Checks whether a standard vertex property has data. | |
| VertexMode | mode (VertexProperty property) const |
| Retrieves the vertex storage mode for a standard vertex property. | |
| 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) |
| Configures the vertex table with the specified modes for standard properties. | |
| void | updateVertexColumn (VertexProperty property) |
| Notifies the system that a standard vertex column has been modified. | |
| void | updateVertexColumn (VertexProperty property, uint04 index, uint04 size, bool invalidate_bounds=true, bool erase_kd_tree=true) |
| Notifies the system that a range within a standard vertex column was modified. | |
| void | updateVertexColumn (const StringView &property) |
| Notifies the system that a named custom vertex column was modified. | |
| void | updateVertexColumn (const uint04 &property) |
| Notifies the system that a custom vertex column was modified by index. | |
| void | updateVertexColumn (const StringView &property, uint04 index, uint04 size) |
| Notifies the system that a range within a named custom vertex column was modified. | |
| void | updateVertexColumn (const uint04 &property, uint04 index, uint04 size) |
| Notifies the system that a range within a custom vertex column was modified by index. | |
| void | updateVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true) |
| Notifies the system that all vertex columns have been modified. | |
| void | updateSolidVertexColumns (bool invalidate_bounds=true, bool erase_kd_tree=true) |
| Notifies the system that all solid vertex columns have been modified. | |
| void | updateVertexColumns (uint04 index, uint04 size, bool invalidate_bounds=true, bool erase_kd_tree=true) |
| Notifies the system that a range across all vertex columns was modified. | |
| fltp08 | calculateVolume (const Matrix< fltp08 > &parent_transform) const |
| Calculates the volume of the geometry in the given coordinate space. | |
| fltp08 | calculateSurfaceArea (const Matrix< fltp08 > &parent_transform) const |
| Calculates the surface area of the geometry in the given coordinate space. | |
| Vector< 2, fltp08 > | calculateVolumeAndSurfaceArea (const Matrix< fltp08 > &transform, const void *lock) const |
| Calculates both volume and surface area simultaneously. | |
| fltp08 | calculateLength (const Matrix< fltp08 > &transform) const |
| Calculates the total length of linework geometry. | |
| Vector< 3, fltp08 > | calculateAverageDirection (const Matrix< fltp08 > &mat) const |
| Calculates the average direction vector of linework geometry. | |
| Vector< 2, fltp08 > | calculateHVLength (const Matrix< fltp08 > &mat) const |
| Calculates the horizontal and vertical length components of linework. | |
| bool | hasTree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const |
| Checks whether a spatial tree exists for the given primitive and vertex property. | |
| DynamicPointer< RTree< 3, fltp04 > > | tree (PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const |
| Retrieves the spatial R-tree for the given properties. | |
| void | setTree (DynamicPointer< RTree< 3, fltp04 > > tree, PrimitiveProperty primitive_property, VertexProperty vertex_property=VertexProperty::Position) const |
| Sets (replaces) the spatial R-tree for the given properties. | |
| void | removeTrees (VertexProperty vertex_property=VertexProperty::Position) |
| Removes all spatial trees for the given vertex property. | |
| void | removeTree (PrimitiveProperty property, VertexProperty vertex_property=VertexProperty::Position) |
| Removes the spatial tree for a specific primitive property. | |
| const Buffer< uint04 > & | getTreeIndices (PrimitiveProperty primitive_property) const |
| Retrieves the index mapping used by the spatial tree. | |
| template<class t_type> | |
| Buffer< t_type > | getTreeSortedVertices (PrimitiveProperty primitive_property, VertexProperty vertex_property) const |
| Retrieves vertices sorted according to the spatial tree index order. | |
| Ray< 3, fltp08 > | surfaceNormal () const |
| Calculates and returns the surface normal ray for this geometry. | |
| template<class t_type> | |
| void | setVertex (VertexProperty property, uint04 index, const t_type &vector) |
| Sets a standard vertex property value at the given index. | |
| template<class t_type> | |
| void | setVertex (VertexProperty property, uint04 index, uint04 sub_index, const t_type &vector) |
| Sets a sub-component of a standard vertex property at the given index. | |
| template<class t_type> | |
| void | setVertices (VertexProperty property, const Buffer< t_type > &vertices, uint04 offset=0) |
| Sets a standard vertex property for multiple vertices from a buffer. | |
| 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) |
| Sets vertices with a transformation matrix applied to each value. | |
| template<class t_type> | |
| void | setVertices (VertexProperty property, const t_type *vertices, uint04 size, uint04 offset=0) |
| Sets vertices from a raw pointer array. | |
| template<class t_type> | |
| decltype(auto) | vertex (VertexProperty property, uint04 index) const |
| Retrieves a single vertex value for a standard property. | |
| template<uint01 t_dims, class t_type> | |
| LineSegment< t_dims, t_type > | lineSegment (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 line_index) const |
| Retrieves a line segment from the geometry using primitive and vertex properties. | |
| template<uint01 t_dims, class t_type> | |
| Triangle< t_dims, t_type > | triangle (PrimitiveProperty primitive_property, VertexProperty vertex_property, uint04 tri_index) const |
| Retrieves a triangle from the geometry using primitive and vertex properties. | |
| bool | hasColumn (VertexProperty property) const |
| Checks whether the underlying column exists for a standard vertex property. | |
| template<class t_type> | |
| Buffer< t_type > | propertyVertices (uint04 property) const |
| Retrieves all values of a custom vertex property as a buffer. | |
| template<class t_type> | |
| Buffer< t_type > | propertyVertices (uint04 property, uint04 start, uint04 size) const |
| Retrieves a range of custom vertex property values. | |
| template<class t_type> | |
| Buffer< t_type > | vertices (VertexProperty property) const |
| Retrieves all vertex values for a standard property. | |
| template<class t_type> | |
| Buffer< t_type > | vertices (VertexProperty property, uint04 start, uint04 size) const |
| Retrieves a range of vertex values for a standard property. | |
| template<class t_type> | |
| Buffer< t_type > | vertices (const StringView &property) const |
| Retrieves all vertex values for a named custom property. | |
| template<class t_type> | |
| Buffer< t_type > | vertices (const StringView &property, uint04 start, uint04 size) const |
| Retrieves a range of vertex values for a named custom property. | |
| template<uint01 t_dims, class t_type> | |
| Buffer< LineSegment< t_dims, t_type > > | lineSegments (PrimitiveProperty primitive_property, VertexProperty vertex_property) const |
| Retrieves all line segments from the geometry. | |
| template<uint01 t_dims, class t_type> | |
| Buffer< Triangle< t_dims, t_type > > | triangles (PrimitiveProperty primitive_property, VertexProperty vertex_property) const |
| Retrieves all triangles from the geometry. | |
| 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 |
| Retrieves a range of triangles from the geometry. | |
| Buffer< Buffer< uint04 > > | polyIndices (PrimitiveProperty primitive_property) const |
| Retrieves all polygon index buffers for a primitive property. | |
| Buffer< Buffer< uint04 > > | polyIndices (PrimitiveProperty primitive_property, uint04 start, uint04 size) const |
| Retrieves a range of polygon index buffers. | |
| template<uint01 t_dims, class t_type> | |
| Buffer< Polygon< t_type, Vertex< t_dims, t_type > > > | polygons (PrimitiveProperty primitive_property, VertexProperty vertex_property) const |
| Retrieves all polygons from the geometry. | |
| 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 |
| Retrieves a range of polygons from the geometry. | |
| template<uint01 t_dims, class t_type> | |
| Buffer< Polyline< t_dims, t_type > > | polylines (PrimitiveProperty primitive_property, VertexProperty vertex_property) const |
| Retrieves all polylines from the geometry. | |
| 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 |
| Retrieves a range of polylines from the geometry. | |
| void | setVertexMode (VertexProperty property, VertexMode mode) |
| Sets the vertex storage mode for a standard property. | |
| TableColumn & | column (VertexProperty property) |
| Returns a mutable reference to the column for a standard vertex property. | |
| const TableColumn & | column (VertexProperty property) const |
| Returns a const reference to the column for a standard vertex property. | |
| const TableVectorType< 1, uint01 > * | vertexFlagColumn () const |
| Returns a const pointer to the vertex flag column, or nullptr if none exists. | |
| TableVectorType< 1, uint01 > * | vertexFlagColumn () |
| Returns a mutable pointer to the vertex flag column, or nullptr if none exists. | |
| TableColumn & | propertyColumn (const StringView &property) |
| Returns a mutable reference to a named custom property column. | |
| const TableColumn & | propertyColumn (const StringView &property) const |
| Returns a const reference to a named custom property column. | |
| Public Member Functions inherited from DesignObject | |
| DesignObject ()=default | |
| Creates an "invalid" design object. | |
| DesignObject (const DesignInfo &info) | |
| Constructs a DesignObject from an existing DesignInfo, sharing the same base and indices. | |
| DesignObject (DesignObjectBase *base) | |
| Creates an new design object within the given DesignObjectBase. | |
| DesignObject (uint04 index, DesignObjectBase *base) | |
| Sets a DesignObject up to be a pointer to an existing object in the database. | |
| JSONNode | activeFilters () const |
| Retrieves the active filters applied to this design object as a JSON structure. | |
| void | appendData (const StringView &data, bool compressed) |
| Appends data to this design object's data storage. | |
| DesignObjectBase & | base () const |
| Returns a reference to the underlying DesignObjectBase database. | |
| void | clearAllMetaData () |
| Removes all metadata entries from this design object. | |
| void | clearMetaData (const StringView &index) |
| Removes a specific metadata entry by key. | |
| void | copyFrom (const DesignObject &object) |
| Copies all properties from the given design object into this one. | |
| uint04 | designIndex () const |
| Returns the design-specific index used to access type-specific properties (e.g., model, geometry, material properties). | |
| bool | doesPropertyBeginWith (NDPO property, const StringView &value, bool ignore_case) const |
| Checks whether a string property's value begins with the given substring. | |
| bool | doesPropertyContain (NDPO property, const StringView &value, bool ignore_case) const |
| Checks whether a string property's value contains the given substring. | |
| File | file () const |
| Returns the file path associated with this design object as a File object. | |
| template<auto t_property> | |
| constexpr decltype(auto) | get () const |
| Retrieves a property value using a compile-time property constant, with the type deduced from PropertySpec. | |
| template<auto t_property, class t_type> | |
| constexpr decltype(auto) | get () const |
| Retrieves a property value using a compile-time property constant, cast to the requested type. | |
| template<class t_type, class t_property_type> | |
| constexpr decltype(auto) | get (t_property_type property) const |
| Retrieves a property value from the database, cast to the requested type. | |
| DesignObject | getDesignParent () const |
| Retrieves the parent design object of this object in the model hierarchy. | |
| StringView | getIcon () const |
| Retrieves the icon identifier string associated with this design object. | |
| template<class t_type> | |
| decltype(auto) | getInheritedProperty (NDPO property) const |
| Retrieves a property value, walking up the parent hierarchy if the property is not set on this object. | |
| Scene | getScene () const |
| Retrieves the Scene that this design object belongs to. | |
| bool | hasMetaData (const StringView &index) const |
| Checks whether a metadata entry exists for the given key. | |
| template<class t_type, class t_design_type> | |
| bool | hasProperty (t_design_type property) const |
| Checks whether a property has a valid (non-default) value. | |
| uint04 | index () const |
| Returns the primary row index of this object within the DesignObjectBase property table. | |
| template<auto t_property> | |
| bool | is (const char *value) const |
| Checks whether a compile-time property matches the given C-string value. | |
| template<auto t_property> | |
| bool | is (const String &value) const |
| Checks whether a compile-time property matches the given String value. | |
| template<auto t_property> | |
| bool | is (const StringView &value) const |
| Checks whether a compile-time property matches the given StringView value. | |
| template<auto t_property, class t_type> | |
| std::enable_if<!ObjectInfo< t_type >::String, bool >::type | is (const t_type &value) const |
| Checks whether a compile-time property matches a non-string value using equality comparison. | |
| template<class t_property_type> | |
| bool | is (t_property_type property, const char *value) const |
| Checks whether a string property matches the given C-string value. | |
| template<class t_property_type> | |
| bool | is (t_property_type property, const String &value) const |
| Checks whether a string property matches the given String value. | |
| template<class t_property_type> | |
| bool | is (t_property_type property, const StringView &value) const |
| Checks whether a string property matches the given StringView value. | |
| template<class t_property_type, class t_type> | |
| std::enable_if<!ObjectInfo< t_type >::String, bool >::type | is (t_property_type property, const t_type &value) const |
| Checks whether a non-string property matches the given value using equality comparison. | |
| bool | isDesignType (DesignObjectType mode) const |
| Checks whether this object has the specified design type flag set. | |
| bool | isDesignType (uint04 mode) const |
| Checks whether this object has the specified design type flag set, using a raw integer value. | |
| bool | isValid () const |
| Checks whether this design object has a valid index into the database. | |
| const JSONNode & | metaData () const |
| Retrieves the entire metadata tree for this design object. | |
| const JSONNode & | metaData (const StringView &index) const |
| Retrieves a specific metadata entry by key. | |
| void | offsetDesign (const Vector< 3, fltp08 > &offset) |
| Translates this design object by the given offset vector. | |
| operator bool () const | |
| Bool conversion operator. | |
| bool | operator!= (const DesignObject &object) const |
| Checks inequality with another DesignObject. | |
| bool | operator< (const DesignObject &object) const |
| Less-than comparison for ordering DesignObjects (e.g., for sorted containers). | |
| bool | operator== (const DesignObject &object) const |
| Checks equality with another DesignObject by comparing base pointers and indices. | |
| bool | operator> (const DesignObject &object) const |
| Greater-than comparison for ordering DesignObjects (e.g., for sorted containers). | |
| Table & | propertyTable () |
| Returns a mutable reference to the property table that stores this object's properties. | |
| const Table & | propertyTable () const |
| Returns a const reference to the property table that stores this object's properties. | |
| void | removeMetaData (const StringView &index, const void *lock_ptr=nullptr) |
| Removes a metadata entry by key, with optional write lock support. | |
| void | scale (Vector< 3, fltp08 > scale, Vertex< 3, fltp08 > center_of_scale, const Matrix< fltp08 > &transform) |
| Scales this design object's geometry by the given scale factors around a center point, applying an additional transform. | |
| void | scale (Vector< 3, fltp08 > scale, Vertex< 3, fltp08 > center_of_scale=Constant< Vertex< 3, fltp08 > >::Invalid) |
| Scales this design object's geometry and transform by the given scale factors around a center point. | |
| template<auto t_property, class t_type> | |
| void | set (const t_type &value) |
| Sets a property value in the database using a compile-time property constant. | |
| template<class t_type, class t_property_type> | |
| void | set (t_property_type property, const t_type &value) |
| Sets a property value in the database. | |
| void | setActiveFilters (const JSONNode &node) |
| Sets the active filters on this design object from a JSON structure. | |
| void | setDesignType (DesignObjectType mode, bool is_type) |
| Sets or clears a design type flag on this object. | |
| void | setMetaData (const JSONNode &node) |
| Replaces the entire metadata tree with the given JSON node. | |
| void | setMetaData (const StringView &index, const bool &data) |
| Sets a metadata entry at the given key to a boolean value. | |
| void | setMetaData (const StringView &index, const fltp08 &data) |
| Sets a metadata entry at the given key to a 64-bit floating point value. | |
| void | setMetaData (const StringView &index, const JSONNode &node) |
| Sets a metadata entry at the given key to the specified JSON node value. | |
| void | setMetaData (const StringView &index, const String &data) |
| Sets a metadata entry at the given key to a String value. | |
| void | setMetaData (const StringView &index, const StringView &data) |
| Sets a metadata entry at the given key to a StringView value. | |
| void | setMetaData (const StringView &index, const uint01 &data) |
| Sets a metadata entry at the given key to a uint01 value. | |
| void | setMetaData (const StringView &index, const uint04 &data) |
| Sets a metadata entry at the given key to a uint04 value. | |
| template<auto t_property, class t_type> | |
| bool | update (const t_type &value, const void *lock=nullptr) |
| Updates a property using a compile-time property constant, only if the new value differs. | |
| template<class t_type, class t_property_type> | |
| bool | update (t_property_type property, const t_type &value, const void *lock=nullptr) |
| Updates a property only if the new value differs from the current value. | |
| void | updateCreatedTime () |
| Sets the creation time stamp for this design object to the current system time. | |
| void | updateDesignModifiedTime (Time time=Time::SystemTime()) |
| Updates the modified time stamp for this design object. | |
| void | updateDesignTransform (const Matrix< fltp08 > &transform, const void *lock=nullptr) |
| Updates the transform of this design object if it differs from the current value. | |
| bool | updateDesignVisible (bool is_visible, const void *lock=nullptr) |
| Updates the spatial visibility of this design object if it differs from the current value. | |
| void | updateMetaData (const StringView &index, const bool &data, const void *lock_ptr=nullptr) |
| Updates a metadata entry only if the new value differs from the current value. | |
| void | updateMetaData (const StringView &index, const fltp08 &data, const void *lock_ptr=nullptr) |
| Updates a metadata entry only if the new value differs from the current value. | |
| void | updateMetaData (const StringView &index, const String &data, const void *lock_ptr=nullptr) |
| Updates a metadata entry only if the new value differs from the current value. | |
| void | updateMetaData (const StringView &index, const StringView &data, const void *lock_ptr=nullptr) |
| Updates a metadata entry only if the new value differs from the current value. | |
| bool | validateDesignObject () const |
| Validates the internal state of this design object, ensuring indices and base pointer are consistent. | |
Static Public Member Functions | |
| static constexpr uint04 | indicesPerPrimitive (PrimitiveMode property) |
| Returns the number of vertex indices per primitive for a given mode. | |
| template<class t_vec_type> | |
| static t_vec_type | OptimizedGetPrimitiveVec (const OptimizedPrimitiveDef &ref, uint04 index) |
| Retrieves a vector primitive using pre-computed offsets for maximum performance. | |
| template<class t_vec_type> | |
| static void | OptimizedSetPrimitive (const OptimizedPrimitiveDef &ref, uint04 index, t_vec_type index_value) |
| Sets a single primitive index using pre-computed offsets for maximum performance. | |
| template<class t_vec_type> | |
| static void | OptimizedSetPrimitiveVec (const OptimizedPrimitiveDef &ref, uint04 index, t_vec_type index_value) |
| Sets a vector primitive (triangle/line) using pre-computed offsets for maximum performance. | |
| static void | SetTriangulationMethod (std::function< void(Geometry &geo, const Matrix< fltp08 > &matrix, const void *lock, LogPtr log)> function) |
| Sets the global triangulation method used by autoCalculateIndices. | |
| Static Public Member Functions inherited from DesignObject | |
| static constexpr StringView | FilePathDesignNameVariable () |
| Returns the placeholder variable string used in file paths to represent the design name. | |
Protected Member Functions | |
| void | setModeValue (VertexProperty property, VertexMode vert_mode) |
| Sets the vertex mode for a standard property in the database. | |
| template<class t_index_type, class t_vec_type> | |
| void | setPrimitiveVec (PrimitiveProperty property, uint04 index, t_vec_type &index_value) |
| Internal method to set a vector primitive with offset adjustment and fan handling. | |
Protected Index Setters | |
| void | setIndexCountValue (uint04 count) |
| Sets the total index count in the database. | |
| void | setIndexFanCountValue (uint04 count) |
| Sets the fan index count in the database. | |
| void | setCountValue (PrimitiveProperty property, uint04 count) |
| Sets the primitive count for a specific property in the database. | |
| void | setIndexFanOffsetValue (uint04 offset) |
| Sets the fan index offset in the database. | |
| void | setIndexOffsetValue (uint04 offset) |
| Sets the base index offset in the database. | |
| void | setOffsetValue (PrimitiveProperty property, uint04 offset) |
| Sets the primitive property offset in the database. | |
| void | setModeValue (PrimitiveProperty property, PrimitiveMode mode) |
| Sets the primitive mode for a property in the database. | |
Protected Vertex Setters | |
| void | setVertexCountValue (uint04 count) |
| Sets the vertex count in the database. | |
| void | setVertexReservedValue (uint04 count) |
| Sets the vertex reserved count in the database. | |
| void | setVertexOffsetValue (uint04 count) |
| Sets the vertex offset in the database. | |
| Protected Member Functions inherited from DesignObject | |
| template<class t_type> | |
| void | _setProperty (NDPO property, const t_type &value) |
| Low-level property setter that directly writes to the design properties table without triggering side effects such as transform or visibility updates. | |
| void | initDesignObject () |
| Initializes default property values for this design object after construction. | |
| Protected Member Functions inherited from DesignInfo | |
| DesignInfo (DesignObjectBase *base) | |
| Creates an new design object within the given DesignObjectBase. | |
| DesignInfo (uint04 index, DesignObjectBase *base) | |
| Sets a DesignObject up to be a pointer to an existing object in the database. | |
| void | _setDesignVisible (bool is_visible) |
| Sets the spatial visibility of this design object and propagates the change through the design hierarchy. | |
| void | _setTransform (const Matrix< fltp08 > &transform) |
| Sets the 4x4 transform matrix for this design object and propagates the change through the design hierarchy. | |
Static Protected Attributes | |
| static std::function< void(Geometry &geo, const Matrix< fltp08 > &matrix, const void *lock, LogPtr log)> | s_geometry_triangulation |
| The global triangulation callback. | |
Additional Inherited Members | |
| Protected Attributes inherited from DesignInfo | |
| DesignObjectBase * | m_base = nullptr |
| Pointer to the owning DesignObjectBase property database. | |
| uint04 | m_design_index = Constant<uint04>::Invalid |
| Index of the parent design that owns this object. | |
| uint04 | m_index = Constant<uint04>::Invalid |
| Row index of this object within the property database. | |
A core class within the model hierarchy 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 get(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.
Definition at line 142 of file Geometry.h.
Describes how line/edge thickness is applied to geometry rendering.
Definition at line 194 of file Geometry.h.
| enum Geometry::TreeMode |
Describes the type of spatial index tree used for acceleration.
| Enumerator | |
|---|---|
| e_no_tree | No spatial tree. |
| e_r_tree | R-tree spatial index. |
| e_kd_tree | KD-tree spatial index. |
| e_quad_tree | Quad-tree spatial index. |
Definition at line 183 of file Geometry.h.
| enum Geometry::VertexMode : uint01 |
Describes the storage format and coordinate system of vertex data.
| Enumerator | |
|---|---|
| e_no_vertex | No vertex data present. |
| e_index | Vertices stored as indices into another buffer. |
| e_cartesian_1F | 1D Cartesian coordinates, single-precision float. |
| e_cartesian_1D | 1D Cartesian coordinates, double-precision float. |
| e_cartesian_2F | 2D Cartesian coordinates, single-precision float. |
| e_cartesian_3F | 3D Cartesian coordinates, single-precision float. |
| e_cartesian_2D | 2D Cartesian coordinates, double-precision float. |
| e_cartesian_3D | 3D Cartesian coordinates, double-precision float. |
| e_normal_ray_3F | 3D normal ray, single-precision float. |
| e_normal_ray_3D | 3D normal ray, double-precision float. |
| e_cartesian_grid_1F | 1D Cartesian grid, single-precision float. |
| e_cartesian_grid_3F | 3D Cartesian grid, single-precision float. |
| e_cartesian_grid_1D | 1D Cartesian grid, double-precision float. |
| e_cartesian_grid_3D | 3D Cartesian grid, double-precision float. |
| e_cartesian_grid_image | Cartesian grid for image data. |
| e_polar_grid_1F | 1D polar grid, single-precision float. |
| e_color_aci | AutoCAD Color Index color data. |
| e_color_hsb | HSB color data. |
| e_color_hsl | HSL color data. |
| e_color_lab | CIELAB color data. |
| e_color_rgb | RGB color data. |
| e_color_xyz | CIE XYZ color data. |
| e_bitflag | Bitflag vertex data. |
| e_cartesian_2I | 2D Cartesian coordinates, integer. |
| e_cartesian_3I | 3D Cartesian coordinates, integer. |
| e_cartesian_2S | 2D Cartesian coordinates, short integer. |
| e_cartesian_3S | 3D Cartesian coordinates, short integer. |
Definition at line 149 of file Geometry.h.
| Geometry::Geometry | ( | DesignObjectBase * | base | ) |
Constructs a new Geometry and allocates it in the given design database.
| [in] | base | The design object base database to create the geometry in. |
References DesignObject::base().
| Geometry::Geometry | ( | uint04 | index, |
| DesignObjectBase * | base ) |
Constructs a Geometry referencing an existing entry in the design database.
| [in] | index | The design index of the existing geometry. |
| [in] | base | The design object base database. |
References DesignObject::base(), and DesignObject::index().
|
explicit |
Constructs a Geometry from a generic DesignObject.
| [in] | obj | The design object to interpret as a Geometry. |
References DesignObject::DesignObject().
| void Geometry::addFromParent | ( | Model & | parent | ) |
|
inline |
Adds a single primitive and sets its index data.
| [in] | index_property | The primitive property to add to. |
| [in] | primitive | The vertex index data for the primitive. |
Definition at line 1119 of file Geometry.h.
References indexOffset(), primitive(), primitiveCount(), setPrimitive(), and setPrimitiveRange().
|
inline |
Adds multiple uninitialized primitives to the geometry.
| [in] | index_property | The primitive property to add to. |
| [in] | insersion_size | The number of primitives to add. |
Definition at line 1131 of file Geometry.h.
References indexOffset(), primitiveCount(), and setPrimitiveRange().
|
inline |
Adds a single vertex to the geometry.
Definition at line 1181 of file Geometry.h.
References setVertexCount(), and vertexCount().
| uint04 Geometry::addVertexWithExtraReservedSpace | ( | ) |
Adds a single vertex with extra reserved space for future growth.
Inserts vertices at a specific location.
| [in] | location | The insertion point index. |
| [in] | size | The number of vertices to insert. |
Adds multiple vertices to the geometry.
| [in] | size | The number of vertices to add. |
Definition at line 1195 of file Geometry.h.
References setVertexCount(), and vertexCount().
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::autoCalculateIndices | ( | PrimitiveProperty | property, |
| const void * | lock = nullptr, | ||
| const Matrix< fltp08 > & | transform = Matrix< fltp08 >(1.0), | ||
| LogPtr | log = LogPtr() ) |
Automatically calculates primitive indices (e.g.
triangulation) for the geometry.
| [in] | property | The primitive property to calculate indices for. |
| [in] | lock | Optional thread lock pointer. |
| [in] | transform | The transformation matrix for coordinate conversion. |
| [in] | log | Optional log for progress reporting. |
Calculates the average direction vector of linework geometry.
| [in] | mat | The transformation matrix to apply. |
Calculates the horizontal and vertical length components of linework.
| [in] | mat | The transformation matrix to apply. |
| void Geometry::calculateIndexNeighborList | ( | PrimitiveProperty | primitive_property | ) |
Builds a neighbor list for primitive indices to accelerate adjacency queries.
| [in] | primitive_property | The primitive property to build neighbors for. |
Calculates the total length of linework geometry.
| [in] | transform | The transformation matrix to apply. |
| void Geometry::calculateNormals | ( | NormalMode | mode, |
| Angle< fltp08 > | max_difference, | ||
| const void * | lock = nullptr, | ||
| LogPtr | log = LogPtr() ) |
Calculates the best-fit plane at a given vertex position.
| [in] | vertex_index | The vertex index. |
Calculates the surface area of the geometry in the given coordinate space.
| [in] | parent_transform | The transformation matrix to apply. |
| void Geometry::calculateTangentSpace | ( | bool | calc_tan, |
| bool | calc_bitan ) |
Calculates tangent and/or bitangent vectors for texture mapping.
| [in] | calc_tan | Whether to calculate tangent vectors. |
| [in] | calc_bitan | Whether to calculate bitangent vectors. |
Calculates the volume of the geometry in the given coordinate space.
| [in] | parent_transform | The transformation matrix to apply. |
| Vector< 2, fltp08 > Geometry::calculateVolumeAndSurfaceArea | ( | const Matrix< fltp08 > & | transform, |
| const void * | lock ) const |
Calculates both volume and surface area simultaneously.
| [in] | transform | The transformation matrix to apply. |
| [in] | lock | Thread lock pointer. |
| bool Geometry::canBeClosedSolid | ( | const void * | lock = nullptr | ) | const |
Checks whether this geometry can form a closed solid (watertight mesh).
| [in] | lock | Optional thread lock pointer. |
| bool Geometry::canExplode | ( | ) | const |
Checks whether this geometry can be exploded into individual primitives.
| void Geometry::clearSmoothing | ( | const SmoothingParameters & | properties | ) |
Removes smoothing and restores original vertex positions.
| [in] | properties | The smoothing parameters describing what to clear. |
| void Geometry::closePolyline | ( | PrimitiveProperty | property | ) |
Closes an open polyline by connecting the last vertex to the first.
| [in] | property | The primitive property of the polyline. |
|
inline |
Returns a mutable reference to the column for a standard vertex property.
| [in] | property | The vertex property. |
Definition at line 2205 of file Geometry.h.
References cast(), and DesignInfo::m_base.
Referenced by polygons(), polylines(), primitive(), primitive(), setPrimitive(), setVertex(), setVertex(), setVertices(), setVertices(), setVertices(), triangles(), vertex(), vertexFlagColumn(), vertexFlagColumn(), and vertices().
|
inline |
Returns a const reference to the column for a standard vertex property.
| [in] | property | The vertex property. |
Definition at line 2213 of file Geometry.h.
References cast(), and DesignInfo::m_base.
| void Geometry::combine | ( | Geometry & | geo, |
| const Matrix< fltp08 > & | conversion = Matrix< fltp08 >(1.0) ) |
Combines another geometry into this one.
| [in] | geo | The geometry to merge in. |
| [in] | conversion | Optional transformation matrix to apply during combination. |
| void Geometry::convertPolarToCartesian | ( | const StringView & | roll_column, |
| const StringView & | pitch_column, | ||
| const StringView & | distance_column ) |
Converts polar coordinate vertex properties to Cartesian coordinates.
| [in] | roll_column | The name of the roll angle property column. |
| [in] | pitch_column | The name of the pitch angle property column. |
| [in] | distance_column | The name of the distance property column. |
| void Geometry::copyFrom | ( | const Geometry & | geo, |
| bool | copy_tree = true, | ||
| bool | copy_vertices = true ) |
Copies all data from another geometry into this one.
| [in] | geo | The source geometry. |
| [in] | copy_tree | Whether to copy spatial trees. |
| [in] | copy_vertices | Whether to copy vertex data. |
| void Geometry::copyTraitsFrom | ( | const Geometry & | geo | ) |
Copies traits (properties) from another geometry without copying vertices or primitives.
| [in] | geo | The source geometry. |
References parentCount().
| void Geometry::cotangentLaplacianSmoothing | ( | const SmoothingParameters & | properties | ) |
Applies cotangent-weighted Laplacian smoothing to the mesh.
| [in] | properties | The smoothing parameters. |
Creates material (texture) coordinates by draping them onto the geometry surface.
| [in] | mat | Optional transformation matrix for the draping projection. |
|
inline |
Creates a new custom vertex property column with a compile-time type.
| [in] | property_name | The name of the property to create. |
Definition at line 1348 of file Geometry.h.
References createVertexProperty(), and GetTypeInfo().
Referenced by createVertexProperty().
| uint04 Geometry::createVertexProperty | ( | const StringView & | property_name, |
| const TypeInfo & | type ) |
Creates a new custom vertex property column with a runtime type.
| [in] | property_name | The name of the property to create. |
| [in] | type | The type information for the property. |
|
inline |
Returns a mutable reference to the edge-to-face mapping column.
Definition at line 628 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a const reference to the edge-to-face mapping column.
Definition at line 635 of file Geometry.h.
References DesignInfo::m_base.
| GeometryBuffer Geometry::explode | ( | ) | const |
Explodes this geometry into individual primitive geometries.
Calculates the center point of a face at the given index.
| [in] | index | The face index. |
References DesignObject::index().
| Buffer< LineSegment< 3, fltp08 > > Geometry::faceEdges | ( | uint04 | index | ) | const |
Retrieves all edges of a face at the given index.
| [in] | index | The face index. |
References DesignObject::index().
|
inline |
Returns a mutable reference to the face-to-edge mapping column.
Definition at line 614 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a const reference to the face-to-edge mapping column.
Definition at line 621 of file Geometry.h.
References DesignInfo::m_base.
| void Geometry::fillHolesByNeighbor | ( | PrimitiveProperty | property, |
| const void * | lock = nullptr, | ||
| LogPtr | log = LogPtr() ) |
Fills holes in the mesh by interpolating from neighboring primitives.
| [in] | property | The primitive property to use for hole detection. |
| [in] | lock | Optional thread lock pointer. |
| [in] | log | Optional log for progress reporting. |
| Time Geometry::getAscModifiedTime | ( | bool | include_self, |
| bool | include_layer = false ) const |
Gets the most recent ascending modified time across hierarchy.
| [in] | include_self | Whether to include this geometry's own modified time. |
| [in] | include_layer | Whether to include layer modified time. |
Retrieves the 3D bounding box of this geometry.
Computes the complete transformation matrix from geometry space to world space via a parent Model.
| [in] | parent | The parent model providing the model-to-world transform. |
| StringView Geometry::getGeometryIcon | ( | ) | const |
Retrieves the icon identifier string for this geometry type.
| GeometryType Geometry::getGeometryType | ( | ) | const |
Retrieves the geometry type identifier.
Referenced by Extruder::ExtrudePolylineAlongGeo(), Extruder::ExtrudeRealThickness(), FactoryModelFilters::FilterGeometryModels(), and FactoryModelFilters::FilterGeometryModels().
|
inline |
Retrieves a specific parent Model by index.
Inline implementation of getParent. Defined after Model.h inclusion.
| [in] | index | The parent index. |
Definition at line 2943 of file Geometry.h.
References DesignObject::index(), DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by getParents().
| ModelBuffer Geometry::getParents | ( | ) | const |
Retrieves all parent Models of this geometry.
References getParent(), and DesignObject::index().
Retrieves indices of all currently selected vertices.
| const Buffer< uint04 > & Geometry::getTreeIndices | ( | PrimitiveProperty | primitive_property | ) | const |
Retrieves the index mapping used by the spatial tree.
| [in] | primitive_property | The primitive property. |
Referenced by getTreeSortedVertices().
|
inline |
Retrieves vertices sorted according to the spatial tree index order.
| [in] | primitive_property | The primitive property whose tree to use. |
| [in] | vertex_property | The vertex property to read from. |
Definition at line 1632 of file Geometry.h.
References getTreeIndices(), indices(), and vertices().
|
inline |
Checks whether the underlying column exists for a standard vertex property.
| [in] | property | The vertex property. |
Definition at line 1764 of file Geometry.h.
References cast(), and DesignInfo::m_base.
| bool Geometry::hasHoles | ( | PrimitiveProperty | property | ) | const |
Checks whether the mesh has holes for the given primitive property.
| [in] | property | The primitive property to check. |
|
inline |
Checks whether the primitive index column has any entries.
Definition at line 658 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Checks whether the primitive fan index column has any entries.
Definition at line 665 of file Geometry.h.
References DesignInfo::m_base.
| bool Geometry::hasParent | ( | const Model & | model | ) | const |
Checks whether a given Model is a parent of this geometry.
| [in] | model | The model to check. |
|
inline |
Checks whether a given primitive property has index data.
| [in] | property | The primitive property to check. |
Definition at line 651 of file Geometry.h.
References e_no_index, and mode().
|
inline |
Checks whether a standard vertex property has data.
| [in] | property | The vertex property to check. |
Definition at line 1485 of file Geometry.h.
References e_no_vertex, and mode().
| bool Geometry::hasTree | ( | PrimitiveProperty | primitive_property, |
| VertexProperty | vertex_property = VertexProperty::Position ) const |
Checks whether a spatial tree exists for the given primitive and vertex property.
| [in] | primitive_property | The primitive property. |
| [in] | vertex_property | The vertex property. Defaults to Position. |
References Position.
| bool Geometry::hasVertexProperty | ( | const StringView & | property_name | ) | const |
Checks whether a named vertex property exists.
| [in] | property_name | The property name. |
| bool Geometry::hasVertexProperty | ( | const VertexProperty & | property | ) | const |
Checks whether a standard vertex property exists.
| [in] | property | The vertex property enum. |
|
inline |
Returns the number of fan indices for this geometry.
Definition at line 1109 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inline |
Returns the offset into the fan index column for this geometry.
Definition at line 1102 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by optimizedPrimitiveDef(), polygons(), polylines(), primitive(), setPrimitiveVec(), and triangles().
|
inline |
Returns the base index offset for this geometry within the shared index column.
Definition at line 1087 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by addPrimitive(), addPrimitives(), Extruder::ExtrudePolylineAlongGeo(), Extruder::ExtrudeRealThickness(), optimizedPrimitiveDef(), polygons(), polylines(), primitive(), primitive(), primitive(), setPrimitive(), setPrimitive(), and triangles().
|
inline |
Returns the index offset for a specific primitive property.
| [in] | property | The primitive property. |
Definition at line 1095 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
| Buffer< uint04 > Geometry::indices | ( | PrimitiveProperty | primitive_property, |
| uint04 | start, | ||
| uint04 | size ) const |
Retrieves a range of raw primitive indices.
| [in] | primitive_property | The primitive property. |
| [in] | start | The starting index. |
| [in] | size | The number of indices to retrieve. |
Referenced by getTreeSortedVertices().
|
inlinestaticconstexpr |
Returns the number of vertex indices per primitive for a given mode.
| [in] | property | The primitive mode. |
Definition at line 930 of file Geometry.h.
References e_lines, e_no_index, and e_triangle.
Referenced by primitive(), primitiveIndexCount(), and setPrimitive().
| void Geometry::laplacianSmoothing | ( | const SmoothingParameters & | properties | ) |
Applies Laplacian smoothing to the mesh.
| [in] | properties | The smoothing parameters. |
|
inline |
Retrieves all line index pairs for a primitive property.
| [in] | primitive_property | The primitive property. |
Definition at line 1057 of file Geometry.h.
References lineIndices(), and primitiveCount().
Referenced by lineIndices().
| Buffer< Vector< 2, uint04 > > Geometry::lineIndices | ( | PrimitiveProperty | primitive_property, |
| uint04 | start, | ||
| uint04 | size ) const |
Retrieves a range of line index pairs.
| [in] | primitive_property | The primitive property. |
| [in] | start | The starting primitive index. |
| [in] | size | The number of lines to retrieve. |
|
inline |
Retrieves a line segment from the geometry using primitive and vertex properties.
| [in] | primitive_property | The primitive property containing line indices. |
| [in] | vertex_property | The vertex property containing position data. |
| [in] | line_index | The line primitive index. |
Definition at line 1736 of file Geometry.h.
References IsInvalid(), primitive(), and vertex().
Referenced by lineSegments().
|
inline |
Retrieves all line segments from the geometry.
| [in] | primitive_property | The primitive property containing line indices. |
| [in] | vertex_property | The vertex property containing position data. |
Definition at line 1836 of file Geometry.h.
References Buffer< t_type, t_memory_manager >::add(), e_lines, e_polyline, lineSegment(), mode(), and primitiveCount().
|
inline |
Retrieves the primitive mode for a given primitive property.
| [in] | property | The primitive property to query. |
Definition at line 643 of file Geometry.h.
References cast(), DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by LineIterator< t_dims, t_type >::LineIterator(), calculateNormals(), Extruder::ExtrudeRealThickness(), hasProperty(), hasProperty(), lineSegments(), optimizedPrimitiveDef(), parity(), parity(), polygons(), polylines(), primitive(), primitive(), primitive(), primitiveIndexCount(), setModeValue(), setNormalMode(), setPrimitive(), setPrimitive(), setPrimitiveMode(), setPrimitiveRange(), setThicknessMode(), setVertexMode(), setWindingMode(), and triangles().
|
inline |
Retrieves the vertex storage mode for a standard vertex property.
| [in] | property | The vertex property to query. |
Definition at line 1493 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Expands vertex positions along their normals by a given vector.
| [in] | expansion_vector | The 3D expansion vector to apply. |
|
inline |
Checks inequality with another Geometry.
| [in] | geo | The geometry to compare against. |
Definition at line 541 of file Geometry.h.
References DesignObject::isValid(), DesignInfo::m_base, and DesignInfo::m_index.
|
inline |
Checks equality with another Geometry by comparing base and index.
| [in] | geo | The geometry to compare against. |
Definition at line 531 of file Geometry.h.
References DesignObject::isValid(), DesignInfo::m_base, and DesignInfo::m_index.
|
inlinestatic |
Retrieves a vector primitive using pre-computed offsets for maximum performance.
| [in] | ref | The optimized primitive definition. |
| [in] | index | The primitive index. |
Definition at line 862 of file Geometry.h.
References Geometry::OptimizedPrimitiveDef::column, e_lines, e_polyline, e_triangle, e_triangle_fan, e_triangle_strip, Geometry::OptimizedPrimitiveDef::fan_column, Geometry::OptimizedPrimitiveDef::fan_offset, DesignObject::index(), Geometry::OptimizedPrimitiveDef::index_offset, IsInvalid(), and Geometry::OptimizedPrimitiveDef::mode.
Referenced by LineIterator< t_dims, t_type >::rawIndex(), and TriangleIterator< t_dims, t_type >::rawIndex().
|
inline |
Creates a pre-computed primitive definition for fast repeated access.
| [in] | property | The primitive property to optimize access for. |
Definition at line 786 of file Geometry.h.
References Geometry::OptimizedPrimitiveDef::fan_offset, Geometry::OptimizedPrimitiveDef::index_offset, indexFanOffset(), indexOffset(), mode(), Geometry::OptimizedPrimitiveDef::mode, primitiveColumn(), primitiveCount(), primitiveFanColumn(), vertexCount(), and vertexOffset().
Referenced by LineIterator< t_dims, t_type >::LineIterator(), and setPrimitiveVec().
|
inlinestatic |
Sets a single primitive index using pre-computed offsets for maximum performance.
| [in] | ref | The optimized primitive definition. |
| [in] | index | The primitive index. |
| [in] | index_value | The vertex index to set. |
Definition at line 804 of file Geometry.h.
References Geometry::OptimizedPrimitiveDef::column, DesignObject::index(), Geometry::OptimizedPrimitiveDef::index_offset, and IsInvalid().
|
inlinestatic |
Sets a vector primitive (triangle/line) using pre-computed offsets for maximum performance.
| [in] | ref | The optimized primitive definition. |
| [in] | index | The primitive index. |
| [in] | index_value | The vertex index vector (2 or 3 component) to set. |
Definition at line 821 of file Geometry.h.
References Geometry::OptimizedPrimitiveDef::column, e_triangle, e_triangle_fan, e_triangle_strip, Geometry::OptimizedPrimitiveDef::fan_column, Geometry::OptimizedPrimitiveDef::fan_offset, DesignObject::index(), Geometry::OptimizedPrimitiveDef::index_offset, IsInvalid(), IsValid(), and Geometry::OptimizedPrimitiveDef::mode.
Referenced by setPrimitiveVec().
|
inline |
Returns the number of parent Models referencing this geometry.
Inline implementation of parentCount. Defined after Model.h inclusion.
Definition at line 2948 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by copyTraitsFrom().
| uint01 Geometry::parity | ( | const Matrix< fltp04 > & | parent_matrix, |
| PrimitiveMode | mode ) const |
| uint01 Geometry::parity | ( | const Matrix< fltp08 > & | parent_matrix, |
| PrimitiveMode | mode ) const |
|
inline |
Retrieves all polygons from the geometry.
| [in] | primitive_property | The primitive property containing polygon indices. |
| [in] | vertex_property | The vertex property containing position data. |
Definition at line 1948 of file Geometry.h.
References polygons(), and primitiveCount().
Referenced by polygons(), and polygons().
|
inline |
Retrieves a range of polygons from the geometry.
| [in] | primitive_property | The primitive property containing polygon indices. |
| [in] | vertex_property | The vertex property containing position data. |
| [in] | start | The starting polygon index. |
| [in] | size | The number of polygons to retrieve. |
Definition at line 1960 of file Geometry.h.
References Polygon< t_type, t_vertex >::add(), column(), e_polyline, e_triangle, e_triangle_fan, e_triangle_strip, TableColumn::get(), DesignObject::index(), indexFanOffset(), indexOffset(), IsInvalid(), IsValid(), mode(), polygons(), primitiveColumn(), primitiveCount(), primitiveFanColumn(), and Polygon< t_type, t_vertex >::vertexCount().
| Buffer< Buffer< uint04 > > Geometry::polyIndices | ( | PrimitiveProperty | primitive_property | ) | const |
Retrieves all polygon index buffers for a primitive property.
| [in] | primitive_property | The primitive property. |
| Buffer< Buffer< uint04 > > Geometry::polyIndices | ( | PrimitiveProperty | primitive_property, |
| uint04 | start, | ||
| uint04 | size ) const |
Retrieves a range of polygon index buffers.
| [in] | primitive_property | The primitive property. |
| [in] | start | The starting polygon index. |
| [in] | size | The number of polygons to retrieve. |
|
inline |
Retrieves all polylines from the geometry.
| [in] | primitive_property | The primitive property containing polyline indices. |
| [in] | vertex_property | The vertex property containing position data. |
Definition at line 2053 of file Geometry.h.
References polylines(), primitiveCount(), and vertexCount().
Referenced by Extruder::ExtrudePolylineAlongGeo(), polylines(), and polylines().
|
inline |
Retrieves a range of polylines from the geometry.
| [in] | primitive_property | The primitive property containing polyline indices. |
| [in] | vertex_property | The vertex property containing position data. |
| [in] | start | The starting index. |
| [in] | size | The number of entries to process. |
Definition at line 2068 of file Geometry.h.
References Polyline< t_dims, t_type, t_vertex >::add(), Polyline< t_dims, t_type, t_vertex >::clear(), column(), e_lines, e_polyline, e_triangle, e_triangle_fan, e_triangle_strip, TableColumn::get(), DesignObject::index(), indexFanOffset(), indexOffset(), IsInvalid(), IsValid(), mode(), polylines(), primitiveColumn(), primitiveCount(), primitiveFanColumn(), Polyline< t_dims, t_type, t_vertex >::vertexCount(), and vertexOffset().
|
inline |
Retrieves a scalar (1D) primitive index value, adjusted for vertex offset.
| [in] | property | The primitive property. |
| [in] | index | The raw index into the primitive. |
Definition at line 949 of file Geometry.h.
References DesignObject::index(), indexOffset(), indicesPerPrimitive(), IsInvalid(), mode(), primitiveColumn(), primitiveCount(), and vertexOffset().
Referenced by addPrimitive(), lineSegment(), and triangle().
|
inline |
Retrieves a line (2D) primitive index pair, adjusted for vertex offset.
| [in] | property | The primitive property. |
| [in] | index | The line primitive index. |
Definition at line 963 of file Geometry.h.
References column(), e_lines, e_polyline, DesignObject::index(), indexOffset(), IsInvalid(), mode(), primitiveColumn(), primitiveCount(), vertexCount(), and vertexOffset().
|
inline |
Retrieves a triangle (3D) primitive index triple, adjusted for vertex offset.
| [in] | property | The primitive property. |
| [in] | index | The triangle primitive index. |
Definition at line 1001 of file Geometry.h.
References column(), e_triangle, e_triangle_fan, e_triangle_strip, DesignObject::index(), indexFanOffset(), indexOffset(), IsInvalid(), mode(), primitiveColumn(), primitiveCount(), primitiveFanColumn(), and vertexOffset().
|
inline |
Returns a mutable reference to the primitive index column.
Definition at line 572 of file Geometry.h.
References DesignInfo::m_base.
Referenced by optimizedPrimitiveDef(), polygons(), polylines(), primitive(), primitive(), primitive(), setPrimitive(), setPrimitive(), and triangles().
|
inline |
Returns a const reference to the primitive index column.
Definition at line 579 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns the number of primitives for a specific property.
| [in] | property | The primitive property. |
Definition at line 1163 of file Geometry.h.
References cast(), DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by addPrimitive(), addPrimitives(), Extruder::ExtrudeRealThickness(), lineIndices(), lineSegments(), optimizedPrimitiveDef(), polygons(), polygons(), polylines(), polylines(), primitive(), primitive(), primitive(), primitiveIndexCount(), setPrimitive(), setPrimitive(), setPrimitiveVec(), triangles(), triangles(), and triIndices().
|
inline |
Returns a mutable reference to the primitive fan column.
Definition at line 586 of file Geometry.h.
References DesignInfo::m_base.
Referenced by optimizedPrimitiveDef(), polygons(), polylines(), primitive(), setPrimitiveVec(), and triangles().
|
inline |
Returns a const reference to the primitive fan column.
Definition at line 593 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a mutable reference to the primitive flag column.
Definition at line 600 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a const reference to the primitive flag column.
Definition at line 607 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns the total number of primitive indices across all properties.
Definition at line 1155 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo().
|
inline |
Returns the total number of index entries for a specific property.
| [in] | property | The primitive property. |
Definition at line 1171 of file Geometry.h.
References indicesPerPrimitive(), mode(), and primitiveCount().
| bool Geometry::primitiveIndexFlag | ( | PrimitiveProperty | property, |
| uint04 | primitive_index, | ||
| PrimitiveBitFlags | flag ) const |
Retrieves a flag value from a specific primitive index.
| [in] | property | The primitive property. |
| [in] | primitive_index | The primitive index. |
| [in] | flag | The flag to query. |
| Buffer< uint04 > Geometry::primitiveIndices | ( | PrimitiveProperty | primitive_property | ) | const |
Retrieves all raw primitive indices for a given property.
| [in] | primitive_property | The primitive property. |
|
inline |
Returns a mutable reference to a named custom property column.
| [in] | property | The property name. |
Definition at line 2241 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a const reference to a named custom property column.
| [in] | property | The property name. |
Definition at line 2249 of file Geometry.h.
References DesignInfo::m_base.
|
inline |
Returns a mutable reference to a custom vertex property column by index.
| [in] | property | The column index. |
Definition at line 1469 of file Geometry.h.
References DesignInfo::m_base.
Referenced by setVertexProperties(), setVertexProperty(), setVertexProperty(), setVertexProperty(), setVertexProperty(), vertexProperty(), vertexProperty(), vertexProperty(), vertexProperty(), vertexPropertyType(), and vertices().
|
inline |
Returns a const reference to a custom vertex property column by index.
| [in] | property | The column index. |
Definition at line 1477 of file Geometry.h.
References DesignInfo::m_base.
Retrieves all values of a custom vertex property as a buffer.
| [in] | property | The property column index. |
Definition at line 1772 of file Geometry.h.
References propertyVertices(), and vertexCount().
Referenced by propertyVertices().
|
inline |
Retrieves a range of custom vertex property values.
| [in] | property | The property column index. |
| [in] | start | The starting vertex index. |
| [in] | size | The number of vertices to retrieve. |
Definition at line 1782 of file Geometry.h.
References DesignInfo::m_base, vertexCount(), and vertexOffset().
| uint01 Geometry::provokingPrimitiveOffset | ( | ) | const |
Returns the provoking primitive offset for flat shading.
Removes vertices that are within epsilon distance of each other.
| [in] | epsilon | The distance threshold for duplicate detection. |
| [in] | lock | Thread lock pointer. |
| [in] | log | Optional log for progress reporting. |
Removes any previously applied hole fill data.
| [in] | lock | Optional thread lock pointer. |
| [in] | log | Optional log for progress reporting. |
| void Geometry::removeParent | ( | Model & | parent | ) |
| void Geometry::removePrimitive | ( | PrimitiveProperty | property, |
| Buffer< uint04 > | vertices ) |
Removes primitives at the specified indices.
| [in] | property | The primitive property. |
| [in] | vertices | The primitive indices to remove. |
References vertices().
| void Geometry::removePrimitive | ( | PrimitiveProperty | property, |
| const Buffer< bool > & | selection_mask ) |
Removes primitives indicated by a boolean mask.
| [in] | property | The primitive property. |
| [in] | selection_mask | Boolean mask where true marks primitives for removal. |
| void Geometry::removePrimitive | ( | PrimitiveProperty | property, |
| uint04 | location ) |
Removes a single primitive at the given location.
| [in] | property | The primitive property. |
| [in] | location | The primitive index to remove. |
| void Geometry::removePrimitive | ( | PrimitiveProperty | property, |
| uint04 | location, | ||
| uint04 | size ) |
Removes a contiguous range of primitives.
| [in] | property | The primitive property. |
| [in] | location | The starting primitive index. |
| [in] | size | The number of primitives to remove. |
| void Geometry::removeTree | ( | PrimitiveProperty | property, |
| VertexProperty | vertex_property = VertexProperty::Position ) |
Removes the spatial tree for a specific primitive property.
| [in] | property | The primitive property. |
| [in] | vertex_property | The vertex property. Defaults to Position. |
References Position.
| void Geometry::removeTrees | ( | VertexProperty | vertex_property = VertexProperty::Position | ) |
Removes all spatial trees for the given vertex property.
| [in] | vertex_property | The vertex property. Defaults to Position. |
References Position.
| void Geometry::removeVertex | ( | uint04 | location | ) |
Removes a single vertex at the given location.
| [in] | location | The vertex index to remove. |
Removes vertices at the specified indices.
| [in] | vertices | The vertex indices to remove. |
References vertices().
| void Geometry::removeVertices | ( | const Buffer< bool > & | selection_mask | ) |
Removes vertices indicated by a boolean mask.
| [in] | selection_mask | Boolean mask where true marks vertices for removal. |
Removes a contiguous range of vertices.
| [in] | location | The starting vertex index. |
| [in] | size | The number of vertices to remove. |
Removes vertices indicated by a boolean mask with an offset.
| [in] | mask_offset | The offset into the vertex array for the mask. |
| [in] | selection_mask | Boolean mask where true marks vertices for removal. |
| void Geometry::reservePrimitiveIndexSpace | ( | uint04 | index_size | ) |
Pre-allocates space in the primitive index column.
| [in] | index_size | The number of index entries to reserve. |
Manually sets the bounding box for this geometry.
| [in] | bounds | The 3D bounds to set. |
|
inlineprotected |
Sets the primitive count for a specific property in the database.
| [in] | property | The primitive property. |
| [in] | count | The primitive count. |
Definition at line 2346 of file Geometry.h.
References cast(), DesignInfo::m_base, and DesignInfo::m_design_index.
Applies a transformation matrix to all geometry vertices.
| [in] | transform | The transformation matrix to apply. |
| void Geometry::setGeometryType | ( | GeometryType | geometry_type | ) |
Sets the geometry type identifier.
| [in] | geometry_type | The type to assign. |
|
inlineprotected |
Sets the total index count in the database.
| [in] | count | The index count. |
Definition at line 2331 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inlineprotected |
Sets the fan index count in the database.
| [in] | count | The fan index count. |
Definition at line 2338 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inlineprotected |
Sets the fan index offset in the database.
| [in] | offset | The fan offset. |
Definition at line 2353 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inlineprotected |
Sets the base index offset in the database.
| [in] | offset | The index offset. |
Definition at line 2360 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inlineprotected |
Sets the primitive mode for a property in the database.
| [in] | property | The primitive property. |
| [in] | mode | The mode to set. |
Definition at line 2376 of file Geometry.h.
References cast(), DesignInfo::m_base, DesignInfo::m_design_index, and mode().
|
inlineprotected |
Sets the vertex mode for a standard property in the database.
| [in] | property | The vertex property. |
| [in] | vert_mode | The vertex mode to set. Must not be e_index (not yet supported). |
Definition at line 2412 of file Geometry.h.
References cast(), e_index, DesignInfo::m_base, and DesignInfo::m_design_index.
| void Geometry::setNormalMode | ( | NormalMode | mode, |
| Angle< fltp08 > | max_sep_angle, | ||
| const void * | lock = nullptr, | ||
| LogPtr | log = LogPtr() ) |
|
inlineprotected |
Sets the primitive property offset in the database.
| [in] | property | The primitive property. |
| [in] | offset | The offset value. |
Definition at line 2368 of file Geometry.h.
References cast(), DesignInfo::m_base, and DesignInfo::m_design_index.
|
inline |
Sets a single primitive index value.
| [in] | property | The primitive property. |
| [in] | index | The index within the primitive. |
| [in] | index_value | The vertex index value to set. |
Definition at line 712 of file Geometry.h.
References cast(), DesignObject::index(), indexOffset(), indicesPerPrimitive(), IsValid(), mode(), primitiveColumn(), primitiveCount(), vertexCount(), and vertexOffset().
Referenced by addPrimitive(), and Extruder::ExtrudePolylineAlongGeo().
|
inline |
Sets a triangle primitive from a Triangle index type.
| [in] | property | The primitive property. |
| [in] | index | The primitive index. |
| [in] | index_value | The triangle indices. |
Definition at line 922 of file Geometry.h.
References DesignObject::index(), and setPrimitiveVec().
|
inline |
Sets a line primitive (2-vertex index pair).
| [in] | property | The primitive property. |
| [in] | index | The primitive index. |
| [in] | index_value | The two vertex indices forming the line. |
Definition at line 729 of file Geometry.h.
References cast(), column(), e_lines, e_polyline, DesignObject::index(), indexOffset(), IsValid(), mode(), primitiveColumn(), primitiveCount(), vertexCount(), and vertexOffset().
|
inline |
Sets a triangle primitive (3-vertex index vector).
| [in] | property | The primitive property. |
| [in] | index | The primitive index. |
| [in] | index_value | The three vertex indices forming the triangle. |
Definition at line 912 of file Geometry.h.
References DesignObject::index(), and setPrimitiveVec().
| void Geometry::setPrimitiveIndexFlag | ( | PrimitiveProperty | property, |
| uint04 | primitive_index, | ||
| PrimitiveBitFlags | flag, | ||
| bool | value ) |
Sets a flag on a specific primitive index.
| [in] | property | The primitive property. |
| [in] | primitive_index | The primitive index. |
| [in] | flag | The flag to set. |
| [in] | value | The flag value. |
| void Geometry::setPrimitiveMode | ( | PrimitiveProperty | property, |
| PrimitiveMode | mode ) |
Sets the primitive mode for a given property.
| [in] | property | The primitive property to configure. |
| [in] | mode | The primitive mode to set. |
References mode().
Referenced by Extruder::ExtrudePolylineAlongGeo(), and Extruder::ExtrudeRealThickness().
| void Geometry::setPrimitiveRange | ( | PrimitiveProperty | mode, |
| uint04 | start, | ||
| uint04 | primitive_count ) |
Sets the start offset and count for a primitive property range.
| [in] | mode | The primitive property. |
| [in] | start | The start index offset. |
| [in] | primitive_count | The number of primitives. |
References mode().
Referenced by addPrimitive(), addPrimitives(), Extruder::ExtrudePolylineAlongGeo(), and Extruder::ExtrudeRealThickness().
|
inlineprotected |
Internal method to set a vector primitive with offset adjustment and fan handling.
| [in] | property | The primitive property. |
| [in] | index | The primitive index. |
| [in] | index_value | The vertex index vector to set. |
Definition at line 2296 of file Geometry.h.
References Geometry::OptimizedPrimitiveDef::column, e_triangle_fan, DesignObject::index(), Geometry::OptimizedPrimitiveDef::index_offset, indexFanOffset(), IsValid(), Geometry::OptimizedPrimitiveDef::mode, optimizedPrimitiveDef(), OptimizedSetPrimitiveVec(), primitiveCount(), primitiveFanColumn(), vertexCount(), and vertexOffset().
Referenced by setPrimitive(), and setPrimitive().
| void Geometry::setRealThickness | ( | fltp08 | real_thickness, |
| const Matrix< fltp08 > & | transform, | ||
| const void * | lock, | ||
| LogPtr | log = LogPtr() ) |
Sets a real-world thickness value and generates thickness geometry.
| [in] | real_thickness | The thickness in real-world units. |
| [in] | transform | The transformation matrix for unit conversion. |
| [in] | lock | Thread lock pointer. |
| [in] | log | Optional log for progress reporting. |
|
inline |
Sets the solid vertex count value in the database.
| [in] | count | The solid vertex count. |
Definition at line 2257 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo(), and Extruder::ExtrudeRealThickness().
|
inline |
Sets the solid vertex offset value in the database.
| [in] | count | The offset value. |
Definition at line 2271 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo().
|
inline |
Sets the solid vertex reserved count value in the database.
| [in] | count | The reserved count. |
Definition at line 2264 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::setThicknessMode | ( | ThicknessMode | mode | ) |
| void Geometry::setTree | ( | DynamicPointer< RTree< 3, fltp04 > > | tree, |
| PrimitiveProperty | primitive_property, | ||
| VertexProperty | vertex_property = VertexProperty::Position ) const |
|
static |
Sets the global triangulation method used by autoCalculateIndices.
| [in] | function | The triangulation function to register. |
| void Geometry::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 ) |
Configures the vertex table with the specified modes for standard properties.
| [in] | vertex_size | The initial vertex count. |
| [in] | position | The vertex mode for position data. |
| [in] | normal | The vertex mode for normal data. |
| [in] | color | The vertex mode for color data. |
| [in] | texture | The vertex mode for texture coordinate data. |
| [in] | tangent | The vertex mode for tangent data. |
| [in] | bitangent | The vertex mode for bitangent data. |
| [in] | bones | The vertex mode for bone weight data. |
References e_no_vertex.
|
inline |
Sets a standard vertex property value at the given index.
| [in] | property | The vertex property (Position, Normal, etc.). |
| [in] | index | The vertex index. |
| [in] | vector | The value to set. |
Definition at line 1654 of file Geometry.h.
References column(), DesignObject::index(), vertexCount(), and vertexOffset().
Referenced by Extruder::ExtrudePolylineAlongGeo().
|
inline |
Sets a sub-component of a standard vertex property at the given index.
| [in] | property | The vertex property. |
| [in] | index | The vertex index. |
| [in] | sub_index | The sub-component index. |
| [in] | vector | The value to set. |
Definition at line 1666 of file Geometry.h.
References column(), DesignObject::index(), vertexCount(), and vertexOffset().
| void Geometry::setVertexCount | ( | uint04 | size, |
| bool | deallocate_if_possible = true ) |
Sets the total vertex count, resizing vertex data columns.
| [in] | size | The new vertex count. |
| [in] | deallocate_if_possible | Whether to free memory when shrinking. |
Referenced by addVertex(), and addVertices().
|
inlineprotected |
Sets the vertex count in the database.
| [in] | count | The vertex count. |
Definition at line 2387 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
| void Geometry::setVertexFlag | ( | uint04 | vertex, |
| VertexFlags | flag, | ||
| bool | value ) |
| void Geometry::setVertexMode | ( | VertexProperty | property, |
| VertexMode | mode ) |
|
inlineprotected |
Sets the vertex offset in the database.
| [in] | count | The offset value. |
Definition at line 2401 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inline |
Sets a named vertex property for multiple vertices from a buffer.
| [in] | property | The property name. |
| [in] | vertices | The buffer of values to set. |
| [in] | offset | The starting vertex index offset. |
Definition at line 1452 of file Geometry.h.
References propertyColumn(), vertexCount(), vertexOffset(), and vertices().
|
inline |
Sets a custom vertex property value by name.
| [in] | property | The property name. |
| [in] | index | The vertex index. |
| [in] | property_value | The value to set. |
Definition at line 1417 of file Geometry.h.
References DesignObject::index(), propertyColumn(), vertexCount(), and vertexOffset().
|
inline |
Sets a sub-component of a custom vertex property by name.
| [in] | property | The property name. |
| [in] | index | The vertex index. |
| [in] | sub_index | The sub-component index. |
| [in] | vector | The value to set. |
Definition at line 1441 of file Geometry.h.
References DesignObject::index(), propertyColumn(), vertexCount(), and vertexOffset().
|
inline |
Sets a custom vertex property value by column index.
| [in] | property | The property column index. |
| [in] | index | The vertex index. |
| [in] | vector | The value to set. |
Definition at line 1407 of file Geometry.h.
References DesignObject::index(), propertyColumn(), vertexCount(), and vertexOffset().
|
inline |
Sets a sub-component of a custom vertex property by column index.
| [in] | property | The property column index. |
| [in] | index | The vertex index. |
| [in] | sub_index | The sub-component index. |
| [in] | vector | The value to set. |
Definition at line 1429 of file Geometry.h.
References DesignObject::index(), propertyColumn(), vertexCount(), and vertexOffset().
|
inlineprotected |
Sets the vertex reserved count in the database.
| [in] | count | The reserved count. |
Definition at line 2394 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inline |
Sets vertices with a transformation matrix applied to each value.
| [in] | property | The vertex property. |
| [in] | vertices | The buffer of values. |
| [in] | matrix | The transformation matrix to apply. |
| [in] | offset | The starting vertex index offset. |
Definition at line 1694 of file Geometry.h.
References column(), vertexCount(), vertexOffset(), and vertices().
|
inline |
Sets a standard vertex property for multiple vertices from a buffer.
| [in] | property | The vertex property. |
| [in] | vertices | The buffer of values. |
| [in] | offset | The starting vertex index offset. |
Definition at line 1677 of file Geometry.h.
References column(), vertexCount(), vertexOffset(), and vertices().
|
inline |
Sets vertices from a raw pointer array.
| [in] | property | The vertex property. |
| [in] | vertices | Pointer to the vertex data array. |
| [in] | size | The number of vertices to set. |
| [in] | offset | The starting vertex index offset. |
Definition at line 1710 of file Geometry.h.
References column(), vertexCount(), vertexOffset(), and vertices().
| void Geometry::setVerticesFlag | ( | const Buffer< bool > & | selection_mask, |
| VertexFlags | flag, | ||
| bool | value ) |
Sets a flag on vertices indicated by a boolean mask.
| [in] | selection_mask | Boolean mask selecting which vertices to modify. |
| [in] | flag | The flag to set. |
| [in] | value | The flag value. |
| void Geometry::setVerticesFlag | ( | const Buffer< uint04 > & | vertices, |
| VertexFlags | flag, | ||
| bool | value ) |
Sets a flag on a list of vertices by index.
| [in] | vertices | The vertex indices to modify. |
| [in] | flag | The flag to set. |
| [in] | value | The flag value. |
References vertices().
Sets on/off flag masks for all vertices.
| [in] | on_flags | Flags to turn on. |
| [in] | off_flags | Flags to turn off. |
| void Geometry::setVerticesFlagAll | ( | VertexFlags | flag, |
| bool | value ) |
Sets a flag value for all vertices in this geometry.
| [in] | flag | The flag to set. |
| [in] | value | The flag value. |
| void Geometry::setVerticesFlags | ( | const Buffer< bool > & | selection_mask, |
| BitFlag | on_flags, | ||
| BitFlag | off_flags ) |
Sets multiple flags on vertices using a boolean mask with on/off flag pairs.
| [in] | selection_mask | Boolean mask selecting which vertices to modify. |
| [in] | on_flags | Flags to turn on for selected vertices. |
| [in] | off_flags | Flags to turn off for selected vertices. |
| void Geometry::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 ) |
Sets different flag combinations for selected and unselected vertices.
| [in] | selection_mask | Boolean mask selecting vertices. |
| [in] | selected_on_flags | Flags to turn on for selected vertices. |
| [in] | selected_off_flags | Flags to turn off for selected vertices. |
| [in] | unselected_on_flags | Flags to turn on for unselected vertices. |
| [in] | unselected_off_flags | Flags to turn off for unselected vertices. |
| [in] | bitmask_offset | Optional offset into the bitmask. |
| void Geometry::setWindingMode | ( | WindingMode | mode | ) |
|
inline |
Returns the number of solid vertices.
Definition at line 1301 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inline |
Returns the offset of solid (thickness-expanded) vertices in the vertex table.
Definition at line 1287 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo().
|
inline |
Returns the reserved capacity for solid vertices.
Definition at line 1294 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by Extruder::ExtrudePolylineAlongGeo().
Reorders vertices according to the given index mapping.
| [in] | new_order | A buffer mapping old vertex indices to new positions. |
| void Geometry::split | ( | Geometry & | other_geo, |
| const Buffer< bool > & | vertex_mask ) |
Splits this geometry into two based on a vertex mask.
| [in] | other_geo | The geometry to receive the split-off vertices. |
| [in] | vertex_mask | Boolean mask indicating which vertices to move. |
| Ray< 3, fltp08 > Geometry::surfaceNormal | ( | ) | const |
Calculates and returns the surface normal ray for this geometry.
| ThicknessMode Geometry::thicknessMode | ( | ) | const |
Retrieves the current thickness mode.
Referenced by Extruder::ExtrudeRealThickness().
| DynamicPointer< RTree< 3, fltp04 > > Geometry::tree | ( | PrimitiveProperty | primitive_property, |
| VertexProperty | vertex_property = VertexProperty::Position ) const |
Retrieves the spatial R-tree for the given properties.
| [in] | primitive_property | The primitive property. |
| [in] | vertex_property | The vertex property. Defaults to Position. |
References Position.
Referenced by setTree().
|
inline |
Retrieves a triangle from the geometry using primitive and vertex properties.
| [in] | primitive_property | The primitive property containing triangle indices. |
| [in] | vertex_property | The vertex property containing position data. |
| [in] | tri_index | The triangle primitive index. |
Definition at line 1751 of file Geometry.h.
References IsInvalid(), primitive(), and vertex().
|
inline |
Retrieves all triangles from the geometry.
| [in] | primitive_property | The primitive property containing triangle indices. |
| [in] | vertex_property | The vertex property containing position data. |
Definition at line 1859 of file Geometry.h.
References primitiveCount(), and triangles().
Referenced by triangles(), and triangles().
|
inline |
Retrieves a range of triangles from the geometry.
| [in] | primitive_property | The primitive property containing triangle indices. |
| [in] | vertex_property | The vertex property containing position data. |
| [in] | start | The starting triangle index. |
| [in] | size | The number of triangles to retrieve. |
Definition at line 1871 of file Geometry.h.
References column(), e_triangle, e_triangle_fan, e_triangle_strip, TableColumn::get(), indexFanOffset(), indexOffset(), IsInvalid(), mode(), primitiveColumn(), primitiveCount(), primitiveFanColumn(), and triangles().
|
inline |
Retrieves all triangle index triples for a primitive property.
| [in] | primitive_property | The primitive property. |
Definition at line 1072 of file Geometry.h.
References primitiveCount(), and triIndices().
Referenced by triIndices().
| Buffer< Vector< 3, uint04 > > Geometry::triIndices | ( | PrimitiveProperty | primitive_property, |
| uint04 | start, | ||
| uint04 | size ) const |
Retrieves a range of triangle index triples.
| [in] | primitive_property | The primitive property. |
| [in] | start | The starting primitive index. |
| [in] | size | The number of triangles to retrieve. |
| void Geometry::updateGeometryTime | ( | Time | time = Time::SystemTime() | ) |
Updates the geometry-specific timestamp.
| [in] | time | The timestamp to set. Defaults to current system time. |
References Time::SystemTime().
| void Geometry::updateGeometryTransform | ( | const Matrix< fltp08 > & | transform, |
| const void * | lock_ptr = nullptr ) |
Updates geometry after a transform change, recalculating derived data.
| [in] | transform | The transformation matrix. |
| [in] | lock_ptr | Optional thread lock pointer. |
| void Geometry::updateModifiedTime | ( | Time | time = Time::SystemTime() | ) |
Updates the modified timestamp for this geometry.
| [in] | time | The timestamp to set. Defaults to current system time. |
References Time::SystemTime().
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::updatePrimitiveColumn | ( | PrimitiveProperty | property, |
| bool | remove_tree = true ) |
Notifies the system that a primitive column has been modified.
| [in] | property | The modified primitive property. |
| [in] | remove_tree | Whether to remove spatial trees after update. |
| void Geometry::updatePrimitiveColumns | ( | bool | remove_tree = true | ) |
Notifies the system that all primitive columns have been modified.
| [in] | remove_tree | Whether to remove spatial trees after update. |
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::updateSolidVertexColumns | ( | bool | invalidate_bounds = true, |
| bool | erase_kd_tree = true ) |
Notifies the system that all solid vertex columns have been modified.
| [in] | invalidate_bounds | Whether to invalidate the bounding box. |
| [in] | erase_kd_tree | Whether to erase spatial trees. |
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::updateVertexColumn | ( | const StringView & | property | ) |
Notifies the system that a named custom vertex column was modified.
| [in] | property | The property name. |
| void Geometry::updateVertexColumn | ( | const StringView & | property, |
| uint04 | index, | ||
| uint04 | size ) |
Notifies the system that a range within a named custom vertex column was modified.
| [in] | property | The property name. |
| [in] | index | The starting vertex index. |
| [in] | size | The number of vertices modified. |
References DesignObject::index().
| void Geometry::updateVertexColumn | ( | const uint04 & | property | ) |
Notifies the system that a custom vertex column was modified by index.
| [in] | property | The column index. |
Notifies the system that a range within a custom vertex column was modified by index.
| [in] | property | The column index. |
| [in] | index | The starting vertex index. |
| [in] | size | The number of vertices modified. |
References DesignObject::index().
| void Geometry::updateVertexColumn | ( | VertexProperty | property | ) |
Notifies the system that a standard vertex column has been modified.
| [in] | property | The modified vertex property. |
| void Geometry::updateVertexColumn | ( | VertexProperty | property, |
| uint04 | index, | ||
| uint04 | size, | ||
| bool | invalidate_bounds = true, | ||
| bool | erase_kd_tree = true ) |
Notifies the system that a range within a standard vertex column was modified.
| [in] | property | The modified vertex property. |
| [in] | index | The starting vertex index of the modification. |
| [in] | size | The number of vertices modified. |
| [in] | invalidate_bounds | Whether to invalidate the bounding box. |
| [in] | erase_kd_tree | Whether to erase spatial trees. |
References DesignObject::index().
| void Geometry::updateVertexColumns | ( | bool | invalidate_bounds = true, |
| bool | erase_kd_tree = true ) |
Notifies the system that all vertex columns have been modified.
| [in] | invalidate_bounds | Whether to invalidate the bounding box. |
| [in] | erase_kd_tree | Whether to erase spatial trees. |
Referenced by Extruder::ExtrudePolylineAlongGeo().
| void Geometry::updateVertexColumns | ( | uint04 | index, |
| uint04 | size, | ||
| bool | invalidate_bounds = true, | ||
| bool | erase_kd_tree = true ) |
Notifies the system that a range across all vertex columns was modified.
| [in] | index | The starting vertex index. |
| [in] | size | The number of vertices modified. |
| [in] | invalidate_bounds | Whether to invalidate the bounding box. |
| [in] | erase_kd_tree | Whether to erase spatial trees. |
References DesignObject::index().
| bool Geometry::validate | ( | ) | const |
Validates the internal consistency of the geometry data.
|
inline |
Retrieves a single vertex value for a standard property.
| [in] | property | The vertex property. |
| [in] | index | The vertex index. |
Definition at line 1725 of file Geometry.h.
References column(), DesignObject::index(), vertexCount(), and vertexOffset().
Referenced by lineSegment(), setVertexFlag(), triangle(), and vertexSelected().
|
inline |
Returns the number of vertices in this geometry.
Definition at line 1280 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by LineIterator< t_dims, t_type >::LineIterator(), addVertex(), addVertices(), Extruder::ExtrudePolylineAlongGeo(), optimizedPrimitiveDef(), polylines(), primitive(), propertyVertices(), propertyVertices(), setPrimitive(), setPrimitive(), setPrimitiveVec(), setVertex(), setVertex(), setVertexProperties(), setVertexProperty(), setVertexProperty(), setVertexProperty(), setVertexProperty(), setVertices(), setVertices(), setVertices(), vertex(), vertices(), vertices(), vertices(), and vertices().
| bool Geometry::vertexFlag | ( | uint04 | vertex_index, |
| VertexFlags | flag ) const |
Retrieves whether a specific flag is set on a vertex.
| [in] | vertex_index | The vertex index. |
| [in] | flag | The flag to query. |
|
inline |
Returns a mutable pointer to the vertex flag column, or nullptr if none exists.
Definition at line 2230 of file Geometry.h.
References BitFlag, column(), and DesignInfo::m_base.
|
inline |
Returns a const pointer to the vertex flag column, or nullptr if none exists.
Definition at line 2220 of file Geometry.h.
References BitFlag, column(), and DesignInfo::m_base.
|
inline |
Returns the offset of this geometry's vertices within the shared vertex table.
Definition at line 1273 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
Referenced by optimizedPrimitiveDef(), polylines(), primitive(), primitive(), primitive(), propertyVertices(), setPrimitive(), setPrimitive(), setPrimitiveVec(), setVertex(), setVertex(), setVertexProperties(), setVertexProperty(), setVertexProperty(), setVertexProperty(), setVertexProperty(), setVertices(), setVertices(), setVertices(), vertex(), vertexProperty(), vertexProperty(), vertexProperty(), vertexProperty(), vertices(), and vertices().
|
inline |
Retrieves a custom vertex property value by name.
| [in] | property | The property name. |
| [in] | vertex_index | The vertex index. |
Definition at line 1374 of file Geometry.h.
References propertyColumn(), and vertexOffset().
|
inline |
Retrieves a sub-component of a custom vertex property by name.
| [in] | property | The property name. |
| [in] | vertex_index | The vertex index. |
| [in] | sub_index | The sub-component index. |
Definition at line 1396 of file Geometry.h.
References propertyColumn(), and vertexOffset().
|
inline |
Retrieves a custom vertex property value by column index.
| [in] | property_index | The property column index. |
| [in] | vertex_index | The vertex index. |
Definition at line 1364 of file Geometry.h.
References propertyColumn(), and vertexOffset().
|
inline |
Retrieves a sub-component of a custom vertex property by column index.
| [in] | property_index | The property column index. |
| [in] | vertex_index | The vertex index. |
| [in] | sub_index | The sub-component index within the property. |
Definition at line 1385 of file Geometry.h.
References propertyColumn(), and vertexOffset().
| uint04 Geometry::vertexPropertyCount | ( | ) | const |
Returns the number of vertex property columns.
| uint04 Geometry::vertexPropertyIndex | ( | const StringView & | property_name | ) | const |
Finds the column index of a named vertex property.
| [in] | property_name | The property name to look up. |
Returns the name of a vertex property by its column index.
| [in] | property_index | The column index. |
Definition at line 1312 of file Geometry.h.
References DesignInfo::m_base.
Returns the type information for a vertex property column.
| [in] | property_index | The column index. |
Definition at line 1339 of file Geometry.h.
References propertyColumn().
|
inline |
Returns the total reserved (allocated) vertex capacity.
Definition at line 1266 of file Geometry.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
| bool Geometry::vertexSelected | ( | uint04 | vertex | ) | const |
|
inline |
Retrieves all vertex values for a named custom property.
| [in] | property | The property name. |
Definition at line 1814 of file Geometry.h.
References vertexCount(), and vertices().
|
inline |
Retrieves a range of vertex values for a named custom property.
| [in] | property | The property name. |
| [in] | start | The starting vertex index. |
| [in] | size | The number of vertices to retrieve. |
Definition at line 1824 of file Geometry.h.
References propertyColumn(), vertexCount(), and vertexOffset().
|
inline |
Retrieves all vertex values for a standard property.
| [in] | property | The vertex property. |
Definition at line 1792 of file Geometry.h.
References vertexCount(), and vertices().
Referenced by getTreeSortedVertices(), removePrimitive(), removeVertices(), setVertexProperties(), setVertices(), setVertices(), setVertices(), setVerticesFlag(), vertices(), and vertices().
|
inline |
Retrieves a range of vertex values for a standard property.
| [in] | property | The vertex property. |
| [in] | start | The starting vertex index. |
| [in] | size | The number of vertices to retrieve. |
Definition at line 1803 of file Geometry.h.
References column(), vertexCount(), and vertexOffset().