本文整理汇总了C++中CBaseEntity::GetLocalTransform方法的典型用法代码示例。如果您正苦于以下问题:C++ CBaseEntity::GetLocalTransform方法的具体用法?C++ CBaseEntity::GetLocalTransform怎么用?C++ CBaseEntity::GetLocalTransform使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBaseEntity
的用法示例。
在下文中一共展示了CBaseEntity::GetLocalTransform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PostSetLocalTransform
void CStructure::PostSetLocalTransform(const TMatrix& m)
{
BaseClass::PostSetLocalTransform(m);
CPlanet* pPlanet = GameData().GetPlanet();
if (!pPlanet)
return;
if (!pPlanet->GetChunkManager()->HasGroupCenter())
return;
TMatrix mLocalTransform = m;
CBaseEntity* pMoveParent = GetMoveParent();
if (pMoveParent)
{
while (pMoveParent != pPlanet)
{
mLocalTransform = pMoveParent->GetLocalTransform() * mLocalTransform;
pMoveParent = pMoveParent->GetMoveParent();
}
}
else
mLocalTransform = pPlanet->GetGlobalToLocalTransform() * m;
GameData().SetGroupTransform(pPlanet->GetChunkManager()->GetPlanetToGroupCenterTransform() * mLocalTransform.GetMeters());
}
示例2: SetPhysicsTransform
void CStructure::SetPhysicsTransform(const Matrix4x4& m)
{
CPlanet* pPlanet = GameData().GetPlanet();
if (!pPlanet)
{
SetLocalTransform(TMatrix(m));
return;
}
if (!pPlanet->GetChunkManager()->HasGroupCenter())
{
SetLocalTransform(TMatrix(m));
return;
}
GameData().SetGroupTransform(m);
TMatrix mLocalTransform(pPlanet->GetChunkManager()->GetGroupCenterToPlanetTransform() * m);
CBaseEntity* pMoveParent = GetMoveParent();
TAssert(pMoveParent);
if (pMoveParent)
{
while (pMoveParent != pPlanet)
{
mLocalTransform = pMoveParent->GetLocalTransform().InvertedRT() * mLocalTransform;
pMoveParent = pMoveParent->GetMoveParent();
}
}
SetLocalTransform(mLocalTransform);
}