What this is not: The C++ MiniLab is not part of any course, and is not related to the exam of any course.
It is not, by any means, mandatory.
What this is: The C++ MiniLab is an occasion given to the students to learn C++, by coding, as an example, the 3D math concepts that are used in courses such as 3DVG, Computer Graphics, and others. The C++ language is not a subject of any of these courses, or of their exams, but it's one of the de-facto standard languages of 3D graphics and videoGames.
When: Every Monday, 18:00.
Where: Omega room
How long: Approx 1.5h per meeting.
Language: English
How to partecipate: Just bring a (fully charged!) laptop, with some IDE installed (e.g. Visual Studio) and a C++ compliler; make sure that you can already compile and exectue a "hello world" program.
Code:
01 | 2025-03-03 (Monday) 18:00..19:30 Omega Room |
Kick-off: a class for 3D vectors |
main.cpp |
02 | 2025-03-10 (Monday) 18:00..19:30 Omega Room |
Cross, dot and testing. | main.cpp |
03 | 2025-03-17 (Monday) 18:00..19:30 Omega Room |
Multi file. More operations. | c++lab03.zip |
04 | 2025-03-24 (Monday) 18:00..19:30 Omega Room |
Ray-sphere intersection. | c++lab04.zip |
05 | 2025-03-31 (Monday) 18:00..19:30 Omega Room |
Rotations with quaternions. | c++lab05.zip |
06 | 2025-04-07 (Monday) 18:00..19:30 Omega Room |
Static functions. Assert. Clean-ups. | c++lab06.zip |
07 | 2025-04-14 (Monday) 18:00..19:30 Omega Room |
Templated functions. Start of class Image. | c++lab07.zip |
08 | 2025-04-28 (Monday) 18:00..19:30 Omega Room |
Meshes: import, modify, export. | c++lab08.zip |
09 | 2025-04-05 (Monday) 18:00..19:30 Omega Room |
A class for transformations. Rotation optimization. | c++lab09.zip |
10 | 2025-04-12 (Monday) 17:30..19:00 Omega Room |
Tranformation mixing. Multiple meshes in one file. | c++lab10.zip |
11 | 2025-04-19 (Monday) 17:30..19:00 Omega Room |
Materials and color mixes. Bounding spheres. | c++lab11.zip |
12 | 2025-04-26 (Monday) 17:30..19:00 Omega Room |
Comparing interpolations of quaternions and matrices. | c++lab12.zip |
-- | (homework) |
Do the same for Euler angles? (fill TODOs) | c++lab13.zip |
Example models: [airplane.zip] [bridge.zip] (readme)