本文整理汇总了C++中KeyFrame::Load方法的典型用法代码示例。如果您正苦于以下问题:C++ KeyFrame::Load方法的具体用法?C++ KeyFrame::Load怎么用?C++ KeyFrame::Load使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KeyFrame
的用法示例。
在下文中一共展示了KeyFrame::Load方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/**
\brief Loads a new key frame.
\author dcofer
\date 3/24/2011
\param [in,out] oXml The xml of the keyframe to load.
\return Pointer to the new keyframe.
**/
KeyFrame *SimulationRecorder::LoadKeyFrame(CStdXml &oXml)
{
KeyFrame *lpFrame = NULL;
std::string strModuleName, strType;
try
{
oXml.IntoElem(); //Into KeyFrame Element
strModuleName = oXml.GetChildString("ModuleName", "");
strType = oXml.GetChildString("Type");
oXml.OutOfElem(); //OutOf KeyFrame Element
lpFrame = dynamic_cast<KeyFrame *>(m_lpSim->CreateObject(strModuleName, "KeyFrame", strType));
if(!lpFrame)
THROW_TEXT_ERROR(Al_Err_lConvertingClassToType, Al_Err_strConvertingClassToType, "KeyFrame");
lpFrame->SetSystemPointers(m_lpSim, NULL, NULL, NULL, true);
lpFrame->Load(oXml);
Add(lpFrame);
return lpFrame;
}
catch(CStdErrorInfo oError)
{
if(lpFrame) delete lpFrame;
RELAY_ERROR(oError);
return NULL;
}
catch(...)
{
if(lpFrame) delete lpFrame;
THROW_ERROR(Std_Err_lUnspecifiedError, Std_Err_strUnspecifiedError);
return NULL;
}
}
示例2: Load
void Puppet::Load(const std::string &filename, Entity *entity)
{
this->filename = filename;
animations.clear();
// delete parts?
parts.clear();
TiXmlDocument xmlDoc(Assets::GetContentPath() + filename);
if (xmlDoc.LoadFile())
{
/// TextureAtlas
TiXmlElement *xmlTextureAtlas = xmlDoc.FirstChildElement("TextureAtlas");
if (xmlTextureAtlas)
{
textureAtlas = new TextureAtlas();
textureAtlas->Load(xmlTextureAtlas);
}
/// Parts
TiXmlElement *xmlParts = xmlDoc.FirstChildElement("Parts");
if (xmlParts)
{
LoadParts(xmlParts, entity);
}
/// Animations
TiXmlElement *xmlAnimations = xmlDoc.FirstChildElement("Animations");
if (xmlAnimations)
{
/// Animation
TiXmlElement *xmlAnimation = xmlAnimations->FirstChildElement("Animation");
while (xmlAnimation)
{
Animation animation;
XMLFileNode xmlFileNodeKeyFrameAnim(xmlAnimation);
animation.Load(&xmlFileNodeKeyFrameAnim);
/// PartKeyFrames
TiXmlElement *xmlPartKeyFrames = xmlAnimation->FirstChildElement("PartKeyFrames");
while (xmlPartKeyFrames)
{
PartKeyFrames partKeyFrames;
partKeyFrames.SetPuppet(this);
XMLFileNode xmlFileNodeKeyFramePart(xmlPartKeyFrames);
partKeyFrames.Load(&xmlFileNodeKeyFramePart);
/// KeyFrame
TiXmlElement *xmlKeyFrame = xmlPartKeyFrames->FirstChildElement("KeyFrame");
while (xmlKeyFrame)
{
KeyFrame keyFrame;
XMLFileNode xmlFileNodeKeyFrame(xmlKeyFrame);
keyFrame.Load(&xmlFileNodeKeyFrame);
partKeyFrames.AddKeyFrame(keyFrame);
xmlKeyFrame = xmlKeyFrame->NextSiblingElement("KeyFrame");
}
animation.AddPartKeyFrames(partKeyFrames);
xmlPartKeyFrames = xmlPartKeyFrames->NextSiblingElement("PartKeyFrames");
}
animation.RefreshDuration();
animations.push_back(animation);
xmlAnimation = xmlAnimation->NextSiblingElement("Animation");
}
}
}
else
{
Debug::Log("Warning: Could not open puppet file: " + Assets::GetContentPath() + filename);
Debug::Log(" " + std::string(xmlDoc.ErrorDesc()));
printf(" Row: %d\n", xmlDoc.ErrorRow());
}
}