NuTo
Numerics Tool
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
NuTo::CollidableBase Class Referenceabstract

Base class for all collidables. More...

#include <CollidableBase.h>

Inheritance diagram for NuTo::CollidableBase:
NuTo::CollidableParticleBase NuTo::CollidableWallBase NuTo::CollidableParticleSphere NuTo::CollidableWallCylinder NuTo::CollidableWallPhysical NuTo::CollidableWallVirtual

Public Types

typedef std::vector< CollidableParticleSphere * > ParticleContainer
 

Public Member Functions

 CollidableBase (int rIndex)
 constructor, initialized with an index More...
 
virtual ~CollidableBase ()
 destructor More...
 
int GetIndex () const
 getter for collidable index More...
 
virtual void PerformCollision (CollidableBase &rCollidable)=0
 collision handling, resolve double dispatch More...
 
virtual void PerformCollision (CollidableParticleSphere &rSphere)=0
 collision handling, resolve double dispatch More...
 
virtual void PerformCollision (CollidableWallBase &rWall)=0
 collision handling, resolve double dispatch More...
 
virtual double PredictCollision (CollidableBase &rCollidable, int &rType)=0
 collision prediction between (this) and collision partner More...
 
virtual double PredictCollision (CollidableParticleSphere &rSphere, int &rType)=0
 collision prediction between (this) and collision partner More...
 
virtual double PredictCollision (CollidableWallBase &rWall, int &rType)=0
 collision prediction between (this) and collision partner More...
 
void AddBox (SubBox &rBox)
 adds a SubBox to this collidable More...
 
void RemoveBox (SubBox &rBox)
 removes a SubBox from this collidable More...
 
virtual void MoveAndGrow (double rTime)=0
 updates this collidable in time More...
 
virtual void GetLocalEventsToDelete (LocalEvents &rEventsToDelete) const =0
 returns all old events, that need to be deleted More...
 
void PrintLocalEvents () const
 prints the local event list More...
 
const std::vector< SubBox * > & GetSubBoxes () const
 returns all the SubBoxes of this collidable More...
 
virtual void Print (std::ostream &rReturnStream) const =0
 prints information based on derived class type. More...
 

Protected Attributes

int mIndex
 index, just a name for each collidable, multiple collidables with the same index possible More...
 
std::vector< SubBox * > mBoxes
 list of SubBoxes in which this collidable is inside if the collidable is passing a virutal sub box wall, multiple mBoxes are possible More...
 
LocalEvents mLocalEvents
 local event list adding single event: through EventBase::AddLocalEvents() remove single event: through EventBase::~EventBase() clear everything: on collision More...
 

Friends

class Event
 friend class for easy local event list access More...
 
std::ostream & operator<< (std::ostream &rOutStream, const CollidableBase *rCollidable)
 standard output for all collidables, calls Print(...) for polymorph behaviour More...
 

Detailed Description

Base class for all collidables.

Member Typedef Documentation

Constructor & Destructor Documentation

NuTo::CollidableBase::CollidableBase ( int  rIndex)

constructor, initialized with an index

Parameters
rIndexindex, multiple collidables with same index are allowed
NuTo::CollidableBase::~CollidableBase ( )
virtual

destructor

Member Function Documentation

void NuTo::CollidableBase::AddBox ( SubBox rBox)

adds a SubBox to this collidable

Parameters
rBoxSubBox to add
int NuTo::CollidableBase::GetIndex ( ) const

getter for collidable index

virtual void NuTo::CollidableBase::GetLocalEventsToDelete ( LocalEvents rEventsToDelete) const
pure virtual

returns all old events, that need to be deleted

Parameters
rEventsToDeletereturn argument

Implemented in NuTo::CollidableParticleSphere, and NuTo::CollidableWallBase.

const std::vector< NuTo::SubBox * > & NuTo::CollidableBase::GetSubBoxes ( ) const

returns all the SubBoxes of this collidable

