12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /**********************************************************************
- *<
- FILE: templt.h
- DESCRIPTION: Defines 2D Template Object
- CREATED BY: Tom Hudson
- HISTORY: created 31 October 1995
- *> Copyright (c) 1995, All Rights Reserved.
- **********************************************************************/
- #ifndef __TEMPLT_H__
- #define __TEMPLT_H__
- class PolyLine;
- class Spline3D;
- // A handy 2D floating-point box class
- class Box2D {
- public:
- BOOL empty;
- Point2 min, max;
- Box2D() { empty = TRUE; }
- void SetEmpty() { empty = TRUE; }
- CoreExport Box2D& operator+=(const Point2& p); // expand this box to include p
- };
- // This object is used to test shapes for self-intersection, clockwise status, point
- // surrounding and intersection with other templates. The last and first points will be the
- // same if it is closed.
- class Template {
- public:
- int points;
- BOOL closed;
- Point2 *pts;
- Template(Spline3D *spline);
- Template(PolyLine *line);
- void Create(PolyLine *line);
- ~Template();
- Points() { return points; }
- BOOL SurroundsPoint(Point2& point);
- BOOL IsClockWise();
- BOOL SelfIntersects();
- BOOL Intersects(Template &t);
- Box2D Bound();
- };
- #endif // __TEMPLT_H__
|