topologicpy 0.7.94__py3-none-any.whl → 0.7.97__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.
topologicpy/Vertex.py CHANGED
@@ -1728,11 +1728,13 @@ class Vertex():
1728
1728
  The X coordinate of the input vertex.
1729
1729
 
1730
1730
  """
1731
- from topologicpy.Topology import Topology
1732
-
1733
- if not Topology.IsInstance(vertex, "Vertex"):
1734
- return None
1735
- return round(vertex.X(), mantissa)
1731
+ try:
1732
+ return round(vertex.X(), mantissa) # Hook to Core
1733
+ except:
1734
+ try:
1735
+ return round(vertex.x(), mantissa) # Hook to Core
1736
+ except:
1737
+ return None
1736
1738
 
1737
1739
  @staticmethod
1738
1740
  def Y(vertex, mantissa: int = 6) -> float:
@@ -1752,11 +1754,13 @@ class Vertex():
1752
1754
  The Y coordinate of the input vertex.
1753
1755
 
1754
1756
  """
1755
- from topologicpy.Topology import Topology
1756
-
1757
- if not Topology.IsInstance(vertex, "Vertex"):
1758
- return None
1759
- return round(vertex.Y(), mantissa)
1757
+ try:
1758
+ return round(vertex.Y(), mantissa) # Hook to Core
1759
+ except:
1760
+ try:
1761
+ return round(vertex.y(), mantissa) # Hook to Core
1762
+ except:
1763
+ return None
1760
1764
 
1761
1765
  @staticmethod
1762
1766
  def Z(vertex, mantissa: int = 6) -> float:
@@ -1776,9 +1780,11 @@ class Vertex():
1776
1780
  The Z coordinate of the input vertex.
1777
1781
 
