About
maxon::DataDescriptionObjectInterface is an interface that can be used as a base for custom interfaces. It allows to add data descriptions to the reference object.
Interface
The maxon::DataDescriptionObjectInterface defines the maxon::DataDescriptionObjectInterface::GetObjectDescription() function. This function can be used to access the description from the given object. The needed argument can be constructed with maxon::CreateDataDictionaryReferenceObject().
maxon::DataDescription description;
maxon::DataDictionary settings;
const auto attributes = description.GetEntries()
iferr_return;
for (const auto& attribute : attributes)
{
DiagnosticOutput(
"Attribute \"@\", of type @. Default value: @", ID, dataType, defaultData);
}
@ DEFAULTVALUE
Dummy value for the default value GeData constructor.
Definition: c4d_gedata.h:65
Definition: datatypebase.h:1229
Result< typename std::conditional< GetCollectionKind< T >::value==COLLECTION_KIND::ARRAY, T, typename ByValueParam< T >::type >::type > Get() const
Definition: datatypebase.h:1389
Definition: apibaseid.h:243
Definition: datatypelib.h:32
const Id & Get() const
Definition: datatypelib.h:165
const Id & Get() const
Definition: apibaseid.h:159
static MAXON_METHOD LanguageRef GetDefaultLanguage()
Result< DataDictionaryObjectRef > CreateDataDictionaryReferenceObject(DataDictionary *reference)
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:170
static constexpr LiteralId DATADESCRIPTION_CATEGORY_DATA
Definition: datadescriptiondatabase.h:15
#define iferr_return
Definition: resultbase.h:1524
PyObject * element
Definition: unicodeobject.h:1016
Another function is maxon::DataDescriptionObjectInterface::GetObjectName(), which returns the name of the objects (maxon::OBJECT::BASE::NAME) for the given language.
Implementation
A custom interface can be based on maxon::DataDescriptionObjectInterface. The resulting reference object will store a data description. The default implementation of maxon::DataDescriptionObjectInterface is maxon::DataDescriptionObjectClass.
A custom implementation can re-implement maxon::DataDescriptionObjectInterface::GetObjectDescription() to modify the returned description.
class DescriptionElementImpl :
public maxon::Component<DescriptionElementImpl, DescriptionElementInterface>
{
public:
{
}
{
maxon::DataDescription description = super.GetObjectDescription(category, language, objectData)
iferr_return;
{
{
const maxon::Id stringDataType = maxon::GetDataType<maxon::String>()->GetId();
maxon::DataDictionary dynamicAttribute;
dynamicAttribute.Set(maxon::DESCRIPTION::BASE::IDENTIFIER, dynamicID)
iferr_return;
dynamicAttribute.Set(maxon::DESCRIPTION::DATA::BASE::DATATYPE, stringDataType)
iferr_return;
}
}
return description;
}
private:
};
Py_ssize_t i
Definition: abstract.h:645
Py_ssize_t count
Definition: abstract.h:640
PyObject * identifier
Definition: asdl.h:5
Definition: objectbase.h:2655
Result< void > Init(const Id &i)
Definition: resultbase.h:766
Definition: string.h:1237
@ NORMAL
Normal Tag morphing.
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:202
#define MAXON_COMPONENT(KIND,...)
Definition: objectbase.h:2212
#define MAXON_METHOD
Definition: interfacebase.h:1012
#define iferr_scope
Definition: resultbase.h:1389
Further Reading