本文整理汇总了C++中Transformation::GetScale方法的典型用法代码示例。如果您正苦于以下问题:C++ Transformation::GetScale方法的具体用法?C++ Transformation::GetScale怎么用?C++ Transformation::GetScale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transformation
的用法示例。
在下文中一共展示了Transformation::GetScale方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetLocation
void SpatialObject::SetLocation(const Transformation& t){
mBoundingVolumeWorld->SetCenter(mBoundingVolume->GetCenter() + t.GetTranslation());
mBoundingVolumeWorld->SetRadius(mBoundingVolume->GetRadius() * t.GetScale().GetMax());
mLocation = t;
if (mAnimatedLocation){
*mAnimatedLocation = mLocation * mAnim->GetResult();
}
mTransformChanged = true;
}
示例2: mColShape
//---------------------------------------------------------------------------
Impl(ColisionShapeType::Enum e, const Transformation& t, MeshObjectPtr colMesh)
: mColShape(e)
, mColMesh(colMesh)
, mTransformation(t)
{
switch (e)
{
case ColisionShapeType::SPHERE:
{
mBV = BoundingVolume::Create(BoundingVolume::BV_SPHERE);
auto scale = t.GetScale();
if (scale.x != scale.z || scale.x != scale.y)
{
Logger::Log(FB_ERROR_LOG_ARG, "Collision Sphere should be uniform scaled!");
assert(0);
}
mBV->SetRadius(1 * t.GetScale().x);
mBV->SetCenter(Vec3::ZERO);
}
break;
case ColisionShapeType::CUBE:
{
mBV = BoundingVolume::Create(BoundingVolume::BV_AABB);
AABB aabb;
aabb.SetMax(Vec3(1, 1, 1) * t.GetScale());
aabb.SetMin(Vec3(-1, -1, -1) * t.GetScale());
BVaabb* bvaabb = (BVaabb*)mBV.get();
bvaabb->SetAABB(aabb);
}
break;
default:
break;
}
}
示例3: GetScale
Vec3 GetScale() const{
return mTransformation.GetScale();
}