|
template<typename LINEDIR_TYPE , typename POINT_TYPE , typename NORMAL_TYPE , typename ORIGIN_TYPE , typename INTPOINT_TYPE > |
void | geosx::computationalGeometry::LinePlaneIntersection (LINEDIR_TYPE const &lineDir, POINT_TYPE const &linePoint, NORMAL_TYPE const &planeNormal, ORIGIN_TYPE const &planeOrigin, INTPOINT_TYPE &intersectionPoint) |
| Calculate the intersection between a line and a plane. More...
|
|
template<typename NORMAL_TYPE > |
void | geosx::computationalGeometry::orderPointsCCW (arrayView2d< real64 > const &points, NORMAL_TYPE const &normal) |
| Reorder a set of points counter-clockwise. More...
|
|
template<typename NORMAL_TYPE > |
real64 | geosx::computationalGeometry::ComputeSurfaceArea (arrayView2d< real64 const > const &points, NORMAL_TYPE const &&normal) |
| Calculate the area of a polygon given the set of points in ccw order defining it. More...
|
|
template<typename CENTER_TYPE , typename NORMAL_TYPE > |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE real64 | geosx::computationalGeometry::Centroid_3DPolygon (arraySlice1d< localIndex const > const pointsIndices, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &points, CENTER_TYPE &¢er, NORMAL_TYPE &&normal, real64 const areaTolerance=0.0) |
| Calculate the centroid of a convex 3D polygon as well as the normal and the rotation matrix. More...
|
|
template<typename NORMAL_TYPE > |
GEOSX_HOST_DEVICE void | geosx::computationalGeometry::FixNormalOrientation_3D (NORMAL_TYPE &&normal) |
| Change the orientation of the input vector to be consistent in a global sense. More...
|
|
template<typename NORMAL_TYPE , typename MATRIX_TYPE > |
GEOSX_HOST_DEVICE void | geosx::computationalGeometry::RotationMatrix_3D (NORMAL_TYPE const &normal, MATRIX_TYPE &&rotationMatrix) |
| Calculate the rotation matrix for a face in the 3D space. More...
|
|
template<typename T > |
GEOSX_HOST_DEVICE GEOSX_FORCE_INLINE int | geosx::computationalGeometry::sign (T const val) |
| Return the sign of a given value as an integer. More...
|
|
template<typename POINT_TYPE > |
GEOSX_HOST_DEVICE bool | geosx::computationalGeometry::IsPointInsidePolyhedron (arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &nodeCoordinates, array1d< array1d< localIndex > > const &faceNodeIndicies, POINT_TYPE const &point, real64 const areaTolerance=0.0) |
| Check if a point is inside a convex polyhedron (3D polygon) More...
|
|
template<typename VEC_TYPE > |
GEOSX_HOST_DEVICE void | geosx::computationalGeometry::GetBoundingBox (localIndex const elemIndex, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &pointIndices, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &pointCoordinates, VEC_TYPE &&boxDims) |
| Compute the dimensions of the bounding box containing the element defined here by the coordinates of its vertices. More...
|
|
GEOSX_HOST_DEVICE real64 | geosx::computationalGeometry::HexVolume (real64 const X[][3]) |
| Compute the volume of an hexahedron. More...
|
|
GEOSX_HOST_DEVICE real64 | geosx::computationalGeometry::TetVolume (real64 const X[][3]) |
| Compute the volume of an tetrahedron. More...
|
|
GEOSX_HOST_DEVICE real64 | geosx::computationalGeometry::WedgeVolume (real64 const X[][3]) |
| Compute the volume of a wedge. More...
|
|
GEOSX_HOST_DEVICE real64 | geosx::computationalGeometry::PyramidVolume (real64 const X[][3]) |
| Compute the volume of a pyramid. More...
|
|
template<typename CENTER_TYPE , typename NORMAL_TYPE >
Calculate the centroid of a convex 3D polygon as well as the normal and the rotation matrix.
- Template Parameters
-
CENTER_TYPE | The type of center . |
NORMAL_TYPE | The type of normal . |
- Parameters
-
[in] | pointsIndices | list of index references for the points array in order (CW or CCW) about the polygon loop |
[in] | points | 3D point list |
[out] | center | 3D center of the given ordered polygon point list |
[out] | normal | normal to the face |
[in] | areaTolerance | tolerance used in the geometric computations |
- Returns
- area of the convex 3D polygon
if area < - areaTolerance, this function will throw an error, and if (- areaTolerance <= area <= areaTolerance), the area is set to zero
Definition at line 193 of file ComputationalGeometry.hpp.
template<typename LINEDIR_TYPE , typename POINT_TYPE , typename NORMAL_TYPE , typename ORIGIN_TYPE , typename INTPOINT_TYPE >
void geosx::computationalGeometry::LinePlaneIntersection |
( |
LINEDIR_TYPE const & |
lineDir, |
|
|
POINT_TYPE const & |
linePoint, |
|
|
NORMAL_TYPE const & |
planeNormal, |
|
|
ORIGIN_TYPE const & |
planeOrigin, |
|
|
INTPOINT_TYPE & |
intersectionPoint |
|
) |
| |
Calculate the intersection between a line and a plane.
- Template Parameters
-
LINEDIR_TYPE | the type of lineDir |
POINT_TYPE | the type of linePoint |
NORMAL_TYPE | the type of planeNormal |
ORIGIN_TYPE | the type of planeOrigin |
INTPOINT_TYPE | the type of instersectionPoint |
- Parameters
-
[in] | lineDir | vector defining direction of the line |
[in] | linePoint | one point of the line |
[in] | planeNormal | normal to plane |
[in] | planeOrigin | plane origin |
[out] | intersectionPoint | the intersection point |
Definition at line 53 of file ComputationalGeometry.hpp.