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

Lamp::CollisionObject Class Reference

コリジョンオブジェクト More...

#include <CollisionObject.h>

Inheritance diagram for Lamp::CollisionObject:

Lamp::CollisionLeaf Lamp::CollisionNode Lamp::DynamicCollisionLeaf Lamp::StaticCollisionLeaf Lamp::StaticDeformedMeshCollision Lamp::StaticSphereCollision List of all members.

Public Member Functions

virtual void traverse ()
 走査

virtual const StringgetName () const
 名前の取得

virtual CollisionScenegetScene () const
 シーンの取得

virtual CollisionNodegetParent () const
 親の取得

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

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

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

virtual void setUserData (void *userData)
 ユーザデータの設定

virtual void * getUserData ()
 ユーザデータの取得

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

virtual CollisionObjectcopy () const=0
 コピー

virtual bool isCollisionNode () const
 コリジョンノードかどうか

virtual CollisionNodecastCollisionNode () const
 コリジョンノードへのキャスト

virtual bool isCollisionLeaf () const
 コリジョンリーフかどうか

virtual CollisionLeafcastCollisionLeaf () const
 コリジョンリーフへのキャスト

virtual bool isStaticCollisionLeaf () const
 静的コリジョンリーフかどうか

virtual StaticCollisionLeafcastStaticCollisionLeaf () const
 静的コリジョンリーフへのキャスト

virtual bool isStaticSphereCollision () const
 静的球コリジョンかどうか

virtual StaticSphereCollisioncastStaticSphereCollision () const
 静的球コリジョンへのキャスト

virtual bool isStaticDeformedMeshCollision () const
 静的変形メッシュコリジョンかどうか

virtual StaticDeformedMeshCollisioncastStaticDeformedMeshCollision () const
 静的変形メッシュコリジョンへのキャスト

virtual bool isDynamicCollisionLeaf () const
 動的コリジョンリーフかどうか

virtual DynamicCollisionLeafcastDynamicCollisionLeaf () const
 動的コリジョンリーフへのキャスト


Static Public Member Functions

int recursiveDestroy (CollisionObject *collisionObject)
 再帰的破棄


Protected Member Functions

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

virtual ~CollisionObject ()
 デストラクタ

virtual void copyCollisionObjectValue (CollisionObject *destination) const
 コリジョンオブジェクトの値コピー

virtual void traverseImplement (const Matrix34 &parentMatrix, bool parentEnabled, bool parentScaled, bool parentChanged)=0
 走査

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

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

virtual void setChanged (bool changed)
 変更フラグの設定

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

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

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


Friends

class CollisionScene
class CollisionNode

Detailed Description

コリジョンオブジェクト

Definition at line 42 of file CollisionObject.h.


Constructor & Destructor Documentation

Lamp::CollisionObject::CollisionObject const String name,
CollisionScene scene
[inline, protected]
 

コンストラクタ

Parameters:
name 名前
scene シーン

Definition at line 255 of file CollisionObject.h.

References NULL.


Member Function Documentation

virtual CollisionLeaf* Lamp::CollisionObject::castCollisionLeaf  )  const [inline, virtual]
 

コリジョンリーフへのキャスト

Returns:
コリジョンリーフ。型が違えばNULLを返す。

Definition at line 170 of file CollisionObject.h.

References isCollisionLeaf(), and NULL.

Referenced by recursiveDestroy().

virtual CollisionNode* Lamp::CollisionObject::castCollisionNode  )  const [inline, virtual]
 

コリジョンノードへのキャスト

Returns:
コリジョンノード。型が違えばNULLを返す。

Definition at line 154 of file CollisionObject.h.

References isCollisionNode(), and NULL.

Referenced by recursiveDestroy().

virtual DynamicCollisionLeaf* Lamp::CollisionObject::castDynamicCollisionLeaf  )  const [inline, virtual]
 

動的コリジョンリーフへのキャスト

Returns:
動的コリジョンリーフ。型が違えばNULLを返す。

Definition at line 241 of file CollisionObject.h.

References isDynamicCollisionLeaf(), and NULL.

virtual StaticCollisionLeaf* Lamp::CollisionObject::castStaticCollisionLeaf  )  const [inline, virtual]
 

静的コリジョンリーフへのキャスト

Returns:
静的コリジョンリーフ。型が違えばNULLを返す。

Definition at line 188 of file CollisionObject.h.

References isStaticCollisionLeaf(), and NULL.

virtual StaticDeformedMeshCollision* Lamp::CollisionObject::castStaticDeformedMeshCollision  )  const [inline, virtual]
 

静的変形メッシュコリジョンへのキャスト

Returns:
静的変形メッシュコリジョン。型が違えばNULLを返す。

Definition at line 221 of file CollisionObject.h.

References isStaticDeformedMeshCollision(), and NULL.

Referenced by Lamp::CollisionRenderer::renderingSetup(), and Lamp::TextCollisionSaver::save().

virtual StaticSphereCollision* Lamp::CollisionObject::castStaticSphereCollision  )  const [inline, virtual]
 

静的球コリジョンへのキャスト

Returns:
静的球コリジョン。型が違えばNULLを返す。

Definition at line 204 of file CollisionObject.h.

References isStaticSphereCollision(), and NULL.

Referenced by Lamp::CollisionRenderer::renderingSetup(), and Lamp::TextCollisionSaver::save().

virtual CollisionObject* Lamp::CollisionObject::copy  )  const [pure virtual]
 

コピー

Returns:
コピーされたコリジョンオブジェクト

Implemented in Lamp::StaticDeformedMeshCollision, Lamp::StaticSphereCollision, and Lamp::CollisionNode.

virtual void Lamp::CollisionObject::copyCollisionObjectValue CollisionObject destination  )  const [inline, protected, virtual]
 

コリジョンオブジェクトの値コピー

Parameters:
destination コピー先コリジョンオブジェクト

Definition at line 273 of file CollisionObject.h.

References Assert, changed_, and enabled_.

Referenced by Lamp::CollisionLeaf::copyCollisionLeafValue(), and Lamp::CollisionNode::copyCollisionNode().

virtual const String& Lamp::CollisionObject::getName  )  const [inline, virtual]
 

名前の取得

Returns:
名前

Definition at line 61 of file CollisionObject.h.

Referenced by Lamp::CollisionScene::clear(), Lamp::CollisionNode::copyCollisionNode(), Lamp::StaticDeformedMeshCollision::copyStaticDeformedMeshCollision(), Lamp::StaticSphereCollision::copyStaticSphereCollision(), Lamp::CollisionScene::destroyLeaf(), Lamp::CollisionScene::destroyNode(), Lamp::TextCollisionSaver::save(), Lamp::TextCollisionSaver::writeCollisionLeaf(), Lamp::TextCollisionSaver::writeCollisionNode(), Lamp::TextCollisionSaver::writeCollisionNodeLink(), and Lamp::CollisionScene::~CollisionScene().

virtual CollisionNode* Lamp::CollisionObject::getParent  )  const [inline, virtual]
 

親の取得

Returns:

Definition at line 75 of file CollisionObject.h.

Referenced by Lamp::CollisionLeaf::destroy(), Lamp::CollisionLeaf::getLocalMatrix(), Lamp::CollisionLeaf::getRotationQuaternion(), Lamp::CollisionLeaf::getRotationXYZ(), Lamp::CollisionLeaf::getScale(), Lamp::CollisionLeaf::getTranslation(), Lamp::CollisionLeaf::getWorldMatrix(), Lamp::StaticDeformedMeshCollision::getWorldMesh(), Lamp::CollisionLeaf::isGlobalScaled(), Lamp::CollisionLeaf::isScaled(), Lamp::CollisionNode::recursiveDestroy(), Lamp::CollisionLeaf::setRotationQuaternion(), Lamp::CollisionLeaf::setRotationXYZ(), Lamp::CollisionLeaf::setScale(), and Lamp::CollisionLeaf::setTranslation().

virtual CollisionScene* Lamp::CollisionObject::getScene  )  const [inline, virtual]
 

シーンの取得

Returns:
シーン

Definition at line 68 of file CollisionObject.h.

Referenced by Lamp::CollisionNode::copyCollisionNode(), Lamp::StaticDeformedMeshCollision::copyStaticDeformedMeshCollision(), Lamp::StaticSphereCollision::copyStaticSphereCollision(), Lamp::CollisionLeaf::destroy(), and Lamp::CollisionNode::recursiveDestroy().

virtual void* Lamp::CollisionObject::getUserData  )  [inline, virtual]
 

ユーザデータの取得

Returns:
ユーザデータ

Definition at line 114 of file CollisionObject.h.

virtual bool Lamp::CollisionObject::isChanged  )  const [inline, protected, virtual]
 

変更フラグの取得

Returns:
変更されていればtrue

Reimplemented in Lamp::CollisionNode.

Definition at line 310 of file CollisionObject.h.

Referenced by Lamp::CollisionLeaf::traverseSetup().

virtual bool Lamp::CollisionObject::isCollisionLeaf  )  const [inline, virtual]
 

コリジョンリーフかどうか

Returns:
コリジョンリーフならtrue

Reimplemented in Lamp::CollisionLeaf.

Definition at line 164 of file CollisionObject.h.

Referenced by castCollisionLeaf(), and recursiveDestroy().

virtual bool Lamp::CollisionObject::isCollisionNode  )  const [inline, virtual]
 

コリジョンノードかどうか

Returns:
コリジョンノードならtrue

Reimplemented in Lamp::CollisionNode.

Definition at line 148 of file CollisionObject.h.

Referenced by castCollisionNode(), recursiveDestroy(), and Lamp::TextCollisionSaver::writeCollisionNodeLink().

virtual bool Lamp::CollisionObject::isDynamicCollisionLeaf  )  const [inline, virtual]
 

動的コリジョンリーフかどうか

Returns:
動的コリジョンリーフならtrue

Reimplemented in Lamp::DynamicCollisionLeaf.

Definition at line 235 of file CollisionObject.h.

Referenced by castDynamicCollisionLeaf().

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

有効、無効の取得

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

Definition at line 93 of file CollisionObject.h.

Referenced by Lamp::TextCollisionLoader::load(), Lamp::CollisionNode::traverseImplement(), Lamp::CollisionLeaf::traverseSetup(), Lamp::TextCollisionSaver::writeCollisionLeaf(), and Lamp::TextCollisionSaver::writeCollisionNode().

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

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

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

Definition at line 123 of file CollisionObject.h.

Referenced by traverse().

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

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

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

Definition at line 99 of file CollisionObject.h.

Referenced by Lamp::StaticDeformedMeshCollision::getWorldMesh(), Lamp::StaticSphereCollision::getWorldSphere(), Lamp::StaticSphereCollision::intersection(), Lamp::StaticDeformedMeshCollision::intersection(), Lamp::CollisionScene::intersection(), Lamp::CollisionRenderer::renderingSetup(), traverse(), and Lamp::CollisionNode::traverseImplement().

virtual bool Lamp::CollisionObject::isStaticCollisionLeaf  )  const [inline, virtual]
 

静的コリジョンリーフかどうか

Returns:
静的コリジョンリーフならtrue

Reimplemented in Lamp::StaticCollisionLeaf.

Definition at line 182 of file CollisionObject.h.

Referenced by castStaticCollisionLeaf().

virtual bool Lamp::CollisionObject::isStaticDeformedMeshCollision  )  const [inline, virtual]
 

静的変形メッシュコリジョンかどうか

Returns:
静的変形メッシュコリジョンならtrue

Reimplemented in Lamp::StaticDeformedMeshCollision.

Definition at line 214 of file CollisionObject.h.

Referenced by castStaticDeformedMeshCollision(), Lamp::CollisionRenderer::renderingSetup(), and Lamp::TextCollisionSaver::save().

virtual bool Lamp::CollisionObject::isStaticSphereCollision  )  const [inline, virtual]
 

