se_core::CollisionComponent Class Reference

#include <CollisionComponent.hpp>

Inheritance diagram for se_core::CollisionComponent:

se_core::AreaChildComponent se_core::NodeComponent se_core::Component List of all members.

Public Types

typedef ComponentPtr< CollisionComponent,
sct_COLLISION > 
Ptr
enum  GeomType { geom_CYLINDER, geom_LONG_CYLINDER }

Public Member Functions

 CollisionComponent (Composite *owner, const ComponentFactory *factory)
 Constructor.
 ~CollisionComponent ()
int tag () const
int substance () const
void setSubstance (int s)
void setDoObstructView (bool f)
bool shouldIgnore (const CollisionComponent &cc) const
void resetIgnore ()
void setIgnore (const CollisionComponent &cc)
bool isCollideable () const
 Can other PosNodes collide with this PosNode?
void setCollideable (bool isCollideable)
 Set wether this thing can be collided with.
PosComponentposComponent ()
const PosComponentposComponent () const
void setCollide (const ThingCollide *collide)
bool pushThing (ContactInfo &pusher, ContactInfo &target)
bool isPusher () const
bool didGeometryCollide (const CollisionComponent &other) const
bool doesGeometryCollide (const CollisionComponent &other) const
scale_t whenDoesGeometryCollide (const CollisionComponent &other) const
void zoneChanged (int zoneType, Composite *newArea, Composite *oldArea)
 AreaChild should have area as parent.
const BoundingBoxareaCovered () const
void updateAreaCovered ()
void move ()
enum GeomType geometryType () const
coor_t bouncePoint (const Point3 &c, const Point3 &testPoint, Point3 &dest) const
coor_t bouncePoint (scale_t alpha, const Point3 &testPoint, Point3 &dest) const
coor_t bouncePoints (scale_t alpha, const CollisionComponent &other, Point3 &d1, Point3 &d2) const
coor_t bouncePoints (const Point3 &o1, const Point3 &o2, Point3 &d1, Point3 &d2) const
coor_t penetration (const CollisionComponent &other) const
bool doObstructView () const
bool hasParent () const
 Does the Pos have a parent?
NodeComponentparent ()
 Get parent.
const NodeComponentparent () const
 Get parent.
void resetParent ()
 Set parent to none.
void setParent (NodeComponent &p)
NodeComponentListchildren ()
virtual const char * name () const
 By default returns name of composite, which returns name of composite factory.
Compositeowner ()
const Compositeowner () const
 Component type.
Componentcomponent (int type)
const Componentcomponent (int type) const
int type () const
const ComponentFactoryfactory ()
bool isActive ()
bool isDead () const

Protected Member Functions

void parentChanged (Composite *newParent, Composite *oldParent)
 Override NodeComponent with empty handler.
void cleanup ()
 Called by Composite.
void addChild (NodeComponent &node)
 Add a NodeComponent as a child.
void removeChild (NodeComponent &node)
 Add a NodeComponent from the child list.
virtual void setActive (bool state)
 Called by Composite.
virtual void setDead ()
 Called by Composite.
virtual void init ()
 Called by Composite.

Protected Attributes

NodeComponentparent_
 The parent of this position.
NodeComponentList children_
 List of child NodeComponents.
int type_
 The type of Component.
Compositeowner_
const ComponentFactoryfactory_

Friends

class Composite

Member Typedef Documentation

typedef ComponentPtr<CollisionComponent, sct_COLLISION> se_core::CollisionComponent::Ptr
 

Definition at line 41 of file CollisionComponent.hpp.


Member Enumeration Documentation

enum se_core::CollisionComponent::GeomType
 

Enumeration values:
geom_CYLINDER 
geom_LONG_CYLINDER 

Definition at line 116 of file CollisionComponent.hpp.


Constructor & Destructor Documentation

se_core::CollisionComponent::CollisionComponent Composite owner,
const ComponentFactory factory
 

Constructor.

Definition at line 46 of file CollisionComponent.cpp.

References Assert, se_core::sct_COLLISION, and se_core::sct_POS.

se_core::CollisionComponent::~CollisionComponent  ) 
 

Definition at line 58 of file CollisionComponent.cpp.


Member Function Documentation

void se_core::NodeComponent::addChild NodeComponent node  )  [protected, inherited]
 

Add a NodeComponent as a child.

Called by setParent of child.

Definition at line 60 of file NodeComponent.cpp.

Referenced by se_core::NodeComponent::setParent().

const BoundingBox& se_core::CollisionComponent::areaCovered  )  const [inline]
 

Definition at line 112 of file CollisionComponent.hpp.

Referenced by se_core::CollisionAreaComponent::_collisionCandidates(), se_core::_testCollision(), se_core::CollisionAreaComponent::addCollideable(), se_core::CollisionAreaComponent::farthestLineOfSight(), and se_core::CollisionAreaComponent::removeCollideable().

coor_t se_core::CollisionComponent::bouncePoint scale_t  alpha,
const Point3 testPoint,
Point3 dest
const
 

Definition at line 287 of file CollisionComponent.cpp.

coor_t se_core::CollisionComponent::bouncePoint const Point3 c,
const Point3 testPoint,
Point3 dest
const
 

Definition at line 252 of file CollisionComponent.cpp.

References se_core::Tuple3::add(), se_core::Point3::nearestPoint(), and se_core::Tuple3::set().

Referenced by se_core::CollisionAreaComponent::_testCollisionCandidates(), se_core::CollisionAreaComponent::_testCollisionCandidates2(), bouncePoints(), se_core::ThingCollide::isGuilty(), and whenDoesGeometryCollide().

coor_t se_core::CollisionComponent::bouncePoints const Point3 o1,
const Point3 o2,
Point3 d1,
Point3 d2
const
 

Definition at line 267 of file CollisionComponent.cpp.

References se_core::Tuple3::add(), and se_core::Point3::nearestPoint().

coor_t se_core::CollisionComponent::bouncePoints scale_t  alpha,
const CollisionComponent other,
Point3 d1,
Point3 d2
const
 

Definition at line 294 of file CollisionComponent.cpp.

References bouncePoint(), coor_t, posComponent(), se_core::PosComponent::worldCoor(), and se_core::Tuple3::y_.

Referenced by se_core::CollisionAreaComponent::farthestLineOfSight().

NodeComponentList& se_core::NodeComponent::children  )  [inline, inherited]
 

Definition at line 63 of file NodeComponent.hpp.

Referenced by se_core::NodeComponentList::TreeIterator::next().

void se_core::NodeComponent::cleanup  )  [inline, protected, virtual, inherited]
 

Called by Composite.

Reimplemented from se_core::Component.

Reimplemented in se_core::RootComponent, se_core::CutsceneComponent, se_core::SignalAreaComponent, se_core::SignalComponent, se_ogre::O3dAreaComponent, se_ogre::O3dThingComponent, and se_basic::NavMeshComponent.

Definition at line 70 of file NodeComponent.hpp.

const Component* se_core::Component::component int  type  )  const [inline, inherited]
 

Definition at line 71 of file Component.hpp.

References se_core::Component::component().

Component* se_core::Component::component int  type  )  [inline, inherited]
 

Definition at line 67 of file Component.hpp.

References se_core::Composite::component().

Referenced by se_core::Component::component(), se_core::Component::ComponentPtr< T, type >::ComponentPtr(), se_ogre::O3dThingComponent::get(), se_ogre::O3dNodeComponent::get(), and se_ogre::O3dAreaComponent::get().

bool se_core::CollisionComponent::didGeometryCollide const CollisionComponent other  )  const
 

Definition at line 207 of file CollisionComponent.cpp.

References coor_t, and se_core::Point3::xzDistanceSquared().

Referenced by se_core::ThingCollide::isGuilty().

bool se_core::CollisionComponent::doesGeometryCollide const CollisionComponent other  )  const
 

Definition at line 198 of file CollisionComponent.cpp.

References coor_t, and se_core::Point3::xzDistanceSquared().

Referenced by se_core::_testCollision(), and se_core::_testCollision2().

bool se_core::CollisionComponent::doObstructView  )  const
 

Definition at line 63 of file CollisionComponent.cpp.

Referenced by se_core::CollisionAreaComponent::farthestLineOfSight().

const ComponentFactory* se_core::Component::factory  )  [inline, inherited]
 

Definition at line 81 of file Component.hpp.

Referenced by se_core::Composite::releaseComponents().

enum GeomType se_core::CollisionComponent::geometryType  )  const [inline]
 

Definition at line 118 of file CollisionComponent.hpp.

References se_core::BoundingBox::maxX_, se_core::BoundingBox::maxZ_, se_core::BoundingBox::minX_, and se_core::BoundingBox::minZ_.

bool se_core::NodeComponent::hasParent  )  const [inline, inherited]
 

Does the Pos have a parent?

Definition at line 41 of file NodeComponent.hpp.

void se_core::Component::init  )  [protected, virtual, inherited]
 

Called by Composite.

Reimplemented in se_core::RootComponent, se_core::SignalAreaComponent, se_ogre::O3dAreaComponent, and se_ogre::O3dThingComponent.

Definition at line 42 of file Component.cpp.

Referenced by se_core::Composite::init().

bool se_core::Component::isActive  )  [inherited]
 

Definition at line 26 of file Component.cpp.

bool se_core::CollisionComponent::isCollideable  )  const [inline]
 

Can other PosNodes collide with this PosNode?

Definition at line 69 of file CollisionComponent.hpp.

References se_core::Composite::isDead(), and se_core::Component::owner().

Referenced by se_core::CollisionAreaComponent::_collisionCandidates2(), se_core::CollisionAreaComponent::_testCollisionCandidates(), and se_core::CollisionAreaComponent::getContactList().

bool se_core::Component::isDead  )  const [inherited]
 

Definition at line 31 of file Component.cpp.

Referenced by se_core::Actor::affect().

bool se_core::CollisionComponent::isPusher  )  const [inline]
 

Definition at line 102 of file CollisionComponent.hpp.

void se_core::CollisionComponent::move  ) 
 

Definition at line 167 of file CollisionComponent.cpp.

References Assert, se_core::BoundingBox::center(), se_core::CollisionAreaComponent::collisionGrid(), coor_t, se_core::CollisionGrid::move(), and se_core::BoundingBox::radius().

const char * se_core::Component::name  )  const [virtual, inherited]
 

By default returns name of composite, which returns name of composite factory.

Reimplemented in se_core::CutsceneAreaComponent, se_core::CutsceneComponent, se_core::CutsceneManager, se_core::CollisionAreaComponent, se_core::SignalAreaComponent, se_core::SignalComponent, se_core::SpawnAreaComponent, se_core::SpawnManager, se_core::ZoneAreaComponent, se_core::ZoneComponent, se_core::ZoneManager, se_basic::NavMeshAreaComponent, se_basic::NavMeshComponent, and se_basic::NavMeshManager.

Definition at line 21 of file Component.cpp.

Referenced by se_core::Area::addNeighbour(), se_core::DefaultTC::collide(), se_core::CoDefault::collide(), se_basic::Say::perform(), and se_ogre::SpeechBubble::speechEvent().

const Composite* se_core::Component::owner  )  const [inline, inherited]
 

Component type.

Definition at line 62 of file Component.hpp.

Composite* se_core::Component::owner  )  [inline, inherited]
 

Definition at line 54 of file Component.hpp.

Referenced by se_core::CollisionAreaComponent::_testCollisionCandidates(), se_core::CollisionAreaComponent::_testCollisionCandidates2(), se_core::HealthListeners::add(), se_core::ZoneAreaComponent::addNeighbour(), se_basic::PhTrackingCamera::affect(), se_core::HealthListeners::castHealthChangedEvent(), se_core::Component::ComponentPtr< T, type >::ComponentPtr(), se_ogre::ThingMOManager::create(), se_basic::SimpleAreaThingEncoder::encode(), se_core::SpawnComponent::get(), se_core::SignalComponent::get(), se_core::SignalAreaComponent::get(), se_core::ScriptComponent::get(), se_core::PosComponent::get(), se_core::PhysicsComponent::get(), se_core::StatComponent::get(), se_ogre::O3dThingComponent::get(), se_ogre::O3dNodeComponent::get(), se_ogre::O3dAreaComponent::get(), se_core::Pos::hasArea(), se_core::CollisionGrid::insert(), isCollideable(), se_core::ZoneComponent::name(), se_core::Component::ComponentPtr< T, type >::operator=(), se_core::DefaultTC::pop(), se_core::CoDefault::pop(), se_core::DefaultTC::popAndDie(), se_core::CoDefault::popAndDie(), se_core::CollisionAreaComponent::removeCollideable(), se_core::AreaManager::resetThings(), se_core::Actor::scheduleForDestruction(), se_core::AreaManager::setActive(), se_core::AreaManager::setInactive(), and se_ogre::O3dManager::updateStats().

const NodeComponent* se_core::NodeComponent::parent  )  const [inline, inherited]
 

Get parent.

const version.

Definition at line 52 of file NodeComponent.hpp.

NodeComponent* se_core::NodeComponent::parent  )  [inline, inherited]
 

Get parent.

Definition at line 46 of file NodeComponent.hpp.

void se_core::AreaChildComponent::parentChanged Composite newParent,
Composite oldParent
[inline, protected, virtual, inherited]
 

Override NodeComponent with empty handler.

Reimplemented from se_core::NodeComponent.

Definition at line 38 of file AreaChildComponent.hpp.

float se_core::CollisionComponent::penetration const CollisionComponent other  )  const
 

Definition at line 187 of file CollisionComponent.cpp.

References coor_t, and se_core::Point3::xzDistanceSquared().

const PosComponent& se_core::CollisionComponent::posComponent  )  const [inline]
 

Definition at line 85 of file CollisionComponent.hpp.

PosComponent& se_core::CollisionComponent::posComponent  )  [inline]
 

Definition at line 81 of file CollisionComponent.hpp.

Referenced by se_core::CollisionAreaComponent::_testCollisionCandidates(), se_core::CollisionAreaComponent::_testCollisionCandidates2(), bouncePoints(), se_core::ThingCollide::isGuilty(), and whenDoesGeometryCollide().

bool se_core::CollisionComponent::pushThing ContactInfo pusher,
ContactInfo target
[inline]
 

Definition at line 94 of file CollisionComponent.hpp.

References se_core::ThingCollide::collide().

Referenced by se_core::CollisionManager::resolveContacts().

void se_core::NodeComponent::removeChild NodeComponent node  )  [protected, inherited]
 

Add a NodeComponent from the child list.

Called by setParent of child.

Definition at line 68 of file NodeComponent.cpp.

void se_core::CollisionComponent::resetIgnore  )  [inline]
 

Definition at line 59 of file CollisionComponent.hpp.

void se_core::NodeComponent::resetParent  )  [inherited]
 

Set parent to none.

Parameters:
doKeepWorldCoor wether the local viewpoint should be updated to maintain the world viewpoint

Definition at line 41 of file NodeComponent.cpp.

virtual void se_core::Component::setActive bool  state  )  [inline, protected, virtual, inherited]
 

Called by Composite.

Reimplemented in se_core::RootChildComponent, se_core::ActionComponent, se_core::CutsceneAreaComponent, se_core::PhysicsAreaComponent, se_core::CollisionAreaComponent, se_core::ScriptComponent, se_core::SignalAreaComponent, se_core::SpawnAreaComponent, se_core::ZoneAreaComponent, se_client::CameraComponent, se_client::PlayerComponent, se_ogre::O3dAreaComponent, se_ogre::O3dThingComponent, and se_basic::NavMeshAreaComponent.

Definition at line 93 of file Component.hpp.

Referenced by se_core::Composite::setActive().

void se_core::CollisionComponent::setCollide const ThingCollide collide  )  [inline]
 

Definition at line 89 of file CollisionComponent.hpp.

Referenced by se_basic::SimpleActorFactory::create().

void se_core::CollisionComponent::setCollideable bool  isCollideable  ) 
 

Set wether this thing can be collided with.

This is a hint to the engine that this should be included in the collison space.

Definition at line 68 of file CollisionComponent.cpp.

References se_core::CollisionAreaComponent::addCollideable(), and se_core::CollisionAreaComponent::removeCollideable().

Referenced by se_basic::SimpleActorFactory::create().

