Commit graph

31 commits

Author SHA1 Message Date
6209e91c28 Fixed Camera.SetPos modifying the gaze
Changed default camera position to a sane default
2019-11-03 18:03:30 +01:00
37e525d6ee Moved OpenGL texture generation to the Texture class 2019-11-03 15:50:37 +01:00
d0b533608a Fixed colors of RGBA TGA not being inverted 2019-11-03 15:49:55 +01:00
5f1cd422ff Moved resources to the example directory 2019-11-03 15:32:47 +01:00
9568b54b87 Added getters for camera properties
Added world translation for camera
Renamed previous translation to local_translate
2019-11-03 15:32:14 +01:00
9a52587149 Refactored project structure
- Test project is now separated from engine code
 - Engine code can now initialize OpenGL and GLUT correctly
 - Moved vectors and quaternions to a Math subdirectory

Fixed reorder warning
2019-11-02 16:25:02 +01:00
205ef0e7aa Modified cursor grab behaviour
Cursor is now trapped inside the window and will jump from one side to another when nearing the border.
The cursor is now hidden to reinforce the illusion.

Warping the cursor to the center did not work well at all on my Windows machine (Might be because it is much more powerful than my laptop) so I had to find another way.
2019-11-01 18:27:01 +01:00
f8d39c48a0 Project now buildable without Visual Studio on windows
VCPKG_ROOT environment variable needs to be set.
I had an issue with dumpbin not being found. I had to add it to my path as well.
2019-11-01 18:22:43 +01:00
442020f271 Cleaned some includes
Replace glu include by glut in order to compile on Windows
2019-10-29 18:20:36 +01:00
4a5b0f5829 Added camera!
- Can be translated locally or moved to a point in the world
 - Rotates locally around local x- and z-axis and around global y-axis.

Added key checks to test camera movement.

Added Quaternions (Inherits from CoordinatesVector<double,4>) with a view to handling the camera orientation.

Added equality operators for CoordinatesVectors.

Removed slow `glutGet()` calls.
Added custom reshape callback as we now store the window parameters to avoid some `glutGet()` calls.

Renamed `KeyStateManager` to `InputStatus` as it handles more than key states now.

Mouse movement callback now captures the cursor, handles its re-centering and when the cursor enters the window far away from its last position.

TODO : Consider limiting rotations for the camera (Prevents flipping the head around)
2019-10-28 23:45:44 +01:00
e79f88bb9b Added missing return for Scalar multiplication.
Added Vec3d typedef (Useful later)
Removed debug printing
2019-10-28 21:33:25 +01:00
f9dc00712d Added cross and dot products
Fixed T initializers
Constified functions that could be marked const.
2019-10-22 01:11:01 +02:00
18bad8389a Fixed useless copying of vectors during model.draw(), now references.
Fixed copy constructor of Vec3 (Copy-pasting is bad)
Now exits on escape
2019-10-19 04:24:08 +02:00
8cdcc9750b Specified copy constructor for Vec2 and Vec3 to change the x,y and z references and not keep references to the coordinates of the original object.
Fixed the SFINAE not triggering on normalize() because there was no template substitution.
2019-10-19 00:56:56 +02:00
4da6167836 Added magnitude and normalization
Refactored  `types.h` to `Vectors.h`
2019-10-14 22:36:14 +02:00
52acb4044c Added mouse movement and click support 2019-10-14 21:48:49 +02:00
5c90d15869 Refactored specialized templates to avoid duplicates 2019-10-14 21:34:14 +02:00
bb674cdbb6 Added some operators to the vector classes 2019-10-14 18:46:32 +02:00
38cc784ec8 Added missing display callback
Added compiler warnings for MSVC and GNU GCC
2019-10-12 15:01:38 +02:00
90f294e0cc Refactored custom Vectors to have the number of coordinates as template and use an array to store coordinates 2019-10-07 20:40:48 +02:00
89874bae6a Added README 2019-10-07 19:00:37 +02:00
1aff9c9b8f First implementation of input control with KeyStateManager
To try to do: Manage edges
2019-10-07 18:46:35 +02:00
0fea63c566 Minor fixes to include paths and CMakeLists
Removed draw call from model constructor with filename
2019-10-06 20:12:53 +02:00
4050410039 Added texture loading and displaying for 3D models 2019-09-30 19:20:10 +02:00
01ad1a2317 Inverted Red and Blue channels for TGA loading 2019-09-30 19:19:44 +02:00
94bc1228f1 Loading of a OFF ASCII file
Only supports triangles
Not textured yet
Supports scaling and rotation of the model
2019-09-30 16:55:45 +02:00
db0bd97580 Added loading of a TGA mask image to generate alpha canal 2019-09-25 13:02:24 +02:00
5e6b953822 Fixed loadable TGA color formats 2019-09-25 01:05:29 +02:00
e83cdba55b TGA and RGB image loading 2019-09-25 00:36:57 +02:00
ff59df8e28 Moved display functions to other file 2019-09-24 11:34:40 +02:00
472f280108 Base program with rotating pyramids 2019-09-24 09:34:53 +02:00