Import 2017-06-07 23:51:09: master 0beb6ddb

Author Committer Branch Timestamp Parent
jcfr jcfr master 2015-09-14 18:16:19 master 8f1a365a
Changeset

ENH: Extend Units logic API adding "GetDisplayCoefficient()"

Executing the following python snippet before and after integrating this
commit confirmed that value associated with "length" units are
converted to suitable values for display.

8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
import math
l = slicer.modules.units.logic()
s = l.GetUnitsScene()

units = ['Meter', 'Centimeter', 'Millimeter', 'Micrometer', 'Nanometer']

print("X mm -> %s", units)
for v in range(-5, 5):
value_in_mm = math.pow(10, v)
converted_values = []
for unit in units:
n = s.GetNodesByName(unit).GetItemAsObject(0)
n.SetPrecision(6)
converted_values.append(n.GetDisplayStringFromValue(value_in_mm))

print("10^%d mm -> %s" % (v, converted_values))
8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

Output before and after:

10^-5 mm -> [' 0.000000 m', ' 0.000001 cm', ' 0.000010 mm', ' 0.010000 \xb5m', ' 10.000000 nm']
10^-4 mm -> [' 0.000000 m', ' 0.000010 cm', ' 0.000100 mm', ' 0.100000 \xb5m', ' 100.000000 nm']
10^-3 mm -> [' 0.000001 m', ' 0.000100 cm', ' 0.001000 mm', ' 1.000000 \xb5m', ' 1000.000000 nm']
10^-2 mm -> [' 0.000010 m', ' 0.001000 cm', ' 0.010000 mm', ' 10.000000 \xb5m', ' 10000.000000 nm']
10^-1 mm -> [' 0.000100 m', ' 0.010000 cm', ' 0.100000 mm', ' 100.000000 \xb5m', ' 100000.000000 nm']
10^0 mm -> [' 0.001000 m', ' 0.100000 cm', ' 1.000000 mm', ' 1000.000000 \xb5m', ' 1000000.000000 nm']
10^1 mm -> [' 0.010000 m', ' 1.000000 cm', ' 10.000000 mm', ' 10000.000000 \xb5m', ' 10000000.000000 nm']
10^2 mm -> [' 0.100000 m', ' 10.000000 cm', ' 100.000000 mm', ' 100000.000000 \xb5m', ' 100000000.000000 nm']
10^3 mm -> [' 1.000000 m', ' 100.000000 cm', ' 1000.000000 mm', ' 1000000.000000 \xb5m', ' 1000000000.000000 nm']
10^4 mm -> [' 10.000000 m', ' 1000.000000 cm', ' 10000.000000 mm', ' 10000000.000000 \xb5m', ' 10000000000.000000 nm']

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@24544 3bd1e089-480b-0410-8dfb-8563597acbee

mod - Modules/Loadable/Units/Logic/vtkSlicerUnitsLogic.cxx Diff File
mod - Modules/Loadable/Units/Logic/vtkSlicerUnitsLogic.h Diff File