Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

triangulator.cpp File Reference

#include "triangulator.h"
#include "common/math/build_basis.h"
#include "common/math/point2.h"
#include "common/math/point3.h"
#include "common/math/real.h"
#include "common/math/vector2.h"
#include "common/math/vector3.h"
#include <cassert>
#include <list>

Go to the source code of this file.

Enumerations

enum  Orientation { CCW, CW }

Functions

Vector3 ComputeTrianglePlane3 (const Point3 &v0, const Point3 &v1, const Point3 &v2)
Real ComputePolygonArea2 (vector< Point2 > input)
 Returns the signed area of a 2D polygon.

Real ComputePolygonNormal3 (vector< Point3 > input, Vector3 *normal)
void ProjectPlanarPolygon3 (const vector< Point3 > &input, vector< Point2 > *output)
 Projects an approximatly planar 3D polygon to a plane.

Orientation ComputeTriangleOrientation2 (const Point2 &v0, const Point2 &v1, const Point2 &v2)
 Computes the orientation of a 2D triangle.

Orientation ComputePolygonOrientation2 (const vector< Point2 > &vertices)
 Computes the orientation of a 2D polygon.

bool IsPointInsideTriangle2 (const Point2 &v0, const Point2 &v1, const Point2 &v2, const Point2 &p)
bool IsAnEar (const vector< Point2 > &vertices, const list< int > &active, list< int >::const_iterator prev, list< int >::const_iterator cur, list< int >::const_iterator next)
template<typename Iterator> Iterator succ (Iterator i)


Enumeration Type Documentation

enum Orientation
 

Enumeration values:
CCW 
CW 

Definition at line 181 of file triangulator.cpp.

Referenced by ComputePolygonOrientation2(), and ComputeTriangleOrientation2().


Function Documentation

Real ComputePolygonArea2 vector< Point2 input  )  [static]
 

Returns the signed area of a 2D polygon.

Definition at line 68 of file triangulator.cpp.

Real ComputePolygonNormal3 vector< Point3 >  input,
Vector3 normal
[static]
 

Definition at line 86 of file triangulator.cpp.

References sheep::Vector3::m_x, sheep::Vector3::m_y, sheep::Vector3::m_z, and sheep::Vector3::Norm().

Referenced by ProjectPlanarPolygon3().

Orientation ComputePolygonOrientation2 const vector< Point2 > &  vertices  )  [static]
 

Computes the orientation of a 2D polygon.

Definition at line 199 of file triangulator.cpp.

References ComputeTriangleOrientation2(), sheep::Point2::m_x, sheep::Point2::m_y, and Orientation.

Referenced by sheep::TriangulatePolygon3().

Orientation ComputeTriangleOrientation2 const Point2 v0,
const Point2 v1,
const Point2 v2
[static]
 

Computes the orientation of a 2D triangle.

Definition at line 184 of file triangulator.cpp.

References CCW, CW, and Orientation.

Referenced by ComputePolygonOrientation2(), IsAnEar(), and IsPointInsideTriangle2().

Vector3 ComputeTrianglePlane3 const Point3 &  v0,
const Point3 &  v1,
const Point3 &  v2
[static]
 

Computes the normal to the plane containing the specified 3D triangle. Computed vector *is not* unit length.

Definition at line 54 of file triangulator.cpp.

References sheep::Vector3::SquareNorm().

bool IsAnEar const vector< Point2 > &  vertices,
const list< int > &  active,
list< int >::const_iterator  prev,
list< int >::const_iterator  cur,
list< int >::const_iterator  next
[static]
 

Definition at line 272 of file triangulator.cpp.

References CCW, ComputeTriangleOrientation2(), and IsPointInsideTriangle2().

Referenced by sheep::TriangulatePolygon3().

bool IsPointInsideTriangle2 const Point2 v0,
const Point2 v1,
const Point2 v2,
const Point2 p
[static]
 

Returns true if point 'p' is inside the triangle (v0, v1, v2). Triangle vertices must be given in counter-clockwise order.

Definition at line 244 of file triangulator.cpp.

References CCW, and ComputeTriangleOrientation2().

Referenced by IsAnEar().

void ProjectPlanarPolygon3 const vector< Point3 > &  input,
vector< Point2 > *  output
[static]
 

Projects an approximatly planar 3D polygon to a plane.

Definition at line 115 of file triangulator.cpp.

References build_basis(), and ComputePolygonNormal3().

Referenced by sheep::TriangulatePolygon3().

template<typename Iterator>
Iterator succ Iterator  i  )  [inline, static]
 

Definition at line 297 of file triangulator.cpp.

Referenced by sheep::TriangulatePolygon3().


Generated on Tue May 11 01:31:53 2004 for toxic by doxygen 1.3.6