#include <CudaDistanceGridCollisionModel.h>


Data Structures | |
| class | ElementData |
Public Types | |
| typedef Rigid3Types | InDataTypes |
| typedef Vec3Types | DataTypes |
| typedef CudaRigidDistanceGridCollisionElement | Element |
Public Member Functions | |
| CudaRigidDistanceGridCollisionModel () | |
| ~CudaRigidDistanceGridCollisionModel () | |
| core::componentmodel::behavior::MechanicalState < InDataTypes > * | getRigidModel () |
| core::componentmodel::behavior::MechanicalState < InDataTypes > * | getMechanicalState () |
| void | init () |
| Initialization method called at graph modification, during bottom-up traversal. | |
| CudaDistanceGrid * | getGrid (int index=0) |
| bool | isTransformed (int index=0) |
| const Matrix3 & | getRotation (int index=0) |
| const Vector3 & | getTranslation (int index=0) |
| void | setGrid (CudaDistanceGrid *surf, int index=0) |
| CudaDistanceGrid * | 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, CudaDistanceGrid *grid, const Matrix3 &rotation, const Vector3 &translation) |
| Set new grid and transform, keeping the old state to estimate velocity. | |
| void | setNewState (double dt, CudaDistanceGrid *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 | |
| std::vector< ElementData > | elems |
| bool | modified |
| Data< std::string > | filename |
| Data< double > | scale |
| Data< helper::fixed_array < CudaDistanceGrid::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 437 of file CudaDistanceGridCollisionModel.h.
Definition at line 478 of file CudaDistanceGridCollisionModel.h.
| typedef CudaRigidDistanceGridCollisionElement sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::Element |
Definition at line 479 of file CudaDistanceGridCollisionModel.h.
| typedef Rigid3Types sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::InDataTypes |
Definition at line 477 of file CudaDistanceGridCollisionModel.h.
| sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::CudaRigidDistanceGridCollisionModel | ( | ) |
| sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::~CudaRigidDistanceGridCollisionModel | ( | ) |
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::computeBoundingTree | ( | int | maxDepth = 0 |
) | [virtual] |
Create or update the bounding volume hierarchy.
Implements sofa::core::CollisionModel.
Definition at line 540 of file CudaDistanceGridCollisionModel.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::gpu::cuda::CudaRigidDistanceGridCollisionModel::draw | ( | ) | [virtual] |
Render the whole collision model.
Reimplemented from sofa::core::CollisionModel.
Definition at line 590 of file CudaDistanceGridCollisionModel.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::gpu::cuda::CudaRigidDistanceGridCollisionModel::draw | ( | int | ) | [virtual] |
Render an collision element.
Reimplemented from sofa::core::CollisionModel.
Definition at line 612 of file CudaDistanceGridCollisionModel.cpp.
References sofa::gpu::cuda::CudaDistanceGrid::coord(), elems, sofa::gpu::cuda::CudaDistanceGrid::eval(), sofa::gpu::cuda::CudaDistanceGrid::getBBCorner(), sofa::gpu::cuda::CudaDistanceGrid::getCorner(), getGrid(), sofa::gpu::cuda::CudaDistanceGrid::getNx(), sofa::gpu::cuda::CudaDistanceGrid::getNy(), sofa::gpu::cuda::CudaDistanceGrid::getNz(), sofa::gpu::cuda::CudaDistanceGrid::getPMax(), sofa::gpu::cuda::CudaDistanceGrid::getPMin(), sofa::helper::gl::glMultMatrix(), sofa::gpu::cuda::CudaDistanceGrid::grad(), sofa::defaulttype::Mat< L, C, real >::identity(), sofa::core::CollisionModel::isMoving(), isTransformed(), sofa::gpu::cuda::CudaDistanceGrid::meshPts, norm(), sofa::defaulttype::Mat< L, C, real >::ptr(), and sofa::defaulttype::Mat< L, C, real >::transpose().
| CudaDistanceGrid* sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::getGrid | ( | int | index = 0 |
) | [inline] |
Definition at line 492 of file CudaDistanceGridCollisionModel.h.
References elems.
Referenced by draw().
| core::componentmodel::behavior::MechanicalState<InDataTypes>* sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::getMechanicalState | ( | void | ) | [inline] |
| double sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::getPrevDt | ( | int | index = 0 |
) | [inline] |
| CudaDistanceGrid* sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::getPrevGrid | ( | int | index = 0 |
) | [inline] |
| core::componentmodel::behavior::MechanicalState<InDataTypes>* sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::getRigidModel | ( | ) | [inline] |
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::init | ( | void | ) | [virtual] |
Initialization method called at graph modification, during bottom-up traversal.
Reimplemented from sofa::core::objectmodel::BaseObject.
Definition at line 472 of file CudaDistanceGridCollisionModel.cpp.
References box, dumpfilename, elems, filename, sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::BaseContext::getMechanicalState(), sofa::core::objectmodel::Data< T >::getValue(), sofa::gpu::cuda::CudaDistanceGrid::loadShared(), nx, ny, nz, resize(), rigid, and scale.
Definition at line 496 of file CudaDistanceGridCollisionModel.h.
References elems.
Referenced by computeBoundingTree(), draw(), and setNewState().
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::resize | ( | int | s | ) | [virtual] |
Set the number of elements.
Reimplemented from sofa::core::CollisionModel.
Definition at line 502 of file CudaDistanceGridCollisionModel.cpp.
References elems.
Referenced by init().
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::setGrid | ( | CudaDistanceGrid * | surf, | |
| int | index = 0 | |||
| ) |
Definition at line 508 of file CudaDistanceGridCollisionModel.cpp.
References sofa::gpu::cuda::CudaDistanceGrid::addRef(), elems, and modified.
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::setNewState | ( | double | dt, | |
| CudaDistanceGrid * | grid, | |||
| const Matrix3 & | rotation, | |||
| const Vector3 & | translation | |||
| ) |
Set new grid and transform, keeping the old state to estimate velocity.
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::setNewState | ( | int | index, | |
| double | dt, | |||
| CudaDistanceGrid * | grid, | |||
| const Matrix3 & | rotation, | |||
| const Vector3 & | translation | |||
| ) |
Set new grid and transform, keeping the old state to estimate velocity.
Definition at line 516 of file CudaDistanceGridCollisionModel.cpp.
References sofa::gpu::cuda::CudaDistanceGrid::addRef(), elems, sofa::defaulttype::Mat< L, C, real >::identity(), isTransformed(), and modified.
| void sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::updateGrid | ( | ) | [protected] |
Definition at line 586 of file CudaDistanceGridCollisionModel.cpp.
Referenced by computeBoundingTree().
Data< std::string > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::dumpfilename [protected] |
std::vector<ElementData> sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::elems [protected] |
Definition at line 461 of file CudaDistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), draw(), getGrid(), getPrevDt(), getPrevGrid(), getPrevRotation(), getPrevTranslation(), getRotation(), getTranslation(), init(), isTransformed(), resize(), setGrid(), setNewState(), and ~CudaRigidDistanceGridCollisionModel().
Data< std::string > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::filename [protected] |
Definition at line 462 of file CudaDistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), setGrid(), and setNewState().
Data< int > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::nx [protected] |
Data< int > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::ny [protected] |
Data< int > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::nz [protected] |
core::componentmodel::behavior::MechanicalState<RigidTypes>* sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::rigid [protected] |
Definition at line 473 of file CudaDistanceGridCollisionModel.h.
Referenced by computeBoundingTree(), CudaRigidDistanceGridCollisionModel(), getMechanicalState(), getRigidModel(), and init().
Data< double > sofa::gpu::cuda::CudaRigidDistanceGridCollisionModel::scale [protected] |
Definition at line 481 of file CudaDistanceGridCollisionModel.h.
Referenced by sofa::gpu::cuda::CudaCollisionDetection::RigidRigidTest::init().
1.5.7.1