Commit graph

33 commits

Author SHA1 Message Date
f9fe1467e9 Fixed rotation angle about y-axis not being halved for quaternion rotation 2019-11-04 15:30:59 +01:00
3434c4c54c Added dislay list support for 3D models 2019-11-04 15:12:28 +01:00
d77655dfd5 Fixed Camera.SetPos modifying the gaze
Changed default camera position to a sane default
2019-11-03 18:03:30 +01:00
c1d4a5aa4a Moved OpenGL texture generation to the Texture class 2019-11-03 15:50:37 +01:00
6827b77bde Fixed colors of RGBA TGA not being inverted 2019-11-03 15:49:55 +01:00
370ce194fd Moved resources to the example directory 2019-11-03 15:32:47 +01:00
c44fdfb9f8 Added getters for camera properties
Added world translation for camera
Renamed previous translation to local_translate
2019-11-03 15:32:14 +01:00
2bff38edcb 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
70f76d8030 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
89a627695c 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
2bfb8c2ad2 Cleaned some includes
Replace glu include by glut in order to compile on Windows
2019-10-29 18:20:36 +01:00
459ad7e6c3 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
b8036a1c36 Added missing return for Scalar multiplication.
Added Vec3d typedef (Useful later)
Removed debug printing
2019-10-28 21:33:25 +01:00
39c9e9e6f1 Added cross and dot products
Fixed T initializers
Constified functions that could be marked const.
2019-10-22 01:11:01 +02:00
0a4c445942 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
ae8c036e0e 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
11b553ab6e Added magnitude and normalization
Refactored  `types.h` to `Vectors.h`
2019-10-14 22:36:14 +02:00
5e89dea0cf Added mouse movement and click support 2019-10-14 21:48:49 +02:00
d343fdceec Refactored specialized templates to avoid duplicates 2019-10-14 21:34:14 +02:00
2010f078bc Added some operators to the vector classes 2019-10-14 18:46:32 +02:00
a687887e5a Added missing display callback
Added compiler warnings for MSVC and GNU GCC
2019-10-12 15:01:38 +02:00
5e49d50c77 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
d89cecefea Added README 2019-10-07 19:00:37 +02:00
3639b48273 First implementation of input control with KeyStateManager
To try to do: Manage edges
2019-10-07 18:46:35 +02:00
236fd2b8d6 Minor fixes to include paths and CMakeLists
Removed draw call from model constructor with filename
2019-10-06 20:12:53 +02:00
6dc94de9f8 Added texture loading and displaying for 3D models 2019-09-30 19:20:10 +02:00
8275ae3109 Inverted Red and Blue channels for TGA loading 2019-09-30 19:19:44 +02:00
9e1b72476c 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
82f359b656 Added loading of a TGA mask image to generate alpha canal 2019-09-25 13:02:24 +02:00
ad71110cdb Fixed loadable TGA color formats 2019-09-25 01:05:29 +02:00
2fdbf21e28 TGA and RGB image loading 2019-09-25 00:36:57 +02:00
bc4f402580 Moved display functions to other file 2019-09-24 11:34:40 +02:00
88e548d058 Base program with rotating pyramids 2019-09-24 09:34:53 +02:00