35 #ifndef NEKMESHUTILS_CADSYSTEM_OCE_CADCURVEOCE 36 #define NEKMESHUTILS_CADSYSTEM_OCE_CADCURVEOCE 43 namespace NekMeshUtils
54 static std::string
key;
base class for CAD curves.
Handle(Geom_Curve) m_c
object used for reverse lookups
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.
void Initialise(int i, TopoDS_Shape in)
virtual NekDouble tAtArcLength(NekDouble s)
Calculates the parametric coordinate and arclength location defined by s.
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.
virtual Array< OneD, NekDouble > D2(NekDouble t)
Gets the second derivatives at 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 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...
static CADCurveSharedPtr create()
TopoDS_Edge m_occEdge
OpenCascade edge.
Array< OneD, NekDouble > m_b
store the parametric bounds of the curve