30 camLookRotationX(
Vector3(1.0f, 0.0f, 0.0f), -15.0f),
31 camLookRotationY(
Vector3(0.0f, 1.0f, 0.0f), 0.0f)
53 if (event.isProcessed() ==
true)
continue;
54 if (event.getType() == GUIKeyboardEvent::KEYBOARDEVENT_KEY_TYPED)
continue;
55 auto isKeyDown =
event.getType() == GUIKeyboardEvent::KEYBOARDEVENT_KEY_PRESSED;
58 if (event.getKeyCode() == GUIKeyboardEvent::KEYCODE_LEFT) {
60 event.setProcessed(
true);
62 if (event.getKeyCode() == GUIKeyboardEvent::KEYCODE_RIGHT) {
64 event.setProcessed(
true);
66 if (event.getKeyCode() == GUIKeyboardEvent::KEYCODE_UP) {
68 event.setProcessed(
true);
70 if (event.getKeyCode() == GUIKeyboardEvent::KEYCODE_DOWN) {
72 event.setProcessed(
true);
74 if (Character::toLowerCase(event.getKeyChar()) ==
'a') {
76 event.setProcessed(
true);
78 if (Character::toLowerCase(event.getKeyChar()) ==
'd') {
80 event.setProcessed(
true);
82 if (Character::toLowerCase(event.getKeyChar()) ==
'w') {
84 event.setProcessed(
true);
86 if (Character::toLowerCase(event.getKeyChar()) ==
's') {
88 event.setProcessed(
true);
90 if (Character::toLowerCase(event.getKeyChar()) ==
'+') {
92 event.setProcessed(
true);
94 if (Character::toLowerCase(event.getKeyChar()) ==
'-') {
96 event.setProcessed(
true);
98 if (Character::toLowerCase(event.getKeyChar()) ==
'r') {
100 event.setProcessed(
true);
107 if (event.isProcessed() ==
true)
continue;
108 if (event.getType() == GUIMouseEvent::MOUSEEVENT_DRAGGED) {
113 event.setProcessed(
true);
120 event.setProcessed(
true);
128 event.setProcessed(
true);
135 event.setProcessed(
true);
138 if (event.getType() == GUIMouseEvent::MOUSEEVENT_RELEASED) {
145 event.setProcessed(
true);
147 auto mouseWheel =
event.getWheelY();
148 if (mouseWheel != 0) {
153 event.setProcessed(
true);
205 if (deltaTime <= 0LL)
return;
206 if (deltaTime > 33LL) deltaTime = 33LL;
209 Vector3 forwardVector(0.0f, 0.0f, 1.0f);
210 Vector3 sideVector(1.0f, 0.0f, 0.0f);
213 auto camLookAtToFromVector = forwardVectorTransformed.
clone().
scale(
camScale * 10.0f);
217 auto camLookAt = cam->getLookAt();
218 if (
keyUp ==
true) camLookAt.
sub(forwardVectorTransformed.set(camForwardVector).scale(60.0f * (deltaTime / 1000.0f)));
219 if (
keyDown ==
true) camLookAt.
add(forwardVectorTransformed.set(camForwardVector).scale(60.0f * (deltaTime / 1000.0f)));
220 if (
keyLeft ==
true) camLookAt.
sub(forwardVectorTransformed.set(camSideVector).scale(60.0f * (deltaTime / 1000.0f)));
221 if (
keyRight ==
true) camLookAt.
add(forwardVectorTransformed.set(camSideVector).scale(60.0f * (deltaTime / 1000.0f)));
223 camLookAt.
sub(forwardVectorTransformed.set(camForwardVector).scale(mousePanningForward));
228 camLookAt.sub(forwardVectorTransformed.set(camSideVector).scale(mousePanningSide));
232 cam->setLookAt(camLookAt);
233 cam->setLookFrom(cam->getLookAt().clone().add(camLookAtToFromVector));
234 cam->setUpVector(cam->computeUpVector(cam->getLookFrom(), cam->getLookAt()));
void setAngle(const float angle)
const Quaternion & getQuaternion() const
void update()
Computes rotation matrix.
const float getAngle() const
int64_t getDeltaTime()
Gets the time passed between last and current frame.
vector< GUIMouseEvent > & getMouseEvents()
vector< GUIKeyboardEvent > & getKeyboardEvents()
Quaternion class representing quaternion mathematical structure and operations with x,...
Quaternion & add(const Quaternion &quaternion)
Adds quaternion.
Quaternion & scale(float scalar)
Scales by scalar.
Quaternion & multiply(const Quaternion quaternion)
Multiplies this quaternion with given quaternion.
Quaternion & sub(const Quaternion &quaternion)
Subtracts quaternion.
Quaternion clone() const
Clones this quaternion.
Vector3 class representing vector3 mathematical structure and operations with x, y,...