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

controller of Brush Stroke PoA More...

#include <Ctrl_FreeHandPainting.h>

Inheritance diagram for APDYNAMICART::Ctrl_FreeHandPainting:
APDYNAMICART::Controller vrecko::Ability vrecko::BaseClass APDYNAMICART::Ctrl_MotionVisualization

Public Member Functions

 Ctrl_FreeHandPainting ()
 warning IDs of controllers must contain NO spaces (because of XML parsing) More...
 
 Ctrl_FreeHandPainting (const char *abName, const char *contextName, PoAType type)
 
 ~Ctrl_FreeHandPainting ()
 
void activateTool ()
 Called by Dynamic Art Environment (DAEnvironment) when user press "useTool" button. More...
 
void clear ()
 clear controller - called before new scene is created or loaded More...
 
void createMenuStructure (osg::ref_ptr< vreckoUtils::MenuBase > parentMenu) const
 Creates structure of menu items for this Controller. More...
 
osg::ref_ptr< PoAcreatePoA ()
 Crete new instance of BrushStroke object. More...
 
void deactivateTool ()
 Called by Dynamic Art Environment (DAEnvironment) when user release "useTool" button. More...
 
void debugKeyPressed ()
 Called by Dynamic Art Environment (DAEnvironment) when user release "Debug Purpose" Key (F11 by default) More...
 
DAToolType getNextToolType ()
 set pointer to Dynamic Art Environment ability More...
 
double getPaintingDuration ()
 return how long the painting takes More...
 
void guiItemClicked (const char *itemID)
 Called when user click on some item of GUI - icon, slider, menu item, ... More...
 
void guiSliderChanged (const char *sliderID, float sliderPos)
 Called when user moves with some GUI slider (menu sliders counts as well) More...
 
int importScene (const string &fileName)
 Import scene from old Modeller plug-in. More...
 
void initialize (DAEnvironment *p_dae, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters=NULL)
 
void load (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList *poaNodeList)
 Load controller parameters and all PoAs from XML nodes. More...
 
void processEvent (const std::string &input_name, void *value)
 
void save (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *Document, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *controllerNode)
 save controller settings (if there are some) and all PoAs to XML node More...
 
void setColour (osg::Vec4 newColour)
 
void switchGUIVisibility ()
 
void switchTools (DAToolType newType)
 switching between tools More...
 
void turnOn ()
 Called when Dynamic Art Environment (DAEnvironment) context is switched to this controller. More...
 
void turnOff ()
 Called when Dynamic Art Environment (DAEnvironment) context is switched to another controller. More...
 
void update ()
 Scheduled for per-frame updates. More...
 
- Public Member Functions inherited from APDYNAMICART::Controller
 Controller (const char *controllerID, const char *description, PoAType type)
 
 ~Controller ()
 
void clearAllPoAs ()
 
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...
 
bool isEmpty ()
 
void removePoA (PoA *toRemove)
 Remove single PoA. More...
 
std::vector< ref_ptr_PoA > * getPoAs ()
 
- 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 (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...
 

Protected Member Functions

std::string getShowControlPointsString () const
 
bool loadXMLParameters (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
void preInitialize ()
 
void postInitialize ()
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
void playback (double _playbackTime)
 
string getPlaybackTimeText ()
 
void recomputeStrokesTimes ()
 
- Protected Member Functions inherited from APDYNAMICART::Controller
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

bool _firstTimeUpdate
 solve initialization timing problems... first time update is used as last part of initialization, More...
 
BrushPtr _brush
 default brush More...
 
bool _showControlPoints
 Flag determining if control points should be visualized by SimpleBoxes. More...
 
ToolBrush_toolBrush
 
ToolTongs_toolTongs
 common tool for basic manipulation with PoAs More...
 
ToolEraser_toolEraser
 tool for deleting strokes More...
 
bool _playbackActive
 is playback active? More...
 
PlaybackType _playbackType
 type of playback More...
 
double _playbackTime
 actual playback time More...
 
time_t _lastPlaybackTime
 last actualized playback time More...
 
time_t _nowTime
 
APGUI::Slider_playbackSlider
 pointer to slider GUI item More...
 
APGUI::Icon_playbackIcon
 
APGUI::Menu_menuAbility
 
- Protected Attributes inherited from APDYNAMICART::Controller
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...
 
- Static Public Member Functions inherited from APDYNAMICART::Controller
static const PoAType getType (std::string type)
 
- Protected Types inherited from vrecko::BaseClass
typedef std::map< std::string,
int > 
AttributeMap
 Attributes. More...
 
typedef std::vector
< osg::ref_ptr< IOPinBase > > 
PinList
 

Detailed Description

controller of Brush Stroke PoA

Controls Brush Strokes PoA manage tools, brushes definitions and other stuff

Author
Jiri Chmelik
Date
2010-...

Constructor & Destructor Documentation

APDYNAMICART::Ctrl_FreeHandPainting::Ctrl_FreeHandPainting ( )

warning IDs of controllers must contain NO spaces (because of XML parsing)

APDYNAMICART::Ctrl_FreeHandPainting::Ctrl_FreeHandPainting ( const char *  abName,
const char *  contextName,
PoAType  type 
)
APDYNAMICART::Ctrl_FreeHandPainting::~Ctrl_FreeHandPainting ( )

Member Function Documentation

void APDYNAMICART::Ctrl_FreeHandPainting::activateTool ( )
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)

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::clear ( void  )
virtual

clear controller - called before new scene is created or loaded

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::createMenuStructure ( osg::ref_ptr< vreckoUtils::MenuBase parentMenu) const
virtual

Creates structure of menu items for this Controller.

Returns
xml description of menu items as string

Implements APDYNAMICART::Controller.

osg::ref_ptr< PoA > APDYNAMICART::Ctrl_FreeHandPainting::createPoA ( )

Crete new instance of BrushStroke object.

Creates new Brush Stroke object, set pointers, adds it to scene.

Returns
reference pointer to new object
void APDYNAMICART::Ctrl_FreeHandPainting::deactivateTool ( )
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)

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::debugKeyPressed ( )
virtual

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

