No Matches
Shape::Geometry Class Reference

#include <geometry.h>

Inheritance diagram for Shape::Geometry:
Mesh::TriangleMesh DynamicType Tree::CubeTree Geometry Shape::Cone Shape::Cuboid Shape::Disk Shape::Polygon Shape::PolygonalText Shape::Quad Shape::ShadowVolume Shape::Skeletal Shape::Sphere Shape::TexturedText Shape::Triangle Shape::Wavefront Shape::Wire


class  Attribute

Public Member Functions

 Geometry (const TriangleMesh &mesh, const Attribute &attribute)
 Geometry (const Attribute &attribute)
void operator+= (const TriangleMesh &other)
virtual ~Geometry ()
virtual void clear ()
virtual void flagDirty ()
virtual Vertex3fArray createVertexArray ()
virtual Mesh::VertexIndexArray createIndexArray ()
virtual Vector3fArray createNormalArray ()
virtual Primitive3D::TriangleArray createTriangles (const Matrix4f &mat=Matrix4f::identity)
virtual float getBoundingRadius (const Matrix3f &matrix=Matrix3f::identity)
virtual Primitive3D::AABoundingBox getAABoundingBox (const Matrix4f &matrix=Matrix4f::identity)
void update ()
const AttributegetAttribute () const
DrawPrimitive getDrawPrimitive ()
void setDrawPrimitive (DrawPrimitive drawPrimitive)
String verticesToCArray ()
String indicesToCArray ()
Primitive3D::Capsule createCapsule (const Matrix4f &mat=Matrix4f::identity)
Vertex3f getFaceNormal (Mesh::FaceIndex index)
Vertex3f getFaceCentroid (Mesh::FaceIndex index)
void transformFaces (const Matrix4f &mat)
void rotateFaces (float angle, const Vector3f &vec)
void translateFaces (const Vector3f &vec)
void scaleFaces (float scale)
void scaleFaces (const Vector3f &vec)
void clampMaxFaces (const Vector3f &vec)
void clampMinFaces (const Vector3f &vec)
void transformFace (const Matrix4f &mat, Mesh::FaceIndex iFace)
void rotateFace (float angle, const Vector3f &vec, Mesh::FaceIndex iFace)
void translateFace (const Vector3f &vec, Mesh::FaceIndex iFace)
void scaleFace (float scale, Mesh::FaceIndex iFace)
void scaleFace (const Vector3f &vec, Mesh::FaceIndex iFace)
void clampMaxFace (const Vector3f &vec, Mesh::FaceIndex iFace)
void clampMinFace (const Vector3f &vec, Mesh::FaceIndex iFace)
const Vertex3fgetVertex (uint index) const
Primitive3D::Triangle getPrimitiveTriangle (uint index) const
void setBoundingRadius (float radius)
bool isAABoundingBoxUpdated ()
void normalize ()
void extrudeAndVolumizeFace (Mesh::FaceIndex index, float distance)
- Public Member Functions inherited from Mesh::TriangleMesh
 TriangleMesh ()
 TriangleMesh (const Vertex3fArray &vertex)
 TriangleMesh (const TriangleMesh &other)
void operator+= (const TriangleMesh &other)
 ~TriangleMesh ()
void clear ()
VertexIndex addVertex (const Vertex3f &vertex)
VertexIndexArray addVertexArray (const Vertex3fArray &array)
VertexIndexSet getFaceVertexIndices (const FaceIndex fI) const
VertexIndexSet getFaceVertexIndices (const Face &face) const
VertexIndexArray getFaceContour (FaceIndex fI) const
FaceIndex findFace (const VertexIndexArray &array) const
Vertex3f getFaceNormal (const Face &face) const
Vertex3f getFaceNormal (FaceIndex fI) const
TriangleIndex findTriangle (const Triangle &triangle) const
bool hasTriangle (VertexIndex vA, VertexIndex vB, VertexIndex vC) const
TriangleIndex addTriangle (VertexIndex iA, VertexIndex iB, VertexIndex iC, FaceIndex iF)
TriangleIndex addTriangle (const Triangle &t, FaceIndex iF)
TriangleIndex addTriangle (const Triangle &triangle)
FaceIndexArray findFaces (const Triangle &triangle)
void removeTriangle (TriangleIndex index)
HalfEdgeIndex addHalfEdge (const HalfEdge &halfEdge)
void removeHalfEdge (const HalfEdgeIndex halfEdgeIndex)
const HalfEdgeArraygetHalfEdge () const
const TriangleArraygetTriangle () const
const FaceArraygetFace () const
FacegetFace (uint index)
Vertex3fArray createContour (const FaceIndex fI) const
HalfEdgeArray getFaceHalfEdges (const FaceIndex fI) const
HalfEdgeIndexArray getFaceHalfEdgeIndices (const FaceIndex fI) const
const HalfEdgegetHalfEdge (const VertexIndex a, const VertexIndex b) const
HalfEdgeIndex getHalfEdgeIndex (const VertexIndex a, const VertexIndex b) const
const HalfEdgeIndexTablegetHalfEdgeIndexTable () const
bool isHalfEdge (const VertexIndex a, const VertexIndex b) const
bool isHalfEdge (HalfEdgeIndex index) const
bool isFullEdge (const VertexIndex a, const VertexIndex b) const
bool isFullEdge (HalfEdgeIndex index) const
FaceIndex addFace (const Face &face=Face())
void removeFace (FaceIndex faceIndex)
VertexIndexArray shortestPath (Mesh::VertexIndex startVertexIndex, Mesh::VertexIndex endVertexIndex)
Primitive3D::Triangle createPrimitveTriangle (const Triangle &triangle) const
Primitive3D::Triangle createPrimitveTriangle (const TriangleIndex index) const
Primitive3D::Segment createPrimitveSegment (const HalfEdge &he) const
Primitive3D::Segment createPrimitveSegment (const HalfEdgeIndex index) const
- Public Member Functions inherited from Tree::CubeTree
 CubeTree ()
 CubeTree (const Vertex3fArray &vertex)
 CubeTree (const CubeTree &)
