7 #include "imstkComponent.h"    17 class AnalyticalGeometry;
    31     Burner(
const std::string& name = 
"BurnerPbdObjectBehavior");
    45     void setBurnerGeometry(std::shared_ptr<AnalyticalGeometry> geom)
    47         CHECK(geom != 
nullptr);
    59     void setOnTime(
const double onTime)
    61         CHECK(onTime >= 0.0 && onTime <= 1.0) << 
"On time in the burning component must be between 0 and 1 \n";
    73     void setWattage(
const double wattage)
    75         CHECK(wattage >= 10.0 && wattage <= 200.0) << 
"Wattage is currently forced to be within 10 and 200 for the burning tool, set value within these bounds \n";
   104     void visualUpdate(
const double& dt) 
override;
   106     bool getDidBurn() 
const;
   113     void handleBurnable(
int burnableId);
   116     void applyBurn(
int burnableId, 
int cellId);
   121     void monopolarToolModel(
double& burnDmg, 
double& burnVis, 
double dt);
   123     void initGraphEdges(std::shared_ptr<TaskNode> source, std::shared_ptr<TaskNode> sink) 
override;
   128     std::shared_ptr<TaskNode> m_burningHandleNode;
   132         std::shared_ptr<PbdObject> object;
   133         std::shared_ptr<CellPicker> picker;
   147     bool   m_didBurn  = 
false;               
   148     double m_burnTime = 0;
 std::shared_ptr< AnalyticalGeometry > m_burnGeometry
Geometry doing the burning. 
 
double m_q
Fitting parameter that modifies how quickly tissue gets burned. 
 
double m_normWattage
Tool wattage / 100. 
 
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...
 
void init() override
Initialize the component, called at a later time after all component construction is complete...
 
bool m_didBurnLastPhysics
Buffer for providing information to the user. 
 
std::vector< Burnable > m_burnableObjects
Set of burnable objects, currently set by user during setup. 
 
bool getState() const
Get state of burner (on/off ~ true/false) 
 
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 w...
 
A Behaviour represents a single component system A template is used here for UpdateInfo to keep the C...
 
void addObject(std::shared_ptr< PbdObject > obj)
Add burnable object to list of things that can be burned. 
 
double m_onTime
On time for energy burning tool from [0,1]. 
 
bool m_burnOnce
Rate limit the burning to once per phyics cycle. 
 
double m_wattage
Tool wattage. 
 
std::shared_ptr< PbdObject > getBurnerObject() const
Get the object doing the burning. 
 
std::shared_ptr< PbdObject > m_burningObj
PbdObject doing the burning. 
 
bool m_onState
flag if tool is currently on or not 
 
Defines the behaviour to allow a tool to burn a pbdObject. This is done by storing state on the mesh ...
 
double getWattage() const
Get/Set the wattage. This value is generally between 50-80 watts for L-hook monopolar devices...
 
void start()
Start/Stop the burn by changing the onState flag.