35 #ifndef NEKMESHUTILS_CADSYSTEM_CADCURVE 36 #define NEKMESHUTILS_CADSYSTEM_CADCURVE 45 namespace NekMeshUtils
145 void SetAdjSurf(std::pair<CADSurfSharedPtr, CADOrientation::Orientation> i)
154 std::vector<std::pair<CADSurfSharedPtr, CADOrientation::Orientation>>
171 void SetVert(std::vector<CADVertSharedPtr> &falVert)
213 std::vector<std::pair<CADSurfSharedPtr, CADOrientation::Orientation>>
virtual NekDouble tAtArcLength(NekDouble s)=0
Calculates the parametric coordinate and arclength location defined by s.
CADCurveFactory & GetCADCurveFactory()
virtual Array< OneD, NekDouble > D2(NekDouble t)=0
Gets the second derivatives at t.
std::shared_ptr< CADSurf > CADSurfSharedPtr
base class for CAD curves.
CADType::cadType m_type
type of the cad object
std::vector< std::pair< CADSurfSharedPtr, CADOrientation::Orientation > > GetAdjSurf()
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
std::shared_ptr< CADVert > CADVertSharedPtr
Array< OneD, NekDouble > NormalWRT(NekDouble t, int surf)
Returns the normal to the curve which is orientate with respect to the surface surf.
virtual Array< OneD, NekDouble > GetBounds()=0
Returns the minimum and maximum parametric coords t of the curve.
virtual NekDouble Curvature(NekDouble t)=0
Calculates the radius of curvature of the curve at point t.
virtual Array< OneD, NekDouble > N(NekDouble t)=0
Returns the normal to a curve, it will always point in the concave direction.
std::vector< CADVertSharedPtr > m_mainVerts
list of end vertices
void SetVert(std::vector< CADVertSharedPtr > &falVert)
virtual NekDouble Length(NekDouble ti, NekDouble tf)=0
Calculates the arclength between the two paremetric points ti and tf. ti must be less than tf...
std::shared_ptr< CADCurve > CADCurveSharedPtr
base class for a cad surface
base class for CAD verticies.
NekDouble m_length
Length of edge.
CADOrientation::Orientation GetOrienationWRT(int surf)
Returns the orientation of the curve with respect to a given surface by id surf.
std::vector< std::pair< CADSurfSharedPtr, CADOrientation::Orientation > > m_adjSurfs
List of surfaces which this curve belongs to.
virtual Array< OneD, NekDouble > P(NekDouble t)=0
Gets the location (x,y,z) in an array out of the curve at point t.
LibUtilities::NekFactory< std::string, CADCurve > CADCurveFactory
std::vector< CADVertSharedPtr > GetVertex()
void SetAdjSurf(std::pair< CADSurfSharedPtr, CADOrientation::Orientation > i)
set the ids of the surfaces either side of the curve
CADCurve()
Default constructor.
virtual NekDouble loct(Array< OneD, NekDouble > xyz, NekDouble &t)=0
virtual Array< OneD, NekDouble > GetMinMax()=0
Gets the start and end of the curve.
Provides a generic Factory class.