virtual ~CubeTree ()
bool hasDuplicates ()
 operator const Branch & () const
 operator const Branch * () const
 operator HeapArray< Leaf * > ()
bool operator() (const Vertex3f &vA, const Vertex3f &vB) const
Leafnearest (const Vertex3f &vertex)
Leaffind (const Vertex3f &vertex, float precision=0.0f) const
void erase (Leaf *pLeaf)
void update (Handle index, const Vertex3f &vertex)
void update ()
Handle insert (const Vertex3f &vertex)
HeapArray< Handle > insert (const Vector3fArray &list)
template<typename INDICES >
Vector3fArray getVertices (const INDICES &c) const
Vector3fArray getVertices (bool unique=false) const
HeapArray< Leaf * > getLeaves () const
const Leafoperator[] (Handle index) const
Handle operator[] (const Vertex3f &v) const
const Vertex3fback () const
const Vertex3ffront () const
HeapArray< Leaf * >::iterator begin ()
HeapArray< Leaf * >::iterator end ()
HeapArray< Leaf * >::const_iterator begin () const
HeapArray< Leaf * >::const_iterator end () const
size_t size () const
void clear ()
- Public Member Functions inherited from DynamicType
 DynamicType ()
template<class C >
void addType ()
TypeID getDerivedTypeId () const
template<class C >
const bool isType () const
template<class C >
const C * cast () const
template<class C >
C * cast ()
template<class FROM , class TO >
TO * cast ()
template<class FROM , class TO >
const TO * cast () const

Protected Attributes

Attribute attribute
bool cubeTreeUpdated
- Protected Attributes inherited from Mesh::TriangleMesh
HalfEdgeIndexTable halfEdgeIndexTable
HalfEdgeArray halfEdge
TriangleArray triangle
FaceArray face

Additional Inherited Members

- Public Types inherited from Mesh::TriangleMesh
typedef HeapArray< HalfEdgeIndexArrayHalfEdgeIndexTable
- Static Public Member Functions inherited from Mesh::TriangleMesh
static bool isHalfEdge (const VertexIndex a, const VertexIndex b, const HalfEdgeIndexTable &table)
static bool isHalfEdge (const HalfEdge he, const HalfEdgeIndexTable &table)
static bool isFullEdge (const VertexIndex a, const VertexIndex b, const HalfEdgeIndexTable &table)
static bool isFullEdge (const HalfEdge he, const HalfEdgeIndexTable &table)
static HalfEdgeIndex getHalfEdgeIndex (const VertexIndex a, const VertexIndex b, const HalfEdgeIndexTable &table)
- Public Attributes inherited from Mesh::TriangleMesh
bool planar
float boundingRadius

Detailed Description

Portions of this Geometry may-be partitioned by Capsules, analogous to skeletal-bones. If only one Capsule exits it encapsulates the entire Geometry.

Constructor & Destructor Documentation

◆ Geometry() [1/2]

Shape::Geometry::Geometry ( const TriangleMesh & mesh,
const Attribute & attribute )

◆ Geometry() [2/2]

Shape::Geometry::Geometry ( const Attribute & attribute)

◆ ~Geometry()

virtual Shape::Geometry::~Geometry ( )

Member Function Documentation

◆ clampMaxFace()

void Shape::Geometry::clampMaxFace ( const Vector3f & vec,
Mesh::FaceIndex iFace )

◆ clampMaxFaces()

void Shape::Geometry::clampMaxFaces ( const Vector3f & vec)

◆ clampMinFace()

void Shape::Geometry::clampMinFace ( const Vector3f & vec,
Mesh::FaceIndex iFace )

◆ clampMinFaces()

