mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 04:37:48 +02:00
A couple comments, let right mouse button decrease height.
This commit is contained in:
parent
e24ff0130f
commit
768410ca0b
2 changed files with 5 additions and 1 deletions
|
@ -1138,7 +1138,8 @@ HeightfieldHeightBrushTool::HeightfieldHeightBrushTool(MetavoxelEditor* editor)
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant HeightfieldHeightBrushTool::createEdit(bool alternate) {
|
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) :
|
HeightfieldColorBrushTool::HeightfieldColorBrushTool(MetavoxelEditor* editor) :
|
||||||
|
|
|
@ -370,6 +370,7 @@ int PaintHeightfieldHeightEditVisitor::visit(MetavoxelInfo& info) {
|
||||||
glm::vec3 start = glm::floor(center - extents);
|
glm::vec3 start = glm::floor(center - extents);
|
||||||
glm::vec3 end = glm::ceil(center + extents);
|
glm::vec3 end = glm::ceil(center + extents);
|
||||||
|
|
||||||
|
// raise/lower all points within the radius
|
||||||
float z = qMax(start.z, 0.0f);
|
float z = qMax(start.z, 0.0f);
|
||||||
float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest);
|
float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest);
|
||||||
uchar* lineDest = (uchar*)contents.data() + (int)z * size + (int)startX;
|
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 dx = x - center.x, dz = z - center.z;
|
||||||
float distanceSquared = dx * dx + dz * dz;
|
float distanceSquared = dx * dx + dz * dz;
|
||||||
if (distanceSquared <= squaredRadius) {
|
if (distanceSquared <= squaredRadius) {
|
||||||
|
// height falls off towards edges
|
||||||
int value = *dest + scaledHeight * (squaredRadius - distanceSquared) * squaredRadiusReciprocal;
|
int value = *dest + scaledHeight * (squaredRadius - distanceSquared) * squaredRadiusReciprocal;
|
||||||
*dest = qMin(qMax(value, 0), EIGHT_BIT_MAXIMUM);
|
*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 start = glm::floor(center - extents);
|
||||||
glm::vec3 end = glm::ceil(center + extents);
|
glm::vec3 end = glm::ceil(center + extents);
|
||||||
|
|
||||||
|
// paint all points within the radius
|
||||||
float z = qMax(start.z, 0.0f);
|
float z = qMax(start.z, 0.0f);
|
||||||
float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest);
|
float startX = qMax(start.x, 0.0f), endX = qMin(end.x, (float)highest);
|
||||||
int stride = size * BYTES_PER_PIXEL;
|
int stride = size * BYTES_PER_PIXEL;
|
||||||
|
|
Loading…
Reference in a new issue