iMSTK
Interactive Medical Simulation Toolkit
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
imstk::Burner Class Reference

Defines the behaviour to allow a tool to burn a pbdObject. This is done by storing state on the mesh that defines the damage from burning and the visual change caused by cauterization. These are currently normalized from [0,1] where 1 is the maximum damage. Once the damage reaches 1, the cell is deleted on the next visual update. More...

#include <imstkBurner.h>

Inheritance diagram for imstk::Burner:
Inheritance graph
[legend]
Collaboration diagram for imstk::Burner:
Collaboration graph
[legend]

Classes

struct  Burnable
 

Public Member Functions

 Burner (const std::string &name="BurnerPbdObjectBehavior")
 
void init () override
 Initialize the component, called at a later time after all component construction is complete.
 
bool getState () const
 Get state of burner (on/off ~ true/false)
 
void visualUpdate (const double &dt) override
 
bool getDidBurn () const
 
std::shared_ptr< PbdObjectgetBurnerObject () const
 Get the object doing the burning.
 
std::shared_ptr< AnalyticalGeometrygetBurnerGeometry () const
 Get/Set the geometry doing the burning, if it's not set the collision geoemtry of the burner object will be used.
 
void setBurnerGeometry (std::shared_ptr< AnalyticalGeometry > geom)
 
double getOnTime () const
 Get/Set the ontime from [0,1] where 1 is on fully and any value less than 1 is the percent of on time (e.g. 0.8 = 80% on time). This is used to represent the percent of damage that goes into cutting vs cauterizing.
 
void setOnTime (const double onTime)
 
double getWattage () const
 Get/Set the wattage. This value is generally between 50-80 watts for L-hook monopolar devices. The setter also sets the nomalized wattage, which is the input divided by 100.
 
void setWattage (const double wattage)
 
void start ()
 Start/Stop the burn by changing the onState flag.
 
void stop ()
 
void addObject (std::shared_ptr< PbdObject > obj)
 Add burnable object to list of things that can be burned.
 
- Public Member Functions inherited from imstk::Behaviour< UpdateInfo >
virtual void update (const UpdateInfo &imstkNotUsed(updateData))
 
virtual void visualUpdate (const UpdateInfo &imstkNotUsed(updateData))
 
void initTaskGraphEdges ()
 Setup the edges/connections of the TaskGraph.
 
std::shared_ptr< TaskGraphgetTaskGraph () const
 
- Public Member Functions inherited from imstk::Component
const std::string & getName () const
 
void setName (const std::string &name)
 
std::weak_ptr< EntitygetEntity () const
 Get parent entity.
 
void initialize ()
 Initialize the component, called at a later time after all component construction is complete.
 

Protected Member Functions

void handle ()
 
void handleBurnable (int burnableId)
 
void applyBurn (int burnableId, int cellId)
 
void monopolarToolModel (double &burnDmg, double &burnVis, double dt)
 
void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 
- Protected Member Functions inherited from imstk::Behaviour< UpdateInfo >
 Behaviour (const std::string &name="Behaviour")
 
 Behaviour (const bool useTaskGraph, const std::string &name="Behaviour")
 
virtual void initGraphEdges (std::shared_ptr< TaskNode > imstkNotUsed(source), std::shared_ptr< TaskNode > imstkNotUsed(sink))
 Setup the edges/connections of the TaskGraph. More...
 
- Protected Member Functions inherited from imstk::Component
 Component (const std::string &name="Component")
 

Protected Attributes

std::shared_ptr< PbdObjectm_burningObj
 PbdObject doing the burning.
 
std::shared_ptr< AnalyticalGeometrym_burnGeometry
 Geometry doing the burning.
 
std::shared_ptr< TaskNodem_burningHandleNode
 
std::vector< Burnablem_burnableObjects
 Set of burnable objects, currently set by user during setup.
 
double m_onTime = 0.5
 On time for energy burning tool from [0,1].
 
double m_wattage = 50
 Tool wattage.
 
double m_normWattage = 0.5
 Tool wattage / 100.
 
double m_q = 4.0
 Fitting parameter that modifies how quickly tissue gets burned.
 
bool m_onState = false
 flag if tool is currently on or not
 
bool m_burnOnce = false
 Rate limit the burning to once per phyics cycle.
 
bool m_didBurnLastPhysics = false
 Buffer for providing information to the user.
 
- Protected Attributes inherited from imstk::Behaviour< UpdateInfo >
std::shared_ptr< TaskGraphm_taskGraph = nullptr
 
- Protected Attributes inherited from imstk::Component
std::string m_name
 
std::weak_ptr< Entitym_entity
 Parent entity this component exists on.
 

Detailed Description

Defines the behaviour to allow a tool to burn a pbdObject. This is done by storing state on the mesh that defines the damage from burning and the visual change caused by cauterization. These are currently normalized from [0,1] where 1 is the maximum damage. Once the damage reaches 1, the cell is deleted on the next visual update.

Definition at line 28 of file imstkBurner.h.


The documentation for this class was generated from the following files: