diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 0429fae4e1..a7dbc5f748 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -43,7 +43,7 @@ UM.Dialog TextField { id: peak_height objectName: "Peak_Height" - validator: RegExpValidator {regExp: /^-?\d{1,3}([\,|\.]\d*)?$/} + validator: RegExpValidator {regExp: /^\d{1,3}([\,|\.]\d*)?$/} width: 180 * screenScaleFactor onTextChanged: { manager.onPeakHeightChanged(text) } } diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 1852e7becc..1bab15e9d6 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -50,7 +50,7 @@ class ImageReader(MeshReader): size = max(self._ui.getWidth(), self._ui.getDepth()) return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_transparency_model, self._ui.transmittance_1mm) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_transparency_model, transmittance_1mm): + def _generateSceneNode(self, file_name, xz_size, height_from_base, base_height, blur_iterations, max_size, lighter_is_higher, use_transparency_model, transmittance_1mm): scene_node = SceneNode() mesh = MeshBuilder() @@ -68,8 +68,10 @@ class ImageReader(MeshReader): if img.width() < 2 or img.height() < 2: img = img.scaled(width, height, Qt.IgnoreAspectRatio) + height_from_base = max(height_from_base, 0) base_height = max(base_height, 0) - peak_height = max(peak_height, -base_height) + peak_height = base_height + height_from_base + xz_size = max(xz_size, 1) scale_vector = Vector(xz_size, peak_height, xz_size) diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index bae818f822..f4732c2843 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -155,8 +155,10 @@ class ImageReaderUI(QObject): if len(value) > 0: try: self.peak_height = float(value.replace(",", ".")) + if self.peak_height < 0: + self.peak_height = 2.5 except ValueError: # Can happen with incomplete numbers, such as "-". - self._width = 0 + self.peak_height = 2.5 # restore default else: self.peak_height = 0