Ogre::Polygon Class Reference
Core » Math

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

`#include <OgrePolygon.h>`

## Public Types

typedef std::pair< Vector3, Vector3 > | Edge
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. More...
const Vector3 & | getNormal (void) const
| Returns the polygon normal. More...
const Vector3 & | getVertex (size_t vertex) const
| Returns a vertex. More...
size_t | getVertexCount (void) const
| Vertex count. More...
void | insertVertex (const Vector3 &vdata, size_t vertexIndex)
| Inserts a vertex at a specific position. More...
void | insertVertex (const Vector3 &vdata)
| Inserts a vertex at the end of the polygon. More...
bool | isPointInside (const Vector3 &point) const
| Determines if a point is inside the polygon. More...
bool | operator!= (const Polygon &rhs) const
| Determines if the current object is not equal to the compared one. More...
bool | operator== (const Polygon &rhs) const
| Determines if the current object is equal to the compared one. More...
void | removeDuplicates (void)
| Removes duplicate vertices from a polygon. More...
void | reset (void)
| Resets the object. More...
void | setVertex (const Vector3 &vdata, size_t vertexIndex)
| Sets a specific vertex of a polygon. More...
void | storeEdges (EdgeMap *edgeMap) const
| Stores the edges of the polygon in ccw order. More...

## Protected Member Functions

void | updateNormal (void) const
| Updates the normal. More...

## 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. More...

## 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

typedef multimap<Vector3, Vector3>::type Ogre::Polygon::EdgeMap

Definition at line 58 of file OgrePolygon.h.

## VertexList

typedef vector<Vector3>::type Ogre::Polygon::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,
|  | size_t | vertexIndex
| ) |  |

Inserts a vertex at a specific position.

Note
  Vertices must be coplanar.

## insertVertex() [2/2]

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

Inserts a vertex at the end of the polygon.

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.

References _OgreExport, and Ogre::operator<<().

## 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

mutable protected

Definition at line 64 of file OgrePolygon.h.

## mNormal

Vector3 Ogre::Polygon::mNormal

mutable protected

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:

- OgrePolygon.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.