![]() |
ezEngine Release 26.3
|
Base class for properties that represent data members of a class or struct. More...
#include <AbstractProperty.h>

Public Member Functions | |
| ezAbstractMemberProperty (const char *szPropertyName) | |
| Passes the property name through to ezAbstractProperty. | |
| virtual ezPropertyCategory::Enum | GetCategory () const override |
| Returns ezPropertyCategory::Member. | |
| virtual void * | GetPropertyPointer (const void *pInstance) const =0 |
| Returns a pointer to the property data or nullptr. If a valid pointer is returned, that pointer and the information from GetSpecificType() can be used to step deeper into the type (if required). | |
| virtual void | GetValuePtr (const void *pInstance, void *out_pObject) const =0 |
| Writes the value of this property in pInstance to pObject. pObject needs to point to an instance of this property's type. | |
| virtual void | SetValuePtr (void *pInstance, const void *pObject) const =0 |
| Sets the value of pObject to the property in pInstance. pObject needs to point to an instance of this property's type. | |
Public Member Functions inherited from ezAbstractProperty | |
| ezAbstractProperty (const char *szPropertyName) | |
| The constructor must get the name of the property. The string must be a compile-time constant. | |
| const char * | GetPropertyName () const |
| Returns the name of the property. | |
| virtual const ezRTTI * | GetSpecificType () const =0 |
| Returns the type information of the constant property. Use this to cast this property to a specific version of ezTypedConstantProperty. | |
| const ezBitflags< ezPropertyFlags > & | GetFlags () const |
| Returns the flags of the property. | |
| ezAbstractProperty * | AddFlags (ezBitflags< ezPropertyFlags > flags) |
| Adds flags to the property. Returns itself to allow to be called during initialization. | |
| ezAbstractProperty * | AddAttributes (ezPropertyAttribute *pAttrib1, ezPropertyAttribute *pAttrib2=nullptr, ezPropertyAttribute *pAttrib3=nullptr, ezPropertyAttribute *pAttrib4=nullptr, ezPropertyAttribute *pAttrib5=nullptr, ezPropertyAttribute *pAttrib6=nullptr) |
| Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'. | |
| ezArrayPtr< const ezPropertyAttribute *const > | GetAttributes () const |
| Returns the array of property attributes. | |
| template<typename Type > | |
| const Type * | GetAttributeByType () const |
| Returns the first attribute that derives from the given type, or nullptr if nothing is found. | |
Additional Inherited Members | |
Protected Attributes inherited from ezAbstractProperty | |
| ezBitflags< ezPropertyFlags > | m_Flags |
| const char * | m_szPropertyName |
| ezHybridArray< const ezPropertyAttribute *, 2, ezStaticsAllocatorWrapper > | m_Attributes |
Base class for properties that represent data members of a class or struct.
Member properties provide access to object data through getter/setter mechanisms or direct memory access. They support both simple types (int, float) and complex types (classes, structs) with proper type safety.
Access patterns:
Important: If ezPropertyFlags::Pointer is set, you must use GetValuePtr/SetValuePtr instead of casting to ezTypedMemberProperty, because pointer properties have different type semantics.
Performance considerations:
|
inlineoverridevirtual |
Returns ezPropertyCategory::Member.
Implements ezAbstractProperty.
|
pure virtual |
Returns a pointer to the property data or nullptr. If a valid pointer is returned, that pointer and the information from GetSpecificType() can be used to step deeper into the type (if required).
You need to pass the pointer to an object on which you are operating. This function is mostly of interest when the property itself is a compound type (a struct or class). If it is a simple type (int, float, etc.) it doesn't make much sense to retrieve the pointer.
For example GetSpecificType() might return that a property is of type ezVec3. In that case one might either stop and just use the code to handle ezVec3 types, or one might continue and enumerate all sub-properties (x, y and z) as well.
Implemented in ezResourceAccessorProperty< Class, Type >, ezBitflagsAccessorProperty< Class, EnumType, Type >, ezBitflagsMemberProperty< Class, EnumType, Type >, ezEnumAccessorProperty< Class, EnumType, Type >, ezEnumMemberProperty< Class, EnumType, Type >, ezAccessorProperty< Class, Type >, ezMemberProperty< Class, Type >, and ezPhantomMemberProperty.
|
pure virtual |
Writes the value of this property in pInstance to pObject. pObject needs to point to an instance of this property's type.
Implemented in ezAbstractEnumerationProperty, ezTypedMemberProperty< Type >, ezTypedMemberProperty< ezColor >, ezTypedMemberProperty< ezColorGammaUB >, ezTypedMemberProperty< ezStringView >, ezTypedMemberProperty< ezTypeTraits< Type >::NonConstReferenceType >, ezTypedMemberProperty< const char * >, and ezPhantomMemberProperty.
|
pure virtual |
Sets the value of pObject to the property in pInstance. pObject needs to point to an instance of this property's type.
Implemented in ezAbstractEnumerationProperty, ezTypedMemberProperty< Type >, ezTypedMemberProperty< ezColor >, ezTypedMemberProperty< ezColorGammaUB >, ezTypedMemberProperty< ezStringView >, ezTypedMemberProperty< ezTypeTraits< Type >::NonConstReferenceType >, ezTypedMemberProperty< const char * >, and ezPhantomMemberProperty.