Apollo
11.0
自动驾驶开放平台
free_camera.cc
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2018 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
17
#include "
modules/tools/visualizer/free_camera.h
"
18
19
FreeCamera::FreeCamera
(
void
)
20
:
AbstractCamera
(), translation_(0.0, 0.0f, 0.0f) {}
21
22
void
FreeCamera::UpdateWorld
(
void
) {
23
QMatrix4x4 R =
YawPitchRoll
(
attitude_
[0],
attitude_
[1],
attitude_
[2]);
24
25
position_
+= translation_;
26
translation_.setX(0.0f);
27
translation_.setY(0.0f);
28
translation_.setZ(0.0f);
29
30
look_
= QVector3D(R * QVector4D(0.0f, 0.0f, 1.0f, 0.0f));
31
up_
= QVector3D(R * QVector4D(0.0f, 1.0f, 0.0f, 0.0f));
32
right_
= QVector3D::crossProduct(
look_
,
up_
);
33
34
QVector3D tgt =
position_
+
look_
;
35
model_view_mat_
.setToIdentity();
36
model_view_mat_
.lookAt(
position_
, tgt,
up_
);
37
}
AbstractCamera
Definition
abstract_camera.h:21
AbstractCamera::look_
QVector3D look_
Definition
abstract_camera.h:143
AbstractCamera::model_view_mat_
QMatrix4x4 model_view_mat_
Definition
abstract_camera.h:148
AbstractCamera::YawPitchRoll
static QMatrix4x4 YawPitchRoll(float yawInDegrees, float picthInDegrees, float rollInDegrees)
Definition
abstract_camera.cc:22
AbstractCamera::right_
QVector3D right_
Definition
abstract_camera.h:145
AbstractCamera::position_
QVector3D position_
Definition
abstract_camera.h:140
AbstractCamera::up_
QVector3D up_
Definition
abstract_camera.h:144
AbstractCamera::attitude_
QVector3D attitude_
Definition
abstract_camera.h:141
FreeCamera::UpdateWorld
virtual void UpdateWorld(void)
Definition
free_camera.cc:22
FreeCamera::FreeCamera
FreeCamera(void)
Definition
free_camera.cc:19
free_camera.h
modules
tools
visualizer
free_camera.cc