topologicpy 0.7.29__py3-none-any.whl → 0.7.34__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/Graph.py +13 -6
- topologicpy/Plotly.py +4 -0
- topologicpy/Shell.py +2 -2
- topologicpy/Topology.py +13 -2
- topologicpy/Vertex.py +3 -3
- topologicpy/Wire.py +97 -28
- topologicpy/version.py +1 -1
- {topologicpy-0.7.29.dist-info → topologicpy-0.7.34.dist-info}/METADATA +1 -1
- {topologicpy-0.7.29.dist-info → topologicpy-0.7.34.dist-info}/RECORD +12 -12
- {topologicpy-0.7.29.dist-info → topologicpy-0.7.34.dist-info}/WHEEL +1 -1
- {topologicpy-0.7.29.dist-info → topologicpy-0.7.34.dist-info}/LICENSE +0 -0
- {topologicpy-0.7.29.dist-info → topologicpy-0.7.34.dist-info}/top_level.txt +0 -0
topologicpy/Graph.py
CHANGED
@@ -1142,8 +1142,6 @@ class Graph:
|
|
1142
1142
|
The desired key name to use for geometry. The default is "brep".
|
1143
1143
|
typeKey : str , optional
|
1144
1144
|
The dictionary key to use to look up the type of the node. The default is "type".
|
1145
|
-
geometryKey : str , optional
|
1146
|
-
The dictionary key to use to look up the geometry of the node. The default is "brep".
|
1147
1145
|
spaceType : str , optional
|
1148
1146
|
The dictionary string value to use to look up vertices of type "space". The default is "space".
|
1149
1147
|
wallType : str , optional
|
@@ -1778,7 +1776,7 @@ class Graph:
|
|
1778
1776
|
edges_ds = [] # A list to hold the vertices data structures until we can build the actual graphs
|
1779
1777
|
# Access specific columns within the grouped DataFrame
|
1780
1778
|
for graph_id, group_edge_df in grouped_edges:
|
1781
|
-
|
1779
|
+
vertices = vertices_ds[graph_id]
|
1782
1780
|
edges = []
|
1783
1781
|
es = [] # a list to check for duplicate edges
|
1784
1782
|
duplicate_edges = 0
|
@@ -1807,7 +1805,11 @@ class Graph:
|
|
1807
1805
|
values = [label, mask]+featureList
|
1808
1806
|
if not (src_id == dst_id) and not [src_id, dst_id] in es and not [dst_id, src_id] in es:
|
1809
1807
|
es.append([src_id, dst_id])
|
1810
|
-
|
1808
|
+
try:
|
1809
|
+
edge = Edge.ByVertices([vertices[src_id], vertices[dst_id]], tolerance=tolerance)
|
1810
|
+
except:
|
1811
|
+
print("Graph.ByCSVPath - Warning: Failed to create and add a edge to the list of edges.")
|
1812
|
+
edge = None
|
1811
1813
|
if Topology.IsInstance(edge, "Edge"):
|
1812
1814
|
d = Dictionary.ByKeysValues(edge_keys, values)
|
1813
1815
|
if Topology.IsInstance(d, "Dictionary"):
|
@@ -4886,14 +4888,14 @@ class Graph:
|
|
4886
4888
|
edgeSRCHeader="src_id", edgeDSTHeader="dst_id",
|
4887
4889
|
edgeLabelHeader="label", edgeFeaturesHeader="feat",
|
4888
4890
|
edgeTrainMaskHeader="train_mask", edgeValidateMaskHeader="val_mask", edgeTestMaskHeader="test_mask",
|
4889
|
-
edgeMaskKey=
|
4891
|
+
edgeMaskKey="mask",
|
4890
4892
|
edgeTrainRatio=0.8, edgeValidateRatio=0.1, edgeTestRatio=0.1,
|
4891
4893
|
bidirectional=True,
|
4892
4894
|
|
4893
4895
|
nodeLabelKey="label", defaultNodeLabel=0, nodeFeaturesKeys=[],
|
4894
4896
|
nodeIDHeader="node_id", nodeLabelHeader="label", nodeFeaturesHeader="feat",
|
4895
4897
|
nodeTrainMaskHeader="train_mask", nodeValidateMaskHeader="val_mask", nodeTestMaskHeader="test_mask",
|
4896
|
-
nodeMaskKey=
|
4898
|
+
nodeMaskKey="mask",
|
4897
4899
|
nodeTrainRatio=0.8, nodeValidateRatio=0.1, nodeTestRatio=0.1,
|
4898
4900
|
mantissa=6, tolerance=0.0001, overwrite=False):
|
4899
4901
|
"""
|
@@ -4920,6 +4922,8 @@ class Graph:
|
|
4920
4922
|
The edge label dictionary key saved in each graph edge. The default is "label".
|
4921
4923
|
defaultEdgeLabel : int , optional
|
4922
4924
|
The default edge label to use if no edge label is found. The default is 0.
|
4925
|
+
edgeLabelHeader : str , optional
|
4926
|
+
The desired edge label column header. The default is "label".
|
4923
4927
|
edgeSRCHeader : str , optional
|
4924
4928
|
The desired edge source column header. The default is "src_id".
|
4925
4929
|
edgeDSTHeader : str , optional
|
@@ -4967,6 +4971,9 @@ class Graph:
|
|
4967
4971
|
The desired node validate mask column header. The default is "val_mask".
|
4968
4972
|
nodeTestMaskHeader : str , optional
|
4969
4973
|
The desired node test mask column header. The default is "test_mask".
|
4974
|
+
nodeMaskKey : str , optional
|
4975
|
+
The dictionary key where the node train, validate, test category is to be found. The value should be 0 for train
|
4976
|
+
1 for validate, and 2 for test. If no key is found, the ratio of train/validate/test will be used. The default is "mask".
|
4970
4977
|
nodeTrainRatio : float , optional
|
4971
4978
|
The desired ratio of the node data to use for training. The number must be between 0 and 1. The default is 0.8 which means 80% of the data will be used for training.
|
4972
4979
|
This value is ignored if an nodeMaskKey is foud.
|
topologicpy/Plotly.py
CHANGED
@@ -2032,6 +2032,10 @@ class Plotly:
|
|
2032
2032
|
return None
|
2033
2033
|
if not camera == None and not center == None and not up == None:
|
2034
2034
|
figure = Plotly.SetCamera(figure, camera=camera, center=center, up=up, projection=projection)
|
2035
|
+
figure.update_layout(
|
2036
|
+
autosize=True,
|
2037
|
+
margin=dict(l=40, r=40, t=40, b=40)
|
2038
|
+
)
|
2035
2039
|
if renderer.lower() == "offline":
|
2036
2040
|
ofl.plot(figure)
|
2037
2041
|
else:
|
topologicpy/Shell.py
CHANGED
@@ -1189,12 +1189,12 @@ class Shell():
|
|
1189
1189
|
----------
|
1190
1190
|
shell : topologic_core.Shell
|
1191
1191
|
The input shell.
|
1192
|
-
tolerance : float, optional
|
1193
|
-
The desired tolerance. The default is 0.0001.
|
1194
1192
|
origin : topologic_core.Vertex , optional
|
1195
1193
|
The desired origin of the plane unto which the planar shell will be projected. If set to None, the centroid of the input shell will be chosen. The default is None.
|
1196
1194
|
mantissa : int , optional
|
1197
1195
|
The desired length of the mantissa. The default is 6.
|
1196
|
+
tolerance : float, optional
|
1197
|
+
The desired tolerance. The default is 0.0001.
|
1198
1198
|
|
1199
1199
|
Returns
|
1200
1200
|
-------
|
topologicpy/Topology.py
CHANGED
@@ -1955,11 +1955,13 @@ class Topology():
|
|
1955
1955
|
converted_entity = Wire.Circle(origin, radius)
|
1956
1956
|
|
1957
1957
|
elif entity_type in ['POLYLINE', 'LWPOLYLINE']:
|
1958
|
-
|
1958
|
+
with entity.points('xyz') as points:
|
1959
|
+
vertices = [Vertex.ByCoordinates(*_) for _ in points]
|
1959
1960
|
converted_entity = Wire.ByVertices(vertices)
|
1960
1961
|
|
1961
1962
|
elif entity_type == 'ARC':
|
1962
|
-
|
1963
|
+
with entity.points('xyz') as points:
|
1964
|
+
vertices = [Vertex.ByCoordinates(*_) for _ in points]
|
1963
1965
|
converted_entity = Wire.ByVertices(vertices)
|
1964
1966
|
|
1965
1967
|
elif entity_type == 'MESH':
|
@@ -7393,6 +7395,12 @@ class Topology():
|
|
7393
7395
|
The list of vertices.
|
7394
7396
|
|
7395
7397
|
"""
|
7398
|
+
from topologicpy.Graph import Graph
|
7399
|
+
|
7400
|
+
if Topology.IsInstance(topology, "Vertex"):
|
7401
|
+
return []
|
7402
|
+
if Topology.IsInstance(topology, "Graph"):
|
7403
|
+
return Graph.Vertices(topology)
|
7396
7404
|
return Topology.SubTopologies(topology=topology, subTopologyType="vertex")
|
7397
7405
|
|
7398
7406
|
@staticmethod
|
@@ -7411,8 +7419,11 @@ class Topology():
|
|
7411
7419
|
The list of edges.
|
7412
7420
|
|
7413
7421
|
"""
|
7422
|
+
from topologicpy.Graph import Graph
|
7414
7423
|
if Topology.IsInstance(topology, "Edge") or Topology.IsInstance(topology, "Vertex"):
|
7415
7424
|
return []
|
7425
|
+
if Topology.IsInstance(topology, "Graph"):
|
7426
|
+
return Graph.Edges(topology)
|
7416
7427
|
return Topology.SubTopologies(topology=topology, subTopologyType="edge")
|
7417
7428
|
|
7418
7429
|
@staticmethod
|
topologicpy/Vertex.py
CHANGED
@@ -511,7 +511,7 @@ class Vertex():
|
|
511
511
|
# Calculate the Euclidean distance
|
512
512
|
distance = np.linalg.norm(point1 - point2)
|
513
513
|
|
514
|
-
return distance
|
514
|
+
return float(distance)
|
515
515
|
|
516
516
|
def distance_point_to_line(point, line_start, line_end):
|
517
517
|
# Convert input points to NumPy arrays for vector operations
|
@@ -1493,8 +1493,8 @@ class Vertex():
|
|
1493
1493
|
|
1494
1494
|
# Calculate the distance between the closest point and the given point
|
1495
1495
|
distance = np.linalg.norm(point - closest_point)
|
1496
|
-
|
1497
|
-
|
1496
|
+
return float(distance)
|
1497
|
+
|
1498
1498
|
if not Topology.IsInstance(vertex, "Vertex"):
|
1499
1499
|
print("Vertex.PerpendicularDistance - Error: The input vertex is not a valid topologic vertex. Returning None.")
|
1500
1500
|
return None
|
topologicpy/Wire.py
CHANGED
@@ -21,7 +21,7 @@ from topologicpy.Topology import Topology
|
|
21
21
|
import math
|
22
22
|
import itertools
|
23
23
|
|
24
|
-
class Wire(
|
24
|
+
class Wire():
|
25
25
|
@staticmethod
|
26
26
|
def Arc(startVertex, middleVertex, endVertex, sides: int = 16, close: bool = True, tolerance: float = 0.0001):
|
27
27
|
"""
|
@@ -310,7 +310,7 @@ class Wire(Topology):
|
|
310
310
|
return Wire.ByEdges(edges, tolerance=tolerance)
|
311
311
|
|
312
312
|
@staticmethod
|
313
|
-
def ByOffset(wire, offset: float = 1.0, offsetKey: str = "offset",
|
313
|
+
def ByOffset(wire, offset: float = 1.0, offsetKey: str = "offset", stepOffsetA: float = 0, stepOffsetB: float = 0, stepOffsetKeyA: str = "stepOffsetA", stepOffsetKeyB: str = "stepOffsetB", bisectors: bool = False, transferDictionaries: bool = False, tolerance: float = 0.0001, silent: bool = False):
|
314
314
|
"""
|
315
315
|
Creates an offset wire from the input wire. A positive offset value results in an offset to the interior of an anti-clockwise wire.
|
316
316
|
|
@@ -322,10 +322,18 @@ class Wire(Topology):
|
|
322
322
|
The desired offset distance. The default is 1.0.
|
323
323
|
offsetKey : str , optional
|
324
324
|
The edge dictionary key under which to find the offset value. If a value cannot be found, the offset input parameter value is used instead. The default is "offset".
|
325
|
-
|
326
|
-
The amount to offset along
|
325
|
+
stepOffsetA : float , optional
|
326
|
+
The amount to offset along the previous edge when transitioning between parallel edges with different offsets. The default is 0.
|
327
|
+
stepOffsetB : float , optional
|
328
|
+
The amount to offset along the next edge when transitioning between parallel edges with different offsets. The default is 0.
|
329
|
+
stepOffsetKeyA : str , optional
|
330
|
+
The vertex dictionary key under which to find the step offset A value. If a value cannot be found, the stepOffsetA input parameter value is used instead. The default is "stepOffsetA".
|
331
|
+
stepOffsetKeyB : str , optional
|
332
|
+
The vertex dictionary key under which to find the step offset B value. If a value cannot be found, the stepOffsetB input parameter value is used instead. The default is "stepOffsetB".
|
327
333
|
bisectors : bool , optional
|
328
334
|
If set to True, The bisectors (seams) edges will be included in the returned wire. The default is False.
|
335
|
+
tranferDictionaries : bool , optional
|
336
|
+
If set to True, the dictionaries of the original wire, its edges, and its vertices are transfered to the new wire. Otherwise, they are not. The default is False.
|
329
337
|
tolerance : float , optional
|
330
338
|
The desired tolerance. The default is 0.0001.
|
331
339
|
silent : bool , optional
|
@@ -363,6 +371,7 @@ class Wire(Topology):
|
|
363
371
|
offset_edges = []
|
364
372
|
final_vertices = []
|
365
373
|
bisectors_list = []
|
374
|
+
edge_dictionaries = []
|
366
375
|
for edge in edges:
|
367
376
|
d = Topology.Dictionary(edge)
|
368
377
|
d_offset = Dictionary.ValueAtKey(d, offsetKey)
|
@@ -371,65 +380,108 @@ class Wire(Topology):
|
|
371
380
|
offsets.append(d_offset)
|
372
381
|
offset_edge = Edge.ByOffset2D(edge, d_offset)
|
373
382
|
offset_edges.append(offset_edge)
|
374
|
-
o_edges = []
|
375
383
|
for i in range(len(edges)):
|
376
|
-
edge_a = edges[i]
|
377
384
|
o_edge_a = offset_edges[i]
|
378
385
|
v_a = Edge.StartVertex(edges[i])
|
379
386
|
if i == 0:
|
380
387
|
if Wire.IsClosed(wire) == False:
|
381
388
|
v1 = Edge.StartVertex(offset_edges[0])
|
389
|
+
if transferDictionaries == True:
|
390
|
+
d_temp = Topology.Dictionary(v_a)
|
391
|
+
v1 = Topology.SetDictionary(v1, Topology.Dictionary(v_a), silent=True)
|
392
|
+
edge_dictionaries.append(Topology.Dictionary(edges[i]))
|
382
393
|
final_vertices.append(v1)
|
383
394
|
if bisectors == True:
|
384
395
|
bisectors_list.append(Edge.ByVertices(v_a, v1))
|
385
396
|
else:
|
386
397
|
prev_edge = offset_edges[-1]
|
398
|
+
v1 = Edge.Intersect2D(prev_edge, o_edge_a, silent=True)
|
399
|
+
if Topology.IsInstance(v1, "Vertex"):
|
400
|
+
if bisectors == True:
|
401
|
+
bisectors_list.append(Edge.ByVertices(v_a, v1))
|
402
|
+
if transferDictionaries == True:
|
403
|
+
d_temp = Topology.Dictionary(v_a)
|
404
|
+
v1 = Topology.SetDictionary(v1, Topology.Dictionary(v_a))
|
405
|
+
edge_dictionaries.append(Topology.Dictionary(edges[i]))
|
406
|
+
final_vertices.append(v1)
|
407
|
+
else:
|
408
|
+
connection = Edge.Connection(prev_edge, o_edge_a)
|
409
|
+
if Topology.IsInstance(connection, "Edge"):
|
410
|
+
d = Topology.Dictionary(v_a)
|
411
|
+
d_stepOffsetA = Dictionary.ValueAtKey(d, stepOffsetKeyA)
|
412
|
+
if d_stepOffsetA == None:
|
413
|
+
d_stepOffsetA = stepOffsetA
|
414
|
+
d_stepOffsetB = Dictionary.ValueAtKey(d, stepOffsetKeyB)
|
415
|
+
if d_stepOffsetB == None:
|
416
|
+
d_stepOffsetB = stepOffsetB
|
417
|
+
v1_1 = Topology.TranslateByDirectionDistance(Edge.EndVertex(prev_edge),
|
418
|
+
direction = Vector.Reverse(Edge.Direction(prev_edge)),
|
419
|
+
distance = d_stepOffsetA)
|
420
|
+
|
421
|
+
v1_2 = Topology.TranslateByDirectionDistance(Edge.StartVertex(o_edge_a),
|
422
|
+
direction = Edge.Direction(o_edge_a),
|
423
|
+
distance = d_stepOffsetB)
|
424
|
+
bisectors_list.append(Edge.ByVertices(v_a, v1_1))
|
425
|
+
bisectors_list.append(Edge.ByVertices(v_a, v1_2))
|
426
|
+
final_vertices.append(v1_1)
|
427
|
+
final_vertices.append(v1_2)
|
428
|
+
if transferDictionaries == True:
|
429
|
+
v1_1 = Topology.SetDictionary(v1_1, Topology.Dictionary(v_a), silent=True)
|
430
|
+
v1_2 = Topology.SetDictionary(v1_2, Topology.Dictionary(v_a), silent=True)
|
431
|
+
edge_dictionaries.append(Topology.Dictionary(v_a))
|
432
|
+
edge_dictionaries.append(Topology.Dictionary(edges[i]))
|
387
433
|
else:
|
388
434
|
prev_edge = offset_edges[i-1]
|
389
435
|
v1 = Edge.Intersect2D(prev_edge, o_edge_a, silent=True)
|
390
436
|
if Topology.IsInstance(v1, "Vertex"):
|
391
437
|
if bisectors == True:
|
392
438
|
bisectors_list.append(Edge.ByVertices(v_a, v1))
|
439
|
+
if transferDictionaries == True:
|
440
|
+
d_temp = Topology.Dictionary(v_a)
|
441
|
+
v1 = Topology.SetDictionary(v1, Topology.Dictionary(v_a), silent=True)
|
442
|
+
edge_dictionaries.append(Topology.Dictionary(edges[i]))
|
393
443
|
final_vertices.append(v1)
|
394
444
|
else:
|
395
445
|
connection = Edge.Connection(prev_edge, o_edge_a)
|
396
446
|
if Topology.IsInstance(connection, "Edge"):
|
397
|
-
|
447
|
+
d = Topology.Dictionary(v_a)
|
448
|
+
d_stepOffsetA = Dictionary.ValueAtKey(d, stepOffsetKeyA)
|
449
|
+
if d_stepOffsetA == None:
|
450
|
+
d_stepOffsetA = stepOffsetA
|
451
|
+
d_stepOffsetB = Dictionary.ValueAtKey(d, stepOffsetKeyB)
|
452
|
+
if d_stepOffsetB == None:
|
453
|
+
d_stepOffsetB = stepOffsetB
|
454
|
+
v1_1 = Topology.TranslateByDirectionDistance(Edge.EndVertex(prev_edge),
|
398
455
|
direction = Vector.Reverse(Edge.Direction(prev_edge)),
|
399
|
-
distance =
|
456
|
+
distance = d_stepOffsetA)
|
400
457
|
|
401
|
-
v1_2 = Topology.TranslateByDirectionDistance(Edge.
|
458
|
+
v1_2 = Topology.TranslateByDirectionDistance(Edge.StartVertex(o_edge_a),
|
402
459
|
direction = Edge.Direction(o_edge_a),
|
403
|
-
distance =
|
460
|
+
distance = d_stepOffsetB)
|
404
461
|
bisectors_list.append(Edge.ByVertices(v_a, v1_1))
|
405
462
|
bisectors_list.append(Edge.ByVertices(v_a, v1_2))
|
406
463
|
final_vertices.append(v1_1)
|
407
464
|
final_vertices.append(v1_2)
|
465
|
+
if transferDictionaries == True:
|
466
|
+
v1_1 = Topology.SetDictionary(v1_1, Topology.Dictionary(v_a))
|
467
|
+
v1_2 = Topology.SetDictionary(v1_2, Topology.Dictionary(v_a))
|
468
|
+
edge_dictionaries.append(Topology.Dictionary(v_a))
|
469
|
+
edge_dictionaries.append(Topology.Dictionary(edges[i]))
|
470
|
+
v_a = Edge.EndVertex(edges[-1])
|
408
471
|
if Wire.IsClosed(wire) == False:
|
409
|
-
v_a = Edge.EndVertex(edges[-1])
|
410
472
|
v1 = Edge.EndVertex(offset_edges[-1])
|
411
473
|
final_vertices.append(v1)
|
474
|
+
if transferDictionaries == True:
|
475
|
+
v1 = Topology.SetDictionary(v1, Topology.Dictionary(v_a), silent=True)
|
412
476
|
if bisectors == True:
|
413
477
|
bisectors_list.append(Edge.ByVertices(v_a, v1))
|
414
|
-
else:
|
415
|
-
v1 = Edge.Intersect2D(o_edge_a, offset_edges[0], silent=True)
|
416
|
-
if Topology.IsInstance(v1, "Vertex"):
|
417
|
-
if bisectors == True:
|
418
|
-
bisectors_list.append(Edge.ByVertices(Edge.StartVertex(edges[0]), v1))
|
419
|
-
final_vertices.append(v1)
|
420
|
-
else:
|
421
|
-
connection = Edge.Connection(offset_edges[0], o_edge_a)
|
422
|
-
if Topology.IsInstance(connection, "Edge"):
|
423
|
-
v1_1 = Edge.StartVertex(connection)
|
424
|
-
v1_2 = Edge.EndVertex(connection)
|
425
|
-
bisectors_list.append(Edge.ByVertices(v_a, v1_1))
|
426
|
-
bisectors_list.append(Edge.ByVertices(v_a, v1_2))
|
427
|
-
final_vertices.append(v1_1)
|
428
|
-
final_vertices.append(v1_2)
|
429
478
|
|
479
|
+
|
430
480
|
return_wire = Wire.ByVertices(final_vertices, close=Wire.IsClosed(wire))
|
431
|
-
|
432
|
-
|
481
|
+
wire_edges = Topology.Edges(return_wire)
|
482
|
+
if transferDictionaries == True:
|
483
|
+
for i, wire_edge in enumerate(wire_edges):
|
484
|
+
wire_edge = Topology.SetDictionary(wire_edge, edge_dictionaries[i], silent=True)
|
433
485
|
if not Topology.IsInstance(return_wire, "Wire"):
|
434
486
|
if not silent:
|
435
487
|
print("Wire.ByOffset - Warning: The resulting wire is not well-formed, please check your offsets.")
|
@@ -437,7 +489,24 @@ class Wire(Topology):
|
|
437
489
|
if not Wire.IsManifold(return_wire) and bisectors == False:
|
438
490
|
if not silent:
|
439
491
|
print("Wire.ByOffset - Warning: The resulting wire is non-manifold, please check your offsets.")
|
492
|
+
if bisectors == True:
|
493
|
+
temp_return_wire = Topology.SelfMerge(Cluster.ByTopologies(Topology.Edges(return_wire)+bisectors_list))
|
494
|
+
if transferDictionaries == True:
|
495
|
+
sel_vertices = Topology.Vertices(return_wire)
|
496
|
+
sel_vertices += Topology.Vertices(flat_wire)
|
497
|
+
edges = Topology.Edges(return_wire)
|
498
|
+
sel_edges = []
|
499
|
+
for edge in edges:
|
500
|
+
d = Topology.Dictionary(edge)
|
501
|
+
c = Topology.Centroid(edge)
|
502
|
+
c = Topology.SetDictionary(c, d)
|
503
|
+
sel_edges.append(c)
|
504
|
+
temp_return_wire = Topology.TransferDictionariesBySelectors(temp_return_wire, sel_vertices, tranVertices=True)
|
505
|
+
temp_return_wire = Topology.TransferDictionariesBySelectors(temp_return_wire, sel_edges, tranEdges=True)
|
506
|
+
return_wire = temp_return_wire
|
440
507
|
return_wire = Topology.Unflatten(return_wire, direction=normal, origin=origin)
|
508
|
+
if transferDictionaries == True:
|
509
|
+
return_wire = Topology.SetDictionary(return_wire, Topology.Dictionary(wire), silent=True)
|
441
510
|
return return_wire
|
442
511
|
|
443
512
|
@staticmethod
|
topologicpy/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '0.7.
|
1
|
+
__version__ = '0.7.34'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: topologicpy
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.34
|
4
4
|
Summary: An Advanced Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction.
|
5
5
|
Author-email: Wassim Jabi <wassim.jabi@gmail.com>
|
6
6
|
License: MIT License
|
@@ -10,25 +10,25 @@ topologicpy/Dictionary.py,sha256=KqJ29YyE23Y3Xc6XmKLSCZXRfBvm-OEOxlMZ4dt-rfM,270
|
|
10
10
|
topologicpy/Edge.py,sha256=vhYHkobSLGSWV-oe2oJFFDobqFToDyb7s71yQ840AAA,65166
|
11
11
|
topologicpy/EnergyModel.py,sha256=ni0H1JgvLl1-q90yK9Sm1qj5P1fTuidlimEIcwuj6qE,53287
|
12
12
|
topologicpy/Face.py,sha256=u-DPS5guhzfwxZUuUNYqtPJG6OdeHpY1XQHRSKn6rqk,110148
|
13
|
-
topologicpy/Graph.py,sha256=
|
13
|
+
topologicpy/Graph.py,sha256=ICwFUYLka6tEPMo43I9QAe24ljItMUZOZYL21xpDPIg,392146
|
14
14
|
topologicpy/Grid.py,sha256=Q-2WNBkvIsJks7pbGkzzkRWVB4fTMYgWipG3lcDXbpE,18496
|
15
15
|
topologicpy/Helper.py,sha256=mLwJmhyc-d-JqW82MBf7JwM91zWHVx8RzOmndPWHm-k,17717
|
16
16
|
topologicpy/Honeybee.py,sha256=vcBECJlgWVjNNdD9ZmjNik_pA1Y_ZNoOorsQb2CiyGA,21965
|
17
17
|
topologicpy/Matrix.py,sha256=umgR7An919-wGInXJ1wpqnoQ2jCPdyMe2rcWTZ16upk,8079
|
18
18
|
topologicpy/Neo4j.py,sha256=Gy2PS4Ky8BNhohKreoV4zgzW9OXCjhSwiZF_Aq21_wU,19589
|
19
|
-
topologicpy/Plotly.py,sha256=
|
19
|
+
topologicpy/Plotly.py,sha256=qMhBMAYoNMsc-cKdNpqM2p9rqAVXWvBNTzmTKw7iU_0,98963
|
20
20
|
topologicpy/Polyskel.py,sha256=4R5_DEdfrmi-4gR6axHNoHTCSAE2TCekOyN8jvb7bHQ,19722
|
21
|
-
topologicpy/Shell.py,sha256=
|
21
|
+
topologicpy/Shell.py,sha256=bJ8zu5gj-TSOADR-p3YQ9yLPHFTffnv-29uD5b6Zvuc,79912
|
22
22
|
topologicpy/Speckle.py,sha256=rUS6PCaxIjEF5_fUruxvMH47FMKg-ohcoU0qAUb-yNM,14267
|
23
23
|
topologicpy/Sun.py,sha256=_gZfVyH0SDLQmmt775UeeAJ_BtwXO1STQnUMV1qkU0s,37161
|
24
|
-
topologicpy/Topology.py,sha256=
|
24
|
+
topologicpy/Topology.py,sha256=iL2kCRHtFTMBqFbvdJy_-E0NtLChsD7606x_F1UrKFE,362074
|
25
25
|
topologicpy/Vector.py,sha256=WQQUbwrg7VKImtxuBUi2i-FRiPT77WlrzLP05gdXKM8,33079
|
26
|
-
topologicpy/Vertex.py,sha256=
|
27
|
-
topologicpy/Wire.py,sha256=
|
26
|
+
topologicpy/Vertex.py,sha256=EQdVYHmW85_pZdHZB3N8pEi0GiadCCkF3z_oqohA7B0,71161
|
27
|
+
topologicpy/Wire.py,sha256=Luau9ko3AA-CxPx--JX_OzscSFgUU23m8_bs5KNYgHc,153544
|
28
28
|
topologicpy/__init__.py,sha256=D7ky87CAQMiS2KE6YLvcTLkTgA2PY7rASe6Z23pjp9k,872
|
29
|
-
topologicpy/version.py,sha256=
|
30
|
-
topologicpy-0.7.
|
31
|
-
topologicpy-0.7.
|
32
|
-
topologicpy-0.7.
|
33
|
-
topologicpy-0.7.
|
34
|
-
topologicpy-0.7.
|
29
|
+
topologicpy/version.py,sha256=cxijp04lr4v3ZnLuLmrlFIoTuvxTkFkuNf13YTxYPmo,23
|
30
|
+
topologicpy-0.7.34.dist-info/LICENSE,sha256=BRNw73R2WdDBICtwhI3wm3cxsaVqLTAGuRwrTltcfxs,1068
|
31
|
+
topologicpy-0.7.34.dist-info/METADATA,sha256=YtAZb3NSLWZL8AsRQy3xLzd7Ja1pvRnrgypt0V_hKVE,10916
|
32
|
+
topologicpy-0.7.34.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
|
33
|
+
topologicpy-0.7.34.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
|
34
|
+
topologicpy-0.7.34.dist-info/RECORD,,
|
File without changes
|
File without changes
|