|
iMSTK
Interactive Medical Simulation Toolkit
|
Inflatable object based on PBD, with inflatable volume and distance constraints. More...
#include <InflatableObject.h>


Public Types | |
| enum | InflationType { Linear, Exponential, None } |
Public Types inherited from imstk::EventObject | |
| using | Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> > |
Public Member Functions | |
| InflatableObject (const std::string &name, const Vec3d &tissueSize, const Vec3i &tissueDim, const Vec3d &tissueCenter) | |
| void | inject (const Vec3d &toolTip, const double radius, double rate) |
| Perform injection on the tissue given tool tip position. | |
| void | switchInflationType () |
| Switch between linear and exponential inflation type. | |
| void | setInflationRatio (double ratio) |
| void | setInflationSize (double sigma) |
| void | setUpdateAffectedConstraint () |
| set update affected constraints flag | |
| void | reset () override |
Public Member Functions inherited from imstk::PbdObject | |
| PbdObject (const std::string &name="PbdObject") | |
| std::shared_ptr< PbdModel > | getPbdModel () |
| std::shared_ptr< PbdBody > | getPbdBody () |
| Returns body in the model. | |
| void | setDynamicalModel (std::shared_ptr< AbstractDynamicalModel > dynaModel) override |
| Sets the model, and creates the body within the model. | |
| void | updatePhysicsGeometry () override |
| Update physics geometry, overrided to set transform should the PbdObject be a rigid body. | |
| void | setBodyFromGeometry () |
| Sets the PbdBody representing this object given its geometry. | |
| bool | initialize () override |
| Initialize the Pbd scene object. | |
| void | computeCellConstraintMap () |
| const std::vector< std::shared_ptr< PbdConstraint > > & | getCellConstraints (int cellId) |
Public Member Functions inherited from imstk::DynamicObject | |
| size_t | getNumOfDOF () const |
| Returns the number of degree of freedom. | |
| void | updateGeometries () final |
| Update the physics geometry and the apply the maps (if defined) | |
| void | reset () override |
| Reset the dynamic object by reseting the respective DynamicalModel and Geometry. | |
| std::shared_ptr< Geometry > | getPhysicsGeometry () const |
| Set/Get the geometry used for Physics computations. | |
| virtual void | setPhysicsGeometry (std::shared_ptr< Geometry > geometry) |
| std::shared_ptr< GeometryMap > | getPhysicsToCollidingMap () const |
| Set/Get the Physics-to-Collision map. | |
| void | setPhysicsToCollidingMap (std::shared_ptr< GeometryMap > map) |
| std::shared_ptr< GeometryMap > | getPhysicsToVisualMap () const |
| Set/Get the Physics-to-Visual map. | |
| void | setPhysicsToVisualMap (std::shared_ptr< GeometryMap > map) |
| virtual std::shared_ptr< AbstractDynamicalModel > | getDynamicalModel () const |
| Set/Get dynamical model. | |
Public Member Functions inherited from imstk::CollidingObject | |
| CollidingObject (const std::string &name="CollidingObject") | |
| void | update () override |
| Update the SceneObject, called during scene update. | |
| bool | didCollide (std::shared_ptr< CollidingObject > other) |
| void | addCollision (std::shared_ptr< CollidingObject > other, std::shared_ptr< imstk::CollisionData > data) |
| Add data for collision with the object `other. | |
| const std::vector< std::shared_ptr< imstk::CollisionData > > & | getCollisions (std::shared_ptr< CollidingObject > other) const |
| std::shared_ptr< Geometry > | getCollidingGeometry () const |
| void | setCollidingGeometry (std::shared_ptr< Geometry > geometry) |
| std::shared_ptr< GeometryMap > | getCollidingToVisualMap () const |
| void | setCollidingToVisualMap (std::shared_ptr< GeometryMap > map) |
Public Member Functions inherited from imstk::SceneObject | |
| SceneObject (const std::string &name="SceneObject") | |
| std::shared_ptr< TaskGraph > | getTaskGraph () const |
| Get the computational graph. | |
| std::shared_ptr< Geometry > | getVisualGeometry () const |
| Sets the visual geometry, adds (sets the first) VisualModel. | |
| void | setVisualGeometry (std::shared_ptr< Geometry > geometry) |
| std::shared_ptr< VisualModel > | getVisualModel (const int index) const |
| Get/add visual model. | |
| void | addVisualModel (std::shared_ptr< VisualModel > visualModel) |
| void | removeVisualModel (std::shared_ptr< VisualModel > visualModel) |
| std::shared_ptr< TaskNode > | getUpdateNode () const |
| Returns the computational node for updating. | |
| std::shared_ptr< TaskNode > | getUpdateGeometryNode () const |
| Returns the computational node for updating geometry. | |
| virtual void | visualUpdate () |
| Update the visuals, called before render. | |
| void | initGraphEdges () |
| Initializes the edges of the SceneObject's computational graph. | |
Public Member Functions inherited from imstk::Entity | |
| Entity (const std::string &name="Entity") | |
| SIGNAL (Entity, modified) | |
| EntityID | getID () const |
| Get ID (ALWAYS query the ID in your code, DO NOT hardcode it) More... | |
| virtual const std::string | getTypeName () const |
| template<typename T > | |
| std::shared_ptr< T > | addComponent () |
| Create and return a component on this entity. | |
| template<typename T > | |
| std::shared_ptr< T > | addComponent (std::string name) |
| void | addComponent (std::shared_ptr< Component > component) |
| Add existing component to entity. | |
| std::shared_ptr< Component > | getComponent (const unsigned int index) const |
| Get a component by index. | |
| template<typename T > | |
| std::shared_ptr< T > | getComponent () const |
| Get the first component of type T. | |
| template<typename T > | |
| std::shared_ptr< T > | getComponentN (const int index) const |
| Get's the Nth component of type T. | |
| template<class T > | |
| bool | containsComponent () const |
| Check if contains component of type T. | |
| bool | containsComponent (std::shared_ptr< Component > component) const |
| Check if contains given component. | |
| template<typename T > | |
| std::vector< std::shared_ptr< T > > | getComponents () const |
| Get all components of type T. | |
| const std::vector< std::shared_ptr< Component > > & | getComponents () |
| void | removeComponent (std::shared_ptr< Component > component) |
| Remove component if it exists. | |
| const std::string & | getName () const |
| Get/Set the name of the entity. | |
| void | setName (const std::string &name) |
Public Member Functions inherited from imstk::EventObject | |
| template<typename T > | |
| void | postEvent (const T &e) |
| Emits the event Direct observers will be immediately called, in sync Queued observers will receive the Command in their queue for later execution, reciever must implement doEvent. | |
| template<typename T > | |
| void | queueEvent (const T &e) |
| Queues event directly to this. | |
| void | doEvent () |
| Do an event, if none exists return. | |
| void | doAllEvents () |
| Do all the events in the event queue. | |
| void | foreachEvent (std::function< void(Command cmd)> func) |
| Thread safe loop over all event commands, one can implement a custom handler. | |
| void | rforeachEvent (std::function< void(Command cmd)> func) |
| thread safe reverse loop over all event commands, one can implement a custom handler | |
| void | clearEvents () |
| Removes all events from queue cleans up copies of the event. | |
Protected Member Functions | |
| void | setSphereTexCoords (const double uvScale) |
| Spherically project the texture coordinates. | |
| void | findAffectedConstraint (const Vec3d &toolTip, const double radius) |
| find affected constraints id and distance in the injection area | |
| double | computeGaussianWeight (double x) |
| Compute weight Gaussian distribution. | |
Protected Member Functions inherited from imstk::PbdObject | |
| void | setDeformBodyFromGeometry (PbdBody &body, std::shared_ptr< PointSet > geom) |
| Creates a deformable PbdBody from Geometry. | |
| void | setRigidBody (PbdBody &body) |
| Creates a rigid PbdBody from values. | |
Protected Member Functions inherited from imstk::DynamicObject | |
| void | initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override |
| Setup connectivity of task graph. | |
| void | postModifiedAll () override |
| Posts modified for all geometries. | |
| DynamicObject (const std::string &name) | |
Protected Member Functions inherited from imstk::CollidingObject | |
| void | clearCollisions () |
| resets the collision information | |
Protected Attributes | |
| std::shared_ptr< TetrahedralMesh > | m_objectTetMesh |
| std::shared_ptr< SurfaceMesh > | m_objectSurfMesh |
| std::vector< std::pair< int, double > > | m_constraintIDandWeight |
| bool | m_affectedAreaUpdated = false |
| double | m_inflationRatio = 1.0 |
| double | m_sigma = 1.0 |
| InflationType | m_inflationType = InflationType::Linear |
Protected Attributes inherited from imstk::PbdObject | |
| std::shared_ptr< PbdModel > | m_pbdModel = nullptr |
| Pbd mathematical model. | |
| std::shared_ptr< PbdBody > | m_pbdBody = nullptr |
| Handle to this object in the model/system. | |
Protected Attributes inherited from imstk::DynamicObject | |
| std::shared_ptr< AbstractDynamicalModel > | m_dynamicalModel = nullptr |
| Dynamical model. | |
| std::shared_ptr< Geometry > | m_physicsGeometry = nullptr |
| Geometry used for Physics. | |
| std::shared_ptr< GeometryMap > | m_physicsToCollidingGeomMap = nullptr |
| Maps from Physics to collision geometry. | |
| std::shared_ptr< GeometryMap > | m_physicsToVisualGeomMap = nullptr |
| Maps from Physics to visual geometry. | |
Protected Attributes inherited from imstk::CollidingObject | |
| std::shared_ptr< Geometry > | m_collidingGeometry = nullptr |
| Geometry for collisions. | |
| std::shared_ptr< GeometryMap > | m_collidingToVisualMap = nullptr |
| Maps transformations to visual geometry. | |
| Vec3d | m_force = Vec3d::Zero() |
| std::unordered_map< std::shared_ptr< CollidingObject >, std::vector< std::shared_ptr< CollisionData > > > | m_collisions |
Protected Attributes inherited from imstk::SceneObject | |
| std::shared_ptr< TaskGraph > | m_taskGraph = nullptr |
| Computational Graph. | |
Protected Attributes inherited from imstk::Entity | |
| std::vector< std::shared_ptr< Component > > | m_components |
| EntityID | m_ID |
| unique ID of entity | |
| std::string | m_name |
| Not unique name. | |
Protected Attributes inherited from imstk::EventObject | |
| ParallelUtils::SpinLock | eventQueueLock |
| std::deque< Command > | eventQueue |
| std::vector< std::pair< std::string, std::vector< Observer > > > | queuedObservers |
| std::vector< std::pair< std::string, std::vector< Observer > > > | directObservers |
Additional Inherited Members | |
Static Protected Attributes inherited from imstk::Entity | |
| static std::atomic< EntityID > | m_count { 0 } |
| current count of entities | |
Inflatable object based on PBD, with inflatable volume and distance constraints.
Definition at line 25 of file InflatableObject.h.
1.8.13