1778
1782
  """
1779
- from topologicpy.Topology import Topology
1780
-
1781
- if not Topology.IsInstance(vertex, "Vertex"):
1782
- return None
1783
- return round(vertex.Z(), mantissa)
1783
+ try:
1784
+ return round(vertex.Z(), mantissa) # Hook to Core
1785
+ except:
1786
+ try:
1787
+ return round(vertex.z(), mantissa) # Hook to Core
1788
+ except:
1789
+ return None
1784
1790
 
topologicpy/Wire.py CHANGED
@@ -982,9 +982,9 @@ class Wire():
982
982
  sides = int(math.floor(sides))
983
983
  for i in range(sides+1):
984
984
  angle = fromAngle + math.radians(angleRange/sides)*i
985
- x = math.sin(angle)*radius + origin.X()
986
- y = math.cos(angle)*radius + origin.Y()
987
- z = origin.Z()
985
+ x = math.sin(angle)*radius + Vertex.X(origin)
986
+ y = math.cos(angle)*radius + Vertex.Y(origin)
987
+ z = Vertex.Z(origin)
988
988
  xList.append(x)
989
989
  yList.append(y)
990
990
  baseV.append(Vertex.ByCoordinates(x, y, z))
@@ -1663,7 +1663,7 @@ class Wire():
1663
1663
 
1664
1664
  graph = []
1665
1665
  for anEdge in tEdges:
1666
- graph.append([vIndex(anEdge.StartVertex(), tVertices, tolerance), vIndex(anEdge.EndVertex(), tVertices, tolerance)]) # Hook to Core
1666
+ graph.append([vIndex(Edge.StartVertex(anEdge), tVertices, tolerance), vIndex(Edge.EndVertex(anEdge), tVertices, tolerance)]) # Hook to Core
1667
1667
 
1668
1668
  cycles = []
1669
1669
  resultingCycles = main(graph, cycles, maxVertices)
@@ -1952,9 +1952,9 @@ class Wire():
1952
1952
  sides = int(math.floor(sides))
1953
1953
  for i in range(sides+1):
1954
1954
  angle = fromAngle + math.radians(angleRange/sides)*i
1955
- x = math.sin(angle)*a + origin.X()
1956
- y = math.cos(angle)*b + origin.Y()
1957
- z = origin.Z()
1955
+ x = math.sin(angle)*a + Vertex.X(origin)
1956
+ y = math.cos(angle)*b + Vertex.Y(origin)
1957
+ z = Vertex.Z(origin)
1958
1958
  xList.append(x)
1959
1959
  yList.append(y)
1960
1960
  baseV.append(Vertex.ByCoordinates(x, y, z))
@@ -1968,8 +1968,8 @@ class Wire():
1968
1968
  baseWire = Topology.Translate(baseWire, a, b, 0)
1969
1969
  baseWire = Topology.Orient(baseWire, origin=origin, dirA=[0, 0, 1], dirB=direction)
1970
1970
  # Create a Cluster of the two foci
1971
- v1 = Vertex.ByCoordinates(c+origin.X(), 0+origin.Y(), 0)
1972
- v2 = Vertex.ByCoordinates(-c+origin.X(), 0+origin.Y(), 0)
1971
+ v1 = Vertex.ByCoordinates(c+Vertex.X(origin), 0+Vertex.Y(origin), 0)
1972
+ v2 = Vertex.ByCoordinates(-c+Vertex.X(origin), 0+Vertex.Y(origin), 0)
1973
1973
  foci = Cluster.ByTopologies([v1, v2])
1974
1974
  if placement.lower() == "lowerleft":
1975
1975
  foci = Topology.Translate(foci, a, b, 0)
@@ -2483,18 +2483,18 @@ class Wire():
2483
2483
  return False
2484
2484
 
2485
2485
  def angleBetweenEdges(e1, e2, tolerance=0.0001):
2486
- a = e1.EndVertex().X() - e1.StartVertex().X()
2487
- b = e1.EndVertex().Y() - e1.StartVertex().Y()
2488
- c = e1.EndVertex().Z() - e1.StartVertex().Z()
2489
- d = Vertex.Distance(e1.EndVertex(), e2.StartVertex())
2486
+ a = Vertex.X(Edge.EndVertex(e1)) - Vertex.X(Edge.StartVertex(e1))
2487
+ b = Vertex.Y(Edge.EndVertex(e1)) - Vertex.Y(Edge.StartVertex(e1))
2488
+ c = Vertex.Z(Edge.EndVertex(e1)) - Vertex.Z(Edge.StartVertex(e1))
2489
+ d = Vertex.Distance(Edge.EndVertex(e1), Edge.StartVertex(e2))
2490
2490
  if d <= tolerance:
2491
- d = e2.StartVertex().X() - e2.EndVertex().X()
2492
- e = e2.StartVertex().Y() - e2.EndVertex().Y()
2493
- f = e2.StartVertex().Z() - e2.EndVertex().Z()
2491
+ d = Vertex.X(Edge.StartVertex(e2)) - Vertex.X(Edge.EndVertex(e2))
2492
+ e = Vertex.Y(Edge.StartVertex(e2)) - Vertex.Y(Edge.EndVertex(e2))
2493
+ f = Vertex.Z(Edge.StartVertex(e2)) - Vertex.Z(Edge.EndVertex(e2))
2494
2494
  else:
2495
- d = e2.EndVertex().X() - e2.StartVertex().X()
2496
- e = e2.EndVertex().Y() - e2.StartVertex().Y()
2497
- f = e2.EndVertex().Z() - e2.StartVertex().Z()
2495
+ d = Vertex.X(Edge.EndVertex(e2)) - Vertex.X(Edge.StartVertex(e2))
2496
+ e = Vertex.Y(Edge.EndVertex(e2)) - Vertex.Y(Edge.StartVertex(e2))
2497
+ f = Vertex.Z(Edge.EndVertex(e2)) - Vertex.Z(Edge.StartVertex(e2))
2498
2498
  dotProduct = a*d + b*e + c*f
2499
2499
  modOfVector1 = math.sqrt( a*a + b*b + c*c)*math.sqrt(d*d + e*e + f*f)
2500
2500
  angle = dotProduct/modOfVector1
@@ -2538,7 +2538,6 @@ class Wire():
2538
2538
  return True
2539
2539
  return False
2540
2540
 
2541
-
2542
2541
  @staticmethod
2543
2542
  def IShape(origin=None,
2544
2543
  width=1,
@@ -3318,7 +3317,7 @@ class Wire():
3318
3317
  return None
3319
3318
  if not direction:
3320
3319
  direction = -1*Face.Normal(face, outputType="xyz", mantissa=mantissa)
3321
- large_face = Topology.Scale(face, face.CenterOfMass(), 500, 500, 500)
3320
+ large_face = Topology.Scale(face, Topology.CenterOfMass(face), 500, 500, 500)
3322
3321
  edges = []
3323
3322
  _ = wire.Edges(None, edges)
3324
3323
  projected_edges = []
@@ -3328,8 +3327,8 @@ class Wire():
3328
3327
  for edge in edges:
3329
3328
  if edge:
3330
3329
  if (Topology.Type(edge) == Topology.TypeID("Edge")):
3331
- sv = edge.StartVertex()
3332
- ev = edge.EndVertex()
3330
+ sv = Edge.StartVertex(edge)
3331
+ ev = Edge.EndVertex(edge)
3333
3332
 
3334
3333
  psv = Vertex.Project(vertex=sv, face=large_face, direction=direction)
3335
3334
  pev = Vertex.Project(vertex=ev, face=large_face, direction=direction)
@@ -3404,10 +3403,10 @@ class Wire():
3404
3403
  xOffset = -width*0.5
3405
3404
  yOffset = -length*0.5
3406
3405
 
3407
- vb1 = Vertex.ByCoordinates(origin.X()-width*0.5+xOffset,origin.Y()-length*0.5+yOffset,origin.Z())
3408
- vb2 = Vertex.ByCoordinates(origin.X()+width*0.5+xOffset,origin.Y()-length*0.5+yOffset,origin.Z())
3409
- vb3 = Vertex.ByCoordinates(origin.X()+width*0.5+xOffset,origin.Y()+length*0.5+yOffset,origin.Z())
3410
- vb4 = Vertex.ByCoordinates(origin.X()-width*0.5+xOffset,origin.Y()+length*0.5+yOffset,origin.Z())
3406
+ vb1 = Vertex.ByCoordinates(Vertex.X(origin)-width*0.5+xOffset,Vertex.Y(origin)-length*0.5+yOffset,Vertex.Z(origin))
3407
+ vb2 = Vertex.ByCoordinates(Vertex.X(origin)+width*0.5+xOffset,Vertex.Y(origin)-length*0.5+yOffset,Vertex.Z(origin))
3408
+ vb3 = Vertex.ByCoordinates(Vertex.X(origin)+width*0.5+xOffset,Vertex.Y(origin)+length*0.5+yOffset,Vertex.Z(origin))
3409
+ vb4 = Vertex.ByCoordinates(Vertex.X(origin)-width*0.5+xOffset,Vertex.Y(origin)+length*0.5+yOffset,Vertex.Z(origin))
3411
3410
 
3412
3411
  baseWire = Wire.ByVertices([vb1, vb2, vb3, vb4], True)
3413
3412
  if direction != [0, 0, 1]:
@@ -3628,6 +3627,88 @@ class Wire():
3628
3627
  else:
3629
3628
  return wire
3630
3629
 
3630
+ @staticmethod
3631
+ def Representation(wire, normalize: bool = True, rotate: bool = True, mantissa: int = 6, tolerance: float = 0.0001):
3632
+ """
3633
+ Returns a normalized representation of a closed wire with alternating edge lengths and interior angles.
3634
+
3635
+ Parameters
3636
+ ----------
3637
+ wire : topologic_core.Wire
3638
+ The input wire.
3639
+ normalize : bool , optional
3640
+ If set to True, the lengths in the list are normalized so that the shortest edge has a length of 1. the default is True.
3641
+ rotate : bool , optional
3642
+ If set to True, the list is rotated such that the shortest edge appears first.
3643
+ mantissa : int , optional
3644
+ The desired length of the mantissa. The default is 6.
3645
+ tolerance : float , optional
3646
+ The desired tolerance. The default is 0.0001.
3647
+
3648
+ Returns
3649
+ -------
3650
+ list
3651
+ The representation list.
3652
+
3653
+ """
3654
+ from topologicpy.Vertex import Vertex
3655
+ from topologicpy.Edge import Edge
3656
+ import math
3657
+
3658
+ def angleBetweenEdges(e1, e2, tolerance=0.0001):
3659
+ a = Vertex.X(Edge.EndVertex(e1)) - Vertex.X(Edge.StartVertex(e1))
3660
+ b = Vertex.Y(Edge.EndVertex(e1)) - Vertex.Y(Edge.StartVertex(e1))
3661
+ c = Vertex.Z(Edge.EndVertex(e1)) - Vertex.Z(Edge.StartVertex(e1))
3662
+ d = Vertex.Distance(Edge.EndVertex(e1), Edge.StartVertex(e2))
3663
+ if d <= tolerance:
3664
+ d = Vertex.X(Edge.StartVertex(e2)) - Vertex.X(Edge.EndVertex(e2))
3665
+ e = Vertex.Y(Edge.StartVertex(e2)) - Vertex.Y(Edge.EndVertex(e2))
3666
+ f = Vertex.Z(Edge.StartVertex(e2)) - Vertex.Z(Edge.EndVertex(e2))
3667
+ else:
3668
+ d = Vertex.X(Edge.EndVertex(e2)) - Vertex.X(Edge.StartVertex(e2))
3669
+ e = Vertex.Y(Edge.EndVertex(e2)) - Vertex.Y(Edge.StartVertex(e2))
3670
+ f = Vertex.Z(Edge.EndVertex(e2)) - Vertex.Z(Edge.StartVertex(e2))
3671
+ dotProduct = a*d + b*e + c*f
3672
+ modOfVector1 = math.sqrt( a*a + b*b + c*c)*math.sqrt(d*d + e*e + f*f)
3673
+ angle = dotProduct/modOfVector1
3674
+ angleInDegrees = math.degrees(math.acos(angle))
3675
+ return angleInDegrees
3676
+
3677
+ def getInteriorAngles(edges, tolerance=0.0001):
3678
+ angles = []
3679
+ for i in range(len(edges)-1):
3680
+ e1 = edges[i]
3681
+ e2 = edges[i+1]
3682
+ angles.append(angleBetweenEdges(e1, e2, tolerance=tolerance))
3683
+ return angles
3684
+
3685
+ def rotate_list_to_minimum(nums):
3686
+ if not nums:
3687
+ return nums # Return the empty list as-is
3688
+
3689
+ min_index = nums.index(min(nums))
3690
+ return nums[min_index:] + nums[:min_index]
3691
+
3692
+ def getRep(edges, normalize=True, rotate=True, tolerance=0.0001):
3693
+ angles = getInteriorAngles(edges, tolerance=tolerance)
3694
+ lengths = []
3695
+ normalizedLengths = []
3696
+ for anEdge in edges:
3697
+ lengths.append(Edge.Length(anEdge))
3698
+ if normalize == True:
3699
+ minLength = min(lengths)
3700
+ else:
3701
+ minLength = 1
3702
+ for aLength in lengths:
3703
+ normalizedLengths.append(aLength/minLength)
3704
+ if rotate == True:
3705
+ return rotate_list_to_minimum([x for x in itertools.chain(*itertools.zip_longest(normalizedLengths, angles)) if x is not None])
3706
+ return [x for x in itertools.chain(*itertools.zip_longest(normalizedLengths, angles)) if x is not None]
3707
+
3708
+ edges = Topology.Edges(wire)
3709
+ return_list = [round(x, mantissa) for x in getRep(edges, normalize=normalize, rotate=rotate, tolerance=tolerance)]
3710
+ return return_list
3711
+
3631
3712
  @staticmethod
3632
3713
  def Reverse(wire, transferDictionaries = False, tolerance: float = 0.0001):
3633
3714
  """
