2
* Delta3D Open Source Game and Simulation Engine
3
* Copyright (C) 2005, BMH Associates, Inc.
8
* @author Adrian Friebel
10
#ifndef SIMULATIONINPUTCOMPONENT
11
#define SIMULATIONINPUTCOMPONENT
13
#include <srCore/export.h>
14
#include <srCore/simulationArenaComponent.h>
15
#include <srCore/simulationRobotSelectionComponent.h>
16
#include <srCore/robot/robotActorBase.h>
17
#include <srCore/sensor/cameraSensorBase.h>
19
#include <dtGame/baseinputcomponent.h>
20
#include <dtGame/gameapplication.h>
22
#include <dtDAL/gameeventmanager.h>
24
#include <osgViewer/CompositeViewer>
26
// TODO: config file where the keyboard layout is saved
28
class ROBOT_EXPORT SimulationInputComponent : public dtGame::BaseInputComponent
31
SimulationInputComponent(const std::string &name, bool robCtrlEna);
32
void ProcessMessage(const dtGame::Message &message);
34
bool HandleKeyPressed(const dtCore::Keyboard* keyboard,int key);
35
bool HandleButtonPressed(const dtCore::Mouse* mouse, dtCore::Mouse::MouseButton button);
37
void PrintPossibilities();
39
virtual ~SimulationInputComponent();
42
void sendMessageToAll(dtDAL::GameEvent &event);
43
void sendMessageToRobot(dtDAL::GameEvent &event);
47
dtCore::RefPtr<dtDAL::GameEvent> commMsg;
49
//Controlling the robot
50
dtCore::RefPtr<dtDAL::GameEvent> mAccelerate;
51
dtCore::RefPtr<dtDAL::GameEvent> mDecelerate;
52
dtCore::RefPtr<dtDAL::GameEvent> mMoveActorUp;
53
dtCore::RefPtr<dtDAL::GameEvent> mMoveActorDown;
54
dtCore::RefPtr<dtDAL::GameEvent> mMoveActorLeft;
55
dtCore::RefPtr<dtDAL::GameEvent> mMoveActorRight;
57
//Environmental controls
58
dtCore::RefPtr<dtDAL::GameEvent> mSavingPicture;
59
dtCore::RefPtr<dtDAL::GameEvent> mSaveScreenShot;
62
dtCore::RefPtr<dtDAL::GameEvent> mZoomOut;
63
dtCore::RefPtr<dtDAL::GameEvent> mZoomIn;
64
dtCore::RefPtr<dtDAL::GameEvent> mConnectAll;
65
dtCore::RefPtr<dtDAL::GameEvent> mDisconnectAll;
66
dtCore::RefPtr<dtDAL::GameEvent> mCamMoveLeft;
67
dtCore::RefPtr<dtDAL::GameEvent> mCamMoveRight;
68
dtCore::RefPtr<dtDAL::GameEvent> mCamMoveUp;
69
dtCore::RefPtr<dtDAL::GameEvent> mCamMoveDown;
71
dtCore::RefPtr<dtDAL::GameEvent> mTimeScaleChange;
72
dtCore::RefPtr<dtDAL::GameEvent> mSelectRobot;
73
dtCore::RefPtr<dtDAL::GameEvent> mMouseLBClick;
74
dtCore::RefPtr<dtDAL::GameEvent> mSwitchControl;
76
dtCore::RefPtr<dtDAL::GameEvent> mPauseSim;
77
dtCore::RefPtr<dtDAL::GameEvent> mResetSim;
78
dtCore::RefPtr<dtDAL::GameEvent> mDestroyAllActor;
79
dtCore::RefPtr<dtDAL::GameEvent> mDestroyActor;
80
dtCore::RefPtr<dtDAL::GameEvent> mCreateActor;
82
// Controller Controls
83
#ifdef PARTNER_ALMENDE
84
dtCore::RefPtr<dtDAL::GameEvent> mToggleLearnToDrive;
85
dtCore::RefPtr<dtDAL::GameEvent> mToggleLearnBinLoc;
86
dtCore::RefPtr<dtDAL::GameEvent> mToggleImageSaliency;
87
dtCore::RefPtr<dtDAL::GameEvent> mToggleAudioSaliency;
92
bool robotControlEnabled;
97
// srCore::ScreenShotCallback* mScreenShotTaker;