From 20e3d15f902c57cf2df490c5a8d0e4ef4c208442 Mon Sep 17 00:00:00 2001 From: phkahler <14852918+phkahler@users.noreply.github.com> Date: Tue, 10 Jan 2023 16:17:57 -0500 Subject: [PATCH] Use N for equal angle constraints. Allows 3 or 4 line segments to be set equal length all at once. --- src/constraint.cpp | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/constraint.cpp b/src/constraint.cpp index 2456658..0c317ed 100644 --- a/src/constraint.cpp +++ b/src/constraint.cpp @@ -312,21 +312,7 @@ void Constraint::MenuConstrain(Command id) { break; case Command::EQUAL: - if(gs.vectors == 3 && gs.n == 3) { - c.type = Type::EQUAL_ANGLE; - c.entityA = gs.vector[0]; - c.entityB = gs.vector[1]; - c.entityC = gs.vector[1]; - c.entityD = gs.vector[2]; - newcons.push_back(c); - } else if(gs.vectors == 4 && gs.n == 4) { - c.type = Type::EQUAL_ANGLE; - c.entityA = gs.vector[0]; - c.entityB = gs.vector[1]; - c.entityC = gs.vector[2]; - c.entityD = gs.vector[3]; - newcons.push_back(c); - } else if(gs.lineSegments >= 2 && gs.lineSegments == gs.n) { + if(gs.lineSegments >= 2 && gs.lineSegments == gs.n) { c.type = Type::EQUAL_LENGTH_LINES; c.entityA = gs.entity[0]; for (std::vector::size_type k = 1;k < gs.entity.size(); ++k){ @@ -716,7 +702,19 @@ void Constraint::MenuConstrain(Command id) { case Command::ANGLE: case Command::REF_ANGLE: { - if(gs.vectors == 2 && gs.n == 2) { + if(gs.vectors == 3 && gs.n == 3) { + c.type = Type::EQUAL_ANGLE; + c.entityA = gs.vector[0]; + c.entityB = gs.vector[1]; + c.entityC = gs.vector[1]; + c.entityD = gs.vector[2]; + } else if(gs.vectors == 4 && gs.n == 4) { + c.type = Type::EQUAL_ANGLE; + c.entityA = gs.vector[0]; + c.entityB = gs.vector[1]; + c.entityC = gs.vector[2]; + c.entityD = gs.vector[3]; + } else if(gs.vectors == 2 && gs.n == 2) { c.type = Type::ANGLE; c.entityA = gs.vector[0]; c.entityB = gs.vector[1];