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.
PosComponent & posComponent ()
const PosComponent & posComponent () 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 BoundingBox & areaCovered () 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?
NodeComponent * parent ()
 Get parent.
const NodeComponent * parent () const
 Get parent.
void resetParent ()
 Set parent to none.
void setParent (NodeComponent &p)
NodeComponentList & children ()
virtual const char * name () const
 By default returns name of composite, which returns name of composite factory.
Composite * owner ()
const Composite * owner () const
 Component type.
Component * component (int type)
const Component * component (int type) const
int type () const
const ComponentFactory * factory ()
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

NodeComponent * parent_
 The parent of this position.
NodeComponentList children_
 List of child NodeComponents.
int type_
 The type of Component.
Composite * owner_
const ComponentFactory * factory_

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