Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

Lamp::SceneNode Class Reference

シーンノード More...

#include <SceneNode.h>

Inheritance diagram for Lamp::SceneNode:

Lamp::SceneObject Lamp::LODSceneNode List of all members.

Public Member Functions

virtual int getReferenceCount () const
 リファレンスカウントの取得

virtual SceneNodecopy (u_int copyMask=0) const
 コピー

virtual SceneNodegetParent () const
 親の取得

virtual void traverse ()
 走査

const Matrix34getWorldMatrix () const
 ワールド行列の取得

const Matrix34getLocalMatrix () const
 ローカル行列の取得

virtual void setScale (const Vector3 &scale)
 スケールの設定

virtual const Vector3getScale () const
 スケールの取得

virtual bool isScaled () const
 スケールを使用しているか

virtual bool isGlobalScaled () const
 グローバルでスケールを使用しているか

virtual void setRotationXYZ (const Vector3 &rotation)
 XYZ回転の設定.

virtual const Vector3getRotationXYZ ()
 XYZ回転の取得.

virtual void setRotationQuaternion (const Quaternion &rotation)
 四元数回転の設定

virtual const QuaterniongetRotationQuaternion ()
 四元数回転の取得

virtual void setTranslation (const Vector3 &translation)
 移動の設定

virtual const Vector3getTranslation () const
 移動の取得

virtual bool isChanged () const
 変更フラグの取得

virtual bool isGlobalChanged () const
 グローバルでの変更フラグの取得

virtual void setEnabled (bool enabled)
 有効、無効の設定

virtual bool isEnabled () const
 有効、無効の取得

virtual bool isGlobalEnabled () const
 グローバルでの有効、無効の取得

virtual void addSceneNode (SceneNode *sceneNode)
 シーンノードの追加

virtual void removeSceneNode (SceneNode *sceneNode)
 シーンノードの削除

virtual int getSceneNodeCount () const
 シーンノード数の取得

virtual SceneNodegetSceneNode (int index) const
 シーンノードの取得

virtual void addSceneLeaf (SceneLeaf *sceneLeaf)
 シーンリーフの追加

virtual void removeSceneLeaf (SceneLeaf *sceneLeaf)
 シーンリーフの削除

virtual int getSceneLeafCount () const
 シーンリーフ数の取得

virtual SceneLeafgetSceneLeaf (int index) const
 シーンリーフの取得

virtual bool isSceneNode () const
 シーンノードかどうか

virtual bool isLODSceneNode () const
 レベルオブディティールシーンノードかどうか

virtual LODSceneNodecastLODSceneNode () const
 レベルオブディティールシーンノードへのキャスト


Static Public Member Functions

int recursiveDestroy (SceneNode *sceneNode)
 再帰的破棄

int recursiveDestroyChildren (SceneNode *sceneNode)
 子の再帰的破棄


Protected Member Functions

 SceneNode (const String &name, Scene *scene)
 コンストラクタ

virtual ~SceneNode ()
 デストラクタ

virtual void copySceneNodeValue (SceneNode *destination, u_int copyMask) const
 シーンノードの値コピー

virtual void traverse (const Matrix34 &parentMatrix, const Vector3 &cameraPosition, bool parentEnabled, bool parentScaled, bool parentChanged)
 走査

virtual bool calcMatrix (const Matrix34 &parentMatrix, bool parentChanged)
 行列の計算

virtual void setGlobalEnabled (bool globalEnabled)
 グローバルでの有効、無効の設定

virtual void setGlobalScaled (bool globalScaled)
 グローバルでスケールを使用しているかの設定

virtual void setGlobalChanged (bool globalChanged)
 グローバルでの変更フラグの設定

virtual void setParent (SceneNode *parent)
 親の設定

virtual void removeParent (SceneNode *parent)
 親の削除


Friends

class SceneObjectManagerTemplate< SceneNode >
class SceneNodeManager
class LODSceneNode

Detailed Description

シーンノード

Definition at line 41 of file SceneNode.h.


Constructor & Destructor Documentation

Lamp::SceneNode::SceneNode const String name,
Scene scene
[protected]
 

コンストラクタ

Parameters:
name 名前
scene シーン

Definition at line 36 of file SceneNode.cpp.

References NULL.


Member Function Documentation

void Lamp::SceneNode::addSceneLeaf SceneLeaf sceneLeaf  )  [virtual]
 

シーンリーフの追加

Parameters:
sceneLeaf 追加するシーンリーフ

Definition at line 162 of file SceneNode.cpp.

References Lamp::ArrayList< SceneLeaf * >::add(), and Lamp::SceneLeaf::setParent().

Referenced by copySceneNodeValue(), Lamp::TextSceneLoader::readSceneNodeLink(), and Lamp::BinarySceneLoader::readSceneNodeLink().

virtual void Lamp::SceneNode::addSceneNode SceneNode sceneNode  )  [inline, virtual]
 

シーンノードの追加

Parameters:
sceneNode 追加するシーンノード

Definition at line 218 of file SceneNode.h.

References Lamp::ArrayList< SceneNode * >::add(), and setParent().

Referenced by copySceneNodeValue(), Lamp::TextSceneLoader::readSceneNodeLink(), and Lamp::BinarySceneLoader::readSceneNodeLink().

bool Lamp::SceneNode::calcMatrix const Matrix34 parentMatrix,
bool  parentChanged
[protected, virtual]
 

行列の計算

Parameters:
parentMatrix 親行列
parentChanged 親に変更があったか
Returns:
変更があればtrue

Definition at line 143 of file SceneNode.cpp.

References Assert, Lamp::Axis3::buildMatrix(), and getLocalMatrix().

Referenced by traverse(), and Lamp::LODSceneNode::traverse().

virtual LODSceneNode* Lamp::SceneNode::castLODSceneNode  )  const [inline, virtual]
 

レベルオブディティールシーンノードへのキャスト

Returns:
レベルオブディティールシーンノード。型が違えばNULLを返す。

Definition at line 301 of file SceneNode.h.

References isLODSceneNode(), and NULL.

Referenced by Lamp::TextSceneSaver::writeSceneNodeList(), and Lamp::BinarySceneSaver::writeSceneNodeList().

SceneNode * Lamp::SceneNode::copy u_int  copyMask = 0  )  const [virtual]
 

コピー

Parameters:
copyMask コピーマスク
Returns:
コピーされたシーンノード

Reimplemented in Lamp::LODSceneNode.

Definition at line 47 of file SceneNode.cpp.

References copySceneNodeValue(), Lamp::SceneNodeManager::createSceneNode(), Lamp::Scene::getSceneNodeManager(), Lamp::SceneObject::name_, Lamp::SceneObjectManagerTemplate< SceneNode >::rename(), and Lamp::SceneObject::scene_.

Referenced by copySceneNodeValue().

void Lamp::SceneNode::copySceneNodeValue SceneNode destination,
u_int  copyMask
const [protected, virtual]
 

シーンノードの値コピー

Parameters:
destination コピー先シーンノード
copyMask コピーマスク

Definition at line 83 of file SceneNode.cpp.

References addSceneLeaf(), addSceneNode(), axis_, copy(), getSceneLeaf(), getSceneLeafCount(), getSceneNode(), getSceneNodeCount(), and setEnabled().

Referenced by copy(), and Lamp::LODSceneNode::copyLODSceneNode().

const Matrix34& Lamp::SceneNode::getLocalMatrix  )  const [inline]
 

ローカル行列の取得

Returns:
ローカル行列

Definition at line 101 of file SceneNode.h.

References Lamp::Axis3::getMatrix().

Referenced by calcMatrix().

virtual SceneNode* Lamp::SceneNode::getParent  )  const [inline, virtual]
 

親の取得

Returns:

Definition at line 82 of file SceneNode.h.

