12#ifndef EBGeometry_Triangle2D
13#define EBGeometry_Triangle2D
182 computeWindingNumber(
const Vec2&
a_point)
const noexcept;
190 computeCrossingNumber(
const Vec2&
a_point)
const noexcept;
198 computeSubtendedAngle(
const Vec2&
a_point)
const noexcept;
202#include "EBGeometry_Triangle2DImplem.hpp"
Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.
Class for embedding a triangle face into 2D.
Definition EBGeometry_Triangle2D.hpp:38
bool isPointInsideSubtend(const Vec3 &a_point) const noexcept
Check if a point is inside a 2D polygon, using the subtended angles.
bool isPointInside(const Vec3 &a_point, InsideOutsideAlgorithm a_algorithm) const noexcept
Check if a point is inside or outside the 2D polygon.
bool isPointInsideWindingNumber(const Vec3 &a_point) const noexcept
Check if a point is inside a 2D polygon, using the winding number algorithm.
bool isPointInsideCrossingNumber(const Vec3 &a_point) const noexcept
Check if a point is inside a 2D polygon, by computing the number of times a ray crosses the polygon e...
InsideOutsideAlgorithm
Supported algorithms for performing inside/outside tests when checking if a point projects to the ins...
Definition EBGeometry_Triangle2D.hpp:55
Triangle2D() noexcept=default
Default constructor. Must subsequently call the define function.
Vec3T< T > Vec3
Alias for 3D vector type.
Definition EBGeometry_Triangle2D.hpp:48
Vec2T< T > Vec2
Alias for 2D vector type.
Definition EBGeometry_Triangle2D.hpp:43
void define(const Vec3 &a_normal, const std::array< Vec3, 3 > &a_vertices) noexcept
Define function. Puts object in usable state.
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:218
static constexpr Vec3T< T > max() noexcept
Return a vector with maximum representable components.
Name space for all of EBGeometry.
Definition EBGeometry.hpp:23