All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
Public Member Functions | List of all members
ignition::math::Triangle< T > Class Template Reference

Triangle class and related functions. More...

#include <ignition/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[] (size_t _index) const
 Get one of points that define the triangle. More...
 
Perimeter () const
 Get the length of the triangle's perimeter. More...
 
void Set (unsigned int _index, const math::Vector2< T > &_pt)
 Set one vertex of the triangle. 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...
 
Line2< T > Side (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 ignition::math::Triangle< T >

Triangle class and related functions.

Constructor & Destructor Documentation

template<typename T >
ignition::math::Triangle< T >::Triangle ( )
default

Default constructor.

template<typename T >
ignition::math::Triangle< T >::Triangle ( const math::Vector2< T > &  _pt1,
const math::Vector2< T > &  _pt2,
const math::Vector2< T > &  _pt3 
)
inline

Constructor.

Parameters
[in]_pt1First point that defines the triangle.
[in]_pt2Second point that defines the triangle.
[in]_pt3Third point that defines the triangle.

References ignition::math::Triangle< T >::Set().

Member Function Documentation

template<typename T >
double ignition::math::Triangle< T >::Area ( ) const
inline

Get the area of this triangle.

Returns
Triangle's area.

References ignition::math::Triangle< T >::Perimeter(), and ignition::math::Triangle< T >::Side().

template<typename T >
bool ignition::math::Triangle< T >::Contains ( const Line2< T > &  _line) const
inline

Check if this triangle completely contains the given line segment.

Parameters
[in]_lineLine to check.
Returns
True if the line's start and end points are both inside this triangle.

Referenced by ignition::math::Triangle< T >::Intersects().

template<typename T >
bool ignition::math::Triangle< T >::Contains ( const math::Vector2< T > &  _pt) const
inline

Get whether this triangle contains the given point.

Parameters
[in]_ptPoint to check.
Returns
True if the point is inside or on the triangle.

References ignition::math::Vector2< T >::Dot().

template<typename T >
bool ignition::math::Triangle< T >::Intersects ( const Line2< T > &  _line,
math::Vector2< T > &  _ipt1,
math::Vector2< T > &  _ipt2 
) const
inline

Get whether the given line intersects this triangle.

Parameters
[in]_lineLine to check.
[out]_ipt1Return value of the first intersection point, only valid if the return value of the function is true.
[out]_ipt2Return 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 ignition::math::Triangle< T >::Contains(), and ignition::math::Line2< T >::Intersect().

template<typename T >
math::Vector2<T> ignition::math::Triangle< T >::operator[] ( size_t  _index) const
inline

Get one of points that define the triangle.

Parameters
[in]_index0, 1, or 2.
Exceptions
IndexExceptionif _index is > 2.
template<typename T >
T ignition::math::Triangle< T >::Perimeter ( ) const
inline

Get the length of the triangle's perimeter.

Returns
Sum of the triangle's line segments.

References ignition::math::Triangle< T >::Side().

Referenced by ignition::math::Triangle< T >::Area().

template<typename T >
void ignition::math::Triangle< T >::Set ( unsigned int  _index,
const math::Vector2< T > &  _pt 
)
inline

Set one vertex of the triangle.

Parameters
[in]_indexIndex of the point to set.
[in]_ptValue of the point to set.
Exceptions
IndexExceptionif _index is > 2.

Referenced by ignition::math::Triangle< T >::Triangle().

template<typename T >
void ignition::math::Triangle< T >::Set ( const math::Vector2< T > &  _pt1,
const math::Vector2< T > &  _pt2,
const math::Vector2< T > &  _pt3 
)
inline

Set all vertices of the triangle.

Parameters
[in]_pt1First point that defines the triangle.
[in]_pt2Second point that defines the triangle.
[in]_pt3Third point that defines the triangle.
template<typename T >
Line2<T> ignition::math::Triangle< T >::Side ( unsigned int  _index) const
inline

Get a line segment for one side of the triangle.

Parameters
[in]_indexIndex of the side to retreive, where 0 == Line2(pt1, pt2), 1 == Line2(pt2, pt3), 2 == Line2(pt3, pt1)
Returns
Line segment of the requested side.
Exceptions
IndexExceptionif _index is > 2.

Referenced by ignition::math::Triangle< T >::Area(), ignition::math::Triangle< T >::Perimeter(), and ignition::math::Triangle< T >::Valid().

template<typename T >
bool ignition::math::Triangle< T >::Valid ( ) const
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 ignition::math::Triangle< T >::Side().


The documentation for this class was generated from the following file: