Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cPolygonT< TYPE, TYPE_RECT > Class Template Reference

#include <cPolygon.h>

Public Types

typedef TYPE DVALUE_t
 Dimension value type. More...
 
typedef cVecT2< TYPEPOINT_t
 
typedef TYPE_RECT RECT_t
 cRectNT<TYPE> More...
 

Public Member Functions

 cPolygonT ()
 
const TYPE_RECT & get_BoundingRect (void) const
 
ITERATE_t get_NumVerts () const
 
bool isPolyEmpty () const
 
const POINT_tGetVert (ITERATE_t i) const
 
POINT_tRefVert (ITERATE_t i)
 
bool IsEqual (const THIS_t &p) const
 
ITERATE_t CreatePolygonPoints (const POINT_t *pPoints, ITERATE_t nCount)
 
void SetEmpty ()
 
void DeleteVert (ITERATE_t i)
 
void InsertVert (ITERATE_t i, const POINT_t &pt)
 
ITERATE_t AddVert (const POINT_t &pt)
 
ITERATE_t AddVert (TYPE x, TYPE y)
 
void UnionPolyRect (TYPE_RECT &rect) const
 
void SetCopy (const THIS_t &poly)
 
void put_PolyRect (const TYPE_RECT &rect)
 
void put_PolyRect (TYPE fSizeX, TYPE fSizeY)
 
void OffsetPoly (TYPE dx, TYPE dy)
 

Static Public Attributes

static const ITERATE_t k_MAX_VERTS = 1024
 arbitrary max. More...
 

Protected Attributes

TYPE_RECT m_rectUnion
 The union rectangle m_aPoints. inclusive if float, non-inclusive if int. More...
 
cArrayStruct< POINT_tm_aPoints
 k_MAX_VERTS More...
 

Detailed Description

template<typename TYPE, class TYPE_RECT = cRectNT<TYPE>>
class GrayLib::cPolygonT< TYPE, TYPE_RECT >

a 2d polygon (Array of points) of arbitrary precision. (int,float,double)

Note
can we assume it does not cross itself ? We might use this as a path?

Member Typedef Documentation

◆ DVALUE_t

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
typedef TYPE GrayLib::cPolygonT< TYPE, TYPE_RECT >::DVALUE_t

Dimension value type.

◆ POINT_t

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
typedef cVecT2<TYPE> GrayLib::cPolygonT< TYPE, TYPE_RECT >::POINT_t

◆ RECT_t

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
typedef TYPE_RECT GrayLib::cPolygonT< TYPE, TYPE_RECT >::RECT_t

cRectNT<TYPE>

Constructor & Destructor Documentation

◆ cPolygonT()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
GrayLib::cPolygonT< TYPE, TYPE_RECT >::cPolygonT ( )
inline

Member Function Documentation

◆ AddVert() [1/2]

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
ITERATE_t GrayLib::cPolygonT< TYPE, TYPE_RECT >::AddVert ( const POINT_t pt)
inline

◆ AddVert() [2/2]

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
ITERATE_t GrayLib::cPolygonT< TYPE, TYPE_RECT >::AddVert ( TYPE  x,
TYPE  y 
)
inline

◆ CreatePolygonPoints()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
ITERATE_t GrayLib::cPolygonT< TYPE, TYPE_RECT >::CreatePolygonPoints ( const POINT_t pPoints,
ITERATE_t  nCount 
)
inline

◆ DeleteVert()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::DeleteVert ( ITERATE_t  i)
inline

◆ get_BoundingRect()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
const TYPE_RECT& GrayLib::cPolygonT< TYPE, TYPE_RECT >::get_BoundingRect ( void  ) const
inline

◆ get_NumVerts()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
ITERATE_t GrayLib::cPolygonT< TYPE, TYPE_RECT >::get_NumVerts ( ) const
inline

◆ GetVert()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
const POINT_t& GrayLib::cPolygonT< TYPE, TYPE_RECT >::GetVert ( ITERATE_t  i) const
inline

◆ InsertVert()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::InsertVert ( ITERATE_t  i,
const POINT_t pt 
)
inline

◆ IsEqual()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
bool GrayLib::cPolygonT< TYPE, TYPE_RECT >::IsEqual ( const THIS_t p) const
inline

◆ isPolyEmpty()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
bool GrayLib::cPolygonT< TYPE, TYPE_RECT >::isPolyEmpty ( ) const
inline

◆ OffsetPoly()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::OffsetPoly ( TYPE  dx,
TYPE  dy 
)
inline

◆ put_PolyRect() [1/2]

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::put_PolyRect ( const TYPE_RECT &  rect)
inline

This polygon is just a rectangle.

◆ put_PolyRect() [2/2]

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::put_PolyRect ( TYPE  fSizeX,
TYPE  fSizeY 
)
inline

◆ RefVert()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
POINT_t& GrayLib::cPolygonT< TYPE, TYPE_RECT >::RefVert ( ITERATE_t  i)
inline

◆ SetCopy()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::SetCopy ( const THIS_t poly)
inline

◆ SetEmpty()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::SetEmpty ( )
inline

◆ UnionPolyRect()

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
void GrayLib::cPolygonT< TYPE, TYPE_RECT >::UnionPolyRect ( TYPE_RECT &  rect) const
inline

recalculate the union rectangle. NOT NORMALLY USED! should just use m_rectUnion ?? add the points to the rectangle.

Member Data Documentation

◆ k_MAX_VERTS

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
const ITERATE_t GrayLib::cPolygonT< TYPE, TYPE_RECT >::k_MAX_VERTS = 1024
static

arbitrary max.

◆ m_aPoints

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
cArrayStruct<POINT_t> GrayLib::cPolygonT< TYPE, TYPE_RECT >::m_aPoints
protected

k_MAX_VERTS

◆ m_rectUnion

template<typename TYPE , class TYPE_RECT = cRectNT<TYPE>>
TYPE_RECT GrayLib::cPolygonT< TYPE, TYPE_RECT >::m_rectUnion
protected

The union rectangle m_aPoints. inclusive if float, non-inclusive if int.


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