35 #ifndef NEKMESHUTILS_CADSYSTEM_OCE_CADCURVEOCE
36 #define NEKMESHUTILS_CADSYSTEM_OCE_CADCURVEOCE
43 namespace NekMeshUtils
54 static std::string
key;
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
base class for CAD curves.
static CADCurveSharedPtr create()
virtual NekDouble Curvature(NekDouble t)
Calculates the radius of curvature of the curve at point t.
virtual NekDouble loct(Array< OneD, NekDouble > xyz, NekDouble &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.
void Initialise(int i, TopoDS_Shape in)
virtual Array< OneD, NekDouble > P(NekDouble t)
Gets the location (x,y,z) in an array out of the curve at point t.
virtual NekDouble tAtArcLength(NekDouble s)
Calculates the parametric coordinate and arclength location defined by s.
virtual Array< OneD, NekDouble > N(NekDouble t)
Returns the normal to a curve, it will always point in the concave direction.
Array< OneD, NekDouble > m_b
store the parametric bounds of the curve
Handle(Geom_Curve) m_c
object used for reverse lookups
TopoDS_Edge m_occEdge
OpenCascade edge.
virtual Array< OneD, NekDouble > GetMinMax()
Gets the start and end of the curve.
virtual Array< OneD, NekDouble > GetBounds()
Returns the minimum and maximum parametric coords t of the curve.
virtual Array< OneD, NekDouble > D2(NekDouble t)
Gets the second derivatives at t.
std::shared_ptr< CADCurve > CADCurveSharedPtr