void Shape::Geometry::clampMinFaces ( const Vector3f & vec)

◆ clear()

virtual void Shape::Geometry::clear ( )

Reimplemented in Shape::Skeletal.

◆ createCapsule()

Primitive3D::Capsule Shape::Geometry::createCapsule ( const Matrix4f & mat = Matrix4f::identity)

◆ createIndexArray()

virtual Mesh::VertexIndexArray Shape::Geometry::createIndexArray ( )

Reimplemented in Shape::Wire.

◆ createNormalArray()

virtual Vector3fArray Shape::Geometry::createNormalArray ( )

Normals created from triangle normals.

Reimplemented in Shape::Sphere, and Shape::Wavefront.

◆ createTriangles()

virtual Primitive3D::TriangleArray Shape::Geometry::createTriangles ( const Matrix4f & mat = Matrix4f::identity)

Transformed set of triangles.

Reimplemented in Shape::Skeletal.

◆ createVertexArray()

virtual Vertex3fArray Shape::Geometry::createVertexArray ( )

◆ extrudeAndVolumizeFace()

void Shape::Geometry::extrudeAndVolumizeFace ( Mesh::FaceIndex index,
float distance )

Will volumize a Face along it's norm. The face must be convex and only include edge vertices.

Indexof the Face to duplicate and extrude.
Distanceof the new Face from the old one in the inward(opposite) direction of the Face normal.

◆ flagDirty()

virtual void Shape::Geometry::flagDirty ( )

Reimplemented in Shape::Skeletal.

◆ getAABoundingBox()

virtual Primitive3D::AABoundingBox Shape::Geometry::getAABoundingBox ( const Matrix4f & matrix = Matrix4f::identity)

Get axis-aligned bounding-box.

Reimplemented in Shape::Skeletal.

◆ getAttribute()

const Attribute & Shape::Geometry::getAttribute ( ) const

◆ getBoundingRadius()

virtual float Shape::Geometry::getBoundingRadius ( const Matrix3f & matrix = Matrix3f::identity)

This method assumes the mesh vertices are normalized about the origin.

Reimplemented in Shape::Skeletal.

◆ getDrawPrimitive()

DrawPrimitive Shape::Geometry::getDrawPrimitive ( )

◆ getFaceCentroid()

Vertex3f Shape::Geometry::getFaceCentroid ( Mesh::FaceIndex index)

◆ getFaceNormal()

Vertex3f Shape::Geometry::getFaceNormal ( Mesh::FaceIndex index)

◆ getPrimitiveTriangle()

Primitive3D::Triangle Shape::Geometry::getPrimitiveTriangle ( uint index) const

◆ getVertex()

const Vertex3f & Shape::Geometry::getVertex ( uint index) const

◆ indicesToCArray()

String Shape::Geometry::indicesToCArray ( )

◆ isAABoundingBoxUpdated()

bool Shape::Geometry::isAABoundingBoxUpdated ( )

◆ normalize()

void Shape::Geometry::normalize ( )

◆ operator+=()

void Shape::Geometry::operator+= ( const TriangleMesh & other)

◆ rotateFace()

void Shape::Geometry::rotateFace ( float angle,
const Vector3f & vec,
Mesh::FaceIndex iFace )

◆ rotateFaces()

void Shape::Geometry::rotateFaces ( float angle,
const Vector3f & vec )

◆ scaleFace() [1/2]

void Shape::Geometry::scaleFace ( const Vector3f & vec,
Mesh::FaceIndex iFace )

◆ scaleFace() [2/2]

void Shape::Geometry::scaleFace ( float scale,
Mesh::FaceIndex iFace )

◆ scaleFaces() [1/2]

void Shape::Geometry::scaleFaces ( const Vector3f & vec)

◆ scaleFaces() [2/2]

void Shape::Geometry::scaleFaces ( float scale)

◆ setBoundingRadius()

void Shape::Geometry::setBoundingRadius ( float radius)

Set axis-aligned bounding-box.

◆ setDrawPrimitive()

void Shape::Geometry::setDrawPrimitive ( DrawPrimitive drawPrimitive)

◆ transformFace()

void Shape::Geometry::transformFace ( const Matrix4f & mat,
Mesh::FaceIndex iFace )

◆ transformFaces()

void Shape::Geometry::transformFaces ( const Matrix4f & mat)

◆ translateFace()

void Shape::Geometry::translateFace ( const Vector3f & vec,
Mesh::FaceIndex iFace )

◆ translateFaces()

void Shape::Geometry::translateFaces ( const Vector3f & vec)

◆ update()

void Shape::Geometry::update ( )

◆ verticesToCArray()

String Shape::Geometry::verticesToCArray ( )

Member Data Documentation

◆ attribute

Attribute Shape::Geometry::attribute

◆ cubeTreeUpdated

bool Shape::Geometry::cubeTreeUpdated

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