Compare commits
No commits in common. "37e525d6ee02e7a96e802c2f6e1bd0a55bf1d82c" and "9a52587149b87e9adf131465708a31c1b2abf453" have entirely different histories.
37e525d6ee
...
9a52587149
9 changed files with 16 additions and 54 deletions
|
@ -36,30 +36,30 @@ void manage_inputs()
|
|||
if (InputStatus::is_special_key_pressed(GLUT_KEY_RIGHT))
|
||||
{
|
||||
timer_ticks += 5;
|
||||
OGLE::camera.local_translate({0, 0, 0.1});
|
||||
OGLE::camera.translate({0,0,0.1});
|
||||
}
|
||||
if (InputStatus::is_special_key_pressed(GLUT_KEY_LEFT))
|
||||
{
|
||||
timer_ticks -= 5;
|
||||
OGLE::camera.local_translate({0, 0, -0.1});
|
||||
OGLE::camera.translate({0,0,-0.1});
|
||||
}
|
||||
if (InputStatus::is_key_pressed(' '))
|
||||
{
|
||||
OGLE::camera.local_translate({0, 0.1, 0});
|
||||
OGLE::camera.translate({0,0.1,0});
|
||||
}
|
||||
if (InputStatus::is_special_key_pressed(GLUT_KEY_PAGE_DOWN))
|
||||
{
|
||||
OGLE::camera.local_translate({0, -0.1, 0});
|
||||
OGLE::camera.translate({0,-0.1,0});
|
||||
}
|
||||
|
||||
if (InputStatus::is_special_key_pressed(GLUT_KEY_UP))
|
||||
{
|
||||
OGLE::camera.local_translate({0.1, 0, 0});
|
||||
OGLE::camera.translate({0.1,0,0});
|
||||
}
|
||||
|
||||
if (InputStatus::is_special_key_pressed(GLUT_KEY_DOWN))
|
||||
{
|
||||
OGLE::camera.local_translate({-0.1, 0, 0});
|
||||
OGLE::camera.translate({-0.1,0,0});
|
||||
}
|
||||
|
||||
// Get mouse delta since last frame
|
||||
|
@ -103,9 +103,17 @@ int main(int argc, char** argv)
|
|||
|
||||
// Load and generate tree texture
|
||||
tree_texture.load_rgba_tga("resources/arbre.tga","resources/arbre_masque.tga");
|
||||
glGenTextures(1,tree_texture.opengl_id);
|
||||
// TODO : Put in the Texture class
|
||||
glBindTexture(GL_TEXTURE_2D,tree_texture.opengl_id[0]);
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGBA8,tree_texture.width,tree_texture.height,GL_RGBA,GL_UNSIGNED_BYTE,tree_texture.image_data);
|
||||
|
||||
// Load and generate raptor texture
|
||||
raptor_texture.load_rgb_tga("resources/RAPTOR.tga");
|
||||
glGenTextures(1, raptor_texture.opengl_id);
|
||||
// TODO : Put in the Texture class
|
||||
glBindTexture(GL_TEXTURE_2D, raptor_texture.opengl_id[0]);
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB8, raptor_texture.width, raptor_texture.height, GL_RGB, GL_UNSIGNED_BYTE, raptor_texture.image_data);
|
||||
|
||||
// Load raptor model
|
||||
raptor.load_ascii_off_file("resources/RAPTOR.off");
|
||||
|
|
|
@ -17,11 +17,7 @@ Camera::Camera(const Vec3d& eye_pos, const Vec3d& look_direction, const Vec3d& u
|
|||
compute_base_change();
|
||||
}
|
||||
|
||||
void Camera::translate(const Vec3d &translation) {
|
||||
eye = eye + translation;
|
||||
}
|
||||
|
||||
void Camera::local_translate(const Vec3d& translation)
|
||||
void Camera::translate(const Vec3d& translation)
|
||||
{
|
||||
eye = eye + translation * rotation_quaternion;
|
||||
}
|
||||
|
@ -59,21 +55,6 @@ void Camera::set_position(const Vec3d& eye_pos)
|
|||
gaze = eye_pos;
|
||||
}
|
||||
|
||||
const Vec3d& Camera::get_eyepos() const
|
||||
{
|
||||
return eye;
|
||||
}
|
||||
|
||||
const Vec3d& Camera::get_gaze() const
|
||||
{
|
||||
return gaze;
|
||||
}
|
||||
|
||||
const Vec3d& Camera::get_gazeup() const
|
||||
{
|
||||
return gaze_up;
|
||||
}
|
||||
|
||||
void Camera::compute_base_change()
|
||||
{
|
||||
// Third vector of the base, should already be normalized
|
||||
|
|
|
@ -15,12 +15,9 @@ class Camera {
|
|||
public:
|
||||
Camera(const Vec3d& eye_pos,const Vec3d& look_direction,const Vec3d& up_vector);
|
||||
|
||||
/// Translates the camera according to the world axises.
|
||||
/// \param translation Translation in the world coordinates system.
|
||||
void translate(const Vec3d& translation);
|
||||
/// Translates the camera relative to its current position and look direction.
|
||||
/// \param translation Translation where x is pointing in the direction of vision.
|
||||
void local_translate(const Vec3d& translation);
|
||||
void translate(const Vec3d& translation);
|
||||
/// Rotates the gaze around its local x and z but around global y, relatively to the current orientation.
|
||||
/// This is to provide a coherent movement in regards to mouse movement.
|
||||
/// \param rotation Angles are radians to rotate about each axis.
|
||||
|
@ -30,10 +27,6 @@ public:
|
|||
void look();
|
||||
|
||||
void set_position(const Vec3d& eye_pos);
|
||||
|
||||
const Vec3d& get_eyepos() const;
|
||||
const Vec3d& get_gaze() const;
|
||||
const Vec3d& get_gazeup() const;
|
||||
private:
|
||||
Vec3d eye;
|
||||
Vec3d gaze;
|
||||
|
|
|
@ -73,7 +73,6 @@ bool Texture::load_rgb_tga(const std::string& rgb_filename)
|
|||
{
|
||||
bool return_value = load_tga(rgb_filename,image_data);
|
||||
invert_channels(0,2);
|
||||
generate_texture();
|
||||
return return_value;
|
||||
}
|
||||
|
||||
|
@ -118,25 +117,9 @@ bool Texture::load_rgba_tga(const std::string& rgb_filename, const std::string&
|
|||
// Now we have an RGBA image, update color_bits
|
||||
color_bits = 32;
|
||||
|
||||
invert_channels(0,2);
|
||||
generate_texture();
|
||||
return true;
|
||||
}
|
||||
|
||||
void Texture::generate_texture()
|
||||
{
|
||||
glGenTextures(1,opengl_id);
|
||||
glBindTexture(GL_TEXTURE_2D,opengl_id[0]);
|
||||
if (color_bits == 24)
|
||||
{
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB8,width,height,GL_RGB,GL_UNSIGNED_BYTE,image_data);
|
||||
}
|
||||
else if (color_bits == 32)
|
||||
{
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGBA8,width,height,GL_RGBA,GL_UNSIGNED_BYTE,image_data);
|
||||
}
|
||||
}
|
||||
|
||||
void Texture::invert_channels(uint8_t first_channel, uint8_t second_channel)
|
||||
{
|
||||
uint8_t increment = color_bits/8;
|
||||
|
|
|
@ -33,9 +33,6 @@ private:
|
|||
/// Load and RGB TGA image file to an array
|
||||
bool load_tga(const std::string& filename, uint8_t*& data_array);
|
||||
|
||||
/// Initialize the texture for OpenGL
|
||||
void generate_texture();
|
||||
|
||||
void invert_channels(uint8_t first_channel,uint8_t second_channel);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue