Cortex  10.0.0-a4
Public Types | Public Member Functions | List of all members
IECore::Group Class Reference

#include <Group.h>

+ Inheritance diagram for IECore::Group:

Public Types

typedef std::vector< VisibleRenderablePtr > ChildContainer
 
typedef std::vector< StateRenderablePtr > StateContainer
 
- Public Types inherited from IECore::Object
typedef ObjectPtr(* CreatorFn) (void *data)
 
- 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
 

Public Member Functions

 Group ()
 
 IE_CORE_DECLAREOBJECT (Group, VisibleRenderable)
 
TransformgetTransform ()
 
const TransformgetTransform () const
 
void setTransform (TransformPtr transform)
 
Imath::M44f transformMatrix (float time=0) const
 
Imath::M44f globalTransformMatrix (float time=0) const
 
void addState (StateRenderablePtr state)
 
void removeState (StateRenderablePtr state)
 
void clearState ()
 Removes all state from the Group.
 
const StateContainer & state () const
 
const DatagetAttribute (const std::string &name) const
 
void setAttribute (const std::string &name, ConstDataPtr value)
 Set an attribute on this group.
 
void addChild (VisibleRenderablePtr child)
 
void removeChild (VisibleRenderablePtr child)
 
void clearChildren ()
 Removes all children from the Group.
 
const ChildContainer & children () const
 
Groupparent ()
 
const Groupparent () const
 
void render (Renderer *renderer) const override
 
void render (Renderer *renderer, bool inAttributeBlock) const
 
void renderState (Renderer *renderer) const
 
void renderChildren (Renderer *renderer) const
 Renders all the held children, without any attributeBegin/End.
 
Imath::Box3f bound () const override
 
- Public Member Functions inherited from IECore::VisibleRenderable
 IE_CORE_DECLAREABSTRACTOBJECT (VisibleRenderable, Renderable)
 
- Public Member Functions inherited from IECore::Renderable
 IE_CORE_DECLAREABSTRACTOBJECT (Renderable, BlindDataHolder)
 
- Public Member Functions inherited from IECore::BlindDataHolder
 BlindDataHolder (CompoundDataPtr data)
 
 IE_CORE_DECLAREOBJECT (BlindDataHolder, Object)
 
CompoundDatablindData ()
 Return the blind data for modification.
 
const CompoundDatablindData () const
 
- Public Member Functions inherited from IECore::Object
 IE_CORE_DECLARERUNTIMETYPED (Object, RunTimeTyped)
 
ObjectPtr copy () const
 
void copyFrom (const Object *other)
 
void save (IndexedIOPtr ioInterface, const IndexedIO::EntryID &name) const
 
virtual bool isEqualTo (const Object *other) const =0
 
virtual bool isNotEqualTo (const Object *other) const
 
bool operator== (const Object &other) const
 Calls isEqualTo() for people who prefer to use the operator syntax.
 
bool operator!= (const Object &other) const
 Calls isNotEqualTo() for people who prefer to use the operator syntax.
 
size_t memoryUsage () const
 Returns the number of bytes this instance occupies in memory.
 
MurmurHash hash () const
 
virtual void hash (MurmurHash &h) const =0
 
- 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.
 

Additional Inherited Members

- Static Public Member Functions inherited from IECore::Object
static void registerType (TypeId typeId, const std::string &typeName, CreatorFn creator, void *data=nullptr)
 Register a new Object-derived type with the system. The specified void* data is passed into the creator function.
 
static bool isType (TypeId typeId)
 Returns true if typeId is a valid registered Object type.
 
static bool isType (const std::string &typeName)
 Returns true if typeName is a valid registered Object type.
 
static bool isAbstractType (TypeId typeId)
 
static bool isAbstractType (const std::string &typeName)
 As above but taking a type name.
 
static ObjectPtr create (TypeId typeId)
 
static ObjectPtr create (const std::string &typeName)
 
static ObjectPtr load (ConstIndexedIOPtr ioInterface, const IndexedIO::EntryID &name)
 
- 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 IECore::Object
virtual void copyFrom (const Object *other, CopyContext *context)=0
 
 IE_CORE_DECLAREPTR (LoadContext)
 
virtual void save (SaveContext *context) const =0
 
virtual void load (LoadContextPtr context)=0
 
virtual void memoryUsage (MemoryAccumulator &accumulator) const =0
 
- 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

This class allows the grouping and rendering of a set of VisibleRenderables, applying a specific set of Transforms and StateRenderables to them.

Constructor & Destructor Documentation

IECore::Group::Group ( )
Todo:
Add a constructor taking a list of children and state and an optional transform, and bind it.

Member Function Documentation

void IECore::Group::addChild ( VisibleRenderablePtr  child)

Adds a child to this Group. If the child is a Group itself and already has a parent then it will be removed from that parent before being added. Other VisibleRenderables may be parented under many Groups to provide instancing capabilities.

void IECore::Group::addState ( StateRenderablePtr  state)

Adds some state to the Group. Throws an Exception if an attempt is made to add something deriving from Transform - setTransform() should be used for that.

Imath::Box3f IECore::Group::bound ( ) const
overridevirtual

Returns the union of the bounds of the children, transformed by transformMatrix().

Implements IECore::VisibleRenderable.

const ChildContainer& IECore::Group::children ( ) const

Const access to the internal data structure used to hold the children.

const Data* IECore::Group::getAttribute ( const std::string &  name) const

Query an attribute from the group's scope. Tries to find the attribute in the group's state, then traverses the group's parents

Transform* IECore::Group::getTransform ( )

Returns the Transform applied to the children of this Group. This is the local transform for the Group and takes no account of any transforms in the parents of the Group. May return 0 if no transform has been applied.

Imath::M44f IECore::Group::globalTransformMatrix ( float  time = 0) const

Returns the final transform applied to the children of this Group when all parent transforms have been concatenated together with the local transform.

Group* IECore::Group::parent ( )

Returns the parent for this Group, returning 0 if no parent exists.

Referenced by IECoreMaya.ClassVectorParameterUI::registerToolsMenuCallback().

void IECore::Group::removeChild ( VisibleRenderablePtr  child)

Removes a child from the Group - has no effect if child is currently not a child. If the child is not a member of the group then an Exception is thrown.

void IECore::Group::removeState ( StateRenderablePtr  state)

Removes some state from the Group. If the state is not present already then an Exception is thrown.

void IECore::Group::render ( Renderer renderer) const
overridevirtual

Renders all the children in an attribute block along with the transform and state.

Implements IECore::Renderable.

void IECore::Group::render ( Renderer renderer,
bool  inAttributeBlock 
) const

As above, but can optionally omit the attribute block scoping.

void IECore::Group::renderState ( Renderer renderer) const

Renders all the held state, without any attributeBegin/End. Doesn't render the transform.

void IECore::Group::setTransform ( TransformPtr  transform)

Sets the local transform applied to the children of this Group.

const StateContainer& IECore::Group::state ( ) const

Const access to the internal data structure used to hold the state.

Imath::M44f IECore::Group::transformMatrix ( float  time = 0) const

Returns the actual local transform matrix applied to this Group, evaluated at the specified time.


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