Nektar++
|
class for handleing a cad surface More...
#include <CADSurf.h>
Public Member Functions | |
CADSurf (int i, TopoDS_Shape in, std::vector< EdgeLoop > ein) | |
Default constructor. More... | |
~CADSurf () | |
std::vector< EdgeLoop > | GetEdges () |
Get the IDs of the edges which bound the surface. More... | |
Array< OneD, NekDouble > | GetBounds () |
Get the limits of the parametric space for the surface. More... | |
Array< OneD, NekDouble > | N (Array< OneD, NekDouble > uv) |
Get the normal vector at parametric point u,v. More... | |
Array< OneD, NekDouble > | D1 (Array< OneD, NekDouble > uv) |
Get the set of first derivatives at parametric point u,v. More... | |
Array< OneD, NekDouble > | D2 (Array< OneD, NekDouble > uv) |
Get the set of second derivatives at parametric point u,v. More... | |
Array< OneD, NekDouble > | P (Array< OneD, NekDouble > uv) |
Get the x,y,z at parametric point u,v. More... | |
Array< OneD, NekDouble > | locuv (Array< OneD, NekDouble > p) |
Performs a reverse look up to find u,v and x,y,z. More... | |
bool | IsPlane () |
returns true if the surface is flat (2D) More... | |
void | SetReverseNomral () |
sets the flag to reverse the normal for this suface, this is determined in cadsystem and ensures all surface normals, point internaly More... | |
bool | IsReversedNormal () |
void | SetTwoC () |
surface needs to know if it is bounded by only two curves More... | |
bool | GetTwoC () |
query two curves More... | |
NekDouble | DistanceTo (Array< OneD, NekDouble > p) |
does unconstrained locuv to project point from anywhere More... | |
void | ProjectTo (Array< OneD, NekDouble > &tp, Array< OneD, NekDouble > &uv) |
NekDouble | Curvature (Array< OneD, NekDouble > uv) |
returns curvature at point uv More... | |
Public Member Functions inherited from Nektar::NekMeshUtils::CADObj | |
CADObj () | |
Default constructor. More... | |
virtual | ~CADObj () |
int | GetId () |
Return ID of the vertex. More... | |
cadType | GetType () |
Private Member Functions | |
void | Test (Array< OneD, NekDouble > uv) |
Function which tests the the value of uv used is within the surface. More... | |
Handle (Geom_Surface) m_s | |
Alternate OpenCascade object for surface. Used by reverse lookup. More... | |
Private Attributes | |
bool | m_correctNormal |
normal More... | |
bool | m_hasTwoCurves |
flag to alert the mesh generation to a potential problem is both curves have only two points in the mesh More... | |
BRepAdaptor_Surface | m_occSurface |
OpenCascade object for surface. More... | |
std::vector< EdgeLoop > | m_edges |
List of bounding edges in loops with orientation. More... | |
Friends | |
class | MemoryManager< CADSurf > |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::NekMeshUtils::CADObj | |
int | m_id |
ID of the vert. More... | |
cadType | m_type |
type of the cad object More... | |
Nektar::NekMeshUtils::CADSurf::CADSurf | ( | int | i, |
TopoDS_Shape | in, | ||
std::vector< EdgeLoop > | ein | ||
) |
Default constructor.
Definition at line 47 of file CADSurf.cpp.
References m_correctNormal, m_hasTwoCurves, Nektar::NekMeshUtils::CADObj::m_id, m_occSurface, Nektar::NekMeshUtils::CADObj::m_type, and Nektar::NekMeshUtils::surf.
returns curvature at point uv
Definition at line 144 of file CADSurf.cpp.
References D2(), N(), and Test().
Get the set of first derivatives at parametric point u,v.
uv | Array of u and v parametric coords. |
Definition at line 282 of file CADSurf.cpp.
References m_occSurface, and Test().
Get the set of second derivatives at parametric point u,v.
uv | array of u and v parametric coords |
Definition at line 304 of file CADSurf.cpp.
References m_occSurface, and Test().
Referenced by Curvature().
does unconstrained locuv to project point from anywhere
Definition at line 185 of file CADSurf.cpp.
References m_occSurface.
Get the limits of the parametric space for the surface.
Definition at line 103 of file CADSurf.h.
References m_occSurface.
|
inline |
Get the IDs of the edges which bound the surface.
The edges are organsised into two vectors, which are grouped into the continuous loops of the bounding edges, then the edges, which are a pair of integers. The first item is the edge ID and the second is an integer that indicates whether this edge is orientated forwards or backwards on this surface to form the loop.
Definition at line 93 of file CADSurf.h.
References m_edges.
|
inline |
query two curves
Definition at line 186 of file CADSurf.h.
References m_hasTwoCurves.
|
private |
Alternate OpenCascade object for surface. Used by reverse lookup.
bool Nektar::NekMeshUtils::CADSurf::IsPlane | ( | ) |
returns true if the surface is flat (2D)
Definition at line 224 of file CADSurf.cpp.
References m_occSurface.
|
inline |
Performs a reverse look up to find u,v and x,y,z.
p | Array of xyz location |
Definition at line 64 of file CADSurf.cpp.
References ASSERTL0, and m_occSurface.
Get the normal vector at parametric point u,v.
uv | Array of u and v parametric coords. |
Definition at line 249 of file CADSurf.cpp.
References m_correctNormal, m_occSurface, and Test().
Referenced by Curvature().
Get the x,y,z at parametric point u,v.
uv | Array of u and v parametric coords. |
Definition at line 236 of file CADSurf.cpp.
References m_occSurface, and Test().
void Nektar::NekMeshUtils::CADSurf::ProjectTo | ( | Array< OneD, NekDouble > & | tp, |
Array< OneD, NekDouble > & | uv | ||
) |
Definition at line 202 of file CADSurf.cpp.
References m_occSurface.
|
inline |
sets the flag to reverse the normal for this suface, this is determined in cadsystem and ensures all surface normals, point internaly
Definition at line 165 of file CADSurf.h.
References m_correctNormal.
|
inline |
surface needs to know if it is bounded by only two curves
Definition at line 178 of file CADSurf.h.
References m_hasTwoCurves.
Function which tests the the value of uv used is within the surface.
Definition at line 335 of file CADSurf.cpp.
References ASSERTL0, Nektar::NekMeshUtils::CADObj::GetId(), and m_occSurface.
Referenced by Curvature(), D1(), D2(), N(), and P().
|
friend |
|
private |
normal
Definition at line 205 of file CADSurf.h.
Referenced by CADSurf(), IsReversedNormal(), N(), and SetReverseNomral().
|
private |
List of bounding edges in loops with orientation.
Definition at line 214 of file CADSurf.h.
Referenced by GetEdges().
|
private |
|
private |
OpenCascade object for surface.
Definition at line 210 of file CADSurf.h.
Referenced by CADSurf(), D1(), D2(), DistanceTo(), GetBounds(), IsPlane(), locuv(), N(), P(), ProjectTo(), and Test().