@@ -3752,7 +3833,7 @@ class Wire():
3752
3833
  eb_vertices = Topology.Vertices(eb_wire)
3753
3834
  if normal[2] > 0:
3754
3835
  eb_vertices = list(reversed(eb_vertices))
3755
- eb_polygon_coordinates = [(v.X(), v.Y(), v.Z()) for v in eb_vertices]
3836
+ eb_polygon_coordinates = [(Vertex.X(v), Vertex.Y(v), Vertex.Z(v)) for v in eb_vertices]
3756
3837
  eb_polygonxy = [(x[0], x[1]) for x in eb_polygon_coordinates]
3757
3838
 
3758
3839
  ib_polygonsxy = []
@@ -3761,7 +3842,7 @@ class Wire():
3761
3842
  ib_vertices = Topology.Vertices(ib_wire)
3762
3843
  if normal[2] > 0:
3763
3844
  ib_vertices = list(reversed(ib_vertices))
3764
- ib_polygon_coordinates = [(v.X(), v.Y(), v.Z()) for v in ib_vertices]
3845
+ ib_polygon_coordinates = [(Vertex.X(v), Vertex.Y(v), Vertex.Z(v)) for v in ib_vertices]
3765
3846
  ib_polygonxy = [(x[0], x[1]) for x in ib_polygon_coordinates]
3766
3847
  ib_polygonsxy.append(ib_polygonxy)
3767
3848
  zero_coordinates += ib_polygon_coordinates
@@ -3828,12 +3909,12 @@ class Wire():
3828
3909
 
3829
3910
  def perpendicular_distance(point, line_start, line_end):
3830
3911
  # Calculate the perpendicular distance from a point to a line segment
3831
- x0 = point.X()
3832
- y0 = point.Y()
3833
- x1 = line_start.X()
3834
- y1 = line_start.Y()
3835
- x2 = line_end.X()
3836
- y2 = line_end.Y()
3912
+ x0 = Vertex.X(point)
3913
+ y0 = Vertex.Y(point)
3914
+ x1 = Vertex.X(line_start)
3915
+ y1 = Vertex.Y(line_start)
3916
+ x2 = Vertex.X(line_end)
3917
+ y2 = Vertex.Y(line_end)
3837
3918
 
3838
3919
  numerator = abs((y2 - y1) * x0 - (x2 - x1) * y0 + x2 * y1 - y2 * x1)
3839
3920
  denominator = Vertex.Distance(line_start, line_end)
@@ -3880,7 +3961,7 @@ class Wire():
3880
3961
  # Calculate the effective area for each point except the first and last
3881
3962
  def effective_area(p1, p2, p3):
3882
3963
  # Triangle area formed by p1, p2, and p3
3883
- return 0.5 * abs(p1.X() * (p2.Y() - p3.Y()) + p2.X() * (p3.Y() - p1.Y()) + p3.X() * (p1.Y() - p2.Y()))
3964
+ return 0.5 * abs(Vertex.X(p1) * (Vertex.Y(p2) - Vertex.Y(p3)) + Vertex.X(p2) * (Vertex.Y(p3) - Vertex.Y(p1)) + Vertex.X(p3) * (Vertex.Y(p1) - Vertex.Y(p2)))
3884
3965
 
3885
3966
  # Keep track of effective areas
3886
3967
  areas = [None] # First point has no area
@@ -4358,9 +4439,9 @@ class Wire():
4358
4439
  else:
4359
4440
  radius = radiusB
4360
4441
  angle = math.radians(360/sides)*i
4361
- x = math.sin(angle)*radius + origin.X()
4362
- y = math.cos(angle)*radius + origin.Y()
4363
- z = origin.Z()
4442
+ x = math.sin(angle)*radius + Vertex.X(origin)
4443
+ y = math.cos(angle)*radius + Vertex.Y(origin)
4444
+ z = Vertex.Z(origin)
4364
4445
  xList.append(x)
4365
4446
  yList.append(y)
4366
4447
  baseV.append([x, y])
@@ -4368,29 +4449,29 @@ class Wire():
4368
4449
  if placement.lower() == "lowerleft":
4369
4450
  xmin = min(xList)
4370
4451
  ymin = min(yList)
4371
- xOffset = origin.X() - xmin
4372
- yOffset = origin.Y() - ymin
4452
+ xOffset = Vertex.X(origin) - xmin
4453
+ yOffset = Vertex.Y(origin) - ymin
4373
4454
  elif placement.lower() == "upperleft":
4374
4455
  xmin = min(xList)
4375
4456
  ymax = max(yList)
4376
- xOffset = origin.X() - xmin
4377
- yOffset = origin.Y() - ymax
4457
+ xOffset = Vertex.X(origin) - xmin
4458
+ yOffset = Vertex.Y(origin) - ymax
4378
4459
  elif placement.lower() == "lowerright":
4379
4460
  xmax = max(xList)
4380
4461
  ymin = min(yList)
4381
- xOffset = origin.X() - xmax
4382
- yOffset = origin.Y() - ymin
4462
+ xOffset = Vertex.X(origin) - xmax
4463
+ yOffset = Vertex.Y(origin) - ymin
4383
4464
  elif placement.lower() == "upperright":
4384
4465
  xmax = max(xList)
4385
4466
  ymax = max(yList)
4386
- xOffset = origin.X() - xmax
4387
- yOffset = origin.Y() - ymax
4467
+ xOffset = Vertex.X(origin) - xmax
4468
+ yOffset = Vertex.Y(origin) - ymax
4388
4469
  else:
4389
4470
  xOffset = 0
4390
4471
  yOffset = 0
4391
4472
  tranBase = []
4392
4473
  for coord in baseV:
4393
- tranBase.append(Vertex.ByCoordinates(coord[0]+xOffset, coord[1]+yOffset, origin.Z()))
4474
+ tranBase.append(Vertex.ByCoordinates(coord[0]+xOffset, coord[1]+yOffset, Vertex.Z(origin)))
4394
4475
 
4395
4476
  baseWire = Wire.ByVertices(tranBase, True)
4396
4477
  baseWire = Wire.Reverse(baseWire)
@@ -4501,10 +4582,10 @@ class Wire():
4501
4582
  xOffset = -(max((widthA*0.5 + offsetA), (widthB*0.5 + offsetB)))
4502
4583
  yOffset = -length*0.5
4503
4584
 
4504
- vb1 = Vertex.ByCoordinates(origin.X()-widthA*0.5+offsetA+xOffset,origin.Y()-length*0.5+yOffset,origin.Z())
4505
- vb2 = Vertex.ByCoordinates(origin.X()+widthA*0.5+offsetA+xOffset,origin.Y()-length*0.5+yOffset,origin.Z())
4506
- vb3 = Vertex.ByCoordinates(origin.X()+widthB*0.5+offsetB+xOffset,origin.Y()+length*0.5+yOffset,origin.Z())
4507
- vb4 = Vertex.ByCoordinates(origin.X()-widthB*0.5++offsetB+xOffset,origin.Y()+length*0.5+yOffset,origin.Z())
4585
+ vb1 = Vertex.ByCoordinates(Vertex.X(origin)-widthA*0.5+offsetA+xOffset,Vertex.Y(origin)-length*0.5+yOffset,Vertex.Z(origin))
4586
+ vb2 = Vertex.ByCoordinates(Vertex.X(origin)+widthA*0.5+offsetA+xOffset,Vertex.Y(origin)-length*0.5+yOffset,Vertex.Z(origin))
4587
+ vb3 = Vertex.ByCoordinates(Vertex.X(origin)+widthB*0.5+offsetB+xOffset,Vertex.Y(origin)+length*0.5+yOffset,Vertex.Z(origin))
4588
+ vb4 = Vertex.ByCoordinates(Vertex.X(origin)-widthB*0.5++offsetB+xOffset,Vertex.Y(origin)+length*0.5+yOffset,Vertex.Z(origin))
4508
4589
 
4509
4590
  baseWire = Wire.ByVertices([vb1, vb2, vb3, vb4], True)
4510
4591
  if direction != [0, 0, 1]:
topologicpy/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.7.94'
1
+ __version__ = '0.7.97'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: topologicpy
3
- Version: 0.7.94
3
+ Version: 0.7.97
4
4
  Summary: An AI-Powered Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction.
5
5
  Author-email: Wassim Jabi <wassim.jabi@gmail.com>
6
6
  License: AGPL v3 License
@@ -1,36 +1,36 @@
1
1
  topologicpy/ANN.py,sha256=m_WxD1lgQqDhUpaM20Lia6TmJACDYaAE96wigsi-99U,47932
