本文整理汇总了C++中Attachment::getType方法的典型用法代码示例。如果您正苦于以下问题:C++ Attachment::getType方法的具体用法?C++ Attachment::getType怎么用?C++ Attachment::getType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Attachment
的用法示例。
在下文中一共展示了Attachment::getType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleAttachmentMapElementPreWrite
/*! Callback called for each element in an AttachmentMap (this is used by
preWriteAttachmentMapField).
*/
void OSBCommonElement::handleAttachmentMapElementPreWrite(
FieldContainer *refedFC)
{
OSG_OSB_LOG(("OSBCommonElement::handleAttachmentMapElementPreWrite\n"));
if(refedFC == NULL)
return;
Attachment *refedAtt = dynamic_cast<Attachment *>(refedFC);
// skip attachments marked as 'internal'
if(refedAtt == NULL ||
refedAtt->getSFInternal()->getValue() == true )
{
return;
}
OSBRootElement *root = editRoot();
UInt32 refedId = refedAtt->getId ();
const std::string &typeName = refedAtt->getType().getName();
// only schedule a container once
if(root->getIdSet().count(refedId) > 0)
return;
OSBElementBase *elem = OSBElementFactory::the()->acquire(typeName, root);
root->editIdSet ().insert (refedId);
root->editElementList().push_back(elem );
elem->setContainer(refedAtt);
elem->preWrite (refedAtt);
}
示例2: if
/*! Fills the "pointer field" described by \a ptrField with the correct
pointers.
\param[in] ptrField Field to fill.
*/
void
OSBRootElement::mapPtrField(const PtrFieldInfo &ptrField)
{
OSG_OSB_LOG(("OSBRootElement::mapPtrField\n"));
PtrFieldInfo::PtrIdStoreConstIt idIt = ptrField.beginIdStore();
PtrFieldInfo::PtrIdStoreConstIt idEnd = ptrField.endIdStore ();
PtrFieldInfo::BindingStoreConstIt bindingIt = ptrField.beginBindingStore();
PtrFieldInfo::BindingStoreConstIt bindingEnd = ptrField.endBindingStore ();
const FieldContainerIdMap &idMap = getIdMap();
FieldContainerIdMapConstIt idMapIt;
FieldContainerIdMapConstIt idMapEnd = idMap.end();
if(bindingIt != bindingEnd)
{
if(ptrField.getHandledField() == true)
{
FieldContainer *fieldCon = ptrField.getContainer();
UInt32 fieldId = ptrField.getFieldId();
EditFieldHandlePtr fHandle = fieldCon->editField(fieldId);
EditMapFieldHandlePtr sfMapField =
boost::dynamic_pointer_cast<EditMapFieldHandle>(fHandle);
if(sfMapField == NULL || sfMapField->isValid() == false)
return;
sfMapField->fillFrom(ptrField.getBindingStore(),
ptrField.getIdStore (),
idMap);
}
else
{
Attachment *att = NULL;
AttachmentContainer *attCon =
dynamic_cast<AttachmentContainer *>(ptrField.getContainer());
for(; (idIt != idEnd) && (bindingIt != bindingEnd); ++idIt,
++bindingIt)
{
if(*idIt != 0)
{
idMapIt = idMap.find(*idIt);
if(idMapIt != idMapEnd)
{
att = dynamic_cast<Attachment *>(
FieldContainerFactory::the()->getContainer(
idMapIt->second));
}
else
{
FWARNING(("OSBRootElement::mapPtrField: could not find "
"FieldContainer with id [%u]\n", *idIt));
att = NULL;
}
}
else
{
att = NULL;
}
if(att != NULL)
{
OSG_OSB_LOG(("OSBRootElement::mapPtrField: adding "
"attchment [%u] [%u]\n",
att->getType().getGroupId(), *bindingIt));
}
attCon->addAttachment(att, *bindingIt);
}
}
}
else
{
FieldContainer *fc = NULL;
FieldContainer *fieldCon = ptrField.getContainer();
UInt32 fieldId = ptrField.getFieldId();
EditFieldHandlePtr fHandle = fieldCon->editField(fieldId);
FieldContainerPtrSFieldBase::EditHandlePtr pSFHandle =
boost::dynamic_pointer_cast<
FieldContainerPtrSFieldBase::EditHandle>(fHandle);
FieldContainerPtrMFieldBase::EditHandlePtr pMFHandle =
boost::dynamic_pointer_cast<
FieldContainerPtrMFieldBase::EditHandle>(fHandle);
for(; idIt != idEnd; ++idIt)
{
if(*idIt != 0)
//.........这里部分代码省略.........