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

#include <free_camera.h>

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

Public 成员函数

 FreeCamera (void)
 
 ~FreeCamera ()
 
virtual void UpdateWorld (void)
 
const QVector3D & tanslation (void)
 
void set_translation (const QVector3D &t)
 
void Walk (const float dt)
 
void Starfe (const float dt)
 
void Lift (const float dt)
 
- 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_
 

详细描述

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

构造及析构函数说明

◆ FreeCamera()

FreeCamera::FreeCamera ( void  )

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

20 : AbstractCamera(), translation_(0.0, 0.0f, 0.0f) {}

◆ ~FreeCamera()

FreeCamera::~FreeCamera ( )
inline

在文件 free_camera.h 第 24 行定义.

24{}

成员函数说明

◆ Lift()

void FreeCamera::Lift ( const float  dt)
inline

在文件 free_camera.h 第 35 行定义.

35{ translation_ += (up_ * dt); }

◆ set_translation()

void FreeCamera::set_translation ( const QVector3D &  t)
inline

在文件 free_camera.h 第 31 行定义.

31{ translation_ = t; }

◆ Starfe()

void FreeCamera::Starfe ( const float  dt)
inline

在文件 free_camera.h 第 34 行定义.

34{ translation_ += (right_ * dt); }

◆ tanslation()

const QVector3D & FreeCamera::tanslation ( void  )
inline

在文件 free_camera.h 第 30 行定义.

30{ return translation_; }

◆ UpdateWorld()

void FreeCamera::UpdateWorld ( void  )
virtual

实现了 AbstractCamera.

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

22 {
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}
QMatrix4x4 model_view_mat_
static QMatrix4x4 YawPitchRoll(float yawInDegrees, float picthInDegrees, float rollInDegrees)

◆ Walk()

void FreeCamera::Walk ( const float  dt)
inline

在文件 free_camera.h 第 33 行定义.

33{ translation_ += (look_ * dt); }

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