Apply alpha restrictions when we apply the edit.

This commit is contained in:
Andrzej Kapolka 2014-10-13 16:01:38 -07:00
parent 84022fd19d
commit fcbdf04c19
2 changed files with 12 additions and 12 deletions

View file

@ -1392,16 +1392,14 @@ void VoxelMaterialBoxTool::applyValue(const glm::vec3& minimum, const glm::vec3&
} else {
material = SharedObjectPointer();
}
QColor color = _color->getColor();
color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f);
Cuboid* cuboid = new Cuboid();
cuboid->setTranslation((maximum + minimum) * 0.5f);
glm::vec3 vector = (maximum - minimum) * 0.5f;
cuboid->setScale(vector.x);
cuboid->setAspectY(vector.y / vector.x);
cuboid->setAspectZ(vector.z / vector.x);
MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialSpannerEdit(SharedObjectPointer(cuboid), material, color)) };
MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialSpannerEdit(SharedObjectPointer(cuboid),
material, _color->getColor())) };
Application::getInstance()->getMetavoxels()->applyEdit(message, true);
}
@ -1489,9 +1487,7 @@ void VoxelMaterialSpannerTool::applyEdit(const AttributePointer& attribute, cons
} else {
material = SharedObjectPointer();
}
QColor color = _color->getColor();
color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f);
MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialSpannerEdit(spanner, material, color)) };
MetavoxelEditMessage message = { QVariant::fromValue(VoxelMaterialSpannerEdit(spanner, material, _color->getColor())) };
Application::getInstance()->getMetavoxels()->applyEdit(message, true);
}
@ -1595,9 +1591,7 @@ QVariant VoxelMaterialBrushTool::createEdit(bool alternate) {
} else {
material = SharedObjectPointer();
}
QColor color = _color->getColor();
color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f);
return QVariant::fromValue(PaintVoxelMaterialEdit(_position, _radius->value(), material, color));
return QVariant::fromValue(PaintVoxelMaterialEdit(_position, _radius->value(), material, _color->getColor()));
}
}

View file

@ -852,7 +852,10 @@ void VoxelMaterialSpannerEdit::apply(MetavoxelData& data, const WeakSharedObject
while (!data.getBounds().contains(spanner->getBounds())) {
data.expand();
}
VoxelMaterialSpannerEditVisitor visitor(spanner, material, averageColor);
// make sure it's either 100% transparent or 100% opaque
QColor color = averageColor;
color.setAlphaF(color.alphaF() > 0.5f ? 1.0f : 0.0f);
VoxelMaterialSpannerEditVisitor visitor(spanner, material, color);
data.guide(visitor);
}
@ -956,6 +959,9 @@ int PaintVoxelMaterialEditVisitor::visit(MetavoxelInfo& info) {
}
void PaintVoxelMaterialEdit::apply(MetavoxelData& data, const WeakSharedObjectHash& objects) const {
PaintVoxelMaterialEditVisitor visitor(position, radius, material, averageColor);
// make sure it's 100% opaque
QColor color = averageColor;
color.setAlphaF(1.0f);
PaintVoxelMaterialEditVisitor visitor(position, radius, material, color);
data.guide(visitor);
}