|
iMSTK
Interactive Medical Simulation Toolkit
|
Base class for imstk module system. A module defines something that is updated, and can be paused/resumed. It cannot start or stop Update loops are defined externally by a driver so they may be replaced. More...
#include <imstkModule.h>


Public Types | |
| enum | ExecutionType { SEQUENTIAL, PARALLEL, ADAPTIVE } |
| Currently 3 execution types are provided. These inform the driver on how it should run. | |
Public Types inherited from imstk::EventObject | |
| using | Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> > |
Public Member Functions | |
| virtual const std::string | getTypeName () const =0 |
| Returns collision detection type string name. | |
| SIGNAL (Module, preUpdate) | |
| Posted before updateModule is called. | |
| SIGNAL (Module, postUpdate) | |
| Posted after updateModule is called. | |
| SIGNAL (Module, end) | |
| Posted when module wants to end. | |
| double | getDt () const |
| Get/Set the time step. | |
| void | setDt (const double dt) |
| bool | getInit () const |
| Get whether the module is initialized yet. | |
| bool | getPaused () const |
| Set/Get whether the module is currently paused. | |
| void | setPaused (const bool paused) |
| void | setMuteUpdateEvents (const bool mute) |
| Set/Get whether the module should post pre/post update events. | |
| bool | getMuteUpdateEvents () const |
| ExecutionType | getExecutionType () const |
| Set/Get the execution type (see imstk::ExecutionType) | |
| void | setExecutionType (const ExecutionType type) |
| void | setSleepDelay (const double ms) |
| double | getSleepDelay () const |
| void | pause () |
| void | resume () |
| void | init () |
| void | update () |
| void | uninit () |
| virtual bool | initModule ()=0 |
| virtual void | updateModule ()=0 |
| virtual void | uninitModule () |
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 Attributes | |
| std::atomic< bool > | m_init = ATOMIC_VAR_INIT(false) |
| std::atomic< bool > | m_paused = ATOMIC_VAR_INIT(false) |
| double | m_dt = 0.0 |
| ExecutionType | m_executionType = ExecutionType::PARALLEL |
| bool | m_muteUpdateEvents = false |
| double | m_sleepDelay = 0.0 |
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 |
Base class for imstk module system. A module defines something that is updated, and can be paused/resumed. It cannot start or stop Update loops are defined externally by a driver so they may be replaced.
Definition at line 21 of file imstkModule.h.
1.8.13