Cortex  10.0.0-a4
Public Member Functions | Friends | List of all members
IECoreGL::MeshPrimitive Class Reference

#include <MeshPrimitive.h>

+ Inheritance diagram for IECoreGL::MeshPrimitive:

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPEDEXTENSION (IECoreGL::MeshPrimitive, MeshPrimitiveTypeId, Primitive)
 
 MeshPrimitive (unsigned numTriangles)
 
Imath::Box3f bound () const override
 Returns the bounding box for the primitive.
 
void addPrimitiveVariable (const std::string &name, const IECore::PrimitiveVariable &primVar) override
 
void renderInstances (size_t numInstances=1) const override
 
- Public Member Functions inherited from IECoreGL::Primitive
 IE_CORE_DECLARERUNTIMETYPEDEXTENSION (IECoreGL::Primitive, PrimitiveTypeId, Renderable)
 
void render (State *currentState) const override
 
virtual const Shader::SetupshaderSetup (const Shader *shader, State *state) const
 
void addPrimitiveVariablesToShaderSetup (Shader::Setup *shaderSetup, const std::string &vertexPrefix="vertex", GLuint vertexDivisor=0) const
 
virtual void render (const State *currentState, IECore::TypeId style) const
 
 IE_CORE_DECLAREPTR (DrawBound)
 
 IE_CORE_DECLAREPTR (DrawWireframe)
 
 IE_CORE_DECLAREPTR (WireframeWidth)
 
 IE_CORE_DECLAREPTR (DrawSolid)
 
 IE_CORE_DECLAREPTR (DrawOutline)
 
 IE_CORE_DECLAREPTR (OutlineWidth)
 
 IE_CORE_DECLAREPTR (DrawPoints)
 
 IE_CORE_DECLAREPTR (PointWidth)
 
 IE_CORE_DECLAREPTR (Selectable)
 
 IE_CORE_DECLAREPTR (TransparencySort)
 
- Public Member Functions inherited from IECoreGL::Renderable
 IE_CORE_DECLARERUNTIMETYPEDEXTENSION (IECoreGL::Renderable, RenderableTypeId, IECore::RunTimeTyped)
 
- Public Member Functions inherited from IECore::RunTimeTyped
 IE_CORE_DECLAREMEMBERPTR (RunTimeTyped)
 
virtual TypeId typeId () const
 
virtual const char * typeName () const
 
virtual bool isInstanceOf (TypeId typeId) const
 
virtual bool isInstanceOf (const char *typeName) const
 
- Public Member Functions inherited from IECore::RefCounted
 IE_CORE_DECLAREMEMBERPTR (RefCounted)
 
void addRef () const
 Add a reference to the current object.
 
void removeRef () const
 Remove a reference from the current object.
 
RefCount refCount () const
 Returns the current reference count.
 

Friends

class Font
 So Font can use the render( state, style ) method.
 

Additional Inherited Members

- Public Types inherited from IECoreGL::Primitive
typedef TypedStateComponent< bool, PrimitiveBoundTypeId > DrawBound
 
typedef TypedStateComponent< bool, PrimitiveWireframeTypeId > DrawWireframe
 
typedef TypedStateComponent< float, PrimitiveWireframeWidthTypeId > WireframeWidth
 
typedef TypedStateComponent< bool, PrimitiveSolidTypeId > DrawSolid
 
typedef TypedStateComponent< bool, PrimitiveOutlineTypeId > DrawOutline
 
typedef TypedStateComponent< float, PrimitiveOutlineWidthTypeId > OutlineWidth
 
typedef TypedStateComponent< bool, PrimitivePointsTypeId > DrawPoints
 
typedef TypedStateComponent< float, PrimitivePointWidthTypeId > PointWidth
 
typedef TypedStateComponent< bool, PrimitiveSelectableTypeId > Selectable
 
typedef TypedStateComponent< bool, PrimitiveTransparencySortStateComponentTypeId > TransparencySort
 Used to trigger sorting of the components of a primitive when the TransparentShadingStateComponent has a value of true.
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 
- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
typedef std::map< TypeId, std::vector< TypeId > > BaseTypesRegistryMap
 
typedef std::map< TypeId, std::set< TypeId > > DerivedTypesRegistryMap
 
typedef tbb::spin_rw_mutex Mutex
 
typedef std::map< TypeId, std::string > TypeIdsToTypeNamesMap
 
typedef std::map< std::string, TypeIdTypeNamesToTypeIdsMap
 
- Protected Member Functions inherited from IECoreGL::Primitive
void addUniformAttribute (const std::string &name, IECore::ConstDataPtr data)
 Called by derived classes to register a uniform attribute. There are no type or length checks on this call.
 
void addVertexAttribute (const std::string &name, IECore::ConstDataPtr data)
 Called by derived classes to register a vertex attribute. There are no type or length checks on this call.
 
bool depthSortRequested (const State *state) const
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
static BaseTypeRegistryMap & baseTypeRegistry ()
 
static DerivedTypesRegistryMap & derivedTypesRegistry ()
 
static BaseTypesRegistryMap & completeBaseTypesRegistry ()
 
static DerivedTypesRegistryMap & completeDerivedTypesRegistry ()
 
static void derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &)
 
static TypeIdsToTypeNamesMap & typeIdsToTypeNames ()
 
static TypeNamesToTypeIdsMap & typeNamesToTypeIds ()
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Detailed Description

Todo:
Fast drawing, uvs etc. Consider using NVIDIA tristrip library? something else? GLU?

Member Function Documentation

void IECoreGL::MeshPrimitive::addPrimitiveVariable ( const std::string &  name,
const IECore::PrimitiveVariable primVar 
)
overridevirtual

Adds a primitive variable to this primitive. Derived classes should implement any filtering or conversions that are necessary and then call addVertexAttribute() or addUniformAttribute(). The default implementation calls addUniformAttribute() for uniform primitive variables and addVertexAttribute() for all others.

Implements IECoreGL::Primitive.

void IECoreGL::MeshPrimitive::renderInstances ( size_t  numInstances = 1) const
overridevirtual

Renders a number of instances of the primitive by issuing a single call to glDrawElementsInstanced() or glDrawArraysInstanced(). A Shader::Setup created for this primitive must be bound before calling this method.

Implements IECoreGL::Primitive.


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