43 for (
unsigned i = 0; i < 4; i++)
46 for (
unsigned j = 0; j < 2; j++)
48 for (
unsigned k = 0; k < 2; k++)
61 return std::numeric_limits<unsigned>::max();
77 *_nodes[0], *_nodes[2], *_nodes[1], *_nodes[3]) &&
79 *_nodes[1], *_nodes[3], *_nodes[0], *_nodes[2])));
Definition of the Node class.
Collects error flags for mesh elements.
virtual Node *const * getNodes() const =0
Get array of element nodes.
virtual bool testElementNodeOrder() const =0
static ElementErrorCode validate(const Element *e)
static double computeVolume(Node const *const *_nodes)
Calculates the volume of a convex hexahedron by partitioning it into six tetrahedra.
static unsigned identifyFace(Node const *const *, Node const *nodes[3])
Returns the ID of a face given an array of nodes.
static bool isPntInElement(Node const *const *nodes, MathLib::Point3d const &pnt, double eps)
static const unsigned edge_nodes[4][2]
Constant: Local node index table for edge.
double calcTriangleArea(MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c)
bool isCoplanar(const MathLib::Point3d &a, const MathLib::Point3d &b, const MathLib::Point3d &c, const MathLib::Point3d &d)
Checks if the four given points are located on a plane.
bool dividedByPlane(const MathLib::Point3d &a, const MathLib::Point3d &b, const MathLib::Point3d &c, const MathLib::Point3d &d)
bool isPointInTriangle(MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, double eps_pnt_out_of_plane, double eps_pnt_out_of_tri, MathLib::TriangleTest algorithm)
bool hasZeroVolume(MeshLib::Element const &element)
Returns true if the element has zero length/area/volume.