#include <DistanceGridCollisionModel.h>


Data Structures | |
| class | ElementData |
Public Types | |
| typedef Rigid3Types | InDataTypes |
| typedef Vec3Types | DataTypes |
| typedef RigidDistanceGridCollisionElement | Element |
Public Member Functions | |
| RigidDistanceGridCollisionModel () | |
| ~RigidDistanceGridCollisionModel () | |
| core::componentmodel::behavior::MechanicalState < InDataTypes > * | getRigidModel () |
| core::componentmodel::behavior::MechanicalState < InDataTypes > * | getMechanicalState () |
| void | init () |
| Initialization method called at graph modification, during bottom-up traversal. | |
| DistanceGrid * | getGrid (int index=0) |
| bool | isTransformed (int index=0) |
| const Matrix3 & | getRotation (int index=0) |
| const Vector3 & | getTranslation (int index=0) |
| void | setGrid (DistanceGrid *surf, int index=0) |
| DistanceGrid * | getPrevGrid (int index=0) |
| const Matrix3 & | getPrevRotation (int index=0) |
| const Vector3 & | getPrevTranslation (int index=0) |
| double | getPrevDt (int index=0) |
| void | setNewState (int index, double dt, DistanceGrid *grid, const Matrix3 &rotation, const Vector3 &translation) |
| Set new grid and transform, keeping the old state to estimate velocity. | |
| void | setNewState (double dt, DistanceGrid *grid, const Matrix3 &rotation, const Vector3 &translation) |
| Set new grid and transform, keeping the old state to estimate velocity. | |
| void | resize (int size) |
| Set the number of elements. | |
| void | computeBoundingTree (int maxDepth=0) |
| Create or update the bounding volume hierarchy. | |
| void | draw (int index) |
| Render an collision element. | |
| void | draw () |
| Render the whole collision model. | |
Data Fields | |
| Data< bool > | usePoints |
Protected Member Functions | |
| void | updateGrid () |
Protected Attributes | |
| sofa::helper::vector< ElementData > | elems |
| bool | modified |
| Data< std::string > | filename |
| Data< double > | scale |
| Data< helper::fixed_array < DistanceGrid::Coord, 2 > > | box |
| Data< int > | nx |
| Data< int > | ny |
| Data< int > | nz |
| Data< std::string > | dumpfilename |
| core::componentmodel::behavior::MechanicalState < RigidTypes > * | rigid |
Definition at line 440 of file DistanceGridCollisionModel.h.
Definition at line 481 of file DistanceGridCollisionModel.h.
| typedef RigidDistanceGridCollisionElement sofa::component::collision::RigidDistanceGridCollisionModel::Element |
Definition at line 482 of file DistanceGridCollisionModel.h.
| typedef Rigid3Types sofa::component::collision::RigidDistanceGridCollisionModel::InDataTypes |
Definition at line 480 of file DistanceGridCollisionModel.h.
| sofa::component::collision::RigidDistanceGridCollisionModel::RigidDistanceGridCollisionModel | ( | ) |
Definition at line 64 of file DistanceGridCollisionModel.cpp.
| sofa::component::collision::RigidDistanceGridCollisionModel::~RigidDistanceGridCollisionModel | ( | ) |
| void sofa::component::collision::RigidDistanceGridCollisionModel::computeBoundingTree | ( | int | maxDepth = 0 |
) | [virtual] |
Create or update the bounding volume hierarchy.
Implements sofa::core::CollisionModel.
Definition at line 153 of file DistanceGridCollisionModel.cpp.
References sofa::component::collision::CubeModel::computeBoundingTree(), elems, sofa::core::CollisionModel::empty(), sofa::core::CollisionModel::isMoving(), isTransformed(), modified, sofa::component::collision::CubeModel::resize(), rigid, sofa::component::collision::CubeModel::setParentOf(), sofa::core::CollisionModel::size, and updateGrid().
| void sofa::component::collision::RigidDistanceGridCollisionModel::draw | ( | ) | [virtual] |
Render the whole collision model.
Reimplemented from sofa::core::CollisionModel.
Definition at line 203 of file DistanceGridCollisionModel.cpp.
References sofa::core::CollisionModel::draw(), elems, sofa::core::CollisionModel::getColor4f(), sofa::core::objectmodel::BaseObject::getContext(), sofa::core::CollisionModel::getPrevious(), and sofa::core::CollisionModel::isActive().
| void sofa::component::collision::RigidDistanceGridCollisionModel::draw | ( | int | ) | [virtual] |
Render an collision element.
Reimplemented from sofa::core::CollisionModel.
Definition at line 225 of file DistanceGridCollisionModel.cpp.
References sofa::component::collision::DistanceGrid::coord(), elems, sofa::component::collision::DistanceGrid::eval(), sofa::component::collision::DistanceGrid::getBBCorner(), sofa::component::collision::DistanceGrid::getCorner(), getGrid(), sofa::component::collision::DistanceGrid::getNx(), sofa::component::collision::DistanceGrid::getNy(), sofa::component::collision::DistanceGrid::getNz(), sofa::component::collision::DistanceGrid::getPMax(), sofa::component::collision::DistanceGrid::getPMin(), sofa::helper::gl::glMultMatrix(), sofa::helper::gl::glVertexT(), sofa::component::collision::DistanceGrid::grad(), sofa::defaulttype::Mat< L, C, real >::identity(), sofa::core::CollisionModel::isSimulated(), isTransformed(), sofa::component::collision::DistanceGrid::meshPts, norm(), sofa::defaulttype::Vec< N, real >::normalize(), sofa::defaulttype::Mat< L, C, real >::ptr(), and sofa::defaulttype::Mat< L, C, real >::transpose().
| DistanceGrid* sofa::component::collision::RigidDistanceGridCollisionModel::getGrid | ( | int | index = 0 |
) | [inline] |
Definition at line 495 of file DistanceGridCollisionModel.h.
References elems.
Referenced by draw().
| core::componentmodel::behavior::MechanicalState<InDataTypes>* sofa::component::collision::RigidDistanceGridCollisionModel::getMechanicalState | ( | ) | [inline] |
| double sofa::component::collision::RigidDistanceGridCollisionModel::getPrevDt | ( | int | index = 0 |
) | [inline] |
| DistanceGrid* sofa::component::collision::RigidDistanceGridCollisionModel::getPrevGrid | ( | int | index = 0 |
) | [inline] |
| core::componentmodel::behavior::MechanicalState<InDataTypes>* sofa::component::collision::RigidDistanceGridCollisionModel::getRigidModel | ( | ) | [inline] |
| void sofa::component::collision::RigidDistanceGridCollisionModel::init | ( | void | ) | [virtual] |
Initialization method called at graph modification, during bottom-up traversal.
Reimplemented from sofa::core::objectmodel::BaseObject.
Definition at line 87 of file DistanceGridCollisionModel.cpp.
References box, dumpfilename, elems, filename, sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::BaseContext::getMechanicalState(), sofa::core::objectmodel::Data< T >::getValue(), sofa::component::collision::DistanceGrid::loadShared(), nx, ny, nz, resize(), rigid, and scale.
| bool sofa::component::collision::RigidDistanceGridCollisionModel::isTransformed | ( | int | index = 0 |
) | [inline] |
Definition at line 499 of file DistanceGridCollisionModel.h.
References elems.
Referenced by computeBoundingTree(), draw(), and setNewState().
| void sofa::component::collision::RigidDistanceGridCollisionModel::resize | ( | int | s | ) | [virtual] |
Set the number of elements.
Reimplemented from sofa::core::CollisionModel.
Definition at line 117 of file DistanceGridCollisionModel.cpp.
References elems.
Referenced by init().
| void sofa::component::collision::RigidDistanceGridCollisionModel::setGrid | ( | DistanceGrid * | surf, | |
| int | index = 0 | |||
| ) |
Definition at line 123 of file DistanceGridCollisionModel.cpp.
References sofa::component::collision::DistanceGrid::addRef(), elems, and modified.
| void sofa::component::collision::RigidDistanceGridCollisionModel::setNewState | ( | double | dt, | |
| DistanceGrid * | grid, | |||
| const Matrix3 & | rotation, | |||
| const Vector3 & | translation | |||
| ) |
Set new grid and transform, keeping the old state to estimate velocity.
| void sofa::component::collision::RigidDistanceGridCollisionModel::setNewState | ( | int | index, | |
| double | dt, | |||
| DistanceGrid * | grid, | |||
| const Matrix3 & | rotation, | |||
| const Vector3 & | translation | |||
| ) |
Set new grid and transform, keeping the old state to estimate velocity.
Definition at line 131 of file DistanceGridCollisionModel.cpp.
References sofa::component::collision::DistanceGrid::addRef(), elems, sofa::defaulttype::Mat< L, C, real >::identity(), isTransformed(), and modified.
| void sofa::component::collision::RigidDistanceGridCollisionModel::updateGrid | ( | ) | [protected] |
Data< std::string > sofa::component::collision::RigidDistanceGridCollisionModel::dumpfilename [protected] |
sofa::helper::vector<ElementData> sofa::component::collision::RigidDistanceGridCollisionModel::elems [protected] |
Definition at line 464 of file DistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), draw(), getGrid(), getPrevDt(), getPrevGrid(), getPrevRotation(), getPrevTranslation(), getRotation(), getTranslation(), init(), isTransformed(), resize(), setGrid(), setNewState(), and ~RigidDistanceGridCollisionModel().
Data< std::string > sofa::component::collision::RigidDistanceGridCollisionModel::filename [protected] |
Definition at line 465 of file DistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), setGrid(), and setNewState().
core::componentmodel::behavior::MechanicalState<RigidTypes>* sofa::component::collision::RigidDistanceGridCollisionModel::rigid [protected] |
Definition at line 476 of file DistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), getMechanicalState(), getRigidModel(), and init().
Data< double > sofa::component::collision::RigidDistanceGridCollisionModel::scale [protected] |
Definition at line 484 of file DistanceGridCollisionModel.h.
1.5.7.1