1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2025-08-03 12:49:50 +00:00

fix tuple construction, darkroom rgb & vector3d construction

This commit is contained in:
bolero-MURAKAMI 2013-03-27 02:02:16 +09:00
parent c78e1d0e6d
commit 2e8b85e90c
53 changed files with 262 additions and 196 deletions

View file

@ -52,11 +52,26 @@ namespace sprout {
}
//
// rgb_t
// rgb
//
typedef sprout::tuples::tuple<std::uint8_t, std::uint8_t, std::uint8_t> rgb_t;
inline SPROUT_CONSTEXPR sprout::darkroom::colors::rgb_t
rgb(std::uint8_t r = 0, std::uint8_t g = 0, std::uint8_t b = 0) {
return sprout::darkroom::colors::rgb_t(r, g, b);
}
//
// rgb_f_t
// rgb_f
//
typedef sprout::tuples::tuple<std::uint8_t, std::uint8_t, std::uint8_t> rgb;
typedef sprout::tuples::tuple<double, double, double> rgb_f;
typedef sprout::tuples::tuple<double, double, double> rgb_f_t;
inline SPROUT_CONSTEXPR sprout::darkroom::colors::rgb_f_t
rgb_f(double r = 0, double g = 0, double b = 0) {
return sprout::darkroom::colors::rgb_f_t(r, g, b);
}
//
// mul

View file

@ -42,9 +42,15 @@ namespace sprout {
}
//
// vector3d_t
// vector3d
//
typedef sprout::tuples::tuple<double, double, double> vector3d;
typedef sprout::tuples::tuple<double, double, double> vector3d_t;
inline SPROUT_CONSTEXPR sprout::darkroom::coords::vector3d_t
vector3d(double x = 0, double y = 0, double z = 0) {
return sprout::darkroom::coords::vector3d_t(x, y, z);
}
//
// length_sq

View file

@ -74,8 +74,8 @@ namespace sprout {
typedef sprout::tuples::tuple<
bool,
double,
sprout::darkroom::coords::vector3d,
sprout::darkroom::coords::vector3d,
sprout::darkroom::coords::vector3d_t,
sprout::darkroom::coords::vector3d_t,
sprout::darkroom::materials::material
> intersection;
} // namespace intersects

View file

@ -15,7 +15,7 @@ namespace sprout {
//
// basic_ambient_light
//
template<typename Color = sprout::darkroom::colors::rgb_f>
template<typename Color = sprout::darkroom::colors::rgb_f_t>
class basic_ambient_light {
public:
typedef Color color_type;

View file

@ -19,8 +19,8 @@ namespace sprout {
// basic_parallel_light
//
template<
typename Position = sprout::darkroom::coords::vector3d,
typename Color = sprout::darkroom::colors::rgb_f
typename Position = sprout::darkroom::coords::vector3d_t,
typename Color = sprout::darkroom::colors::rgb_f_t
>
class basic_parallel_light {
public:

View file

@ -19,8 +19,8 @@ namespace sprout {
// basic_point_light
//
template<
typename Position = sprout::darkroom::coords::vector3d,
typename Color = sprout::darkroom::colors::rgb_f
typename Position = sprout::darkroom::coords::vector3d_t,
typename Color = sprout::darkroom::colors::rgb_f_t
>
class basic_point_light {
public:

View file

@ -81,7 +81,7 @@ namespace sprout {
//
// material
//
typedef sprout::tuples::tuple<sprout::darkroom::colors::rgb_f, double> material;
typedef sprout::tuples::tuple<sprout::darkroom::colors::rgb_f_t, double> material;
} // namespace materials
} // namespace darkroom
} // namespace sprout

View file

@ -27,7 +27,7 @@ namespace sprout {
//
// basic_aa_plane
//
template<typename Material, typename Position = sprout::darkroom::coords::vector3d>
template<typename Material, typename Position = sprout::darkroom::coords::vector3d_t>
class basic_aa_plane {
public:
typedef Material material_type;

View file

@ -17,7 +17,7 @@ namespace sprout {
//
// basic_triangle
//
template<typename Material, typename Vertex = sprout::darkroom::coords::vector3d>
template<typename Material, typename Vertex = sprout::darkroom::coords::vector3d_t>
class basic_triangle {
public:
typedef Material material_type;

View file

@ -20,7 +20,7 @@ namespace sprout {
//
// basic_sphere
//
template<typename Material, typename Position = sprout::darkroom::coords::vector3d>
template<typename Material, typename Position = sprout::darkroom::coords::vector3d_t>
class basic_sphere {
public:
typedef Material material_type;

View file

@ -125,7 +125,7 @@ namespace sprout {
//
// color_pixels
//
template<std::size_t Width, std::size_t Height, typename Color = sprout::darkroom::colors::rgb>
template<std::size_t Width, std::size_t Height, typename Color = sprout::darkroom::colors::rgb_t>
struct color_pixels {
public:
typedef sprout::array<sprout::array<Color, Width>, Height> type;

View file

@ -43,7 +43,7 @@ namespace sprout {
//
// ray
//
typedef sprout::tuples::tuple<sprout::darkroom::coords::vector3d, sprout::darkroom::coords::vector3d> ray;
typedef sprout::tuples::tuple<sprout::darkroom::coords::vector3d_t, sprout::darkroom::coords::vector3d_t> ray;
//
// point_of_intersection

View file

@ -44,7 +44,7 @@ namespace sprout {
//
// uniform_color
//
template<typename Color = sprout::darkroom::colors::rgb_f>
template<typename Color = sprout::darkroom::colors::rgb_f_t>
class uniform_color {
public:
typedef Color color_type;

View file

@ -47,7 +47,7 @@ namespace sprout {
//
// image_type
//
template<std::size_t Width, std::size_t Height, typename Color = sprout::darkroom::colors::rgb_f>
template<std::size_t Width, std::size_t Height, typename Color = sprout::darkroom::colors::rgb_f_t>
struct image_type {
public:
typedef Color color_type;

View file

@ -11,7 +11,7 @@ namespace sprout {
//
// raytracer
//
template<typename Color = sprout::darkroom::colors::rgb_f>
template<typename Color = sprout::darkroom::colors::rgb_f_t>
class raytracer {
public:
typedef Color color_type;