📄 force.cpp
字号:
// Force.cpp: Implementierung der Klasse CForce.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Force.h"
//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////
CForce::CForce()
{
m_Vector[x] = 0.0f;
m_Vector[y] = 0.0f;
m_Vector[z] = 0.0f;
}
CForce::~CForce()
{
}
float CForce::GetForceVectorLength()
{
// Return length of force vector
return (float) sqrt(m_Vector[x] * m_Vector[x] +
m_Vector[y] * m_Vector[y] +
m_Vector[z] * m_Vector[z]);
}
CForce CForce::operator+ (const CForce &rhs)
{
// Add the two force vectors
CForce cNewForce;
cNewForce[x] = m_Vector[x] + rhs[x];
cNewForce[y] = m_Vector[y] + rhs[y];
cNewForce[z] = m_Vector[z] + rhs[z];
return cNewForce;
}
float &CForce::operator[] (unsigned short iOffset)
{
// Allow direct access to the three vector components
if (iOffset <= 2)
return m_Vector[iOffset];
else
return m_Vector[z];
}
float CForce::operator[] (unsigned short iOffset) const
{
// Allow direct access to the three vector components
if (iOffset <= 2)
return m_Vector[iOffset];
else
return -1.0f;
}
void CForce::operator+= (const CForce &rhs)
{
// Add the passed force vectors to this one
m_Vector[x] = m_Vector[x] + rhs[x];
m_Vector[y] = m_Vector[y] + rhs[y];
m_Vector[z] = m_Vector[z] + rhs[z];
}
void CForce::ResetForce()
{
// Reset the motion vector
m_Vector[x] = 0.0f;
m_Vector[y] = 0.0f;
m_Vector[z] = 0.0f;
}
void CForce::SlowDown(float fAmount)
{
// Shortens the movement vector
m_Vector[x] /= 1.0f + fAmount;
m_Vector[y] /= 1.0f + fAmount;
m_Vector[z] /= 1.0f + fAmount;
}
void CForce::SetVectorLength(float fLength)
{
// Sets the movement vector to a given length
// Get current vector length
float fCurVectorLength = GetForceVectorLength();
// Don't increase length of the vector
if (fCurVectorLength < fLength)
return;
// Shorten vector
float fDivisor = fCurVectorLength / fLength;
m_Vector[x] /= fDivisor;
m_Vector[y] /= fDivisor;
m_Vector[z] /= fDivisor;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -