]> icculus.org git repositories - divverent/darkplaces.git/blob - winding.h
more unsigned
[divverent/darkplaces.git] / winding.h
1
2 #ifndef WINDING_H
3 #define WINDING_H
4
5 typedef struct
6 {
7         int numpoints;
8         int maxpoints;
9         double points[8][3]; // variable sized
10 }
11 winding_t;
12
13 winding_t *Winding_New(int points);
14 void Winding_Free(winding_t *w);
15 winding_t *Winding_NewFromPlane(double normalx, double normaly, double normalz, double dist);
16 winding_t *Winding_Clip(winding_t *in, double splitnormalx, double splitnormaly, double splitnormalz, double splitdist, int keepon);
17 void Winding_Divide(winding_t *in, double splitnormalx, double splitnormaly, double splitnormalz, double splitdist, winding_t **front, winding_t **back);
18 void BufWinding_NewFromPlane(winding_t *w, double normalx, double normaly, double normalz, double dist);
19 void BufWinding_Divide(winding_t *in, double splitnormalx, double splitnormaly, double splitnormalz, double splitdist, winding_t *outfront, int *neededfrontpoints, winding_t *outback, int *neededbackpoints);
20 void Polygon_Divide_Double(int innumpoints, const double *inpoints, double splitnormalx, double splitnormaly, double splitnormalz, double splitdist, int outfrontmaxpoints, double *outfrontpoints, int *neededfrontpoints, int outbackmaxpoints, double *outbackpoints, int *neededbackpoints);
21 void Polygon_Divide_Float(int innumpoints, const float *inpoints, float splitnormalx, float splitnormaly, float splitnormalz, float splitdist, int outfrontmaxpoints, float *outfrontpoints, int *neededfrontpoints, int outbackmaxpoints, float *outbackpoints, int *neededbackpoints);
22
23 #endif
24