mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
50 lines
1.0 KiB
C++
50 lines
1.0 KiB
C++
#ifndef GPOINT_H
|
|
#define GPOINT_H
|
|
|
|
#include "../zone/map.h"
|
|
|
|
class GPoint {
|
|
public:
|
|
GPoint();
|
|
GPoint(const GPoint &them);
|
|
GPoint(VERTEX &v);
|
|
GPoint(float x, float y, float z);
|
|
|
|
inline void operator()(float nx, float ny, float nz) { x = nx; y = ny; z = nz; }
|
|
|
|
GPoint cross(const GPoint &them) const;
|
|
float dot3(const GPoint &them) const;
|
|
|
|
const GPoint &operator+=(const GPoint &them);
|
|
const GPoint &operator*=(const float num);
|
|
|
|
float x;
|
|
float y;
|
|
float z;
|
|
|
|
};
|
|
GPoint operator-(const GPoint &v1, const GPoint &v2);
|
|
bool operator<(const GPoint &v1, const GPoint &v2);
|
|
bool operator>(const GPoint &v1, const GPoint &v2);
|
|
|
|
class GVector : public GPoint {
|
|
public:
|
|
GVector();
|
|
GVector(const GPoint &them);
|
|
GVector(const GPoint &from, const GPoint &to);
|
|
GVector(float x, float y, float z, float w = 1.0f);
|
|
|
|
inline void operator()(float nx, float ny, float nz, float nw) { x = nx; y = ny; z = nz; W = nw; }
|
|
float dot4(const GVector &them) const;
|
|
float dot4(const GPoint &them) const;
|
|
void normalize();
|
|
float length();
|
|
|
|
|
|
float W;
|
|
};
|
|
|
|
|
|
#endif
|
|
|