Use std::ranges for cg::area

This commit is contained in:
Nikita Lisitsa 2023-11-02 20:14:24 +03:00
parent 340a04d17c
commit 1584301a21

View file

@ -3,6 +3,8 @@
#include <psemek/geom/point.hpp>
#include <psemek/geom/vector.hpp>
#include <iterator>
namespace psemek::cg
{
@ -15,7 +17,7 @@ namespace psemek::cg
using point_type = std::remove_cvref_t<decltype(*begin)>;
auto origin = point_type::zero();
for (auto it = begin, prev = std::prev(end); it != end; prev = it++)
for (auto it = begin, prev = std::ranges::prev(end); it != end; prev = it++)
{
result += geom::volume(origin, *prev, *it);
}
@ -29,7 +31,7 @@ namespace psemek::cg
using scalar_type = std::remove_cvref_t<decltype((*begin)[0])>;
scalar_type result{};
for (auto it = begin, prev = std::prev(end); it != end; prev = it++)
for (auto it = begin, prev = std::ranges::prev(end); it != end; prev = it++)
{
auto const v0 = *prev - origin;
auto const v1 = *it - origin;