Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/csg/curve2d.hpp
3206 views
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
/*
11
12
2D Curve repesentation
13
14
*/
15
16
17
18
///
19
class Curve2d : public Manifold
20
{
21
public:
22
///
23
virtual void Project (Point<2> & p) const = 0;
24
///
25
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const = 0;
26
};
27
28
///
29
class CircleCurve2d : public Curve2d
30
{
31
///
32
Point<2> center;
33
///
34
double rad;
35
public:
36
///
37
CircleCurve2d (const Point<2> & acenter, double arad);
38
///
39
virtual void Project (Point<2> & p) const;
40
///
41
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
42
};
43
44
///
45
class QuadraticCurve2d : public Curve2d
46
{
47
///
48
double cxx, cyy, cxy, cx, cy, c;
49
public:
50
///
51
QuadraticCurve2d ();
52
///
53
void Read (istream & ist);
54
///
55
virtual void Project (Point<2> & p) const;
56
///
57
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
58
};
59
#endif
60
61