honeybee-core 1.64.3__py3-none-any.whl → 1.64.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- honeybee/room.py +22 -7
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/METADATA +1 -1
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/RECORD +7 -7
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/WHEEL +0 -0
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/entry_points.txt +0 -0
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/licenses/LICENSE +0 -0
- {honeybee_core-1.64.3.dist-info → honeybee_core-1.64.4.dist-info}/top_level.txt +0 -0
honeybee/room.py
CHANGED
|
@@ -6,8 +6,8 @@ import re
|
|
|
6
6
|
import uuid
|
|
7
7
|
|
|
8
8
|
from ladybug_geometry.geometry2d import Point2D, Vector2D, Polygon2D
|
|
9
|
-
from ladybug_geometry.geometry3d import Point3D, Vector3D, Ray3D,
|
|
10
|
-
Mesh3D, Polyface3D
|
|
9
|
+
from ladybug_geometry.geometry3d import Point3D, Vector3D, Ray3D, LineSegment3D, \
|
|
10
|
+
Plane, Face3D, Mesh3D, Polyface3D
|
|
11
11
|
from ladybug_geometry.bounding import overlapping_bounding_boxes
|
|
12
12
|
from ladybug_geometry_polyskel.polysplit import perimeter_core_subpolygons
|
|
13
13
|
|
|
@@ -640,22 +640,37 @@ class Room(_BaseWithShade):
|
|
|
640
640
|
exterior_wall_to_wall, roof_ridge, exposed_floor_to_floor = [], [], []
|
|
641
641
|
underground, interior = [], []
|
|
642
642
|
|
|
643
|
-
# get all of the edges
|
|
644
|
-
|
|
643
|
+
# get all of the edges in a way that colinear edges are broken down
|
|
644
|
+
base_edges = list(self.geometry.internal_edges)
|
|
645
|
+
base_vertices = self.geometry.vertices
|
|
646
|
+
edges = []
|
|
647
|
+
for i, edge in enumerate(base_edges):
|
|
648
|
+
for pt in base_vertices:
|
|
649
|
+
if edge.distance_to_point(pt) < tolerance and \
|
|
650
|
+
not edge.p1.distance_to_point(pt) < tolerance and \
|
|
651
|
+
not edge.p2.distance_to_point(pt) < tolerance:
|
|
652
|
+
# split the edge in two at the point
|
|
653
|
+
base_edges.append(LineSegment3D.from_end_points(edge.p1, pt))
|
|
654
|
+
base_edges.append(LineSegment3D.from_end_points(pt, edge.p2))
|
|
655
|
+
break
|
|
656
|
+
else: # no further subdivision needed
|
|
657
|
+
edges.append(edge)
|
|
658
|
+
|
|
659
|
+
# map the edges to room faces
|
|
645
660
|
edge_faces = [[] for _ in edges]
|
|
646
661
|
for i, edge in enumerate(edges):
|
|
647
662
|
for face in self.faces:
|
|
648
663
|
if overlapping_bounding_boxes(face.geometry, edge, tolerance):
|
|
649
664
|
for f_edge in face.geometry.segments:
|
|
650
|
-
if
|
|
651
|
-
|
|
665
|
+
if f_edge.distance_to_point(edge.p1) < tolerance and \
|
|
666
|
+
f_edge.distance_to_point(edge.p2) < tolerance:
|
|
652
667
|
edge_faces[i].append(face)
|
|
653
668
|
break
|
|
654
669
|
|
|
655
670
|
# classify the edges by analyzing the faces they adjoin
|
|
656
671
|
for edge, faces in zip(edges, edge_faces):
|
|
657
672
|
# first check for cases where the edge should be excluded
|
|
658
|
-
if len(
|
|
673
|
+
if len(faces) <= 1: # not an edge between two faces
|
|
659
674
|
continue
|
|
660
675
|
if angle_tolerance is not None:
|
|
661
676
|
ang_tol = math.radians(angle_tolerance)
|
|
@@ -19,7 +19,7 @@ honeybee/logutil.py,sha256=2gn-6RcWqFLvwdFzBHPqUwFqTj_R3iwHKALrl-2eL7M,2564
|
|
|
19
19
|
honeybee/model.py,sha256=PayrO3hEEQfYDlsbqsnD14oGSYjY0GlL45G2aGTOLw0,202484
|
|
20
20
|
honeybee/orientation.py,sha256=GogGblASW9OU-fobfDaQ7w5yRbEAFdJJuHwg2fadhKI,5046
|
|
21
21
|
honeybee/properties.py,sha256=ok976fbUdXzLDR2XiPNf8Q5ejfOM-PArqm5CVUbFiCc,34316
|
|
22
|
-
honeybee/room.py,sha256=
|
|
22
|
+
honeybee/room.py,sha256=aYazfgBpD_Dd8Ntzz9gZEXWBqGT8wQiYeYpG0q0DuKI,169055
|
|
23
23
|
honeybee/search.py,sha256=KOIeQjYdj0yhRWPmF5kiFiH8Ei0WbzuiU-capnwYVeM,5060
|
|
24
24
|
honeybee/shade.py,sha256=2zuW1lR5wfe-UyAosuCX-3tII6CKONq7wt8Ac_jXU6c,20698
|
|
25
25
|
honeybee/shademesh.py,sha256=WnpYkt04zuB8w-6OETNP7ZfzJarykEkQig6YdNkuVOw,14069
|
|
@@ -40,9 +40,9 @@ honeybee/writer/model.py,sha256=N7F_jksf-5TrdVecuxTaFWxnPVFLmQs7k8g27TsdB7Q,177
|
|
|
40
40
|
honeybee/writer/room.py,sha256=kFghgStTU1SEJSLigXB0VjOWhZtgs4uXuAqdwd4yRQo,174
|
|
41
41
|
honeybee/writer/shade.py,sha256=EpgX-vMc-s21TnMvNWvWTKyT8iAnxu1nFVXzjY1oyF8,177
|
|
42
42
|
honeybee/writer/shademesh.py,sha256=Y41bLogJ7dwpvMe5cAWVRDRVqJEwo9e5hFJQjlt6UX8,189
|
|
43
|
-
honeybee_core-1.64.
|
|
44
|
-
honeybee_core-1.64.
|
|
45
|
-
honeybee_core-1.64.
|
|
46
|
-
honeybee_core-1.64.
|
|
47
|
-
honeybee_core-1.64.
|
|
48
|
-
honeybee_core-1.64.
|
|
43
|
+
honeybee_core-1.64.4.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
|
44
|
+
honeybee_core-1.64.4.dist-info/METADATA,sha256=W-lR05fP3-rlQO0jFyyRwlSKmek45NZ4miYuE6M9Lh8,3729
|
|
45
|
+
honeybee_core-1.64.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
46
|
+
honeybee_core-1.64.4.dist-info/entry_points.txt,sha256=r3YqOm40goBroH3ccUhpwQjvTwu10JWLd0HIRHI1J8E,47
|
|
47
|
+
honeybee_core-1.64.4.dist-info/top_level.txt,sha256=8ve7puCRLUA9XDEGc1Mcs-UX9sFjpPV8MeTaIMwQ_Tg,9
|
|
48
|
+
honeybee_core-1.64.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|