mirror of
https://github.com/NGSolve/netgen.git
synced 2024-11-14 10:08:32 +05:00
4033fac1b3
Found via `codespell -q 3 -S ./external_dependencies/pybind11 -L alledges,allright,ane,anormal,ans,apoints,ba,boxs,cancle,childs,co-ordinate,co-ordinates,daty,enty,filld,hel,identifyable,ist,linz,lod,ned,nd,selt,statics,suround,thev,thist,thisy,timere,upto,wel`
68 lines
1.3 KiB
C++
68 lines
1.3 KiB
C++
#ifndef FILE_CURVE2D
|
|
#define FILE_CURVE2D
|
|
|
|
/**************************************************************************/
|
|
/* File: curve2d.hh */
|
|
/* Author: Joachim Schoeberl */
|
|
/* Date: 24. Jul. 96 */
|
|
/**************************************************************************/
|
|
|
|
namespace netgen
|
|
{
|
|
|
|
|
|
/*
|
|
|
|
2D Curve representation
|
|
|
|
*/
|
|
|
|
|
|
|
|
///
|
|
class Curve2d : public Manifold
|
|
{
|
|
public:
|
|
///
|
|
virtual void Project (Point<2> & p) const = 0;
|
|
///
|
|
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const = 0;
|
|
};
|
|
|
|
///
|
|
class CircleCurve2d : public Curve2d
|
|
{
|
|
///
|
|
Point<2> center;
|
|
///
|
|
double rad;
|
|
public:
|
|
///
|
|
CircleCurve2d (const Point<2> & acenter, double arad);
|
|
///
|
|
virtual void Project (Point<2> & p) const;
|
|
///
|
|
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
|
|
};
|
|
|
|
///
|
|
class QuadraticCurve2d : public Curve2d
|
|
{
|
|
///
|
|
double cxx, cyy, cxy, cx, cy, c;
|
|
public:
|
|
///
|
|
QuadraticCurve2d ();
|
|
///
|
|
void Read (istream & ist);
|
|
///
|
|
virtual void Project (Point<2> & p) const;
|
|
///
|
|
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
|
|
};
|
|
|
|
|
|
}
|
|
|
|
#endif
|