36 #ifndef NEKMESHUTILS_CADSYSTEM_CADCURVE
37 #define NEKMESHUTILS_CADSYSTEM_CADCURVE
45 namespace NekMeshUtils
123 void SetAdjSurf(std::pair<CADSurfSharedPtr, CADOrientation::Orientation> i)
131 std::vector<std::pair<CADSurfSharedPtr, CADOrientation::Orientation> >
GetAdjSurf()
147 void SetVert(std::vector<CADVertSharedPtr> &falVert)
176 ASSERTL0(
false,
"surf not in adjecency list");
189 std::vector<std::pair<CADSurfSharedPtr, CADOrientation::Orientation> >
m_adjSurfs;
virtual Array< OneD, NekDouble > NormalWRT(NekDouble t, int surf)=0
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.
#define ASSERTL0(condition, msg)
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...
virtual NekDouble loct(Array< OneD, NekDouble > xyz)=0
virtual Array< OneD, NekDouble > GetBounds()=0
Returns the minimum and maximum parametric coords t of the curve.
virtual NekDouble Curvature(NekDouble t)=0
virtual Array< OneD, NekDouble > N(NekDouble t)=0
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...
NekDouble m_length
Length of edge.
CADOrientation::Orientation GetOrienationWRT(int 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 Array< OneD, NekDouble > GetMinMax()=0
Gets the start and end of the curve.
boost::shared_ptr< CADCurve > CADCurveSharedPtr
Provides a generic Factory class.