|
iMSTK
Interactive Medical Simulation Toolkit
|
Top-level class for entities. Entities contain a collection of components which define how to be used in a system. More...
#include <imstkEntity.h>


Public Member Functions | |
| 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 Attributes | |
| 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 |
Static Protected Attributes | |
| static std::atomic< EntityID > | m_count { 0 } |
| current count of entities | |
Additional Inherited Members | |
Public Types inherited from imstk::EventObject | |
| using | Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> > |
Top-level class for entities. Entities contain a collection of components which define how to be used in a system.
Definition at line 26 of file imstkEntity.h.
|
inline |
Get ID (ALWAYS query the ID in your code, DO NOT hardcode it)
Definition at line 40 of file imstkEntity.h.
1.8.13