virtual void NuTo::CollidableBase::MoveAndGrow ( double  rTime)
pure virtual

updates this collidable in time

Parameters
rTimenew global time

Implemented in NuTo::CollidableWallBase, and NuTo::CollidableParticleSphere.

virtual void NuTo::CollidableBase::PerformCollision ( CollidableBase rCollidable)
pure virtual

collision handling, resolve double dispatch

Parameters
rCollidablecollision partner

Implemented in NuTo::CollidableParticleSphere, and NuTo::CollidableWallBase.

virtual void NuTo::CollidableBase::PerformCollision ( CollidableParticleSphere rSphere)
pure virtual

collision handling, resolve double dispatch

Parameters
rSpherecollision partner

Implemented in NuTo::CollidableParticleSphere, NuTo::CollidableWallBase, NuTo::CollidableWallVirtual, NuTo::CollidableWallCylinder, and NuTo::CollidableWallPhysical.

virtual void NuTo::CollidableBase::PerformCollision ( CollidableWallBase rWall)
pure virtual

collision handling, resolve double dispatch

Parameters
rWallcollision partner

Implemented in NuTo::CollidableParticleSphere, and NuTo::CollidableWallBase.

virtual double NuTo::CollidableBase::PredictCollision ( CollidableBase rCollidable,
int &  rType 
)
pure virtual

collision prediction between (this) and collision partner

Parameters
rCollidablecollision partner
rTypereturn argument, element of enum CollidableBase::EventType
Returns
predicted time of collision

Implemented in NuTo::CollidableParticleSphere, and NuTo::CollidableWallBase.

virtual double NuTo::CollidableBase::PredictCollision ( CollidableParticleSphere rSphere,
int &  rType 
)
pure virtual

collision prediction between (this) and collision partner

Parameters
rSpherecollision partner
rTypereturn argument, element of enum CollidableBase::EventType
Returns
predicted time of collision

Implemented in NuTo::CollidableParticleSphere, NuTo::CollidableWallBase, NuTo::CollidableWallVirtual, NuTo::CollidableWallCylinder, and NuTo::CollidableWallPhysical.

virtual double NuTo::CollidableBase::PredictCollision ( CollidableWallBase rWall,
int &  rType 
)
pure virtual

collision prediction between (this) and collision partner

Parameters
rWallcollision partner
rTypereturn argument, element of enum CollidableBase::EventType
Returns
predicted time of collision

Implemented in NuTo::CollidableParticleSphere, and NuTo::CollidableWallBase.

virtual void NuTo::CollidableBase::Print ( std::ostream &  rReturnStream) const
pure virtual

prints information based on derived class type.

Parameters
rReturnStreamoutput stream, that gets modified

Implemented in NuTo::CollidableWallBase, and NuTo::CollidableWallCylinder.

void NuTo::CollidableBase::PrintLocalEvents ( ) const

prints the local event list

void NuTo::CollidableBase::RemoveBox ( SubBox rBox)

removes a SubBox from this collidable

Parameters
rBoxSubBox to remove

Friends And Related Function Documentation

friend class Event
friend

friend class for easy local event list access

std::ostream& operator<< ( std::ostream &  rOutStream,
const CollidableBase rCollidable 
)
friend

standard output for all collidables, calls Print(...) for polymorph behaviour

Parameters
rOutStreamoperator RHS: output stream
rCollidableoperator LHS: object added to the output stream
Returns
modified output stream

Member Data Documentation

std::vector<SubBox*> NuTo::CollidableBase::mBoxes
protected

list of SubBoxes in which this collidable is inside if the collidable is passing a virutal sub box wall, multiple mBoxes are possible

int NuTo::CollidableBase::mIndex
protected

index, just a name for each collidable, multiple collidables with the same index possible

LocalEvents NuTo::CollidableBase::mLocalEvents
protected

local event list adding single event: through EventBase::AddLocalEvents() remove single event: through EventBase::~EventBase() clear everything: on collision


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