2
2
  topologicpy/Aperture.py,sha256=p9pUzTQSBWoUaDiug1V1R1hnEIEwYSXFg2t7iRAmNRY,2723
3
3
  topologicpy/BVH.py,sha256=mKVCAu9K8qzcWXtPDVH5usXZV1DNNNJl4n3rU5Lh1ZM,12931
4
- topologicpy/Cell.py,sha256=Fdqf2GCWfKe50EecBVcB8PCHKWENRUTTH8yPrOSF3-0,108321
5
- topologicpy/CellComplex.py,sha256=ncjfvJ2QJzz4Fu8BMaQBLxAQ6WHx6HfUCddaLP8kXsc,51480
4
+ topologicpy/Cell.py,sha256=o5CxsBXxtnV439I4f8VMUoDMVwO5o3q0lHinHHMSmFg,108571
5
+ topologicpy/CellComplex.py,sha256=-s8RKGa2H1eqLO7g6qyQvvuFMFJ0aIgXvIr9kOVgpjA,51608
6
6
  topologicpy/Cluster.py,sha256=__PvNVjRnFfy12aawd7HSrb3UBX3Rtd1iWSSQnPGpfk,55768
7
7
  topologicpy/Color.py,sha256=q9xsGmxFMz7sQKmygwSVS12GaTRB-OT0-_i6t3-cthE,20307
8
8
  topologicpy/Context.py,sha256=ppApYKngZZCQBFWaxIMi2z2dokY23c935IDCBosxDAE,3055
9
- topologicpy/DGL.py,sha256=Dd6O08D-vSxpjHYgKm45JpKiaeGvWlg1BRMzYMAXGNc,138991
9
+ topologicpy/DGL.py,sha256=M_znFtyPBJJz-iXLYZs2wwBj24fhevIo739dGha0chM,139041
10
10
  topologicpy/Dictionary.py,sha256=t0O7Du-iPq46FyKqZfcjHfsUK1E8GS_e67R2V5cpkbw,33186
11
- topologicpy/Edge.py,sha256=KWOJCkLDwCWyZJ5MKwDhT5umWwCYBHtLOz6ulHrSOfY,67205
12
- topologicpy/EnergyModel.py,sha256=AqTtmXE35SxvRXhG3vYAQd7GQDW-6HtjYPHua6ME4Eg,53762
11
+ topologicpy/Edge.py,sha256=gaLqyjFOqFHpw69Ftr4rc-kvakYpauQwhOK4ZO-V35g,67287
12
+ topologicpy/EnergyModel.py,sha256=UoQ9Jm-hYsN383CbcLKw-y6BKitRHj0uyh84yQ-8ACg,53856
13
13
  topologicpy/Face.py,sha256=wczXpMcfub8Eb10lA4rrXksvi5YYCbRjBdp3lOTUwK0,172618
14
- topologicpy/Graph.py,sha256=oA647-h9McD0jm2JDsLl0DV93k5ikk8tSGxptlRgL-s,455440
14
+ topologicpy/Graph.py,sha256=tAm-kvvHAgadPJIcXvqgEoMuAdAo3RS3mu9uhhgx7TI,460497
15
15
  topologicpy/Grid.py,sha256=2s9cSlWldivn1i9EUz4OOokJyANveqmRe_vR93CAndI,18245
16
16
  topologicpy/Helper.py,sha256=F3h4_qcOD_PHAoVe0tEbEE7_jYyVcaHjtwVs4QHOZuI,23978
17
- topologicpy/Honeybee.py,sha256=HfTaEV1R8K1xOVQQy9sBOhBTF_ap8A2RxZOYhirp_Mw,21835
17
+ topologicpy/Honeybee.py,sha256=Y_El6M8x3ixvvIe_VcRiwj_4C89ZZg5_WlT7adbCkpw,21849
18
18
  topologicpy/Matrix.py,sha256=umgR7An919-wGInXJ1wpqnoQ2jCPdyMe2rcWTZ16upk,8079
