Skip to content

Commit fa9e352

Browse files
chriswmackeyChris Mackey
authored andcommitted
fix(colorobj): Improve pole_of_inaccessibility tolerance
1 parent 121f046 commit fa9e352

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

honeybee_display/colorobj.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from ladybug_display.visualization import VisualizationSet, ContextGeometry, \
88
AnalysisGeometry, VisualizationData
99

10-
from honeybee.units import conversion_factor_to_meters
10+
from honeybee.units import conversion_factor_to_meters, parse_distance_string
1111
from honeybee.facetype import Floor
1212
from honeybee.face import Face
1313

@@ -44,11 +44,12 @@ def color_room_to_vis_set(
4444
# use text labels if requested
4545
if text_labels:
4646
# set up default variables
47-
max_txt_h = float('inf')
47+
max_txt_h, p_tol = float('inf'), 0.01
4848
if units is not None:
4949
fac_to_m = conversion_factor_to_meters(units)
5050
max_txt_h = 0.25 / fac_to_m
5151
max_txt_v = 1.0 / fac_to_m
52+
p_tol = parse_distance_string('0.01m', units)
5253
label_text = []
5354
txt_height = None if color_room.legend_parameters.is_text_height_default \
5455
else color_room.legend_parameters.text_height
@@ -65,7 +66,7 @@ def color_room_to_vis_set(
6566
if len(floor_faces) == 1:
6667
flr_geo = floor_faces[0]
6768
base_pt = flr_geo.center if flr_geo.is_convex else \
68-
flr_geo.pole_of_inaccessibility(tolerance)
69+
flr_geo.pole_of_inaccessibility(p_tol)
6970
elif len(floor_faces) == 0:
7071
c_pt = room.geometry.center
7172
base_pt = Point3D(c_pt.x, c_pt.y, room.geometry.min.z)
@@ -75,7 +76,7 @@ def color_room_to_vis_set(
7576
floor_outline = Polyline3D.join_segments(ne, tolerance)[0]
7677
flr_geo = Face3D(floor_outline.vertices[:-1])
7778
base_pt = flr_geo.center if flr_geo.is_convex else \
78-
flr_geo.pole_of_inaccessibility(tolerance)
79+
flr_geo.pole_of_inaccessibility(p_tol)
7980
base_pt = base_pt.move(m_vec)
8081
base_plane = Plane(Vector3D(0, 0, 1), base_pt)
8182
else:
@@ -152,10 +153,11 @@ def color_face_to_vis_set(
152153
# use text labels if requested
153154
if text_labels:
154155
# set up default variables
155-
max_txt_h = float('inf')
156+
max_txt_h, p_tol = float('inf'), 0.01
156157
if units is not None:
157158
fac_to_m = conversion_factor_to_meters(units)
158159
max_txt_h = 0.25 / fac_to_m
160+
p_tol = parse_distance_string('0.01m', units)
159161
label_text = []
160162
txt_height = None if color_face.legend_parameters.is_text_height_default \
161163
else color_face.legend_parameters.text_height
@@ -164,7 +166,7 @@ def color_face_to_vis_set(
164166
for face_prop, f_geo in zip(color_face.attributes, color_face.flat_geometry):
165167
if face_prop != 'N/A':
166168
cent_pt = f_geo.center if f_geo.is_convex else \
167-
f_geo.pole_of_inaccessibility(tolerance)
169+
f_geo.pole_of_inaccessibility(p_tol)
168170
base_plane = Plane(f_geo.normal, cent_pt)
169171
if base_plane.y.z < 0: # base plane pointing downwards; rotate it
170172
base_plane = base_plane.rotate(base_plane.n, math.pi, base_plane.o)

honeybee_display/energy/colorobj.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from ladybug_display.geometry3d import DisplayText3D
77
from ladybug_display.visualization import VisualizationSet, ContextGeometry, \
88
AnalysisGeometry, VisualizationData
9-
from honeybee.units import conversion_factor_to_meters
9+
from honeybee.units import conversion_factor_to_meters, parse_distance_string
1010
from honeybee.facetype import Floor
1111

1212
from ..colorobj import _room_wireframe, _process_wireframe
@@ -45,11 +45,12 @@ def energy_color_room_to_vis_set(
4545
if text_labels:
4646
txt_height, font, f_str = _process_leg_par_for_text(color_room)
4747
# loop through the rooms and create the text labels
48-
max_txt_h = float('inf')
48+
max_txt_h, p_tol = float('inf'), 0.01
4949
if units is not None:
5050
fac_to_m = conversion_factor_to_meters(units)
5151
max_txt_h = 0.25 / fac_to_m
5252
max_txt_v = 1.0 / fac_to_m
53+
p_tol = parse_distance_string('0.01m', units)
5354
label_text = []
5455
for room_val, room in zip(color_room.matched_values, color_room.matched_rooms):
5556
room_prop = f_str % room_val
@@ -63,7 +64,7 @@ def energy_color_room_to_vis_set(
6364
if len(floor_faces) == 1:
6465
flr_geo = floor_faces[0]
6566
base_pt = flr_geo.center if flr_geo.is_convex else \
66-
flr_geo.pole_of_inaccessibility(tolerance)
67+
flr_geo.pole_of_inaccessibility(p_tol)
6768
elif len(floor_faces) == 0:
6869
c_pt = room.geometry.center
6970
base_pt = Point3D(c_pt.x, c_pt.y, room.geometry.min.z)
@@ -73,7 +74,7 @@ def energy_color_room_to_vis_set(
7374
floor_outline = Polyline3D.join_segments(ne, tolerance)[0]
7475
flr_geo = Face3D(floor_outline.vertices[:-1])
7576
base_pt = flr_geo.center if flr_geo.is_convex else \
76-
flr_geo.pole_of_inaccessibility(tolerance)
77+
flr_geo.pole_of_inaccessibility(p_tol)
7778
base_pt = base_pt.move(m_vec)
7879
base_plane = Plane(Vector3D(0, 0, 1), base_pt)
7980
else:
@@ -141,17 +142,18 @@ def color_face_to_vis_set(
141142
# use text labels if requested
142143
if text_labels:
143144
# set up default variables
144-
max_txt_h = float('inf')
145+
max_txt_h, p_tol = float('inf'), 0.01
145146
if units is not None:
146147
fac_to_m = conversion_factor_to_meters(units)
147148
max_txt_h = 0.25 / fac_to_m
149+
p_tol = parse_distance_string('0.01m', units)
148150
txt_height, font, f_str = _process_leg_par_for_text(color_face)
149151
# loop through the faces and create the text labels
150152
label_text = []
151153
face_zip_obj = zip(color_face.matched_values, color_face.matched_flat_geometry)
152154
for face_val, f_geo in face_zip_obj:
153155
cent_pt = f_geo.center if f_geo.is_convex else \
154-
f_geo.pole_of_inaccessibility(tolerance)
156+
f_geo.pole_of_inaccessibility(p_tol)
155157
base_plane = Plane(f_geo.normal, cent_pt)
156158
face_prop = f_str % face_val
157159
if base_plane.y.z < 0: # base plane pointing downwards; rotate it

0 commit comments

Comments
 (0)