void AABB::TransformAsAABB(const float3x3 &transform) { assume(transform.IsColOrthogonal()); assume(transform.HasUniformScale()); AABBTransformAsAABB(*this, transform); }
void Capsule::Transform(const float3x3 &transform) { assume(transform.HasUniformScale()); assume(transform.IsColOrthogonal()); l.Transform(transform); r *= transform.Col(0).Length(); // Scale the radius. }
void Circle::Transform(const float3x3 &transform) { assume(transform.HasUniformScale()); assume(transform.IsColOrthogonal()); pos = transform.Mul(pos); normal = transform.Mul(normal).Normalized(); r *= transform.Col(0).Length(); // Scale the radius of the circle. }
void Placeable::SetOrientationAndScale(const float3x3 &tm) { assume(tm.IsColOrthogonal()); assume(!tm.HasNegativeScale()); Transform newtrans = transform.Get(); newtrans.SetRotationAndScale(tm); transform.Set(newtrans, AttributeChange::Default); }
void Quat::Set(const float3x3 &m) { assume(m.IsColOrthogonal()); assume(m.HasUnitaryScale()); assume(!m.HasNegativeScale()); SetQuatFrom(*this, m); #ifdef MATH_ASSERT_CORRECTNESS // Test that the conversion float3x3->Quat->float3x3 is correct. mathassert(this->ToFloat3x3().Equals(m, 0.01f)); #endif }
void OBB::Transform(const float3x3 &transform) { assume(transform.IsColOrthogonal()); OBBTransform(*this, transform); }
void OBB::SetFrom(const AABB &aabb, const float3x3 &transform) { assume(transform.IsColOrthogonal()); OBBSetFrom(*this, aabb, transform); }