36 #ifndef NekMeshUtils_CADSYSTEM_CADSURF
37 #define NekMeshUtils_CADSYSTEM_CADSURF
45 namespace NekMeshUtils
79 std::vector<CADSystem::EdgeLoopSharedPtr>
GetEdges()
84 void SetEdges(std::vector<CADSystem::EdgeLoopSharedPtr> ein)
166 std::vector<CADSystem::EdgeLoopSharedPtr>
m_edges;
std::vector< CADSystem::EdgeLoopSharedPtr > m_edges
List of bounding edges in loops with orientation.
virtual Array< OneD, NekDouble > N(Array< OneD, NekDouble > uv)=0
Get the normal vector at parametric point u,v.
CADType::cadType m_type
type of the cad object
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
CADOrientation::Orientation Orientation()
query reversed normal
std::vector< CADSystem::EdgeLoopSharedPtr > GetEdges()
Get the loop structures which bound the cad surface.
virtual NekDouble DistanceTo(Array< OneD, NekDouble > p)=0
does unconstrained locuv to project point from anywhere and calculate the distance between the orthon...
CADSurfFactory & GetCADSurfFactory()
CADOrientation::Orientation m_orientation
orientation of the CADObject
virtual Array< OneD, NekDouble > P(Array< OneD, NekDouble > uv)=0
Get the x,y,z at parametric point u,v.
virtual NekDouble Curvature(Array< OneD, NekDouble > uv)=0
returns curvature at point uv
base class for a cad surface
virtual void ProjectTo(Array< OneD, NekDouble > &tp, Array< OneD, NekDouble > &uv)=0
takes a point from anywhere find the nearest surface point and its uv
CADSurf()
Default constructor.
boost::shared_ptr< CADSurf > CADSurfSharedPtr
virtual Array< OneD, NekDouble > locuv(Array< OneD, NekDouble > p)=0
Performs a reverse look up to find u,v and x,y,z.
static void OrientateEdges(CADSurfSharedPtr surf, std::vector< CADSystem::EdgeLoopSharedPtr > &ein)
virtual void Test(Array< OneD, NekDouble > uv)=0
Function which tests the the value of uv used is within the surface.
virtual Array< OneD, NekDouble > D2(Array< OneD, NekDouble > uv)=0
Get the set of second derivatives at parametric point u,v.
virtual Array< OneD, NekDouble > GetBounds()=0
Get the limits of the parametric space for the surface.
void SetEdges(std::vector< CADSystem::EdgeLoopSharedPtr > ein)
boost::shared_ptr< CADCurve > CADCurveSharedPtr
LibUtilities::NekFactory< std::string, CADSurf > CADSurfFactory
Provides a generic Factory class.
virtual Array< OneD, NekDouble > D1(Array< OneD, NekDouble > uv)=0
Get the set of first derivatives at parametric point u,v.