33template <u
int8_t dim>
class Edge;
34template <u
int8_t dim>
class Triangle;
49 static_assert((
dim == 1 ||
dim == 2 ||
dim == 3),
"Dimension must be one, two, or three.");
125 const Float tol = GEOMETRY_DEFAULT_TOL
149 const Float tol = GEOMETRY_DEFAULT_TOL
163 const Float tol = GEOMETRY_DEFAULT_TOL
177 const Float tol = GEOMETRY_DEFAULT_TOL
191 const Float tol = GEOMETRY_DEFAULT_TOL
205 const Float tol = GEOMETRY_DEFAULT_TOL
219 const Float tol = GEOMETRY_DEFAULT_TOL
234 const Float tol = GEOMETRY_DEFAULT_TOL
Geometry operations class.
static EigMatNX< Complex, dim > cartesian_to_polar_field(ConstEigRef< EigMatNX< Float, dim > > points, ConstEigRef< EigMatNX< Complex, dim > > field)
Transforms a vector field in Cartesian space to polar (2D) or spherical (3D) space.
static EigRowVec< Float > directed_angle_between_vectors(ConstEigRef< EigMatNX< Float, dim > > v1, ConstEigRef< EigMatNX< Float, dim > > v2)
Returns the directional angles between pairs of vectors in a right-hand system where counter-clockwis...
static bool point_in_polygon(ConstEigRef< EigColVecN< Float, dim > > &point, ConstEigRef< EigMatNX< Float, dim > > &polygon, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if a point is inside a polygon using ray casting.
static EigRowVec< Float > angle_between_vectors(ConstEigRef< EigMatNX< Float, dim > > v1, ConstEigRef< EigMatNX< Float, dim > > v2)
Returns the angles between pairs of vectors in radians.
static bool check_coplanar_triangles(const Triangle< 3 > &triangle1, const Triangle< 3 > &triangle2, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if two triangles are coplanar.
static uint8_t common_vertices(const Triangle< dim > &triangle1, const Triangle< dim > &triangle2, const Float tol=GEOMETRY_DEFAULT_TOL)
Returns the number of vertices common or coinciding between two Triangle objects.
static int8_t check_parallel_triangles(const Triangle< 3 > &triangle1, const Triangle< 3 > &triangle2, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if the normal vectors of two triangles are (anti-)parallel.
static EigMatNX< Float, dim > transform_coordinate_system(ConstEigRef< EigMatNX< Float, dim > > v_in, ConstEigRef< EigColVecN< Float, dim > > new_origin, ConstEigRef< EigMatMN< Float, dim, dim > > new_uvw)
Transforms the given coordinates to a new coordinate system defined by a new origin and orthogonal un...
static EigMatNX< Float, dim > polar_to_cartesian(ConstEigRef< EigMatNX< Float, dim > > points)
Transforms polar (2D) or spherical (3D) coordinates to Cartesian.
static bool check_perpendicular_triangles(const Triangle< 3 > &triangle1, const Triangle< 3 > &triangle2, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if the normal vectors of two triangles are perpendicular.
static bool check_perpendicular_edges(const Edge< dim > &edge1, const Edge< dim > &edge2, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if two edges are perpendicular.
static int8_t check_parallel_edges(const Edge< dim > &edge1, const Edge< dim > &edge2, const Float tol=GEOMETRY_DEFAULT_TOL)
Checks if two edges are (anti-)parallel.
const Float float_eps
Numerical infinitesimal.
Eigen::Ref< EigObj > EigRef
Writable reference to an Eigen object.
const Eigen::Ref< const EigObj > ConstEigRef
Read-only reference to an Eigen object.
double Float
Floating point number.
Eigen::Matrix< T, N, 1 > EigColVecN
Fixed-size column vector of size N containing type T.
Primary namespace for the OpenBEM library.