10 Vect
*n
; //normal's for loines between v[i] and v[i+1]
11 double *a
; //dot products
16 double DotProduct(Vect
*a
, Vect
*b
);
19 int InPoly(Poly
*p
, Vect
*v
);
21 int AddToPoly(Poly
*p
,Vect
*v
);
22 int AddToPolyXY(Poly
*p
, double x
, double y
);
23 void FreePoly(Poly
*p
);
24 Poly
*NewRect(double x
, double y
, double xx
, double yy
);
25 int PolyInPoly(Poly
*p1
, Poly
*p2
); //does they intersect?
26 int PolyInPolyComp(Poly
*p1
, Poly
*p2
); // is one completely inside another? 0 no 1 first in second 2 second in first
27 Poly
*TranslatePolyXY(Poly
*p
, double x
, double y
); //returns translated copy of Poly
28 Poly
*TranslatePoly(Poly
*p
, Vect
*v
); //returns translated copy of Poly
29 void MultiplyPoly(Poly
*p
, double xm
, double ym
);
30 void PrintPoly(Poly
*p
);
31 void PrintVect(Vect
*a
);
32 char *Poly2String(Poly
*p
);
33 void FreePoly2String(char *s
);
34 Poly
*String2Poly(char *s
);
42 void FreeArea(Area
*a
);
43 int AddToArea(Area
*a
, Poly
*p
);
44 int InArea(Area
*a
, Vect
*v
);
45 int AreaInArea(Area
*a1
, Area
*a2
); //does they intersect?
46 int AreaInAreaComp(Area
*a1
, Area
*a2
); // is one completely inside another? 0 no 1 first in second 2 second in first
47 Area
*TranslateAreaXY(Area
*a
, double x
, double y
); //returns translated copy of Area
48 Area
*TranslateArea(Area
*a
, Vect
*v
); //returns translated copy of Area
49 void MultiplyArea(Area
*p
, double xm
, double ym
);
50 void PrintArea(Area
*a
);
51 char *Area2String(Area
*a
);
52 void FreeArea2String(char *s
);
53 Area
*String2Area(char *s
);