igor::iNodeRender Class Referenceabstract

#include <iNodeRender.h>

Inherits igor::iNode.

Inherited by igor::iNodeSkyBox, igor::iNodeVolume, and igor::iNodeWater.

Public Member Functions

const iaMatrixdgetWorldMatrix () const
 
void setMaterial (const iMaterialPtr &material)
 
iMaterialPtr getMaterial () const
 
void setVisible (bool visible=true)
 
bool isVisible () const
 
virtual void draw ()=0
 
- Public Member Functions inherited from igor::iNode
iNodeKind getKind () const
 
iNodeType getType () const
 
iNodeID getID () const
 
const iaStringgetName () const
 
virtual std::vector< iaStringgetInfo (bool brief=false) const
 
void setName (const iaString &name)
 
void insertNode (iNodePtr node)
 
void insertNodeAsync (iNodePtr node)
 
void setActive (bool active=true)
 
void setActiveAsync (bool active=true)
 
void removeNode (iNodePtr node)
 
void removeNodeAsync (iNodePtr node)
 
bool isChild ()
 
bool isChild (iNodePtr child)
 
bool hasChildren ()
 
const std::vector< iNodePtr > & getChildren () const
 
void getAllChildren (std::vector< iNodePtr > &children) const
 
iNodePtr getChild (const iaString &name)
 
iNodePtr getChild (iNodeID id)
 
const std::vector< iNodePtr > & getInactiveChildren () const
 
iNodePtr getParent ()
 
iScenePtr getScene ()
 
bool isTransformationDirty ()
 
void setTransformationDirty (bool dirty=true)
 
void calcWorldTransformation (iaMatrixd &matrix)
 
bool isActive () const
 
iTransformationChangeEvent & getTransformationChangeEvent ()
 

Protected Member Functions

virtual void onUpdateTransform (iaMatrixd &matrix) override
 
virtual void onPreSetScene () override
 
virtual void onPostSetScene () override
 
 iNodeRender ()
 
 iNodeRender (iNodeRender *node)
 
virtual ~iNodeRender ()
 
- Protected Member Functions inherited from igor::iNode
void setTransformationDirtyDown ()
 
void setTransformationDirtyUp ()
 
void setDataDirty ()
 
bool isDataDirty ()
 
void setParent (iNodePtr parent)
 
void setScene (iScenePtr scene)
 
virtual void onUpdateTransform (iaMatrixd &matrix)
 
virtual void onPreSetScene ()
 
virtual void onPostSetScene ()
 
virtual bool onUpdateData ()
 
virtual void onPostCopyLink (std::map< iNodeID, iNodeID > &nodeIDMap)
 
 iNode ()
 
 iNode (iNodePtr node)
 
virtual ~iNode ()
 

Protected Attributes

iaMatrixd _worldMatrix
 
bool _visible = true
 
- Protected Attributes inherited from igor::iNode
bool _active = true
 
iNodeType _nodeType = iNodeType::iNode
 
iNodeKind _nodeKind = iNodeKind::Node
 
iaString _name = L"iNode"
 
bool _transformationDirty = true
 
iScenePtr _scene = nullptr
 
iNodePtr _parent = nullptr
 
std::vector< iNodePtr_children
 
std::vector< iNodePtr_inactiveChildren
 
iTransformationChangeEvent _transformationChangeEvent
 

Friends

class iNodeVisitorUpdateTransform
 
class iOctree
 
class iRenderEngine
 
class iNodeManager
 

Additional Inherited Members

- Static Public Member Functions inherited from igor::iNode
static iaString getKindName (iNodeKind kind)
 
static iaString getTypeName (iNodeType nodeType)
 
- Static Public Attributes inherited from igor::iNode
static const iNodeID INVALID_NODE_ID = IGOR_INVALID_ID
 

Detailed Description

abstract class for nodes that can render

Constructor & Destructor Documentation

◆ iNodeRender() [1/2]

igor::iNodeRender::iNodeRender ( )
protected

initializes member variables

◆ iNodeRender() [2/2]

igor::iNodeRender::iNodeRender ( iNodeRender node)
protected

copy ctor

◆ ~iNodeRender()

igor::iNodeRender::~iNodeRender ( )
protectedvirtual

clears relation to material groups

Member Function Documentation

◆ draw()

virtual void igor::iNodeRender::draw ( )
pure virtual

abstract method draw

◆ getMaterial()

iMaterialPtr igor::iNodeRender::getMaterial ( ) const
Returns
the material in use

◆ getWorldMatrix()

const iaMatrixd & igor::iNodeRender::getWorldMatrix ( ) const
Returns
world matrix of node

◆ isVisible()

bool igor::iNodeRender::isVisible ( ) const
Returns
true if node is visible

◆ onPostSetScene()

void igor::iNodeRender::onPostSetScene ( )
overrideprotectedvirtual

register to scene

Reimplemented from igor::iNode.

Reimplemented in igor::iNodeVolume.

◆ onPreSetScene()

void igor::iNodeRender::onPreSetScene ( )
overrideprotectedvirtual

unregisters from scene

Reimplemented from igor::iNode.

Reimplemented in igor::iNodeVolume.

◆ onUpdateTransform()

void igor::iNodeRender::onUpdateTransform ( iaMatrixd matrix)
overrideprotectedvirtual

called by update transform run

\parma[in, out] matrix current transform matrix

Reimplemented from igor::iNode.

Reimplemented in igor::iNodeVolume.

◆ setMaterial()

void igor::iNodeRender::setMaterial ( const iMaterialPtr material)

sets material of node

Parameters
materialthe material

◆ setVisible()

void igor::iNodeRender::setVisible ( bool  visible = true)

sets visibility of this node

Parameters
visibleif true node will be rendered

Friends And Related Function Documentation

◆ iNodeManager

friend class iNodeManager
friend

◆ iNodeVisitorUpdateTransform

friend class iNodeVisitorUpdateTransform
friend

◆ iOctree

friend class iOctree
friend

◆ iRenderEngine

friend class iRenderEngine
friend

Member Data Documentation

◆ _visible

bool igor::iNodeRender::_visible = true
protected

if node will be rendered

◆ _worldMatrix

iaMatrixd igor::iNodeRender::_worldMatrix
protected

world matrix


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