#include <RayModel.h>


Public Types | |
| typedef Vec3Types | InDataTypes |
| typedef Vec3Types | DataTypes |
| typedef Ray | Element |
Public Member Functions | |
| RayModel (SReal defaultLength=1) | |
| int | addRay (const Vector3 &origin, const Vector3 &direction, SReal length) |
| int | getNbRay () const |
| void | setNbRay (int n) |
| Ray | getRay (int index) |
| virtual void | addContact (BaseRayContact *contact) |
| virtual void | removeContact (BaseRayContact *contact) |
| virtual void | resize (int size) |
| Set the number of elements. | |
| virtual void | computeBoundingTree (int maxDepth) |
| Create or update the bounding volume hierarchy. | |
| void | draw (int index) |
| Render an collision element. | |
| void | applyTranslation (const double dx, const double dy, const double dz) |
| Translate the current state. | |
| void | draw () |
| Render the whole collision model. | |
Protected Attributes | |
| sofa::helper::vector< SReal > | length |
| Data< SReal > | defaultLength |
| std::set< BaseRayContact * > | contacts |
Friends | |
| class | Ray |
Definition at line 65 of file RayModel.h.
Reimplemented from sofa::core::componentmodel::behavior::MechanicalState< DataTypes >.
Definition at line 75 of file RayModel.h.
Definition at line 76 of file RayModel.h.
Definition at line 74 of file RayModel.h.
| sofa::component::collision::RayModel::RayModel | ( | SReal | defaultLength = 1 |
) |
| virtual void sofa::component::collision::RayModel::addContact | ( | BaseRayContact * | contact | ) | [inline, virtual] |
| int sofa::component::collision::RayModel::addRay | ( | const Vector3 & | origin, | |
| const Vector3 & | direction, | |||
| SReal | length | |||
| ) |
| void sofa::component::collision::RayModel::applyTranslation | ( | const double | dx, | |
| const double | dy, | |||
| const double | dz | |||
| ) | [virtual] |
Translate the current state.
Reimplemented from sofa::component::MechanicalObject< DataTypes >.
Definition at line 145 of file RayModel.cpp.
References getNbRay(), getRay(), and sofa::component::collision::Ray::origin().
| void sofa::component::collision::RayModel::computeBoundingTree | ( | int | maxDepth | ) | [virtual] |
Create or update the bounding volume hierarchy.
Implements sofa::core::CollisionModel.
Definition at line 110 of file RayModel.cpp.
References sofa::component::MechanicalObject< DataTypes >::c, sofa::component::collision::CubeModel::computeBoundingTree(), sofa::component::collision::Ray::direction(), sofa::core::CollisionModel::empty(), sofa::core::CollisionModel::isMoving(), sofa::component::collision::Ray::l(), sofa::component::collision::Ray::origin(), sofa::component::collision::CubeModel::resize(), sofa::component::collision::CubeModel::setParentOf(), and sofa::core::CollisionModel::size.
| void sofa::component::collision::RayModel::draw | ( | ) | [virtual] |
Render the whole collision model.
Reimplemented from sofa::core::CollisionModel.
Reimplemented in sofa::component::collision::RayPickInteractor.
Definition at line 95 of file RayModel.cpp.
References sofa::core::CollisionModel::draw(), draw(), sofa::core::CollisionModel::getColor4f(), sofa::core::objectmodel::BaseObject::getContext(), sofa::core::CollisionModel::getPrevious(), and sofa::core::CollisionModel::size.
Referenced by draw().
| void sofa::component::collision::RayModel::draw | ( | int | ) | [virtual] |
Render an collision element.
Reimplemented from sofa::core::CollisionModel.
Definition at line 84 of file RayModel.cpp.
References sofa::component::collision::Ray::direction(), sofa::helper::gl::glVertexT(), sofa::component::collision::Ray::l(), and sofa::component::collision::Ray::origin().
| int sofa::component::collision::RayModel::getNbRay | ( | ) | const [inline] |
Definition at line 83 of file RayModel.h.
References sofa::core::CollisionModel::size.
Referenced by applyTranslation(), sofa::component::collision::RayPickInteractor::draw(), sofa::component::collision::RayPickInteractor::pickBody(), and sofa::component::collision::RayPickInteractor::updatePosition().
Definition at line 87 of file RayModel.h.
References Ray.
Referenced by applyTranslation(), sofa::component::collision::RayPickInteractor::draw(), sofa::component::collision::RayPickInteractor::pickBody(), and sofa::component::collision::RayPickInteractor::updatePosition().
| virtual void sofa::component::collision::RayModel::removeContact | ( | BaseRayContact * | contact | ) | [inline, virtual] |
Definition at line 91 of file RayModel.h.
References contacts.
Referenced by sofa::component::collision::BaseRayContact::~BaseRayContact().
| void sofa::component::collision::RayModel::resize | ( | int | s | ) | [virtual] |
Set the number of elements.
Reimplemented from sofa::core::CollisionModel.
Definition at line 57 of file RayModel.cpp.
References defaultLength, and length.
Referenced by setNbRay(), and sofa::component::collision::RayPickInteractor::updatePosition().
| void sofa::component::collision::RayModel::setNbRay | ( | int | n | ) | [inline] |
Definition at line 85 of file RayModel.h.
References resize().
Referenced by sofa::component::collision::RayPickInteractor::updatePosition().
friend class Ray [friend] |
std::set<BaseRayContact*> sofa::component::collision::RayModel::contacts [protected] |
Definition at line 72 of file RayModel.h.
Referenced by addContact(), sofa::component::collision::RayPickInteractor::findFirstCollision(), removeContact(), and sofa::component::collision::RayPickInteractor::updatePosition().
Data<SReal> sofa::component::collision::RayModel::defaultLength [protected] |
1.5.7.1