|
FEDEM Solver
R8.0
Source code of the dynamics solver
|
Class representing a surface segment of a FFaBody object. More...
#include <FFaBody.H>

Public Member Functions | |
| FaFace () | |
| Default face constructor. More... | |
| FaFace (FFaBody *body, size_t i1, size_t i2, size_t i3, int i4=-1) | |
| Constructor defining a face spanned by three or four vertices. More... | |
| int | intersect (const FaVec3 &normal, double z0, double zeroTol=1.0e-16) |
| Calculates the intersection with a given plane. More... | |
| bool | isIntersected () const |
| Returns true if face is intersected by the intersection plane. More... | |
| bool | isBelow () const |
| Returns true if face is totally below the intersection plane. More... | |
| size_t | size () const |
| Returns the number of face vertices. More... | |
| size_t | operator[] (int i) const |
| Returns the global index of the i'th vertex of this face. More... | |
| const FaVec3 & | vertex (int i) const |
| Returns the coordinates of the i'th vertex of this face. More... | |
| double | accumulateArea (const FaVec3 &vn, const FaVec3 &v0, FaVec3 &X) const |
| Accumulates area of an intersection surface. More... | |
| double | accumulateVolume (const FaVec3 &v0, FaVec3 &X, FFaTensor3 *I) const |
| Accumulates volume with contribution from *this as surface segment. More... | |
| const std::vector< FaFace > & | getSubFaces () const |
| Returns the sub-faces of the face when it is intersected. More... | |
| FaEdge | getIntEdge () const |
| Returns the index of the intersecting edge. More... | |
| FaVec3 | getIntEdgeCoord () const |
| Returns the sum of the end points of the intersecting edge. More... | |
| FFaBody * | getBody () const |
| Returns the owner of this face. More... | |
Protected Member Functions | |
| int | quad2Quads (const char *status, const double *dist) |
| Divides the face into two quadrilateral sub-faces. More... | |
| int | quad2QuadTria (const char *status, const double *dist, bool oneAbove) |
| Divides the face into one triangle and two quadrilaterals. More... | |
Private Attributes | |
| std::vector< size_t > | myVertices |
| Indices to the vertices defining the face. More... | |
| FaEdge | iEdge |
| Vertices of the intersection edge, if any. More... | |
| std::vector< FaFace > | mySubFaces |
| 2 or 3 sub-triangles of intersected face More... | |
| bool | IAmBelow |
| Is face below current intersection plane? More... | |
| FFaBody * | owner |
| Pointer to the body object containing this face. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &s, const FaFace &f) |
| Global stream operator printing the face definition. More... | |
Class representing a surface segment of a FFaBody object.
The class also have data and methods for calculating the intersection of the face with a given plane.
| FaFace::FaFace | ( | ) |
Default face constructor.
| FaFace::FaFace | ( | FFaBody * | body, |
| size_t | i1, | ||
| size_t | i2, | ||
| size_t | i3, | ||
| int | i4 = -1 |
||
| ) |
Constructor defining a face spanned by three or four vertices.
Accumulates area of an intersection surface.
This method accumulates area and centroid with contributions from a triangle defined by the two internal vertices of this face, the center vertex v0, and the normal vector vn of the face.
| double FaFace::accumulateVolume | ( | const FaVec3 & | v0, |
| FaVec3 & | Xc, | ||
| FFaTensor3 * | I | ||
| ) | const |
Accumulates volume with contribution from *this as surface segment.
This method accumulates volume, volume centroid, and optionally volume inertia with contributions from a tetrahedron defined by this face and the center vertex v0.
|
inline |
Returns the index of the intersecting edge.
| FaVec3 FaFace::getIntEdgeCoord | ( | ) | const |
Returns the sum of the end points of the intersecting edge.
|
inline |
Returns the sub-faces of the face when it is intersected.
| int FaFace::intersect | ( | const FaVec3 & | normal, |
| double | z0, | ||
| double | zeroTol = 1.0e-16 |
||
| ) |
Calculates the intersection with a given plane.
This method determines the intersection between a triangular face and a plane defined by a normal vector and the distance z0 from the origin along the global z-axis. If the face is intersected, it is subdivided into two or three sub-faces with one or two new vertices.
|
inline |
Returns true if face is totally below the intersection plane.
|
inline |
Returns true if face is intersected by the intersection plane.
|
inline |
Returns the global index of the i'th vertex of this face.
|
protected |
Divides the face into two quadrilateral sub-faces.
|
protected |
Divides the face into one triangle and two quadrilaterals.
|
inline |
Returns the number of face vertices.
|
inline |
Returns the coordinates of the i'th vertex of this face.
|
friend |
Global stream operator printing the face definition.
|
private |
Is face below current intersection plane?
|
private |
Vertices of the intersection edge, if any.
|
private |
2 or 3 sub-triangles of intersected face
|
private |
Indices to the vertices defining the face.
|
private |
Pointer to the body object containing this face.