Referenced by recursiveDestroy().

virtual int Lamp::SceneNode::getReferenceCount  )  const [inline, virtual]
 

リファレンスカウントの取得

Returns:
リファレンスカウント

Implements Lamp::SceneObject.

Definition at line 50 of file SceneNode.h.

References NULL.

Referenced by Lamp::SceneLogicCheckFilter::filterSceneNode().

virtual const Quaternion& Lamp::SceneNode::getRotationQuaternion  )  [inline, virtual]
 

四元数回転の取得

Returns:
四元数回転

Definition at line 158 of file SceneNode.h.

References Lamp::Axis3::getRotationQuaternion().

virtual const Vector3& Lamp::SceneNode::getRotationXYZ  )  [inline, virtual]
 

XYZ回転の取得.

Returns:
XYZ回転

Definition at line 141 of file SceneNode.h.

References Lamp::Axis3::getRotationXYZ().

Referenced by Lamp::CollisionConverter::convertNode(), Lamp::TextSceneSaver::writeLODSceneNode(), Lamp::BinarySceneSaver::writeLODSceneNode(), Lamp::TextSceneSaver::writeSceneNode(), and Lamp::BinarySceneSaver::writeSceneNode().

virtual const Vector3& Lamp::SceneNode::getScale  )  const [inline, virtual]
 

スケールの取得

Returns:
スケール

Definition at line 114 of file SceneNode.h.

References Lamp::Axis3::getScale().

Referenced by Lamp::CollisionConverter::convertNode(), Lamp::TextSceneSaver::writeLODSceneNode(), Lamp::BinarySceneSaver::writeLODSceneNode(), Lamp::TextSceneSaver::writeSceneNode(), and Lamp::BinarySceneSaver::writeSceneNode().

virtual SceneLeaf* Lamp::SceneNode::getSceneLeaf int  index  )  const [inline, virtual]
 

シーンリーフの取得

Parameters:
index インデックス
Returns:
シーンリーフ

Definition at line 275 of file SceneNode.h.

References Assert, Lamp::ArrayList< SceneLeaf * >::get(), and getSceneLeafCount().

Referenced by Lamp::SceneNodeManager::clear(), Lamp::CollisionConverter::convert(), Lamp::CollisionConverter::convertNode(), copySceneNodeValue(), recursiveDestroyChildren(), traverse(), Lamp::LODSceneNode::traverse(), Lamp::TextSceneSaver::writeSceneNodeLink(), and Lamp::BinarySceneSaver::writeSceneNodeLink().

virtual int Lamp::SceneNode::getSceneLeafCount  )  const [inline, virtual]
 

シーンリーフ数の取得

Returns:
シーンリーフ数

Definition at line 268 of file SceneNode.h.

References Lamp::ArrayList< SceneLeaf * >::getCount().

Referenced by Lamp::SceneNodeManager::clear(), Lamp::CollisionConverter::convert(), Lamp::CollisionConverter::convertNode(), copySceneNodeValue(), getSceneLeaf(), recursiveDestroyChildren(), traverse(), Lamp::LODSceneNode::traverse(), Lamp::TextSceneSaver::writeSceneNodeLink(), and Lamp::BinarySceneSaver::writeSceneNodeLink().

virtual SceneNode* Lamp::SceneNode::getSceneNode int  index  )  const [inline, virtual]
 

シーンノードの取得

Parameters:
index インデックス
Returns:
シーンノード

Definition at line 243 of file SceneNode.h.

References Assert, Lamp::ArrayList< SceneNode * >::get(), and getSceneNodeCount().

Referenced by Lamp::SceneNodeManager::clear(), Lamp::CollisionConverter::convert(), Lamp::CollisionConverter::convertNode(), copySceneNodeValue(), recursiveDestroyChildren(), traverse(), Lamp::LODSceneNode::traverse(), Lamp::TextSceneSaver::writeSceneNodeLink(), and Lamp::BinarySceneSaver::writeSceneNodeLink().

