Triangle class and related functions. More...
#include <ignition/math/Triangle.hh>
Public Member Functions | |
| Triangle ()=default | |
| Default constructor. | |
| Triangle (const math::Vector2< T > &_pt1, const math::Vector2< T > &_pt2, const math::Vector2< T > &_pt3) | |
| Constructor. | |
| double | Area () const |
| Get the area of this triangle. | |
| bool | Contains (const Line2< T > &_line) const |
| Check if this triangle completely contains the given line segment. | |
| bool | Contains (const math::Vector2< T > &_pt) const |
| Get whether this triangle contains the given point. | |
| bool | Intersects (const Line2< T > &_line, math::Vector2< T > &_ipt1, math::Vector2< T > &_ipt2) const |
| Get whether the given line intersects this triangle. | |
| math::Vector2< T > | operator[] (const size_t _index) const |
| Get one of points that define the triangle. | |
| T | Perimeter () const |
| Get the length of the triangle's perimeter. | |
| void | Set (const math::Vector2< T > &_pt1, const math::Vector2< T > &_pt2, const math::Vector2< T > &_pt3) |
| Set all vertices of the triangle. | |
| void | Set (const unsigned int _index, const math::Vector2< T > &_pt) |
| Set one vertex of the triangle. | |
| Line2< T > | Side (const unsigned int _index) const |
| Get a line segment for one side of the triangle. | |
| 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. | |
Triangle class and related functions.
|
default |
Default constructor.
|
inline |
Constructor.
| [in] | _pt1 | First point that defines the triangle. |
| [in] | _pt2 | Second point that defines the triangle. |
| [in] | _pt3 | Third point that defines the triangle. |
|
inline |
Get the area of this triangle.
|
inline |
Check if this triangle completely contains the given line segment.
| [in] | _line | Line to check. |
Referenced by ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Contains(), and ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Intersects().
|
inline |
Get whether this triangle contains the given point.
| [in] | _pt | Point to check. |
|
inline |
Get whether the given line intersects this triangle.
| [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. |
|
inline |
Get one of points that define the triangle.
| [in] | _index | The index, where 0 == first vertex, 1 == second vertex, and 2 == third vertex. The index is clamped to the range [0, 2] |
|
inline |
Get the length of the triangle's perimeter.
Referenced by ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Area().
|
inline |
Set all vertices of the triangle.
| [in] | _pt1 | First point that defines the triangle. |
| [in] | _pt2 | Second point that defines the triangle. |
| [in] | _pt3 | Third point that defines the triangle. |
|
inline |
Set one vertex of the triangle.
| [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. |
Referenced by ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Triangle().
|
inline |
Get a line segment for one side of the triangle.
| [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] |
Referenced by ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Area(), ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::Perimeter(), and ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Triangle< int >::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.