NDEVR
API Documentation
PropertyInterface< NDPN >

Provides typed access to NDPN model properties via get/set on DesignInfo. More...

Inheritance diagram for PropertyInterface< NDPN >:
[legend]
Collaboration diagram for PropertyInterface< NDPN >:
[legend]

Static Public Member Functions

static constexpr TableColumncolumn (const DesignInfo *object, NDPN property)
 Returns the TableColumn pointer for a given NDPN property.
template<NDPN t_property>
static decltype(auto) Get (const DesignInfo *object)
 Retrieves a model property at compile time with optimized direct member access.
template<NDPN t_property, class t_valutype>
static decltype(auto) Get (const DesignInfo *object)
 Retrieves a model property value at compile time by template property enum.
template<class t_valutype>
static decltype(auto) Get (const DesignInfo *object, NDPN property)
 Retrieves a model property value at runtime by property enum and requested type.
static uint04 index (const DesignInfo *object, NDPN property)
 Retrieves the row index for a given property on the specified design object.
static bool IsSame (const DesignInfo *object, NDPN property, const StringView &value)
 Checks whether the stored property value matches a given string.
template<NDPN t_property, class t_valutype>
static void Set (DesignInfo *object, const t_valutype &value)
 Sets a model property value at compile time with optimized direct member access.
template<class t_valutype>
static void Set (DesignInfo *object, NDPN property, const t_valutype &value)
 Sets a model property value at runtime by property enum.

Detailed Description

Provides typed access to NDPN model properties via get/set on DesignInfo.


Offers both runtime (NDPN parameter) and compile-time (template NDPN parameter) property access. Compile-time versions use optimized direct member access for frequently used properties.

Definition at line 123 of file Model.h.

Member Function Documentation

◆ column()

constexpr TableColumn * PropertyInterface< NDPN >::column ( const DesignInfo * object,
NDPN property )
inlinestaticconstexpr

Returns the TableColumn pointer for a given NDPN property.


Parameters
[in]objectThe design info object.
[in]propertyThe property whose column to retrieve.
Returns
Pointer to the corresponding TableColumn.

Definition at line 201 of file Model.h.

◆ Get() [1/3]

template<NDPN t_property>
decltype(auto) PropertyInterface< NDPN >::Get ( const DesignInfo * object)
inlinestatic

◆ Get() [2/3]

template<NDPN t_property, class t_valutype>
decltype(auto) PropertyInterface< NDPN >::Get ( const DesignInfo * object)
inlinestatic

Retrieves a model property value at compile time by template property enum.


Parameters
[in]objectThe design info object to read from.
Returns
The property value cast to the requested type.

Definition at line 143 of file Model.h.

References PropertyInterface< t_property_enum >::column(), and TableColumn::get().

◆ Get() [3/3]

template<class t_valutype>
decltype(auto) PropertyInterface< NDPN >::Get ( const DesignInfo * object,
NDPN property )
inlinestatic

Retrieves a model property value at runtime by property enum and requested type.


Parameters
[in]objectThe design info object to read from.
[in]propertyThe NDPN property to retrieve.
Returns
The property value cast to the requested type.

Definition at line 133 of file Model.h.

References PropertyInterface< t_property_enum >::column(), and TableColumn::get().

◆ index()

uint04 PropertyInterface< NDPN >::index ( const DesignInfo * object,
NDPN property )
inlinestatic

Retrieves the row index for a given property on the specified design object.


Parameters
[in]objectThe design object to query.
[in]propertyThe property enum value.
Returns
The row index into the property column.

Definition at line 144 of file DesignProperties.h.

◆ IsSame()

bool PropertyInterface< NDPN >::IsSame ( const DesignInfo * object,
NDPN property,
const StringView & value )
inlinestatic

Checks whether the stored property value matches a given string.


Parameters
[in]objectThe design info object.
[in]propertyThe property to compare.
[in]valueThe string value to compare against.
Returns
True if the stored value matches the given string.

Definition at line 213 of file Model.h.

References PropertyInterface< t_property_enum >::column(), TableColumn::isSame(), and DesignInfo::m_design_index.

◆ Set() [1/2]

template<NDPN t_property, class t_valutype>
void PropertyInterface< NDPN >::Set ( DesignInfo * object,
const t_valutype & value )
inlinestatic

Sets a model property value at compile time with optimized direct member access.


For frequently accessed properties (type, visible_box, global_bounds, transforms, pointers, inherited flags), this bypasses the generic column lookup and writes directly to the DesignObjectBase member arrays for better performance.

Parameters
[in]objectThe design info object to write to.
[in]valueThe value to assign.

Definition at line 168 of file Model.h.

References DesignObjectBase::child_base_ptr, child_base_ptr, PropertyInterface< t_property_enum >::column(), DesignObjectBase::complete_transform, complete_transform, DesignObjectBase::geometry_base_ptr, geometry_base_ptr, DesignObjectBase::global_bounds, global_bounds, DesignObjectBase::global_selection_bounds, global_selection_bounds, DesignObjectBase::inherited_flags, inherited_flags, DesignInfo::m_base, DesignInfo::m_design_index, DesignObjectBase::material_base_ptr, material_base_ptr, DesignObjectBase::model_type, DesignObjectBase::parent_base_ptr, parent_base_ptr, DesignObjectBase::personal_inherited_flags, personal_inherited_flags, rcast(), TableColumn::set(), type, DesignObjectBase::visible_box, and visible_box.

◆ Set() [2/2]

template<class t_valutype>
void PropertyInterface< NDPN >::Set ( DesignInfo * object,
NDPN property,
const t_valutype & value )
inlinestatic

Sets a model property value at runtime by property enum.


Parameters
[in]objectThe design info object to write to.
[in]propertyThe NDPN property to set.
[in]valueThe value to assign.

Definition at line 154 of file Model.h.

References PropertyInterface< t_property_enum >::column(), DesignInfo::m_design_index, and TableColumn::set().


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