Files
Work/common/VECTOR.HPP
2024-08-07 09:09:36 -04:00

124 lines
1.7 KiB
C++

#ifndef _COMMON_VECTOR_HPP_
#define _COMMON_VECTOR_HPP_
#ifndef _COMMON_MATH_HPP_
#include <common/math.hpp>
#endif
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class Vector
{
public:
Vector(void);
Vector(float x,float y,float z);
Vector(const Vector &someVector);
virtual ~Vector();
float x(void)const;
float y(void)const;
float z(void)const;
void x(float x);
void y(float y);
void z(float z);
WORD operator==(const Vector &someVector)const;
Vector &operator=(const Vector &someVector);
Vector &operator-=(const Vector &someVector);
operator Point3D(void)const;
private:
float mx;
float my;
float mz;
};
inline
Vector::Vector(void)
: mx(0.00), my(0.00), mz(0.00)
{
}
inline
Vector::Vector(float x,float y,float z)
: mx(x), my(y), mz(z)
{
}
inline
Vector::Vector(const Vector &someVector)
: mx(someVector.mx), my(someVector.my), mz(someVector.mz)
{
}
inline
Vector::~Vector()
{
}
inline
float Vector::x(void)const
{
return mx;
}
inline
float Vector::y(void)const
{
return my;
}
inline
float Vector::z(void)const
{
return mz;
}
inline
void Vector::x(float newz)
{
mx=newz;
}
inline
void Vector::y(float newz)
{
my=newz;
}
inline
void Vector::z(float newz)
{
mz=newz;
}
inline
WORD Vector::operator==(const Vector &someVector)const
{
return (mx==someVector.mx&&
my==someVector.my&&
mz==someVector.mz);
}
inline
Vector &Vector::operator=(const Vector &someVector)
{
mx=someVector.mx;
my=someVector.my;
mz=someVector.mz;
return *this;
}
inline
Vector &Vector::operator-=(const Vector &someVector)
{
mx-=someVector.mx;
my-=someVector.my;
mz-=someVector.mz;
return *this;
}
inline
Vector::operator Point3D(void)const
{
return Point3D(mx,my,mz);
}
#endif