35 #ifndef NekMeshUtils_CADSYSTEM_OCE_CADSURFOCE
36 #define NekMeshUtils_CADSYSTEM_OCE_CADSURFOCE
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 a cad surface
static CADSurfSharedPtr create()
BRepTopAdaptor_FClass2d * m_2Dclass
virtual Array< OneD, NekDouble > P(Array< OneD, NekDouble > uv)
Get the x,y,z at parametric point u,v.
ShapeAnalysis_Surface * m_sas
locuv object (stored because it gets faster with stored information)
void Initialise(int i, TopoDS_Shape in)
virtual Array< OneD, NekDouble > GetBounds()
Get the limits of the parametric space for the surface.
virtual Array< OneD, NekDouble > D2(Array< OneD, NekDouble > uv)
Get the set of second derivatives at parametric point u,v.
virtual bool IsPlanar()
Is the surface defined by a planar surface (i.e not nurbs and is flat)
virtual NekDouble Curvature(Array< OneD, NekDouble > uv)
returns curvature at point uv
Handle(Geom_Surface) m_s
OpenCascade object for surface.
TopoDS_Shape m_shape
original shape
void Test(Array< OneD, NekDouble > uv)
Function which tests the the value of uv used is within the surface.
virtual Array< OneD, NekDouble > N(Array< OneD, NekDouble > uv)
Get the normal vector at parametric point u,v.
virtual Array< OneD, NekDouble > locuv(Array< OneD, NekDouble > p, NekDouble &dist)
Performs a reverse look up to find u,v and x,y,z. if xyz is off the surface it will return the closes...
Array< OneD, NekDouble > m_bounds
parametric bounds
virtual Array< OneD, NekDouble > BoundingBox()
Returns the bounding box of the surface.
virtual Array< OneD, NekDouble > D1(Array< OneD, NekDouble > uv)
Get the set of first derivatives at parametric point u,v.
std::shared_ptr< CADSurf > CADSurfSharedPtr