diff --git a/core/src/partassembly.h b/core/src/partassembly.h index 5f899a7..8071a64 100644 --- a/core/src/partassembly.h +++ b/core/src/partassembly.h @@ -23,6 +23,7 @@ public: inline CFrame assemblyOrigin() { return _assemblyOrigin; }; inline Vector3 bounds() { return _bounds; }; inline Vector3 size() { return _size; }; + inline bool multipleSelected() { return parts.size() > 1; } // Transforms the assembly such that newOrigin is now this assembly's new assemblyOrigin void SetOrigin(CFrame newOrigin); diff --git a/core/src/rendering/renderer.cpp b/core/src/rendering/renderer.cpp index c0561e9..07ddcb6 100644 --- a/core/src/rendering/renderer.cpp +++ b/core/src/rendering/renderer.cpp @@ -475,11 +475,10 @@ void renderOutlines() { } // Render AABB of selected parts - if (count <= 1) return; - - glm::vec3 outlineSize, outlinePos; - outlineSize = (max - min); - outlinePos = (max + min) / 2.f; + PartAssembly selectionAssembly = PartAssembly::FromSelection(); + if (!selectionAssembly.multipleSelected()) return; + glm::vec3 outlineSize = selectionAssembly.bounds(); + glm::vec3 outlinePos = selectionAssembly.assemblyOrigin().Position(); glm::mat4 model = glm::translate(glm::mat4(1.0f), outlinePos); model = glm::scale(model, outlineSize + glm::vec3(0.1));