iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
imstk::AbstractDataArray Class Referenceabstract

This class serves as the base class of DataArray, for typeless use. More...

#include <imstkAbstractDataArray.h>

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

Public Member Functions

 AbstractDataArray (const int size)
 
virtual ~AbstractDataArray ()
 Ensure all observers are disconnected.
 
 SIGNAL (AbstractDataArray, modified)
 
virtual void resize (const int size)=0
 Resizes the array, may reallocate.
 
virtual void reserve (const int size)=0
 Reserves a size for the array in memory, may reallocate.
 
virtual void * getVoidPointer ()=0
 Returns void pointer to data.
 
void clear ()
 Resizes to 0.
 
int size () const
 Get number of values/tuples.
 
ScalarTypeId getScalarType () const
 Returns the scalar type of this array.
 
int getCapacity () const
 Return the capacity of the array.
 
virtual int getNumberOfComponents () const
 Returns the number of components.
 
virtual std::shared_ptr< AbstractDataArraycast (ScalarTypeId)=0
 cast the content to the given imstk scalar type without having to know the type of the enclosed array
 
void postModified ()
 emits signal to all observers, informing them on the current address in memory and size of array
 
std::unique_ptr< AbstractDataArrayclone ()
 polymorphic clone() function, utilize this to get a copy of the array without casting to the expected array type
 
- 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 Member Functions

void setType (const ScalarTypeId type)
 

Protected Attributes

ScalarTypeId m_scalarType
 
int m_size
 
int m_capacity
 
- Protected Attributes inherited from imstk::EventObject
ParallelUtils::SpinLock eventQueueLock
 
std::deque< CommandeventQueue
 
std::vector< std::pair< std::string, std::vector< Observer > > > queuedObservers
 
std::vector< std::pair< std::string, std::vector< Observer > > > directObservers
 

Additional Inherited Members

- Public Types inherited from imstk::EventObject
using Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> >
 

Detailed Description

This class serves as the base class of DataArray, for typeless use.

Definition at line 19 of file imstkAbstractDataArray.h.


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