Commit graph

22 commits

Author SHA1 Message Date
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