IECore::MeshPrimitive Class Reference

#include <MeshPrimitive.h>

Inheritance diagram for IECore::MeshPrimitive:

IECore::Primitive IECore::VisibleRenderable IECore::Renderable IECore::BlindDataHolder IECore::Object IECore::RunTimeTyped IECore::RefCounted

List of all members.

Public Member Functions

 IE_CORE_DECLAREOBJECT (MeshPrimitive, Primitive)
 MeshPrimitive ()
 Construct a MeshPrimitive with no faces.
 MeshPrimitive (ConstIntVectorDataPtr verticesPerFace, ConstIntVectorDataPtr vertexIds, const std::string &interpolation="linear", V3fVectorDataPtr p=0)
virtual size_t variableSize (PrimitiveVariable::Interpolation interpolation) const
virtual void render (Renderer *renderer) const
 Render the mesh.
Topology access
These functions allow access to get and set topology after construction.

size_t numFaces () const
const IntVectorDataverticesPerFace () const
const IntVectorDatavertexIds () const
const std::string & interpolation () const
virtual void setTopology (ConstIntVectorDataPtr verticesPerFace, ConstIntVectorDataPtr vertexIds, const std::string &interpolation="linear")
void setInterpolation (const std::string &interpolation)
PolygonIterator faceBegin ()
PolygonIterator faceEnd ()

Static Public Member Functions

static MeshPrimitivePtr createBox (const Imath::Box3f &b)
static MeshPrimitivePtr createPlane (const Imath::Box2f &b)


Detailed Description

The MeshPrimitive represents a collection of polygonal faces. The faces should be planar and may not have holes, but can have concavities. By default a polygon is considered frontfacing if it's vertices wind in an anticlockwise direction from the point of view of the camera - this can be changed at the point of rendering by setting attributes in the Renderer. This definition of winding order is the same as the OpenGL and Maya conventions but the opposite of RenderMan's.

Constructor & Destructor Documentation

MeshPrimitive::MeshPrimitive (  ) 

Construct a MeshPrimitive with no faces.

MeshPrimitive::MeshPrimitive ( ConstIntVectorDataPtr  verticesPerFace,
ConstIntVectorDataPtr  vertexIds,
const std::string &  interpolation = "linear",
V3fVectorDataPtr  p = 0 
)

Construct a MeshPrimitive. The number of faces specified by verticesPerFace->readable()->size(). Copies of the IntVectorData objects are taken rather than references to the initial data.

References setTopology(), IECore::Primitive::variables, and IECore::PrimitiveVariable::Vertex.


Member Function Documentation

static MeshPrimitivePtr IECore::MeshPrimitive::createBox ( const Imath::Box3f &  b  )  [static]

Creates a box mesh.

Todo:
Add subdivisions and texture coordinates.

static MeshPrimitivePtr IECore::MeshPrimitive::createPlane ( const Imath::Box2f &  b  )  [static]

Creates a plane at z=0, with the geometric normal facing down positive z.

Todo:
Add subdivisions.

PolygonIterator MeshPrimitive::faceBegin (  ) 

PolygonIterator MeshPrimitive::faceEnd (  ) 

IECore::MeshPrimitive::IE_CORE_DECLAREOBJECT ( MeshPrimitive  ,
Primitive   
)

const std::string & MeshPrimitive::interpolation (  )  const

size_t MeshPrimitive::numFaces (  )  const

void MeshPrimitive::render ( Renderer renderer  )  const [virtual]

Render the mesh.

Implements IECore::Renderable.

References IECore::Renderer::mesh(), and IECore::Primitive::variables.

void MeshPrimitive::setInterpolation ( const std::string &  interpolation  ) 

void MeshPrimitive::setTopology ( ConstIntVectorDataPtr  verticesPerFace,
ConstIntVectorDataPtr  vertexIds,
const std::string &  interpolation = "linear" 
) [virtual]

size_t MeshPrimitive::variableSize ( PrimitiveVariable::Interpolation  interpolation  )  const [virtual]

const IntVectorData * MeshPrimitive::vertexIds (  )  const

const IntVectorData * MeshPrimitive::verticesPerFace (  )  const


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

Generated on Mon Jan 24 11:13:25 2011 for Cortex by doxygen 1.5.8