From 059f1396b039be4564369382cb0dada4b3b11282 Mon Sep 17 00:00:00 2001 From: "guillaume.giraud@gmail.com" Date: Thu, 2 Nov 2017 22:40:23 +0100 Subject: [PATCH] Primitives: adding one extra vertex in solid circle primitive. --- src/Magnum/Primitives/Circle.cpp | 5 +++-- src/Magnum/Primitives/Test/CircleTest.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Magnum/Primitives/Circle.cpp b/src/Magnum/Primitives/Circle.cpp index 4f4c716c0..39dda281a 100644 --- a/src/Magnum/Primitives/Circle.cpp +++ b/src/Magnum/Primitives/Circle.cpp @@ -42,9 +42,10 @@ Trade::MeshData2D Circle::solid(UnsignedInt segments) { /* Central point */ positions.emplace_back(); - /* Points on circle */ + /* Points on circle. The first/last point is here twice to close the circle + properly. */ const Rad angleIncrement(Constants::tau()/segments); - for(UnsignedInt i = 0; i != segments; ++i) { + for(UnsignedInt i = 0; i != segments + 1; ++i) { const Rad angle(Float(i)*angleIncrement); positions.emplace_back(Math::cos(angle), Math::sin(angle)); } diff --git a/src/Magnum/Primitives/Test/CircleTest.cpp b/src/Magnum/Primitives/Test/CircleTest.cpp index 0a03ef905..d0e9c7f50 100644 --- a/src/Magnum/Primitives/Test/CircleTest.cpp +++ b/src/Magnum/Primitives/Test/CircleTest.cpp @@ -51,7 +51,8 @@ void CircleTest::solid() { { 1.0f, 0.0f}, { Constants::sqrt2()/2.0f, Constants::sqrt2()/2.0f}, { 0.0f, 1.0f}, {-Constants::sqrt2()/2.0f, Constants::sqrt2()/2.0f}, {-1.0f, 0.0f}, {-Constants::sqrt2()/2.0f, -Constants::sqrt2()/2.0f}, - { 0.0f, -1.0f}, { Constants::sqrt2()/2.0f, -Constants::sqrt2()/2.0f} + { 0.0f, -1.0f}, { Constants::sqrt2()/2.0f, -Constants::sqrt2()/2.0f}, + { 1.0f, 0.0f} })); }