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

spatial HSL Color Picker More...

#include <ColorPicker.h>

Inheritance diagram for APGUI::ColorPicker:
APGUI::GUI_Item vrecko::Ability vrecko::BaseClass

Public Member Functions

 ColorPicker ()
 
 ~ColorPicker ()
 
bool initialize (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode)
 Core initialization. More...
 
bool createVisuals ()
 create visual representation of color picker More...
 
void pointed (bool pointed)
 Called when user point with cursor (hand, usually) to this GUI element. More...
 
bool processAction (const int sensorNumber, const GUI_ACTION action, const bool pressed)
 process actions received from Input connector More...
 
void setState (GUI_ITEM_STATE newState)
 Set new state of item. More...
 
void update (void)
 This method is called periodically in case this instance is registered in Scheduler. More...
 
- Public Member Functions inherited from APGUI::GUI_Item
 GUI_Item (const char *abName)
 
 ~GUI_Item ()
 
string getGUIItemName ()
 
bool isDefaultStateActive ()
 returns if initial state of this item is active (false in most cases) More...
 
void show ()
 
void hide ()
 
void hideTooltip ()
 
void showTooltip ()
 
virtual void setColours (osg::Vec4 colourActive, osg::Vec4 colourDefault, osg::Vec4 colourHovered, osg::Vec4 colourPressed, osg::Vec4 colourDisabled)
 Called, when visual models have to be switched (user pointed or clicked on some GUI item) More...
 
- 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 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 void preInitialize (void)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
virtual void postInitialize (void)
 OBSOLETE METHOD, kept for backwards compatibility. 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...
 

Protected Member Functions

void createColorSphere (osg::Vec3 *pos, float radius, osg::Vec4 *colour)
 
void evoke ()
 show color picker, set-ut GUI controller More...
 
void RGBtoHSL (osg::Vec4 *p_source, osg::Vec3 *target)
 
void HSLtoPos (osg::Vec3 *p_hsl, osg::Vec3 *p_pos)
 
void PostoHSL (osg::Vec3 *p_pos, osg::Vec3 *p_hsl)
 
void HSLtoRGB (osg::Vec3 *source, osg::Vec4 *target)
 
osg::Vec3 limitPosition (osg::Vec3 handPosition)
 
bool linesIntersection (osg::Vec3 *p_point1, osg::Vec3 *p_orientation1, osg::Vec3 *p_point2, osg::Vec3 *p_orientation2, osg::Vec3 *result)
 
void revoke ()
 hide color picker, set-ut GUI controller More...
 
 DECLARE_INPUT (Evoke, MessageBool)
 
 DECLARE_INPUT (GUIItemClicked, MessageString)
 
 DECLARE_INPUT (Select, MessageBool)
 
 DECLARE_INPUT (ExternalDeactivation, MessageObjectID)
 
 DECLARE_REQUEST_INPUT (EvokeHSLColorPicker, MessageString, MessageBool)
 
 DECLARE_OUTPUT (Colour, MessageVec4)
 
 DECLARE_REQUEST_OUTPUT (SensorPosition, MessageInt, MessageVec3)
 
- Protected Member Functions inherited from APGUI::GUI_Item
osgText::Text * GUI_Item::createLabel ()
 
bool initialize (bool pointable=true, int sensor=-1)
 basic initialization - common for all GUI Item types 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 _isActive
 flag - is color picker active (visibile) right now? More...
 
bool _alwaysInMiddle
 not implemented at moment - always true. Says, if color picker should emerge at center of screen, or somewhere else More...
 
float _pickerHeight
 
float _pickerRadius
 
float spheresRadius
 
osg::Geode * osgGeode
 
float handSphereRadius
 
osg::ShapeDrawable * handShapeDraw
 
osg::Sphere * handShapeSphere
 
Interconnection_temporaryInterconnection
 
int _icontoDeactivate
 
- Protected Attributes inherited from APGUI::GUI_Item
string _name
 Identification of this GUI item. More...
 
string _receiver
 name of target object or ability More...
 
GUI_ITEM_STATE _state
 state of item - default, active, disabled, ... More...
 
GUI_Controller_controller
 pointer to GUI controller More...
 
osg::Group * _texts
 
osg::ref_ptr< GUI_Text_label
 Label - just a static label of Item. More...
 
osg::ref_ptr< GUI_Text_toolTip
 Tooltip - appears, when user hover with pointer over item for some time. Controller controls showing and hiding of tooltip. More...
 
EnvironmentObject_parent
 Pointer to parent object. More...
 
int _sensorNumber
 index of input device, that currently pressed GUI item More...
 
osg::ref_ptr
< osg::MatrixTransform > 
_itemTransform
 transformation node of GUI item - mainly for setting position of GUI Item relatively to the parent Environment Object More...
 
int _pointedCounter
 How many sensors is pointing to this GUI Item. More...
 
bool _pressed
 True, when user holds GUI-interaction button pressed, pointing on this GUI item. More...
 
bool _defaultStateActive
 flag, if this item should be in 'active' state after startup / reset More...
 
osg::Vec4 _colourActive
 
osg::Vec4 _colourDefault
 
osg::Vec4 _colourHovered
 
osg::Vec4 _colourPressed
 
osg::Vec4 _colourDisabled
 
std::vector< Interconnection * > _interconnections
 list of all created interconnections, 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
 

