#include <RayPickInteractor.h>


Public Member Functions | |
| RayPickInteractor () | |
| ~RayPickInteractor () | |
| virtual void | init () |
| Initialization method called at graph modification, during bottom-up traversal. | |
| virtual bool | isActive () |
| virtual void | updatePosition (double dt) |
| Computation of a new simulation step. | |
| virtual void | newPosition (const Vector3 &translation, const Quat &rotation, const Mat4x4d &transformation) |
| Interactor interface. | |
| virtual void | newEvent (const std::string &command) |
| virtual void | draw () |
| Render the whole collision model. | |
| virtual bool | isAttached () |
Protected Types | |
| enum | { DISABLED, PRESENT, ACTIVE, ATTACHED, FIRST_INPUT, SECOND_INPUT, IS_CUT } |
Protected Member Functions | |
| void | pickBody () |
| void | releaseBody () |
| core::componentmodel::collision::DetectionOutput * | findFirstCollision (const Ray &ray, double *dist) |
Protected Attributes | |
| enum sofa::component::collision::RayPickInteractor:: { ... } | state |
| int | button |
| Mat4x4d | transform |
| helper::vector < BasePickingManager * > | pickManagers |
| TopologicalChangeManager | topo_changeManager |
Definition at line 85 of file RayPickInteractor.h.
anonymous enum [protected] |
Definition at line 114 of file RayPickInteractor.h.
| sofa::component::collision::RayPickInteractor::RayPickInteractor | ( | ) |
Definition at line 106 of file RayPickInteractor.cpp.
References sofa::core::CollisionModel::contactStiffness, sofa::defaulttype::Mat< L, C, real >::identity(), sofa::core::objectmodel::Data< T >::setValue(), and transform.
| sofa::component::collision::RayPickInteractor::~RayPickInteractor | ( | ) |
Definition at line 113 of file RayPickInteractor.cpp.
| void sofa::component::collision::RayPickInteractor::draw | ( | ) | [virtual] |
Render the whole collision model.
Reimplemented from sofa::component::collision::RayModel.
Definition at line 432 of file RayPickInteractor.cpp.
References ATTACHED, sofa::core::TCollisionElementIterator< TModel >::draw(), sofa::core::componentmodel::collision::DetectionOutput::elem, findFirstCollision(), sofa::core::TCollisionElementIterator< TModel >::getCollisionModel(), sofa::core::BaseCollisionElementIterator::getIndex(), sofa::component::collision::RayModel::getNbRay(), sofa::component::collision::RayModel::getRay(), PRESENT, and state.
| core::componentmodel::collision::DetectionOutput * sofa::component::collision::RayPickInteractor::findFirstCollision | ( | const Ray & | ray, | |
| double * | dist | |||
| ) | [protected] |
Definition at line 385 of file RayPickInteractor.cpp.
References sofa::component::collision::RayModel::contacts, sofa::component::collision::Ray::direction(), sofa::core::componentmodel::collision::DetectionOutput::elem, sofa::component::collision::Ray::l(), sofa::component::collision::Ray::origin(), and sofa::core::componentmodel::collision::DetectionOutput::point.
Referenced by draw(), and pickBody().
| void sofa::component::collision::RayPickInteractor::init | ( | void | ) | [virtual] |
Initialization method called at graph modification, during bottom-up traversal.
Reimplemented from sofa::core::objectmodel::BaseObject.
Definition at line 117 of file RayPickInteractor.cpp.
References sofa::component::collision::BasePickingManager::CreateAll(), sofa::core::objectmodel::BaseContext::get(), sofa::core::objectmodel::BaseObject::getContext(), pickManagers, and sofa::core::objectmodel::BaseContext::SearchRoot.
Referenced by sofa::gui::qt::viewer::SofaViewer::mouseEvent(), and sofa::gui::glut::SimpleGUI::mouseEvent().
| bool sofa::component::collision::RayPickInteractor::isActive | ( | ) | [virtual] |
Definition at line 129 of file RayPickInteractor.cpp.
References ACTIVE, FIRST_INPUT, IS_CUT, PRESENT, and state.
| bool sofa::component::collision::RayPickInteractor::isAttached | ( | ) | [virtual] |
Definition at line 134 of file RayPickInteractor.cpp.
References pickManagers.
Referenced by pickBody(), releaseBody(), and updatePosition().
| void sofa::component::collision::RayPickInteractor::newEvent | ( | const std::string & | command | ) | [virtual] |
Definition at line 295 of file RayPickInteractor.cpp.
References ACTIVE, ATTACHED, button, DISABLED, FIRST_INPUT, IS_CUT, PRESENT, SECOND_INPUT, and state.
Referenced by sofa::gui::qt::viewer::SofaViewer::mouseEvent(), sofa::gui::qt::viewer::qt::QtViewer::mouseEvent(), sofa::gui::qt::viewer::qgl::QtGLViewer::mouseEvent(), sofa::gui::glut::SimpleGUI::mouseEvent(), and sofa::gui::qt::viewer::qtogre::QtOgreViewer::mouseReleaseEvent().
| void sofa::component::collision::RayPickInteractor::newPosition | ( | const Vector3 & | translation, | |
| const Quat & | rotation, | |||
| const Mat4x4d & | transformation | |||
| ) | [virtual] |
Interactor interface.
Definition at line 290 of file RayPickInteractor.cpp.
References transform.
Referenced by sofa::gui::glut::SimpleGUI::mouseEvent(), sofa::gui::qt::viewer::qtogre::QtOgreViewer::moveRayPickInteractor(), sofa::gui::qt::viewer::qt::QtViewer::moveRayPickInteractor(), and sofa::gui::qt::viewer::qgl::QtGLViewer::moveRayPickInteractor().
| void sofa::component::collision::RayPickInteractor::pickBody | ( | ) | [protected] |
Definition at line 142 of file RayPickInteractor.cpp.
References ACTIVE, ATTACHED, button, DISABLED, sofa::core::componentmodel::collision::DetectionOutput::elem, findFirstCollision(), FIRST_INPUT, sofa::core::TCollisionElementIterator< TModel >::getCollisionModel(), sofa::component::collision::RayModel::getNbRay(), sofa::component::collision::RayModel::getRay(), sofa::component::collision::TopologicalChangeManager::incisionCollisionModel(), IS_CUT, isAttached(), pickManagers, sofa::core::componentmodel::collision::DetectionOutput::point, PRESENT, sofa::component::collision::TopologicalChangeManager::removeItemsFromCollisionModel(), SECOND_INPUT, state, and topo_changeManager.
Referenced by updatePosition().
| void sofa::component::collision::RayPickInteractor::releaseBody | ( | ) | [protected] |
Definition at line 246 of file RayPickInteractor.cpp.
References isAttached(), and pickManagers.
Referenced by updatePosition().
| void sofa::component::collision::RayPickInteractor::updatePosition | ( | double | dt | ) | [virtual] |
Computation of a new simulation step.
Implements sofa::core::BehaviorModel.
Definition at line 254 of file RayPickInteractor.cpp.
References ACTIVE, ATTACHED, sofa::component::collision::RayModel::contacts, sofa::component::collision::Ray::direction(), DISABLED, FIRST_INPUT, sofa::component::collision::RayModel::getNbRay(), sofa::component::collision::RayModel::getRay(), IS_CUT, isAttached(), sofa::component::collision::Ray::l(), sofa::defaulttype::Vec< N, real >::normalize(), sofa::component::collision::Ray::origin(), pickBody(), pickManagers, releaseBody(), sofa::component::collision::RayModel::resize(), sofa::component::collision::RayModel::setNbRay(), state, and transform.
helper::vector<BasePickingManager*> sofa::component::collision::RayPickInteractor::pickManagers [protected] |
Definition at line 118 of file RayPickInteractor.h.
Referenced by init(), isAttached(), pickBody(), releaseBody(), and updatePosition().
enum { ... } sofa::component::collision::RayPickInteractor::state [protected] |
Referenced by draw(), isActive(), newEvent(), pickBody(), and updatePosition().
Definition at line 116 of file RayPickInteractor.h.
Referenced by newPosition(), RayPickInteractor(), and updatePosition().
1.5.7.1