Sun, 03 Jul 2022 20:18:34 +0300
Reduce edittools.cpp further
#include "src/inputvertices.h" bool InputVertices::currentPointOnExistingPoint() const { const glm::vec3& pos = this->polygon.back(); return std::any_of( this->polygon.begin(), this->polygon.end() - 1, [&pos](const glm::vec3& p){return isclose(pos, p);}); } std::size_t InputVertices::calcNumPoints() const { std::size_t result = this->polygon.size(); if (this->currentPointOnExistingPoint()) { result -= 1; } return result; } void InputVertices::updateCurrentPoint(const glm::vec3& p) { this->polygon.back() = p; this->numpoints = this->calcNumPoints(); } void InputVertices::removeLastPoint() { if (this->polygon.size() > 1) { this->polygon.erase(this->polygon.end() - 2); this->numpoints = this->calcNumPoints(); } } void InputVertices::finishCurrentPoint() { this->polygon.push_back(this->polygon.back()); } void InputVertices::clear() { *this = {}; }