AGX Dynamics 2.40.1.2
Loading...
Searching...
No Matches
agxData::DiskFrameReader Class Referenceabstract

Helper class for the FrameReaders that are backed by a file on disk. More...

#include <DiskTrack.h>

+ Inheritance diagram for agxData::DiskFrameReader:

Public Member Functions

virtual void advanceToNextFrame () override
 
agx::UInt findFrameAtTime (agx::Real time) const
 
agx::UInt getFrameIndexToRead () const
 
virtual agx::UInt getFrameStride () override
 
virtual agx::UInt getNextFrameIndex () override
 
virtual const JournalArchive::SessiongetSession () const =0
 
virtual agx::Real getTimeStep () override
 
virtual Frame * readFrame () override
 Reads the next frame from disk using the virtual readFrame(UInt) method.
 
virtual bool shouldExtract (const agx::Path &path) override
 
- Public Member Functions inherited from agxData::FrameReader
 FrameReader (bool active)
 
virtual void advanceToNextFrame ()
 
virtual agx::UInt getFrameStride ()
 
virtual agx::UInt getNextFrameIndex ()
 
virtual agx::Real getTimeStep ()
 
virtual bool jumpToFrame (agx::UInt frameIndex)
 Select which frame that should be returned by the next call to 'readFrame'.
 
virtual bool jumpToTime (agx::Real time)
 
virtual Frame * readFrame ()=0
 Reads the next frame from the stream and moves the stream forward one frame.
 
virtual bool shouldExtract (const agx::Path &path)
 
- Public Member Functions inherited from agxData::FrameIO
void addDataBinding (const agx::Path &internalPath, const agx::Path &externalPath, bool recursive=false)
 Register a data binding.
 
void addDataBinding (const agx::Path &path, bool recursive=false)
 Alias for addDataBinding(path, path)
 
void clearDataBindings ()
 Remove all data bindings.
 
const Frame::DataBindingRefVector & getDataBindings () const
 
SerializedFrame::HeaderFormat getHeaderFormat () const
 
TrackgetTrack ()
 
const TrackgetTrack () const
 
bool isActive () const
 
void loadDataBindings (const agx::String &xmlFilePath)
 Load bindings from an xml file.
 
bool loadDataBindingsJSON (const agx::String &jsonFilePath)
 
bool removeDataBinding (const agx::Path &internalPath, const agx::Path &externalPath)
 
bool removeDataBinding (const agx::Path &path)
 
void setHeaderFormat (SerializedFrame::HeaderFormat format)
 
- Public Member Functions inherited from agx::Object
 Object (const Name &name=Name(), Model *model=Object::ClassModel())
 
void addListener (EventListener *listener)
 
virtual void buildNavigationTree (agxJson::Value &eNode) const
 
virtual void configure (TiXmlElement *)
 
agx::String fullName () const
 
agx::String fullPath () const
 
agx::String fullPath (const agx::Object *root) const
 
template<typename T >
T * getAutoScopedResource (const agx::Path &path)
 
template<typename T >
const T * getAutoScopedResource (const agx::Path &path) const
 
agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const
 
agx::ObjectgetContext ()
 
template<typename T >
T * getContext ()
 
const agx::ObjectgetContext () const
 
template<typename T >
const T * getContext () const
 
agx::UInt32 getId () const
 
const agx::NamegetImplementationName () const
 
agx::ModelgetModel ()
 
const agx::ModelgetModel () const
 
const agx::NamegetName () const
 
agx::ObjectgetNextSibling ()
 
const agx::ObjectgetNextSibling () const
 
agx::Path getPath () const
 
agx::Path getPath (const agx::Object *root) const
 
template<typename T >
T * getResource (const agx::Path &path)
 
template<typename T >
const T * getResource (const agx::Path &path) const
 
agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr) const
 
virtual agx::ObjectgetResourceImpl (const agx::Path &path, agx::Model *model)
 
agx::ObjectgetRootContext ()
 
const agx::ObjectgetRootContext () const
 
bool hasListener (EventListener *listener)
 
bool hasParent (const agx::Object *node) const
 
bool isUnique () const
 
virtual void printSubtree () const
 
virtual void rebind ()
 
void removeListener (EventListener *listener)
 
virtual void save (TiXmlElement *) const
 
virtual void setContext (agx::Object *context)
 
void setId (UInt32 id)
 
void setModel (agx::Model *model)
 Set the object model (handled automatically).
 
void setName (const agx::Name &name)
 Set the name of the object.
 
virtual void snapshot (TiXmlNode *, const String &) const
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referencedoperator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 

Protected Types

typedef agx::HashSet< agx::PathBindingTable
 

Protected Member Functions

 DiskFrameReader ()
 
virtual void endSequence ()
 
virtual void prepareSequence (agx::UInt startFrame, agx::UInt lastFrame)
 
virtual agxData::Frame * readFrame (agx::UInt frameIndex)=0
 Read a frame from disk.
 
- Protected Member Functions inherited from agxData::FrameReader
virtual ~FrameReader ()
 
- Protected Member Functions inherited from agxData::FrameIO
 FrameIO (bool active)
 
virtual ~FrameIO ()
 
void addDataBinding (Frame::DataBinding *binding)
 
- Protected Member Functions inherited from agx::Object
virtual ~Object ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

BindingTable m_bindingTable
 
FrameRef m_currentFrame
 
BindingTable m_exclusions
 
FrameRefVector m_frameMergeSequence
 
agx::UInt m_frameToRead
 
agx::Mutex m_mutex
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Additional Inherited Members

- Public Types inherited from agx::Object
typedef agx::observer_ptr< const EventEventConstObserver
 
typedef agx::ref_ptr< const EventEventConstRef
 
typedef agx::observer_ptr< EventEventObserver
 
typedef agx::Vector< EventObserverEventObserverVector
 
typedef agx::VectorPOD< Event * > EventPtrVector
 
typedef agx::ref_ptr< EventEventRef
 
typedef agx::Vector< EventRefEventRefVector
 
- Static Public Member Functions inherited from agx::Object
static agx::ModelClassModel ()
 
static agx::String generateName (const agx::String &bindPath)
 
static const HashSet< Object * > & getActiveObjects ()
 
static bool getEnableRebind ()
 Should rebinding be allowed? Right now a global setting.
 
static Objectload (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
static Objectload (const String &path, Device *device, const String &type="", size_t instance=0)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type="", size_t instance=0)
 
static void load (const String &path, Device *device, ObjectPtrVector &loadedObjects)
 
static Objectload (TiXmlElement *eObject, Device *device)
 
template<typename T >
static T * load (TiXmlElement *eObject, Device *device)
 
static TiXmlDocument openDocument (const String &path)
 
static void setEnableRebind (bool flag)
 Sets if rebinding of objects should be allowed (Right now a global setting).
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 

Detailed Description

Helper class for the FrameReaders that are backed by a file on disk.

Provides a few algorithms that uses subclass dependent operations realized through virtual methods.

Definition at line 34 of file DiskTrack.h.

Member Typedef Documentation

◆ BindingTable

Definition at line 94 of file DiskTrack.h.

Constructor & Destructor Documentation

◆ DiskFrameReader()

agxData::DiskFrameReader::DiskFrameReader ( )
protected

Member Function Documentation

◆ advanceToNextFrame()

virtual void agxData::DiskFrameReader::advanceToNextFrame ( )
overridevirtual

Reimplemented from agxData::FrameReader.

◆ endSequence()

virtual void agxData::DiskFrameReader::endSequence ( )
protectedvirtual

Reimplemented in agxData::FileFrameReader.

◆ findFrameAtTime()

agx::UInt agxData::DiskFrameReader::findFrameAtTime ( agx::Real  time) const
Returns
The frame index of the frame closes to the given time.

◆ getFrameIndexToRead()

agx::UInt agxData::DiskFrameReader::getFrameIndexToRead ( ) const
Returns
The index of the frame that will be read on the next call to \'readFrame()'.

◆ getFrameStride()

virtual agx::UInt agxData::DiskFrameReader::getFrameStride ( )
overridevirtual

Reimplemented from agxData::FrameReader.

◆ getNextFrameIndex()

virtual agx::UInt agxData::DiskFrameReader::getNextFrameIndex ( )
overridevirtual

Reimplemented from agxData::FrameReader.

◆ getSession()

virtual const JournalArchive::Session * agxData::DiskFrameReader::getSession ( ) const
pure virtual
Returns
The session that frames are being read from. Is always a subclass of Journal::Session suitable for the type of the current DiskFrameReader instance.

Implemented in agxData::FileFrameReader.

◆ getTimeStep()

virtual agx::Real agxData::DiskFrameReader::getTimeStep ( )
overridevirtual

Reimplemented from agxData::FrameReader.

◆ prepareSequence()

virtual void agxData::DiskFrameReader::prepareSequence ( agx::UInt  startFrame,
agx::UInt  lastFrame 
)
protectedvirtual

Reimplemented in agxData::FileFrameReader.

◆ readFrame() [1/2]

virtual Frame * agxData::DiskFrameReader::readFrame ( )
overridevirtual

Reads the next frame from disk using the virtual readFrame(UInt) method.

Does frame merging from previous key frame when needed.

Implements agxData::FrameReader.

◆ readFrame() [2/2]

virtual agxData::Frame * agxData::DiskFrameReader::readFrame ( agx::UInt  frameIndex)
protectedpure virtual

Read a frame from disk.

Implemented by the subclasses.

◆ shouldExtract()

virtual bool agxData::DiskFrameReader::shouldExtract ( const agx::Path path)
overridevirtual

Reimplemented from agxData::FrameReader.

Member Data Documentation

◆ m_bindingTable

BindingTable agxData::DiskFrameReader::m_bindingTable
protected

Definition at line 97 of file DiskTrack.h.

◆ m_currentFrame

FrameRef agxData::DiskFrameReader::m_currentFrame
protected

Definition at line 90 of file DiskTrack.h.

◆ m_exclusions

BindingTable agxData::DiskFrameReader::m_exclusions
protected

Definition at line 98 of file DiskTrack.h.

◆ m_frameMergeSequence

FrameRefVector agxData::DiskFrameReader::m_frameMergeSequence
protected

Definition at line 92 of file DiskTrack.h.

◆ m_frameToRead

agx::UInt agxData::DiskFrameReader::m_frameToRead
protected

Definition at line 89 of file DiskTrack.h.

◆ m_mutex

agx::Mutex agxData::DiskFrameReader::m_mutex
protected

Definition at line 88 of file DiskTrack.h.


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