I'm making a vector class and was wondering if my basic vector mathematics was right:
The class declaration
class DFVector
{
public:
float x, y, z;
DFVector();
DFVector(float X, float Y, float Z);
DFVector(char cOperator, DFVector* vVector1, DFVector* vVector2); // this = vVector1 - vVector2
~DFVector();
D3DXVECTOR3 operator ()();
void operator =(DFVector pNewVector);
void operator +=(DFVector pPlusVector);
void operator -=(DFVector pMinusVector);
void operator ++();
void operator --();
};
And the definition
DFVector::DFVector()
{
x = y = z = 0.0f;
}
DFVector::DFVector(float X, float Y, float Z)
{
x = X;
y = Y;
z = Z;
}
DFVector::DFVector(char cOperator, DFVector* vVector1, DFVector* vVector2) // this = vVector1 - vVector2
{
switch(cOperator)
{
case '+':
{
x = vVector1->x + vVector2->x;
y = vVector1->y + vVector2->y;
z = vVector1->z + vVector2->z;
}
case '-':
{
x = vVector1->x - vVector2->x;
y = vVector1->y - vVector2->y;
z = vVector1->z - vVector2->z;
}
case '*':
{
x = vVector1->x * vVector2->x;
y = vVector1->y * vVector2->y;
z = vVector1->z * vVector2->z;
}
case '/':
{
x = vVector1->x / vVector2->x;
y = vVector1->y / vVector2->y;
z = vVector1->z / vVector2->z;
}
}
}
DFVector::~DFVector()
{
}
D3DXVECTOR3 DFVector::operator ()()
{
return D3DXVECTOR3(x, y, z);
}
void DFVector::operator =(DFVector pNewVector)
{
x = pNewVector.x;
y = pNewVector.y;
z = pNewVector.z;
}
void DFVector::operator +=(DFVector pPlusVector)
{
x += pPlusVector.x;
y += pPlusVector.y;
z += pPlusVector.z;
}
void DFVector::operator -=(DFVector pMinusVector)
{
x = pMinusVector.x;
y = pMinusVector.y;
z = pMinusVector.z;
}
void DFVector::operator ++()
{
x += 0.01f;
y += 0.01f;
z += 0.01f;
}
void DFVector::operator --()
{
x -= 0.01f;
y -= 0.01f;
z -= 0.01f;
}
Thanks for any advice!
/*
I use DirectX 8.1 and C++ (Microsoft Visual C++ 6.0 Professional edition)
*/
[edited by - Programmer16 on March 20, 2004 10:47:13 PM]