静的球コリジョンかどうか

Returns:
静的球コリジョンならtrue

Reimplemented in Lamp::StaticSphereCollision.

Definition at line 198 of file CollisionObject.h.

Referenced by castStaticSphereCollision(), Lamp::CollisionRenderer::renderingSetup(), and Lamp::TextCollisionSaver::save().

int Lamp::CollisionObject::recursiveDestroy CollisionObject collisionObject  )  [static]
 

再帰的破棄

Parameters:
collisionObject 破棄するコリジョンオブジェクト
Returns:
破棄したオブジェクト数

Definition at line 34 of file CollisionObject.cpp.

References Assert, castCollisionLeaf(), castCollisionNode(), ErrorOut, isCollisionLeaf(), isCollisionNode(), and NULL.

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

親の削除

Parameters:
parent 削除する親

Reimplemented in Lamp::CollisionLeaf, and Lamp::CollisionNode.

Definition at line 345 of file CollisionObject.h.

References Assert, NULL, and setChanged().

Referenced by Lamp::CollisionNode::removeChild().

virtual void Lamp::CollisionObject::setChanged bool  changed  )  [inline, protected, virtual]
 

変更フラグの設定

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

Definition at line 316 of file CollisionObject.h.

Referenced by Lamp::StaticDeformedMeshCollision::calculateBounding(), removeParent(), Lamp::StaticDeformedMeshCollision::setBoundingBox(), Lamp::StaticDeformedMeshCollision::setBoundingSphere(), Lamp::StaticSphereCollision::setCenter(), setEnabled(), setParent(), Lamp::StaticSphereCollision::setRadius(), Lamp::StaticSphereCollision::setSphere(), Lamp::StaticDeformedMeshCollision::setTriangle(), Lamp::StaticDeformedMeshCollision::setTriangleCount(), Lamp::CollisionNode::traverseImplement(), and Lamp::CollisionLeaf::traverseSetup().

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

有効、無効の設定

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

Definition at line 84 of file CollisionObject.h.

References setChanged().

Referenced by Lamp::CollisionConverter::convertNode(), Lamp::TextCollisionLoader::load(), Lamp::TextCollisionLoader::readCollisionNode(), Lamp::TextCollisionLoader::readStaticDeformedMesh(), Lamp::TextCollisionLoader::readStaticSphere(), and Lamp::CollisionConverter::setCollisionLeafData().

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

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

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

Definition at line 322 of file CollisionObject.h.

Referenced by Lamp::CollisionNode::traverseImplement(), and Lamp::CollisionLeaf::traverseSetup().

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

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

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

Definition at line 299 of file CollisionObject.h.

Referenced by Lamp::CollisionLeaf::CollisionLeaf(), Lamp::CollisionNode::CollisionNode(), Lamp::CollisionNode::removeParent(), Lamp::CollisionLeaf::removeParent(), Lamp::CollisionNode::setParent(), Lamp::CollisionLeaf::setParent(), Lamp::CollisionNode::traverseImplement(), and Lamp::CollisionLeaf::traverseSetup().

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

親の設定

Parameters:
parent 設定する親

Reimplemented in Lamp::CollisionLeaf, and Lamp::CollisionNode.

Definition at line 333 of file CollisionObject.h.

References Assert, NULL, and setChanged().

Referenced by Lamp::CollisionNode::addChild().

virtual void Lamp::CollisionObject::setUserData void *  userData  )  [inline, virtual]
 

ユーザデータの設定

Parameters:
userData ユーザデータ

Definition at line 108 of file CollisionObject.h.

virtual void Lamp::CollisionObject::traverseImplement const Matrix34 parentMatrix,
bool  parentEnabled,
bool  parentScaled,
bool  parentChanged
[protected, pure virtual]
 

走査

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

Implemented in Lamp::StaticDeformedMeshCollision, Lamp::StaticSphereCollision, and Lamp::CollisionNode.

Referenced by traverse(), and Lamp::CollisionNode::traverseImplement().


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