Commit Graph

34 Commits

Author SHA1 Message Date
Godzil
ba1ae34855 Canvas: use Tuple instead of Colour for put Pixel, add two constructor that may be usefull in the future. 2020-02-20 16:07:39 +00:00
Godzil
bc047cd89e Add viewTransform transformation 2020-02-20 15:11:40 +00:00
Godzil
863bb2a34b Name consistency 2020-02-20 14:48:11 +00:00
Godzil
14c3044acf Cosmetics 2020-02-20 13:27:12 +00:00
Godzil
999419dfe1 World is on the verge of working! 2020-02-20 01:41:53 +00:00
Godzil
dbaa6eea2c Fix Intersect and add sort the list each time we add something to it. 2020-02-20 00:46:19 +00:00
Godzil
a82b67faa4 Working on worlds.
It's currently crashing.
2020-02-19 18:05:48 +00:00
Godzil
60d639f3a7 Start working on world (domination) 2020-02-18 17:31:21 +00:00
Godzil
af96d52c5a Renaming Object to Shape (part 2) 2020-02-18 11:43:05 +00:00
Godzil
5a4f9f4dc4 Renaming Object to Shape (part 1) 2020-02-18 11:40:55 +00:00
Godzil
c1e7496d21 Fix a glib problem on some distros. 2020-02-17 22:18:59 +00:00
Godzil
5ebed12f4f Add support for point light and materials.
Add material to objects.
2020-02-17 19:12:57 +00:00
Godzil
aeb4669162 Add vector reflection via a normal vector. 2020-02-17 15:56:08 +00:00
Godzil
a8194169c5 Add function to calculate sphere normal vector on given point on the sphere. 2020-02-17 15:39:14 +00:00
Godzil
00b283053e Add transformation to objects. 2020-02-17 14:15:55 +00:00
Godzil
b799e5f819 Update a comment. 2020-02-17 13:57:07 +00:00
Godzil
cabe7ff147 Change Ray to use the generic Tuple instead of Point/Vector (but you still should use Point/Vector for initialisation) 2020-02-17 13:54:07 +00:00
Godzil
17aebe6538 Move the cross product to Tuple instead of just vector (to ease some stuff later, but this is invalid on Points) 2020-02-17 13:53:30 +00:00
Godzil
a1087a9871 Add default size to matrix (4 as it is the most common) 2020-02-17 13:52:28 +00:00
Godzil
c4418683c6 Add the hit function to get the closest non negative hit, and add some mecanisme to test that properly and report when no valid hit occur. 2020-02-17 12:24:15 +00:00
Godzil
1900d1f45d Change the Intersection to a class, and stop using memory allocation for it (and pointer)
A bit more clean (on the code side)
2020-02-17 11:48:29 +00:00
Godzil
01a0de09ab Add 3 new type of object: Sphere, Object and Intersect.
Add Intersect object as a way to report where a ray intersect another object and which one it is.
Add an Object base class for all object that can be rendered.
Add the Sphere object.
2020-02-17 11:16:20 +00:00
Godzil
8faf1db3be More Ray work. 2020-02-15 23:45:19 +00:00
Godzil
1e2588441f Rename tuple file to remove the plural.
Also add empty shell ray.
2020-02-15 23:18:04 +00:00
Godzil
1f4b14c896 Add a function to convert degree to radian. 2020-02-14 23:29:09 +00:00
Godzil
dee4b9ae91 Now we can transform! 2020-02-14 23:28:56 +00:00
Godzil
0621ca86e1 Change width to size, as it is more correct.
Add calculation of determinant, submatric, minorm cofactor and inverse of a matrix.
2020-02-14 19:19:36 +00:00
Godzil
9f2a41e6f3 Change default precision to float instead of double (need to investigate there)
Also add a way to dynamically change the precision (needed for some test that don't use non full precision result matrix)
2020-02-14 19:18:43 +00:00
Godzil
95c7616646 Moving some functions around to keep the header a bit more tidy 2020-02-14 17:52:47 +00:00
Godzil
c4c216647d First batch of matrix related functions 2020-02-14 17:49:51 +00:00
Godzil
fac2212661 Canvas implementation and add build of LodePNG 2020-02-14 16:04:28 +00:00
Godzil
f3678992c5 Add Colour implementation 2020-02-14 15:08:40 +00:00
Godzil
332e73a3d9 Add support for tuples/point/vector and corresponding tests. 2020-02-14 14:22:13 +00:00
Godzil
7b07106816 Add some nice math helping functions 2020-02-14 14:21:57 +00:00