![]() |
NDEVR
API Documentation
|
A core class that represents a node on model hierarchy. More...
Public Member Functions | |
| Model () | |
| Default constructor. Creates an uninitialized Model. | |
| Model (const DesignInfo &obj) | |
| Constructs a Model from an existing DesignInfo descriptor. | |
| Model (DesignObjectBase *base) | |
| Constructs a Model from a design object base, using the next available index. | |
| Model (uint04 index, DesignObjectBase *base) | |
| Constructs a Model at a specific index within the design object base. | |
| void | addChild (Model &child) |
| Adds an existing model as a child of this model. | |
| void | addChild (uint04 child_idx, Model &child) |
| Adds an existing model as a child at a specific index. | |
| void | addChild (uint04 child_index) |
| Adds a child by its database index. | |
| void | addPerVertexColorFromMaterialConstant (UVType constant_index) |
| Adds per-vertex color data derived from a material constant UV channel. | |
| Matrix< fltp08 > | applyTransformToParent (Matrix< fltp08 > mat, const Matrix< fltp08 > &parent_mat) const |
| Applies a transformation matrix to the parent transform, respecting parent matrix flags. | |
| Vector< 3, fltp08 > | calculateAverageDirection (const Matrix< fltp08 > &parent_transform=Constant< Matrix< fltp08 > >::Invalid) const |
| Calculates the average direction vector of descendant linear geometries. | |
| Vector< 2, fltp08 > | calculateHVLength (const Matrix< fltp08 > &parent_transform=Constant< Matrix< fltp08 > >::Invalid) const |
| Calculates horizontal and vertical length components of descendant linear geometries. | |
| void | calculateIndexNeighborList () |
| Calculates the index neighbor list for geometry processing. | |
| fltp08 | calculateLength (const Matrix< fltp08 > &transform=Constant< Matrix< fltp08 > >::Invalid) const |
| Calculates the total length of all descendant linear geometries. | |
| void | calculateNormals (NormalMode mode, Angle< fltp08 > smoothing_angle) |
| Recalculates normals for all descendant geometries. | |
| void | calculateSmoothTextures (Vector< 3, fltp08 > origin, fltp08 scale) |
| Calculates smooth texture coordinates based on a projection origin and scale. | |
| fltp08 | calculateSurfaceArea (const Matrix< fltp08 > &transform=Constant< Matrix< fltp08 > >::Invalid) const |
| Calculates the surface area of all descendant mesh geometries. | |
| void | calculateTangentSpace (bool calc_tan, bool calc_bitan) |
| Calculates tangent and/or bitangent vectors for all descendant geometries. | |
| fltp08 | calculateVolume (const Matrix< fltp08 > &transform=Constant< Matrix< fltp08 > >::Invalid) const |
| Calculates the volume of all descendant mesh geometries. | |
| Vector< 2, fltp08 > | calculateVolumeAndSurfaceArea (const Matrix< fltp08 > &transform=Constant< Matrix< fltp08 > >::Invalid, const void *lock=nullptr) const |
| Calculates both volume and surface area in a single pass for efficiency. | |
| bool | canExplode () const |
| Checks whether this model can be exploded into its constituent children. | |
| bool | canInteract () const |
| Checks whether this model can be interacted with (visible, not locked, etc.). | |
| Vertex< 3, fltp08 > | centerAlignModel () |
| Centers the model geometry at the origin and returns the offset applied. | |
| void | checkBounds () |
| Validates and recalculates cached bounding boxes if needed. | |
| uint04 | childCount () const |
| Returns the number of direct children this model has. | |
| void | clearChildren () |
| Removes all children from this model without deleting them. | |
| void | clearLayer () |
| Removes the layer assignment from this model. | |
| void | clearMaterial () |
| Removes the material assignment from this model. | |
| void | clearMaterialDescendants () |
| Removes all descendant material assignments without deleting the materials. | |
| void | colorByChannel (Material &mat, const StringView &channel, fltp08 avg=Constant< fltp08 >::Invalid) const |
| Colors geometry vertices by a data channel value from a material. | |
| void | copyFrom (const Model &model, bool deep_copy, bool copy_ids=false, bool recursive=true, bool keep_root_properties=false) |
| Copies data from another model into this model. | |
| void | copyMaterialProperties (const Model &model) |
| Copies material properties from another model to this model. | |
| Model | createChild () |
| Creates a new child model and appends it to this model's child list. | |
| Model | createChild (uint04 child_slot) |
| Creates a new child model at a specific child slot index. | |
| Effect | createChildEffect () |
| Creates a new child effect attached to this model. | |
| Geometry | createChildGeometry () |
| Creates a new child geometry for this model. | |
| Material | createChildMaterial (bool copy_child=false) |
| Creates a new child material for this model. | |
| void | createChildren (uint04 child_size) |
| Creates multiple children at once. | |
| Effect | createSceneEffect () const |
| Creates a new effect in the scene database. | |
| Geometry | createSceneGeometry () const |
| Creates a new geometry in the scene database. | |
| Model | createSceneLayer () const |
| Creates a new layer model in the scene database. | |
| Material | createSceneMaterial () const |
| Creates a new material in the scene database. | |
| Model | createSceneModel () const |
| Creates a new model in the scene database associated with this model. | |
| RGBColor | customModelColor (ModelColorMode mode) const |
| Returns the resolved model color based on the specified color mode. | |
| void | deleteChildren () |
| Deletes all children of this model. | |
| void | deleteModel (bool deletchildren, bool removfrom_parent=true) |
| Deletes this model from the scene. | |
| BitFlag | descendedFlagsNoCache (bool complete_cache_ignore) const |
| Computes descended flags without using the cache. | |
| BitFlag | descendedPersonalFlagsNoCache () const |
| Computes descended personal flags without using the cache. | |
| void | descendentGeometryTypes (Set< GeometryType > &buffer) const |
| Collects all unique geometry types from descendants into the provided set. | |
| Model | directLayer () const |
| Returns the directly assigned layer model. | |
| TranslatedString | displayName () const |
| Returns the translated display name for this model. | |
| TranslatedString | displayNamePath (const StringView &seperator=":") const |
| Returns the full display name path from root to this model. | |
| bool | doesModelPropertyContain (NDPN property, const char *value, bool ignorcase) const |
| Checks whether a model property contains a given C-string substring. | |
| template<class t_type> | |
| bool | doesModelPropertyContain (NDPN property, const StringView &value, bool ignorcase) const |
| Checks whether a model property contains a given substring. | |
| void | ensureTangentSpace (bool ensure_tan, bool ensure_bitan) |
| Ensures that tangent and/or bitangent data exists, calculating if needed. | |
| void | ensureVisibleChildren (uint04 count) |
| Hides children whos child index is greater than size, or creates/shows children if needed such that there is exactly a given number of visible children for this model. | |
| void | eraseModel () |
| Erases this model from the database without removing children. | |
| ModelBuffer | explodeModel () |
| Explodes this model, promoting its children to siblings in the parent. | |
| bool | exportIgnored () const |
| Checks whether this model is excluded from export operations. | |
| Model | findDescendentByName (const StringView &name) const |
| Recursively searches descendants for a model with the given name. | |
| Model | findDescendentByType (const StringView &type) const |
| Recursively searches descendants for a model with the given type. | |
| Time | getAscModifiedTime (bool include_self, bool include_layer=true) const |
| Returns the greatest modified time of this model and all ancestors. | |
| Bounds< 3, fltp08 > | getBounds () const |
| Returns the local bounding box of this model. | |
| Bounds< 3, fltp08 > | getBoundsOfVisible () const |
| Returns the bounding box of all visible descendants. | |
| Model | getChild (uint04 child) const |
| Returns the child model at the given child slot index. | |
| Model | getChild (UUID id) const |
| Returns the child model with the specified UUID. | |
| uint04 | getChildIndex () const |
| Returns this model's index within its parent's child list. | |
| uint04 | getChildIndex (uint04 child) const |
| Returns the database index of the child at the given slot. | |
| Buffer< uint04 > | getChildIndices () const |
| Returns the database indices of all direct children. | |
| uint04 | getChildLayerIndex () const |
| Returns this model's index within its parent's layer child list. | |
| ModelBuffer | getChildren () const |
| Returns a buffer containing all direct children of this model. | |
| void | getChildren (ModelBuffer &children) const |
| Appends all direct children of this model to the provided buffer. | |
| ModelBuffer | getChildrenByName (const StringView &name) const |
| Returns all direct children whose name matches the given string. | |
| ModelBuffer | getChildrenByType (const Buffer< String > &type) const |
| Returns all direct children whose type matches any of the given strings. | |
| ModelBuffer | getChildrenByType (const StringView &type) const |
| Returns all direct children whose type matches the given string. | |
| Buffer< UUID > | getChildrenIDs () const |
| Returns the UUIDs of all direct children. | |
| PrimitiveAlignedBuffer< std::pair< Model, Geometry >, 32 > | getClippingGeometry () const |
| Returns model-geometry pairs used for clipping operations. | |
| Matrix< fltp08 > | getCompleteTransform () const |
| Returns the fully composed local-to-global transform matrix for this model. | |
| ModelBuffer | getDescendants (bool include_deleted=false, bool local_only=false) const |
| Returns all descendant models recursively. | |
| void | getDescendants (ModelBuffer &buffer, bool include_deleted=false, bool local_only=false) const |
| Appends all descendant models recursively to the provided buffer. | |
| ModelBuffer | getDescendantsByName (const StringView &name, uint04 max_count=Constant< uint04 >::Max) const |
| Recursively searches all descendants for models matching the given name. | |
| ModelBuffer | getDescendantsByNameAndType (const StringView &name, const StringView &type, uint04 max_count=Constant< uint04 >::Max) const |
| Recursively searches all descendants for models matching both name and type. | |
| ModelBuffer | getDescendantsByType (const StringView &type, uint04 max_count=Constant< uint04 >::Max) const |
| Recursively searches all descendants for models matching the given type. | |
| Time | getDescModifiedTime (bool includself) const |
| Returns the greatest modified time of this model and all descendants. | |
| uint04 | getDirectLayerIndex () const |
| Returns the database index of the directly assigned layer. | |
| Effect | getEffect (uint04 index=0) const |
| Returns the effect at the specified child index. | |
| EffectBuffer | getEffectChildren () const |
| Returns all direct child effects of this model. | |
| EffectBuffer | getEffectDescendants () const |
| Returns all descendant effects recursively. | |
| uint04 | getEffectIndex (uint04 child_index=0) const |
| Returns the database index of the effect at the given child slot. | |
| Model | getFamilyMember (uint04 index) const |
| Returns a model from the family tree (ancestors + descendants) by flat index. | |
| Geometry | getGeometry () const |
| Returns the geometry attached to this model. | |
| GeometryBuffer | getGeometryDescendants (bool remove_redundant=true, uint04 max_count=Constant< uint04 >::Max) const |
| Recursively collects all descendant geometries. | |
| uint04 | getGeometryIndex () const |
| Returns the database index of the geometry associated with this model. | |
| Model | getLayer () const |
| Returns the layer model assigned to this model (direct or inherited). | |
| Material | getMaterial () const |
| Returns the material assigned to this model. | |
| MaterialBuffer | getMaterialDescendants (bool local_only=false) const |
| Recursively collects all descendant materials. | |
| void | getMaterialDescendants (MaterialBuffer &materials, bool local_only=false) const |
| Appends all descendant materials to the provided buffer. | |
| void | getMaterialDescendants (Set< Material > &materials, bool local_only=false) const |
| Appends all descendant materials to the provided set (deduplicating). | |
| MaterialBuffer | getMaterialDescendantsByName (const StringView &name, uint04 max_count=Constant< uint04 >::Max) const |
| Returns descendant materials filtered by name. | |
| uint04 | getMaterialIdx () const |
| Returns the database index of the material assigned to this model. | |
| MaterialMode | getMaterialMode () const |
| Returns the material mode determining how materials are resolved for this model. | |
| StringView | getModelIcon () const |
| Returns the icon identifier string for this model's type. | |
| uint04 | getNumOfEffects () const |
| Returns the number of effects attached to this model. | |
| Model | getParent () const |
| Returns the parent model of this model. | |
| uint04 | getParentIndex () const |
| Returns the database index of this model's parent. | |
| Matrix< fltp08 > | getParentTransform () const |
| Returns the parent's transformation matrix as seen by this model. | |
| Model | getRoot () const |
| Returns the root ancestor of this model's hierarchy. | |
| Material | getRootMaterial () const |
| Returns the root material resolved through the hierarchy. | |
| Model | getRootMaterialModel () |
| Returns the ancestor model that determines the root material for this model. | |
| Effect | getSceneEffect (UUID id) const |
| Returns a scene effect by its UUID. | |
| EffectBuffer | getSceneEffects () const |
| Returns all effects in the scene database. | |
| GeometryBuffer | getSceneGeometries () const |
| Returns all geometries in the scene database. | |
| Geometry | getSceneGeometry (uint04 index) const |
| Returns a scene geometry by database index. | |
| Geometry | getSceneGeometry (UUID id) const |
| Returns a scene geometry by UUID. | |
| Model | getSceneLayer (UUID id) const |
| Returns a scene layer by its UUID. | |
| ModelBuffer | getSceneLayers (bool include_deleted=false) const |
| Returns all layer models in the scene. | |
| Material | getSceneMaterial (uint04 index) const |
| Returns a scene material by database index. | |
| Material | getSceneMaterial (UUID id) const |
| Returns a scene material by UUID. | |
| MaterialBuffer | getSceneMaterials () const |
| Returns all materials in the scene database. | |
| Model | getSceneModel (UUID id) const |
| Retrieves a scene model by its UUID. | |
| ModelBuffer | getSceneModels (bool include_deleted=false, bool local_only=false) const |
| Returns all models in the scene database. | |
| ModelBuffer | getSceneModelsByName (const StringView &name, uint04 max_count=Constant< uint04 >::Max, bool includdeleted=false) const |
| Returns scene models filtered by name. | |
| ModelBuffer | getSceneModelsByType (const StringView &type, uint04 max_count=Constant< uint04 >::Max, bool includdeleted=false) const |
| Returns scene models filtered by type. | |
| Bounds< 3, fltp08 > | getSelectionBounds () const |
| Returns the selection-specific bounding box in local space. | |
| template<class t_type> | |
| Buffer< t_type > | getTypeChildren (const StringView &type) const |
| Returns children of a specific type, cast to the requested derived type. | |
| template<class t_type> | |
| Buffer< t_type > | getTypeDescendants (const StringView &type) const |
| Recursively searches descendants for models of a specific type, cast to a derived type. | |
| Bounds< 3, fltp08 > | globalBounds () const |
| Returns the global bounding box of this model (including transform). | |
| Vertex< 3, fltp08 > | globalCenterOfRotation () const |
| Returns the center of rotation in global coordinates. | |
| Bounds< 3, fltp08 > | globalSelectionBounds () const |
| Returns the global selection bounding box. | |
| bool | hasChild (uint04 child_index=0U) const |
| Checks whether this model has a child at the given slot. | |
| void | hasDescendants (bool &has_point, bool &has_line, bool &has_mesh, bool only_user_objects) const |
| Checks which types of geometry primitives exist among descendants. | |
| bool | hasDescendent (const Model &model) const |
| Checks whether a given model is a descendant of this model. | |
| bool | hasDescendent (const UUID &id) const |
| Checks whether a model with the given UUID is a descendant of this model. | |
| bool | hasDirectLayer () const |
| Checks whether this model has a directly assigned layer (not inherited). | |
| bool | hasEffect (uint04 index=0) const |
| Checks whether an effect exists at the given child index. | |
| bool | hasFocus () const |
| Checks whether this model currently has focus. | |
| bool | hasGeometryDescendent () const |
| Checks whether any descendant has geometry data. | |
| bool | hasHoles (PrimitiveProperty property) const |
| Checks whether the geometry has holes (missing primitives) for a given property. | |
| bool | hasLayer () const |
| Checks whether this model has a layer (directly or inherited). | |
| bool | hasLayerRootMaterial () const |
| Checks whether a root material exists through the layer hierarchy. | |
| bool | hasLinearDescendent () const |
| Checks whether any descendant has linear (line/polyline) geometry. | |
| bool | hasMaterial () const |
| Checks whether this model has a material assigned. | |
| bool | hasMeshDescendent () const |
| Checks whether any descendant has mesh (triangle) geometry. | |
| bool | hasPointsDescendent () const |
| Checks whether any descendant has point geometry. | |
| bool | hasRootMaterial () const |
| Checks whether a root material can be resolved through the hierarchy. | |
| bool | hasSelectedDescendent () const |
| Checks whether any descendant of this model is selected. | |
| Vector< 32, bool > | inheritedFlags () const |
| Returns the cached inherited flags vector for this model. | |
| Vector< 32, bool > | inheritedFlagsNoCache (bool complete_cache_ignore) const |
| Computes inherited flags without using the cache. | |
| Vector< 32, bool > | inheritedPersonalFlagsNoCache () const |
| Computes inherited personal flags without using the cache. | |
| void | invalidateBounds () |
| Invalidates all cached bounding boxes, forcing recalculation on next access. | |
| void | invalidateGlobalBoundsDesc () |
| Invalidates global bounding boxes for this model and all descendants. | |
| void | invalidateSelectionBounds () |
| Invalidates the cached selection bounding box. | |
| void | invalidateTransformCache () |
| Invalidates the cached transformation matrix, forcing recomputation. | |
| void | invalidateVisibleBounds () |
| Invalidates the cached visible bounding box. | |
| bool | isApplicationOwned () const |
| Checks whether this model is owned by the application (not user-created). | |
| bool | isDeleted () const |
| Checks whether this model has been deleted. | |
| bool | isLayer () const |
| Checks whether this model is a layer definition. | |
| bool | isLocked () const |
| Checks whether this model is locked against editing. | |
| bool | isScene () const |
| Checks whether this model represents a scene root node. | |
| bool | isSelected () const |
| Checks whether this model is currently selected. | |
| bool | isTreeVisible () const |
| Checks whether this model is visible in the model tree view. | |
| template<class t_buffer_type> | |
| bool | isType (const Buffer< t_buffer_type > &types) const |
| Checks whether the model's type matches any type in the given buffer. | |
| bool | isVisible () const |
| Checks whether this model is visible (accounting for inherited visibility). | |
| operator bool () const | |
| Boolean conversion operator. Returns true if this Model references a valid entry. | |
| void | overrideMaterialDescendants (MaterialMode override_desc) |
| Overrides material mode for all descendants. | |
| BitFlag | parentMatrixFlags () const |
| Returns the parent matrix flags for this model. | |
| BitFlag | personalDescendedFlags () const |
| Returns the cached personal descended flags. | |
| Vector< 32, bool > | personalInheritedFlags () const |
| Returns the personal inherited flags from the cache. | |
| void | removeChild (const Model &model) |
| Removes a specific child model from this model's child list. | |
| void | removeDuplicateVertices (fltp08 epsilon, void *lock, InfoPipe *log=nullptr) |
| Removes duplicate vertices from all descendant geometries. | |
| void | removeGeometry () |
| Removes the geometry reference from this model (does not delete the geometry). | |
| void | removeMaterial () |
| Removes the material from this model. | |
| void | restoreModel () |
| Restores a previously deleted model, re-adding it to the scene. | |
| void | restoreModel (Model &parent, uint04 index=Constant< uint04 >::Invalid) |
| Restores a previously deleted model under a specific parent. | |
| void | setChildApplicationConstructed (const StringView &database_name=StringView()) |
| Sets the child database to an application-constructed database by name. | |
| void | setChildApplicationConstructed (DesignObjectBase *base) |
| Sets the child database to use an application-constructed DesignObjectBase. | |
| void | setChildEffectSize (uint04 child_size) |
| Sets the number of child effect slots for this model. | |
| void | setChildIndex (uint04 child, uint04 id) |
| Sets the database index for a specific child slot. | |
| void | setEffectIndex (uint04 material_index, uint04 sub_index=0) |
| Sets the effect database index at a given sub-index. | |
| void | setGeometryApplicationConstructed (const StringView &database_name=StringView()) |
| Sets the geometry database to an application-constructed database by name. | |
| void | setGeometryChild (Geometry &geo) |
| Sets the geometry child of this model to an existing Geometry object. | |
| void | setGeometryIndex (uint04 geo_index) |
| Sets the geometry database index for this model. | |
| void | setIsLayer (bool is_layer) |
| Marks or unmarks this model as a layer definition. | |
| void | setLayer (Model layer) |
| Assigns this model to a specific layer. | |
| void | setMaterial (const Material &material) |
| Assigns a material to this model. | |
| void | setMaterialApplicationConstructed (const StringView &database_name=StringView()) |
| Sets the material database to an application-constructed database by name. | |
| void | setMaterialMode (MaterialMode option) |
| Sets the material mode for this model. | |
| void | setModelTransform (const Matrix< fltp08 > &transform) |
| Sets the model's local transformation matrix, replacing the current one. | |
| bool | setModelVisible (bool is_visible) |
| Sets the visibility of this model. | |
| void | setNormalMode (NormalMode mode, Angle< fltp08 > smoothing_angle, InfoPipe *log) |
| Sets the normal mode and recalculates normals with progress logging. | |
| void | setOrientation (const Vector< 3, Angle< fltp08 > > &new_orientation, const void *lock=nullptr) |
| Sets the orientation of this model using floating-point angles. | |
| void | setOrientation (const Vector< 3, Angle< sint04 > > &new_orientation, const void *lock=nullptr) |
| Sets the orientation of this model using integer-precision angles. | |
| void | setParentMatrixFlag (ParentMatrixFlags flag, bool value) |
| Sets or clears a specific parent matrix flag. | |
| void | setParentMatrixFlags (BitFlag flags) |
| Sets the parent matrix flags controlling which parent transform components to inherit. | |
| void | setSize (const Vector< 3, fltp08 > &size) |
| Sets the model size by scaling its transform to match the desired dimensions. | |
| void | setWindingMode (WindingMode mode) |
| Sets the winding mode for all descendant geometries. | |
| Vector< 3, fltp08 > | size () const |
| Returns the size (extents) of the model's bounding box. | |
| void | swapChildren (uint04 a, uint04 b) |
| Swaps the positions of two children in the child list. | |
| void | updateAscGeometryTime (const Time &time, bool include_self) |
| Updates the geometry-modified timestamp for this model and all ancestors. | |
| void | updateAscTime (const Time &time, bool includself) |
| Updates the modified timestamp for this model and all ancestors. | |
| void | updateDescGeometryTime (const Time &time, bool include_self) |
| Updates the geometry-modified timestamp for this model and all descendants. | |
| void | updateDescTime (const Time &time, bool include_self) |
| Updates the modified timestamp for this model and all descendants. | |
| void | updateFrom (const Model &model, bool check_resources) |
| Updates this model's properties from another model, optionally checking resources. | |
| void | updateGeometryTime (Time time=Time::SystemTime()) |
| Updates the geometry-modified timestamp for this model. | |
| void | updateInheritedFlagsCache (bool force_update_all=false, bool update_personal_flags=false) |
| Recalculates and caches the inherited flags for this model. | |
| void | updateModelTransform (const Matrix< fltp08 > &transform, const void *lock=nullptr) |
| Applies a delta transform to the current model transform. | |
| void | updateModifiedTime (Time time=Time::SystemTime()) |
| Updates the modified timestamp for this model. | |
| void | updateVisibleRecursive (bool is_visible) |
| Recursively updates visibility for this model and all descendants. | |
| void | validate (bool validate_children=true) const |
| Validates this model's internal state for consistency. | |
| uint04 | vertexCount () const |
| Returns the total number of vertices across all descendant geometries. | |
| uint04 | visibleVertexCount () const |
| Returns the total number of visible vertices across all descendant geometries. | |
| 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 ModelBuffer | ReduceToRoots (const ModelBuffer &children, const std::function< bool(const Model &, const Set< Model > &)> &filter) |
| Reduces a collection of models to only root-level models (removing any that are descendants of others in the set), filtered by a user-provided predicate. | |
| 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 | |
| DesignObjectBase * | childBase () const |
| Returns the DesignObjectBase used for child model storage. | |
| ColumnT< uint04 > & | childToParentReference () const |
| Returns the column mapping child indices to parent indices. | |
| DesignObjectBase * | geometryBase () const |
| Returns the DesignObjectBase used for geometry storage. | |
| DesignObjectBase * | materialBase () const |
| Returns the DesignObjectBase used for material storage. | |
| DesignObjectBase * | parentBase () const |
| Returns the DesignObjectBase used for parent model storage. | |
| ColumnT< Buffer< uint04 > > & | parentToChildReference () const |
| Returns the column mapping parent indices to child index lists. | |
| 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. | |
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 that represents a node on model hierarchy.
This node may contain a Geometry or one or more child Models as well as 3 different materials for rendering the Geometry parts.
Flags that propagate upward from descendant models to ancestors, indicating aggregate states of the subtree below this model.
| Enumerator | |
|---|---|
| e_descendent_selected | At least one descendant is selected. |
| e_descendent_focussed | At least one descendant has focus. |
| e_descendent_deletion_blocked | At least one descendant blocks deletion. |
| enum Model::InheritedFlags : uint01 |
Flags that are recursively inherited from ancestor models down through the hierarchy.
These represent visibility, selection, deletion, and other aggregate states.
|
strong |
Determines how a model resolves its material for rendering.
| Enumerator | |
|---|---|
| e_by_parent | Inherit material from the parent model. |
| e_by_layer | Use the material assigned to this model's layer. |
| e_custom | Use a custom material assigned directly to this model. |
| e_hidden | Model is hidden and not rendered. |
|
strong |
| enum Model::ParentMatrixFlags : uint01 |
Flags controlling which components of the parent's transformation matrix are applied to this model.
Each flag, when set, causes the corresponding transform component to be ignored or overridden.
| Model::Model | ( | DesignObjectBase * | base | ) |
Constructs a Model from a design object base, using the next available index.
| [in] | base | The design object base that stores model data. |
References DesignObject::base().
| Model::Model | ( | uint04 | index, |
| DesignObjectBase * | base ) |
Constructs a Model at a specific index within the design object base.
| [in] | index | The row index in the model database. |
| [in] | base | The design object base that stores model data. |
References DesignObject::base(), and DesignObject::index().
|
explicit |
Constructs a Model from an existing DesignInfo descriptor.
| [in] | obj | The design info to reference. |
| void Model::addChild | ( | Model & | child | ) |
Adds an existing model as a child of this model.
| [in] | child | The model to add as a child. |
References Model().
Referenced by DesignObjectResourceCache::createModel().
Adds an existing model as a child at a specific index.
| [in] | child_idx | The child slot index. |
| [in] | child | The model to add. |
References Model().
| void Model::addChild | ( | uint04 | child_index | ) |
Adds a child by its database index.
| [in] | child_index | The database index of the child to add. |
| void Model::addPerVertexColorFromMaterialConstant | ( | UVType | constant_index | ) |
Adds per-vertex color data derived from a material constant UV channel.
| [in] | constant_index | The UV type index to use as color source. |
|
nodiscard |
Applies a transformation matrix to the parent transform, respecting parent matrix flags.
| [in] | mat | The transform matrix to apply. |
| [in] | parent_mat | The current parent transform. |
|
nodiscard |
Calculates the average direction vector of descendant linear geometries.
| [in] | parent_transform | Optional parent transform (Invalid = use model transform). |
|
nodiscard |
Calculates horizontal and vertical length components of descendant linear geometries.
| [in] | parent_transform | Optional parent transform (Invalid = use model transform). |
|
nodiscard |
Calculates the total length of all descendant linear geometries.
| [in] | transform | Optional transform to apply before calculation (Invalid = use model transform). |
| void Model::calculateNormals | ( | NormalMode | mode, |
| Angle< fltp08 > | smoothing_angle ) |
Recalculates normals for all descendant geometries.
| [in] | mode | The normal calculation mode (flat, smooth, etc.). |
| [in] | smoothing_angle | The angle threshold for smooth normal blending. |
Calculates smooth texture coordinates based on a projection origin and scale.
| [in] | origin | The projection origin. |
| [in] | scale | The UV scale factor. |
References DesignObject::scale().
|
nodiscard |
Calculates the surface area of all descendant mesh geometries.
| [in] | transform | Optional transform to apply before calculation (Invalid = use model transform). |
| void Model::calculateTangentSpace | ( | bool | calc_tan, |
| bool | calc_bitan ) |
Calculates tangent and/or bitangent vectors for all descendant geometries.
| [in] | calc_tan | Whether to calculate tangents. |
| [in] | calc_bitan | Whether to calculate bitangents. |
|
nodiscard |
Calculates the volume of all descendant mesh geometries.
| [in] | transform | Optional transform to apply before calculation (Invalid = use model transform). |
|
nodiscard |
Calculates both volume and surface area in a single pass for efficiency.
| [in] | transform | Optional transform to apply before calculation (Invalid = use model transform). |
| [in] | lock | Optional lock pointer for thread safety. |
|
nodiscard |
Checks whether this model can be exploded into its constituent children.
|
nodiscard |
Checks whether this model can be interacted with (visible, not locked, etc.).
Centers the model geometry at the origin and returns the offset applied.
|
protected |
Returns the DesignObjectBase used for child model storage.
|
nodiscard |
Returns the number of direct children this model has.
|
protected |
Returns the column mapping child indices to parent indices.
| void Model::colorByChannel | ( | Material & | mat, |
| const StringView & | channel, | ||
| fltp08 | avg = Constant< fltp08 >::Invalid ) const |
Colors geometry vertices by a data channel value from a material.
| [in] | mat | The material containing the color map. |
| [in] | channel | The channel name to read values from. |
| [in] | avg | Optional average value for normalization (Invalid = auto-compute). |
| void Model::copyFrom | ( | const Model & | model, |
| bool | deep_copy, | ||
| bool | copy_ids = false, | ||
| bool | recursive = true, | ||
| bool | keep_root_properties = false ) |
Copies data from another model into this model.
| [in] | model | The source model to copy from. |
| [in] | deep_copy | Whether to deep-copy children and associated data. |
| [in] | copy_ids | Whether to preserve UUIDs from the source. |
| [in] | recursive | Whether to recursively copy child models. |
| [in] | keep_root_properties | Whether to preserve this model's own root-level properties. |
References Model().
Referenced by TransitIncidentManager::setActiveBus().
| void Model::copyMaterialProperties | ( | const Model & | model | ) |
Copies material properties from another model to this model.
| [in] | model | The source model whose material properties to copy. |
References Model(), and DesignObject::index().
| Model Model::createChild | ( | ) |
Creates a new child model and appends it to this model's child list.
References Model().
Referenced by CheckoutCode::CheckoutSource(), DesignObjectResourceCache::createModel(), NewModelCommand::execute(), BuildActionProgramLogic::executeMenuItems(), ModelTileTable::init(), TransitIncidentManager::setActiveBus(), TransitIncidentManager::setActiveDriver(), and RealSenseMotorManager::update().
| Effect Model::createChildEffect | ( | ) |
Creates a new child effect attached to this model.
|
nodiscard |
Creates a new child geometry for this model.
Referenced by DesignObjectResourceCache::createGeometry().
|
nodiscard |
Creates a new child material for this model.
| [in] | copy_child | Whether to copy existing material properties to the new material. |
| void Model::createChildren | ( | uint04 | child_size | ) |
Creates multiple children at once.
| [in] | child_size | The number of children to create. |
Referenced by StreetInfo::StreetInfo(), and DesignObjectResourceCache::createChildren().
|
nodiscard |
Creates a new effect in the scene database.
|
nodiscard |
Creates a new geometry in the scene database.
|
nodiscard |
|
nodiscard |
Creates a new material in the scene database.
| Model Model::createSceneModel | ( | ) | const |
|
nodiscard |
Returns the resolved model color based on the specified color mode.
| [in] | mode | The color resolution strategy to use. |
| void Model::deleteModel | ( | bool | deletchildren, |
| bool | removfrom_parent = true ) |
Deletes this model from the scene.
| [in] | deletchildren | Whether to also delete all child models. |
| [in] | removfrom_parent | Whether to remove this model from its parent's child list. |
|
nodiscard |
Computes descended flags without using the cache.
| [in] | complete_cache_ignore | If true, ignores all cached values in the entire hierarchy. |
|
nodiscard |
Computes descended personal flags without using the cache.
| void Model::descendentGeometryTypes | ( | Set< GeometryType > & | buffer | ) | const |
Collects all unique geometry types from descendants into the provided set.
| [in] | buffer | The set to populate with geometry types. |
|
nodiscard |
Returns the directly assigned layer model.
References Model().
Referenced by SetLayerCommand::execute().
|
nodiscard |
Returns the translated display name for this model.
Referenced by BuildActionProgramLogic::createButton().
|
nodiscard |
Returns the full display name path from root to this model.
| [in] | seperator | The separator string between path segments (default ":"). |
|
inlinenodiscard |
Checks whether a model property contains a given C-string substring.
| [in] | property | The NDPN property to search within. |
| [in] | value | The C-string substring to search for. |
| [in] | ignorcase | Whether the search should be case-insensitive. |
Definition at line 493 of file Model.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
|
inlinenodiscard |
Checks whether a model property contains a given substring.
| [in] | property | The NDPN property to search within. |
| [in] | value | The substring to search for. |
| [in] | ignorcase | Whether the search should be case-insensitive. |
Definition at line 481 of file Model.h.
References DesignInfo::m_base, and DesignInfo::m_design_index.
| void Model::ensureTangentSpace | ( | bool | ensure_tan, |
| bool | ensure_bitan ) |
Ensures that tangent and/or bitangent data exists, calculating if needed.
| [in] | ensure_tan | Whether to ensure tangent data exists. |
| [in] | ensure_bitan | Whether to ensure bitangent data exists. |
| void Model::ensureVisibleChildren | ( | uint04 | count | ) |
Hides children whos child index is greater than size, or creates/shows children if needed such that there is exactly a given number of visible children for this model.
This method is optimized for visuals where the number of children is constantly changing.
| count | The number of visible children this model should have. |
| ModelBuffer Model::explodeModel | ( | ) |
Explodes this model, promoting its children to siblings in the parent.
|
nodiscard |
Checks whether this model is excluded from export operations.
Referenced by FactoryModelFilters::FilterGeometryModels(), FactoryModelFilters::FilterGeometryModels(), FactoryModelFilters::FilterTypeModels(), FactoryModelFilters::FilterTypeModels(), and FactoryModelFilters::FilterTypeModels().
|
nodiscard |
|
nodiscard |
|
protected |
Returns the DesignObjectBase used for geometry storage.
|
nodiscard |
Returns the greatest modified time of this model and all ancestors.
| [in] | include_self | Whether to include this model's own modified time. |
| [in] | include_layer | Whether to include the layer's modified time. |
Returns the local bounding box of this model.
Returns the bounding box of all visible descendants.
Referenced by GravityIntersection::FindGravityPoints().
Returns the child model at the given child slot index.
| [in] | child | The child slot index. |
References Model().
Referenced by MadgwickSimulator::referenceModel(), MadgwickSimulator::referenceTransformModel(), StreetInfo::speedLimit(), StreetInfo::streetName(), StreetInfo::surfaceCondition(), and StreetInfo::surfaceType().
|
nodiscard |
Returns this model's index within its parent's child list.
Returns the database index of the child at the given slot.
| [in] | child | The child slot index. |
Referenced by BuildActionProgramLogic::executeMenuItems().
Returns the database indices of all direct children.
|
nodiscard |
Returns this model's index within its parent's layer child list.
|
nodiscard |
Returns a buffer containing all direct children of this model.
Referenced by FactoryModelFilters::FilterGeometryModels(), and FactoryModelFilters::FilterGeometryModels().
| void Model::getChildren | ( | ModelBuffer & | children | ) | const |
Appends all direct children of this model to the provided buffer.
| [in] | children | The buffer to populate with children. |
|
nodiscard |
Returns all direct children whose name matches the given string.
| [in] | name | The name to filter by. |
|
nodiscard |
Returns all direct children whose type matches any of the given strings.
| [in] | type | A buffer of type identifiers to filter by. |
|
nodiscard |
Returns all direct children whose type matches the given string.
| [in] | type | The type identifier to filter by. |
Referenced by getTypeChildren(), and CustomerDevice::passwords().
Returns the UUIDs of all direct children.
|
nodiscard |
Returns model-geometry pairs used for clipping operations.
Returns the fully composed local-to-global transform matrix for this model.
Referenced by GravityIntersection::FindGravityPoints().
|
nodiscard |
Returns all descendant models recursively.
| [in] | include_deleted | Whether to include deleted descendants. |
| [in] | local_only | Whether to restrict to the local database only. |
| void Model::getDescendants | ( | ModelBuffer & | buffer, |
| bool | include_deleted = false, | ||
| bool | local_only = false ) const |
Appends all descendant models recursively to the provided buffer.
| [in] | buffer | The buffer to populate. |
| [in] | include_deleted | Whether to include deleted descendants. |
| [in] | local_only | Whether to restrict to the local database only. |
|
nodiscard |
Recursively searches all descendants for models matching the given name.
| [in] | name | The name to search for. |
| [in] | max_count | Maximum number of results to return. |
|
nodiscard |
Recursively searches all descendants for models matching both name and type.
| [in] | name | The name to search for. |
| [in] | type | The type identifier to filter by. |
| [in] | max_count | Maximum number of results to return. |
|
nodiscard |
Recursively searches all descendants for models matching the given type.
| [in] | type | The type identifier to filter by. |
| [in] | max_count | Maximum number of results to return. |
Referenced by FactoryModelFilters::FilterTypeModels(), FactoryModelFilters::FilterTypeModels(), getTypeDescendants(), and ModelTileTable::setTarget().
|
nodiscard |
Returns the greatest modified time of this model and all descendants.
| [in] | includself | Whether to include this model's own modified time. |
|
nodiscard |
Returns the database index of the directly assigned layer.
Returns the effect at the specified child index.
| [in] | index | The child effect index (default 0). |
References DesignObject::index().
|
nodiscard |
Returns all direct child effects of this model.
|
nodiscard |
Returns all descendant effects recursively.
Returns the database index of the effect at the given child slot.
| [in] | child_index | The child slot index (default 0). |
Returns a model from the family tree (ancestors + descendants) by flat index.
| [in] | index | The flat index into the family tree. |
References Model(), and DesignObject::index().
|
nodiscard |
Returns the geometry attached to this model.
|
nodiscard |
Recursively collects all descendant geometries.
| [in] | remove_redundant | Whether to remove duplicate geometry references. |
| [in] | max_count | Maximum number of geometries to collect. |
|
nodiscard |
Returns the database index of the geometry associated with this model.
|
nodiscard |
Returns the layer model assigned to this model (direct or inherited).
References Model().
Referenced by VisibleCommand::execute().
|
nodiscard |
Returns the material assigned to this model.
|
nodiscard |
Recursively collects all descendant materials.
| [in] | local_only | Whether to restrict to the local database only. |
| void Model::getMaterialDescendants | ( | MaterialBuffer & | materials, |
| bool | local_only = false ) const |
Appends all descendant materials to the provided buffer.
| [in] | materials | The buffer to populate. |
| [in] | local_only | Whether to restrict to the local database only. |
Appends all descendant materials to the provided set (deduplicating).
| [in] | materials | The set to populate. |
| [in] | local_only | Whether to restrict to the local database only. |
|
nodiscard |
Returns descendant materials filtered by name.
| [in] | name | The name to search for. |
| [in] | max_count | Maximum number of results. |
|
nodiscard |
Returns the database index of the material assigned to this model.
|
nodiscard |
Returns the material mode determining how materials are resolved for this model.
|
nodiscard |
Returns the icon identifier string for this model's type.
|
nodiscard |
Returns the number of effects attached to this model.
|
nodiscard |
Returns the parent model of this model.
References Model().
Referenced by BuildActionProgramLogic::addMenuItems(), VisibleCommand::execute(), BuildActionProgramLogic::executeMenuItems(), ModelTileTable::init(), and DesignObjectResourceCache::setModelToDefaults().
|
nodiscard |
Returns the database index of this model's parent.
Returns the parent's transformation matrix as seen by this model.
|
nodiscard |
|
nodiscard |
Returns the root material resolved through the hierarchy.
|
nodiscard |
Returns the ancestor model that determines the root material for this model.
References Model().
Referenced by parentBase().
|
nodiscard |
Returns all effects in the scene database.
|
nodiscard |
Returns all geometries in the scene database.
Returns a scene geometry by database index.
| [in] | index | The database index of the geometry. |
References DesignObject::index().
|
nodiscard |
Returns all layer models in the scene.
| [in] | include_deleted | Whether to include deleted layers. |
Returns a scene material by database index.
| [in] | index | The database index of the material. |
References DesignObject::index().
|
nodiscard |
Returns all materials in the scene database.
|
nodiscard |
Returns all models in the scene database.
| [in] | include_deleted | Whether to include deleted models. |
| [in] | local_only | Whether to restrict to the local database only. |
|
nodiscard |
Returns scene models filtered by name.
| [in] | name | The name to filter by. |
| [in] | max_count | Maximum number of results. |
| [in] | includdeleted | Whether to include deleted models. |
|
nodiscard |
Returns scene models filtered by type.
| [in] | type | The type identifier to filter by. |
| [in] | max_count | Maximum number of results. |
| [in] | includdeleted | Whether to include deleted models. |
Returns the selection-specific bounding box in local space.
|
inlinenodiscard |
Returns children of a specific type, cast to the requested derived type.
| [in] | type | The type identifier to filter by. |
Definition at line 770 of file Model.h.
References Buffer< t_type, t_memory_manager >::add(), getChildrenByType(), and type.
Referenced by Customer::addresses(), Customer::jobs(), and Customer::phoneNumbers().
|
inlinenodiscard |
Recursively searches descendants for models of a specific type, cast to a derived type.
| [in] | type | The type identifier to filter by. |
Definition at line 802 of file Model.h.
References Buffer< t_type, t_memory_manager >::add(), getDescendantsByType(), and type.
Referenced by FactoryModelFilters::FilterTypeModels().
Returns the global bounding box of this model (including transform).
Returns the center of rotation in global coordinates.
Returns the global selection bounding box.
|
nodiscard |
Checks whether this model has a child at the given slot.
| [in] | child_index | The child slot to check (default 0). |
| void Model::hasDescendants | ( | bool & | has_point, |
| bool & | has_line, | ||
| bool & | has_mesh, | ||
| bool | only_user_objects ) const |
Checks which types of geometry primitives exist among descendants.
|
nodiscard |
Checks whether a given model is a descendant of this model.
| [in] | model | The model to search for. |
References Model().
|
nodiscard |
|
nodiscard |
Checks whether this model has a directly assigned layer (not inherited).
Referenced by VisibleCommand::execute().
|
nodiscard |
Checks whether an effect exists at the given child index.
| [in] | index | The effect index to check (default 0). |
References DesignObject::index().
|
nodiscard |
Checks whether this model currently has focus.
|
nodiscard |
Checks whether any descendant has geometry data.
|
nodiscard |
Checks whether the geometry has holes (missing primitives) for a given property.
| [in] | property | The primitive property to check for holes. |
|
nodiscard |
Checks whether this model has a layer (directly or inherited).
|
nodiscard |
Checks whether a root material exists through the layer hierarchy.
|
nodiscard |
Checks whether any descendant has linear (line/polyline) geometry.
|
nodiscard |
Checks whether this model has a material assigned.
|
nodiscard |
Checks whether any descendant has mesh (triangle) geometry.
|
nodiscard |
Checks whether any descendant has point geometry.
|
nodiscard |
Checks whether a root material can be resolved through the hierarchy.
|
nodiscard |
Checks whether any descendant of this model is selected.
|
nodiscard |
Returns the cached inherited flags vector for this model.
|
nodiscard |
Computes inherited flags without using the cache.
| [in] | complete_cache_ignore | If true, ignores all cached values in the entire hierarchy. |
|
nodiscard |
Computes inherited personal flags without using the cache.
|
nodiscard |
Checks whether this model is owned by the application (not user-created).
Referenced by FactoryModelFilters::FilterGeometryModels(), and FactoryModelFilters::FilterGeometryModels().
|
nodiscard |
Checks whether this model has been deleted.
|
nodiscard |
Checks whether this model is a layer definition.
|
nodiscard |
Checks whether this model is locked against editing.
|
nodiscard |
Checks whether this model represents a scene root node.
|
nodiscard |
Checks whether this model is currently selected.
|
nodiscard |
Checks whether this model is visible in the model tree view.
|
inlinenodiscard |
Checks whether the model's type matches any type in the given buffer.
| [in] | types | A buffer of type identifiers to check against. |
Definition at line 510 of file Model.h.
References DesignObject::is().
|
nodiscard |
Checks whether this model is visible (accounting for inherited visibility).
Referenced by VulkanRenderObject::ModelProperties::ModelProperties(), and VisibleCommand::execute().
|
protected |
Returns the DesignObjectBase used for material storage.
| void Model::overrideMaterialDescendants | ( | MaterialMode | override_desc | ) |
Overrides material mode for all descendants.
| [in] | override_desc | The MaterialMode to apply to all descendants. |
|
protected |
Returns the DesignObjectBase used for parent model storage.
References Model(), and getRootMaterialModel().
|
nodiscard |
Returns the parent matrix flags for this model.
Returns the column mapping parent indices to child index lists.
|
nodiscard |
Returns the cached personal descended flags.
|
nodiscard |
Returns the personal inherited flags from the cache.
|
static |
Reduces a collection of models to only root-level models (removing any that are descendants of others in the set), filtered by a user-provided predicate.
| [in] | children | The full set of models to reduce. |
| [in] | filter | A predicate function that returns true if a model should be kept, given the model and the full set. |
References Model().
Referenced by FactoryModelFilters::FilterGeometryModels(), and FactoryModelFilters::FilterGeometryModels().
| void Model::removeChild | ( | const Model & | model | ) |
Removes a specific child model from this model's child list.
| [in] | model | The child model to remove. |
References Model().
Referenced by DesignObjectResourceCache::setModelToDefaults().
Removes duplicate vertices from all descendant geometries.
| [in] | epsilon | The distance threshold for considering vertices as duplicates. |
| [in] | lock | Lock pointer for thread safety. |
| [in] | log | Optional info pipe for progress logging. |
Restores a previously deleted model under a specific parent.
| [in] | parent | The parent model to restore under. |
| [in] | index | The child slot index to restore into (Invalid for append). |
References Model(), and DesignObject::index().
| void Model::setChildApplicationConstructed | ( | const StringView & | database_name = StringView() | ) |
Sets the child database to an application-constructed database by name.
| [in] | database_name | The name of the database to use. |
| void Model::setChildApplicationConstructed | ( | DesignObjectBase * | base | ) |
Sets the child database to use an application-constructed DesignObjectBase.
| [in] | base | The DesignObjectBase to use for child storage. |
References DesignObject::base().
| void Model::setChildEffectSize | ( | uint04 | child_size | ) |
Sets the number of child effect slots for this model.
| [in] | child_size | The number of effect slots. |
Sets the database index for a specific child slot.
| [in] | child | The child slot position. |
| [in] | id | The database index to assign to that slot. |
Sets the effect database index at a given sub-index.
| [in] | material_index | The effect database index to assign. |
| [in] | sub_index | The effect slot (default 0). |
| void Model::setGeometryApplicationConstructed | ( | const StringView & | database_name = StringView() | ) |
Sets the geometry database to an application-constructed database by name.
| [in] | database_name | The name of the database to use. |
| void Model::setGeometryChild | ( | Geometry & | geo | ) |
Sets the geometry child of this model to an existing Geometry object.
| [in] | geo | The geometry to attach. |
Referenced by DesignObjectResourceCache::createGeometry().
| void Model::setGeometryIndex | ( | uint04 | geo_index | ) |
Sets the geometry database index for this model.
| [in] | geo_index | The geometry database index. |
| void Model::setIsLayer | ( | bool | is_layer | ) |
Marks or unmarks this model as a layer definition.
| [in] | is_layer | Whether this model should be a layer. |
| void Model::setLayer | ( | Model | layer | ) |
Assigns this model to a specific layer.
| [in] | layer | The layer model to assign. |
References Model().
Referenced by SetLayerCommand::execute().
| void Model::setMaterial | ( | const Material & | material | ) |
Assigns a material to this model.
| [in] | material | The material to assign. |
| void Model::setMaterialApplicationConstructed | ( | const StringView & | database_name = StringView() | ) |
Sets the material database to an application-constructed database by name.
| [in] | database_name | The name of the database to use. |
| void Model::setMaterialMode | ( | MaterialMode | option | ) |
Sets the model's local transformation matrix, replacing the current one.
| [in] | transform | The new transformation matrix. |
| bool Model::setModelVisible | ( | bool | is_visible | ) |
Sets the visibility of this model.
| [in] | is_visible | Whether the model should be visible. |
| void Model::setNormalMode | ( | NormalMode | mode, |
| Angle< fltp08 > | smoothing_angle, | ||
| InfoPipe * | log ) |
Sets the normal mode and recalculates normals with progress logging.
| [in] | mode | The normal calculation mode. |
| [in] | smoothing_angle | The angle threshold for smooth normal blending. |
| [in] | log | Info pipe for progress output. |
| void Model::setOrientation | ( | const Vector< 3, Angle< fltp08 > > & | new_orientation, |
| const void * | lock = nullptr ) |
Sets the orientation of this model using floating-point angles.
| [in] | new_orientation | The new orientation as Euler angles (X, Y, Z). |
| [in] | lock | Optional lock pointer for thread safety. |
| void Model::setOrientation | ( | const Vector< 3, Angle< sint04 > > & | new_orientation, |
| const void * | lock = nullptr ) |
Sets the orientation of this model using integer-precision angles.
| [in] | new_orientation | The new orientation as Euler angles (X, Y, Z). |
| [in] | lock | Optional lock pointer for thread safety. |
| void Model::setParentMatrixFlag | ( | ParentMatrixFlags | flag, |
| bool | value ) |
Sets or clears a specific parent matrix flag.
| [in] | flag | The flag to modify. |
| [in] | value | Whether to set (true) or clear (false) the flag. |
| void Model::setParentMatrixFlags | ( | BitFlag | flags | ) |
Sets the parent matrix flags controlling which parent transform components to inherit.
| [in] | flags | The BitFlag value to set. |
| void Model::setWindingMode | ( | WindingMode | mode | ) |
Sets the winding mode for all descendant geometries.
| [in] | mode | The winding mode (clockwise, counter-clockwise, etc.). |
Returns the size (extents) of the model's bounding box.
Referenced by RealSensePositionSensor::locationAt(), Connection::peek(), VncDevice::postKeyEvent(), Connection::rx(), Connection::rx(), Connection::rx(), Connection::rx(), Connection::rxLine(), PaperView::setDotsPerMeter(), PaperView::setInnerPaperSize(), PaperView::setPaperSize(), Camera::setReferenceSize(), setSize(), Camera::setWindowSize(), and Connection::tx().
Swaps the positions of two children in the child list.
| [in] | a | Index of the first child to swap. |
| [in] | b | Index of the second child to swap. |
| void Model::updateAscGeometryTime | ( | const Time & | time, |
| bool | include_self ) |
Updates the geometry-modified timestamp for this model and all ancestors.
| [in] | time | The timestamp to propagate. |
| [in] | include_self | Whether to include this model in the update. |
| void Model::updateAscTime | ( | const Time & | time, |
| bool | includself ) |
Updates the modified timestamp for this model and all ancestors.
| [in] | time | The timestamp to propagate. |
| [in] | includself | Whether to include this model in the update. |
| void Model::updateDescGeometryTime | ( | const Time & | time, |
| bool | include_self ) |
Updates the geometry-modified timestamp for this model and all descendants.
| [in] | time | The timestamp to propagate. |
| [in] | include_self | Whether to include this model in the update. |
| void Model::updateDescTime | ( | const Time & | time, |
| bool | include_self ) |
Updates the modified timestamp for this model and all descendants.
| [in] | time | The timestamp to propagate. |
| [in] | include_self | Whether to include this model in the update. |
| void Model::updateFrom | ( | const Model & | model, |
| bool | check_resources ) |
Updates this model's properties from another model, optionally checking resources.
| [in] | model | The source model to update from. |
| [in] | check_resources | Whether to verify and update associated resources. |
References Model().
| void Model::updateGeometryTime | ( | Time | time = Time::SystemTime() | ) |
Updates the geometry-modified timestamp for this model.
| [in] | time | The timestamp to set (defaults to current system time). |
References Time::SystemTime().
| void Model::updateInheritedFlagsCache | ( | bool | force_update_all = false, |
| bool | update_personal_flags = false ) |
Recalculates and caches the inherited flags for this model.
| [in] | force_update_all | Whether to force recalculation even if cache appears valid. |
| [in] | update_personal_flags | Whether to also update personal inherited flags. |
| void Model::updateModelTransform | ( | const Matrix< fltp08 > & | transform, |
| const void * | lock = nullptr ) |
Applies a delta transform to the current model transform.
| [in] | transform | The transform matrix to compose with the current transform. |
| [in] | lock | Optional lock pointer for thread safety. |
| void Model::updateModifiedTime | ( | Time | time = Time::SystemTime() | ) |
Updates the modified timestamp for this model.
| [in] | time | The timestamp to set (defaults to current system time). |
References Time::SystemTime().
Referenced by NewModelCommand::execute(), SetLayerCommand::execute(), and BuildActionProgramLogic::executeMenuItems().
| void Model::updateVisibleRecursive | ( | bool | is_visible | ) |
Recursively updates visibility for this model and all descendants.
| [in] | is_visible | The visibility state to propagate. |
| void Model::validate | ( | bool | validate_children = true | ) | const |
Validates this model's internal state for consistency.
| [in] | validate_children | Whether to also validate all child models. |
|
nodiscard |
Returns the total number of vertices across all descendant geometries.
|
nodiscard |
Returns the total number of visible vertices across all descendant geometries.