From 98c51f87d2e37a3dd5729b6edc14ebd689bbc47c Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 5 Sep 2014 14:00:27 -0700 Subject: [PATCH] Make sure edit colors are either 100% opaque or 100% transparent. --- interface/src/ui/MetavoxelEditor.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/interface/src/ui/MetavoxelEditor.cpp b/interface/src/ui/MetavoxelEditor.cpp index dc669365e8..0871da3be8 100644 --- a/interface/src/ui/MetavoxelEditor.cpp +++ b/interface/src/ui/MetavoxelEditor.cpp @@ -1251,8 +1251,11 @@ QColor VoxelColorBoxTool::getColor() { } void VoxelColorBoxTool::applyValue(const glm::vec3& minimum, const glm::vec3& maximum) { + // ensure that color is either 100% transparent or 100% opaque + QColor color = _color->getColor(); + color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f); MetavoxelEditMessage message = { QVariant::fromValue(VoxelColorBoxEdit(Box(minimum, maximum), - _editor->getGridSpacing(), _color->getColor())) }; + _editor->getGridSpacing(), color)) }; Application::getInstance()->getMetavoxels()->applyEdit(message, true); } @@ -1279,8 +1282,13 @@ QColor VoxelMaterialBoxTool::getColor() { void VoxelMaterialBoxTool::applyValue(const glm::vec3& minimum, const glm::vec3& maximum) { SharedObjectPointer material = _materialEditor->getObject(); _materialEditor->detachObject(); + QColor color; + if (_texture) { + color = _texture->getAverageColor(); + color.setAlphaF(1.0f); + } MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialBoxEdit(Box(minimum, maximum), - _editor->getGridSpacing(), material, _texture ? _texture->getAverageColor() : QColor())) }; + _editor->getGridSpacing(), material, color)) }; Application::getInstance()->getMetavoxels()->applyEdit(message, true); } @@ -1363,8 +1371,11 @@ QColor VoxelColorSphereTool::getColor() { } void VoxelColorSphereTool::applyValue(const glm::vec3& position, float radius) { + // ensure that color is either 100% transparent or 100% opaque + QColor color = _color->getColor(); + color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f); MetavoxelEditMessage message = { QVariant::fromValue(VoxelColorSphereEdit(position, radius, - _editor->getGridSpacing(), _color->getColor())) }; + _editor->getGridSpacing(), color)) }; Application::getInstance()->getMetavoxels()->applyEdit(message, true); } @@ -1386,8 +1397,13 @@ QColor VoxelMaterialSphereTool::getColor() { void VoxelMaterialSphereTool::applyValue(const glm::vec3& position, float radius) { SharedObjectPointer material = _materialEditor->getObject(); _materialEditor->detachObject(); + QColor color; + if (_texture) { + color = _texture->getAverageColor(); + color.setAlphaF(1.0f); + } MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialSphereEdit(position, radius, - _editor->getGridSpacing(), material, _texture ? _texture->getAverageColor() : QColor())) }; + _editor->getGridSpacing(), material, color)) }; Application::getInstance()->getMetavoxels()->applyEdit(message, true); }