vrecko
virtual reality framework
|
#include <Controller.h>
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... | |
BaseClass * | getOwner (void) |
Returns the ability owner. More... | |
virtual ParameterVector * | getParameterVector (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 VreckoMessage * | processRequest (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... | |
InputPinBase * | getInputPin (const char *strName) |
Returns pointer to an input pin with specified name. More... | |
OutputPinBase * | getOutputPin (const char *strName) |
Returns pointer to an output pin with specified name. More... | |
RequestInputPinBase * | getRequestInputPin (const char *strName) |
Returns pointer to an request input pin with specified name. More... | |
RequestOutputPinBase * | getRequestOutputPin (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... | |
IOPinBase * | findPinInList (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 | |
BaseClass * | pOwner |
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 |
APDYNAMICART::Controller::Controller | ( | const char * | controllerID, |
const char * | description, | ||
PoAType | type | ||
) |
controllerID | ability 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, ... |
type | type of PoAs controlled by this controller. |
APDYNAMICART::Controller::~Controller | ( | ) |
|
pure virtual |
Called by Dynamic Art Environment (DAEnvironment) when user press "useTool" button.
do whatever is necessary before activation of tool
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.
|
pure virtual |
clear controller - called before new scene is created or loaded
Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_PolyhedraSculptures, and APDYNAMICART::Ctrl_PerlinLines.
void APDYNAMICART::Controller::clearAllPoAs | ( | ) |
|
pure virtual |
Creates structure of menu items for this Controller.
Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_PerlinLines, and APDYNAMICART::Ctrl_PolyhedraSculptures.
|
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.
|
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.
|
inline |
scale of dynamic art area
|
inline |
|
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.
Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, and APDYNAMICART::Ctrl_PerlinLines.
|
inline |
|
inline |
Return name of ...
|
inline |
Returns type of this controller.
|
static |
|
pure virtual |
Called when user click on some item of GUI - icon, slider, menu item, ...
itemID | contains 'name' of menu item. |
Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_Attractor, APDYNAMICART::Ctrl_StringSculptures, and APDYNAMICART::Ctrl_PolyhedraSculptures.
|
pure virtual |
Called when user moves with some GUI slider (menu sliders counts as well)
sliderID | contains 'name' of menu item |
value | contains 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.
|
pure virtual |
|
protected |
Init available tools (filled in _tools)
|
inline |
|
pure virtual |
Load controller parameters and all PoAs from XML nodes.
Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.
|
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.
|
virtual |
This methods provide basic controller initialization. If you need more control, override them in your inherited class.
Reimplemented from vrecko::BaseClass.
Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, and APDYNAMICART::Ctrl_MotionVisualization.
|
pure virtual |
save controller settings (if there are some) and all PoAs to XML node
Implemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_Attractor, and APDYNAMICART::Ctrl_PolyhedraSculptures.
|
virtual |
|
pure virtual |
|
virtual |
switching between tools
Reimplemented in APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, and APDYNAMICART::Ctrl_PolyhedraSculptures.
|
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.
|
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.
|
pure virtual |
Scheduled for per-frame updates.
Reimplemented from vrecko::BaseClass.
Implemented in APDYNAMICART::Ctrl_MotionVisualization, APDYNAMICART::Ctrl_FreeHandPainting, APDYNAMICART::Ctrl_PerlinLines, APDYNAMICART::Ctrl_StringSculptures, APDYNAMICART::Ctrl_PolyhedraSculptures, and APDYNAMICART::Ctrl_Attractor.
|
protected |
pointer to actual tool
|
protected |
Art Area = owner of this ability.
|
protected |
pointer to DA environment
|
protected |
users friendly name of controller / context... such as "Free-hand Painting". Appears in menus.
|
protected |
vector containing all PoAs of this controller
|
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)
|
protected |
Available tools.
|
protected |
Type of this controller - type of contained PoAs.