virtual void se_core::Component::setDead  )  [inline, protected, virtual, inherited]
 

Called by Composite.

Reimplemented in se_core::SignalComponent, and se_core::SpawnComponent.

Definition at line 97 of file Component.hpp.

Referenced by se_core::Composite::scheduleForDestruction().

void se_core::CollisionComponent::setDoObstructView bool  f  )  [inline]
 

Definition at line 55 of file CollisionComponent.hpp.

Referenced by se_basic::SimpleActorFactory::create().

void se_core::CollisionComponent::setIgnore const CollisionComponent cc  )  [inline]
 

Definition at line 62 of file CollisionComponent.hpp.

void se_core::NodeComponent::setParent NodeComponent p  )  [inherited]
 

Definition at line 50 of file NodeComponent.cpp.

References se_core::NodeComponent::addChild().

void se_core::CollisionComponent::setSubstance int  s  )  [inline]
 

Definition at line 52 of file CollisionComponent.hpp.

Referenced by se_basic::SimpleActorFactory::create().

bool se_core::CollisionComponent::shouldIgnore const CollisionComponent cc  )  const
 

Definition at line 304 of file CollisionComponent.cpp.

References ignore_.

Referenced by se_core::_testCollision(), and se_core::_testCollision2().

int se_core::CollisionComponent::substance  )  const [inline]
 

Definition at line 49 of file CollisionComponent.hpp.

Referenced by se_core::DefaultTC::collide(), and se_core::CoDefault::collide().

int se_core::CollisionComponent::tag  )  const
 

Definition at line 246 of file CollisionComponent.cpp.

int se_core::Component::type  )  const [inline, inherited]
 

Definition at line 76 of file Component.hpp.

Referenced by se_core::Composite::component().

void se_core::CollisionComponent::updateAreaCovered  ) 
 

Definition at line 110 of file CollisionComponent.cpp.

References se_core::Tuple3::add(), AssertWarning, coor_t, se_core::Euler3::isIdentity(), se_core::BoundingBox::maxX_, se_core::BoundingBox::maxY_, se_core::BoundingBox::maxZ_, se_core::BoundingBox::merge(), se_core::BoundingBox::minX_, se_core::BoundingBox::minY_, se_core::BoundingBox::minZ_, se_core::Euler3::pitch_, and se_core::Euler3::roll_.

scale_t se_core::CollisionComponent::whenDoesGeometryCollide const CollisionComponent other  )  const
 

Definition at line 215 of file CollisionComponent.cpp.

References bouncePoint(), se_core::Pos::bounds_, coor_double_t, coor_t, se_core::PosComponent::nextPos(), posComponent(), scale_t, se_core::BoundingBox::smallRadius(), se_core::PosComponent::worldCoor(), and se_core::Point3::xzDistanceSquared().

void se_core::CollisionComponent::zoneChanged int  zoneType,
Composite newArea,
Composite oldArea
[virtual]
 

AreaChild should have area as parent.

Reimplemented from se_core::AreaChildComponent.

Definition at line 87 of file CollisionComponent.cpp.

References se_core::CollisionAreaComponent::addCollideable(), se_core::Composite::component(), and se_core::CollisionAreaComponent::removeCollideable().


Friends And Related Function Documentation

friend class Composite [friend, inherited]
 

Definition at line 89 of file Component.hpp.


Member Data Documentation

NodeComponentList se_core::NodeComponent::children_ [protected, inherited]
 

List of child NodeComponents.

Definition at line 92 of file NodeComponent.hpp.

const ComponentFactory* se_core::Component::factory_ [protected, inherited]
 

Definition at line 120 of file Component.hpp.

Composite* se_core::Component::owner_ [protected, inherited]
 

Definition at line 118 of file Component.hpp.

NodeComponent* se_core::NodeComponent::parent_ [protected, inherited]
 

The parent of this position.

Definition at line 89 of file NodeComponent.hpp.

int se_core::Component::type_ [protected, inherited]
 

The type of Component.

Definition at line 117 of file Component.hpp.


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

Home Page | SagaEngine trunk (updated nightly) reference generated Sun Dec 2 20:06:27 2007 by Doxygen version 1.3.9.1.

SourceForge.net Logo