1 #ifndef FILE_CURVE2D 2 #define FILE_CURVE2D 3 4 /**************************************************************************/ 5 /* File: curve2d.hh */ 6 /* Author: Joachim Schoeberl */ 7 /* Date: 24. Jul. 96 */ 8 /**************************************************************************/ 9 10 namespace netgen 11 { 12 13 14 /* 15 16 2D Curve repesentation 17 18 */ 19 20 21 22 /// 23 class Curve2d : public Manifold 24 { 25 public: 26 /// 27 virtual void Project (Point<2> & p) const = 0; 28 /// 29 virtual void NormalVector (const Point<2> & p, Vec<2> & n) const = 0; 30 }; 31 32 /// 33 class CircleCurve2d : public Curve2d 34 { 35 /// 36 Point<2> center; 37 /// 38 double rad; 39 public: 40 /// 41 CircleCurve2d (const Point<2> & acenter, double arad); 42 /// 43 virtual void Project (Point<2> & p) const; 44 /// 45 virtual void NormalVector (const Point<2> & p, Vec<2> & n) const; 46 }; 47 48 /// 49 class QuadraticCurve2d : public Curve2d 50 { 51 /// 52 double cxx, cyy, cxy, cx, cy, c; 53 public: 54 /// 55 QuadraticCurve2d (); 56 /// 57 void Read (istream & ist); 58 /// 59 virtual void Project (Point<2> & p) const; 60 /// 61 virtual void NormalVector (const Point<2> & p, Vec<2> & n) const; 62 }; 63 64 65 } 66 67 #endif 68