Skyscraper 2.0
camtex.cpp
Go to the documentation of this file.
1/*
2 Skyscraper 2.0 - CameraTexture Control
3 Copyright (C)2004-2024 Ryan Thoryk
4 https://www.skyscrapersim.net
5 https://sourceforge.net/projects/skyscraper/
6 Contact - ryan@skyscrapersim.net
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21*/
22
23//(*InternalHeaders(CameraTextureControl)
24#include <wx/intl.h>
25#include <wx/string.h>
26//*)
27#include "globals.h"
28#include "sbs.h"
29#include "debugpanel.h"
30#include "cameratexture.h"
31#include "camtex.h"
32
33namespace Skyscraper {
34
35//(*IdInit(CameraTextureControl)
36const long CameraTextureControl::ID_CameraList = wxNewId();
37const long CameraTextureControl::ID_chkEnabled = wxNewId();
38const long CameraTextureControl::ID_lblPositionX = wxNewId();
39const long CameraTextureControl::ID_lblPositionY = wxNewId();
40const long CameraTextureControl::ID_lblPositionZ = wxNewId();
41const long CameraTextureControl::ID_txtPositionX = wxNewId();
42const long CameraTextureControl::ID_txtPositionY = wxNewId();
43const long CameraTextureControl::ID_txtPositionZ = wxNewId();
44const long CameraTextureControl::ID_bSetPosition = wxNewId();
45const long CameraTextureControl::ID_lblRotationX = wxNewId();
46const long CameraTextureControl::ID_lblRotationY = wxNewId();
47const long CameraTextureControl::ID_lblRotationZ = wxNewId();
48const long CameraTextureControl::ID_txtRotationX = wxNewId();
49const long CameraTextureControl::ID_txtRotationY = wxNewId();
50const long CameraTextureControl::ID_txtRotationZ = wxNewId();
51const long CameraTextureControl::ID_bSetRotation = wxNewId();
52const long CameraTextureControl::ID_bSetLookAt = wxNewId();
53const long CameraTextureControl::ID_lblFOV = wxNewId();
54const long CameraTextureControl::ID_txtFOV = wxNewId();
55const long CameraTextureControl::ID_bSetFOV = wxNewId();
56const long CameraTextureControl::ID_STATICTEXT1 = wxNewId();
57const long CameraTextureControl::ID_txtZoom = wxNewId();
58const long CameraTextureControl::ID_bSetZoom = wxNewId();
59const long CameraTextureControl::ID_bOK = wxNewId();
60//*)
61
62BEGIN_EVENT_TABLE(CameraTextureControl,wxDialog)
63 //(*EventTable(CameraTextureControl)
64 //*)
65END_EVENT_TABLE()
66
68{
69 //(*Initialize(CameraTextureControl)
70 wxBoxSizer* BoxSizer1;
71 wxBoxSizer* BoxSizer2;
72 wxBoxSizer* BoxSizer3;
73 wxFlexGridSizer* FlexGridSizer10;
74 wxFlexGridSizer* FlexGridSizer11;
75 wxFlexGridSizer* FlexGridSizer12;
76 wxFlexGridSizer* FlexGridSizer1;
77 wxFlexGridSizer* FlexGridSizer2;
78 wxFlexGridSizer* FlexGridSizer3;
79 wxFlexGridSizer* FlexGridSizer4;
80 wxFlexGridSizer* FlexGridSizer5;
81 wxFlexGridSizer* FlexGridSizer6;
82 wxFlexGridSizer* FlexGridSizer7;
83 wxFlexGridSizer* FlexGridSizer8;
84 wxFlexGridSizer* FlexGridSizer9;
85 wxStaticBoxSizer* StaticBoxSizer1;
86 wxStaticBoxSizer* StaticBoxSizer2;
87 wxStaticBoxSizer* StaticBoxSizer3;
88
89 Create(parent, id, _("CameraTexture Control"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("id"));
90 FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
91 FlexGridSizer2 = new wxFlexGridSizer(0, 3, 0, 0);
92 BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
93 CameraList = new wxListBox(this, ID_CameraList, wxDefaultPosition, wxSize(200,150), 0, 0, 0, wxDefaultValidator, _T("ID_CameraList"));
94 BoxSizer2->Add(CameraList, 1, wxALL|wxEXPAND, 5);
95 FlexGridSizer2->Add(BoxSizer2, 1, wxALL|wxEXPAND, 5);
96 FlexGridSizer3 = new wxFlexGridSizer(0, 1, 0, 0);
97 chkEnabled = new wxCheckBox(this, ID_chkEnabled, _("Enabled"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_chkEnabled"));
98 chkEnabled->SetValue(false);
99 FlexGridSizer3->Add(chkEnabled, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
100 StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Position"));
101 FlexGridSizer4 = new wxFlexGridSizer(0, 1, 0, 0);
102 FlexGridSizer5 = new wxFlexGridSizer(0, 3, 0, 0);
103 lblPositionX = new wxStaticText(this, ID_lblPositionX, _("X"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblPositionX"));
104 FlexGridSizer5->Add(lblPositionX, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
105 lblPositionY = new wxStaticText(this, ID_lblPositionY, _("Y"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblPositionY"));
106 FlexGridSizer5->Add(lblPositionY, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
107 lblPositionZ = new wxStaticText(this, ID_lblPositionZ, _("Z"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblPositionZ"));
108 FlexGridSizer5->Add(lblPositionZ, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
109 txtPositionX = new wxTextCtrl(this, ID_txtPositionX, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtPositionX"));
110 txtPositionX->SetMinSize(wxSize(90,-1));
111 FlexGridSizer5->Add(txtPositionX, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
112 txtPositionY = new wxTextCtrl(this, ID_txtPositionY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtPositionY"));
113 txtPositionY->SetMinSize(wxSize(90,-1));
114 FlexGridSizer5->Add(txtPositionY, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
115 txtPositionZ = new wxTextCtrl(this, ID_txtPositionZ, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtPositionZ"));
116 txtPositionZ->SetMinSize(wxSize(90,-1));
117 FlexGridSizer5->Add(txtPositionZ, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
118 FlexGridSizer4->Add(FlexGridSizer5, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
119 bSetPosition = new wxButton(this, ID_bSetPosition, _("Set Position"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSetPosition"));
120 FlexGridSizer4->Add(bSetPosition, 1, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
121 StaticBoxSizer1->Add(FlexGridSizer4, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
122 FlexGridSizer3->Add(StaticBoxSizer1, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
123 StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Rotation"));
124 FlexGridSizer6 = new wxFlexGridSizer(0, 1, 0, 0);
125 FlexGridSizer7 = new wxFlexGridSizer(0, 3, 0, 0);
126 lblRotationX = new wxStaticText(this, ID_lblRotationX, _("X"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblRotationX"));
127 FlexGridSizer7->Add(lblRotationX, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
128 lblRotationY = new wxStaticText(this, ID_lblRotationY, _("Y"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblRotationY"));
129 FlexGridSizer7->Add(lblRotationY, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
130 lblRotationZ = new wxStaticText(this, ID_lblRotationZ, _("Z"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblRotationZ"));
131 FlexGridSizer7->Add(lblRotationZ, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
132 txtRotationX = new wxTextCtrl(this, ID_txtRotationX, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtRotationX"));
133 txtRotationX->SetMinSize(wxSize(90,-1));
134 FlexGridSizer7->Add(txtRotationX, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
135 txtRotationY = new wxTextCtrl(this, ID_txtRotationY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtRotationY"));
136 txtRotationY->SetMinSize(wxSize(90,-1));
137 FlexGridSizer7->Add(txtRotationY, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
138 txtRotationZ = new wxTextCtrl(this, ID_txtRotationZ, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtRotationZ"));
139 txtRotationZ->SetMinSize(wxSize(90,-1));
140 FlexGridSizer7->Add(txtRotationZ, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
141 FlexGridSizer6->Add(FlexGridSizer7, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
142 BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
143 bSetRotation = new wxButton(this, ID_bSetRotation, _("Set Rotation"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSetRotation"));
144 BoxSizer3->Add(bSetRotation, 1, wxBOTTOM|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
145 bSetLookAt = new wxButton(this, ID_bSetLookAt, _("LookAt"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSetLookAt"));
146 BoxSizer3->Add(bSetLookAt, 1, wxBOTTOM|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
147 FlexGridSizer6->Add(BoxSizer3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
148 StaticBoxSizer2->Add(FlexGridSizer6, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
149 FlexGridSizer3->Add(StaticBoxSizer2, 1, wxTOP|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
150 StaticBoxSizer3 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("FOV and Zoom"));
151 FlexGridSizer8 = new wxFlexGridSizer(0, 1, 0, 0);
152 lblFOV = new wxStaticText(this, ID_lblFOV, _("FOV"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_lblFOV"));
153 FlexGridSizer8->Add(lblFOV, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
154 FlexGridSizer9 = new wxFlexGridSizer(0, 3, 0, 0);
155 txtFOV = new wxTextCtrl(this, ID_txtFOV, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtFOV"));
156 txtFOV->SetMinSize(wxSize(90,-1));
157 FlexGridSizer9->Add(txtFOV, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
158 FlexGridSizer8->Add(FlexGridSizer9, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
159 bSetFOV = new wxButton(this, ID_bSetFOV, _("Set FOV"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSetFOV"));
160 FlexGridSizer8->Add(bSetFOV, 1, wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
161 StaticBoxSizer3->Add(FlexGridSizer8, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
162 FlexGridSizer10 = new wxFlexGridSizer(0, 1, 0, 0);
163 FlexGridSizer11 = new wxFlexGridSizer(0, 1, 0, 0);
164 StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Zoom"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_STATICTEXT1"));
165 FlexGridSizer11->Add(StaticText1, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
166 FlexGridSizer12 = new wxFlexGridSizer(0, 3, 0, 0);
167 txtZoom = new wxTextCtrl(this, ID_txtZoom, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CENTRE, wxDefaultValidator, _T("ID_txtZoom"));
168 txtZoom->SetMinSize(wxSize(90,-1));
169 FlexGridSizer12->Add(txtZoom, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
170 FlexGridSizer11->Add(FlexGridSizer12, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
171 bSetZoom = new wxButton(this, ID_bSetZoom, _("Set Zoom"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bSetZoom"));
172 FlexGridSizer11->Add(bSetZoom, 1, wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
173 FlexGridSizer10->Add(FlexGridSizer11, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
174 StaticBoxSizer3->Add(FlexGridSizer10, 1, wxEXPAND, 5);
175 FlexGridSizer3->Add(StaticBoxSizer3, 1, wxTOP|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
176 FlexGridSizer2->Add(FlexGridSizer3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
177 FlexGridSizer1->Add(FlexGridSizer2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
178 BoxSizer1 = new wxBoxSizer(wxHORIZONTAL);
179 bOK = new wxButton(this, ID_bOK, _("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_bOK"));
180 BoxSizer1->Add(bOK, 1, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
181 FlexGridSizer1->Add(BoxSizer1, 1, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
182 SetSizer(FlexGridSizer1);
183 FlexGridSizer1->SetSizeHints(this);
184
185 Connect(ID_chkEnabled,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_chkEnabled_Click);
186 Connect(ID_bSetPosition,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bSetPosition_Click);
187 Connect(ID_bSetRotation,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bSetRotation_Click);
188 Connect(ID_bSetLookAt,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bSetLookAt_Click);
189 Connect(ID_bSetFOV,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bSetFOV_Click);
190 Connect(ID_bSetZoom,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bSetZoom_Click);
191 Connect(ID_bOK,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CameraTextureControl::On_bOK_Click);
192 //*)
193
194 lastcount = 0;
195 Simcore = 0;
196 panel = parent;
197 camera = 0;
198}
199
201{
202 //(*Destroy(CameraTextureControl)
203 //*)
204}
205
207{
208 if (Simcore != panel->GetSystem())
209 {
210 //if active engine has changed, refresh values
212 }
213
214 if (!Simcore)
215 return;
216
217 BuildList();
218
219 int selection = CameraList->GetSelection();
220
221 if (selection >= 0)
222 {
223 SBS::CameraTexture *newcamera = Simcore->GetCameraTexture(selection);
224
225 //if a new camera has been selected, update values
226 if (newcamera && camera != newcamera)
227 {
228 camera = Simcore->GetCameraTexture(selection);
229
233
237
238 txtFOV->SetValue(SBS::ToString(camera->GetFOVAngle()));
239 txtZoom->SetValue(SBS::ToString(camera->GetZoom()));
240 }
241 }
242 else
243 camera = 0;
244
245 if (!camera)
246 return;
247
248 chkEnabled->SetValue(camera->IsEnabled());
249}
250
251void CameraTextureControl::BuildList(bool restore_selection)
252{
253 int count = Simcore->GetCameraTextureCount();
254
255 if (count != lastcount)
256 {
257 lastcount = count;
258 int old_selection = CameraList->GetSelection();
259 CameraList->Clear();
260
261 for (int i = 0; i < count; i++)
262 {
264 CameraList->Append(SBS::ToString(i + 1) + wxT(": ") + cam->GetName() + wxT(" (") + cam->GetParent()->GetName() + wxT(")"));
265 }
266
267 if (count > 0)
268 {
269 if (restore_selection == false)
270 CameraList->SetSelection(0);
271 else
272 CameraList->SetSelection(old_selection);
273 }
274 else
275 {
276 //clear values
277 txtPositionX->SetValue(wxT(""));
278 txtPositionY->SetValue(wxT(""));
279 txtPositionZ->SetValue(wxT(""));
280 txtRotationX->SetValue(wxT(""));
281 txtRotationY->SetValue(wxT(""));
282 txtRotationZ->SetValue(wxT(""));
283 txtFOV->SetValue(wxT(""));
284 txtZoom->SetValue(wxT(""));
285 chkEnabled->SetValue(false);
286 }
287 }
288}
289
290void CameraTextureControl::On_bOK_Click(wxCommandEvent& event)
291{
292 this->Close();
293}
294
296{
297 if (camera)
298 camera->Enabled(chkEnabled->GetValue());
299}
300
302{
303 if (camera)
304 {
305 camera->SetPosition(atof(txtPositionX->GetValue()), atof(txtPositionY->GetValue()), atof(txtPositionZ->GetValue()));
306 }
307}
308
310{
311 if (camera)
312 {
313 camera->SetRotation(Vector3(atof(txtRotationX->GetValue()), atof(txtRotationY->GetValue()), atof(txtRotationZ->GetValue())));
314 }
315}
316
317void CameraTextureControl::On_bSetFOV_Click(wxCommandEvent& event)
318{
319 if (camera)
320 camera->SetFOVAngle(atof(txtFOV->GetValue()));
321}
322
324{
325 if (camera)
326 {
327 camera->LookAt(Vector3(atof(txtRotationX->GetValue()), atof(txtRotationY->GetValue()), atof(txtRotationZ->GetValue())));
328 }
329}
330
332{
333 if (camera)
334 {
335 camera->SetZoom(atof(txtZoom->GetValue()));
336 }
337}
338
339}
void Enabled(bool value)
void LookAt(const Vector3 &position)
void SetZoom(Real value)
void SetFOVAngle(Real angle)
const std::string & GetName()
Definition object.cpp:53
Object * GetParent()
Definition object.cpp:42
virtual void SetRotation(const Vector3 &rotation)
Definition object.cpp:332
virtual Vector3 GetPosition(bool relative=false)
Definition object.cpp:321
virtual Vector3 GetRotation()
Definition object.cpp:367
virtual void SetPosition(const Vector3 &position)
Definition object.cpp:274
CameraTexture * GetCameraTexture(int number)
Definition sbs.cpp:4604
int GetCameraTextureCount()
Definition sbs.cpp:4599
static const long ID_CameraList
Definition camtex.h:76
static const long ID_txtRotationX
Definition camtex.h:88
static const long ID_lblRotationZ
Definition camtex.h:87
void BuildList(bool restore_selection=false)
Definition camtex.cpp:251
static const long ID_txtPositionZ
Definition camtex.h:83
static const long ID_lblFOV
Definition camtex.h:93
static const long ID_bSetFOV
Definition camtex.h:95
void On_bOK_Click(wxCommandEvent &event)
Definition camtex.cpp:290
SBS::CameraTexture * camera
Definition camtex.h:117
void On_bSetZoom_Click(wxCommandEvent &event)
Definition camtex.cpp:331
static const long ID_bSetZoom
Definition camtex.h:98
static const long ID_txtFOV
Definition camtex.h:94
void On_chkEnabled_Click(wxCommandEvent &event)
Definition camtex.cpp:295
void On_bSetRotation_Click(wxCommandEvent &event)
Definition camtex.cpp:309
static const long ID_lblPositionY
Definition camtex.h:79
static const long ID_lblRotationX
Definition camtex.h:85
static const long ID_STATICTEXT1
Definition camtex.h:96
static const long ID_lblPositionX
Definition camtex.h:78
static const long ID_txtZoom
Definition camtex.h:97
static const long ID_txtRotationZ
Definition camtex.h:90
void On_bSetLookAt_Click(wxCommandEvent &event)
Definition camtex.cpp:323
void On_bSetPosition_Click(wxCommandEvent &event)
Definition camtex.cpp:301
static const long ID_bSetLookAt
Definition camtex.h:92
static const long ID_lblRotationY
Definition camtex.h:86
static const long ID_txtPositionY
Definition camtex.h:82
static const long ID_txtPositionX
Definition camtex.h:81
static const long ID_txtRotationY
Definition camtex.h:89
static const long ID_chkEnabled
Definition camtex.h:77
void On_bSetFOV_Click(wxCommandEvent &event)
Definition camtex.cpp:317
static const long ID_bOK
Definition camtex.h:99
static const long ID_bSetRotation
Definition camtex.h:91
static const long ID_bSetPosition
Definition camtex.h:84
static const long ID_lblPositionZ
Definition camtex.h:80
SBS::SBS * GetSystem()
Definition debugpanel.h:131
Ogre::Vector3 Vector3
Definition globals.h:58
std::string ToString(int number)
Definition globals.cpp:279