Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/csg/gencyl.hpp
3206 views
1
#ifndef FILE_GENCYL
2
#define FILE_GENCYL
3
4
/**************************************************************************/
5
/* File: gencyl.hh */
6
/* Author: Joachim Schoeberl */
7
/* Date: 14. Oct. 96 */
8
/**************************************************************************/
9
10
/*
11
12
Generalized Cylinder
13
14
*/
15
16
17
///
18
class GeneralizedCylinder : public Surface
19
{
20
///
21
ExplicitCurve2d & crosssection;
22
///
23
Point<3> planep;
24
///
25
Vec<3> planee1, planee2, planee3;
26
27
/// Vec<3> ex, ey, ez;
28
Vec2d e2x, e2y;
29
///
30
Point<3> cp;
31
32
public:
33
///
34
GeneralizedCylinder (ExplicitCurve2d & acrosssection,
35
Point<3> ap, Vec<3> ae1, Vec<3> ae2);
36
37
///
38
virtual void Project (Point<3> & p) const;
39
40
///
41
virtual int BoxInSolid (const BoxSphere<3> & box) const;
42
/// 0 .. no, 1 .. yes, 2 .. maybe
43
44
virtual double CalcFunctionValue (const Point<3> & point) const;
45
///
46
virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
47
///
48
virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;
49
///
50
virtual double HesseNorm () const;
51
///
52
virtual double MaxCurvatureLoc (const Point<3> & c, double rad) const;
53
///
54
virtual Point<3> GetSurfacePoint () const;
55
///
56
virtual void Print (ostream & str) const;
57
58
///
59
virtual void Reduce (const BoxSphere<3> & box);
60
///
61
virtual void UnReduce ();
62
};
63
64
#endif
65
66