do whatever helps you...

Implements APDYNAMICART::Controller.

APDYNAMICART::DAToolType APDYNAMICART::Ctrl_FreeHandPainting::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 from APDYNAMICART::Controller.

double APDYNAMICART::Ctrl_FreeHandPainting::getPaintingDuration ( )

return how long the painting takes

More possibilities how to compute exists...

Returns
how long the painting takes
std::string APDYNAMICART::Ctrl_FreeHandPainting::getPlaybackTimeText ( )
protected
std::string APDYNAMICART::Ctrl_FreeHandPainting::getShowControlPointsString ( ) const
inlineprotected
void APDYNAMICART::Ctrl_FreeHandPainting::guiItemClicked ( const char *  itemID)
virtual

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

Parameters
itemIDcontains 'name' of menu item.

Implements APDYNAMICART::Controller.

void APDYNAMICART::Ctrl_FreeHandPainting::guiSliderChanged ( const char *  sliderID,
float  sliderPos 
)
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

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

int APDYNAMICART::Ctrl_FreeHandPainting::importScene ( const string &  fileName)

Import scene from old Modeller plug-in.

void APDYNAMICART::Ctrl_FreeHandPainting::initialize ( DAEnvironment p_dae,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  parameters = NULL 
)
virtual
void APDYNAMICART::Ctrl_FreeHandPainting::load ( XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  parametersNode,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList *  poaNodeList 
)
virtual

Load controller parameters and all PoAs from XML nodes.

Implements APDYNAMICART::Controller.

bool APDYNAMICART::Ctrl_FreeHandPainting::loadXMLParameters ( XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  )
protectedvirtual

OBSOLETE METHOD, kept for backwards compatibility.

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

Parameters
*(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode)
Returns
(bool)

Reimplemented from vrecko::BaseClass.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::playback ( double  _playbackTime)
protected
void APDYNAMICART::Ctrl_FreeHandPainting::postInitialize ( void  )
protectedvirtual

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 APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::preInitialize ( void  )
protectedvirtual

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 APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::processEvent ( const std::string &  input_name,
void *  value 
)
void APDYNAMICART::Ctrl_FreeHandPainting::recomputeStrokesTimes ( )
protected
void APDYNAMICART::Ctrl_FreeHandPainting::save ( XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  Document,
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  controllerNode 
)
virtual

save controller settings (if there are some) and all PoAs to XML node

Implements APDYNAMICART::Controller.

void APDYNAMICART::Ctrl_FreeHandPainting::setColour ( osg::Vec4  newColour)
virtual

Reimplemented from APDYNAMICART::Controller.

void APDYNAMICART::Ctrl_FreeHandPainting::switchGUIVisibility ( )
virtual
void APDYNAMICART::Ctrl_FreeHandPainting::switchTools ( DAToolType  newType)
virtual

switching between tools

  • _actualTool->turnOff()
  • switch tools - do whatever is necessary
  • _actualTool->turnOn()

Reimplemented from APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::turnOff ( )
virtual

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

do whatever is necessary when this controller stops (pause)

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::turnOn ( )
virtual

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

do whatever is necessary when this controller starts

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

void APDYNAMICART::Ctrl_FreeHandPainting::update ( )
virtual

Scheduled for per-frame updates.

Implements APDYNAMICART::Controller.

Reimplemented in APDYNAMICART::Ctrl_MotionVisualization.

Member Data Documentation

BrushPtr APDYNAMICART::Ctrl_FreeHandPainting::_brush
protected

default brush

bool APDYNAMICART::Ctrl_FreeHandPainting::_firstTimeUpdate
protected

solve initialization timing problems... first time update is used as last part of initialization,

time_t APDYNAMICART::Ctrl_FreeHandPainting::_lastPlaybackTime
protected

last actualized playback time

APGUI::Menu* APDYNAMICART::Ctrl_FreeHandPainting::_menuAbility
protected
time_t APDYNAMICART::Ctrl_FreeHandPainting::_nowTime
protected
bool APDYNAMICART::Ctrl_FreeHandPainting::_playbackActive
protected

is playback active?

APGUI::Icon* APDYNAMICART::Ctrl_FreeHandPainting::_playbackIcon
protected
APGUI::Slider* APDYNAMICART::Ctrl_FreeHandPainting::_playbackSlider
protected

pointer to slider GUI item

double APDYNAMICART::Ctrl_FreeHandPainting::_playbackTime
protected

actual playback time

PlaybackType APDYNAMICART::Ctrl_FreeHandPainting::_playbackType
protected

type of playback

bool APDYNAMICART::Ctrl_FreeHandPainting::_showControlPoints
protected

Flag determining if control points should be visualized by SimpleBoxes.

ToolBrush* APDYNAMICART::Ctrl_FreeHandPainting::_toolBrush
protected
ToolEraser* APDYNAMICART::Ctrl_FreeHandPainting::_toolEraser
protected

tool for deleting strokes

ToolTongs* APDYNAMICART::Ctrl_FreeHandPainting::_toolTongs
protected

common tool for basic manipulation with PoAs


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