virtual int Lamp::SceneNode::getSceneNodeCount  )  const [inline, virtual]
 

シーンノード数の取得

Returns:
シーンノード数

Definition at line 236 of file SceneNode.h.

References Lamp::ArrayList< SceneNode * >::getCount().

Referenced by Lamp::SceneNodeManager::clear(), Lamp::CollisionConverter::convert(), Lamp::CollisionConverter::convertNode(), copySceneNodeValue(), getSceneNode(), recursiveDestroyChildren(), traverse(), Lamp::LODSceneNode::traverse(), Lamp::TextSceneSaver::writeSceneNodeLink(), and Lamp::BinarySceneSaver::writeSceneNodeLink().

virtual const Vector3& Lamp::SceneNode::getTranslation  )  const [inline, virtual]
 

移動の取得

Returns:
移動

Definition at line 175 of file SceneNode.h.

References Lamp::Axis3::getTranslation().

Referenced by Lamp::CollisionConverter::convertNode(), Lamp::TextSceneSaver::writeLODSceneNode(), Lamp::BinarySceneSaver::writeLODSceneNode(), Lamp::TextSceneSaver::writeSceneNode(), and Lamp::BinarySceneSaver::writeSceneNode().

const Matrix34& Lamp::SceneNode::getWorldMatrix  )  const [inline]
 

ワールド行列の取得

Returns:
ワールド行列

Definition at line 95 of file SceneNode.h.

Referenced by Lamp::FixedShader::setMatrixFixed(), Lamp::InformationRenderer::setupAxis(), Lamp::InformationRenderer::setupBone(), traverse(), and Lamp::LODSceneNode::traverse().

virtual bool Lamp::SceneNode::isChanged  )  const [inline, virtual]
 

変更フラグの取得

Returns:
変更されていればtrue

Definition at line 184 of file SceneNode.h.

References Lamp::Axis3::isChanged().

virtual bool Lamp::SceneNode::isEnabled  )  const [inline, virtual]
 

有効、無効の取得

Returns:
trueなら有効、falseなら無効

Definition at line 203 of file SceneNode.h.

Referenced by Lamp::SceneNodeAnimation::animate(), Lamp::CollisionConverter::convertNode(), Lamp::TextSceneLoader::load(), Lamp::BinarySceneLoader::load(), traverse(), Lamp::LODSceneNode::traverse(), Lamp::TextSceneSaver::writeLODSceneNode(), Lamp::BinarySceneSaver::writeLODSceneNode(), Lamp::TextSceneSaver::writeSceneNode(), and Lamp::BinarySceneSaver::writeSceneNode().

virtual bool Lamp::SceneNode::isGlobalChanged  )  const [inline, virtual]
 

グローバルでの変更フラグの取得

Returns:
グローバルで変更されていればtrue

Definition at line 190 of file SceneNode.h.

Referenced by traverse().

virtual bool Lamp::SceneNode::isGlobalEnabled  )  const [inline, virtual]
 

グローバルでの有効、無効の取得

Returns:
trueなら有効、falseなら無効

Definition at line 209 of file SceneNode.h.

Referenced by Lamp::InformationRenderer::setupAxis(), traverse(), and Lamp::LODSceneNode::traverse().

virtual bool Lamp::SceneNode::isGlobalScaled  )  const [inline, virtual]
 

グローバルでスケールを使用しているか

Returns:
グローバルでスケールを使用しているならtrue

Definition at line 126 of file SceneNode.h.

Referenced by Lamp::DrawRequest::requireNormalize(), and traverse().

virtual bool Lamp::SceneNode::isLODSceneNode  )  const [inline, virtual]
 

レベルオブディティールシーンノードかどうか

Returns:
レベルオブディティールシーンノードならtrue

Reimplemented in Lamp::LODSceneNode.

Definition at line 295 of file SceneNode.h.

Referenced by castLODSceneNode(), Lamp::TextSceneSaver::writeSceneNodeList(), and Lamp::BinarySceneSaver::writeSceneNodeList().

virtual bool Lamp::SceneNode::isScaled  )  const [inline, virtual]
 

スケールを使用しているか

Returns:
スケールを使用しているならtrue

Definition at line 120 of file SceneNode.h.

References Lamp::Axis3::isScaled().

Referenced by traverse(), and Lamp::LODSceneNode::traverse().

virtual bool Lamp::SceneNode::isSceneNode  )  const [inline, virtual]
 

シーンノードかどうか

Returns:
シーンノードならtrue

Reimplemented from Lamp::SceneObject.

Definition at line 288 of file SceneNode.h.

int Lamp::SceneNode::recursiveDestroy SceneNode sceneNode  )  [static]
 

再帰的破棄

Parameters:
sceneNode 破棄するシーンノード
Returns:
破棄したオブジェクト数

Definition at line 55 of file SceneNode.cpp.

References Assert, Lamp::SceneObjectManagerTemplate< SceneNode >::destroy(), getParent(), Lamp::Scene::getRootNode(), Lamp::SceneObject::getScene(), Lamp::Scene::getSceneNodeManager(), NULL, recursiveDestroyChildren(), and removeSceneNode().

Referenced by recursiveDestroyChildren().

int Lamp::SceneNode::recursiveDestroyChildren SceneNode sceneNode  )  [static]
 

子の再帰的破棄

Parameters:
sceneNode 子を破棄するシーンノード
Returns:
破棄したオブジェクト数

Definition at line 68 of file SceneNode.cpp.

References Assert, getSceneLeaf(), getSceneLeafCount(), getSceneNode(), getSceneNodeCount(), NULL, and recursiveDestroy().

Referenced by recursiveDestroy().

virtual void Lamp::SceneNode::removeParent SceneNode parent  )  [inline, protected, virtual]
 

親の削除

Parameters:
parent 削除する親

Definition at line 389 of file SceneNode.h.

References Assert, NULL, and setGlobalEnabled().

Referenced by removeSceneNode().

void Lamp::SceneNode::removeSceneLeaf SceneLeaf sceneLeaf  )  [virtual]
 

シーンリーフの削除

Parameters:
sceneLeaf 削除するシーンリーフ

Definition at line 168 of file SceneNode.cpp.

References Lamp::ArrayList< SceneLeaf * >::removeByValue(), and Lamp::SceneLeaf::removeParent().

Referenced by Lamp::SceneNodeManager::clear(), and Lamp::SceneLeaf::recursiveDestroy().

virtual void Lamp::SceneNode::removeSceneNode SceneNode sceneNode  )  [inline, virtual]
 

シーンノードの削除

Parameters:
sceneNode 削除するシーンノード

Definition at line 227 of file SceneNode.h.

References Lamp::ArrayList< SceneNode * >::removeByValue(), and removeParent().

Referenced by Lamp::SceneNodeManager::clear(), and recursiveDestroy().

virtual void Lamp::SceneNode::setEnabled bool  enabled  )  [inline, virtual]
 

有効、無効の設定

Parameters:
enabled trueなら有効、falseなら無効

Definition at line 197 of file SceneNode.h.

Referenced by copySceneNodeValue(), Lamp::TextSceneLoader::load(), Lamp::BinarySceneLoader::load(), Lamp::TextSceneLoader::readLODSceneNode(), Lamp::BinarySceneLoader::readLODSceneNode(), Lamp::TextSceneLoader::readSceneNode(), and Lamp::BinarySceneLoader::readSceneNode().

virtual void Lamp::SceneNode::setGlobalChanged bool  globalChanged  )  [inline, protected, virtual]
 

グローバルでの変更フラグの設定

Parameters:
globalChanged trueなら有効、falseなら無効

Definition at line 369 of file SceneNode.h.

Referenced by traverse(), and Lamp::LODSceneNode::traverse().

virtual void Lamp::SceneNode::setGlobalEnabled bool  globalEnabled  )  [inline, protected, virtual]
 

