4#include "camera_class.h"
6camera_class::camera_class()
23camera_class::~camera_class()
27void camera_class::set_position(
float x,
float y,
float z)
36void camera_class::set_rotation(
float x,
float y,
float z)
44XMFLOAT3 camera_class::get_position()
46 return XMFLOAT3(position_x_, position_y_, position_z_);
50XMFLOAT3 camera_class::get_rotation()
52 return XMFLOAT3(rotation_x_, rotation_y_, rotation_z_);
55void camera_class::render()
57 XMFLOAT3 up, position, lookAt;
58 XMVECTOR upVector, positionVector, lookAtVector;
59 float yaw, pitch, roll;
60 XMMATRIX rotationMatrix;
69 upVector = XMLoadFloat3(&up);
72 position.x = position_x_;
73 position.y = position_y_;
74 position.z = position_z_;
77 positionVector = XMLoadFloat3(&position);
85 lookAtVector = XMLoadFloat3(&lookAt);
88 pitch = rotation_x_ * 0.0174532925f;
89 yaw = rotation_y_ * 0.0174532925f;
90 roll = rotation_z_ * 0.0174532925f;
93 rotationMatrix = XMMatrixRotationRollPitchYaw(pitch, yaw, roll);
96 lookAtVector = XMVector3TransformCoord(lookAtVector, rotationMatrix);
97 upVector = XMVector3TransformCoord(upVector, rotationMatrix);
100 lookAtVector = XMVectorAdd(positionVector, lookAtVector);
103 view_matrix_ = XMMatrixLookAtLH(positionVector, lookAtVector, upVector);
108XMMATRIX camera_class::get_view_matrix(XMMATRIX& view_matrix)
const
110 view_matrix = view_matrix_;
114void camera_class::render_reflection(
float height)
116 XMFLOAT3 up, position, lookAt;
117 XMVECTOR upVector, positionVector, lookAtVector;
118 float yaw, pitch, roll;
119 XMMATRIX rotationMatrix;
128 upVector = XMLoadFloat3(&up);
131 position.x = position_x_;
132 position.y = -position_y_ + (height * 2.0f);
133 position.z = position_z_;
136 positionVector = XMLoadFloat3(&position);
144 lookAtVector = XMLoadFloat3(&lookAt);
147 pitch = (-1.0f * rotation_x_) * 0.0174532925f;
148 yaw = rotation_y_ * 0.0174532925f;
149 roll = rotation_z_ * 0.0174532925f;
152 rotationMatrix = XMMatrixRotationRollPitchYaw(pitch, yaw, roll);
155 lookAtVector = XMVector3TransformCoord(lookAtVector, rotationMatrix);
156 upVector = XMVector3TransformCoord(upVector, rotationMatrix);
159 lookAtVector = XMVectorAdd(positionVector, lookAtVector);
162 reflection_view_matrix_ = XMMatrixLookAtLH(positionVector, lookAtVector, upVector);
167void camera_class::get_reflection_view_matrix(XMMATRIX& reflectionViewMatrix)
const
169 reflectionViewMatrix = reflection_view_matrix_;