topologicpy 0.5.6__tar.gz → 0.5.8__tar.gz
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-0.5.6/src/topologicpy.egg-info → topologicpy-0.5.8}/PKG-INFO +1 -1
- {topologicpy-0.5.6 → topologicpy-0.5.8}/pyproject.toml +1 -1
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Dictionary.py +51 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Face.py +21 -14
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Graph.py +355 -112
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Topology.py +60 -16
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/__init__.py +1 -1
- {topologicpy-0.5.6 → topologicpy-0.5.8/src/topologicpy.egg-info}/PKG-INFO +1 -1
- {topologicpy-0.5.6 → topologicpy-0.5.8}/LICENSE +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/MANIFEST.in +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/README.md +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/setup.cfg +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Aperture.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Cell.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/CellComplex.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Cluster.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Color.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Context.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/DGL.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Edge.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/EnergyModel.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Grid.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Helper.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Honeybee.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Matrix.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Neo4j.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Plotly.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Polyskel.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Shell.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Speckle.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Vector.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Vertex.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/Wire.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/__init__.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKBO-6bdf205d.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKBRep-2960a069.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKBool-c44b74bd.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKFillet-9a670ba0.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKG2d-8f31849e.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKG3d-4c6bce57.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKGeomAlgo-26066fd9.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKGeomBase-2116cabe.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKMath-72572fa8.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKMesh-2a060427.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKOffset-6cab68ff.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKPrim-eb1262b3.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKShHealing-e67e5cc7.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKTopAlgo-e4c96c33.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libTKernel-fb7fe3b7.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libgcc_s-32c1665e.so.1 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/libstdc++-672d7b41.so.6.0.30 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/topologic.cpython-310-x86_64-linux-gnu.so +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/topologic.cpython-311-x86_64-linux-gnu.so +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/topologic.cpython-38-x86_64-linux-gnu.so +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic/topologic.cpython-39-x86_64-linux-gnu.so +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKBO-6bdf205d.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKBRep-2960a069.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKBool-c44b74bd.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKFillet-9a670ba0.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKG2d-8f31849e.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKG3d-4c6bce57.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKGeomAlgo-26066fd9.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKGeomBase-2116cabe.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKMath-72572fa8.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKMesh-2a060427.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKOffset-6cab68ff.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKPrim-eb1262b3.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKShHealing-e67e5cc7.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKTopAlgo-e4c96c33.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libTKernel-fb7fe3b7.so.7.7.0 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libgcc_s-32c1665e.so.1 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/linux/topologic.libs/libstdc++-672d7b41.so.6.0.30 +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/macos/topologic/__init__.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKBO-f6b191de.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKBRep-e56a600e.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKBool-7b8d47ae.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKFillet-0ddbf0a8.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKG2d-2e2dee3d.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKG3d-6674513d.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKGeomAlgo-d240e370.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKGeomBase-df87aba5.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKMath-45bd625a.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKMesh-d6e826b1.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKOffset-79b9cc94.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKPrim-aa430a86.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKShHealing-bb48be89.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKTopAlgo-7d0d1e22.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/TKernel-08c8cfbb.dll +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/__init__.py +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/topologic.cp310-win_amd64.pyd +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/topologic.cp311-win_amd64.pyd +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/topologic.cp38-win_amd64.pyd +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy/bin/windows/topologic/topologic.cp39-win_amd64.pyd +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy.egg-info/SOURCES.txt +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy.egg-info/dependency_links.txt +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy.egg-info/requires.txt +0 -0
- {topologicpy-0.5.6 → topologicpy-0.5.8}/src/topologicpy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: topologicpy
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.8
|
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
|
Project-URL: Homepage, https://github.com/wassimj/TopologicPy
|
@@ -415,6 +415,57 @@ class Dictionary(topologic.Dictionary):
|
|
415
415
|
pythonDict[key]=("")
|
416
416
|
return pythonDict
|
417
417
|
|
418
|
+
@staticmethod
|
419
|
+
def RemoveKey(dictionary, key):
|
420
|
+
"""
|
421
|
+
Removes the key (and its associated value) from the input dictionary.
|
422
|
+
|
423
|
+
Parameters
|
424
|
+
----------
|
425
|
+
dictionary : topologic.Dictionary or dict
|
426
|
+
The input dictionary.
|
427
|
+
key : string
|
428
|
+
The input key.
|
429
|
+
|
430
|
+
Returns
|
431
|
+
-------
|
432
|
+
topologic.Dictionary or dict
|
433
|
+
The input dictionary with the key/value removed from it.
|
434
|
+
|
435
|
+
"""
|
436
|
+
def processPythonDictionary (dictionary, key):
|
437
|
+
values = []
|
438
|
+
keys = dictionary.keys()
|
439
|
+
new_dict = {}
|
440
|
+
for k in keys:
|
441
|
+
if not key.lower() == k.lower():
|
442
|
+
new_dict[key] = dictionary[key]
|
443
|
+
return new_dict
|
444
|
+
|
445
|
+
def processTopologicDictionary(dictionary, key):
|
446
|
+
keys = dictionary.Keys()
|
447
|
+
new_keys = []
|
448
|
+
new_values = []
|
449
|
+
for k in keys:
|
450
|
+
if not key.lower() == k.lower():
|
451
|
+
new_keys.append(k)
|
452
|
+
new_values.append(Dictionary.ValueAtKey(dictionary, k))
|
453
|
+
return Dictionary.ByKeysValues(new_keys, new_values)
|
454
|
+
|
455
|
+
if not isinstance(dictionary, topologic.Dictionary) and not isinstance(dictionary, dict):
|
456
|
+
print("Dictionary.RemoveKey - Error: The input dictionary parameter is not a valid topologic or python dictionary. Returning None.")
|
457
|
+
return None
|
458
|
+
if not isinstance(key, str):
|
459
|
+
print("Dictionary.RemoveKey - Error: The input key parameter is not a valid string. Returning None.")
|
460
|
+
return None
|
461
|
+
|
462
|
+
if isinstance(dictionary, dict):
|
463
|
+
return processPythonDictionary(dictionary, key)
|
464
|
+
elif isinstance(dictionary, topologic.Dictionary):
|
465
|
+
return processTopologicDictionary(dictionary, key)
|
466
|
+
else:
|
467
|
+
return None
|
468
|
+
|
418
469
|
@staticmethod
|
419
470
|
def SetValueAtKey(dictionary, key, value):
|
420
471
|
"""
|
@@ -1786,7 +1786,7 @@ class Face(Topology):
|
|
1786
1786
|
return Face.ByWire(wire, tolerance=tolerance)
|
1787
1787
|
|
1788
1788
|
@staticmethod
|
1789
|
-
def Triangulate(face:topologic.Face, mode:
|
1789
|
+
def Triangulate(face:topologic.Face, mode: int = 0, meshSize: float = None, tolerance: float = 0.0001) -> list:
|
1790
1790
|
"""
|
1791
1791
|
Triangulates the input face and returns a list of faces.
|
1792
1792
|
|
@@ -1796,10 +1796,18 @@ class Face(Topology):
|
|
1796
1796
|
The input face.
|
1797
1797
|
tolerance : float , optional
|
1798
1798
|
The desired tolerance. The default is 0.0001.
|
1799
|
-
mode :
|
1800
|
-
The desired mode of meshing.
|
1801
|
-
|
1802
|
-
|
1799
|
+
mode : int , optional
|
1800
|
+
The desired mode of meshing algorithm. Several options are available:
|
1801
|
+
0: Classic
|
1802
|
+
1: MeshAdapt
|
1803
|
+
3: Initial Mesh Only
|
1804
|
+
5: Delaunay
|
1805
|
+
6: Frontal-Delaunay
|
1806
|
+
7: BAMG
|
1807
|
+
8: Fontal-Delaunay for Quads
|
1808
|
+
9: Packing of Parallelograms
|
1809
|
+
All options other than 0 (Classic) use the gmsh library. See https://gmsh.info/doc/texinfo/gmsh.html#Mesh-options
|
1810
|
+
WARNING: The options that use gmsh can be very time consuming and can create very heavy geometry.
|
1803
1811
|
meshSize : float , optional
|
1804
1812
|
The desired size of the mesh when using the "mesh" option. If set to None, it will be
|
1805
1813
|
calculated automatically and set to 10% of the overall size of the face.
|
@@ -1810,14 +1818,11 @@ class Face(Topology):
|
|
1810
1818
|
The list of triangles of the input face.
|
1811
1819
|
|
1812
1820
|
"""
|
1813
|
-
from topologicpy.Vertex import Vertex
|
1814
1821
|
from topologicpy.Wire import Wire
|
1815
|
-
from topologicpy.Shell import Shell
|
1816
1822
|
from topologicpy.Topology import Topology
|
1817
|
-
from topologicpy.Dictionary import Dictionary
|
1818
1823
|
|
1819
1824
|
# This function was contributed by Yidan Xue.
|
1820
|
-
def generate_gmsh(face, meshSize = None, tolerance = 0.0001):
|
1825
|
+
def generate_gmsh(face, mode="mesh", meshSize = None, tolerance = 0.0001):
|
1821
1826
|
"""
|
1822
1827
|
Creates a gmsh of triangular meshes from the input face.
|
1823
1828
|
|
@@ -1921,7 +1926,9 @@ class Face(Topology):
|
|
1921
1926
|
|
1922
1927
|
gmsh.model.geo.addPlaneSurface([i+1 for i in range(current_wire_number)])
|
1923
1928
|
gmsh.model.geo.synchronize()
|
1924
|
-
|
1929
|
+
if mode not in [1,3,5,6,7,8,9]:
|
1930
|
+
mode = 6
|
1931
|
+
gmsh.option.setNumber("Mesh.Algorithm", mode)
|
1925
1932
|
gmsh.model.mesh.generate(2) # For a 2D mesh
|
1926
1933
|
nodeTags, nodeCoords, nodeParams = gmsh.model.mesh.getNodes(-1, -1)
|
1927
1934
|
elemTypes, elemTags, elemNodeTags = gmsh.model.mesh.getElements(-1, -1)
|
@@ -1955,9 +1962,7 @@ class Face(Topology):
|
|
1955
1962
|
normal = Face.Normal(face)
|
1956
1963
|
flatFace = Topology.Flatten(face, origin=origin, direction=normal)
|
1957
1964
|
|
1958
|
-
if
|
1959
|
-
shell_faces = generate_gmsh(flatFace, meshSize = meshSize, tolerance = tolerance)
|
1960
|
-
else:
|
1965
|
+
if mode == 0:
|
1961
1966
|
shell_faces = []
|
1962
1967
|
for i in range(0,5,1):
|
1963
1968
|
try:
|
@@ -1965,7 +1970,9 @@ class Face(Topology):
|
|
1965
1970
|
break
|
1966
1971
|
except:
|
1967
1972
|
continue
|
1968
|
-
|
1973
|
+
else:
|
1974
|
+
shell_faces = generate_gmsh(flatFace, mode = mode, meshSize = meshSize, tolerance = tolerance)
|
1975
|
+
|
1969
1976
|
if len(shell_faces) < 1:
|
1970
1977
|
return []
|
1971
1978
|
finalFaces = []
|