compas-cem 0.8.3__py2.py3-none-any.whl → 0.8.5__py2.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.
Files changed (47) hide show
  1. compas_cem/__init__.py +1 -1
  2. compas_cem/diagrams/form.py +64 -1
  3. compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser +0 -0
  4. compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser +0 -0
  5. compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser +0 -0
  6. compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser +0 -0
  7. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser +0 -0
  8. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser +0 -0
  9. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser +0 -0
  10. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser +0 -0
  11. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser +0 -0
  12. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser +0 -0
  13. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser +0 -0
  14. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser +0 -0
  15. compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser +0 -0
  16. compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser +0 -0
  17. compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser +0 -0
  18. compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser +0 -0
  19. compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser +0 -0
  20. compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser +0 -0
  21. compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser +0 -0
  22. compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser +0 -0
  23. compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser +0 -0
  24. compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser +0 -0
  25. compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser +0 -0
  26. compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser +0 -0
  27. compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser +0 -0
  28. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser +0 -0
  29. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser +0 -0
  30. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser +0 -0
  31. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser +0 -0
  32. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser +0 -0
  33. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser +0 -0
  34. compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser +0 -0
  35. compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser +0 -0
  36. compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser +0 -0
  37. compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser +0 -0
  38. compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser +0 -0
  39. compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser +0 -0
  40. compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser +0 -0
  41. compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser +0 -0
  42. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/METADATA +2 -2
  43. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/RECORD +47 -47
  44. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/AUTHORS.rst +0 -0
  45. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/LICENSE +0 -0
  46. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/WHEEL +0 -0
  47. {compas_cem-0.8.3.dist-info → compas_cem-0.8.5.dist-info}/top_level.txt +0 -0
compas_cem/__init__.py CHANGED
@@ -27,7 +27,7 @@ __author__ = ["Rafael Pastrana"]
27
27
  __copyright__ = "Copyright 2020 - Princeton University"
28
28
  __license__ = "MIT License"
29
29
  __email__ = "arpj@princeton.edu"
30
- __version__ = "0.8.3"
30
+ __version__ = "0.8.5"
31
31
 
32
32
 
33
33
  # Directories
@@ -1,3 +1,6 @@
1
+ from compas_cem.elements import Node
2
+ from compas_cem.elements import Edge
3
+
1
4
  from compas_cem.diagrams import Diagram
2
5
 
3
6
 
@@ -34,7 +37,7 @@ class FormDiagram(Diagram):
34
37
  @classmethod
35
38
  def from_topology_diagram(cls, topology):
36
39
  """
37
- Construct the base of a form diagram from a topology diagram.
40
+ Construct a form diagram from a topology diagram.
38
41
  """
39
42
  form = topology.copy(cls=cls)
40
43
 
@@ -45,6 +48,66 @@ class FormDiagram(Diagram):
45
48
 
46
49
  return form
47
50
 
51
+ @classmethod
52
+ def from_equilibrium_state(cls, eq_state, structure):
53
+ """
54
+ Build a form diagram from an equilibrium state.
55
+ """
56
+ return form_from_eqstate(eq_state, structure, cls)
57
+
58
+
59
+ # ==============================================================================
60
+ # Helpers
61
+ # ==============================================================================
62
+
63
+ def form_from_eqstate(eqstate, structure, cls=None):
64
+ """
65
+ Generate a form diagram from an equilibrium state calculated with JAX CEM.
66
+ """
67
+ if cls is None:
68
+ cls = FormDiagram
69
+ form = cls()
70
+
71
+ # Add nodes
72
+ for node in structure.nodes:
73
+ form.add_node(Node(int(node)))
74
+
75
+ # Assign support nodes
76
+ for node in structure.support_nodes:
77
+ form.node_attribute(int(node), "type", "support")
78
+
79
+ # Add edges
80
+ for u, v in structure.edges:
81
+ form.add_edge(Edge(int(u), int(v), {}))
82
+
83
+ # Update form attributes
84
+ form_update(form, eqstate, structure)
85
+
86
+ return form
87
+
88
+
89
+ def form_update(form, eqstate, structure):
90
+ """
91
+ Update in-place the attributes of a form diagram with an equilibrium state.
92
+ """
93
+ xyz = eqstate.xyz.tolist()
94
+ loads = eqstate.loads.tolist()
95
+ reactions = eqstate.reactions.tolist()
96
+ lengths = eqstate.lengths.tolist()
97
+ forces = eqstate.forces.tolist()
98
+
99
+ # Update q values and lengths on edges
100
+ for edge in structure.edges:
101
+ idx = structure.edge_index[tuple(edge)]
102
+ form.edge_attribute(edge, name="force", value=forces[idx].pop())
103
+ form.edge_attribute(edge, name="lengths", value=lengths[idx].pop())
104
+
105
+ # Update residuals on nodes
106
+ for node in structure.nodes:
107
+ form.node_attributes(node, "xyz", xyz[node])
108
+ form.node_attributes(node, ["rx", "ry", "rz"], reactions[node])
109
+ form.node_attributes(node, ["qx", "qy", "qz"], loads[node])
110
+
48
111
  # ==============================================================================
49
112
  # Main
50
113
  # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: compas-cem
3
- Version: 0.8.3
3
+ Version: 0.8.5
4
4
  Summary: The Combinatorial Equilibrium Modeling framework for COMPAS
5
5
  Home-page: https://github.com/arpastrana/compas_cem
6
6
  Author: Rafael Pastrana
@@ -26,7 +26,7 @@ Requires-Dist: numpy==1.26.3
26
26
  Requires-Dist: compas==1.17.10
27
27
  Requires-Dist: trimesh==3.20.0
28
28
  Requires-Dist: autograd==1.5
29
- Requires-Dist: nlopt==2.7.1
29
+ Requires-Dist: nlopt>2.7
30
30
 
31
31
  ********************************************************************************
32
32
  COMPAS CEM
@@ -1,9 +1,9 @@
1
- compas_cem/__init__.py,sha256=krCZbukdPqRNrVD-Rr8ENRA-jtTJY3CCA4a02cv5wK0,2083
1
+ compas_cem/__init__.py,sha256=Wl17-YGEVJcTQ15tnjvG4nhy2OHT1recx5DcJ3mvlsI,2083
2
2
  compas_cem/data/__init__.py,sha256=bi1mgZ9pRnj5gtv1P4149KbjVjnYiBPxrBf8Ldosb18,446
3
3
  compas_cem/data/data.py,sha256=ociRshzFwUcrmXFQzRcXJW6OtzYKujhVN6VKVnlAje0,363
4
4
  compas_cem/diagrams/__init__.py,sha256=LK-jcMF7Lmcj81drGSGSgPqUOtJzG7mjveIw6XrXX4A,591
5
5
  compas_cem/diagrams/diagram.py,sha256=jOfDnPjoBphsMJITiz1aiO7SxiZVX4aUEshoT8tdE4A,8898
6
- compas_cem/diagrams/form.py,sha256=NLL6NesJQl08cFqq1Otcq87QIBC3CJOD4Wubz5GZLto,1470
6
+ compas_cem/diagrams/form.py,sha256=a1ro17WhGtO7EeK9bcELQh3nnWstfhfJq1rwA9kjOVQ,3459
7
7
  compas_cem/diagrams/mixins/__init__.py,sha256=xP5oDLuWiRUwGDM5SkkicNp3KPGUXBw_lkQRWco82RQ,578
8
8
  compas_cem/diagrams/mixins/edge_mixins.py,sha256=t2MYVlkirkBrgj9AGbnKAcbQcNPIp6zUaRxI9eyBUq0,1963
9
9
  compas_cem/diagrams/mixins/node_mixins.py,sha256=-VJhSy-eTvE4FWUsmGBcKU05tn7ghF3n0tuKcKNck20,2003
@@ -140,45 +140,45 @@ compas_cem/ghpython/components/CompasCem_TopologyDiagram/metadata.json,sha256=fX
140
140
  compas_cem/ghpython/components/CompasCem_TrailsShift/code.py,sha256=IKi3j4O4MFm49gE7WKI2q3CPVgEtHk6l_-dxSWKUmIY,677
141
141
  compas_cem/ghpython/components/CompasCem_TrailsShift/icon.png,sha256=Z4db6_cA8h6PLFiX_LSggoEtzsMsKoHq3etLwXlIBqU,2759
142
142
  compas_cem/ghpython/components/CompasCem_TrailsShift/metadata.json,sha256=HXblUM7_ySpRKv1EGdM6VKs_oWz8Y57m7m0-bRqNScI,1125
