35 #ifndef NEKMESHUTILS_CADSYSTEM_CFI_CADCURVECFI
36 #define NEKMESHUTILS_CADSYSTEM_CFI_CADCURVECFI
38 #include "../CADCurve.h"
43 namespace NekMeshUtils
53 static std::string
key;
71 ASSERTL0(
false,
"Function: Curvature not implemented in CFI engine");
76 ASSERTL0(
false,
"Function: N not implemented in CFI engine");
#define ASSERTL0(condition, msg)
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
virtual NekDouble loct(Array< OneD, NekDouble > xyz, NekDouble &t)
cfi::Line * m_cfiEdge
cfi object
virtual NekDouble tAtArcLength(NekDouble s)
Calculates the parametric coordinate and arclength location defined by s.
virtual void P(NekDouble t, NekDouble &x, NekDouble &y, NekDouble &z)
Gets the location (x,y,z) in an array out of the curve at point t.
virtual Array< OneD, NekDouble > D2(NekDouble t)
Gets the second derivatives at t.
static CADCurveSharedPtr create()
virtual NekDouble Curvature(NekDouble t)
Calculates the radius of curvature of the curve at point t.
virtual NekDouble Length(NekDouble ti, NekDouble tf)
Calculates the arclength between the two paremetric points ti and tf. ti must be less than tf.
virtual Array< OneD, NekDouble > N(NekDouble t)
Returns the normal to a curve, it will always point in the concave direction.
void Initialise(int i, cfi::Line *in, NekDouble s)
virtual Array< OneD, NekDouble > GetBounds()
Returns the minimum and maximum parametric coords t of the curve.
virtual Array< OneD, NekDouble > GetMinMax()
Gets the start and end of the curve.
virtual Array< OneD, NekDouble > P(NekDouble t)
Gets the location (x,y,z) in an array out of the curve at point t.
base class for CAD curves.
std::shared_ptr< CADCurve > CADCurveSharedPtr