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

#include <abstract_camera.h>

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

Public 类型

enum class  CameraMode { PerspectiveMode , OrthoMode }
 

Public 成员函数

 AbstractCamera (void)
 
virtual ~AbstractCamera ()
 
virtual void UpdateWorld (void)=0
 
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 成员函数

static float Radians (float degrees)
 
static float Degrees (float radians)
 
static QMatrix4x4 YawPitchRoll (float yawInDegrees, float picthInDegrees, float rollInDegrees)
 

静态 Public 属性

static const QVector3D UP {0.0f, 1.0f, 0.0f}
 

Protected 属性

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_
 

详细描述

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

成员枚举类型说明

◆ CameraMode

enum class AbstractCamera::CameraMode
strong
枚举值
PerspectiveMode 
OrthoMode 

在文件 abstract_camera.h 第 23 行定义.

构造及析构函数说明

◆ AbstractCamera()

AbstractCamera::AbstractCamera ( void  )

在文件 abstract_camera.cc 第 54 行定义.

56 fov_(45.0f),
59 near_plane_(0.1f),
60 far_plane_(1000.0f),
61 position_(0.0f, 0.0f, 0.0f),
62 attitude_(),
63 look_(0.0f, 0.0f, 1.0f),
64 up_(UP),
65 right_(1.0f, 0.0f, 0.0f),
CameraMode camera_mode_
QMatrix4x4 model_view_mat_
static const QVector3D UP
QMatrix4x4 projection_mat_

◆ ~AbstractCamera()

virtual AbstractCamera::~AbstractCamera ( )
inlinevirtual

在文件 abstract_camera.h 第 38 行定义.

38{}

成员函数说明

◆ attitude()

const QVector3D & AbstractCamera::attitude ( void  ) const
inline

在文件 abstract_camera.h 第 101 行定义.

101{ return attitude_; }

◆ camera_mode()

CameraMode AbstractCamera::camera_mode ( void  ) const
inline

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

42{ return camera_mode_; }

◆ Degrees()

static float AbstractCamera::Degrees ( float  radians)
inlinestatic

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

30 {
31 return radians * static_cast<float>(57.295779513082320876798154814105);
32 }

◆ far_plane()

float AbstractCamera::far_plane ( void  ) const
inline

在文件 abstract_camera.h 第 63 行定义.

63{ return far_plane_; }

◆ fov()

float AbstractCamera::fov ( void  ) const
inline

在文件 abstract_camera.h 第 57 行定义.

57{ return fov_; }

◆ look()

const QVector3D & AbstractCamera::look ( void  ) const
inline

在文件 abstract_camera.h 第 110 行定义.

110{ return look_; }

◆ model_view_matrix()

const QMatrix4x4 & AbstractCamera::model_view_matrix ( void  ) const
inline

在文件 abstract_camera.h 第 46 行定义.

46{ return model_view_mat_; }

◆ near_plane()

float AbstractCamera::near_plane ( void  ) const
inline

在文件 abstract_camera.h 第 60 行定义.

60{ return near_plane_; }

◆ near_plane_height()

float AbstractCamera::near_plane_height ( void  ) const
inline

在文件 abstract_camera.h 第 48 行定义.

48{ return near_plane_height_; }

◆ near_plane_width()

float AbstractCamera::near_plane_width ( void  ) const
inline

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

49{ return near_plane_width_; }

◆ pitch()

float AbstractCamera::pitch ( void  ) const
inline

在文件 abstract_camera.h 第 95 行定义.

95{ return attitude_[1]; }

◆ position()

const QVector3D & AbstractCamera::position ( void  ) const
inline

在文件 abstract_camera.h 第 84 行定义.

84{ return position_; }

◆ projection_matrix()

const QMatrix4x4 & AbstractCamera::projection_matrix ( void  ) const
inline

在文件 abstract_camera.h 第 45 行定义.

45{ return projection_mat_; }

◆ Radians()

static float AbstractCamera::Radians ( float  degrees)
inlinestatic

在文件 abstract_camera.h 第 26 行定义.

26 {
27 return degrees * static_cast<float>(0.01745329251994329576923690768489);
28 }

◆ roll()

float AbstractCamera::roll ( void  ) const
inline

在文件 abstract_camera.h 第 98 行定义.

98{ return attitude_[2]; }

◆ set_camera_mode()

void AbstractCamera::set_camera_mode ( CameraMode  cm)
inline

在文件 abstract_camera.h 第 43 行定义.

43{ camera_mode_ = cm; }

◆ set_far_plane()

void AbstractCamera::set_far_plane ( float  f)
inline

在文件 abstract_camera.h 第 64 行定义.

64{ far_plane_ = f; }
double f

◆ set_fov()

void AbstractCamera::set_fov ( const float  fovInDegrees)
inline

在文件 abstract_camera.h 第 58 行定义.

58{ fov_ = fovInDegrees; }

◆ set_near_plane()

void AbstractCamera::set_near_plane ( float  n)
inline

在文件 abstract_camera.h 第 61 行定义.

61{ near_plane_ = n; }

◆ set_near_plane_height()

void AbstractCamera::set_near_plane_height ( const float  npHeight)
inline

在文件 abstract_camera.h 第 50 行定义.

50 {
51 near_plane_height_ = npHeight;
52 }

◆ set_near_plane_width()

void AbstractCamera::set_near_plane_width ( const float  npWidth)
inline

在文件 abstract_camera.h 第 53 行定义.

53 {
54 near_plane_width_ = npWidth;
55 }

◆ set_pitch()

void AbstractCamera::set_pitch ( float  pInDegrees)
inline

在文件 abstract_camera.h 第 96 行定义.

96{ attitude_[1] = pInDegrees; }

◆ set_position() [1/2]

void AbstractCamera::set_position ( const QVector3D &  pos)
inline

在文件 abstract_camera.h 第 85 行定义.

85{ position_ = pos; }

◆ set_position() [2/2]

void AbstractCamera::set_position ( float  x,
float  y,
float  z 
)
inline

在文件 abstract_camera.h 第 86 行定义.

86 {
87 position_.setX(x);
88 position_.setY(y);
89 position_.setZ(z);
90 }
float y(void) const
float z(void) const
float x(void) const

◆ set_roll()

void AbstractCamera::set_roll ( float  rInDegrees)
inline

在文件 abstract_camera.h 第 99 行定义.

99{ attitude_[2] = rInDegrees; }

◆ set_x()

void AbstractCamera::set_x ( float  x)
inline

在文件 abstract_camera.h 第 80 行定义.

80{ position_[0] = x; }

◆ set_y()

void AbstractCamera::set_y ( float  y)
inline

在文件 abstract_camera.h 第 81 行定义.

81{ position_[1] = y; }

◆ set_yaw()

void AbstractCamera::set_yaw ( float  yInDegrees)
inline

在文件 abstract_camera.h 第 93 行定义.

93{ attitude_[0] = yInDegrees; }

◆ set_z()

void AbstractCamera::set_z ( float  z)
inline

在文件 abstract_camera.h 第 82 行定义.

82{ position_[2] = z; }

◆ SetAttitude()

void AbstractCamera::SetAttitude ( float  yawInDegrees,
float  pitchInDegrees,
float  rollInDegrees 
)
inline

在文件 abstract_camera.h 第 103 行定义.

104 {
105 attitude_[0] = yawInDegrees;
106 attitude_[1] = pitchInDegrees;
107 attitude_[2] = rollInDegrees;
108 }

◆ SetUpProjection()

void AbstractCamera::SetUpProjection ( float  fovInDegrees,
float  nearPlaneWidth,
float  nearPlaneHeight,
float  near = 0.1f,
float  far = 1000.f 
)
inline

在文件 abstract_camera.h 第 66 行定义.

68 {
69 fov_ = fovInDegrees;
70 near_plane_width_ = nearPlaneWidth;
71 near_plane_height_ = nearPlaneHeight;
72 near_plane_ = near;
73 far_plane_ = far;
74 }

◆ Update()

void AbstractCamera::Update ( void  )
inline

在文件 abstract_camera.h 第 124 行定义.

124 {
125 UpdateWorld();
127 }
void UpdateProjection(void)
virtual void UpdateWorld(void)=0

◆ UpdateProjection()

void AbstractCamera::UpdateProjection ( void  )
inline

在文件 abstract_camera.h 第 112 行定义.

112 {
113 projection_mat_.setToIdentity();
117 } else {
119 -near_plane_height_ / 2.0f,
120 near_plane_height_ / 2.0f, 0.0f, 0.0f);
121 }
122 }
CameraMode camera_mode(void) const

◆ UpdateWorld()

