64 virtual void Clear(
void );
97 bool Check(
bool print =
true )
const;
106 bool IsTiny(
void )
const;
107 bool IsHuge(
void )
const;
108 void Print(
void )
const;
129 virtual bool ReAllocate(
int n,
bool keep =
false );
152 for ( i = 0; i <
n; i++ ) {
153 p[
i].ToVec3() = verts[
i];
154 p[
i].s =
p[
i].t = 0.0f;
195 for ( i = 0; i < winding.
numPoints; i++ ) {
279 #define MAX_POINTS_ON_WINDING 64
295 virtual void Clear(
void );
304 virtual bool ReAllocate(
int n,
bool keep =
false );
329 for ( i = 0; i <
n; i++ ) {
330 p[
i].ToVec3() = verts[
i];
idWinding & operator+=(const idVec3 &v)
void GetBounds(idBounds &bounds) const
void RemoveEqualPoints(const float epsilon=ON_EPSILON)
float GetArea(void) const
const idVec3 & Normal(void) const
bool LineIntersection(const idPlane &windingPlane, const idVec3 &start, const idVec3 &end, bool backFaceCull=false) const
void AddToConvexHull(const idWinding *winding, const idVec3 &normal, const float epsilon=ON_EPSILON)
idFixedWinding & operator=(const idWinding &winding)
GLenum GLenum GLenum GLenum GLenum scale
idWinding * TryMerge(const idWinding &w, const idVec3 &normal, int keep=false) const
idWinding * Reverse(void) const
idWinding * Clip(const idPlane &plane, const float epsilon=ON_EPSILON, const bool keepOn=false)
bool PlanesConcave(const idWinding &w2, const idVec3 &normal1, const idVec3 &normal2, float dist1, float dist2) const
int Split(idFixedWinding *back, const idPlane &plane, const float epsilon=ON_EPSILON)
bool InsertPointIfOnEdge(const idVec3 &point, const idPlane &plane, const float epsilon=ON_EPSILON)
idWinding & operator=(const idWinding &winding)
virtual bool ReAllocate(int n, bool keep=false)
const idVec5 & operator[](const int index) const
int PlaneSide(const idPlane &plane, const float epsilon=ON_EPSILON) const
void InsertPoint(const idVec3 &point, int spot)
bool EnsureAlloced(int n, bool keep=false)
int GetNumPoints(void) const
#define MAX_POINTS_ON_WINDING
GLubyte GLubyte GLubyte GLubyte w
static float TriangleArea(const idVec3 &a, const idVec3 &b, const idVec3 &c)
GLsizei GLsizei GLenum GLenum const GLvoid * data
void GetPlane(idVec3 &normal, float &dist) const
virtual ~idFixedWinding(void)
bool Check(bool print=true) const
GLubyte GLubyte GLubyte a
idVec5 data[MAX_POINTS_ON_WINDING]
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint GLdouble GLdouble w2
int Split(const idPlane &plane, const float epsilon, idWinding **front, idWinding **back) const
bool PointInside(const idVec3 &normal, const idVec3 &point, const float epsilon) const
virtual bool ReAllocate(int n, bool keep=false)
idVec3 GetCenter(void) const
idWinding * Copy(void) const
void BaseForPlane(const idVec3 &normal, const float dist)
float GetRadius(const idVec3 ¢er) const
void RemovePoint(int point)
void AddPoint(const idVec3 &v)
float PlaneDistance(const idPlane &plane) const
bool ClipInPlace(const idPlane &plane, const float epsilon=ON_EPSILON, const bool keepOn=false)
bool RayIntersection(const idPlane &windingPlane, const idVec3 &start, const idVec3 &dir, float &scale, bool backFaceCull=false) const
void RemoveColinearPoints(const idVec3 &normal, const float epsilon=ON_EPSILON)