| 
    GEOS
    
   | 
 
#include "common/DataTypes.hpp"#include "common/DataLayouts.hpp"#include "finiteElement/elementFormulations/H1_Hexahedron_Lagrange1_GaussLegendre2.hpp"#include "finiteElement/elementFormulations/H1_Pyramid_Lagrange1_Gauss5.hpp"#include "finiteElement/elementFormulations/H1_Tetrahedron_Lagrange1_Gauss.hpp"#include "finiteElement/elementFormulations/H1_Wedge_Lagrange1_Gauss6.hpp"#include "LvArray/src/output.hpp"#include "LvArray/src/tensorOps.hpp"Go to the source code of this file.
Namespaces | |
| geos | |
Functions | |
| template<typename LINEDIR_TYPE , typename POINT_TYPE , typename NORMAL_TYPE , typename ORIGIN_TYPE , typename INTPOINT_TYPE > | |
| void | geos::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 > | |
| array1d< int > | geos::computationalGeometry::orderPointsCCW (arrayView2d< real64 > const &points, NORMAL_TYPE const &normal) | 
| Reorder a set of points counter-clockwise.  More... | |
| template<typename NORMAL_TYPE > | |
| real64 | geos::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<localIndex DIMENSION, typename POINT_COORDS_TYPE > | |
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE real64 | geos::computationalGeometry::computeDiameter (POINT_COORDS_TYPE points, localIndex const &numPoints) | 
| Calculate the diameter of a set of points in a given dimension.  More... | |
| template<typename CENTER_TYPE , typename NORMAL_TYPE > | |
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE real64 | geos::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 > | |
| GEOS_HOST_DEVICE void | geos::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 > | |
| GEOS_HOST_DEVICE void | geos::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 > | |
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE int | geos::computationalGeometry::sign (T const val) | 
| Return the sign of a given value as an integer.  More... | |
| template<typename POINT_TYPE > | |
| GEOS_HOST_DEVICE bool | geos::computationalGeometry::isPointInsidePolyhedron (arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &nodeCoordinates, arraySlice1d< localIndex const > const &faceIndices, ArrayOfArraysView< localIndex const > const &facesToNodes, POINT_TYPE const &elemCenter, POINT_TYPE const &point, real64 const areaTolerance=0.0) | 
| Check if a point is inside a convex polyhedron (3D polygon)  More... | |
| template<typename POLYGON_TYPE , typename POINT_TYPE > | |
| bool | geos::computationalGeometry::isPointInPolygon2d (POLYGON_TYPE const &polygon, integer n, POINT_TYPE const &point, real64 const tol=1e-10) | 
| Check if a point is inside a polygon (2D version)  More... | |
| template<typename POLYGON_TYPE , typename POINT_TYPE > | |
| bool | geos::computationalGeometry::isPointInPolygon3d (POLYGON_TYPE const &polygon, integer const n, POINT_TYPE const &point, real64 const tol=1e-10) | 
| Check if a point is inside a polygon (3D version)  More... | |
| template<typename COORD_TYPE , typename POINT_TYPE > | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::lexicographicalCompareVertex (POINT_TYPE const ax, POINT_TYPE const ay, POINT_TYPE const az, COORD_TYPE const bx, COORD_TYPE const by, COORD_TYPE const bz) | 
| Method to perform lexicographic comparison of two nodes based on coordinates.  More... | |
| template<typename COORD_TYPE , typename POINT_TYPE > | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::lexicographicalCompareEdge (POINT_TYPE const ax, POINT_TYPE const ay, POINT_TYPE const az, COORD_TYPE const e1x, COORD_TYPE const e1y, COORD_TYPE const e1z, COORD_TYPE const e2x, COORD_TYPE const e2y, COORD_TYPE const e2z) | 
| Method to perform lexicographic comparison of a node and an edge based on coordinates.  More... | |
| template<typename COORD_TYPE , typename POINT_TYPE > | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::lexicographicalCompareTriangle (POINT_TYPE const ax, POINT_TYPE const ay, POINT_TYPE const az, COORD_TYPE const t1x, COORD_TYPE const t1y, COORD_TYPE const t1z, COORD_TYPE const t2x, COORD_TYPE const t2y, COORD_TYPE const t2z, COORD_TYPE const t3x, COORD_TYPE const t3y, COORD_TYPE const t3z) | 
| Method to perform lexicographic comparison of a node and a triangle based on coordinates.  More... | |
| template<typename ... LIST_TYPE> | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::findVertexRefElement (arraySlice1d< localIndex const > const &nodeElements, arrayView1d< globalIndex const > const &elementGlobalIndex) | 
| Method to find the reference element touching a vertex. The element with the lowest global ID is chosen from the list.  More... | |
| template<typename ... LIST_TYPE> | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::findEdgeRefElement (arraySlice1d< localIndex const > const &nodeElements1, arraySlice1d< localIndex const > const &nodeElements2, arrayView1d< globalIndex const > const &elementGlobalIndex) | 
| Method to find the reference element for an edge. The element with the lowest global ID is chosen from the list.  More... | |
| template<typename ... LIST_TYPE> | |
| GEOS_HOST_DEVICE int | geos::computationalGeometry::findTriangleRefElement (arraySlice1d< localIndex const > const &nodeElements1, arraySlice1d< localIndex const > const &nodeElements2, arraySlice1d< localIndex const > const &nodeElements3, arrayView1d< globalIndex const > const &elementGlobalIndex) | 
| Method to find the reference element for a triangle. The element with the lowest global ID is chosen from the list.  More... | |
| template<typename COORD_TYPE , typename POINT_TYPE > | |
| GEOS_HOST_DEVICE bool | geos::computationalGeometry::computeWindingNumber (localIndex element, arrayView2d< COORD_TYPE const, nodes::REFERENCE_POSITION_USD > const &nodeCoordinates, arrayView2d< localIndex const > const &elementsToFaces, ArrayOfArraysView< localIndex const > const &facesToNodes, ArrayOfArraysView< localIndex const > const &nodesToElements, arrayView1d< globalIndex const > const &nodeLocalToGlobal, arrayView1d< globalIndex const > const &elementLocalToGlobal, POINT_TYPE const &elemCenter, POINT_TYPE const &point) | 
| Computes the winding number of a point with respect to a mesh element.  More... | |
| template<typename COORD_TYPE , typename POINT_TYPE > | |
| GEOS_HOST_DEVICE bool | geos::computationalGeometry::isPointInsideConvexPolyhedronRobust (localIndex element, arrayView2d< COORD_TYPE const, nodes::REFERENCE_POSITION_USD > const &nodeCoordinates, arrayView2d< localIndex const > const &elementsToFaces, ArrayOfArraysView< localIndex const > const &facesToNodes, ArrayOfArraysView< localIndex const > const &nodesToElements, arrayView1d< globalIndex const > const &nodeLocalToGlobal, arrayView1d< globalIndex const > const &elementLocalToGlobal, POINT_TYPE const &elemCenter, POINT_TYPE const &point) | 
| Check if a point is inside a convex polyhedron (3D polygon), using a robust method to avoid ambiguity when the point lies on an interface. This method is based on the following method:  More... | |
| template<typename NODE_MAP_TYPE , typename VEC_TYPE > | |
| GEOS_HOST_DEVICE void | geos::computationalGeometry::getBoundingBox (localIndex const elemIndex, NODE_MAP_TYPE 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... | |
| template<typename FE_TYPE > | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::elementVolume (real64 const (&X)[FE_TYPE::numNodes][3]) | 
| Compute the volume of an element (tetrahedron, pyramid, wedge, hexahedron)  More... | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::hexahedronVolume (real64 const (&X)[8][3]) | 
| Compute the volume of an hexahedron.  More... | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::tetrahedronVolume (real64 const (&X)[4][3]) | 
| Compute the volume of an tetrahedron.  More... | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::wedgeVolume (real64 const (&X)[6][3]) | 
| Compute the volume of a wedge.  More... | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::pyramidVolume (real64 const (&X)[5][3]) | 
| Compute the volume of a pyramid.  More... | |
| template<integer N> | |
| GEOS_HOST_DEVICE real64 | geos::computationalGeometry::prismVolume (real64 const (&X)[2 *N][3]) | 
| Compute the volume of a prism with N-sided polygon base.  More... | |
Variables | |
| constexpr real64 | geos::computationalGeometry::machinePrecision = LvArray::NumericLimits< real64 >::epsilon | 
| Machine epsilon for double-precision calculations.  | |
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE real64 geos::computationalGeometry::centroid_3DPolygon | ( | arraySlice1d< localIndex const > const | pointsIndices, | 
| arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const & | points, | ||
| CENTER_TYPE && | center, | ||
| 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.
| CENTER_TYPE | The type of center.  | 
| NORMAL_TYPE | The type of normal.  | 
| [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 | 
if area < - areaTolerance, this function will throw an error, and if (- areaTolerance <= area <= areaTolerance), the area is set to zero
Definition at line 234 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE real64 geos::computationalGeometry::computeDiameter | ( | POINT_COORDS_TYPE | points, | 
| localIndex const & | numPoints | ||
| ) | 
Calculate the diameter of a set of points in a given dimension.
| DIMENSION | The dimensionality of the points. | 
| POINT_COORDS_TYPE | The type of the container holding the point coordinates. | 
| [in] | points | The container holding the coordinates of the points. | 
| [in] | numPoints | The number of points in the container. | 
Definition at line 194 of file ComputationalGeometry.hpp.
| real64 geos::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.
| NORMAL_TYPE | the type of normal  | 
| [in] | points | coordinates of the points | 
| [in] | normal | vector normal to the plane | 
Definition at line 153 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE bool geos::computationalGeometry::computeWindingNumber | ( | localIndex | element, | 
| arrayView2d< COORD_TYPE const, nodes::REFERENCE_POSITION_USD > const & | nodeCoordinates, | ||
| arrayView2d< localIndex const > const & | elementsToFaces, | ||
| ArrayOfArraysView< localIndex const > const & | facesToNodes, | ||
| ArrayOfArraysView< localIndex const > const & | nodesToElements, | ||
| arrayView1d< globalIndex const > const & | nodeLocalToGlobal, | ||
| arrayView1d< globalIndex const > const & | elementLocalToGlobal, | ||
| POINT_TYPE const & | elemCenter, | ||
| POINT_TYPE const & | point | ||
| ) | 
Computes the winding number of a point with respect to a mesh element.
| POINT_TYPE | type of point  | 
| [in] | element | the element to be checked | 
| [in] | nodeCoordinates | a global array of nodal coordinates | 
| [in] | elementsToFaces | map from elements to faces | 
| [in] | facesToNodes | map from faces to nodes | 
| [in] | nodesToElements | map from nodes to elements | 
| [in] | nodeLocalToGlobal | global indices of nodes | 
| [in] | elementLocalToGlobal | global indices of elements | 
| [in] | elemCenter | coordinates of the element centroid | 
| [in] | point | coordinates of the query point | 
Definition at line 798 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of an element (tetrahedron, pyramid, wedge, hexahedron)
| FE_TYPE | the type of finite element space | 
| [in] | X | vertices of the element | 
Definition at line 1018 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::findEdgeRefElement | ( | arraySlice1d< localIndex const > const & | nodeElements1, | 
| arraySlice1d< localIndex const > const & | nodeElements2, | ||
| arrayView1d< globalIndex const > const & | elementGlobalIndex | ||
| ) | 
Method to find the reference element for an edge. The element with the lowest global ID is chosen from the list.
| [in] | nodeElements1 | the list of elements adjacent to the first node | 
| [in] | nodeElements2 | the list of elements adjacent to the second node | 
| [in] | elementGlobalIndex | the global IDs for elements | 
Definition at line 716 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::findTriangleRefElement | ( | arraySlice1d< localIndex const > const & | nodeElements1, | 
| arraySlice1d< localIndex const > const & | nodeElements2, | ||
| arraySlice1d< localIndex const > const & | nodeElements3, | ||
| arrayView1d< globalIndex const > const & | elementGlobalIndex | ||
| ) | 
Method to find the reference element for a triangle. The element with the lowest global ID is chosen from the list.
| [in] | nodeElements1 | the list of elements adjacent to the first node | 
| [in] | nodeElements2 | the list of elements adjacent to the second node | 
| [in] | nodeElements3 | the list of elements adjacent to the third node | 
| [in] | elementGlobalIndex | the global IDs for elements | 
Definition at line 752 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::findVertexRefElement | ( | arraySlice1d< localIndex const > const & | nodeElements, | 
| arrayView1d< globalIndex const > const & | elementGlobalIndex | ||
| ) | 
Method to find the reference element touching a vertex. The element with the lowest global ID is chosen from the list.
| [in] | nodeElements | the list of elements adjacent to the vertex | 
| [in] | elementGlobalIndex | the global IDs for elements | 
Definition at line 689 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE void geos::computationalGeometry::FixNormalOrientation_3D | ( | NORMAL_TYPE && | normal | ) | 
Change the orientation of the input vector to be consistent in a global sense.
| NORMAL_TYPE | type of normal  | 
| [in,out] | normal | normal to the face | 
Definition at line 294 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE void geos::computationalGeometry::getBoundingBox | ( | localIndex const | elemIndex, | 
| NODE_MAP_TYPE 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.
| VEC_TYPE | type of boxDims  | 
| [in] | elemIndex | index of the element in pointIndices. | 
| [in] | pointIndices | the indices of the vertices in pointCoordinates. | 
| [in] | pointCoordinates | the vertices coordinates. | 
| [out] | boxDims | The dimensions of the bounding box. | 
Definition at line 983 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of an hexahedron.
| [in] | X | vertices of the hexahedron | 
Definition at line 1035 of file ComputationalGeometry.hpp.
| bool geos::computationalGeometry::isPointInPolygon2d | ( | POLYGON_TYPE const & | polygon, | 
| integer | n, | ||
| POINT_TYPE const & | point, | ||
| real64 const | tol = 1e-10  | 
        ||
| ) | 
Check if a point is inside a polygon (2D version)
| POLYGON_TYPE | type of polygon  | 
| POINT_TYPE | type of point  | 
| [in] | polygon | array of polygon nodes coordinates | 
| [in] | n | number of polygon nodes | 
| [in] | point | coordinates of the query point | 
| [in] | tol | tolerance for coordinate comparisons | 
Definition at line 447 of file ComputationalGeometry.hpp.
| bool geos::computationalGeometry::isPointInPolygon3d | ( | POLYGON_TYPE const & | polygon, | 
| integer const | n, | ||
| POINT_TYPE const & | point, | ||
| real64 const | tol = 1e-10  | 
        ||
| ) | 
Check if a point is inside a polygon (3D version)
| POLYGON_TYPE | type of polygon  | 
| POINT_TYPE | type of point  | 
| [in] | polygon | array of polygon nodes coordinates | 
| [in] | n | number of polygon nodes | 
| [in] | point | coordinates of the query point | 
| [in] | tol | tolerance for coordinate comparisons | 
Definition at line 504 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE bool geos::computationalGeometry::isPointInsideConvexPolyhedronRobust | ( | localIndex | element, | 
| arrayView2d< COORD_TYPE const, nodes::REFERENCE_POSITION_USD > const & | nodeCoordinates, | ||
| arrayView2d< localIndex const > const & | elementsToFaces, | ||
| ArrayOfArraysView< localIndex const > const & | facesToNodes, | ||
| ArrayOfArraysView< localIndex const > const & | nodesToElements, | ||
| arrayView1d< globalIndex const > const & | nodeLocalToGlobal, | ||
| arrayView1d< globalIndex const > const & | elementLocalToGlobal, | ||
| POINT_TYPE const & | elemCenter, | ||
| POINT_TYPE const & | point | ||
| ) | 
Check if a point is inside a convex polyhedron (3D polygon), using a robust method to avoid ambiguity when the point lies on an interface. This method is based on the following method:
| POINT_TYPE | type of point  | 
| [in] | element | the element to be checked | 
| [in] | nodeCoordinates | a global array of nodal coordinates | 
| [in] | elementsToFaces | map from elements to faces | 
| [in] | facesToNodes | map from faces to nodes | 
| [in] | nodesToElements | map from nodes to elements | 
| [in] | nodeLocalToGlobal | global indices of nodes | 
| [in] | elementLocalToGlobal | global indices of elements | 
| [in] | elemCenter | coordinates of the element centroid | 
| [in] | point | coordinates of the query point | 
Definition at line 959 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE bool geos::computationalGeometry::isPointInsidePolyhedron | ( | arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const & | nodeCoordinates, | 
| arraySlice1d< localIndex const > const & | faceIndices, | ||
| ArrayOfArraysView< localIndex const > const & | facesToNodes, | ||
| POINT_TYPE const & | elemCenter, | ||
| POINT_TYPE const & | point, | ||
| real64 const | areaTolerance = 0.0  | 
        ||
| ) | 
Check if a point is inside a convex polyhedron (3D polygon)
| POINT_TYPE | type of point  | 
| [in] | nodeCoordinates | a global array of nodal coordinates | 
| [in] | faceIndices | global indices of the faces of the cell | 
| [in] | facesToNodes | map from face to nodes | 
| [in] | elemCenter | coordinates of the element center | 
| [in] | point | coordinates of the query point | 
| [in] | areaTolerance | same as in centroid_3DPolygon | 
Definition at line 399 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::lexicographicalCompareEdge | ( | POINT_TYPE const | ax, | 
| POINT_TYPE const | ay, | ||
| POINT_TYPE const | az, | ||
| COORD_TYPE const | e1x, | ||
| COORD_TYPE const | e1y, | ||
| COORD_TYPE const | e1z, | ||
| COORD_TYPE const | e2x, | ||
| COORD_TYPE const | e2y, | ||
| COORD_TYPE const | e2z | ||
| ) | 
Method to perform lexicographic comparison of a node and an edge based on coordinates.
| COORD_TYPE | type of coordinate | 
| POINT_TYPE | type of point | 
| [in] | ax | x-coordinate of the first vertex | 
| [in] | ay | y-coordinate of the first vertex | 
| [in] | az | z-coordinate of the first vertex | 
| [in] | e1x | x-coordinate of the first edge vertex | 
| [in] | e1y | y-coordinate of the first edge vertex | 
| [in] | e1z | z-coordinate of the first edge vertex | 
| [in] | e2x | x-coordinate of the second edge vertex | 
| [in] | e2y | y-coordinate of the second edge vertex | 
| [in] | e2z | z-coordinate of the second edge vertex | 
Definition at line 625 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::lexicographicalCompareTriangle | ( | POINT_TYPE const | ax, | 
| POINT_TYPE const | ay, | ||
| POINT_TYPE const | az, | ||
| COORD_TYPE const | t1x, | ||
| COORD_TYPE const | t1y, | ||
| COORD_TYPE const | t1z, | ||
| COORD_TYPE const | t2x, | ||
| COORD_TYPE const | t2y, | ||
| COORD_TYPE const | t2z, | ||
| COORD_TYPE const | t3x, | ||
| COORD_TYPE const | t3y, | ||
| COORD_TYPE const | t3z | ||
| ) | 
Method to perform lexicographic comparison of a node and a triangle based on coordinates.
| COORD_TYPE | type of coordinate | 
| POINT_TYPE | type of point | 
| [in] | ax | x-coordinate of the first vertex | 
| [in] | ay | y-coordinate of the first vertex | 
| [in] | az | z-coordinate of the first vertex | 
| [in] | t1x | x-coordinate of the first triangle vertex | 
| [in] | t1y | y-coordinate of the first triangle vertex | 
| [in] | t1z | z-coordinate of the first triangle vertex | 
| [in] | t2x | x-coordinate of the second triangle vertex | 
| [in] | t2y | y-coordinate of the second triangle vertex | 
| [in] | t2z | z-coordinate of the second triangle vertex | 
| [in] | t3x | x-coordinate of the third triangle vertex | 
| [in] | t3y | y-coordinate of the third triangle vertex | 
| [in] | t3z | z-coordinate of the third triangle vertex | 
Definition at line 657 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE int geos::computationalGeometry::lexicographicalCompareVertex | ( | POINT_TYPE const | ax, | 
| POINT_TYPE const | ay, | ||
| POINT_TYPE const | az, | ||
| COORD_TYPE const | bx, | ||
| COORD_TYPE const | by, | ||
| COORD_TYPE const | bz | ||
| ) | 
Method to perform lexicographic comparison of two nodes based on coordinates.
| COORD_TYPE | type of coordinate | 
| POINT_TYPE | type of point | 
| [in] | ax | x-coordinate of the first vertex | 
| [in] | ay | y-coordinate of the first vertex | 
| [in] | az | z-coordinate of the first vertex | 
| [in] | bx | x-coordinate of the second vertex | 
| [in] | by | y-coordinate of the second vertex | 
| [in] | bz | z-coordinate of the second vertex | 
Definition at line 590 of file ComputationalGeometry.hpp.
| void geos::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.
| 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  | 
| [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 58 of file ComputationalGeometry.hpp.
| array1d< int > geos::computationalGeometry::orderPointsCCW | ( | arrayView2d< real64 > const & | points, | 
| NORMAL_TYPE const & | normal | ||
| ) | 
Reorder a set of points counter-clockwise.
| NORMAL_TYPE | the type of normal  | 
| [in] | points | coordinates of the points | 
| [in] | normal | vector normal to the plane | 
Definition at line 87 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of a prism with N-sided polygon base.
| N | the number of sides in the polygon base | 
| [in] | X | vertices of the prism | 
Definition at line 1089 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of a pyramid.
| [in] | X | vertices of the pyramid | 
Definition at line 1071 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE void geos::computationalGeometry::RotationMatrix_3D | ( | NORMAL_TYPE const & | normal, | 
| MATRIX_TYPE && | rotationMatrix | ||
| ) | 
Calculate the rotation matrix for a face in the 3D space.
| NORMAL_TYPE | type of normal  | 
| MATRIX_TYPE | type of rotationMatrix  | 
| [in] | normal | normal to the face | 
| [out] | rotationMatrix | rotation matrix for the face | 
Definition at line 331 of file ComputationalGeometry.hpp.
| GEOS_HOST_DEVICE GEOS_FORCE_INLINE int geos::computationalGeometry::sign | ( | T const | val | ) | 
Return the sign of a given value as an integer.
| T | type of value | 
| val | the value in question | 
Definition at line 379 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of an tetrahedron.
| [in] | X | vertices of the tetrahedron | 
Definition at line 1047 of file ComputationalGeometry.hpp.
      
  | 
  inline | 
Compute the volume of a wedge.
| [in] | X | vertices of the wedge | 
Definition at line 1059 of file ComputationalGeometry.hpp.