virtual void AbstractCamera::UpdateWorld ( void  )
pure virtual

在 TargetCamera , 以及 FreeCamera 内被实现.

◆ x()

float AbstractCamera::x ( void  ) const
inline

在文件 abstract_camera.h 第 76 行定义.

76{ return position_[0]; }

◆ y()

float AbstractCamera::y ( void  ) const
inline

在文件 abstract_camera.h 第 77 行定义.

77{ return position_[1]; }

◆ yaw()

float AbstractCamera::yaw ( void  ) const
inline

在文件 abstract_camera.h 第 92 行定义.

92{ return attitude_[0]; }

◆ YawPitchRoll()

QMatrix4x4 AbstractCamera::YawPitchRoll ( float  yawInDegrees,
float  picthInDegrees,
float  rollInDegrees 
)
static

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

22 {
23 yaw = Radians(yaw);
25 roll = Radians(roll);
26
27 register float tmpCy = std::cos(yaw);
28 register float tmpSy = std::sin(yaw);
29 register float tmpCp = std::cos(pitch);
30 register float tmpSp = std::sin(pitch);
31 register float tmpCr = std::cos(roll);
32 register float tmpSr = std::sin(roll);
33
34 QMatrix4x4 Result;
35 Result(0, 0) = tmpCy * tmpCr + tmpSy * tmpSp * tmpSr;
36 Result(1, 0) = tmpSr * tmpCp;
37 Result(2, 0) = -tmpSy * tmpCr + tmpCy * tmpSp * tmpSr;
38 Result(3, 0) = 0.0f;
39 Result(0, 1) = -tmpCy * tmpSr + tmpSy * tmpSp * tmpCr;
40 Result(1, 1) = tmpCr * tmpCp;
41 Result(2, 1) = tmpSr * tmpSy + tmpCy * tmpSp * tmpCr;
42 Result(3, 1) = 0.0f;
43 Result(0, 2) = tmpSy * tmpCp;
44 Result(1, 2) = -tmpSp;
45 Result(2, 2) = tmpCy * tmpCp;
46 Result(3, 2) = 0.0f;
47 Result(0, 3) = 0.0f;
48 Result(1, 3) = 0.0f;
49 Result(2, 3) = 0.0f;
50 Result(3, 3) = 1.0f;
51 return Result;
52}
float roll(void) const
float pitch(void) const
static float Radians(float degrees)
float yaw(void) const

◆ z()

float AbstractCamera::z ( void  ) const
inline

在文件 abstract_camera.h 第 78 行定义.

78{ return position_[2]; }

类成员变量说明

◆ attitude_

QVector3D AbstractCamera::attitude_
protected

在文件 abstract_camera.h 第 141 行定义.

◆ camera_mode_

CameraMode AbstractCamera::camera_mode_
protected

在文件 abstract_camera.h 第 130 行定义.

◆ far_plane_

float AbstractCamera::far_plane_
protected

在文件 abstract_camera.h 第 138 行定义.

◆ fov_

float AbstractCamera::fov_
protected

在文件 abstract_camera.h 第 132 行定义.

◆ look_

QVector3D AbstractCamera::look_
protected

在文件 abstract_camera.h 第 143 行定义.

◆ model_view_mat_

QMatrix4x4 AbstractCamera::model_view_mat_
protected

在文件 abstract_camera.h 第 148 行定义.

◆ near_plane_

float AbstractCamera::near_plane_
protected

在文件 abstract_camera.h 第 137 行定义.

◆ near_plane_height_

float AbstractCamera::near_plane_height_
protected

在文件 abstract_camera.h 第 135 行定义.

◆ near_plane_width_

float AbstractCamera::near_plane_width_
protected

在文件 abstract_camera.h 第 134 行定义.

◆ position_

QVector3D AbstractCamera::position_
protected

在文件 abstract_camera.h 第 140 行定义.

◆ projection_mat_

QMatrix4x4 AbstractCamera::projection_mat_
protected

在文件 abstract_camera.h 第 147 行定义.

◆ right_

QVector3D AbstractCamera::right_
protected

在文件 abstract_camera.h 第 145 行定义.

◆ UP

const QVector3D AbstractCamera::UP {0.0f, 1.0f, 0.0f}
static

在文件 abstract_camera.h 第 20 行定义.

◆ up_

QVector3D AbstractCamera::up_
protected

在文件 abstract_camera.h 第 144 行定义.


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