[Bf-blender-cvs] [b226236b017] master: Fix - Display correct units in "Edit voxel size" widget

Ramil Roosileht noreply at git.blender.org
Fri Apr 22 08:09:19 CEST 2022


Commit: b226236b017f5f84c5ce029689b0707f639299dc
Author: Ramil Roosileht
Date:   Fri Apr 22 08:08:15 2022 +0200
Branches: master
https://developer.blender.org/rBb226236b017f5f84c5ce029689b0707f639299dc

Fix - Display correct units in "Edit voxel size" widget

Fix for T84962
Before the patch, edit voxel size always displayed voxel size without units, just as a number in meters.
Now it changes like in the voxel remesh panel and shows correct units
Video:
{F13009428}

In adaptive mode:
{F13009435}

Reviewed By: JulienKaspar

Maniphest Tasks: T84962

Differential Revision: https://developer.blender.org/D14682

===================================================================

M	source/blender/editors/object/object_remesh.cc

===================================================================

diff --git a/source/blender/editors/object/object_remesh.cc b/source/blender/editors/object/object_remesh.cc
index 39416a5fbe3..b65e76a5031 100644
--- a/source/blender/editors/object/object_remesh.cc
+++ b/source/blender/editors/object/object_remesh.cc
@@ -40,6 +40,7 @@
 #include "BKE_report.h"
 #include "BKE_scene.h"
 #include "BKE_shrinkwrap.h"
+#include "BKE_unit.h"
 
 #include "DEG_depsgraph.h"
 #include "DEG_depsgraph_build.h"
@@ -282,7 +283,7 @@ static void voxel_size_parallel_lines_draw(uint pos3d,
   immEnd();
 }
 
-static void voxel_size_edit_draw(const bContext *UNUSED(C), ARegion *UNUSED(ar), void *arg)
+static void voxel_size_edit_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
 {
   VoxelSizeEditCustomData *cd = static_cast<VoxelSizeEditCustomData *>(arg);
 
@@ -338,8 +339,9 @@ static void voxel_size_edit_draw(const bContext *UNUSED(C), ARegion *UNUSED(ar),
   short fstyle_points = fstyle->points;
   char str[VOXEL_SIZE_EDIT_MAX_STR_LEN];
   short strdrawlen = 0;
-
-  BLI_snprintf(str, VOXEL_SIZE_EDIT_MAX_STR_LEN, "%.4f", cd->voxel_size);
+  Scene *scene = CTX_data_scene(C);
+  UnitSettings *unit = &scene->unit;
+  BKE_unit_value_as_string(str, VOXEL_SIZE_EDIT_MAX_STR_LEN, (double)(cd->voxel_size * unit->scale_length), 4, B_UNIT_LENGTH, unit, true);
   strdrawlen = BLI_strlen_utf8(str);
 
   immUnbindProgram();



More information about the Bf-blender-cvs mailing list