Files
voxel-raycaster/include/Camera.h
MitchellHansen 561c07c602 Turned off experimental phong lighting in the kernel
fixed all compiler errors thrown by MSVC
Switched experimental octree map back to the old map
Refactored old map system, prettied it up
2016-10-29 00:42:49 -07:00

47 lines
962 B
C++

#pragma once
#include <SFML/System/Vector3.hpp>
#include <SFML/System/Vector2.hpp>
#include "util.hpp"
class Camera {
public:
enum DIRECTION { FORWARD, REARWARD, LEFT, RIGHT, UP, DOWN };
Camera();
Camera(sf::Vector3f position, sf::Vector2f direction);
~Camera();
int set_position(sf::Vector3f position);
int add_static_impulse(sf::Vector3f impulse);
int add_relative_impulse(DIRECTION direction, float speed);
int slew_camera(sf::Vector2f input);
int update(double delta_time);
sf::Vector2f* get_direction_pointer();
sf::Vector3f* get_position_pointer();
sf::Vector3f* get_movement_pointer();
sf::Vector3f get_movement();
sf::Vector3f get_position();
sf::Vector2f get_direction();
private:
float friction_coefficient = 0.1f;
float default_impulse = 1.0f;
// 3D vector
sf::Vector3f movement;
// XYZ
sf::Vector3f position;
// These are spherical coords
sf::Vector2f direction;
};