RINGMesh  Version 5.0.0
A programming library for geological model meshes
geometry.h File Reference
#include <array>
#include <ringmesh/basic/common.h>

Go to the source code of this file.

Classes

struct  RINGMesh::Geometry::Segment< DIMENSION >
 
struct  RINGMesh::Geometry::Line< DIMENSION >
 
struct  RINGMesh::Geometry::Plane
 
struct  RINGMesh::Geometry::Triangle< DIMENSION >
 
struct  RINGMesh::Geometry::Triangle< 3 >
 
struct  RINGMesh::Geometry::Tetra
 
struct  RINGMesh::Geometry::Sphere
 
struct  RINGMesh::Geometry::Circle
 

Namespaces

 RINGMesh
 Classes to build GeoModel from various inputs.
 
 RINGMesh::Geometry
 
 RINGMesh::Distance
 
 RINGMesh::Intersection
 
 RINGMesh::Position
 

Typedefs

template<index_t DIMENSION>
using RINGMesh::Geometry::Point = vecn< DIMENSION >
 
using RINGMesh::Geometry::Ball = Sphere
 
using RINGMesh::Geometry::Disk = Circle
 

Enumerations

enum  RINGMesh::Sign { RINGMesh::NEGATIVE = -1, RINGMesh::ZERO = 0, RINGMesh::POSITIVE = 1 }
 

Functions

template<index_t DIMENSION>
bool RINGMesh::operator== (const vecn< DIMENSION > &u, const vecn< DIMENSION > &v)
 
template<index_t DIMENSION>
bool RINGMesh::operator!= (const vecn< DIMENSION > &u, const vecn< DIMENSION > &v)
 
template<index_t DIMENSION>
bool RINGMesh::inexact_equal (const vecn< DIMENSION > &v1, const vecn< DIMENSION > &v2, double epsilon)
 
double RINGMESH_API RINGMesh::dot_perp (const vec2 &v0, const vec2 &v1)
 
template<typename T >
Sign RINGMesh::sign (T x)
 
 RINGMesh::Geometry::ALIAS_2D_AND_3D (Point)
 
 RINGMesh::Geometry::ALIAS_2D_AND_3D (Segment)
 
 RINGMesh::Geometry::ALIAS_2D_AND_3D (Line)
 
 RINGMesh::Geometry::ALIAS_2D_AND_3D (Triangle)
 
template<index_t DIMENSION>
std::tuple< double, vecn< DIMENSION > > RINGMesh::Distance::point_to_segment (const Geometry::Point< DIMENSION > &point, const Geometry::Segment< DIMENSION > &segment)
 
template<index_t DIMENSION>
std::tuple< double, vecn< DIMENSION > > RINGMesh::Distance::point_to_triangle (const Geometry::Point< DIMENSION > &point, const Geometry::Triangle< DIMENSION > &triangle)
 
std::tuple< double, vec3 > RINGMESH_API RINGMesh::Distance::point_to_tetra (const Geometry::Point3D &point, const Geometry::Tetra &tetra)
 
std::tuple< double, vec3 > RINGMESH_API RINGMesh::Distance::point_to_plane (const Geometry::Point3D &point, const Geometry::Plane &plane)
 
std::tuple< bool, vec3 > RINGMESH_API RINGMesh::Intersection::line_plane (const Geometry::Line3D &line, const Geometry::Plane &plane)
 
std::tuple< bool, std::vector< vec3 > > RINGMESH_API RINGMesh::Intersection::line_sphere (const Geometry::Line3D &line, const Geometry::Sphere &sphere)
 
std::tuple< bool, std::vector< vec3 > > RINGMESH_API RINGMesh::Intersection::segment_sphere (const Geometry::Segment3D &segment, const Geometry::Sphere &sphere)
 
std::tuple< bool, vec3 > RINGMESH_API RINGMesh::Intersection::segment_plane (const Geometry::Segment3D &segment, const Geometry::Plane &plane)
 
std::tuple< bool, vec3 > RINGMESH_API RINGMesh::Intersection::segment_triangle (const Geometry::Segment3D &segment, const Geometry::Triangle3D &triangle)
 
std::tuple< bool, std::vector< vec3 > > RINGMESH_API RINGMesh::Intersection::circle_plane (const Geometry::Circle &circle, const Geometry::Plane &plane)
 
std::tuple< bool, vec3 > RINGMESH_API RINGMesh::Intersection::segment_disk (const Geometry::Segment3D &segment, const Geometry::Disk &disk)
 
std::tuple< bool, std::vector< vec3 > > RINGMESH_API RINGMesh::Intersection::triangle_circle (const Geometry::Triangle3D &triangle, const Geometry::Circle &circle)
 
std::tuple< bool, Geometry::Line3D > RINGMESH_API RINGMesh::Intersection::plane_plane (const Geometry::Plane &plane0, const Geometry::Plane &plane1)
 
std::tuple< bool, vec2 > RINGMESH_API RINGMesh::Intersection::line_line (const Geometry::Line2D &line0, const Geometry::Line2D &line1)
 
std::tuple< bool, vec2 > RINGMESH_API RINGMesh::Intersection::segment_segment (const Geometry::Segment2D &segment0, const Geometry::Segment2D &segment1)
 
std::tuple< bool, vec2 > RINGMESH_API RINGMesh::Intersection::segment_line (const Geometry::Segment2D &segment, const Geometry::Line2D &line)
 
bool RINGMESH_API RINGMesh::Position::point_inside_segment (const Geometry::Point3D &point, const Geometry::Segment3D &segment)
 Tests if a point is on a segment. More...
 
template<index_t DIMENSION>
bool RINGMesh::Position::point_inside_triangle (const Geometry::Point< DIMENSION > &point, const Geometry::Triangle< DIMENSION > &triangle)
 Tests if a point is inside a triangle. More...
 
bool RINGMESH_API RINGMesh::Position::point_inside_tetra (const Geometry::Point3D &point, const Geometry::Tetra &tetra)
 
Sign RINGMESH_API RINGMesh::Position::point_side_to_segment (const Geometry::Point2D &point, const Geometry::Segment2D &segment)
 
Sign RINGMESH_API RINGMesh::Position::point_side_to_plane (const Geometry::Point3D &point, const Geometry::Plane &plane)
 
double RINGMESH_API RINGMesh::triangle_signed_area (const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &triangle_normal)
 
template<index_t DIMENSION>
std::tuple< bool, vecn< DIMENSION > > RINGMesh::point_segment_projection (const vecn< DIMENSION > &p, const vecn< DIMENSION > &p0, const vecn< DIMENSION > &p1)
 
std::tuple< bool, std::array< double, 4 > > RINGMESH_API RINGMesh::tetra_barycentric_coordinates (const vec3 &p, const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &p3)
 
std::tuple< bool, std::array< double, 3 > > RINGMESH_API RINGMesh::triangle_barycentric_coordinates (const vec3 &p, const vec3 &p0, const vec3 &p1, const vec3 &p2)
 
std::tuple< bool, std::array< double, 3 > > RINGMESH_API RINGMesh::triangle_barycentric_coordinates (const vec2 &p, const vec2 &p0, const vec2 &p1, const vec2 &p2)
 
GEO::Matrix< 4, double > RINGMESH_API RINGMesh::rotation_matrix_about_arbitrary_axis (const vec3 &origin, const vec3 &axis, double theta, bool degrees)
 Builds a rotational matrix about an arbitrary axis. More...