vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ControllableAbility.h File Reference
#include <vrecko/Ability.h>
#include <vrecko/IOPins.h>
#include <osg/Quat>
#include <osg/Node>

Go to the source code of this file.

Classes

struct  vrecko::CABUTTONEVENT
 
class  vrecko::MessageCAButtonEvent
 
struct  vrecko::CAINFO__VER1
 
struct  vrecko::CAINFO__VER2
 
class  vrecko::ControllableAbility
 
class  vrecko::ControllableAbility::MessageCAINFO
 

Namespaces

namespace  vrecko
 Second level of space paritioning queries - detailed searching inside object.
 

Macros

#define EDITORCONTROLLER_IMP_EXP   __declspec(dllimport)
 
#define POINTERPOS_REQUEST_NAME   "PointerPosition"
 
#define POINTERROT_REQUEST_NAME   "PointerRotation"
 
#define POINTERPOS_RAW_REQUEST_NAME   "PointerPositionRaw"
 
#define POINTERROT_RAW_REQUEST_NAME   "PointerRotationRaw"
 
#define SELECTIONID_REQUEST_NAME   "SelectionID"
 
#define SELECTIONPATH_REQUEST_NAME   "SelectionPath"
 
#define CAINFO_FLAGS_POINTERLOC_REQUESTOUTPUTS   0x00000001
 
#define CAINFO_FLAGS_SELECTIONID_REQUESTOUTPUT   0x00000002
 
#define CAINFO_FLAGS_ALL_ACTIVEPOINTER_BUTTONS   0x00000004
 
#define CAINFO_FLAGS_ALL_OTHERPOINTER_BUTTONS   0x00000008
 
#define CAINFO_FLAGS_POINTERLOC_RAW_REQUESTOUTPUTS   0x00000010
 
#define CAINFO_FLAGS_NO_AUTO_DEACTIVATE   0x80000000
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT   0
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR__MASK   0x00000007
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_DONTCARE   0x00000000
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_HIDE   0x00000001
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_SHOW   0x00000002
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCEHIDE   0x00000003
 
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCESHOW   0x00000004
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT   3
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR__MASK   0x00000038
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR_DONTCARE   (CAINFO_AFLAGS_SELSHOW_ACTPTR_DONTCARE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR_SHOW   (CAINFO_AFLAGS_SELSHOW_ACTPTR_SHOW >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR_HIDE   (CAINFO_AFLAGS_SELSHOW_ACTPTR_HIDE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR_FORCEHIDE   (CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCEHIDE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
 
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR_FORCESHOW   (CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCESHOW >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
 
#define IS_CAINFO_VER(info, ver)   ((info).dwSize >= sizeof(CAINFO__VER##ver))
 

Typedefs

typedef CAINFO__VER2 vrecko::CAINFO
 

Macro Definition Documentation

#define CAINFO_AFLAGS_SELSHOW_ACTPTR__MASK   0x00000007
#define CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT   0
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_DONTCARE   0x00000000
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCEHIDE   0x00000003
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCESHOW   0x00000004
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_HIDE   0x00000001
#define CAINFO_AFLAGS_SELSHOW_ACTPTR_SHOW   0x00000002
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR__MASK   0x00000038
#define CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT   3
#define CAINFO_FLAGS_ALL_ACTIVEPOINTER_BUTTONS   0x00000004

The ability wants to control all buttons belonging to the active pointer (hand). Every status change will be delivered to this ability and no other ability could be activated using these buttons.

#define CAINFO_FLAGS_ALL_OTHERPOINTER_BUTTONS   0x00000008

The ability wants to control all buttons belonging to the other pointers (hand[s]). Every status change will be delivered to this ability and no other ability could be activated using these buttons.

#define CAINFO_FLAGS_NO_AUTO_DEACTIVATE   0x80000000

The deactivate() function won't be called upon mouse button release. Useful if your ability is using menus.

#define CAINFO_FLAGS_POINTERLOC_RAW_REQUESTOUTPUTS   0x00000010

[POINTERPOS_REQUEST_NAME_RAW] and [POINTERROT_REQUEST_NAME_RAW] RequestOuputs will be created automatically. You can then use the requestPointerLocRaw() to get the position/rotation of the pointer in the current frame. The position/rotation will be the "raw" pos/rot, directly from the pointers, not including the view transformation.

#define CAINFO_FLAGS_POINTERLOC_REQUESTOUTPUTS   0x00000001

[POINTERPOS_REQUEST_NAME] and [POINTERROT_REQUEST_NAME] RequestOuputs will be created automatically. You can then use the requestPointerLoc() to get the position/rotation of the pointer in the current frame. The position/rotation will be the "real" pos/rot, including the view transformation. To get the "raw" data use CAINFO_FLAGS_POINTERLOC_REQUESTOUTPUTS_RAW.

#define CAINFO_FLAGS_SELECTIONID_REQUESTOUTPUT   0x00000002

[SELECTIONID_REQUEST_NAME] + [SELECTIONPATH_REQUEST_NAME] RequestOuputs will be created. You will have to specify it, if you need to retrieve currently selected object. You can then use the requestSelectionID() and/or requestSelectionPath() to get the selection in the current frame.

#define EDITORCONTROLLER_IMP_EXP   __declspec(dllimport)
#define IS_CAINFO_VER (   info,
  ver 
)    ((info).dwSize >= sizeof(CAINFO__VER##ver))

Is the given CAINFO instance AT LEAST version [ver]?

#define POINTERPOS_RAW_REQUEST_NAME   "PointerPositionRaw"
#define POINTERPOS_REQUEST_NAME   "PointerPosition"
#define POINTERROT_RAW_REQUEST_NAME   "PointerRotationRaw"
#define POINTERROT_REQUEST_NAME   "PointerRotation"
#define SELECTIONID_REQUEST_NAME   "SelectionID"
#define SELECTIONPATH_REQUEST_NAME   "SelectionPath"