本文整理汇总了C++中Component::ApplyAttributes方法的典型用法代码示例。如果您正苦于以下问题:C++ Component::ApplyAttributes方法的具体用法?C++ Component::ApplyAttributes怎么用?C++ Component::ApplyAttributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Component
的用法示例。
在下文中一共展示了Component::ApplyAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CloneComponent
Component* Node::CloneComponent(Component* component, CreateMode mode, unsigned id)
{
if (!component)
{
LOGERROR("Null source component given for CloneComponent");
return 0;
}
Component* cloneComponent = SafeCreateComponent(component->GetTypeName(), component->GetType(), mode, 0);
if (!cloneComponent)
{
LOGERROR("Could not clone component " + component->GetTypeName());
return 0;
}
const Vector<AttributeInfo>* compAttributes = component->GetAttributes();
const Vector<AttributeInfo>* cloneAttributes = cloneComponent->GetAttributes();
if (compAttributes)
{
for (unsigned i = 0; i < compAttributes->Size() && i < cloneAttributes->Size(); ++i)
{
const AttributeInfo& attr = compAttributes->At(i);
const AttributeInfo& cloneAttr = cloneAttributes->At(i);
if (attr.mode_ & AM_FILE)
{
Variant value;
component->OnGetAttribute(attr, value);
// Note: when eg. a ScriptInstance component is cloned, its script object attributes are unique and therefore we
// can not simply refer to the source component's AttributeInfo
cloneComponent->OnSetAttribute(cloneAttr, value);
}
}
cloneComponent->ApplyAttributes();
}
return cloneComponent;
}