vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
APDYNAMICART::Controller Class Referenceabstract

#include <Controller.h>

Inheritance diagram for APDYNAMICART::Controller:
vrecko::Ability vrecko::BaseClass APDYNAMICART::Ctrl_Attractor APDYNAMICART::Ctrl_FreeHandPainting APDYNAMICART::Ctrl_PerlinLines APDYNAMICART::Ctrl_PolyhedraSculptures APDYNAMICART::Ctrl_StringSculptures APDYNAMICART::Ctrl_MotionVisualization

Public Member Functions

 Controller (const char *controllerID, const char *description, PoAType type)
 
 ~Controller ()
 
virtual void activateTool ()=0
 Called by Dynamic Art Environment (DAEnvironment) when user press "useTool" button. More...
 
virtual void clear ()=0
 clear controller - called before new scene is created or loaded More...
 
void clearAllPoAs ()
 
virtual void createMenuStructure (osg::ref_ptr< vreckoUtils::MenuBase > parentMenu) const =0
 Creates structure of menu items for this Controller. More...
 
virtual void deactivateTool ()=0
 Called by Dynamic Art Environment (DAEnvironment) when user release "useTool" button. More...
 
virtual void debugKeyPressed ()=0
 Called by Dynamic Art Environment (DAEnvironment) when user release "Debug Purpose" Key (F11 by default) More...
 
const char * getDescription (void) const
 
const PoAType getType (void) const
 Returns type of this controller. More...
 
const char * getPoAsName (void) const
 Return name of ... More...
 
float getDaareaScale () const
 scale of dynamic art area More...
 
virtual void guiItemClicked (const char *itemID)=0
 Called when user click on some item of GUI - icon, slider, menu item, ... More...
 
virtual void initialize (DAEnvironment *p_dae, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters=NULL)=0
 
bool isEmpty ()
 
virtual void load (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList *poaNodeList)=0
 Load controller parameters and all PoAs from XML nodes. More...
 
virtual void guiSliderChanged (const char *sliderID, float sliderPos)=0
 Called when user moves with some GUI slider (menu sliders counts as well) More...
 
void preInitialize ()
 
void postInitialize ()
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
void removePoA (PoA *toRemove)
 Remove single PoA. More...
 
virtual void save (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *Document, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *controllerNode)=0
 save controller settings (if there are some) and all PoAs to XML node More...
 
virtual DAToolType getNextToolType ()
 set pointer to Dynamic Art Environment ability More...
 
virtual void switchTools (DAToolType newType)
 switching between tools More...
 
virtual void turnOn ()=0
 Called when Dynamic Art Environment (DAEnvironment) context is switched to this controller. More...
 
virtual void turnOff (void)=0
 Called when Dynamic Art Environment (DAEnvironment) context is switched to another controller. More...
 
virtual void update ()=0
 Scheduled for per-frame updates. More...
 
std::vector< ref_ptr_PoA > * getPoAs ()
 
virtual void setColour (osg::Vec4 newColour)
 
virtual void switchGUIVisibility ()=0
 
- Public Member Functions inherited from vrecko::Ability
virtual ~Ability ()
 copy constructor More...
 
const std::string & getName () const
 Returns the ability name. More...
 
void setPluginName (const char *pName)
 Sets the plugin name. More...
 
const std::string & getPluginName (void) const
 Returns the plugin name. More...
 
const std::string & getID (void) const
 Returns ability the identification string. More...
 
void setID (const char *pID)
 (Internal usage, most people should not need to use it.) Sets the ability ID. More...
 
virtual void clean (void)
 
void setOwner (BaseClass *owner)
 (Internal usage, most people should not need to use it.) Sets ability owner. *l This method is called automatically in World::createAbility(), so one would (almost?) never want to use it directly. More...
 
BaseClassgetOwner (void)
 Returns the ability owner. More...
 
virtual ParameterVectorgetParameterVector (void)
 Return vector of the parameter description. More...
 
bool isUpdated (void)
 Set update flag. More...
 
