diff options
Diffstat (limited to 'libdimension/dimension')
-rw-r--r-- | libdimension/dimension/geometry.h | 8 | ||||
-rw-r--r-- | libdimension/dimension/texture.h | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/libdimension/dimension/geometry.h b/libdimension/dimension/geometry.h index 86a0111..08ac1b3 100644 --- a/libdimension/dimension/geometry.h +++ b/libdimension/dimension/geometry.h @@ -77,6 +77,14 @@ dmnsn_line_construct(dmnsn_vector x0, dmnsn_vector n) /* Vector and matrix arithmetic */ DMNSN_INLINE dmnsn_vector +dmnsn_vector_negate(dmnsn_vector rhs) +{ + /* 3 negations */ + dmnsn_vector v = { -rhs.x, -rhs.y, -rhs.z }; + return v; +} + +DMNSN_INLINE dmnsn_vector dmnsn_vector_add(dmnsn_vector lhs, dmnsn_vector rhs) { /* 3 additions */ diff --git a/libdimension/dimension/texture.h b/libdimension/dimension/texture.h index 4d0e2d7..e5a1bfd 100644 --- a/libdimension/dimension/texture.h +++ b/libdimension/dimension/texture.h @@ -58,12 +58,15 @@ typedef struct dmnsn_finish dmnsn_finish; /* Finish callback */ typedef dmnsn_color dmnsn_finish_fn(const dmnsn_finish *finish, - dmnsn_color color, dmnsn_vector x0, - dmnsn_vector normal, - dmnsn_vector reflected); + dmnsn_color light, dmnsn_color color, + dmnsn_vector ray, dmnsn_vector normal, + dmnsn_vector viewer); /* dmnsn_finish definition */ struct dmnsn_finish { + /* Ambient contribution factor */ + double ambient; + /* Callbacks */ dmnsn_finish_fn *finish_fn; dmnsn_free_fn *free_fn; |