From 768410ca0b1c8b5f8a6322a31990b0ef81c0e38a Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 8 Aug 2014 14:14:35 -0700 Subject: [PATCH] A couple comments, let right mouse button decrease height. --- interface/src/ui/MetavoxelEditor.cpp | 3 ++- libraries/metavoxels/src/MetavoxelMessages.cpp | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/MetavoxelEditor.cpp b/interface/src/ui/MetavoxelEditor.cpp index bac8c56bc5..b6f5eb11b3 100644 --- a/interface/src/ui/MetavoxelEditor.cpp +++ b/interface/src/ui/MetavoxelEditor.cpp @@ -1138,7 +1138,8 @@ HeightfieldHeightBrushTool::HeightfieldHeightBrushTool(MetavoxelEditor* editor) } QVariant HeightfieldHeightBrushTool::createEdit(bool alternate) { - return QVariant::fromValue(PaintHeightfieldHeightEdit(_position, _radius->value(), _height->value())); + return QVariant::fromValue(PaintHeightfieldHeightEdit(_position, _radius->value(), + alternate ? (-_height->value() : _height->value()))); } HeightfieldColorBrushTool::HeightfieldColorBrushTool(MetavoxelEditor* editor) : diff --git a/libraries/metavoxels/src/MetavoxelMessages.cpp b/libraries/metavoxels/src/MetavoxelMessages.cpp index dfd647fdb5..926d839991 100644 --- a/libraries/metavoxels/src/MetavoxelMessages.cpp +++ b/libraries/metavoxels/src/MetavoxelMessages.cpp @@ -370,6 +370,7 @@ int PaintHeightfieldHeightEditVisitor::visit(MetavoxelInfo& info) { glm::vec3 start = glm::floor(center - extents); glm::vec3 end = glm::ceil(center + extents); + // raise/lower all points within the radius float z = qMax(start.z, 0.0f); float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest); uchar* lineDest = (uchar*)contents.data() + (int)z * size + (int)startX; @@ -383,6 +384,7 @@ int PaintHeightfieldHeightEditVisitor::visit(MetavoxelInfo& info) { float dx = x - center.x, dz = z - center.z; float distanceSquared = dx * dx + dz * dz; if (distanceSquared <= squaredRadius) { + // height falls off towards edges int value = *dest + scaledHeight * (squaredRadius - distanceSquared) * squaredRadiusReciprocal; *dest = qMin(qMax(value, 0), EIGHT_BIT_MAXIMUM); } @@ -452,6 +454,7 @@ int PaintHeightfieldColorEditVisitor::visit(MetavoxelInfo& info) { glm::vec3 start = glm::floor(center - extents); glm::vec3 end = glm::ceil(center + extents); + // paint all points within the radius float z = qMax(start.z, 0.0f); float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest); int stride = size * BYTES_PER_PIXEL;