Triangle class and related functions. More...
#include <gz/math/Triangle.hh>
Public Member Functions | |
Triangle ()=default | |
Default constructor. More... | |
Triangle (const math::Vector2< T > &_pt1, const math::Vector2< T > &_pt2, const math::Vector2< T > &_pt3) | |
Constructor. More... | |
double | Area () const |
Get the area of this triangle. More... | |
bool | Contains (const Line2< T > &_line) const |
Check if this triangle completely contains the given line segment. More... | |
bool | Contains (const math::Vector2< T > &_pt) const |
Get whether this triangle contains the given point. More... | |
bool | Intersects (const Line2< T > &_line, math::Vector2< T > &_ipt1, math::Vector2< T > &_ipt2) const |
Get whether the given line intersects this triangle. More... | |
math::Vector2< T > | operator[] (const size_t _index) const |
Get one of points that define the triangle. More... | |
T | Perimeter () const |
Get the length of the triangle's perimeter. More... | |
void | Set (const math::Vector2< T > &_pt1, const math::Vector2< T > &_pt2, const math::Vector2< T > &_pt3) |
Set all vertices of the triangle. More... | |
void | Set (const unsigned int _index, const math::Vector2< T > &_pt) |
Set one vertex of the triangle. More... | |
Line2< T > | Side (const unsigned int _index) const |
Get a line segment for one side of the triangle. More... | |
bool | Valid () const |
Get whether this triangle is valid, based on triangle inequality: the sum of the lengths of any two sides must be greater than the length of the remaining side. More... | |
Detailed Description
template<typename T>
class gz::math::Triangle< T >
Triangle class and related functions.
Constructor & Destructor Documentation
◆ Triangle() [1/2]
|
default |
Default constructor.
◆ Triangle() [2/2]
|
inline |
Constructor.
- Parameters
-
[in] _pt1 First point that defines the triangle. [in] _pt2 Second point that defines the triangle. [in] _pt3 Third point that defines the triangle.
References Triangle< T >::Set().
Member Function Documentation
◆ Area()
|
inline |
Get the area of this triangle.
- Returns
- Triangle's area.
References Triangle< T >::Perimeter(), and Triangle< T >::Side().
◆ Contains() [1/2]
|
inline |
Check if this triangle completely contains the given line segment.
- Parameters
-
[in] _line Line to check.
- Returns
- True if the line's start and end points are both inside this triangle.
Referenced by Triangle< T >::Intersects().
◆ Contains() [2/2]
|
inline |
Get whether this triangle contains the given point.
- Parameters
-
[in] _pt Point to check.
- Returns
- True if the point is inside or on the triangle.
References Vector2< T >::Dot().
◆ Intersects()
|
inline |
Get whether the given line intersects this triangle.
- Parameters
-
[in] _line Line to check. [out] _ipt1 Return value of the first intersection point, only valid if the return value of the function is true. [out] _ipt2 Return value of the second intersection point, only valid if the return value of the function is true.
- Returns
- True if the given line intersects this triangle.
References set< K >::begin(), Triangle< T >::Contains(), set< K >::empty(), set< K >::insert(), Line2< T >::Intersect(), and set< K >::size().
◆ operator[]()
|
inline |
Get one of points that define the triangle.
- Parameters
-
[in] _index The index, where 0 == first vertex, 1 == second vertex, and 2 == third vertex. The index is clamped to the range [0, 2]
- Returns
- The point specified by _index.
References gz::math::clamp(), gz::math::GZ_TWO_SIZE_T, and gz::math::GZ_ZERO_SIZE_T.
◆ Perimeter()
|
inline |
Get the length of the triangle's perimeter.
- Returns
- Sum of the triangle's line segments.
References Triangle< T >::Side().
Referenced by Triangle< T >::Area().
◆ Set() [1/2]
|
inline |
Set all vertices of the triangle.
- Parameters
-
[in] _pt1 First point that defines the triangle. [in] _pt2 Second point that defines the triangle. [in] _pt3 Third point that defines the triangle.
◆ Set() [2/2]
|
inline |
Set one vertex of the triangle.
- Parameters
-
[in] _index Index of the point to set, where 0 == first vertex, 1 == second vertex, and 2 == third vertex. The index is clamped to the range [0, 2]. [in] _pt Value of the point to set.
References gz::math::clamp().
Referenced by Triangle< T >::Triangle().
◆ Side()
|
inline |
Get a line segment for one side of the triangle.
- Parameters
-
[in] _index Index of the side to retreive, where 0 == Line2(pt1, pt2), 1 == Line2(pt2, pt3), 2 == Line2(pt3, pt1) The index is clamped to the range [0, 2]
- Returns
- Line segment of the requested side.
Referenced by Triangle< T >::Area(), Triangle< T >::Perimeter(), and Triangle< T >::Valid().
◆ Valid()
|
inline |
Get whether this triangle is valid, based on triangle inequality: the sum of the lengths of any two sides must be greater than the length of the remaining side.
- Returns
- True if the triangle inequality holds
References Triangle< T >::Side().
The documentation for this class was generated from the following file: