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");
virtual NekDouble Curvature(NekDouble t)
Calculates the radius of curvature of the curve at point t.
virtual Array< OneD, NekDouble > N(NekDouble t)
Returns the normal to a curve, it will always point in the concave direction.
#define ASSERTL0(condition, msg)
base class for CAD curves.
virtual NekDouble tAtArcLength(NekDouble s)
Calculates the parametric coordinate and arclength location defined by s.
virtual NekDouble Length(NekDouble ti, NekDouble tf)
Calculates the arclength between the two paremetric points ti and tf. ti must be less than tf...
void Initialise(int i, cfi::Line *in, NekDouble s)
cfi::Line * m_cfiEdge
cfi object
virtual Array< OneD, NekDouble > P(NekDouble t)
Gets the location (x,y,z) in an array out of the curve at point t.
std::shared_ptr< CADCurve > CADCurveSharedPtr
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
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 > D2(NekDouble t)
Gets the second derivatives at t.
virtual NekDouble loct(Array< OneD, NekDouble > xyz, NekDouble &t)
static CADCurveSharedPtr create()