ALBA
|
#include <albaAvatar3D.h>
Public Types | |
enum | AVATAR_3D_GUI_ID { ID_FITTING_COMBO = albaAvatar::ID_LAST , ID_WBOX_BOOL , ID_DEBUG_TEXT , ID_DEBUG_TEXT_POSITION , ID_COORDS_COMBO , ID_LAST } |
enum | AVATAR_COORDS_TYPE { TRACKER_COORDS =0 , CANONICAL_COORDS , WORLD_COORDS } |
enum | AVATAR_COORDS_SCALING { NO_SCALE =0 , TRACKER_TO_WORLD_SCALE , CANONICAL_TO_WORLD_SCALE } |
Public Types inherited from albaAvatar | |
enum | AVATAR_GUI_ID { ID_NAME =MINID , ID_LAST } |
enum | AvatarModality { MODE_2D =0 , MODE_3D } |
Public Types inherited from albaInteractor | |
enum | modalities { SINGLE_BUTTON_MODE =0 , MULTI_BUTTON_MODE } |
Public Member Functions | |
albaAbstractTypeMacro (albaAvatar3D, albaAvatar) | |
virtual void | SetRendererAndView (vtkRenderer *ren, albaView *view) |
virtual void | Hide () |
virtual void | Show () |
vtkALBARayCast3DPicker * | GetPicker3D () |
vtkCellPicker * | GetPicker2D () |
virtual vtkAbstractPropPicker * | GetPicker () |
void | SetDisplayWorkingBox (int vis) |
int | GetDisplayWorkingBox () |
void | DisplayWorkingBoxOn () |
void | DisplayWorkingBoxOff () |
void | SetDisplayDebugText (int vis) |
int | GetDisplayDebugText () |
void | SetDebugTextPosition (double *pos) |
void | SetDebugTextPosition (double posx, double posy) |
double * | GetDebugTextPosition () |
void | SetCoordsFrame (int frame) |
int | GetCoordsFrame () |
virtual void | OnEvent (albaEventBase *event) |
virtual void | SetTracker (albaDeviceButtonsPadTracker *tracker) |
void | CanonicalToWorld (const albaMatrix &pose, albaMatrix &dest) |
void | CanonicalToWorld (albaMatrix &pose) |
void | CanonicalToWorld (albaTransform *trans) |
void | WorldToCanonical (const albaMatrix &pose, albaMatrix &dest) |
void | WorldToCanonical (albaMatrix &pose) |
void | WorldToCanonical (albaTransform *trans) |
void | TrackerToWorld (albaMatrix &tracker_pose, albaMatrix &world_pose, int use_scale=1, int use_rot=1, int use_trans=1) |
void | WorldToTracker (albaMatrix &world_pose, albaMatrix &tracker_pose, int use_scale=1, int use_rot=1, int use_trans=1) |
void | TrackerToDisplay (albaMatrix &tracker_pose, double xy[2]) |
void | WorldToDisplay (albaMatrix &world_pose, double xy[2]) |
void | WorldToNormalizedDisplay (albaMatrix &world_pose, double xy[2]) |
albaCameraTransform * | GetCanonicalToWorldTransform () |
void | SetFittingMode (int type) |
int | GetFittingMode () |
albaMatrix & | GetLastPoseMatrix () |
virtual void | CreateGui () |
Public Member Functions inherited from albaAvatar | |
albaAbstractTypeMacro (albaAvatar, albaInteractor) | |
virtual void | SetRendererAndView (vtkRenderer *ren, albaView *view) |
void | SetActor3D (vtkProp3D *avatar) |
vtkProp3D * | GetActor3D () |
void | SetActor2D (vtkActor2D *avatar) |
vtkActor2D * | GetActor2D () |
virtual void | Hide () |
virtual void | Show () |
virtual void | HideCursor3D () |
virtual void | ShowCursor3D () |
virtual void | HideCursor2D () |
virtual void | ShowCursor2D () |
virtual int | Pick (albaMatrix &pose) |
virtual int | Pick (double X, double Y) |
virtual void | OnEvent (albaEventBase *event) |
albaDeviceButtonsPadTracker * | GetTracker () |
virtual void | SetTracker (albaDeviceButtonsPadTracker *tracker) |
void | SetMode (int mode) |
int | GetMode () |
void | SetModeTo2D () |
void | SetModeTo3D () |
virtual vtkAbstractPropPicker * | GetPicker () |
albaGUI * | GetGui () |
virtual void | CreateGui () |
virtual void | UpdateGui () |
ALBA_ID_DEC (AVATAR_SCREEN_PLANE_SETTINGS) | |
ALBA_ID_DEC (AVATAR_WORKING_BOX_SETTINGS) | |
Public Member Functions inherited from albaInteractor | |
albaInteractor () | |
virtual | ~albaInteractor () |
ALBA_ID_DEC (INTERACTION_STARTED) | |
ALBA_ID_DEC (INTERACTION_STOPPED) | |
ALBA_ID_DEC (BUTTON_DOWN) | |
ALBA_ID_DEC (BUTTON_UP) | |
albaAbstractTypeMacro (albaInteractor, albaAgent) | |
virtual void | SetRendererAndView (vtkRenderer *ren, albaView *view) |
vtkRenderer * | GetRenderer () |
albaView * | GetView () |
albaDevice * | GetDevice () |
virtual void | SetDevice (albaDevice *) |
virtual void | SetVME (albaVME *vme) |
void | SetProp (vtkProp3D *prop) |
void | SetIgnoreTriggerEvents (bool flag) |
int | GetIgnoreTriggerEvents (bool flag) |
void | IgnoreTriggerEventsOn () |
void | IgnoreTriggerEventsOff () |
void | SetStartInteractionEvent (albaID event) |
albaID | GetStartInteractionEvent () |
void | SetStopInteractionEvent (albaID event) |
albaID | GetStopInteractionEvent () |
void | SetStartButton (int btn) |
int | GetStartButton () |
void | SetModifiers (int mod) |
int | GetModifiers () |
int | GetCurrentButton () |
unsigned long | GetCurrentModifier () |
virtual int | StartInteraction (albaDevice *device) |
virtual int | StopInteraction (albaDevice *device) |
virtual bool | IsInteracting () |
virtual bool | IsInteracting (albaDevice *device) |
void | SetButtonMode (int mode) |
int | GetButtonMode () |
void | SetButtonModeToSingleButton () |
void | SetButtonModeToMultiButton () |
virtual void | OnEvent (albaEventBase *event) |
void | TestModeOn () |
void | TestModeOff () |
bool | GetTestMode () |
Public Member Functions inherited from albaAgent | |
albaAbstractTypeMacro (albaAgent, albaReferenceCounted) | |
ALBA_ID_DEC (AGENT_INITIALIZE) | |
void | AddObserver (albaObserver *listener, albaID channel=MCH_UP) |
void | RemoveObserver (albaObserver *listener) |
void | RemoveAllObservers () |
virtual void | OnEvent (albaEventBase *event) |
bool | HasObservers (albaID channel) |
void | GetObservers (albaID channel, std::vector< albaObserver * > &olist) |
int | Initialize () |
void | Shutdown () |
int | IsInitialized () |
virtual void | SetName (const char *name) |
const char * | GetName () |
Public Member Functions inherited from albaReferenceCounted | |
albaReferenceCounted () | |
virtual | ~albaReferenceCounted () |
albaAbstractTypeMacro (albaReferenceCounted, albaObject) | |
virtual void | Delete () |
void | Register (void *obj) |
virtual void | UnRegister (void *obj) |
int | GetReferenceCount () |
void | SetReferenceCount (int) |
Public Member Functions inherited from albaObject | |
albaObject () | |
virtual | ~albaObject () |
virtual void | Delete () |
virtual const char * | GetTypeName () const |
virtual bool | IsA (const char *type_name) const |
virtual bool | IsA (const albaTypeID &type_id) const |
virtual albaObject * | NewObjectInstance () const =0 |
virtual const albaTypeID & | GetTypeId () const |
virtual void | Print (std::ostream &os, const int indent=0) const |
albaObject (const albaObject &c) | |
Public Member Functions inherited from albaObserver | |
albaObserver () | |
virtual | ~albaObserver () |
virtual void | OnEvent (albaEventBase *e)=0 |
Public Member Functions inherited from albaEventBroadcaster | |
albaEventBroadcaster (void *owner=NULL) | |
virtual | ~albaEventBroadcaster () |
albaEventBroadcaster (const albaEventBroadcaster &c) | |
void | AddObserver (albaObserver *obj) |
void | AddObserver (albaObserver &obj) |
albaObserverCallback * | AddObserverCallback (void(*f)(void *sender, albaID eid, void *clientdata, void *calldata)) |
bool | RemoveObserver (albaObserver *obj) |
void | RemoveAllObservers () |
bool | IsObserver (albaObserver *obj) |
bool | HasObservers () |
void | GetObservers (std::vector< albaObserver * > &olist) |
void | InvokeEvent (albaEventBase &e) |
void | InvokeEvent (albaEventBase *e) |
void | InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL) |
void | SetChannel (albaID ch) |
albaID | GetChannel () |
virtual void | SetListener (albaObserver *o) |
Public Member Functions inherited from albaEventSender | |
albaEventSender () | |
virtual void | SetListener (albaObserver *o) |
virtual albaObserver * | GetListener () |
virtual bool | HasListener () |
virtual void | InvokeEvent (albaEventBase &e) |
virtual void | InvokeEvent (albaEventBase *e) |
virtual void | InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL) |
Public Member Functions inherited from albaStorable | |
albaStorable () | |
int | Store (albaStorageElement *element) |
int | Restore (albaStorageElement *element) |
albaObject * | CastToObject () |
bool | IsStorable () |
Protected Member Functions | |
albaAvatar3D () | |
virtual | ~albaAvatar3D () |
void | SetLastPoseMatrix (albaMatrix &matrix) |
virtual int | InternalStore (albaStorageElement *node) |
virtual int | InternalRestore (albaStorageElement *node) |
virtual int | InternalInitialize () |
virtual void | InternalShutdown () |
virtual void | UpdateDebugText (const char *title, albaMatrix &pose) |
virtual void | OnMove3DEvent (albaEventInteraction *e) |
void | OnUpdateBoundsEvent (albaDeviceButtonsPadTracker *tracker) |
virtual void | OnPostResetCamera (albaEventBase *event) |
void | SetPicker3D (vtkALBARayCast3DPicker *picker) |
Protected Member Functions inherited from albaAvatar | |
albaAvatar () | |
virtual | ~albaAvatar () |
virtual int | InternalStore (albaStorageElement *node) |
virtual int | InternalRestore (albaStorageElement *node) |
virtual int | InternalInitialize () |
virtual void | InternalShutdown () |
virtual void | OnPreResetCamera (albaEventBase *event) |
virtual void | OnPostResetCamera (albaEventBase *event) |
virtual void | OnViewSelected (albaEvent *e) |
Protected Member Functions inherited from albaInteractor | |
virtual int | OnStartInteraction (albaEventInteraction *e) |
virtual int | OnStopInteraction (albaEventInteraction *e) |
virtual void | OnButtonDown (albaEventInteraction *e) |
virtual void | OnButtonUp (albaEventInteraction *e) |
void | ComputeDisplayToWorld (double x, double y, double z, double worldPt[4]) |
void | ComputeWorldToDisplay (double x, double y, double z, double displayPt[3]) |
Protected Member Functions inherited from albaAgent | |
albaAgent () | |
virtual | ~albaAgent () |
virtual int | InternalInitialize () |
virtual void | InternalShutdown () |
void | InvokeEvent (albaEventBase &event, albaID channel=-1) |
void | InvokeEvent (albaEventBase *event, albaID channel=-1) |
void | InvokeEvent (void *sender, int id, albaID channel=MCH_UP, void *data=NULL) |
virtual int | InternalStore (albaStorageElement *node)=0 |
virtual int | InternalRestore (albaStorageElement *node)=0 |
Additional Inherited Members | |
Static Public Member Functions inherited from albaObject | |
static const char * | GetStaticTypeName () |
static bool | IsStaticType (const char *type_name) |
static bool | IsStaticType (const albaTypeID &type_id) |
static const albaTypeID & | GetStaticTypeId () |
static albaObject * | SafeDownCast (albaObject *o) |
Static Public Member Functions inherited from albaStorable | |
static albaStorable * | SafeCastToObject (albaObject *o) |
Protected Types inherited from albaEventBroadcaster | |
typedef std::list< albaObserver * > | albaObserversList |
Avatars are entities moving in the virtual world according to user's movements, and thus representing thier presence in the virtual world.
Specialized classes must set the Avatar variable with a vtkProp3D, this class will take care of adding it to the current renderer, moving, hiding and showing it at the right time. The Avatar moves according to an interactor, which must also be set by subclasses.
Definition at line 56 of file albaAvatar3D.h.
Enumerator | |
---|---|
ID_FITTING_COMBO | |
ID_WBOX_BOOL | |
ID_DEBUG_TEXT | |
ID_DEBUG_TEXT_POSITION | |
ID_COORDS_COMBO | |
ID_LAST |
Definition at line 62 of file albaAvatar3D.h.
Enumerator | |
---|---|
TRACKER_COORDS | |
CANONICAL_COORDS | |
WORLD_COORDS |
Definition at line 72 of file albaAvatar3D.h.
Enumerator | |
---|---|
NO_SCALE | |
TRACKER_TO_WORLD_SCALE | |
CANONICAL_TO_WORLD_SCALE |
Definition at line 79 of file albaAvatar3D.h.
|
protected |
|
protectedvirtual |
albaAvatar3D::albaAbstractTypeMacro | ( | albaAvatar3D | , |
albaAvatar | |||
) |
|
virtual |
Set/Get the renderer this avatar is attached to.
When the rederer is changed, all props created by this avatar are moved to the new renderer and the interaction is changed accordingly
Reimplemented from albaAvatar.
|
virtual |
Hide the 3D cursor, i.e.
remove actor from renderer's list. This is usually used to compute bounding box without considering avatars
Reimplemented from albaAvatar.
|
virtual |
Show the 3D cursor.
This function is conditional, in the sense the old visibility state is retained when showing back.
Reimplemented from albaAvatar.
vtkALBARayCast3DPicker * albaAvatar3D::GetPicker3D | ( | ) |
Return picker 3D used by 3DAvatar for picking.
vtkCellPicker * albaAvatar3D::GetPicker2D | ( | ) |
Return picker 2D used by 3DAvatar for 2D picking.
|
virtual |
return the picker used by this avatar: from the picker is possible to obtain information about the picked object.
Reimplemented from albaAvatar.
void albaAvatar3D::SetDisplayWorkingBox | ( | int | vis | ) |
Display a box showing where input coords are mapped.
This can be used for debug to understand if the tracker's settings and the mapping function are correct
|
inline |
Definition at line 118 of file albaAvatar3D.h.
|
inline |
Definition at line 119 of file albaAvatar3D.h.
|
inline |
Definition at line 120 of file albaAvatar3D.h.
void albaAvatar3D::SetDisplayDebugText | ( | int | vis | ) |
Display the debug text showing trackers coordinate.
This can be used to debug the code.
|
inline |
Definition at line 126 of file albaAvatar3D.h.
|
inline |
where to display the text
Definition at line 129 of file albaAvatar3D.h.
References SetDebugTextPosition().
Referenced by SetDebugTextPosition().
void albaAvatar3D::SetDebugTextPosition | ( | double | posx, |
double | posy | ||
) |
|
inline |
Definition at line 131 of file albaAvatar3D.h.
|
inline |
Display the original tracker's coords in the debug text area.
This can be used to know the tracked volume size to be set in the trackers' settings.
Definition at line 137 of file albaAvatar3D.h.
|
inline |
Definition at line 138 of file albaAvatar3D.h.
|
virtual |
Process events coming from tracker.
Reimplemented from albaAvatar.
|
virtual |
return the tracker this avatar is the tracker attached to this avatar
Reimplemented from albaAvatar.
void albaAvatar3D::CanonicalToWorld | ( | const albaMatrix & | pose, |
albaMatrix & | dest | ||
) |
Transform a matrix from Canonical to World space.
|
inline |
Definition at line 149 of file albaAvatar3D.h.
References CanonicalToWorld().
Referenced by CanonicalToWorld().
void albaAvatar3D::CanonicalToWorld | ( | albaTransform * | trans | ) |
void albaAvatar3D::WorldToCanonical | ( | const albaMatrix & | pose, |
albaMatrix & | dest | ||
) |
|
inline |
Definition at line 153 of file albaAvatar3D.h.
References WorldToCanonical().
Referenced by WorldToCanonical().
void albaAvatar3D::WorldToCanonical | ( | albaTransform * | trans | ) |
void albaAvatar3D::TrackerToWorld | ( | albaMatrix & | tracker_pose, |
albaMatrix & | world_pose, | ||
int | use_scale = 1 , |
||
int | use_rot = 1 , |
||
int | use_trans = 1 |
||
) |
Transform a matrix from Tracker frame to World frame, the function can optionally avoid to map on the destination matrix some of the 6DOF: e.g.
not using the scale or the rotational matrix
void albaAvatar3D::WorldToTracker | ( | albaMatrix & | world_pose, |
albaMatrix & | tracker_pose, | ||
int | use_scale = 1 , |
||
int | use_rot = 1 , |
||
int | use_trans = 1 |
||
) |
void albaAvatar3D::TrackerToDisplay | ( | albaMatrix & | tracker_pose, |
double | xy[2] | ||
) |
map tracker coords to display normalized coords
void albaAvatar3D::WorldToDisplay | ( | albaMatrix & | world_pose, |
double | xy[2] | ||
) |
map world coords to tracker coords
void albaAvatar3D::WorldToNormalizedDisplay | ( | albaMatrix & | world_pose, |
double | xy[2] | ||
) |
map world coords to normalized display coords
|
inline |
return transform between canonical and world space
Definition at line 176 of file albaAvatar3D.h.
void albaAvatar3D::SetFittingMode | ( | int | type | ) |
Set mapping rule, i.e.
the policy to be used for scaling the tracked volume to the world volume.
|
inline |
return the mapping rule currently in use
Definition at line 184 of file albaAvatar3D.h.
|
inline |
return the last pose matrix of the avatar's 3d actor in world coordinates.
Definition at line 189 of file albaAvatar3D.h.
|
virtual |
Create the dialog that show the interface for settings.
Reimplemented from albaAvatar.
|
protected |
Internally used to set the last pose matrix.
|
protectedvirtual |
This is used to allow nested serialization of subclasses.
This function is called by Store and is reimplemented in subclasses. Each subclass can Open/Close its own subelements which are closed inside the "Device" XML element.
Reimplemented from albaAvatar.
|
protectedvirtual |
This is called by Restore() and must be reimplemented by subclasses The element from which the object should restore itself is passed as argument.
Reimplemented from albaAvatar.
|
protectedvirtual |
redefined to add the Cursor actor into the selected renderer
Reimplemented from albaAvatar.
|
protectedvirtual |
redefined to remove Cursor from renderer
Reimplemented from albaAvatar.
|
protectedvirtual |
internally used to update debug text on the screen
|
protectedvirtual |
process a move event
|
protected |
process an event signaling a change of the tracked bounds
|
protectedvirtual |
process event sent after a camera reset
Reimplemented from albaAvatar.
|
protected |
Internally used to redefine the 3D picker class.
|
protected |
Prop3D of the working box.
Definition at line 227 of file albaAvatar3D.h.
|
protected |
Working box the tracker coords are mapped to.
Definition at line 228 of file albaAvatar3D.h.
|
protected |
Definition at line 230 of file albaAvatar3D.h.
|
protected |
Definition at line 231 of file albaAvatar3D.h.
|
protected |
Definition at line 233 of file albaAvatar3D.h.
|
protected |
Used to pick in a VTK Render window.
Definition at line 235 of file albaAvatar3D.h.
|
protected |
Definition at line 236 of file albaAvatar3D.h.
|
protected |
Definition at line 239 of file albaAvatar3D.h.
|
protected |
specify the current mapping rule from canonical to world
Definition at line 241 of file albaAvatar3D.h.
|
protected |
Whether display the working box.
Definition at line 243 of file albaAvatar3D.h.
|
protected |
Whether display Debug text.
Definition at line 244 of file albaAvatar3D.h.
|
protected |
Whether to display the original tracker's coords.
Definition at line 245 of file albaAvatar3D.h.
|
protected |
Definition at line 247 of file albaAvatar3D.h.