グローバルでの有効、無効の設定

Parameters:
globalEnabled trueなら有効、falseなら無効

Definition at line 353 of file SceneNode.h.

Referenced by removeParent(), setParent(), traverse(), and Lamp::LODSceneNode::traverse().

virtual void Lamp::SceneNode::setGlobalScaled bool  globalScaled  )  [inline, protected, virtual]
 

グローバルでスケールを使用しているかの設定

Parameters:
globalScaled グローバルでスケールを使用しているならtrue

Definition at line 361 of file SceneNode.h.

Referenced by traverse(), and Lamp::LODSceneNode::traverse().

virtual void Lamp::SceneNode::setParent SceneNode parent  )  [inline, protected, virtual]
 

親の設定

Parameters:
parent 設定する親

Definition at line 378 of file SceneNode.h.

References Assert, NULL, and setGlobalEnabled().

Referenced by addSceneNode().

virtual void Lamp::SceneNode::setRotationQuaternion const Quaternion rotation  )  [inline, virtual]
 

四元数回転の設定

Parameters:
rotation 四元数回転

Definition at line 150 of file SceneNode.h.

References Lamp::Axis3::setRotationQuaternion().

Referenced by Lamp::SceneNodeAnimation::animate().

virtual void Lamp::SceneNode::setRotationXYZ const Vector3 rotation  )  [inline, virtual]
 

XYZ回転の設定.

Parameters:
rotation XYZ回転

Definition at line 133 of file SceneNode.h.

References Lamp::Axis3::setRotationXYZ().

Referenced by Lamp::SceneNodeAnimation::animate(), Lamp::TextSceneLoader::readLODSceneNode(), Lamp::BinarySceneLoader::readLODSceneNode(), Lamp::TextSceneLoader::readSceneNode(), and Lamp::BinarySceneLoader::readSceneNode().

virtual void Lamp::SceneNode::setScale const Vector3 scale  )  [inline, virtual]
 

スケールの設定

Parameters:
scale スケール

Definition at line 108 of file SceneNode.h.

References Lamp::Axis3::setScale().

Referenced by Lamp::SceneNodeAnimation::animate(), Lamp::TextSceneLoader::readLODSceneNode(), Lamp::BinarySceneLoader::readLODSceneNode(), Lamp::TextSceneLoader::readSceneNode(), and Lamp::BinarySceneLoader::readSceneNode().

virtual void Lamp::SceneNode::setTranslation const Vector3 translation  )  [inline, virtual]
 

移動の設定

Parameters:
translation 移動

Definition at line 167 of file SceneNode.h.

References Lamp::Axis3::setTranslation().

Referenced by Lamp::SceneNodeAnimation::animate(), Lamp::TextSceneLoader::readLODSceneNode(), Lamp::BinarySceneLoader::readLODSceneNode(), Lamp::TextSceneLoader::readSceneNode(), and Lamp::BinarySceneLoader::readSceneNode().

void Lamp::SceneNode::traverse const Matrix34 parentMatrix,
const Vector3 cameraPosition,
bool  parentEnabled,
bool  parentScaled,
bool  parentChanged
[protected, virtual]
 

走査

Parameters:
parentMatrix 親行列
cameraPosition カメラ位置
parentEnabled 親が有効か
parentScaled 親がスケールを使用しているか
parentChanged 親に変更があったか

Reimplemented in Lamp::LODSceneNode.

Definition at line 113 of file SceneNode.cpp.

References calcMatrix(), getSceneLeaf(), getSceneLeafCount(), getSceneNode(), getSceneNodeCount(), isEnabled(), isGlobalEnabled(), isScaled(), setGlobalChanged(), setGlobalEnabled(), setGlobalScaled(), Lamp::SceneLeaf::traverse(), and traverse().


The documentation for this class was generated from the following files:
Generated on Wed Mar 16 10:29:51 2005 for Lamp by doxygen 1.3.2