Shapeworks Studio
2.1
Shape analysis software suite
|
Public Member Functions | |
FEMesh (FEMesh &m) | |
void | Create (int nodes, int elems, int faces=0, int edges=0) |
allocate space for mesh | |
void | ShallowCopy (FEMesh *pm) |
void | Clear () |
— C L E A N U P — | |
void | DeleteEdges () |
int | Elements () const |
return number of elements | |
FEElement & | Element (int n) |
return element | |
FEElement_ & | ElementRef (int n) |
return reference to element | |
FEElement * | ElementPtr (int n=0) |
return pointer to element | |
int | FindFace (FEElement *pe, FEFace &f, FEFace &fe) |
void | FindNodesFromPart (int gid, vector< int > &node) |
std::vector< FENode > & | NodeArray () |
std::vector< FEFace > & | FaceArray () |
std::vector< FEElement > & | ElementArray () |
double | GetElementValue (int n) |
void | SetElementValue (int n, double v) |
void | UpdateValueRange () |
void | GetValueRange (double &vmin, double &vmax) |
vec3d | ProjectToSurface (vec3d r, vec3d t) |
vec3d | ProjectToFace (vec3d p, FEFace &f, double &r, double &s) |
vec3d | ProjectToEdge (vec3d e1, vec3d e2, vec3d p, double &r) |
bool | FindIntersection (FEFace &f, vec3d x, vec3d n, vec3d &q, double &g) |
void | Update () |
void | UpdateElementNeighbors () |
void | UpdateFaces () |
void | UpdateEdges () |
void | UpdateNodes () |
void | AutoSmooth (double w) |
void | UpdateNormals () |
void | PartitionSelection () |
void | RemoveIsolatedNodes () |
void | AddNode (FENode &n) |
FEMesh * | DetachSelectedMesh () |
void | DetachSelectedPart () |
FEMesh * | ExtractSelectedFaces () |
void | DeleteTaggedElements (int tag) |
void | DeleteTaggedFaces (int tag) |
void | DeleteTaggedEdges (int tag) |
void | FindDuplicateFaces (vector< int > &l) |
This function identifies duplicate faces and returns a list with the duplicates. | |
void | FindDuplicateEdges (vector< int > &l) |
This function identifies duplicate edges and returns a list with the duplicates. | |
void | DeleteSelectedElements () |
void | DeleteSelectedFaces () |
void | DeleteSelectedNodes () |
void | InvertTaggedElements (int ntag) |
void | InvertSelectedElements () |
double | ShellJacobian (FEElement &el) |
void | RemoveDuplicateElements () |
void | FixinvertedElements () |
void | FixReferenceSurface () |
void | InterpolateShellThickness (double) |
void | RemoveNonManifoldElements () |
void | FixElementWinding () |
void | FixElementWinding2 () |
void | TagAllElements (int ntag) |
int | DataFields () |
FEElementData * | AddDataField (const char *szname, double v=0.0) |
FEElementData & | GetDataField (int i) |
double | ShortestEdge () |
void | BuildNodeElementTable (vector< vector< int > > &NET) |
void | BuildNodeFaceTable (vector< vector< int > > &NFT) |
void | BuildNodeEdgeTable (vector< vector< int > > &NET) |
void | BuildEdgeTable (vector< pair< int, int > > &ET) |
void | BuildNodeNodeTable (vector< set< int > > &NNT) |
void | BuildSurfaceNodeNodeTable (vector< set< int > > &NNT) |
void | BuildElementEdgeTable (vector< vector< int > > &EET, vector< pair< int, int > > &ET) |
void | BuildFaceTable (vector< FEFace > &FT) |
void | BuildElementFaceTable (vector< vector< int > > &EFT, vector< FEFace > &FT) |
void | BuildFaceEdgeTable (vector< vector< int > > &FET, vector< pair< int, int > > &ET) |
void | BuildFaceFaceTable (vector< int > &FFT, vector< FEFace > &FT) |
void | BuildEdgeEdgeTable (vector< int > &EET, vector< pair< int, int > > &ET) |
Public Member Functions inherited from FECoreMesh | |
FECoreMesh () | |
constructor | |
virtual | ~FECoreMesh () |
destructor | |
bool | IsType (int ntype) |
check the type of the mesh More... | |
int | Nodes () const |
int | Edges () const |
int | Faces () const |
FENode & | Node (int n) |
FEEdge & | Edge (int n) |
FEFace & | Face (int n) |
FENode * | NodePtr (int n=0) |
FEEdge * | EdgePtr (int n=0) |
FEFace * | FacePtr (int n=0) |
Protected Member Functions | |
bool | IntersectTri (vec3d *y, vec3d x, vec3d n, vec3d &q, double &g) |
bool | IntersectQuad (vec3d *y, vec3d x, vec3d n, vec3d &q, double &g) |
Protected Attributes | |
std::vector< FEElement > | m_Elem |
FE elements. | |
std::vector< double > | m_data |
element values | |
double | m_min |
double | m_max |
value range of element data | |
vector< FEElementData > | m_map |
Protected Attributes inherited from FECoreMesh | |
std::vector< FENode > | m_Node |
FE nodes. | |
std::vector< FEEdge > | m_Edge |
FE edges. | |
std::vector< FEFace > | m_Face |
FE faces. | |
FEMesh * FEMesh::DetachSelectedMesh | ( | ) |
Update();
Definition at line 272 of file FEMesh.cpp.
This function calculates the intersection of a ray with a quad and returns true if the ray intersected.
Definition at line 2729 of file FEMesh.cpp.
|
inline |
void FEMesh::UpdateFaces | ( | ) |
This function finds the face neighbours. Note that internal faces cannot be neighbours of external faces.
Definition at line 1853 of file FEMesh.cpp.