16#ifndef __albaInteractionManager_h
17#define __albaInteractionManager_h
46class albaGUIInteractionSettings;
48class vtkRendererWindow;
51class vtkXMLDataElement;
52class vtkXMLDataParser;
double albaTimeStamp
type for time varying data timestamps (not for pipelines timestamps!)
#define EXPORT_STL_VECTOR(declspec_, T_)
#define EXPORT_STL_MAP(declspec_, K_, V_)
#define EXPORT_STL_LIST(declspec_, T_)
Class used to route events from devices to interactors.
Hold a reference to a T instance.
Avatars are entities moving in the virtual world according to user's movements, and thus representing...
Class managing the devices inside a ALBA application and the synchronization with wxWindows message p...
This class manages a set of usb-devices, and stores a list of all child devices' pointers.
This abstract class manages function calls coming from devices and issue specific events to interacto...
Implementation of the message object for the Subject/Observer design pattern.
class acting as an interface for objects using ALBA hierarchical event communication model This objec...
albaEvent - Class implementing ALBA application events.
a CheckList that send albaEventNotification in the form albaEvent(this, widget_id,...
albaGUIDialog is the base class for albaDialogs.
class name: albaGUIHolder Secialized panel in which a developer can put a albaGUI.
Class Name: albaGUINamedPanel.
albaGUITree allows a simplified and lot easier use of a wxWindows tree widget.
albaGUI is a panel with function to easily create GUI.
This class takes care of mastering the interaction inside views.
albaDeviceManager * GetDeviceManager()
Get the device manager object.
std::vector< albaAvatar * > mmuAvatarsVector
int Restore(const char *filename)
restore interaction settings from an XML file (Multimod Interaction Settings - MIS - format)
albaInteractorPER * m_PositionalEventRouter
albaTimeStamp GetIntraFrameTime()
return the minimum time to elapse between two subsequent renderings
virtual void OnDeviceRemoving(albaEventBase *event)
void SetPER(albaInteractorPER *per)
used to override the default PER.
albaDeviceManager * m_DeviceManager
void PostResetCamera(vtkRenderer *ren)
used to propagate PostReset camera event
virtual void OnEndDispatching()
int BindAction(const char *action, albaInteractor *agent)
Bind an agent to the specified action.
albaInteractorSER * GetSER()
return the static event router
albaDeviceButtonsPadMouse * GetMouseDevice()
return the mouse device
void CameraFlyToMode()
Set the FlyTo mode for the selected view.
const mmuAvatarsMap & GetAvatars()
Return the avatars container.
albaString m_SettingFileName
albaAvatar * GetAvatar(const char *name)
Get an avatar given its name.
virtual void OnBindDeviceToAction(albaEvent *e)
virtual int InternalRestore(albaStorageElement *node)
This is called by Restore() to restore information of this object.
albaInteractorSER * GetStaticEventRouter()
int RemoveAvatar(albaAvatar *avatar)
Remove an avatar.
int DeviceChooser(wxString &dev_name, wxString &dev_type)
Open a dialog to choose among available devices.
virtual void OnAddAvatar(albaEventBase *event)
albaGUICheckListBox * m_ActionsList
int UnBindAction(const char *action, albaInteractor *agent)
Unbind an agent from the specified action.
virtual void OnCameraUpdate(albaEventBase *e)
virtual void OnDeviceAdded(albaEventBase *event)
albaInteractorSER * m_StaticEventRouter
std::map< albaString, albaAutoPointer< albaAvatar > > mmuAvatarsMap
virtual void OnStartDispatching()
albaGUI * GetGui()
Show in modal configuration the settings dialog.
void UpdateBindings()
update bindings check list
void VmeSelected(albaVME *vme)
propagate VME_SELECTED event
void CreateGUI()
Create the GUI dialog.
bool PopPER()
restore previous PER instance
virtual int InternalStore(albaStorageElement *node)
This is called by Store() to store information of this object.
albaGUIHolder * m_SettingsPanel
virtual void OnDeviceNameChanged(albaEventBase *event)
virtual void OnRemoveAvatar(albaEventBase *event)
albaTimeStamp m_LastRenderTime
used to avoid overloading of the GUI process due to rendering
albaAction * AddAction(const char *name, float priority=0.0)
return the mouse action, an action to which mouse is bound by default
vtkRenderer * GetCurrentRenderer()
Return the renderer of the currently selected view, if its a VTK based view otherwise return NULL.
int Store(const char *filename)
store all interaction settings to an XML file (Multimod Interaction Settings - MIS - format)
void UpdateDevice(albaDevice *device)
Update names in device list.
virtual ~albaInteractionManager()
vtkRenderer * m_CurrentRenderer
the renderer of selected view: to be removed!
void CameraUpdate(albaView *view=NULL)
propagate a request for rendering the specified window or all the windows (rw==NULL).
std::list< albaInteractorPER * > m_PERList
the interactor devoted to Positional Event Routing
albaView * GetSelectedView(albaView *view)
Return the currently selected view.
void AddAvatar(albaAvatar *avatar)
Define a new avatar.
void PreResetCamera(vtkRenderer *ren)
used to propagate PreReset camera event
albaDevice * m_CurrentDevice
void GetAvatars(mmuAvatarsVector &avatars)
return an array with the list of avatars currently connected
void EnableSelect(bool enable)
Enable/Disable VME selection by picking.
void RemoveDeviceFromTree(albaDevice *device)
mmuAvatarsMap m_Avatars
keeps a list of visible avatars
albaAction * GetAction(const char *name)
Get an action router.
albaTypeMacro(albaInteractionManager, albaObject)
std::set< albaView * > m_CameraUpdateRequests
requests for Camera update of single views
void SetIntraFrameTime(albaTimeStamp iftime)
set the minimum time to elapse between two subsequent renderings
albaInteractorPER * GetPER()
return the positional event router
albaGUITree * m_DeviceTree
albaView * m_SelectedView
the view currently selected
void ViewSelected(albaView *view)
Set the selected view.
albaTimeStamp m_IntraFrameTime
the minimum time to elapse between two subsequent renderings
virtual void OnEvent(albaEventBase *event)
Process incoming events.
void SetCurrentRenderer(vtkRenderer *ren)
Set the selected VTK renderer.
void AddDeviceToTree(albaDevice *device, albaDeviceSet *parent=NULL)
This is used to allow also external objects to add devices.
void PushPER(albaInteractorPER *per)
set a new PER and keep the old one in a list
virtual void OnViewSelected(albaEvent *event)
Class implementing routing of events based on picking.
Class implementing static routing from devices to interactors passing through actions.
Abstract class for ALBA interactors This class provides base interface and features of ALBA continuou...
Abstract superclass for all ALBA classes implementing RTTI APIs.
Interface implementing the Observer of the Subject/Observer design pattern.
albaStorable is an interface for serializable objects.
int Restore(albaStorageElement *element)
Restore this object from an XML document.
int Store(albaStorageElement *element)
Storing this object as part of an XML document.
Abstract class representing the interface for the unit of information stored in the storage.
albaString - performs common string operations on c-strings.
albaView is the base class for Views in alba.