virtual const std::string & getSenderString (void)
 Returns the identification string of sender. More...
 
- Public Member Functions inherited from vrecko::BaseClass
 BaseClass (const char *startingSenderString)
 The main constructor. More...
 
 BaseClass (BaseClass &bc)
 Copy constructor. Probably not really used. More...
 
virtual ~BaseClass ()
 Destructor. More...
 
virtual bool initialize (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters=NULL)
 Core initialization. More...
 
virtual bool initializeFromString (const char *xmlString)
 Helper method that allows to initialize ability from a XML-formatted string. More...
 
virtual
XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode
saveXMLParameters (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *)
 Save current setting into a XML node. More...
 
bool inputPresent (const std::string &name)
 Returns true if input pin (not request inputpin ) with given name is present. More...
 
bool outputPresent (const std::string &name)
 Returns true if output pin (not request output pin) with given name is present. More...
 
void addInputPin (InputPinBase *pin)
 Adds an input pin. More...
 
void removeInputPin (InputPinBase *pin)
 Removes an input pin. More...
 
void addOutputPin (OutputPinBase *pin)
 Adds an output pin. More...
 
void removeOutputPin (OutputPinBase *pin)
 Removes and output pin. More...
 
void addRequestInputPin (RequestInputPinBase *pin)
 Adds a request input pin. More...
 
void removeRequestInputPin (RequestInputPinBase *pin)
 Removes a request input pin. More...
 
void addRequestOutputPin (RequestOutputPinBase *pin)
 Adds a request output pin. More...
 
void removeRequestOutputPin (RequestOutputPinBase *pin)
 Removes a request output pin. More...
 
bool addNotification (BaseClass *receiver, unsigned long notificationTypes)
 Registers an observer that will be notified if a specific change occurs. More...
 
bool removeNotification (BaseClass *receiver, unsigned long notificationTypes=NOTIFICATION_ALL)
 Unregisters a previously registered observer. More...
 
virtual void processEvent (const std::string &input_name, VreckoMessage *pMessage)
 Internal method for processing the events. More...
 
virtual VreckoMessageprocessRequest (const std::string &request_input_name, VreckoMessage *pMessage)
 Internal method for processing the requests. More...
 
void reportError (const std::string &error)
 Print error message. More...
 
void setPriority (long int pr)
 Sets the priority. (Possible problems - read the full description for more info) More...
 
long int getPriority (void) const
 Returns current object priority. More...
 
void setAttribute (const std::string &attr_name, int attr_value)
 Sets an attribute value. More...
 
int getAttribute (const std::string &attr_name)
 Returns attribute value. More...
 
int getAttribute (const char *attr_name)
 Returns attribute value. More...
 
void deleteAttribute (const std::string &attr_name)
 Delete an attribute. More...
 
void setSceneFile (const std::string &sceneFileName)
 Set the name of the file this component was in (and possibly will be saved to). More...
 
const std::string & getSceneFile () const
 Get the name of the file this component was in. More...
 
virtual bool loadXMLParameters (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
virtual bool loadXMLParameters (const char *xmlString)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
InputPinBasegetInputPin (const char *strName)
 Returns pointer to an input pin with specified name. More...
 
OutputPinBasegetOutputPin (const char *strName)
 Returns pointer to an output pin with specified name. More...
 
RequestInputPinBasegetRequestInputPin (const char *strName)
 Returns pointer to an request input pin with specified name. More...
 
RequestOutputPinBasegetRequestOutputPin (const char *strName)
 Returns pointer to an input pin with specified name. More...
 

Static Public Member Functions

static const PoAType getType (std::string type)
 

Protected Member Functions

void initTools ()
 Init available tools (filled in _tools) More...
 
- Protected Member Functions inherited from vrecko::Ability
 Ability (const char *theAbilityName)
 
- Protected Member Functions inherited from vrecko::BaseClass
bool sendNotifications (unsigned long notificationType, void *notificationData)
 
virtual int processNotification (BaseClass *sender, unsigned long notificationType, void *notificationData)
 Process an incoming notification. More...
 
IOPinBasefindPinInList (const char *strName, PinList *pinList)
 Internal method to find a given pin in a given list. More...
 

Protected Attributes

const char * _description
 users friendly name of controller / context... such as "Free-hand Painting". Appears in menus. More...
 
const PoAType _type
 Type of this controller - type of contained PoAs. More...
 
const char * _poasName
 
EnvironmentObject_artArea
 Art Area = owner of this ability. More...
 
DAEnvironment_daEnvironment
 pointer to DA environment More...
 
std::vector< ref_ptr_PoA > * _poas
 vector containing all PoAs of this controller More...
 
DATool_actualTool
 pointer to actual tool More...
 
DATools _tools
 Available tools. More...
 
- Protected Attributes inherited from vrecko::Ability
BaseClasspOwner
 Pointer to the owner of this ability. (Almost?) always an EnvironmentObject class. More...
 
std::vector< std::string > parameterString
 
bool updated
 Update flag. It is used for save. More...
 
- Protected Attributes inherited from vrecko::BaseClass
AttributeMap attribute
 
MTReadWriteLock attributeLock
 
std::string senderString
 
MTLock notificationsLock
 
std::vector
< NOTIFICATION_DESCRIPTION
notifications
 
long int priority
 
const std::string * sceneFile
 
PinList inputPinsList
 
PinList outputPinsList
 
PinList requestInputPinsList
 
PinList requestOutputPinsList
 

Additional Inherited Members

- Public Types inherited from vrecko::Ability
typedef std::vector
< ParameterStruct
ParameterVector
 Vector of the description of parameters. More...
 
- Protected Types inherited from vrecko::BaseClass
typedef std::map< std::string,
int > 
AttributeMap
 Attributes. More...
 
typedef std::vector
< osg::ref_ptr< IOPinBase > > 
PinList
 

Constructor & Destructor Documentation

APDYNAMICART::Controller::Controller ( const char *  controllerID,
const char *  description,
PoAType  type 
)
Parameters
controllerIDability name - serves as ID, must be unique for each controller. Without space (due to xml parsing).
description- user friendly name of this context / controller - may contain spaces, ...
typetype of PoAs controlled by this controller.
Returns
APDYNAMICART::Controller::~Controller ( )

Member Function Documentation

virtual void APDYNAMICART::Controller::activateTool ( )
pure virtual

Called by Dynamic Art Environment (DAEnvironment) when user press "useTool" button.

do whatever is necessary before activation of tool

  • e.g. create new PoA
  • set "link" between Tool and PoA(s)

activate current tool (or multiple tools)

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_PolyhedraSculptures, and APDYNAMICART::Ctrl_PerlinLines.

void APDYNAMICART::Controller::clear ( void  )
pure virtual
void APDYNAMICART::Controller::clearAllPoAs ( )
virtual void APDYNAMICART::Controller::createMenuStructure ( osg::ref_ptr< vreckoUtils::MenuBase parentMenu) const
pure virtual

Creates structure of menu items for this Controller.

Returns
xml description of menu items as string

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_PerlinLines, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::deactivateTool ( )
pure virtual

Called by Dynamic Art Environment (DAEnvironment) when user release "useTool" button.

do whatever is necessary before deactivation of tool deactivate current tool (or multiple tools)

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::debugKeyPressed ( )
pure virtual

Called by Dynamic Art Environment (DAEnvironment) when user release "Debug Purpose" Key (F11 by default)

do whatever helps you...

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.

float APDYNAMICART::Controller::getDaareaScale ( ) const
inline

scale of dynamic art area

const char* APDYNAMICART::Controller::getDescription ( void  ) const
inline
APDYNAMICART::DAToolType APDYNAMICART::Controller::getNextToolType ( )
virtual

set pointer to Dynamic Art Environment ability

called from _daEnvironment during adding controller to environment If you need more control, override this method in your inherited class.

Warning
: When overriding, don't forget to call parent function first in order to correct variable initialize!

Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, and APDYNAMICART::Ctrl_PerlinLines.

std::vector<ref_ptr_PoA>* APDYNAMICART::Controller::getPoAs ( )
inline
const char* APDYNAMICART::Controller::getPoAsName ( void  ) const
inline

Return name of ...

const PoAType APDYNAMICART::Controller::getType ( void  ) const
inline

Returns type of this controller.

const PoAType APDYNAMICART::Controller::getType ( std::string  type)
static
virtual void APDYNAMICART::Controller::guiItemClicked ( const char *  itemID)
pure virtual

Called when user click on some item of GUI - icon, slider, menu item, ...

Parameters
itemIDcontains 'name' of menu item.

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_StringSculptures, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::guiSliderChanged ( const char *  sliderID,
float  sliderPos 
)
pure virtual

Called when user moves with some GUI slider (menu sliders counts as well)

Parameters
sliderIDcontains 'name' of menu item
valuecontains current value of slider

Implemented in APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::initialize ( DAEnvironment p_dae,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  parameters = NULL 
)
pure virtual
void APDYNAMICART::Controller::initTools ( )
protected

Init available tools (filled in _tools)

bool APDYNAMICART::Controller::isEmpty ( )
inline
Returns
true if controller have 0 PoAs, false elsewhere
virtual void APDYNAMICART::Controller::load ( XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  parametersNode,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList *  poaNodeList 
)
pure virtual
void APDYNAMICART::Controller::postInitialize ( void  )
virtual

OBSOLETE METHOD, kept for backwards compatibility.

The preInitialize(), loadXMLParameters() and postInitialize() methods were replaced in 2011 by a single method initialize().

Set proper pointer

Schedule controller to regular updates - all loaded controllers DO their updates all the time

Reimplemented from vrecko::BaseClass.

Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, and APDYNAMICART::Ctrl_PerlinLines.

void APDYNAMICART::Controller::preInitialize ( void  )
virtual

This methods provide basic controller initialization. If you need more control, override them in your inherited class.

Warning
: When overriding, don't forget to call parent function first in order to correct variable initialize!

Reimplemented from vrecko::BaseClass.

Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, and APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Controller::removePoA ( PoA toRemove)

Remove single PoA.

virtual void APDYNAMICART::Controller::save ( XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  Document,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  controllerNode 
)
pure virtual
void APDYNAMICART::Controller::setColour ( osg::Vec4  newColour)
virtual
void APDYNAMICART::Controller::switchTools ( DAToolType  newType)
virtual
virtual void APDYNAMICART::Controller::turnOff ( void  )
pure virtual

Called when Dynamic Art Environment (DAEnvironment) context is switched to another controller.

do whatever is necessary when this controller stops (pause)

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::turnOn ( )
pure virtual

Called when Dynamic Art Environment (DAEnvironment) context is switched to this controller.

do whatever is necessary when this controller starts

Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.

virtual void APDYNAMICART::Controller::update ( )
pure virtual

Member Data Documentation

DATool* APDYNAMICART::Controller::_actualTool
protected

pointer to actual tool

EnvironmentObject* APDYNAMICART::Controller::_artArea
protected

Art Area = owner of this ability.

DAEnvironment* APDYNAMICART::Controller::_daEnvironment
protected

pointer to DA environment

const char* APDYNAMICART::Controller::_description
protected

users friendly name of controller / context... such as "Free-hand Painting". Appears in menus.

std::vector<ref_ptr_PoA>* APDYNAMICART::Controller::_poas
protected

vector containing all PoAs of this controller

const char* APDYNAMICART::Controller::_poasName
protected

ID for PoA (e.g. Attractor, BrushStroke, MotionTrail,..). It's use as a XML tag when loading/saving PoAs it should be unique for each controller and contain no spaces (due to xml parsing)

DATools APDYNAMICART::Controller::_tools
protected

Available tools.

const PoAType APDYNAMICART::Controller::_type
protected

Type of this controller - type of contained PoAs.


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