![]() |
NuTo
Numerics Tool
|
base class for walls More...
#include <CollidableWallBase.h>
Public Member Functions | |
| CollidableWallBase (Eigen::VectorXd rPosition, Eigen::VectorXd rDirection, int rIndex) | |
| constructor, create CollidableWallBase using the point-and-normal-vector plane definition More... | |
| virtual | ~CollidableWallBase () |
| destructor, do nothing More... | |
| void | SetBoxes (SubBox &rInsideBox, SubBox &rOutsideBox) |
| every wall should know its box and the neighbour box More... | |
| void | PerformCollision (CollidableBase &rCollidable) override |
| collision between CollidableWall and CollidableBase, resolve double dispatch, forward *this More... | |
| virtual void | PerformCollision (CollidableParticleSphere &rSphere) override=0 |
| collision between CollidableWall and CollidableSphere, pass to child classes More... | |
| void | PerformCollision (CollidableWallBase &rWall) override |
| collision between CollidableWall and CollidableWall, does nothing More... | |
| double | PredictCollision (CollidableBase &rCollidable, int &rType) override |
| collision check between CollidableWall and CollidableBase, resolve double dispatch, forward *this More... | |
| virtual double | PredictCollision (CollidableParticleSphere &rSphere, int &rType) override=0 |
| collision check between CollidableWall and CollidableSphere, pass to child classes More... | |
| double | PredictCollision (CollidableWallBase &rWall, int &rType) override |
| collision check between CollidableWall and CollidableWall, does nothing More... | |
| void | MoveAndGrow (double) override |
| walls to neither grow nor move, do nothing More... | |
| virtual bool | IsPhysical () const =0 |
| ture for physical walls More... | |
| virtual void | VisualizationStatic (Visualize::UnstructuredGrid &rVisualizer) const |
| visualize all non-moving collidables More... | |
| void | GetLocalEventsToDelete (LocalEvents &) const override |
| does nothing as all other wall events are still legal More... | |
| virtual bool | IsInside (const CollidableParticleSphere &rSphere) const |
| returns whether a sphere is on the positive side of this wall More... | |
| const Eigen::Vector3d & | GetDirection () const |
| getter for the wall direction More... | |
| const Eigen::Vector3d & | GetPosition () const |
| getter fot the wall position More... | |
Public Member Functions inherited from NuTo::CollidableBase | |
| CollidableBase (int rIndex) | |
| constructor, initialized with an index More... | |
| virtual | ~CollidableBase () |
| destructor More... | |
| int | GetIndex () const |
| getter for collidable index More... | |
| void | AddBox (SubBox &rBox) |
| adds a SubBox to this collidable More... | |
| void | RemoveBox (SubBox &rBox) |
| removes a SubBox from this collidable More... | |
| void | PrintLocalEvents () const |
| prints the local event list More... | |
| const std::vector< SubBox * > & | GetSubBoxes () const |
| returns all the SubBoxes of this collidable More... | |
Protected Member Functions | |
| virtual void | Print (std::ostream &rReturnStream) const override |
| prints CollidableWall More... | |
Protected Attributes | |
| Eigen::Vector3d | mPosition |
| point of the point-and-normal-vector plane definition More... | |
| Eigen::Vector3d | mDirection |
| normal vector of the point-and-normal-vector plane definition More... | |
| SubBox * | mInsideBox |
| box on the inner side of the wall More... | |
| SubBox * | mOutsideBox |
| box on the outer side of the wall More... | |
| int | mNonNullAxis |
| index of the direction component that is != 0 More... | |
| bool | mIsAxisAligned |
| true –> calculations without vector calculations More... | |
Protected Attributes inherited from NuTo::CollidableBase | |
| 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... | |
Additional Inherited Members | |
Public Types inherited from NuTo::CollidableBase | |
| typedef std::vector< CollidableParticleSphere * > | ParticleContainer |
base class for walls
| NuTo::CollidableWallBase::CollidableWallBase | ( | Eigen::VectorXd | rPosition, |
| Eigen::VectorXd | rDirection, | ||
| int | rIndex | ||
| ) |
constructor, create CollidableWallBase using the point-and-normal-vector plane definition
| rPosition | point on the plane |
| rDirection | normal vector pointing inside the domain, gets normalized. |
| rIndex | name |
|
virtual |
destructor, do nothing
| const Eigen::Vector3d & NuTo::CollidableWallBase::GetDirection | ( | ) | const |
getter for the wall direction
|
inlineoverridevirtual |
does nothing as all other wall events are still legal
Implements NuTo::CollidableBase.
| const Eigen::Vector3d & NuTo::CollidableWallBase::GetPosition | ( | ) | const |
getter fot the wall position
|
virtual |
returns whether a sphere is on the positive side of this wall
| rSphere | sphere to test |
Reimplemented in NuTo::CollidableWallCylinder.
|
pure virtual |
ture for physical walls
Implemented in NuTo::CollidableWallVirtual, NuTo::CollidableWallCylinder, and NuTo::CollidableWallPhysical.
|
inlineoverridevirtual |
walls to neither grow nor move, do nothing
Implements NuTo::CollidableBase.
|
overridevirtual |
collision between CollidableWall and CollidableBase, resolve double dispatch, forward *this
| rCollidable | collision partner |
Implements NuTo::CollidableBase.
|
overridepure virtual |
collision between CollidableWall and CollidableSphere, pass to child classes
| rSphere | collision partner |
Implements NuTo::CollidableBase.
Implemented in NuTo::CollidableWallVirtual, NuTo::CollidableWallCylinder, and NuTo::CollidableWallPhysical.
|
overridevirtual |
collision between CollidableWall and CollidableWall, does nothing
| rWall | collision partner |
Implements NuTo::CollidableBase.
|
overridevirtual |
collision check between CollidableWall and CollidableBase, resolve double dispatch, forward *this
| rCollidable | possible collision partner |
| rType | return argument, element of enum CollidableBase::EventType |
Implements NuTo::CollidableBase.
|
overridepure virtual |
collision check between CollidableWall and CollidableSphere, pass to child classes
| rSphere | possible collision partner |
| rType | return argument, element of enum CollidableBase::EventType |
Implements NuTo::CollidableBase.
Implemented in NuTo::CollidableWallVirtual, NuTo::CollidableWallCylinder, and NuTo::CollidableWallPhysical.
|
overridevirtual |
collision check between CollidableWall and CollidableWall, does nothing
| rWall | possible collision partner |
| rType | return argument, element of enum CollidableBase::EventType |
Implements NuTo::CollidableBase.
|
overrideprotectedvirtual |
prints CollidableWall
| rReturnStream | output stream, that gets modified |
Implements NuTo::CollidableBase.
Reimplemented in NuTo::CollidableWallCylinder.
every wall should know its box and the neighbour box
| rInsideBox | box on the inner side of the wall |
| rOutsideBox | box on the outer side of the wall |
|
virtual |
visualize all non-moving collidables
| rVisualizer | NuTo object for ascii-export |
Reimplemented in NuTo::CollidableWallCylinder.
|
protected |
normal vector of the point-and-normal-vector plane definition
|
protected |
box on the inner side of the wall
|
protected |
true –> calculations without vector calculations
|
protected |
index of the direction component that is != 0
|
protected |
box on the outer side of the wall
|
protected |
point of the point-and-normal-vector plane definition
1.8.11