gramods
Classes | Public Member Functions | List of all members
gramods::gmCore::Object Class Reference

Base type for objects in the Gramods package for standardized handling of construction, initialization and destruction, and for setting up configuration based on configuration files, read using gmCore::Configuration. More...

#include <Object.hh>

Inheritance diagram for gramods::gmCore::Object:
Inheritance graph
[legend]
Collaboration diagram for gramods::gmCore::Object:
Collaboration graph
[legend]

Classes

struct  Visitor
 The visitor of a design pattern for automatic traversal. More...
 

Public Member Functions

 Object ()
 Initializes internal data. More...
 
virtual ~Object ()
 Cleaning up internal data. More...
 
virtual void initialize ()
 Called to initialize the Object. More...
 
virtual void accept (Visitor *visitor)
 Calls the visitors apply method with this as argument. More...
 
virtual void traverse (Visitor *visitor)
 Calls the child Object's accept method, if such exist. More...
 
virtual std::string getDefaultKey ()
 Returns the default key for the Object when automatically instantiated in a Configuration, i.e. More...
 
bool isInitialized ()
 Returns true if the Object is initialized. More...
 

Detailed Description

Base type for objects in the Gramods package for standardized handling of construction, initialization and destruction, and for setting up configuration based on configuration files, read using gmCore::Configuration.

The most typical usage is

gmCore::Configuration config(argc, argv);
std::shared_ptr<MyClass> my_object;
if (! config.getObject(my_object)) {
GM_ERR("MyCode", "Cannot run without MyClass instance");
exit(-1);
}

If gmCore::Configuration is not used, then the classes may be manually instantiated and initialized. The basic initialization procedure should then be as follows:

  1. Instantiate with empty constructor.
  2. Call setters to configure the object.
  3. Call initialize.
  4. Object is ready to be used.

All three steps are performed by the Configuration tool and an Object extracted therefrom will be ready to be used.

Constructor & Destructor Documentation

◆ Object()

gramods::gmCore::Object::Object ( )
inline

Initializes internal data.

◆ ~Object()

virtual gramods::gmCore::Object::~Object ( )
inlinevirtual

Cleaning up internal data.

Member Function Documentation

◆ accept()

virtual void gramods::gmCore::Object::accept ( Visitor visitor)
inlinevirtual

Calls the visitors apply method with this as argument.

Reimplemented in gramods::gmGraphics::Transform, and gramods::gmGraphics::TrackedTransform.

◆ getDefaultKey()

virtual std::string gramods::gmCore::Object::getDefaultKey ( )
inlinevirtual

Returns the default key for the Object when automatically instantiated in a Configuration, i.e.

where it ends up in a parent Object. Default is "object", but this should be overriden by sub classes and can also be overridden in XML by using the attribute KEY, as in KEY="view".

The key can also be used to extract a specific object from a Configuration instance:

gmCore::Configuration config(argc, argv);
std::shared_ptr<MyClass> my_object;
if (! config.getObjectByKey("view", my_object)) {
GM_ERR("MyCode", "Cannot run without MyClass instance");
exit(-1);
}

Reimplemented in gramods::gmTrack::SinglePoseTracker, gramods::gmTrack::MultiPoseTracker, gramods::gmTrack::Controller, gramods::gmTrack::ButtonsTracker, gramods::gmTrack::AnalogsTracker, gramods::gmSound::SoundDetector, gramods::gmSound::OpenALContext, gramods::gmSound::Capture, gramods::gmNetwork::SyncNode, gramods::gmGraphics::ViewTexture, gramods::gmGraphics::Viewpoint, gramods::gmGraphics::Texture, gramods::gmGraphics::Node, gramods::gmGraphics::MultiscopicMultiplexer, gramods::gmGraphics::Geometry, gramods::gmGraphics::CoordinatesMapper, gramods::gmCore::SdlContext, and gramods::gmCore::OpenVR.

◆ initialize()

virtual void gramods::gmCore::Object::initialize ( )
inlinevirtual

◆ isInitialized()

bool gramods::gmCore::Object::isInitialized ( )
inline

Returns true if the Object is initialized.

Sub classes must call Object::initialize() if and only if the initialization succeeded.

◆ traverse()

virtual void gramods::gmCore::Object::traverse ( Visitor visitor)
inlinevirtual

Calls the child Object's accept method, if such exist.

Reimplemented in gramods::gmTrack::VrpnServer, gramods::gmTrack::SingleToMultiPoseTracker, gramods::gmTrack::SampleCollector, gramods::gmTrack::RelativeSinglePoseTracker, gramods::gmTrack::RegisteredSinglePoseTracker, gramods::gmTrack::RegisteredMultiPoseTracker, gramods::gmTrack::OpenVRPoseTracker, gramods::gmTrack::OpenVRButtonsTracker, gramods::gmTrack::OpenVRAnalogsTracker, gramods::gmTrack::OffsetSinglePoseTracker, gramods::gmTrack::MultiToSinglePoseTracker, gramods::gmTrack::Controller, gramods::gmTrack::ButtonsMapper, gramods::gmTrack::AnalogsMapper, gramods::gmSound::Multilateration, gramods::gmGraphics::YuvDecodeTexture, gramods::gmGraphics::Window, gramods::gmGraphics::ViewTexture, gramods::gmGraphics::ViewMixView, gramods::gmGraphics::ViewBase, gramods::gmGraphics::TransitionCoordinatesMapper, gramods::gmGraphics::TrackedViewpoint, gramods::gmGraphics::TiledView, gramods::gmGraphics::TextureWarpedView, gramods::gmGraphics::TextureRenderer, gramods::gmGraphics::TextureProjectedView, gramods::gmGraphics::SphereRenderer, gramods::gmGraphics::SpatialSphericalView, gramods::gmGraphics::SdlWindow, gramods::gmGraphics::SaveView, gramods::gmGraphics::RemapperView, gramods::gmGraphics::PosedSphericalView, gramods::gmGraphics::MultiscopicView, gramods::gmGraphics::MultiscopicTextureSplitter, gramods::gmGraphics::MultiscopicTextureMultiplexer, gramods::gmGraphics::HmdView, gramods::gmGraphics::Group, gramods::gmGraphics::GeometryCorrectedProjectorView, gramods::gmGraphics::ChromaKeyView, and gramods::gmGraphics::ChromaKeyTexture.


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