iMSTK
Interactive Medical Simulation Toolkit
|
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>
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< PbdObject > | getBurnerObject () const |
Get the object doing the burning. | |
std::shared_ptr< AnalyticalGeometry > | getBurnerGeometry () 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. | |
![]() | |
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< TaskGraph > | getTaskGraph () const |
![]() | |
const std::string & | getName () const |
void | setName (const std::string &name) |
std::weak_ptr< Entity > | getEntity () 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 |
![]() | |
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... | |
![]() | |
Component (const std::string &name="Component") | |
Protected Attributes | |
std::shared_ptr< PbdObject > | m_burningObj |
PbdObject doing the burning. | |
std::shared_ptr< AnalyticalGeometry > | m_burnGeometry |
Geometry doing the burning. | |
std::shared_ptr< TaskNode > | m_burningHandleNode |
std::vector< Burnable > | m_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. | |
![]() | |
std::shared_ptr< TaskGraph > | m_taskGraph = nullptr |
![]() | |
std::string | m_name |
std::weak_ptr< Entity > | m_entity |
Parent entity this component exists on. | |
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.