Irrlicht中對於場景節點的管理

Irrlicht中對於場景節點的管理

作者:華亮    http://blog.csdn.net/cedricporter

ISceneNode

            當我們創建一個場景節點ISceneNode的時候,它的引用計數爲1,此時如果我們需要從場景中刪除一個節點的話,我們使用remove()函數,它就會將引用計數減一,所以引用計數爲1的節點將自動被刪除。

            我們不能直接將場景中的節點的引用計數drop到0,因爲drop到0後,他會被delete,而此時他還在場景樹裏面,這時會crash。


ISceneNode::addAnimator

		//! Adds an animator which should animate this node.
		/** \param animator A pointer to the new animator. */
		virtual void addAnimator(ISceneNodeAnimator* animator)
		{
			if (animator)
			{
				Animators.push_back(animator);
				animator->grab();
			}
		}

添加Animator進ISceneNode時,ISceneNode會將Animator的引用計數加一,闡明自己正在使用這個Animator。所以一個新創建出來的且以後其他地方不用的Animator加入ISceneNode後,要Drop,以保證引用計數的正確性。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章