diff --git a/RayTracer/shape/Background.cpp b/RayTracer/shape/Background.cpp index febaa1461be4a5c09ce05ca25f2de44c4e8628dd..415b1631f85972bd9754669efbbbbbe41a351386 100644 --- a/RayTracer/shape/Background.cpp +++ b/RayTracer/shape/Background.cpp @@ -9,15 +9,15 @@ Background::Background(const std::shared_ptr<material::Material>& material) // TODO TEXELS std::optional<cam::Hit> Background::intersect(const cam::Ray& r) const { return std::optional<cam::Hit>({r(std::numeric_limits<float>::infinity()), - util::Vec3(0, 0, 0), - {0, 0}, + util::Vec3({}), + {}, std::numeric_limits<float>::infinity(), material}); } // Not used std::pair<float, float> Background::texture_coordinates( const util::Vec3& pos) const { - return std::pair<float, float>({0, 0}); + return std::pair<float, float>({}); } util::AxisAlignedBoundingBox Background::bounds() const { diff --git a/RayTracer/shape/CirclePlane.cpp b/RayTracer/shape/CirclePlane.cpp index 45cb4d3b2d06f9cc8664fdc9a8c52fded824dd78..45e56ce0ae30e4f995cc75d2809e900e04b6269e 100644 --- a/RayTracer/shape/CirclePlane.cpp +++ b/RayTracer/shape/CirclePlane.cpp @@ -37,7 +37,7 @@ std::optional<cam::Hit> CirclePlane::intersect(const cam::Ray& r) const { std::pair<float, float> CirclePlane::texture_coordinates( const util::Vec3& pos) const { return std::pair<float, float>( - {pos.x() / radius + 0.5, pos.z() / radius + 0.5}); + {pos.x() / radius + 0.5f, pos.z() / radius + 0.5f}); } util::AxisAlignedBoundingBox CirclePlane::bounds() const { diff --git a/RayTracer/shape/Group.cpp b/RayTracer/shape/Group.cpp index 144296b2ba8751ea764818ecee60cd07ffce1884..f918fce1dda0aafea4624bb40fc13ae470d58d17 100644 --- a/RayTracer/shape/Group.cpp +++ b/RayTracer/shape/Group.cpp @@ -48,7 +48,7 @@ std::optional<cam::Hit> Group::intersect(const cam::Ray& r) const { // Not used std::pair<float, float> Group::texture_coordinates( const util::Vec3& pos) const { - return std::pair<float, float>({0, 0}); + return std::pair<float, float>({}); } util::AxisAlignedBoundingBox Group::bounds() const { return boundingVolume; diff --git a/RayTracer/shape/RectanglePlane.cpp b/RayTracer/shape/RectanglePlane.cpp index faf890f6d16d610f9f67848bd641749aafa9cd3e..e66ad104cb0396b54d3758e06964dc36c1ea9dea 100644 --- a/RayTracer/shape/RectanglePlane.cpp +++ b/RayTracer/shape/RectanglePlane.cpp @@ -40,7 +40,7 @@ std::optional<cam::Hit> RectanglePlane::intersect(const cam::Ray& r) const { std::pair<float, float> RectanglePlane::texture_coordinates( const util::Vec3& pos) const { return std::pair<float, float>( - {pos.x() / width + 0.5, pos.z() / depth + 0.5}); + {pos.x() / width + 0.5f, pos.z() / depth + 0.5f}); } util::AxisAlignedBoundingBox RectanglePlane::bounds() const { return util::AxisAlignedBoundingBox(util::Vec3(-width / 2, 0, -depth / 2), diff --git a/RayTracer/shape/ShapeSingleGroup.cpp b/RayTracer/shape/ShapeSingleGroup.cpp index 6cfb13e2c36b11f3ba18cd514369a060c414d2dc..35bff28b92b8c6925307fae2c4c823e9be501477 100644 --- a/RayTracer/shape/ShapeSingleGroup.cpp +++ b/RayTracer/shape/ShapeSingleGroup.cpp @@ -35,7 +35,7 @@ std::optional<cam::Hit> ShapeSingleGroup::intersect(const cam::Ray& r) const { } std::pair<float, float> ShapeSingleGroup::texture_coordinates( const util::Vec3& pos) const { - return std::pair<float, float>({0, 0}); + return std::pair<float, float>({}); } util::AxisAlignedBoundingBox ShapeSingleGroup::bounds() const { return boundingVolume; diff --git a/RayTracer/shape/Sphere.cpp b/RayTracer/shape/Sphere.cpp index d9c90e3e5078998c1037a98bf28580494f44291e..248a2e354fa5dbd90d9d68fe4f01f5dd779f42e3 100644 --- a/RayTracer/shape/Sphere.cpp +++ b/RayTracer/shape/Sphere.cpp @@ -49,7 +49,8 @@ std::pair<float, float> Sphere::texture_coordinates( const util::Vec3& pos) const { float theta = std::acos(pos.y() / radius); float phi = M_PI + std::atan2(pos.x(), pos.z()); - return std::pair<float, float>({phi / (2 * M_PI), theta / M_PI}); + return std::pair<float, float>( + {(float)(phi / (2 * M_PI)), (float)(theta / M_PI)}); } util::AxisAlignedBoundingBox Sphere::bounds() const { return util::AxisAlignedBoundingBox(util::Vec3(-radius), diff --git a/RayTracer/shape/Triangle.cpp b/RayTracer/shape/Triangle.cpp index 3e3346f28c4bc2c311d04196ce1e662b09a33c7f..d6d5b490fbbf24efd77910843ddb1c44f4c4c1a6 100644 --- a/RayTracer/shape/Triangle.cpp +++ b/RayTracer/shape/Triangle.cpp @@ -51,7 +51,7 @@ std::optional<cam::Hit> Triangle::intersect(const cam::Ray& r) const { // TODO std::pair<float, float> Triangle::texture_coordinates( const util::Vec3& pos) const { - return std::pair<float, float>({0, 0}); + return std::pair<float, float>({}); } util::AxisAlignedBoundingBox Triangle::bounds() const { // std::cout << "In tri bounds" << std::endl; diff --git a/RayTracer/shape/TriangleMesh.cpp b/RayTracer/shape/TriangleMesh.cpp index 72ea8d016daf84a003c77d05ce7271731bfd0621..b2166b5fb40183b400f728e75939e4b0c25fed19 100644 --- a/RayTracer/shape/TriangleMesh.cpp +++ b/RayTracer/shape/TriangleMesh.cpp @@ -31,25 +31,25 @@ std::optional<cam::Hit> TriangleMesh::intersect(size_t i, const cam::Ray& r) const { if (!hierarchy[i].bb.intersects(r)) return std::nullopt; std::array<cam::Hit, 3> hits = { - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, + cam::Hit(util::Vec3({}), util::Vec3({}), {}, std::numeric_limits<float>::infinity(), nullptr), - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, + cam::Hit(util::Vec3({}), util::Vec3({}), {}, std::numeric_limits<float>::infinity(), nullptr), - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, + cam::Hit(util::Vec3({}), util::Vec3({}), {}, std::numeric_limits<float>::infinity(), nullptr)}; // Check left size_t left_i = hierarchy[i].left; std::optional<cam::Hit> left_hit = std::nullopt; if (left_i != -1) left_hit = intersect(left_i, r); - hits[0] = left_hit.value_or( - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, - std::numeric_limits<float>::infinity(), nullptr)); + hits[0] = left_hit.value_or(cam::Hit(util::Vec3({}), util::Vec3({}), {}, + std::numeric_limits<float>::infinity(), + nullptr)); // Check right size_t right_i = hierarchy[i].right; std::optional<cam::Hit> right_hit = std::nullopt; if (right_i != -1) right_hit = intersect(right_i, r); hits[1] = right_hit.value_or( - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, + cam::Hit(util::Vec3({}), util::Vec3({}), {}, std::numeric_limits<float>::infinity(), nullptr)); std::optional<cam::Hit> temp = std::nullopt; @@ -69,9 +69,9 @@ std::optional<cam::Hit> TriangleMesh::intersect(size_t i, } } } - hits[2] = mid_hit.value_or( - cam::Hit(util::Vec3(0), util::Vec3(0), {0.0, 0.0}, - std::numeric_limits<float>::infinity(), nullptr)); + hits[2] = mid_hit.value_or(cam::Hit(util::Vec3({}), util::Vec3({}), {}, + std::numeric_limits<float>::infinity(), + nullptr)); std::sort(hits.begin(), hits.end(), [](cam::Hit a, cam::Hit b) { return a.scalar() < b.scalar(); }); if (hits[0].material == nullptr) return std::nullopt; @@ -81,14 +81,14 @@ std::optional<cam::Hit> TriangleMesh::intersect(size_t i, // TODO std::pair<float, float> TriangleMesh::texture_coordinates( const util::Vec3& pos) const { - return std::pair<float, float>({0.0, 0.0}); + return std::pair<float, float>({}); } util::AxisAlignedBoundingBox TriangleMesh::bounds() const { return hierarchy[0].bb; } // TODO util::SurfacePoint TriangleMesh::sampleLight() const { - return util::SurfacePoint(util::Vec3(0), 0, {0.0, 0.0}, material); + return util::SurfacePoint(util::Vec3({}), 0, {}, material); } // TODO util::Vec3 TriangleMesh::calculateLightEmission(const util::SurfacePoint& p,