Initial
This commit is contained in:
96
engine/VECTOR3D.HPP
Normal file
96
engine/VECTOR3D.HPP
Normal file
@@ -0,0 +1,96 @@
|
||||
#ifndef _ENGINE_VECTOR3D_HPP_
|
||||
#define _ENGINE_VECTOR3D_HPP_
|
||||
#ifndef _COMMON_ASSERT_HPP_
|
||||
#include <common/assert.hpp>
|
||||
#endif
|
||||
#ifndef _ENGINE_POINT3D_HPP_
|
||||
#include <engine/point3d.hpp>
|
||||
#endif
|
||||
#ifndef _ENGINE_VECTOR_HPP_
|
||||
#include <engine/vector.hpp>
|
||||
#endif
|
||||
|
||||
class Vector3D
|
||||
{
|
||||
public:
|
||||
enum {VectorPoints=4};
|
||||
Vector3D(void);
|
||||
Vector3D(const Vector3D &someVector3D);
|
||||
Vector3D(const Point3D &firstPoint,const Point3D &secondPoint,const Point3D &thirdPoint,const Point3D &fourthPoint);
|
||||
virtual ~Vector3D();
|
||||
Vector3D &operator=(const Vector3D &someVector3D);
|
||||
WORD operator==(const Vector3D &someVector3D)const;
|
||||
Point3D &operator[](WORD vectorIndex);
|
||||
const Vector &getNormal(void)const;
|
||||
void setNormal(const Vector &normal);
|
||||
void normalize(void);
|
||||
private:
|
||||
Point3D mVector3D[VectorPoints];
|
||||
Vector mNormalVector;
|
||||
};
|
||||
|
||||
inline
|
||||
Vector3D::Vector3D(void)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
Vector3D::Vector3D(const Vector3D &someVector3D)
|
||||
{
|
||||
mVector3D[0]=((Vector3D&)someVector3D)[0];
|
||||
mVector3D[1]=((Vector3D&)someVector3D)[1];
|
||||
mVector3D[2]=((Vector3D&)someVector3D)[2];
|
||||
mVector3D[3]=((Vector3D&)someVector3D)[3];
|
||||
}
|
||||
|
||||
inline
|
||||
Vector3D::Vector3D(const Point3D &firstPoint,const Point3D &secondPoint,const Point3D &thirdPoint,const Point3D &fourthPoint)
|
||||
{
|
||||
mVector3D[0]=firstPoint;
|
||||
mVector3D[1]=secondPoint;
|
||||
mVector3D[2]=thirdPoint;
|
||||
mVector3D[3]=fourthPoint;
|
||||
}
|
||||
|
||||
inline
|
||||
Vector3D::~Vector3D()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
Vector3D &Vector3D::operator=(const Vector3D &someVector3D)
|
||||
{
|
||||
mVector3D[0]=((Vector3D&)someVector3D)[0];
|
||||
mVector3D[1]=((Vector3D&)someVector3D)[1];
|
||||
mVector3D[2]=((Vector3D&)someVector3D)[2];
|
||||
mVector3D[3]=((Vector3D&)someVector3D)[3];
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD Vector3D::operator==(const Vector3D &someVector3D)const
|
||||
{
|
||||
return (mVector3D[0]==((Vector3D&)someVector3D)[0]&&
|
||||
mVector3D[1]==((Vector3D&)someVector3D)[1]&&
|
||||
mVector3D[2]==((Vector3D&)someVector3D)[2]&&
|
||||
mVector3D[3]==((Vector3D&)someVector3D)[3]);
|
||||
}
|
||||
|
||||
inline
|
||||
Point3D &Vector3D::operator[](WORD vectorIndex)
|
||||
{
|
||||
return mVector3D[vectorIndex];
|
||||
}
|
||||
|
||||
inline
|
||||
const Vector &Vector3D::getNormal(void)const
|
||||
{
|
||||
return mNormalVector;
|
||||
}
|
||||
|
||||
inline
|
||||
void Vector3D::setNormal(const Vector &normal)
|
||||
{
|
||||
mNormalVector=normal;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user