clay 0.1.2

Fast, modular and extendable ray tracer powered by OpenCL
Documentation
#pragma once

#include <clay_core/matrix.h>
#include <clay_core/map/map.h>


MAP_RET linear_rel(MAP_ARGS_DEF) {
    matrix3 linear = matrix3_load(fbuf);
    return matrix3_dot(linear, v);
}

MAP_RET linear_abs(MAP_ARGS_DEF) {
    return linear_rel(MAP_ARGS);
}

MAP_RET linear_rel_inv(MAP_ARGS_DEF) {
    matrix3 inverse = matrix3_load(fbuf + 9);
    return matrix3_dot(inverse, v);
}

MAP_RET linear_abs_inv(MAP_ARGS_DEF) {
    return linear_rel_inv(MAP_ARGS);
}

MAP_RET linear_norm(MAP_ARGS_DEF) {
    matrix3 inverse = matrix3_load(fbuf + 9);
    return matrix3_dot(matrix3_transpose(inverse), v);
}