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:

List of all members.

## Public Member Functions
virtual int | getReferenceCount () const
| リファレンスカウントの取得
virtual SceneNode * | copy (u_int copyMask=0) const
| コピー
virtual SceneNode * | getParent () const
| 親の取得
virtual void | traverse ()
| 走査
const Matrix34 & | getWorldMatrix () const
| ワールド行列の取得
const Matrix34 & | getLocalMatrix () const
| ローカル行列の取得
virtual void | setScale (const Vector3 &scale)
| スケールの設定
virtual const Vector3 & | getScale () const
| スケールの取得
virtual bool | isScaled () const
| スケールを使用しているか
virtual bool | isGlobalScaled () const
| グローバルでスケールを使用しているか
virtual void | setRotationXYZ (const Vector3 &rotation)
| XYZ回転の設定.
virtual const Vector3 & | getRotationXYZ ()
| XYZ回転の取得.
virtual void | setRotationQuaternion (const Quaternion &rotation)
| 四元数回転の設定
virtual const Quaternion & | getRotationQuaternion ()
| 四元数回転の取得
virtual void | setTranslation (const Vector3 &translation)
| 移動の設定
virtual const Vector3 & | getTranslation () 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 SceneNode * | getSceneNode (int index) const
| シーンノードの取得
virtual void | addSceneLeaf (SceneLeaf *sceneLeaf)
| シーンリーフの追加
virtual void | removeSceneLeaf (SceneLeaf *sceneLeaf)
| シーンリーフの削除
virtual int | getSceneLeafCount () const
| シーンリーフ数の取得
virtual SceneLeaf * | getSceneLeaf (int index) const
| シーンリーフの取得
virtual bool | isSceneNode () const
| シーンノードかどうか
virtual bool | isLODSceneNode () const
| レベルオブディティールシーンノードかどうか
virtual LODSceneNode * | castLODSceneNode () 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:

- SceneNode.h
- SceneNode.cpp