Apollo 11.0
自动驾驶开放平台
TargetCamera类 参考

#include <target_camera.h>

类 TargetCamera 继承关系图:
TargetCamera 的协作图:

Public 成员函数

 TargetCamera ()
 
virtual void UpdateWorld ()
 
const QVector3D & target_pos (void) const
 
void set_target_pos (float x, float y, float z)
 
void set_target_pos (const QVector3D &tgt)
 
float distance (void) const
 
void set_distance (float distance)
 
void Rotate (float xRotateDegrees, float yRotateDegrees, float zRotateDegrees)
 
- Public 成员函数 继承自 AbstractCamera
 AbstractCamera (void)
 
virtual ~AbstractCamera ()
 
CameraMode camera_mode (void) const
 
void set_camera_mode (CameraMode cm)
 
const QMatrix4x4 & projection_matrix (void) const
 
const QMatrix4x4 & model_view_matrix (void) const
 
float near_plane_height (void) const
 
float near_plane_width (void) const
 
void set_near_plane_height (const float npHeight)
 
void set_near_plane_width (const float npWidth)
 
float fov (void) const
 
void set_fov (const float fovInDegrees)
 
float near_plane (void) const
 
void set_near_plane (float n)
 
float far_plane (void) const
 
void set_far_plane (float f)
 
void SetUpProjection (float fovInDegrees, float nearPlaneWidth, float nearPlaneHeight, float near=0.1f, float far=1000.f)
 
float x (void) const
 
float y (void) const
 
float z (void) const
 
void set_x (float x)
 
void set_y (float y)
 
void set_z (float z)
 
const QVector3D & position (void) const
 
void set_position (const QVector3D &pos)
 
void set_position (float x, float y, float z)
 
float yaw (void) const
 
void set_yaw (float yInDegrees)
 
float pitch (void) const
 
void set_pitch (float pInDegrees)
 
float roll (void) const
 
void set_roll (float rInDegrees)
 
const QVector3D & attitude (void) const
 
void SetAttitude (float yawInDegrees, float pitchInDegrees, float rollInDegrees)
 
const QVector3D & look (void) const
 
void UpdateProjection (void)
 
void Update (void)
 

额外继承的成员函数

- Public 类型 继承自 AbstractCamera
enum class  CameraMode { PerspectiveMode , OrthoMode }
 
- 静态 Public 成员函数 继承自 AbstractCamera
static float Radians (float degrees)
 
static float Degrees (float radians)
 
static QMatrix4x4 YawPitchRoll (float yawInDegrees, float picthInDegrees, float rollInDegrees)
 
- 静态 Public 属性 继承自 AbstractCamera
static const QVector3D UP {0.0f, 1.0f, 0.0f}
 
- Protected 属性 继承自 AbstractCamera
CameraMode camera_mode_
 
float fov_
 
float near_plane_width_
 
float near_plane_height_
 
float near_plane_
 
float far_plane_
 
QVector3D position_
 
QVector3D attitude_
 
QVector3D look_
 
QVector3D up_
 
QVector3D right_
 
QMatrix4x4 projection_mat_
 
QMatrix4x4 model_view_mat_
 

详细描述

在文件 target_camera.h 第 21 行定义.

构造及析构函数说明

◆ TargetCamera()

TargetCamera::TargetCamera ( )

在文件 target_camera.cc 第 19 行定义.

20 : AbstractCamera(), target_pos_(0.0, 0.0, 0.0), distance_(10.0) {}

成员函数说明

◆ distance()

float TargetCamera::distance ( void  ) const
inline

在文件 target_camera.h 第 41 行定义.

41{ return distance_; }

◆ Rotate()

void TargetCamera::Rotate ( float  xRotateDegrees,
float  yRotateDegrees,
float  zRotateDegrees 
)
inline

在文件 target_camera.h 第 49 行定义.

50 {
51 SetAttitude(yRotateDegrees, xRotateDegrees, zRotateDegrees);
52 }
void SetAttitude(float yawInDegrees, float pitchInDegrees, float rollInDegrees)

◆ set_distance()

void TargetCamera::set_distance ( float  distance)
inline

在文件 target_camera.h 第 42 行定义.

42 {
43 if (distance < 0.0f) {
44 distance = 0.0f;
45 }
46 distance_ = distance;
47 }
float distance(void) const

◆ set_target_pos() [1/2]

void TargetCamera::set_target_pos ( const QVector3D &  tgt)
inline

在文件 target_camera.h 第 36 行定义.

36 {
37 target_pos_ = tgt;
38 distance_ = position_.distanceToPoint(target_pos_);
39 }

◆ set_target_pos() [2/2]

void TargetCamera::set_target_pos ( float  x,
float  y,
float  z 
)
inline

在文件 target_camera.h 第 28 行定义.

28 {
29 target_pos_.setX(x);
30 target_pos_.setY(y);
31 target_pos_.setZ(z);
32
33 distance_ = position_.distanceToPoint(target_pos_);
34 }
float y(void) const
float z(void) const
float x(void) const

◆ target_pos()

const QVector3D & TargetCamera::target_pos ( void  ) const
inline

在文件 target_camera.h 第 27 行定义.

27{ return target_pos_; }

◆ UpdateWorld()

void TargetCamera::UpdateWorld ( void  )
virtual

实现了 AbstractCamera.

在文件 target_camera.cc 第 22 行定义.

22 {
23 QMatrix4x4 R = YawPitchRoll(yaw(), pitch(), roll());
24 QVector3D T{0, 0, distance_};
25 T = QVector3D(R * QVector4D(T, 0.0f));
26 position_ = target_pos_ + T;
27 look_ = target_pos_ - position_;
28 look_.normalize();
29
30 up_ = QVector3D(R * QVector4D(UP, 0.0f));
31 right_ = QVector3D::crossProduct(look_, up_);
32
33 model_view_mat_.setToIdentity();
34 model_view_mat_.lookAt(position_, target_pos_, up_);
35}
float roll(void) const
QMatrix4x4 model_view_mat_
static QMatrix4x4 YawPitchRoll(float yawInDegrees, float picthInDegrees, float rollInDegrees)
float pitch(void) const
static const QVector3D UP
float yaw(void) const

该类的文档由以下文件生成: