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().
const DescriptionElementRef element = DescriptionElementClass().Create()
iferr_return;
element.SetAttributeCount(2);
maxon::DataDescription description;
maxon::DataDictionary settings;
description = element.GetObjectDescription(category, language, dataRef)
iferr_return;
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:1179
Result< typename std::conditional< GetCollectionKind< T >::value==COLLECTION_KIND::ARRAY, T, typename ByValueParam< T >::type >::type > Get() const
Definition: datatypebase.h:1384
Definition: apibaseid.h:251
Definition: datatypelib.h:27
const Id & Get() const
Definition: datatypelib.h:137
const Id & Get() const
Definition: apibaseid.h:183
static MAXON_METHOD LanguageRef GetDefaultLanguage()
Result< DataDictionaryObjectRef > CreateDataDictionaryReferenceObject(DataDictionary *reference)
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:176
const Id DATADESCRIPTION_CATEGORY_DATA
Definition: datadescriptiondatabase.h:15
#define iferr_return
Definition: resultbase.h:1465
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:
{
_count = count;
}
{
maxon::DataDescription description = super.GetObjectDescription(category, language, objectData)
iferr_return;
{
{
const maxon::String identifier(
"net.maxonexample.class.descriptionElement.dynamic_"_s + number);
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:
};
Definition: objectbase.h:2632
Result< void > Init(const Id &i)
Definition: resultbase.h:766
Definition: string.h:1226
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:190
@ NORMAL
Samples the surface as the user moves over it the SculptObject and returns a new hit point and normal...
#define MAXON_COMPONENT(KIND,...)
Definition: objectbase.h:2193
#define MAXON_METHOD
Definition: interfacebase.h:942
#define iferr_scope
Definition: resultbase.h:1374
Further Reading