vizkit3d
Classes | Public Slots | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | Properties | Friends | List of all members
vizkit3d::VizPluginBase Class Referenceabstract

#include <Vizkit3DPlugin.hpp>

Inheritance diagram for vizkit3d::VizPluginBase:
vizkit3d::EnvPluginBase vizkit3d::Vizkit3DPlugin< T > vizkit3d::VizPluginAdapter< T >

Classes

class  CallbackAdapter
 

Public Slots

virtual bool isPluginEnabled ()
 
virtual void setPluginEnabled (bool enabled)
 
virtual const QString getPluginName () const
 
virtual void setPluginName (const QString &name)
 
virtual void click (float x, float y)
 
QObject * getRubyAdapterCollection ()
 
void setKeepOldData (bool value)
 
bool isKeepOldDataEnabled ()
 
virtual void clearVisualization ()
 
void deleteOldData ()
 
int getMaxOldData () const
 

Signals

void propertyChanged (QString property_name)
 
void childrenChanged ()
 
void pluginActivityChanged (bool)
 
void clicked (float x, float y)
 
void picked (float x, float y, float z)
 

Public Member Functions

 VizPluginBase (QObject *parent=NULL)
 
virtual ~VizPluginBase ()
 
Vizkit3DWidgetgetWidget () const
 
virtual bool isDirty () const
 
void setDirty ()
 
osg::ref_ptr< osg::Group > getVizNode () const
 
osg::ref_ptr< osg::Group > getRootNode () const
 
std::vector< QDockWidget * > getDockWidgets ()
 
void setMaxOldData (int value)
 
void setPose (const QVector3D &position, const QQuaternion &orientation)
 
QStringList getVisualizationFrames () const
 
QString getVisualizationFrame () const
 
void setVisualizationFrameFromList (const QStringList &frames)
 
void setVisualizationFrame (const QString &frame)
 
double getScale () const
 
void setScale (double scale)
 

Protected Member Functions

virtual void updateMainNode (osg::Node *node)=0
 
virtual osg::ref_ptr< osg::Node > createMainNode ()
 
virtual void createDockWidgets ()
 
virtual osg::ref_ptr< osg::Node > cloneCurrentViz ()
 

Protected Attributes

boost::mutex updateMutex
 
std::vector< QDockWidget * > dockWidgets
 
VizPluginRubyAdapterCollection adapterCollection
 

Properties

QString vizkit3d_plugin_name
 
bool enabled
 
bool KeepOldData
 
int MaxOldData
 
QStringList frame
 
double scale
 

Friends

class PickHandler
 

Detailed Description

Interface class for all visualization plugins based on vizkit3d. All plugins provide an osg::Group() node, which can be added to an osg render tree for visualisation using getMainNode().

The dirty handling works as such, that whenever the class is flagged dirty, the virtual updateMainNode() function will be called when it is safe to modify the node. Any plugin needs to implement this function to update the visualisation. The osg node must not be modified at any other time.

The updateMainNode() is guarded by a mutex, so it is generally a good idea to guard any updates to the internal state of the plugin, that is required within the updateMainNode(). Note that updateMainNode() is most likely called from a different thread context than the rest.

Constructor & Destructor Documentation

VizPluginBase::VizPluginBase ( QObject *  parent = NULL)
VizPluginBase::~VizPluginBase ( )
virtual

Member Function Documentation

void vizkit3d::VizPluginBase::childrenChanged ( )
signal

Must be emitted when children are added/removed from this plugin

void VizPluginBase::clearVisualization ( )
virtualslot

Clears the visualization of the plugin

void VizPluginBase::click ( float  x,
float  y 
)
virtualslot

Emits signal 'clicked(float, float)' if the plugin has a Vizkit3DWidget as an ancestor.

void vizkit3d::VizPluginBase::clicked ( float  x,
float  y 
)
signal

Signals when this plugin has been clicked. x and y are in Vizkit3DWidget coordinates. That is the container widget of the OSG viewer and the property browser.

osg::ref_ptr< osg::Node > VizPluginBase::cloneCurrentViz ( )
protectedvirtual

override this method to provide your own clone for the current visualization

void VizPluginBase::createDockWidgets ( )
protectedvirtual

override this method to provide your own QDockWidgets. The QDockWidgets will automatically attached to the main window.

osg::ref_ptr< osg::Node > VizPluginBase::createMainNode ( )
protectedvirtual

override this method to provide your own main node.

Returns
node derived from osg::Group

Reimplemented in vizkit3d::VizPluginAdapter< T >.

void VizPluginBase::deleteOldData ( )
slot

deletes all copies of the osg graph which were genereted by keepCurrentViz

std::vector< QDockWidget * > VizPluginBase::getDockWidgets ( )
Returns
a vector of QDockWidgets provided by this class.
int vizkit3d::VizPluginBase::getMaxOldData ( ) const
inlineslot
const QString VizPluginBase::getPluginName ( ) const
virtualslot
Returns
the name of the plugin
osg::ref_ptr< osg::Group > VizPluginBase::getRootNode ( ) const
QObject * vizkit3d::VizPluginBase::getRubyAdapterCollection ( )
slot
Returns
an instance of the ruby adapter collection.
double VizPluginBase::getScale ( ) const

Returns the scale of the plugin (1.0 by default)

QString VizPluginBase::getVisualizationFrame ( ) const

Returns the frame at which this plugin is attached

QStringList VizPluginBase::getVisualizationFrames ( ) const

Returns the list of available visualization frames

It is used for the relevant Q_PROPERTY to get a combobox

osg::ref_ptr< osg::Group > VizPluginBase::getVizNode ( ) const
Returns
a pointer to the internal Group that is used to maintain the plugin's nodes
Vizkit3DWidget * VizPluginBase::getWidget ( ) const

The underlying Vizkit3D Widget

May be NULL if the plugin is e.g. built as a child of another plugin

bool VizPluginBase::isDirty ( ) const
virtual
Returns
true if the plugins internal state has been updated
bool VizPluginBase::isKeepOldDataEnabled ( )
slot
bool VizPluginBase::isPluginEnabled ( )
virtualslot
Returns
true if plugin is enabled
void vizkit3d::VizPluginBase::picked ( float  x,
float  y,
float  z 
)
signal

Signals when this plugin has been clicked. x,y,z are in world coordinates.

void vizkit3d::VizPluginBase::pluginActivityChanged ( bool  )
signal

will emitted if the plugin activity changes

void vizkit3d::VizPluginBase::propertyChanged ( QString  property_name)
signal

must be emitted if a property of an inherited plugin changes

void VizPluginBase::setDirty ( )

mark the internal state as modified

void VizPluginBase::setKeepOldData ( bool  value)
slot

clones the current osg graphs and adds it to the root node. this is usefull to keep visualisation over time

void VizPluginBase::setMaxOldData ( int  value)
void VizPluginBase::setPluginEnabled ( bool  enabled)
virtualslot
Parameters
enabledset plugin enabled or disabled
void VizPluginBase::setPluginName ( const QString &  name)
virtualslot
void VizPluginBase::setPose ( const QVector3D &  position,
const QQuaternion &  orientation 
)
void VizPluginBase::setScale ( double  scale)

Sets the scale of the plugin (1.0 by default)

void VizPluginBase::setVisualizationFrame ( const QString &  frame)

Set the name of the frame which is the origin of this plugin

void VizPluginBase::setVisualizationFrameFromList ( const QStringList &  frames)
virtual void vizkit3d::VizPluginBase::updateMainNode ( osg::Node *  node)
protectedpure virtual

override this function to update the visualisation.

Parameters
nodecontains a point to the node which can be modified.

Implemented in vizkit3d::VizPluginAdapter< T >.

Friends And Related Function Documentation

friend class PickHandler
friend

Member Data Documentation

VizPluginRubyAdapterCollection vizkit3d::VizPluginBase::adapterCollection
protected
std::vector<QDockWidget*> vizkit3d::VizPluginBase::dockWidgets
protected
boost::mutex vizkit3d::VizPluginBase::updateMutex
protected

lock this mutex outside updateMainNode if you update the internal state of the visualization.

Property Documentation

bool vizkit3d::VizPluginBase::enabled
readwrite
QStringList vizkit3d::VizPluginBase::frame
readwrite
bool vizkit3d::VizPluginBase::KeepOldData
readwrite
int vizkit3d::VizPluginBase::MaxOldData
readwrite
double vizkit3d::VizPluginBase::scale
readwrite
QString vizkit3d::VizPluginBase::vizkit3d_plugin_name
read

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