📄 origin.cpp
字号:
//===========================================================================//
// File: origin.cc //
// Contents: Implementation details for the position class //
//---------------------------------------------------------------------------//
// Copyright (C) Microsoft Corporation. All rights reserved. //
//===========================================================================//
#include "StuffHeaders.hpp"
const Origin3D
Origin3D::Identity(
Point3D(0.0f, 0.0f, 0.0f),
UnitQuaternion(0.0f, 0.0f, 0.0f, 1.0f)
);
//
//###########################################################################
//###########################################################################
//
Origin3D&
Origin3D::operator=(const Origin3D &origin)
{
Check_Pointer(this);
Check_Object(&origin);
angularPosition = origin.angularPosition;
linearPosition = origin.linearPosition;
return *this;
}
//
//###########################################################################
//###########################################################################
//
Origin3D&
Origin3D::operator=(const LinearMatrix4D &matrix)
{
Check_Pointer(this);
Check_Object(&matrix);
angularPosition = matrix;
linearPosition = matrix;
return *this;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
bool
Stuff::Close_Enough(
const Origin3D &a1,
const Origin3D &a2,
Scalar e
)
{
Check_Object(&a1);
Check_Object(&a2);
return
Close_Enough(a1.linearPosition, a2.linearPosition, e)
&& Close_Enough(a1.angularPosition, a2.angularPosition, e);
}
#if 0
//
//###########################################################################
//###########################################################################
//
Origin3D&
Origin3D::AddScaled(
const Origin3D& source,
const Motion& delta,
Scalar t
)
{
Check_Pointer(this);
Check_Object(&source);
Check_Object(&delta);
Verify(t >= 0.0f);
linearPosition.AddScaled(source.linearPosition, delta.linearMotion, t);
angularPosition.AddScaled(source.angularPosition, delta.angularMotion, t);
return *this;
}
#endif
//
//#############################################################################
//#############################################################################
//
Origin3D&
Origin3D::Lerp(
const Origin3D &start,
const Origin3D &end,
Scalar t
)
{
Check_Pointer(this);
Check_Object(&start);
Check_Object(&end);
linearPosition.Lerp(start.linearPosition, end.linearPosition, t);
angularPosition.Lerp(start.angularPosition, end.angularPosition, t);
Check_Object(this);
return *this;
}
//
//###########################################################################
//###########################################################################
//
#if !defined(Spew)
void
Spew(
const char* group,
const Origin3D& origin
)
{
SPEW((group, "{+"));
Spew(group, origin.linearPosition);
SPEW((group, ",+"));
Spew(group, origin.angularPosition);
SPEW((group, "}+"));
}
#endif
//
//###########################################################################
//###########################################################################
//
void
Origin3D::TestInstance() const
{
Check_Object(&angularPosition);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -