OGRE  1.9.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
Ogre::Polygon Class Reference

The class represents a polygon in 3D space. More...

#include <OgrePolygon.h>

Public Types

typedef std::pair< Vector3, Vector3Edge
 
typedef multimap< Vector3, Vector3 >::type EdgeMap
 
typedef vector< Vector3 >::type VertexList
 

Public Member Functions

 Polygon ()
 
 Polygon (const Polygon &cpy)
 
 ~Polygon ()
 
void deleteVertex (size_t vertex)
 Deletes a specific vertex.
 
const Vector3getNormal (void) const
 Returns the polygon normal.
 
const Vector3getVertex (size_t vertex) const
 Returns a vertex.
 
size_t getVertexCount (void) const
 Vertex count.
 
void insertVertex (const Vector3 &vdata)
 Inserts a vertex at the end of the polygon.
 
void insertVertex (const Vector3 &vdata, size_t vertexIndex)
 Inserts a vertex at a specific position.
 
bool isPointInside (const Vector3 &point) const
 Determines if a point is inside the polygon.
 
bool operator!= (const Polygon &rhs) const
 Determines if the current object is not equal to the compared one.
 
bool operator== (const Polygon &rhs) const
 Determines if the current object is equal to the compared one.
 
void removeDuplicates (void)
 Removes duplicate vertices from a polygon.
 
void reset (void)
 Resets the object.
 
void setVertex (const Vector3 &vdata, size_t vertexIndex)
 Sets a specific vertex of a polygon.
 
void storeEdges (EdgeMap *edgeMap) const
 Stores the edges of the polygon in ccw order.
 

Protected Member Functions

void updateNormal (void) const
 Updates the normal.
 

Protected Attributes

bool mIsNormalSet
 
Vector3 mNormal
 
VertexList mVertexList
 

Friends

_OgreExport friend std::ostream & operator<< (std::ostream &strm, const Polygon &poly)
 Prints out the polygon data.
 

Detailed Description

The class represents a polygon in 3D space.

Remarks
It is made up of 3 or more vertices in a single plane, listed in counter-clockwise order.

Definition at line 52 of file OgrePolygon.h.

Member Typedef Documentation

◆ Edge

typedef std::pair< Vector3, Vector3> Ogre::Polygon::Edge

Definition at line 59 of file OgrePolygon.h.

◆ EdgeMap

Definition at line 58 of file OgrePolygon.h.

◆ VertexList

Definition at line 56 of file OgrePolygon.h.

Constructor & Destructor Documentation

◆ Polygon() [1/2]

Ogre::Polygon::Polygon ( )

◆ ~Polygon()

Ogre::Polygon::~Polygon ( )

◆ Polygon() [2/2]

Ogre::Polygon::Polygon ( const Polygon cpy)

Member Function Documentation

◆ deleteVertex()

void Ogre::Polygon::deleteVertex ( size_t  vertex)

Deletes a specific vertex.

◆ getNormal()

const Vector3 & Ogre::Polygon::getNormal ( void  ) const

Returns the polygon normal.

◆ getVertex()

const Vector3 & Ogre::Polygon::getVertex ( size_t  vertex) const

Returns a vertex.

◆ getVertexCount()

size_t Ogre::Polygon::getVertexCount ( void  ) const

Vertex count.

◆ insertVertex() [1/2]

void Ogre::Polygon::insertVertex ( const Vector3 vdata)

Inserts a vertex at the end of the polygon.

Note
Vertices must be coplanar.

◆ insertVertex() [2/2]

void Ogre::Polygon::insertVertex ( const Vector3 vdata,
size_t  vertexIndex 
)

Inserts a vertex at a specific position.

Note
Vertices must be coplanar.

◆ isPointInside()

bool Ogre::Polygon::isPointInside ( const Vector3 point) const

Determines if a point is inside the polygon.

Remarks
A point is inside a polygon if it is both on the polygon's plane, and within the polygon's bounds. Polygons are assumed to be convex and planar.

◆ operator!=()

bool Ogre::Polygon::operator!= ( const Polygon rhs) const

Determines if the current object is not equal to the compared one.

Definition at line 133 of file OgrePolygon.h.

◆ operator==()

bool Ogre::Polygon::operator== ( const Polygon rhs) const

Determines if the current object is equal to the compared one.

◆ removeDuplicates()

void Ogre::Polygon::removeDuplicates ( void  )

Removes duplicate vertices from a polygon.

◆ reset()

void Ogre::Polygon::reset ( void  )

Resets the object.

◆ setVertex()

void Ogre::Polygon::setVertex ( const Vector3 vdata,
size_t  vertexIndex 
)

Sets a specific vertex of a polygon.

Note
Vertices must be coplanar.

◆ storeEdges()

void Ogre::Polygon::storeEdges ( EdgeMap edgeMap) const

Stores the edges of the polygon in ccw order.

The vertices are copied so the user has to take the deletion into account.

◆ updateNormal()

void Ogre::Polygon::updateNormal ( void  ) const
protected

Updates the normal.

Friends And Related Function Documentation

◆ operator<<

_OgreExport friend std::ostream & operator<< ( std::ostream &  strm,
const Polygon poly 
)
friend

Prints out the polygon data.

Member Data Documentation

◆ mIsNormalSet

bool Ogre::Polygon::mIsNormalSet
mutableprotected

Definition at line 64 of file OgrePolygon.h.

◆ mNormal

Vector3 Ogre::Polygon::mNormal
mutableprotected

Definition at line 63 of file OgrePolygon.h.

◆ mVertexList

VertexList Ogre::Polygon::mVertexList
protected

Definition at line 62 of file OgrePolygon.h.


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