19
- topologicpy/Neo4j.py,sha256=t52hgE9cVsqkGc7m7fjRsLnyfRHakVHwdvF4ms7ow78,22342
19
+ topologicpy/Neo4j.py,sha256=BKOF29fRgXmdpMGkrNzuYbyqgCJ6ElPPMYlfTxXiVbc,22392
20
20
  topologicpy/Plotly.py,sha256=Tvo0_zKVEHtPhsMNNvLy5G0HIys5FPAOyp_o4QN_I_A,115760
21
21
  topologicpy/Polyskel.py,sha256=EFsuh2EwQJGPLiFUjvtXmAwdX-A4r_DxP5hF7Qd3PaU,19829
22
22
  topologicpy/PyG.py,sha256=LU9LCCzjxGPUM31qbaJXZsTvniTtgugxJY7y612t4A4,109757
23
- topologicpy/Shell.py,sha256=UdDz3zfIYmGRjoZIseviJ2cXNtR5Kx5tIsZLhWMyO_U,87906
23
+ topologicpy/Shell.py,sha256=fLRnQ79vtdBDRW1Xn8Gaap34XheGbw7UBFd-ALJ2Y1g,87978
24
24
  topologicpy/Speckle.py,sha256=AlsGlSDuKRtX5jhVsPNSSjjbZis079HbUchDH_5RJmE,18187
25
25
  topologicpy/Sun.py,sha256=42tDWMYpwRG7Z2Qjtp94eRgBuqySq7k8TgNUZDK7QxQ,36837
26
- topologicpy/Topology.py,sha256=d99wryPPXvw7eRw12GVKV-DT6jhlmVq6GsMAjg-E-40,441693
26
+ topologicpy/Topology.py,sha256=kAnJrVyrwJX8c-C4q1cewJ80byG8uaoBWUuk0T6U4SY,441788
27
27
  topologicpy/Vector.py,sha256=Cl7besf20cAGmyNPh-9gbFAHnRU5ZWSMChJ3VyFIDs4,35416
28
- topologicpy/Vertex.py,sha256=sYWTbAHqKGRUAJRCIUqrCO_xFhvsXK09Sx7E4dafPLQ,73754
29
- topologicpy/Wire.py,sha256=KDmnBzzM-9qNBt1vBPnj3t7g0y3R-sRFD2hz6zd769s,218625
28
+ topologicpy/Vertex.py,sha256=QkeNPFTX-adKhEHMole0et9FCy0xXmTHVcmsYqqotSw,73904
29
+ topologicpy/Wire.py,sha256=bX8wO96gFa7HZPY0CFlmYQBOUP_1e0jCb02BPxaY-ao,222981
30
30
  topologicpy/__init__.py,sha256=vlPCanUbxe5NifC4pHcnhSzkmmYcs_UrZrTlVMsxcFs,928
31
- topologicpy/version.py,sha256=t2Dbe3Vr_6iOI6IajmMK9OGe8SMnlHO_9Zd7vUrwzAg,23
32
- topologicpy-0.7.94.dist-info/LICENSE,sha256=FK0vJ73LuE8PYJAn7LutsReWR47-Ooovw2dnRe5yV6Q,681
33
- topologicpy-0.7.94.dist-info/METADATA,sha256=fh-3ZDxjF6yIejVjCdy7CR1S5prt8Ew8xS4KST5rZRw,10513
34
- topologicpy-0.7.94.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
35
- topologicpy-0.7.94.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
36
- topologicpy-0.7.94.dist-info/RECORD,,
31
+ topologicpy/version.py,sha256=eF2oD9YC4qAbKpy4BgX03mi3PRuOcHb_V4K8lN5jAn0,23
32
+ topologicpy-0.7.97.dist-info/LICENSE,sha256=FK0vJ73LuE8PYJAn7LutsReWR47-Ooovw2dnRe5yV6Q,681
33
+ topologicpy-0.7.97.dist-info/METADATA,sha256=pingqvbKxBUf-eX6CrZQCoIyEV1tduXqvZwpol4DDuQ,10513
34
+ topologicpy-0.7.97.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
35
+ topologicpy-0.7.97.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
36
+ topologicpy-0.7.97.dist-info/RECORD,,