Week7 [09/11] - [11/11]
Added Backface Culling Methods to the Model Class Added Depth, Normal and Culled Flag Variables to the Polygon3D Class Added Vector3D Class Added - operator to the Vertex Class Cleaned up Code, Adding Void to Params etc
This commit is contained in:
78
Vector3D.cpp
Normal file
78
Vector3D.cpp
Normal file
@ -0,0 +1,78 @@
|
||||
#include "Vector3D.h"
|
||||
|
||||
Vector3D::Vector3D()
|
||||
{
|
||||
SetX(1);
|
||||
SetY(1);
|
||||
SetZ(1);
|
||||
}
|
||||
|
||||
Vector3D::Vector3D(float x, float y, float z)
|
||||
{
|
||||
SetX(x);
|
||||
SetY(y);
|
||||
SetZ(z);
|
||||
}
|
||||
|
||||
Vector3D::Vector3D(const Vector3D& other)
|
||||
{
|
||||
Copy(other);
|
||||
}
|
||||
|
||||
Vector3D::~Vector3D()
|
||||
{
|
||||
}
|
||||
|
||||
// Accessors
|
||||
float Vector3D::GetX() const
|
||||
{
|
||||
return _x;
|
||||
}
|
||||
|
||||
void Vector3D::SetX(const float x)
|
||||
{
|
||||
_x = x;
|
||||
}
|
||||
|
||||
float Vector3D::GetY() const
|
||||
{
|
||||
return _y;
|
||||
}
|
||||
|
||||
void Vector3D::SetY(const float y)
|
||||
{
|
||||
_y = y;
|
||||
}
|
||||
|
||||
float Vector3D::GetZ() const
|
||||
{
|
||||
return _z;
|
||||
}
|
||||
|
||||
void Vector3D::SetZ(const float z)
|
||||
{
|
||||
_z = z;
|
||||
}
|
||||
|
||||
float Vector3D::DotProduct(const Vector3D v1, const Vector3D v2)
|
||||
{
|
||||
return ((v1.GetX() * v2.GetX()) + (v1.GetY() * v2.GetY()) + (v1.GetZ() * v2.GetZ()));
|
||||
|
||||
}
|
||||
|
||||
Vector3D Vector3D::CrossProduct(const Vector3D v1, const Vector3D v2)
|
||||
{
|
||||
return Vector3D((v1.GetY() * v2.GetZ()) - (v1.GetZ() * v2.GetY()), (v1.GetZ() * v2.GetX()) - (v1.GetX() * v2.GetZ()), (v1.GetX() * v2.GetY()) - (v1.GetY() * v2.GetX()));
|
||||
}
|
||||
|
||||
const Vector3D Vector3D::operator+ (const Vector3D& rhs) const
|
||||
{
|
||||
return Vector3D(_x + rhs.GetX(), _y + rhs.GetY(), _z + rhs.GetZ());
|
||||
}
|
||||
|
||||
void Vector3D::Copy(const Vector3D& other)
|
||||
{
|
||||
_x = other.GetX();
|
||||
_y = other.GetY();
|
||||
_z = other.GetZ();
|
||||
}
|
Reference in New Issue
Block a user