Merge branch '3.0' of github.com:Ultimaker/Cura into 3.0

This commit is contained in:
Jaime van Kessel 2017-09-21 15:19:35 +02:00
commit c6e589e7d9
2 changed files with 21 additions and 30 deletions

View File

@ -12,7 +12,6 @@ from UM.Mesh.MeshBuilder import MeshBuilder
from UM.Mesh.MeshReader import MeshReader from UM.Mesh.MeshReader import MeshReader
from UM.Scene.GroupDecorator import GroupDecorator from UM.Scene.GroupDecorator import GroupDecorator
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
from cura.ZOffsetDecorator import ZOffsetDecorator
from UM.Application import Application from UM.Application import Application
from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderManager import ExtruderManager
from cura.QualityManager import QualityManager from cura.QualityManager import QualityManager
@ -47,7 +46,7 @@ class ThreeMFReader(MeshReader):
def _createMatrixFromTransformationString(self, transformation): def _createMatrixFromTransformationString(self, transformation):
if transformation == "": if transformation == "":
return Matrix() return Matrix()
splitted_transformation = transformation.split() splitted_transformation = transformation.split()
## Transformation is saved as: ## Transformation is saved as:
## M00 M01 M02 0.0 ## M00 M01 M02 0.0
@ -105,8 +104,8 @@ class ThreeMFReader(MeshReader):
# Add the setting override decorator, so we can add settings to this node. # Add the setting override decorator, so we can add settings to this node.
if settings: if settings:
um_node.addDecorator(SettingOverrideDecorator()) um_node.addDecorator(SettingOverrideDecorator())
global_container_stack = Application.getInstance().getGlobalContainerStack()
global_container_stack = Application.getInstance().getGlobalContainerStack()
# Ensure the correct next container for the SettingOverride decorator is set. # Ensure the correct next container for the SettingOverride decorator is set.
if global_container_stack: if global_container_stack:
multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1
@ -144,15 +143,12 @@ class ThreeMFReader(MeshReader):
if len(um_node.getChildren()) > 0: if len(um_node.getChildren()) > 0:
group_decorator = GroupDecorator() group_decorator = GroupDecorator()
um_node.addDecorator(group_decorator) um_node.addDecorator(group_decorator)
um_node.setSelectable(True) um_node.setSelectable(True)
if um_node.getMeshData(): if um_node.getMeshData():
# Assuming that all nodes with mesh data are printable objects # Assuming that all nodes with mesh data are printable objects
# affects (auto) slicing # affects (auto) slicing
sliceable_decorator = SliceableObjectDecorator() sliceable_decorator = SliceableObjectDecorator()
um_node.addDecorator(sliceable_decorator) um_node.addDecorator(sliceable_decorator)
return um_node return um_node
def read(self, file_name): def read(self, file_name):
@ -172,18 +168,10 @@ class ThreeMFReader(MeshReader):
transform_matrix = Matrix() transform_matrix = Matrix()
mesh_data = um_node.getMeshData() mesh_data = um_node.getMeshData()
if mesh_data is not None: if mesh_data is not None:
extents = mesh_data.getExtents() extents = mesh_data.getExtents()
center_vector = Vector(extents.center.x, extents.center.y, extents.center.z) center_vector = Vector(extents.center.x, extents.center.y, extents.center.z)
# If the object in a saved project is below the bed, keep it that way
if extents.minimum.z < 0.0:
um_node.addDecorator(ZOffsetDecorator())
um_node.callDecoration("setZOffset", extents.minimum.z)
transform_matrix.setByTranslation(center_vector) transform_matrix.setByTranslation(center_vector)
transform_matrix.multiply(um_node.getLocalTransformation()) transform_matrix.multiply(um_node.getLocalTransformation())
um_node.setTransformation(transform_matrix) um_node.setTransformation(transform_matrix)
@ -207,7 +195,7 @@ class ThreeMFReader(MeshReader):
translation_matrix.setByTranslation(translation_vector) translation_matrix.setByTranslation(translation_vector)
transformation_matrix.multiply(translation_matrix) transformation_matrix.multiply(translation_matrix)
# Third step: 3MF also defines a unit, whereas Cura always assumes mm. # Third step: 3MF also defines a unit, wheras Cura always assumes mm.
scale_matrix = Matrix() scale_matrix = Matrix()
scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit)) scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit))
transformation_matrix.multiply(scale_matrix) transformation_matrix.multiply(scale_matrix)

View File

@ -509,21 +509,23 @@ Item
} }
} }
Item Rectangle
{ {
id: infillIcon id: infillIcon
width: (infillCellRight.width / 5) - (UM.Theme.getSize("sidebar_margin").width) width: (parent.width / 5) - (UM.Theme.getSize("sidebar_margin").width)
height: width height: width
anchors.right: infillCellRight.right anchors.right: parent.right
anchors.top: infillSlider.top anchors.top: parent.top
anchors.topMargin: UM.Theme.getSize("sidebar_margin").height / 2
// we loop over all density icons and only show the one that has the current density and steps // we loop over all density icons and only show the one that has the current density and steps
Repeater Repeater
{ {
id: infillIconList id: infillIconList
model: infillModel model: infillModel
anchors.fill: parent
property int activeIndex: { property int activeIndex: {
for (var i = 0; i < infillModel.count; i++) { for (var i = 0; i < infillModel.count; i++) {
@ -541,20 +543,21 @@ Item
return -1 return -1
} }
Item { Rectangle
{
anchors.fill: parent anchors.fill: parent
visible: infillIconList.activeIndex == index
Rectangle { border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("quality_slider_available")
UM.RecolorImage {
anchors.fill: parent anchors.fill: parent
visible: infillIconList.activeIndex == index anchors.margins: 2
sourceSize.width: width
UM.RecolorImage { sourceSize.height: width
anchors.fill: parent source: UM.Theme.getIcon(model.icon)
sourceSize.width: width color: UM.Theme.getColor("quality_slider_unavailable")
sourceSize.height: width
source: UM.Theme.getIcon(model.icon)
color: UM.Theme.getColor("quality_slider_available")
}
} }
} }
} }