35 #ifndef IE_CORE_GROUP_H
36 #define IE_CORE_GROUP_H
38 #include "IECore/Export.h"
39 #include "IECore/StateRenderable.h"
40 #include "IECore/VisibleRenderable.h"
41 #include "IECore/Transform.h"
46 IE_CORE_FORWARDDECLARE( Group );
47 IE_CORE_FORWARDDECLARE( Data );
58 typedef std::vector<VisibleRenderablePtr> ChildContainer;
59 typedef std::vector<StateRenderablePtr> StateContainer;
77 void setTransform( TransformPtr transform );
80 Imath::M44f transformMatrix(
float time = 0 )
const;
84 Imath::M44f globalTransformMatrix(
float time = 0 )
const;
89 void addState( StateRenderablePtr state );
92 void removeState( StateRenderablePtr state );
97 const StateContainer &state()
const;
101 const Data *getAttribute(
const std::string &name )
const;
103 void setAttribute(
const std::string &name, ConstDataPtr value );
109 void addChild( VisibleRenderablePtr child );
113 void removeChild( VisibleRenderablePtr child );
115 void clearChildren();
118 const ChildContainer &children()
const;
123 const Group *parent()
const;
127 void render(
Renderer *renderer )
const override;
130 void render(
Renderer *renderer,
bool inAttributeBlock )
const;
133 void renderState(
Renderer *renderer )
const;
135 void renderChildren(
Renderer *renderer )
const;
139 Imath::Box3f bound()
const override;
145 static const unsigned int m_ioVersion;
147 TransformPtr m_transform;
149 StateContainer m_state;
150 ChildContainer m_children;
156 #endif // IE_CORE_GROUP_H
Definition: VisibleRenderable.h:51
Definition: Renderer.h:93
Definition: InternedString.h:55
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43