Detailed Description

spatial HSL Color Picker

Ability for simple adding HSL color picker to scene.

Author
Jiri Chmelik
Date
2011

Constructor & Destructor Documentation

APGUI::ColorPicker::ColorPicker ( )
APGUI::ColorPicker::~ColorPicker ( )

Member Function Documentation

void APGUI::ColorPicker::createColorSphere ( osg::Vec3 *  pos,
float  radius,
osg::Vec4 *  colour 
)
protected
bool APGUI::ColorPicker::createVisuals ( )

create visual representation of color picker

APGUI::ColorPicker::DECLARE_INPUT ( Evoke  ,
MessageBool   
)
protected
APGUI::ColorPicker::DECLARE_INPUT ( GUIItemClicked  ,
MessageString   
)
protected
APGUI::ColorPicker::DECLARE_INPUT ( Select  ,
MessageBool   
)
protected
APGUI::ColorPicker::DECLARE_INPUT ( ExternalDeactivation  ,
MessageObjectID   
)
protected
APGUI::ColorPicker::DECLARE_OUTPUT ( Colour  ,
MessageVec4   
)
protected
APGUI::ColorPicker::DECLARE_REQUEST_INPUT ( EvokeHSLColorPicker  ,
MessageString  ,
MessageBool   
)
protected
APGUI::ColorPicker::DECLARE_REQUEST_OUTPUT ( SensorPosition  ,
MessageInt  ,
MessageVec3   
)
protected
void APGUI::ColorPicker::evoke ( )
protected

show color picker, set-ut GUI controller

void APGUI::ColorPicker::HSLtoPos ( osg::Vec3 *  p_hsl,
osg::Vec3 *  p_pos 
)
protected
void APGUI::ColorPicker::HSLtoRGB ( osg::Vec3 *  source,
osg::Vec4 *  target 
)
protected
bool APGUI::ColorPicker::initialize ( XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *  parameters)
virtual

Core initialization.

It is important to place the initializing code here, because especially in the case of Abilities, this is the point when the ID and owner is known and we can react accordingly. (This information is unknown in the constructor.)

You will probably want to override this method. This method supersedes the original preInitialize() / loadXMLParameters() / postInitialize() methods, which are now obsolete, but for the sake of compatibility they are called from the initialize() if the method is not overridden. You can override it and forget about pre/postInitialize() or loadParameters() - it's now an old solution.

Parameters
parameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *) Pointer to a XML DOM node, might be NULL if no parameters were specified. The ability should initialize to default values in that case.
Returns
(bool) Returns true on success.

Reimplemented from vrecko::BaseClass.

osg::Vec3 APGUI::ColorPicker::limitPosition ( osg::Vec3  handPosition)
protected
bool APGUI::ColorPicker::linesIntersection ( osg::Vec3 *  p_point1,
osg::Vec3 *  p_orientation1,
osg::Vec3 *  p_point2,
osg::Vec3 *  p_orientation2,
osg::Vec3 *  result 
)
protected
void APGUI::ColorPicker::pointed ( bool  pointed)
inlinevirtual

Called when user point with cursor (hand, usually) to this GUI element.

When pointed, GUI item can change its geometry (e.g. change color, switch to different model) as visual feedback to user

Parameters
pointedis true when user points on this item and false when user "unpoint" it.

Implements APGUI::GUI_Item.

void APGUI::ColorPicker::PostoHSL ( osg::Vec3 *  p_pos,
osg::Vec3 *  p_hsl 
)
protected
bool APGUI::ColorPicker::processAction ( const int  sensorNumber,
const GUI_ACTION  action,
const bool  pressed 
)
virtual

process actions received from Input connector

if color picker is active and 'main click' is send, pick color and send it to receiver otherwise, do nothing

Implements APGUI::GUI_Item.

void APGUI::ColorPicker::revoke ( )
protected

hide color picker, set-ut GUI controller

void APGUI::ColorPicker::RGBtoHSL ( osg::Vec4 *  p_source,
osg::Vec3 *  target 
)
protected
void APGUI::ColorPicker::setState ( GUI_ITEM_STATE  newState)
virtual

Set new state of item.

Implements APGUI::GUI_Item.

void APGUI::ColorPicker::update ( void  )
virtual

This method is called periodically in case this instance is registered in Scheduler.

The method is called periodically at specified frequency or every frame. Use the Scheduler::addEntity() method to register your class and set the frequency.

Reimplemented from vrecko::BaseClass.

Member Data Documentation

bool APGUI::ColorPicker::_alwaysInMiddle
protected

not implemented at moment - always true. Says, if color picker should emerge at center of screen, or somewhere else

int APGUI::ColorPicker::_icontoDeactivate
protected
bool APGUI::ColorPicker::_isActive
protected

flag - is color picker active (visibile) right now?

float APGUI::ColorPicker::_pickerHeight
protected
float APGUI::ColorPicker::_pickerRadius
protected
Interconnection* APGUI::ColorPicker::_temporaryInterconnection
protected
osg::ShapeDrawable* APGUI::ColorPicker::handShapeDraw
protected
osg::Sphere* APGUI::ColorPicker::handShapeSphere
protected
float APGUI::ColorPicker::handSphereRadius
protected
osg::Geode* APGUI::ColorPicker::osgGeode
protected
float APGUI::ColorPicker::spheresRadius
protected

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