NDEVR
API Documentation
PropertyInterface< NDPO >

Specialization of PropertyInterface for the NDPO property enum. More...

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

Static Public Member Functions

static constexpr TableColumncolumn (const DesignInfo *object, NDPO property)
 Retrieves the TableColumn pointer for a given NDPO property.
template<NDPO t_property>
static decltype(auto) Get (const DesignInfo *object)
 Gets the value of a compile-time NDPO property with the type deduced from PropertySpec.
template<NDPO t_property, class t_value_type>
static decltype(auto) Get (const DesignInfo *object)
 Gets the value of a compile-time NDPO property with an explicit value type.
template<class t_value_type>
static decltype(auto) Get (const DesignInfo *object, NDPO property)
 Gets the value of an NDPO property using a runtime property enum.
static uint04 index (const DesignInfo *object, NDPO property)
 Retrieves the row index for a given property on the specified design object.
static bool IsSame (const DesignInfo *object, NDPO property, const StringView &value)
 Checks whether an NDPO property's stored value matches a given string representation.
template<NDPO t_property>
static void Set (DesignInfo *object, const typename PropertySpec< t_property >::type &value)
 Sets the value of a compile-time NDPO property with optimized direct-member access.
template<class t_value_type>
static void Set (DesignInfo *object, NDPO property, const t_value_type &value)
 Sets the value of an NDPO property using a runtime property enum.

Detailed Description

Specialization of PropertyInterface for the NDPO property enum.


Provides optimized Get and Set methods for NDPO properties. The Set methods handle special-case side effects (e.g., propagating transform and visibility changes through the design hierarchy). The compile-time Set overload uses constexpr branching to access optimized direct-member storage paths where available.

Definition at line 325 of file DesignProperties.h.

Member Function Documentation

◆ column()

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

Retrieves the TableColumn pointer for a given NDPO property.


Parameters
[in]objectThe design object to query.
[in]propertyThe NDPO property enum value.
Returns
Pointer to the TableColumn storing the property data.

Definition at line 458 of file DesignProperties.h.

◆ Get() [1/3]

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

Gets the value of a compile-time NDPO property with the type deduced from PropertySpec.


Uses constexpr branching to access optimized direct-member storage paths for commonly accessed properties (guid, name, transform, timestamps, visibility, etc.). Falls back to generic column-based access for other properties.

Template Parameters
t_propertyThe compile-time NDPO property enum value.
Parameters
[in]objectThe design object to query.
Returns
The property value using the type defined in PropertySpec<t_property>.

Definition at line 486 of file DesignProperties.h.

References DesignObjectBase::asc_modified_time, asc_modified_time, DesignObjectBase::bounding_box, bounding_box, PropertyInterface< t_property_enum >::column(), DesignObjectBase::desc_modified_time, desc_modified_time, DesignObjectBase::design_type, design_type, TableColumn::get(), DesignObjectBase::guid, guid, DesignObjectBase::is_deleted, is_deleted, DesignInfo::m_base, DesignInfo::m_index, DesignObjectBase::modified_time, modified_time, DesignObjectBase::name, name, rcast(), DesignObjectBase::spacial_visible, spacial_visible, DesignObjectBase::transform, transform, DesignObjectBase::tree_visible, and tree_visible.

◆ Get() [2/3]

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

Gets the value of a compile-time NDPO property with an explicit value type.


Template Parameters
t_propertyThe compile-time NDPO property enum value.
t_value_typeThe expected return type.
Parameters
[in]objectThe design object to query.
Returns
The property value cast to t_value_type.

Definition at line 349 of file DesignProperties.h.

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

◆ Get() [3/3]

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

Gets the value of an NDPO property using a runtime property enum.


Template Parameters
t_value_typeThe expected return type.
Parameters
[in]objectThe design object to query.
[in]propertyThe NDPO property to read.
Returns
The property value cast to t_value_type.

Definition at line 336 of file DesignProperties.h.

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

Referenced by Set().

◆ index()

uint04 PropertyInterface< NDPO >::index ( const DesignInfo * object,
NDPO 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< NDPO >::IsSame ( const DesignInfo * object,
NDPO property,
const StringView & value )
inlinestatic

Checks whether an NDPO property's stored value matches a given string representation.


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

Definition at line 470 of file DesignProperties.h.

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

◆ Set() [1/2]

template<NDPO t_property>
void PropertyInterface< NDPO >::Set ( DesignInfo * object,
const typename PropertySpec< t_property >::type & value )
inlinestatic

Sets the value of a compile-time NDPO property with optimized direct-member access.


Uses constexpr branching to select the most efficient storage path for each property. Certain properties (e.g., transform, spacial_visible) trigger side-effect propagation. Setting is_deleted directly is disallowed via static_assert.

Template Parameters
t_propertyThe compile-time NDPO property enum value.
Parameters
[in]objectThe design object to modify.
[in]valueThe value to assign, typed according to PropertySpec<t_property>.

Definition at line 397 of file DesignProperties.h.

References asc_modified_time, bounding_box, desc_modified_time, design_type, guid, is_deleted, IsValid(), DesignInfo::m_index, modified_time, name, rcast(), spacial_visible, transform, and tree_visible.

◆ Set() [2/2]

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

Sets the value of an NDPO property using a runtime property enum.


Handles special-case side effects for design_type, spacial_visible, and transform properties. All other properties are set directly on the column.

Template Parameters
t_value_typeThe type of the value to set.
Parameters
[in]objectThe design object to modify.
[in]propertyThe NDPO property to set.
[in]valueThe value to assign.

Definition at line 365 of file DesignProperties.h.

References design_type, Get(), DesignInfo::m_index, spacial_visible, and transform.


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