143
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser,sha256=BGRMqfPB8A9zkYmjYQF-az7rkOZJFMiry6UWzlJJe0Q,3277
144
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser,sha256=8VRhI-qWMuQy9xN7Qd5SkA7wMhTM0ynhIPJPW20o-Y4,3467
145
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser,sha256=wIp2q8R2zwmpu9Wb3IHEuhb1N4szGEpEq54xjyVFLWc,3620
146
- compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser,sha256=ZPokhxf1imZhw1gL0qlWzvgWOD8JrTUevpYhx01xCuw,4716
147
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser,sha256=OKvSIGCyULL9wEk2Mf4eKycJ5kpOcjtImNhZA55471Y,3037
148
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser,sha256=3DqytFxiaTNyxH9r69FW7IF2cRbyf0SWLA2Do3wxECk,3107
149
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser,sha256=nELj8OYNgrIIO4Zjp2JgS1U9ya10-XRAlUts-LnRhS8,3070
150
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser,sha256=G1yDe3y3zmvCkI6z1UVt53lxDLaYzzND9T4E3MuyHp4,3060
151
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser,sha256=h8tyNEniouQsdsWKSFPgPZBHBiMxypgJl8JAeElFCrE,3038
152
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser,sha256=S1v5mB5ITjkAtzaUUMNdK85VQLVMS59hTf3BY1MvktY,3049
153
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser,sha256=pjHOsGFk83iKcX4pP2_WaBuS6pIGnK_Cmpa7v8zHKv0,3096
154
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser,sha256=Da5Q-02PFVELCSi7Zua5_wpJbWr82Z7b-llTuJR32oc,3028
155
- compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser,sha256=6xwMURzJM0fTTmoMpH72KfgEJKYRfTNtPHGbdb09kt8,2930
156
- compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser,sha256=k86051FwdcvfjmLzxxL6xGlyVjYN-9npD2jAcfJiiy0,3333
157
- compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser,sha256=ffOvSdVsE9L_Lbu9FGRwBW8eeauLpVk7wlGyq7l2SuQ,2954
158
- compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser,sha256=NxsHzq2ysELLcmPqfkAero353ElipI82fwXrx-kOZYI,3185
159
- compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser,sha256=bpxveehBVSYVMg-g8Vc_PtRW77QApOpgHyt5vUHNhRY,3119
160
- compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser,sha256=lJ41D6rq-ahMpU1KuuMkMOTAPZ7QIqIE104EP7lUw_s,2650
161
- compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser,sha256=AU91Wvju4qEvX-4KdF6e5TMaxfEk46YLoVc8PHxJNM4,2955
162
- compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser,sha256=T67Cu_pscFwVubtlhshOFmljc4orMo4ZnMQ7XeIfrvo,2859
163
- compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser,sha256=VsBZWLzJFb7JAdHtlYluhscfljJctsa74vAVkwpATaA,2887
164
- compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser,sha256=84KSdOoDaceIItnHlLev0IoWpTTBfL5v_ex8W3R-65A,2952
165
- compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser,sha256=vQmpginMnFsiS1ZZqU5T6YBaz2HLVMNJypubN-0eToc,2818
166
- compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser,sha256=ohi42QKcx-6Y9ad00ykfTTSL19FPNz3w3SzoKIVPfXw,3133
167
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser,sha256=zdFQu7ZUJtPIDWfx8TKqHG0_2um5io0A8hdC-VQd0E4,3051
168
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser,sha256=pR3mjkAbiv3i4YWwfKsuF0dQKsAD2lAtmUuhsiDiEV8,3044
169
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser,sha256=NNkyXzyJD_mXDXtz3ckjVZL-ymFA7dTZGhFsRg-D_Uk,3044
170
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser,sha256=M0IlVOxtebMqs7iMQBxBvSPMAPr6QnO_NP1398AzDUA,3048
171
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser,sha256=wxkTVD5D4SPXyA2nCQbh-O6ksbNpSYZ10y_sisPTeWQ,3051
172
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser,sha256=pC0JlfC-NH2i-JsAa2-IJEObai1xRW33u5mATkpLxqY,3046
173
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser,sha256=sGRVp-towTLBWhHuheflD8PoSQYBvAHX36k7Vq_XV84,3044
174
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser,sha256=7Q6RFs11ZBX2Eecedgk4G32GhMYBDZNTksIqL9l4cak,3052
175
- compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser,sha256=2mEoF2iZfNhfEHLrsUoPdkrt5xgABviPxpGxTBfzeT4,2997
176
- compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser,sha256=VknungLeurAxbnXc44m0RILyjfensJoIqCt9nXjkR4o,2993
177
- compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser,sha256=XqQ_EMd4kgwm0Ilb7JWMufMk7tD1mAEKNo5Ppfjugyk,2948
178
- compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser,sha256=j3tKg4ZsV8V5L7wxqFCEhPaBJTrMYQrej0RzK6zSq9o,3033
179
- compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser,sha256=80tvBR2npSG542oFnbgFglqv0DjjaYDst4ocHxYdkaQ,2988
180
- compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser,sha256=2ma7ubEoqmo1405aNugsNs_9geQJJUfs4eDKFhjkcz4,3224
181
- compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser,sha256=rxuQm7GtEq7MDVwEfyeX6rIG15qIfrrGhtWJudhCN2M,3042
143
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser,sha256=CNoJV1I4XlTxMVyDb2I76VnxDPBdWT2fGkfsRXvkj38,3279
144
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser,sha256=G0y4IqDHVSsZhF94ZQvnXDU5H6sGpOjt5Lki19F-nM8,3475
145
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser,sha256=_90QCtrwnxYwvdjCXgZbI_7YEpoebNdd3Needd2zTbk,3631
146
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser,sha256=5AqDE1wkkEHR6VeXTUp9OAhC5qtj62OIYKYWzoRCN2A,4720
147
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser,sha256=sxps9SclEQx3-_ZXq1nsl1QnZO5zwLYeYPNyvYz7mCo,3030
148
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser,sha256=ZbgE_4ugnjgxxDw5sxDPInO_BKHquZF5EeRnG5nxhPs,3099
149
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser,sha256=oBXKb5bC6Z-vdp8Ju-LAVZ2SMzApQ3qGrWtqrf5Glu4,3056
150
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser,sha256=Cf-_sHGzevC0lKxuuzPLDVjhAIQ2k-QnvSj_o-IVMXQ,3049
151
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser,sha256=Sn4JhSbpogh0UayUGlMOVAPtnCY4k5K7AW4ub4fTZYE,3055
152
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser,sha256=9OESjXvzGbjF8jiFQoZUssZdbUnu1OJUvxaMDAtWxys,3055
153
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser,sha256=TBa5WQsT6QpxID-3LG5F4UDKnpdAqx_OPYOMorKBfVM,3095
154
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser,sha256=OY3lwNtb1wV_mcKansB73CLuxiHjrwwW3iO6mOPh7TA,3031
155
+ compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser,sha256=IgRddmKr3rAl7VGN5Nre2tAAwHf0mcl5C8YK2uhs2w4,2934
156
+ compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser,sha256=Z8W6Vdd-YuREYbapeQD4kIYNJ_tS-P2_VFkvFNv6W0E,3335
157
+ compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser,sha256=miKcCLidKo7azQv9qkFxCwFIrKVe62F0YIGF-Avbx44,2962
158
+ compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser,sha256=x-1x7Pue2PcgBZU7z4rc7sFfGxtI0ZGWQudRfo7L3-A,3189
159
+ compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser,sha256=hLJMDu4hGfmqiH93lgz8pTiUN49PUxcxUdDG0S29hO0,3114
160
+ compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser,sha256=xZGsQljCmBJpoSEMOSP4rFjxjICjAcaE4eonRSX_NsU,2649
161
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser,sha256=MDQnggnDnpIHFun_XzHaTwzzLdbjNnyHLo0SXodH5wQ,2962
162
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser,sha256=OefihX0ZiZ2HF0ajWvP4EwqOPnzo9LWDyCRMxEo8GQM,2864
163
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser,sha256=VrhAGRqV8o7-laKs5JS2A48RHJikDSw5t2ZMyQgp958,2889
164
+ compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser,sha256=L6vxZ1TjFp-UbcEjRk_A0dR10eNeqXU2GZBYvkkHke4,2946
165
+ compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser,sha256=W5rzP3j0PCWkb5nP1usWjbwSKvOQPRFJ9mjMgeioLhY,2824
166
+ compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser,sha256=QSdEF6lsCUBaE73ZWhR9IOldgwhEnsoZ9t9Z02L02Ic,3125
167
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser,sha256=uDwAG3WgFoUzZOS0oU9Z00q4Hz40c6UbBD6XLzk43FE,3055
168
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser,sha256=Ms8Jd3XWHKbMnPbf-oPwz0DZk_PzFavf6ULaAaRnmnE,3045
169
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser,sha256=_TFAUavJCdznuL34u9XTxAWhwoCQmJZKqNUrEdr3joE,3043
170
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser,sha256=02a5wLU0yOA6pSkDDlX2mK9DQQO9D3p0fHAgGNf850o,3050
171
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser,sha256=q4_IaD_P9AVuRMivneKVbSfo9WRuoUOlSy_JGOjv-7g,3040
172
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser,sha256=yTIHHUj5l5fKgk0U13NEGQ16Pj573_zFo7vM6JdV_iM,3048
173
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser,sha256=5Y7_GToZfoEeJAGlAIJN8tIHqTHO3z4vOXoCDdbPT0g,3047
174
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser,sha256=x9vTM2mwluGxIMP8cYIKYXMZ8ubbDS2qNy4mZ7pQR_g,3057
175
+ compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser,sha256=7yukRokcRJgfzhHgL_-H9kpIm9p1r3Gm4pbIWxiJQBM,2991
176
+ compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser,sha256=RMogPKzfrg7c_YQNUMO6xg9vBf16m6A3epnsA8QMxLQ,2996
177
+ compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser,sha256=QOqMzrSKa-p1IBAXUFLKFhrIr_RZTOHgh9Ans4eB6sE,2945
178
+ compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser,sha256=VWT_0uuebAkBnoTEY106kL_q7VOSV5T-9Q7EWKM40IM,3037
179
+ compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser,sha256=OpdlOyTiJ3jgHneKQmiyZYmCqc0YZGhlC47ajSLu63U,2982
180
+ compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser,sha256=OivjWLJ5h9Gp2LHWXChX1-WUu9d9YOI9ko-0OwknrFY,3219
181
+ compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser,sha256=NKf7DOR0pbnE7m4syvCdRsTYUiD5sQ6-dcQ4myRf6Qo,3042
182
182
  compas_cem/loads/__init__.py,sha256=2c5bC8Tg6PRXhHx0UYIjfX-zQK0tqg7QuurhJs-Qft8,442
183
183
  compas_cem/loads/node.py,sha256=LLwOgKBiUrzjx11usPsuTahyknwtQPAXaHHXgaq7yWE,1703
184
184
  compas_cem/optimization/__init__.py,sha256=MN6EDOppSMH_JrJ8yDjw79Jw5nVepTTNCGkNSJ8pWaQ,1371
@@ -219,9 +219,9 @@ compas_cem/viewers/formobject.py,sha256=99X_8YM7UY577qyXrgmyStheNgqB0RcoDZFb6cMy
219
219
  compas_cem/viewers/register.py,sha256=QVBpOzAApXbF61kEsd8WC8Mkn73_sbHI5r9pS3TzHrc,386
220
220
  compas_cem/viewers/topologyobject.py,sha256=JhyBlFznJ3sve0KcDjc07pIaRIJJDoQqnNcDmq10IDM,4021
221
221
  compas_cem/viewers/viewer.py,sha256=Bv0E7SyJ4ECMORVseJWU-0kH3uKjCy6O7VxE1tgsVHM,1414
222
- compas_cem-0.8.3.dist-info/AUTHORS.rst,sha256=-OpKl0OpTQVw6EIT68zWlqNgHxNiT4jcWglorf4sdrs,1799
223
- compas_cem-0.8.3.dist-info/LICENSE,sha256=GvaxOoSt0SbcZBdaYBSPeWjyowWtO47cNtD1Z_Dw2K0,1098
224
- compas_cem-0.8.3.dist-info/METADATA,sha256=9Fs9AuU-0K7-bD07uTLn9W3rgoa-BiAkldqLBvtG5OU,7590
225
- compas_cem-0.8.3.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
226
- compas_cem-0.8.3.dist-info/top_level.txt,sha256=MFhp-uQuMkg2A7bc0xz9h7CFiq-92Vdi-gZSaFlGb1s,11
227
- compas_cem-0.8.3.dist-info/RECORD,,
222
+ compas_cem-0.8.5.dist-info/AUTHORS.rst,sha256=-OpKl0OpTQVw6EIT68zWlqNgHxNiT4jcWglorf4sdrs,1799
223
+ compas_cem-0.8.5.dist-info/LICENSE,sha256=GvaxOoSt0SbcZBdaYBSPeWjyowWtO47cNtD1Z_Dw2K0,1098
224
+ compas_cem-0.8.5.dist-info/METADATA,sha256=hq55bo1QlD8gns1ZodFJlB24-dTDTEGTSTSMjjgJpYs,7587
225
+ compas_cem-0.8.5.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
226
+ compas_cem-0.8.5.dist-info/top_level.txt,sha256=MFhp-uQuMkg2A7bc0xz9h7CFiq-92Vdi-gZSaFlGb1s,11
227
+ compas_cem-0.8.5.dist-info/RECORD,,