diff --git a/latest/.buildinfo b/latest/.buildinfo index 45ea40f99..502830273 100644 --- a/latest/.buildinfo +++ b/latest/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 394bd3ce548985d11d7a303ccdd7cf7a +config: 2314ca279cc73a4868f414e8bcc58027 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/latest/.doctrees/api.doctree b/latest/.doctrees/api.doctree index 8b601fdac..4f0cb6ebd 100644 Binary files a/latest/.doctrees/api.doctree and b/latest/.doctrees/api.doctree differ diff --git a/latest/.doctrees/api/compas_ags.ags.doctree b/latest/.doctrees/api/compas_ags.ags.doctree index 7446d94d0..49846de2f 100644 Binary files a/latest/.doctrees/api/compas_ags.ags.doctree and b/latest/.doctrees/api/compas_ags.ags.doctree differ diff --git a/latest/.doctrees/api/compas_ags.diagrams.doctree b/latest/.doctrees/api/compas_ags.diagrams.doctree index aef6f408e..9afb3426a 100644 Binary files a/latest/.doctrees/api/compas_ags.diagrams.doctree and b/latest/.doctrees/api/compas_ags.diagrams.doctree differ diff --git a/latest/.doctrees/api/compas_ags.doctree b/latest/.doctrees/api/compas_ags.doctree index 4c5fcc749..371bd10a1 100644 Binary files a/latest/.doctrees/api/compas_ags.doctree and b/latest/.doctrees/api/compas_ags.doctree differ diff --git a/latest/.doctrees/api/compas_ags.exceptions.doctree b/latest/.doctrees/api/compas_ags.exceptions.doctree new file mode 100644 index 000000000..db15bdd72 Binary files /dev/null and b/latest/.doctrees/api/compas_ags.exceptions.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.compute_external_work.doctree b/latest/.doctrees/api/generated/compas_ags.ags.compute_external_work.doctree index 57694e076..a6f133910 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.compute_external_work.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.compute_external_work.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work.doctree b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work.doctree index f071ffa42..568fc1f5f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_compression.doctree b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_compression.doctree index 9cd0cfcca..0afeadfac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_compression.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_compression.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_tension.doctree b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_tension.doctree index 13fdadbca..ffe1bc55f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_tension.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.compute_internal_work_tension.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.compute_loadpath.doctree b/latest/.doctrees/api/generated/compas_ags.ags.compute_loadpath.doctree index 17001ac7d..411e6df5b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.compute_loadpath.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.compute_loadpath.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.force_update_from_form.doctree b/latest/.doctrees/api/generated/compas_ags.ags.force_update_from_form.doctree index d1e95a81c..2cf5958c9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.force_update_from_form.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.force_update_from_form.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.form_count_dof.doctree b/latest/.doctrees/api/generated/compas_ags.ags.form_count_dof.doctree index c3af7a73f..7c7b9549d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.form_count_dof.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.form_count_dof.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.form_identify_dof.doctree b/latest/.doctrees/api/generated/compas_ags.ags.form_identify_dof.doctree index 886abe32e..50b350faf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.form_identify_dof.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.form_identify_dof.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.form_update_from_force.doctree b/latest/.doctrees/api/generated/compas_ags.ags.form_update_from_force.doctree index 4a6f5cfbc..bafe29e12 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.form_update_from_force.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.form_update_from_force.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.form_update_q_from_qind.doctree b/latest/.doctrees/api/generated/compas_ags.ags.form_update_q_from_qind.doctree index 34b2b11e8..e96196101 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.form_update_q_from_qind.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.form_update_q_from_qind.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.optimise_loadpath.doctree b/latest/.doctrees/api/generated/compas_ags.ags.optimise_loadpath.doctree index d2faec056..f6e4bb741 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.optimise_loadpath.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.optimise_loadpath.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.update_primal_from_dual.doctree b/latest/.doctrees/api/generated/compas_ags.ags.update_primal_from_dual.doctree index 3c4bd647c..4bf54aaae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.update_primal_from_dual.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.update_primal_from_dual.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.ags.update_q_from_qind.doctree b/latest/.doctrees/api/generated/compas_ags.ags.update_q_from_qind.doctree index 79b6c7cac..9ed67268d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.ags.update_q_from_qind.doctree and b/latest/.doctrees/api/generated/compas_ags.ags.update_q_from_qind.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.ToString.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.ToString.doctree index bc37cf217..5bf42e0e6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.ToString.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.ToString.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.aabb.doctree new file mode 100644 index 000000000..bffda97bc Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_face.doctree index f768fa144..244a39107 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_vertex.doctree index b9f0c15c8..f4fff0781 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.add_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.doctree new file mode 100644 index 000000000..d1a80a0df Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.area.doctree index c241c343a..2fd54a5e5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.centroid.doctree index efa8e201a..508b13afb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.clear.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.clear.doctree index 8db410706..c3fda42af 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.clear.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.clear.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.collapse_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.collapse_edge.doctree index dee474f44..9edbc168c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.collapse_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.collapse_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_aabb.doctree new file mode 100644 index 000000000..2d2a73999 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_obb.doctree new file mode 100644 index 000000000..e9dd6c2d6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_faces.doctree new file mode 100644 index 000000000..6abcb8132 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_vertices.doctree new file mode 100644 index 000000000..898e9254f Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.doctree new file mode 100644 index 000000000..77db2420f Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.copy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.copy.doctree index 8017da15b..1d1cdf1bc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.copy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.copy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.cull_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.cull_vertices.doctree index 12805e4f2..d4079dee1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.cull_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.cull_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.degree_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.degree_matrix.doctree new file mode 100644 index 000000000..5808c48ef Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.degree_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_face.doctree index a96599764..ccf64cc6f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_vertex.doctree index 4c8119c11..3925efce3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.delete_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.doctree index 9106996c4..47bca28a5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attribute.doctree index c47f76f00..ac8729aa7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attributes.doctree index 1c8576e65..e08b08a99 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.doctree index b3dae8f60..a33db5ac6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_direction.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_direction.doctree index 35df0018d..9e6d5ce93 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_direction.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_direction.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_end.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_end.doctree new file mode 100644 index 000000000..57595f94e Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_end.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_faces.doctree index 93cfe1242..3d493ad42 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_index.doctree index 58273feb5..87f16e9af 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_length.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_length.doctree index e5adf3d15..7e0e6d681 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_length.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_length.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_line.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_line.doctree new file mode 100644 index 000000000..69f926c97 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_line.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_loop.doctree index 3ae6e3e24..25d347cc4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.doctree index ca4889ce3..3b2acc5da 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_point.doctree index fcb529793..b90fd290c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_point.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_sample.doctree index a8bd0dc93..9f027165f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_start.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_start.doctree new file mode 100644 index 000000000..d2f5f06b9 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_start.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_strip.doctree index 78d48b3ba..dbf256332 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_vector.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_vector.doctree index 6a8a294b1..284487034 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_vector.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_vector.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges.doctree index 4b9084418..299266765 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attribute.doctree index 43ff8ec69..0e77be652 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attributes.doctree index 04ca2b3c9..24c8f0b43 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.doctree index 23e6523e0..ff6b50fda 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.doctree index 0611ed439..20dabebbf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where.doctree index 57b920b6d..edceb48de 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.doctree index 63b4584ff..dbcf3e72f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.euler.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.euler.doctree index bc9751b45..00094a180 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.euler.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.euler.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.exploded.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.exploded.doctree new file mode 100644 index 000000000..5406ac807 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.exploded.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.doctree index ae9f21f19..6046082c2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.doctree index 98fd75d7c..d6ac8d1c6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_area.doctree index 106538f04..e60112db3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.doctree index 0abb2af4a..065e802f2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attribute.doctree index 7898bb8a6..7b6f65be1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attributes.doctree index a59d707a3..d1ab9a783 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_center.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_center.doctree index 7259b824b..59c143f63 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_center.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_center.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_centroid.doctree index 0c572757e..3dac08120 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_circle.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_circle.doctree new file mode 100644 index 000000000..0a9886c1b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_circle.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_coordinates.doctree index 283c4a45c..a60c8a5be 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_corners.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_corners.doctree index d6762a60d..2086f3cff 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_corners.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_corners.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_curvature.doctree index 75bde0e01..8cd60a7c2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_degree.doctree index b37345104..34c9a0618 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_flatness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_flatness.doctree index 6efb09587..8c00cc796 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_flatness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_flatness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_frame.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_frame.doctree new file mode 100644 index 000000000..c5e566dfd Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_frame.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_halfedges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_halfedges.doctree index 35b03e618..2fa6f04d2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_halfedges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_halfedges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_matrix.doctree new file mode 100644 index 000000000..88924a5a9 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_max_degree.doctree index 0c89df97b..2d5cf31da 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_min_degree.doctree index d4b3b2eb9..9139d174e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.doctree index 793dc29d8..d3f835b59 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighbors.doctree index 397fa7a37..551e4e828 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_normal.doctree index d3a675078..eee6cb386 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_plane.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_plane.doctree index 8e11a29ba..894358a4e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_plane.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_plane.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_points.doctree new file mode 100644 index 000000000..01f7a6b2a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_polygon.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_polygon.doctree new file mode 100644 index 000000000..832d1307b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_polygon.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_sample.doctree index 2d71aa99d..0e288ab9f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_skewness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_skewness.doctree index 46553ec06..ff9413dcb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_skewness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_skewness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.doctree index 3646e0e19..846691d13 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.doctree index 94802ef09..df83e0e55 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.doctree index 52bdab3fd..a8314d3b7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.doctree index 578258888..4876e749d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertices.doctree index 0625cb5be..43d661788 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces.doctree index a149e8cfb..904782dd5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attribute.doctree index 20cdca604..adc408d50 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attributes.doctree index 6a9d6e8bd..e54578b36 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.doctree index cfff4d87c..54d00f9f2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.doctree index c7792a995..492f45517 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where.doctree index aad71844f..c3539f941 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.doctree index d4a7e5361..74c97eaa1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.flip_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.flip_cycles.doctree index d1e44fd91..38a01fdc5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.flip_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.flip_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_json.doctree index 110f922ea..9d3707e21 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.doctree index 4bc2a4489..3c62da881 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_lines.doctree index c84e0969b..cdefa200c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.doctree index ce610ee5c..3a8bce1f9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_obj.doctree index 6278a51f1..abc13648c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_off.doctree index e17c07faa..e4d805210 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_ply.doctree index 17a8d9a9e..65eb22a1b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_points.doctree index 77d493f5c..9fe39c053 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polygons.doctree index 41f6d34fe..69fd7902b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.doctree index 544191f25..2632ad85f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polylines.doctree index 3b23d5da3..85eb0ab8d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_shape.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_shape.doctree index 3b7ff8986..8a8630017 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_shape.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_shape.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_stl.doctree index 3da7906bf..c2d48cb40 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.doctree index 6a0f5b28c..133cd49ff 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.doctree index 64bcb2a4f..ab503f30c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_after.doctree index 1b3fc7aaf..beebb82d1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_before.doctree index b4da763f6..4a24f0810 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_face.doctree index 866931720..a9eb293cc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.doctree index 7456b7803..6993a2564 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.doctree new file mode 100644 index 000000000..ac5eed9b6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.doctree index 1881ff831..77464d5eb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.doctree new file mode 100644 index 000000000..857623224 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_edge.doctree index 167db45f3..c263be786 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_face.doctree index 36c6c2e2e..8a8dc350f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_halfedge.doctree index 905173e00..c4a9a2b94 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_vertex.doctree index d1e7f85fc..dea8e0d69 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.has_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_edge.doctree index 0338d0e59..094712a55 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_vertex.doctree index 0629c8325..c200c50af 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.index_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.insert_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.insert_vertex.doctree index 3975cd199..0f5acb778 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.insert_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.insert_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_closed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_closed.doctree index edbc30292..028b24625 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_closed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_closed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_connected.doctree index 9f099a07c..c99faddb7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.doctree index f36f554c8..5f2cc142d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_empty.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_empty.doctree index aa52bd780..231012a2c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_empty.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_empty.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.doctree index b42ef4912..584e16f77 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_manifold.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_manifold.doctree index 1a05efc6b..4c0256981 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_manifold.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_manifold.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_orientable.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_orientable.doctree index 86f8f4ba8..4b165db14 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_orientable.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_orientable.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.doctree index b8e5012bc..16da55127 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_regular.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_regular.doctree index 889130b94..ec8ea351b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_regular.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_regular.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_trimesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_trimesh.doctree index 5464bcace..a49c63c08 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_trimesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_trimesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_valid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_valid.doctree index 02ca3c12f..0d1087e21 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_valid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_valid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.doctree index 94c718523..62a104bb6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.doctree index ddb7ac832..43b3aea3f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.join.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.join.doctree index 2a1d7871a..252449ac9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.join.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.join.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.doctree new file mode 100644 index 000000000..0a789a3d7 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.merge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.merge_faces.doctree index 31f584c4c..1f6c50727 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.merge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.merge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.normal.doctree index 237e0f6d1..6df723e2e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_edges.doctree index 68a20b708..b040285ec 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_faces.doctree index 28c929555..de36157d8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.doctree index b1349d814..6a98a9deb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.obb.doctree new file mode 100644 index 000000000..e161d121e Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.offset.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.offset.doctree new file mode 100644 index 000000000..c0d962c5b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.offset.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.doctree index 18f9b3189..98c245218 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.doctree new file mode 100644 index 000000000..e427af375 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.doctree index dbef833a9..22650135c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotate.doctree new file mode 100644 index 000000000..da78005e4 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotated.doctree new file mode 100644 index 000000000..ac08ba29b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scale.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scale.doctree new file mode 100644 index 000000000..ec2292f50 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scale.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scaled.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scaled.doctree new file mode 100644 index 000000000..e68999807 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scaled.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.doctree new file mode 100644 index 000000000..c50d9dc34 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.sha256.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.sha256.doctree index d475139e8..f470b2922 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.sha256.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.sha256.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.slice.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.slice.doctree new file mode 100644 index 000000000..3bce3a903 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.slice.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_area.doctree index 1dc1b95f3..0a1542cac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.doctree index 3fe82f708..129f23a04 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_edge.doctree index 1fa782c34..f99059c4c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_face.doctree index 9d6710618..d8ede0846 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_strip.doctree index 1809ac0c1..8cde6feb5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.split_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.subdivided.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.subdivided.doctree new file mode 100644 index 000000000..479105596 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.subdivided.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.summary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.summary.doctree index ec405cbf1..1710a7d36 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.summary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.summary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.thickened.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.thickened.doctree new file mode 100644 index 000000000..aa37a15e6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.thickened.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_json.doctree index 5bc408ebc..6299a0758 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.doctree index 7c705bdec..85c7f28be 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_lines.doctree index 63203d0cf..858e81584 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_obj.doctree index 9188148a4..418326ca7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_off.doctree index 0f84f087f..ac2e8bf85 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_ply.doctree index 80cf38358..64553050a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_points.doctree index 883cafd0d..4a69349af 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polygons.doctree index 8e06ea369..9344c2ffb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polylines.doctree index c306486ae..eb7a89836 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_stl.doctree index 9b04284d3..ea43dab2f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.doctree index 4cc1bd28c..c06f38d2c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform.doctree index 29b622d45..7810269e6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform_numpy.doctree index 5063047a1..1eb098554 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform_numpy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transform_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed.doctree index ac8082db1..2657ef133 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.doctree new file mode 100644 index 000000000..2300a92a7 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translate.doctree new file mode 100644 index 000000000..4d755c9a0 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translated.doctree new file mode 100644 index 000000000..b48edb4c8 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unify_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unify_cycles.doctree index 10e6d0d38..8b17d09aa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unify_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unify_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.doctree index fa14be63e..7f9655426 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.doctree index 756f4687b..1b8992fcf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.doctree index aa4070bad..aa0aff826 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_edges.doctree new file mode 100644 index 000000000..4a528542b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.doctree new file mode 100644 index 000000000..03bc5860a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.doctree index fc25fc625..96c25aee0 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.doctree index ef8f81411..e3e88272c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.doctree index eba492ecc..77d7704e6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.validate_data.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.validate_data.doctree index 45909a84c..60c7382dc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.validate_data.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.validate_data.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_area.doctree index 76df3038f..2f10f9127 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.doctree index 40701af8f..b94362c28 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.doctree index cacdd09a8..34c6d37e1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.doctree index 060700a89..d131c34f4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.doctree index a8f4fefd3..1a82e5257 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_degree.doctree index 7d146802e..34fd41feb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_edges.doctree index 198f5276a..0581040d4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_faces.doctree index 0bc376f20..62841700a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.doctree index b41d143e6..93820af8a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_index.doctree index 0f14cf94f..1bd57e3d3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.doctree index 850624345..e4e0a042a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.doctree index 070b3f73e..8a5c00d06 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.doctree index fcd1631fa..cefdd2c4b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.doctree index beee9dee0..e31d21a6e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.doctree index b735efc5b..b07676cf1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.doctree index 9a2bab941..6bb52463d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_normal.doctree index f5ac2b87c..74bc1f3db 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_point.doctree new file mode 100644 index 000000000..e1f9c4666 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_sample.doctree index be8029a61..5a9a310c9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices.doctree index 96fb403f7..fc6aced69 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.doctree index 9290b20e9..1e05e36f6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.doctree index 2ae69a127..4d847e1cc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.doctree index 84c6660c4..ac3488e6d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.doctree index cbc38232b..576f0918d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_points.doctree new file mode 100644 index 000000000..23058628d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where.doctree index 0e4ae9c10..e27035ec2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.doctree index 48fcf25c4..6bc974e97 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.weld.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.weld.doctree new file mode 100644 index 000000000..ce7b65682 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.weld.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ToString.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ToString.doctree index d912147aa..582f316c4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ToString.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ToString.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.aabb.doctree new file mode 100644 index 000000000..4984735ac Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_face.doctree index 7eca70e29..add167763 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.doctree index 42a19f154..4afc08392 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.doctree new file mode 100644 index 000000000..e80d36d38 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.anchor.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.anchor.doctree index 7308d747a..addf829f2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.anchor.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.anchor.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.area.doctree index 159b67ae0..d93e7a716 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.centroid.doctree index ce0e122bb..5396c2e60 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.clear.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.clear.doctree index 501820604..ae3b396cd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.clear.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.clear.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.doctree index 081ab83d8..d9cc1671a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.doctree new file mode 100644 index 000000000..c415abdeb Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.doctree new file mode 100644 index 000000000..9e794a6f9 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.doctree new file mode 100644 index 000000000..29fe9b3fb Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.doctree new file mode 100644 index 000000000..89f7319e3 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.doctree new file mode 100644 index 000000000..049ad1731 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.doctree index 04ad32f29..99656cfa8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.copy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.copy.doctree index 6721dbffb..2360c2722 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.copy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.copy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.doctree index c5365c458..fd43dae59 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.doctree new file mode 100644 index 000000000..a95c845d4 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.doctree index 2b4e94186..de3483f44 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.doctree index fbe469dfc..e21207e8f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.doctree index b074d12f3..039033c0f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.doctree index e702b3453..d97b8961d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.doctree index 7033b494e..c33f63a56 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.doctree index 7e80beba7..c9ee14f44 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.doctree index 5ac406877..db5ff3542 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.doctree index d613cef3f..1646f71a5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.doctree index d598c8a4e..c37b239e8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.doctree index 97a800853..d5556909c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.doctree index 879ce0d91..5bb0e1374 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.doctree new file mode 100644 index 000000000..1abd3a24a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.doctree index a7e30168f..668ca0ddf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.doctree index 81c5ee8e5..8b9552272 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.doctree index 2e09e14e6..a1a807e3a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.doctree new file mode 100644 index 000000000..8e7dfd5f7 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.doctree index ec5f1fd53..3e8844293 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.doctree index 27ff72c21..8e91a69fc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.doctree index aaa7da16a..8885b5a83 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.doctree index b50fc9ff2..adec9006f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.doctree new file mode 100644 index 000000000..32faddd78 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.doctree index dc1608d8e..0c51a5282 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.doctree index 625b2edde..6ee50e1a1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges.doctree index ac7641f31..764fb7276 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.doctree index 6e0f87cb4..0e863d669 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.doctree index 26fef6527..1d10ee13d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.doctree index 41c7bafea..d37714ad7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.doctree index e0333cd0e..a75b5e45e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.doctree index 45d930399..73a6313cb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.doctree index 58cd2ceff..99d6e5fcc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.doctree index 98ded0ec4..601d38f40 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.euler.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.euler.doctree index 987cf5c50..b9a64f51c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.euler.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.euler.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.exploded.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.exploded.doctree new file mode 100644 index 000000000..cc25ec74b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.exploded.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.doctree index ddc2923eb..514d0b020 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.doctree index efa4cdc4a..cf43e91f1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_area.doctree index e09b419b7..11b30bd8e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.doctree index 230f048ac..1d4406d32 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.doctree index a7f8f18ca..e60dabf99 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.doctree index 1007f6683..f5c99538a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_center.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_center.doctree index fb823fde0..1613cf75d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_center.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_center.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.doctree index 4e220a8d4..5c18877ac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.doctree new file mode 100644 index 000000000..f33afb403 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.doctree index 6605d9fcd..e0ed324d3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.doctree index 524ec275d..d2524906e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.doctree index cc6421860..3fc12a1cd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.doctree index 36c3a0d71..c888fae7b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.doctree index 436d70a36..94b97ac98 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.doctree new file mode 100644 index 000000000..76e45dd47 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.doctree index 7555340c7..84aa6a8dd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.doctree new file mode 100644 index 000000000..13c47620e Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.doctree index e2bc588df..7dabf6e8b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.doctree index 87c1f18b9..bc3036274 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.doctree index fe00cc3e1..062087859 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.doctree index 39d152090..358f428bb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.doctree index 7152ba6a4..9d9bed874 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.doctree index dd15d1d5f..bb6d86653 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_points.doctree new file mode 100644 index 000000000..2c7ab636d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.doctree new file mode 100644 index 000000000..08b75b9f4 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.doctree index 8d68f8930..4072e2563 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.doctree index 7b58bc641..455be6687 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.doctree index 15f7b10c8..877d1af99 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.doctree index 94fe26f6b..50abbc304 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.doctree index 2012cb114..822847a62 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.doctree index 924eaacef..5fd1eff08 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.doctree index c40c1bb8d..084495c4c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces.doctree index 1be1bc124..391d036ec 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.doctree index abb99c4a1..4c4ffa284 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.doctree index c9339f338..976c725f1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.doctree index 5688d5268..4ac4c40e4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.doctree index dd9b80966..6e689b0a8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.doctree index 8fc51c645..e276ce8c2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.doctree index 991fae0b4..15703945c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.fixed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.fixed.doctree index f38749220..a4c2efd5b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.fixed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.fixed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.doctree index 005313d6e..fe2db342e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.doctree index 6800dfb83..a244b8b65 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_json.doctree index 714a6e88a..f0ed4b821 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.doctree index cc4a56983..9ce722707 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.doctree index 8139d3b3f..169ec2fd7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.doctree index 9ce8ee123..69ac0bfdb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.doctree index edbd2eb82..3b8f1c1b7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_off.doctree index a47e05239..d11e08e15 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.doctree index 97325de6f..9a73267ae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_points.doctree index ea108f266..0ff007995 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.doctree index 58f4b9c98..f03f5ef87 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.doctree index a99632fe7..66baa342c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.doctree index ae7b45655..5f5f44bdc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.doctree index 4374e6c3c..a190cca02 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.doctree index 320e51a1e..efe6b8c04 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.doctree index c2cd272d3..b1f12941d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.doctree index 99d3df92e..28fd922a5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.doctree index a67c6aadb..967d8bb9c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.doctree index 30f02fe08..9d0319985 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.doctree index e7d1c9a40..5560ab432 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.doctree index 2617f0be9..55f6b75d9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.doctree new file mode 100644 index 000000000..fc5a4e908 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.doctree index 34ee74801..d7f9775aa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.doctree new file mode 100644 index 000000000..2b68d5ab6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.doctree index dba375092..67840ba32 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_face.doctree index e89c265fa..318ef75d2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.doctree index b76a31bca..9a8ca3830 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.doctree index b66266f21..9aa0c7ef1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.doctree index bb8bc99a9..4d1f295fb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.doctree index be557aa48..f6dfa0b3a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.doctree index f0d1ff051..666fcc019 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.doctree index 98ccc271f..df7362f07 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.doctree index 967147191..74b4364f2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.doctree index 463d454b0..ff07f9242 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.doctree index 5271d4902..7350c70ae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.doctree index f812ea21f..8849bccf5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.doctree index 4c1513ff6..c65279c2f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.doctree index a6446fac8..e52e9e7ce 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.doctree index aa8e69b9a..7a598fe2e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.doctree index e26f9db43..8585f891a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.doctree index cd94b118c..d6ed95785 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.doctree index c78ce153e..07d864f02 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.doctree index 69f9f256a..b6372ead0 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.doctree index 7b2b7685c..733fc402b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.doctree index 72df5897a..c58a1792a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.doctree index d4e808d90..cfa143457 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.doctree index 892bc59bf..8ac0ffb7d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.doctree index 0027c463b..95fe39bde 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.join.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.join.doctree index 06fe237ad..8341d728d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.join.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.join.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.doctree new file mode 100644 index 000000000..93ba48614 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.doctree index 456591f5a..e7e737837 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.normal.doctree index 1f55807f4..f12b58bbc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.doctree index a4ce915a0..533d8bcbc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.doctree index 934cde680..100db03dc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.doctree index a777a5dda..cff14e2ac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.obb.doctree new file mode 100644 index 000000000..175fb3c1b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.offset.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.offset.doctree new file mode 100644 index 000000000..37acfe66d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.offset.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.doctree index 807060cbf..9cb17de6d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.doctree index e781e168f..065a3dfc8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.doctree new file mode 100644 index 000000000..cf959fd67 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.doctree index 4a98647d6..0e90a56a5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotate.doctree new file mode 100644 index 000000000..ae074699a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotated.doctree new file mode 100644 index 000000000..e931104cc Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scale.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scale.doctree new file mode 100644 index 000000000..0bec011e6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scale.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scaled.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scaled.doctree new file mode 100644 index 000000000..c648a51fd Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scaled.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.doctree new file mode 100644 index 000000000..a98f18232 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.sha256.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.sha256.doctree index 316c93e38..d5aa87f16 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.sha256.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.sha256.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.slice.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.slice.doctree new file mode 100644 index 000000000..8f1adad50 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.slice.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.doctree index 7e1a579f4..07941d580 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.doctree index 64f512d44..fa12a4174 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.doctree index 2b1322889..a64dacb3b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_face.doctree index c8bec384c..2a845cd60 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.doctree index 32167852d..62b789739 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.doctree new file mode 100644 index 000000000..5c4831c4a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.summary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.summary.doctree index 809b637b8..cd98396c3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.summary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.summary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.thickened.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.thickened.doctree new file mode 100644 index 000000000..7c0ff8de1 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.thickened.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_json.doctree index 972d142dc..4ffa671c2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.doctree index e174ba1ad..545c83542 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.doctree index d5984f565..27efe3a79 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.doctree index 8fce3a591..a5263f9ff 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_off.doctree index d790a6146..2a2fe8206 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.doctree index b5a97459b..43441f651 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_points.doctree index 130aefda0..4c0242833 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.doctree index 892028234..929c49568 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.doctree index a7ab70f48..452442c90 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.doctree index ff04ecd27..3d7291b77 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.doctree index d03a9e130..5b36d63d1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform.doctree index 1663c244e..cc65be9f2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.doctree index 87cfbe1f9..04d489d47 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed.doctree index a3bf5c426..4e3972bdc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.doctree new file mode 100644 index 000000000..74cf6a5ca Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translate.doctree new file mode 100644 index 000000000..1c9058254 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translated.doctree new file mode 100644 index 000000000..0bca994ef Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.doctree index 2306645f1..b9587d635 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.doctree index 197ff07d6..25228addd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.doctree index 83d861d33..97beb7354 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.doctree index 90a611f31..cf2ad7a4b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.doctree new file mode 100644 index 000000000..c1030ef01 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.doctree new file mode 100644 index 000000000..d20737c73 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.doctree index c35d9602f..458500991 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.doctree index a8d12142f..6be2a31b5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.doctree index 6e40b1dd3..163a79417 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.doctree index bdfa43d93..ea1a109b3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.doctree index 31882e93b..d5b84efd9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.doctree index fedffdff8..92277b819 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.doctree index be7c8a1fb..b439c0bf9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.doctree index 566482c2d..44cc682fa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.doctree index 9d1b0fb98..ffc191e50 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.doctree index 519229ff9..6017c8cf5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.doctree index a3c610f35..8b8566b5f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.doctree index 47b8d6356..81fc1abd3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.doctree index 2c9fc655d..197799793 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.doctree index 73ee8e015..d0506b505 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.doctree index 524a5d453..e9b791102 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.doctree index dd1394b51..e6d1e8fed 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.doctree index c5a92e099..2d8d704b1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.doctree index fb49a0ae1..fb7323c72 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.doctree index 6659be280..196322fff 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.doctree index 9345f3f09..485581f1c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.doctree index 068f770ea..c95b9303d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.doctree new file mode 100644 index 000000000..ad7bb5ede Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.doctree index 0b19c7e7c..d82bb7d35 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices.doctree index 833f6b0ea..59a1c770b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.doctree index 09eb10ac7..01d3da85c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.doctree index c9cabbafb..e046e84b6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.doctree index dca035a9f..ffd491e6e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.doctree index 2024bb2e3..c8bfeef78 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.doctree new file mode 100644 index 000000000..1423e15df Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.doctree index 302f2e300..04d5cfd2d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.doctree index 21d249435..1678db95c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.weld.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.weld.doctree new file mode 100644 index 000000000..ab21d3de8 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.weld.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.xy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.xy.doctree index 1007119bc..7e76a600b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.xy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.xy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ToString.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ToString.doctree index a63c929ba..d97ef6be9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ToString.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ToString.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.aabb.doctree new file mode 100644 index 000000000..9f5497d08 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_face.doctree index 04e72ab35..27853d286 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.doctree index 830b728cc..ef1189ebe 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.doctree new file mode 100644 index 000000000..90340a2b6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.area.doctree index 25a719261..b9752de24 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.centroid.doctree index 88338406a..910c8cc4a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.clear.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.clear.doctree index 258d11cd0..e792bf803 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.clear.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.clear.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.doctree index 11c1fe6b3..456227703 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.doctree new file mode 100644 index 000000000..086ff8298 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.doctree new file mode 100644 index 000000000..e941b6d8c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.doctree new file mode 100644 index 000000000..47f4fad8f Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.doctree new file mode 100644 index 000000000..87d76b08d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.doctree new file mode 100644 index 000000000..a7eb1f9e0 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constrained.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constrained.doctree index 086520579..11b864e2e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constrained.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constrained.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constraints.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constraints.doctree index 520338631..f5cf19448 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constraints.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.constraints.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.copy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.copy.doctree index d1b248091..f19328fa6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.copy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.copy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.doctree index 1550c4bc9..0b773a961 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.doctree new file mode 100644 index 000000000..56a609cb7 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_face.doctree index 21003fe9c..aca99ab35 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.doctree index 70ee96722..2bed68e36 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree index ce4a5a5a8..86e7d5075 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.doctree index 593378279..f6ef92869 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.doctree index 790daa0be..5883fa938 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.doctree index 1e18fa239..44379de71 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.doctree index 553966745..facb8d71b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_end.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_end.doctree new file mode 100644 index 000000000..6955d751f Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_end.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.doctree index 5271bf3f0..33562a3b1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_force.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_force.doctree index 853bc75bc..1cc159fe6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_force.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_force.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.doctree index 101a82a9f..57d56b90e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_index.doctree index fe187602e..3b1e6a948 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_length.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_length.doctree index 0b9be94ef..c007c2d62 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_length.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_length.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_line.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_line.doctree new file mode 100644 index 000000000..65b436c92 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_line.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.doctree index 8031f0b2b..46bea7b12 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.doctree index 6197ace3c..3d3f505e7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_point.doctree index f01cb2a04..b545298f3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_point.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.doctree index 23a918bc0..8f666461e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_start.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_start.doctree new file mode 100644 index 000000000..73dc8d7cc Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_start.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.doctree index d503a1a82..6b5bb2300 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.doctree index a2684b8c7..a3341d01e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges.doctree index 72cfdf3b8..f2df5a3a8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.doctree index 65aee2e14..3037e72eb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.doctree index 946a610ca..bc29934d0 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.doctree index 764d7021e..6d9522074 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.doctree index c60da1569..4074eb745 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where.doctree index 736ee4b69..67b04c587 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.doctree index 2ba861290..6a6471054 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.euler.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.euler.doctree index b3099f99f..82997de8a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.euler.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.euler.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.exploded.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.exploded.doctree new file mode 100644 index 000000000..1256ede60 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.exploded.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.doctree index 27b70cd6d..585d90753 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.doctree index 285a53951..bcb5cd157 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_area.doctree index 695662d17..903d5ff18 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.doctree index 391ed2f0f..04b5aa344 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.doctree index bd66c019c..89a363d28 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.doctree index d5dc2d00b..4e3cbde14 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_center.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_center.doctree index 149ceaa32..ea43a7e4e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_center.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_center.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.doctree index bb4c61384..56b5039ae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_circle.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_circle.doctree new file mode 100644 index 000000000..176594548 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_circle.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.doctree index 0f33ee7df..a4dd415d4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_corners.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_corners.doctree index a3ff97a87..811e47e05 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_corners.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_corners.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.doctree index 95ef98d37..2aef5c9b7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_degree.doctree index 2ff843882..c4e0951e3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.doctree index b2d106958..75efa3c20 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_frame.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_frame.doctree new file mode 100644 index 000000000..8b4369ff6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_frame.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.doctree index c99fb2f30..2cd6f7444 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.doctree new file mode 100644 index 000000000..33e1c7e37 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.doctree index 3ef6786ff..cf8a5f2ba 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.doctree index 6f30a5f53..2aad229b4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.doctree index 1e10a9c36..634b33aa3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.doctree index 74b7d1506..96799faa2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_normal.doctree index 69f150831..067f10480 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_plane.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_plane.doctree index 8181f958b..271b64ed1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_plane.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_plane.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_points.doctree new file mode 100644 index 000000000..ce3d2142d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.doctree new file mode 100644 index 000000000..915e82c06 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_sample.doctree index 802ba9450..9137dbb9d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.doctree index d1c7673e3..027f5c6ae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.doctree index 004a62b5e..bca92e643 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.doctree index 1a1aeb56b..36a80c9b4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.doctree index 20fb8c699..858bbdfe0 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.doctree index f372eeb0a..0b33c7b2c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.doctree index 2428d0500..93ad53553 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces.doctree index 46985ca14..221f7d1e7 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.doctree index c59913d0e..8519a0c70 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.doctree index 54bfd869d..a4f9115dc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.doctree index 1f619c1fa..072c0e9aa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.doctree index 291ae0307..547237e05 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where.doctree index 01de62e96..76f3345cf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.doctree index 57ee6cc7f..8db090ccd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.fixed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.fixed.doctree index b16673458..7c09767ae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.fixed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.fixed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.doctree index 97da5fab1..d9cbceaad 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_graph.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_graph.doctree index 6ef15f64c..bcfbbbcb4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_graph.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_graph.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_json.doctree index 7aa5fb8a7..209717ae1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.doctree index eb53e082d..3b8bcbc4e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_lines.doctree index 12e46e86c..29ae9197b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.doctree index ef5911d70..41e9b7f4e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_obj.doctree index a22f91502..4d10eff35 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_off.doctree index a98e962b8..5e9931ce8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_ply.doctree index 65e31c7b0..391cf6872 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_points.doctree index 75f9feec5..9ed8e76db 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.doctree index 3ca75d36c..dde7ef906 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.doctree index e0e359ae9..aef7c1e92 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.doctree index 0c605dd2b..3c311cd33 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_shape.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_shape.doctree index d39941627..e40375e34 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_shape.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_shape.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_stl.doctree index d0458d00e..f3e35deac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.doctree index d0835af77..81f67d29a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.doctree index 2e6c134bf..638a29ed6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.doctree index 9c2d0d1cc..ce0f7ae30 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.doctree index 8389dd4ce..f49cf4a56 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.doctree index e850a15dd..7551c8ca2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.doctree index 419a645bc..0e629a15a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.doctree new file mode 100644 index 000000000..1f52a29ae Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.doctree index 18d576601..4064f372a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.doctree new file mode 100644 index 000000000..65f1d03ef Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_edge.doctree index 7d1052ba0..ac05c5e38 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_face.doctree index 8cdc5cff9..830edbacb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.doctree index 51e4b1068..9dc41afbb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.doctree index 90408d4c3..bf1762847 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.doctree index d013147e3..20f9c6388 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ind.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ind.doctree index 0332eaeac..f941e416d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ind.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.ind.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_edge.doctree index 7038b94b0..95bd7115f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.doctree index af889bd7d..82e966e0c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.doctree index 8bef40e1c..111ed9c69 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_closed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_closed.doctree index a358c277b..f43f59ec1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_closed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_closed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_connected.doctree index abfadfcd7..9f5ab2fc1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.doctree index eca3f9c30..e42068a6e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_empty.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_empty.doctree index c5794dea8..405ff7996 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_empty.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_empty.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.doctree index 06b60dd0e..1fd239ed1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.doctree index 1098bbba4..187d83172 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.doctree index 9cb35d568..0869bfa65 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.doctree index dd46c3995..f1879ce5d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_regular.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_regular.doctree index 5291475b0..00b9b675a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_regular.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_regular.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.doctree index d8ec0abb5..88b47e407 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_valid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_valid.doctree index 9b369a477..28bd1138a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_valid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_valid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.doctree index 0b47b03d4..f0d62587f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.doctree index f9ce6a647..7e1ed3130 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.join.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.join.doctree index 6d47838eb..c23c49695 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.join.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.join.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.doctree new file mode 100644 index 000000000..19802c00a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.doctree index 8c5712edd..d5ca54630 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaves.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaves.doctree index d07e14491..ad24a916b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaves.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.leaves.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.doctree index c0b9860bd..98900a96d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.normal.doctree index 7c0c2b9aa..156989e17 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.doctree index d46282194..f583cd52c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.doctree index 91a8c4871..8d68d2255 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.doctree index b289a6c18..683208289 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.obb.doctree new file mode 100644 index 000000000..a030786b1 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.offset.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.offset.doctree new file mode 100644 index 000000000..95f85b283 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.offset.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.q.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.q.doctree index b687faba7..d509a1e04 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.q.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.q.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.doctree index c0433f134..d1dc32b35 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.doctree new file mode 100644 index 000000000..09348e792 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.doctree index b223c3ea6..37bf74174 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotate.doctree new file mode 100644 index 000000000..284361fe8 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotated.doctree new file mode 100644 index 000000000..eb8025e72 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scale.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scale.doctree new file mode 100644 index 000000000..21a104bf6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scale.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scaled.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scaled.doctree new file mode 100644 index 000000000..fb46be0f5 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scaled.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.doctree new file mode 100644 index 000000000..5a01b246f Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.sha256.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.sha256.doctree index b95f0e53a..9f123de9d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.sha256.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.sha256.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.slice.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.slice.doctree new file mode 100644 index 000000000..9561f487a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.slice.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.doctree index 6f77f0756..0f5ff8065 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.doctree index 8a5034577..2ea650f12 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_edge.doctree index 70fc169f7..55f38d04b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_face.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_face.doctree index 32c0f3c54..3379a1cee 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_face.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_face.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_strip.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_strip.doctree index 73433db04..791991474 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_strip.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.split_strip.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.subdivided.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.subdivided.doctree new file mode 100644 index 000000000..9fac0f02d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.subdivided.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.summary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.summary.doctree index e8a0d6d01..2b6436495 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.summary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.summary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.thickened.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.thickened.doctree new file mode 100644 index 000000000..2c7a603c6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.thickened.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_json.doctree index 70f8e5706..db9b3ebae 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.doctree index 21be5413a..96a568de5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_lines.doctree index e24a8762b..e23ad509f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_obj.doctree index ff018f647..ca5eabb65 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_off.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_off.doctree index e1c767d3b..da2d17408 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_off.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_off.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_ply.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_ply.doctree index 20c26c3fb..ae42fe48c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_ply.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_ply.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_points.doctree index 3cce4da58..2fb55c82f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.doctree index e78701916..a23fc260f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.doctree index f9602697c..e1cedbad5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_stl.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_stl.doctree index 0ad4d0a47..c626ed115 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_stl.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_stl.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.doctree index d8729ad0c..1c4c3cdec 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform.doctree index a9c881f99..e74ffdc55 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.doctree index ef191783c..2b648cb16 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed.doctree index b71ca7a10..7cecdcc4b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.doctree new file mode 100644 index 000000000..c61a879b6 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translate.doctree new file mode 100644 index 000000000..d00b93375 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translated.doctree new file mode 100644 index 000000000..a195c9210 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.doctree index a5599d304..db83f6207 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.doctree index 326e6b748..1327dbef4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.doctree index 4ea4342fb..e74a48192 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.doctree index d9185b17c..7c5dc804a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.doctree new file mode 100644 index 000000000..dfbd18d3a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.doctree new file mode 100644 index 000000000..a031d3e03 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.doctree index f6817afde..a64adc609 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.doctree index c0b0080fd..a5e3bef9a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.doctree index 10bb7c6da..341abba0c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.validate_data.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.validate_data.doctree index 2480e0034..ce1ea246a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.validate_data.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.validate_data.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.doctree index 6ad57165f..6c8ee0c8c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.doctree index 9f373b395..fd7c03939 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.doctree index 3795497f2..2c2e25372 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.doctree index e387abf07..94f83fcbc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.doctree index db17691ee..c68de6f25 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.doctree index fac226eb5..080c25bd9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.doctree index 65f7b9586..d153f5116 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.doctree index 77194ab58..cdd40555b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.doctree index 6604635c0..11454e570 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.doctree index 1680fc7f2..1bba99e53 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.doctree index 71569180b..6bd808e5f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.doctree index dfc6d830c..b4129a1fa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.doctree index 2a4f76d30..ace5dce2f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.doctree index 15530dd82..e4f833f95 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.doctree index 9edf9fff6..4d1b7df2e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.doctree index c4278abee..1abaf96ac 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.doctree index 1dd34eee4..70430b167 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.doctree new file mode 100644 index 000000000..297a3fb30 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.doctree index 38c010091..45f44e1b9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices.doctree index 3fc89fd52..17f8c3917 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.doctree index a84e22a68..b097c9816 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.doctree index 13c6c19ec..9b0b0973d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.doctree index ed1bbee65..c7b33cffc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.doctree index a1d3b89f2..3bca33390 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.doctree new file mode 100644 index 000000000..9c28ff446 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.doctree index 13271d43b..4e2457d13 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.doctree index 9f13a612a..99ba7fc5e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.weld.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.weld.doctree new file mode 100644 index 000000000..29d1c4f0d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.weld.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.xy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.xy.doctree index 8b07d3f71..a643e54c8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.xy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.xy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.ToString.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.ToString.doctree index 216be1d1d..2f51df483 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.ToString.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.ToString.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.aabb.doctree new file mode 100644 index 000000000..02db9626a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_edge.doctree index e044e7392..85324f672 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_node.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_node.doctree index 3b4faff71..728dd0dd6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_node.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.add_node.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.doctree index 4c8213cdd..e735f5c57 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.clear.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.clear.doctree index d90dc279d..2375c06d3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.clear.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.clear.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.complement.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.complement.doctree index faccea23a..2a934a0f6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.complement.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.complement.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.doctree new file mode 100644 index 000000000..47b66536c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_obb.doctree new file mode 100644 index 000000000..5821b705a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_edges.doctree index 86a50cc47..6829032ad 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.doctree new file mode 100644 index 000000000..a7baa43d3 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.doctree index d10b967b7..c8bded820 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.copy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.copy.doctree index f2fc5b2e5..b07d1e032 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.copy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.copy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.count_crossings.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.count_crossings.doctree index 415a3eff9..45d05ddfa 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.count_crossings.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.count_crossings.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree.doctree index 99b7f55b3..98581d3b3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_in.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_in.doctree index 68ea9e55c..6140964e2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_in.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_in.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.doctree index b1eaa37de..912b1c62b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_out.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_out.doctree index 57e8ae4df..403d47425 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_out.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.degree_out.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_edge.doctree index 4b0c630ea..f2ccd91dc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_node.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_node.doctree index 21aacef70..e408de34f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_node.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.delete_node.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree index de7e83258..d7bc4ac04 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.doctree index 25238094e..fcdfbd6d1 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.doctree index c7c891d7f..32274437a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.doctree index cdcdb35f6..61dd630cf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_direction.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_direction.doctree index 3e87195cf..9fb14f729 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_direction.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_direction.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_end.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_end.doctree new file mode 100644 index 000000000..412ef6f8c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_end.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_index.doctree new file mode 100644 index 000000000..c620c1e48 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_length.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_length.doctree index 82a6beb56..6d46bfe91 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_length.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_length.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_line.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_line.doctree new file mode 100644 index 000000000..36b425fa4 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_line.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.doctree index a641b5691..318ddc912 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_point.doctree index 4bced44b6..a4717025f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_point.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_sample.doctree index eebb6921e..63fd020d2 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_start.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_start.doctree new file mode 100644 index 000000000..8733b062e Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_start.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_vector.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_vector.doctree index 044097680..f23be2006 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_vector.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_vector.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges.doctree index c1ffccb98..08744b415 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.doctree index e5decdf94..5e918fe31 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.doctree index b5b00ce16..02b2bb612 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where.doctree index 4c683b8ff..715edf8e3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.doctree index 6fe80afef..a53001809 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed.doctree index 710b1d8f4..193c93593 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.doctree index 592082666..0d58c2668 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.exploded.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.exploded.doctree new file mode 100644 index 000000000..8d581abe4 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.exploded.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_crossings.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_crossings.doctree index a0952b784..b247ab9fc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_crossings.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_crossings.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_cycles.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_cycles.doctree index 559ea42fc..bed668366 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_cycles.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.find_cycles.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_edges.doctree index a06e290f5..bc8e07e40 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_json.doctree index 09a7999e1..77b6e1b72 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.doctree index 7cfdd0710..668a0445a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_lines.doctree index 17144d5bb..2795a2b5e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_networkx.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_networkx.doctree index 48c3228dd..5e085aad4 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_networkx.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_networkx.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.doctree index 2e4542d03..308e76ccd 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_obj.doctree index 64614a5b7..3828e1696 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.doctree index 16c91aac5..a819cc809 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.gkey_node.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.gkey_node.doctree index daac11a9b..aaafc2b7f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.gkey_node.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.gkey_node.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_edge.doctree index 08263b75a..b9014d328 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_node.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_node.doctree index d367a7776..fa5eddd97 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_node.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.has_node.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_edge.doctree new file mode 100644 index 000000000..09074fc4a Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_node.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_node.doctree new file mode 100644 index 000000000..ff8fcebf7 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_node.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_2d.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_2d.doctree index 5fbbfcc52..f9749d1cb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_2d.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_2d.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_connected.doctree index 2e7858830..863a3f040 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_crossed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_crossed.doctree index d36b58f81..cb2677c9f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_crossed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_crossed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_leaf.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_leaf.doctree index f69203473..d27634eb5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_leaf.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_leaf.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.doctree index 06f6a04f4..9a592d38a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar.doctree index 81c3f3e0c..24f0f3fc6 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.doctree index 935d5e80b..c1546baaf 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_xy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_xy.doctree index 6e6e03ecd..a27368215 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_xy.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.is_xy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.join_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.join_edges.doctree new file mode 100644 index 000000000..5308d108c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.join_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.doctree index 409d486da..ea9e5d30a 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.leaves.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.leaves.doctree index 63a7dfc8e..cfb9fdf95 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.leaves.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.leaves.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighborhood.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighborhood.doctree index 5183f6e35..1462191c9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighborhood.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighborhood.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors.doctree index 4bb702a04..75d987f80 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.doctree index e651f2347..01b4c1598 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.doctree index 0fa2b85d8..e3b44245d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attribute.doctree index ef415c399..425244690 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attributes.doctree index c868fc2db..2c714cf0c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.doctree index 529db824f..72a51ae27 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_edges.doctree new file mode 100644 index 000000000..f126233b2 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_gkey.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_gkey.doctree index e66d64657..64601b9b3 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_gkey.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_gkey.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_index.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_index.doctree index 24fffd0b0..fdf57b00f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_index.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_index.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.doctree index 784ec3304..a6bad091e 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.doctree index ff5faaa8e..d3f40c19b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_point.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_point.doctree new file mode 100644 index 000000000..4aa3f4377 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_point.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_sample.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_sample.doctree index da46daa94..17297dded 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_sample.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_sample.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes.doctree index 853195b57..e58de2a3d 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.doctree index 64bee3431..76aee0089 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.doctree index c474e05ca..3a6522c8c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where.doctree index daa679f9b..a5e0b1d60 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.doctree index d33c6eea1..bc3d874bc 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.doctree index 8b370c62e..5af938b0f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.doctree index 928cfd0b1..f00459338 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.obb.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.obb.doctree new file mode 100644 index 000000000..14dfd2275 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.obb.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotate.doctree new file mode 100644 index 000000000..04a941950 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotated.doctree new file mode 100644 index 000000000..deedfa15d Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scale.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scale.doctree new file mode 100644 index 000000000..6ec8e6950 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scale.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scaled.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scaled.doctree new file mode 100644 index 000000000..294914bb5 Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scaled.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.sha256.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.sha256.doctree index cc630df57..84b831167 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.sha256.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.sha256.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.shortest_path.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.shortest_path.doctree index 8ee164559..ec6061f4c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.shortest_path.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.shortest_path.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.smooth.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.smooth.doctree index 775464e76..52f15760f 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.smooth.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.smooth.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.split_edge.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.split_edge.doctree index 769a62ed8..851f13262 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.split_edge.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.split_edge.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.summary.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.summary.doctree index 7a7b6d485..69203116c 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.summary.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.summary.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_json.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_json.doctree index 450659be4..3ec124e08 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_json.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_json.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.doctree index d9f8df069..5bcebf835 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_lines.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_lines.doctree index 34823ef1b..e01f63850 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_lines.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_lines.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_networkx.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_networkx.doctree index 300805bf6..478bd6445 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_networkx.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_networkx.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.doctree index 8111dfcce..02c6beee8 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_obj.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_obj.doctree index 783521302..e27d1c18b 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_obj.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_obj.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_points.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_points.doctree index e959e8782..4b8fb4803 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_points.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.to_points.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform.doctree index 7a0edb426..4e8c01bc5 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.doctree new file mode 100644 index 000000000..a3cc4eb7c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed.doctree index 6d00e1acc..1b16f1dab 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.doctree new file mode 100644 index 000000000..03e3745af Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translate.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translate.doctree new file mode 100644 index 000000000..da40cb00b Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translate.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translated.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translated.doctree new file mode 100644 index 000000000..4e9cd209c Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translated.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.doctree index a3eff4b0a..04a774b84 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.doctree index 1bcfe2345..6c3f8ace9 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.doctree index 0d54e9f1f..9a425c9ef 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.doctree index 4821ddbbd..641bd1ee0 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.validate_data.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.validate_data.doctree index 7ab5842b5..57ee7cbfb 100644 Binary files a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.validate_data.doctree and b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.validate_data.doctree differ diff --git a/latest/.doctrees/api/generated/compas_ags.exceptions.SolutionError.doctree b/latest/.doctrees/api/generated/compas_ags.exceptions.SolutionError.doctree new file mode 100644 index 000000000..a7a9c62ab Binary files /dev/null and b/latest/.doctrees/api/generated/compas_ags.exceptions.SolutionError.doctree differ diff --git a/latest/.doctrees/environment.pickle b/latest/.doctrees/environment.pickle index 5862f352b..5c62a1fa9 100644 Binary files a/latest/.doctrees/environment.pickle and b/latest/.doctrees/environment.pickle differ diff --git a/latest/.doctrees/examples.doctree b/latest/.doctrees/examples.doctree index a274dfa70..c5afb0b26 100644 Binary files a/latest/.doctrees/examples.doctree and b/latest/.doctrees/examples.doctree differ diff --git a/latest/.doctrees/examples/00_basic.doctree b/latest/.doctrees/examples/00_basic.doctree index 2dec730ae..0e33f582a 100644 Binary files a/latest/.doctrees/examples/00_basic.doctree and b/latest/.doctrees/examples/00_basic.doctree differ diff --git a/latest/.doctrees/examples/01_rtl.doctree b/latest/.doctrees/examples/01_rtl.doctree index 2fa76304a..d6175e5df 100644 Binary files a/latest/.doctrees/examples/01_rtl.doctree and b/latest/.doctrees/examples/01_rtl.doctree differ diff --git a/latest/.doctrees/examples/02_lpopt.doctree b/latest/.doctrees/examples/02_lpopt.doctree index f0c2aa88f..3acc7b2b4 100644 Binary files a/latest/.doctrees/examples/02_lpopt.doctree and b/latest/.doctrees/examples/02_lpopt.doctree differ diff --git a/latest/.doctrees/examples/03_fink.doctree b/latest/.doctrees/examples/03_fink.doctree index 23659cd0f..9c67e541d 100644 Binary files a/latest/.doctrees/examples/03_fink.doctree and b/latest/.doctrees/examples/03_fink.doctree differ diff --git a/latest/.doctrees/index.doctree b/latest/.doctrees/index.doctree index f41005136..412237180 100644 Binary files a/latest/.doctrees/index.doctree and b/latest/.doctrees/index.doctree differ diff --git a/latest/.doctrees/installation.doctree b/latest/.doctrees/installation.doctree new file mode 100644 index 000000000..02318916b Binary files /dev/null and b/latest/.doctrees/installation.doctree differ diff --git a/latest/.doctrees/license.doctree b/latest/.doctrees/license.doctree index 0af940fa1..687b51b84 100644 Binary files a/latest/.doctrees/license.doctree and b/latest/.doctrees/license.doctree differ diff --git a/latest/.doctrees/publications.doctree b/latest/.doctrees/publications.doctree index da8f3361a..cf247fafc 100644 Binary files a/latest/.doctrees/publications.doctree and b/latest/.doctrees/publications.doctree differ diff --git a/latest/.doctrees/publications/ags.doctree b/latest/.doctrees/publications/ags.doctree index e9a185867..c9950cbdc 100644 Binary files a/latest/.doctrees/publications/ags.doctree and b/latest/.doctrees/publications/ags.doctree differ diff --git a/latest/.doctrees/publications/bi-ags.doctree b/latest/.doctrees/publications/bi-ags.doctree index e4595c459..b8138fe67 100644 Binary files a/latest/.doctrees/publications/bi-ags.doctree and b/latest/.doctrees/publications/bi-ags.doctree differ diff --git a/latest/.doctrees/publications/interactive-ags.doctree b/latest/.doctrees/publications/interactive-ags.doctree index 90259cb74..f4530de3c 100644 Binary files a/latest/.doctrees/publications/interactive-ags.doctree and b/latest/.doctrees/publications/interactive-ags.doctree differ diff --git a/latest/.doctrees/publications/loadpath.doctree b/latest/.doctrees/publications/loadpath.doctree index 598b8d79f..b744709bc 100644 Binary files a/latest/.doctrees/publications/loadpath.doctree and b/latest/.doctrees/publications/loadpath.doctree differ diff --git a/latest/_images/AGS_intro.png b/latest/_images/AGS_intro.png new file mode 100644 index 000000000..5181a897e Binary files /dev/null and b/latest/_images/AGS_intro.png differ diff --git a/latest/_sphinx_design_static/design-tabs.js b/latest/_sphinx_design_static/design-tabs.js new file mode 100644 index 000000000..b25bd6a4f --- /dev/null +++ b/latest/_sphinx_design_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/latest/_sphinx_design_static/sphinx-design.5ea377869091fd0449014c60fc090103.min.css b/latest/_sphinx_design_static/sphinx-design.5ea377869091fd0449014c60fc090103.min.css new file mode 100644 index 000000000..a325746f2 --- /dev/null +++ b/latest/_sphinx_design_static/sphinx-design.5ea377869091fd0449014c60fc090103.min.css @@ -0,0 +1 @@ +.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700} diff --git a/latest/_static/basic.css b/latest/_static/basic.css index bf18350b6..61572969d 100644 --- a/latest/_static/basic.css +++ b/latest/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -55,7 +55,7 @@ div.sphinxsidebarwrapper { div.sphinxsidebar { float: left; - width: 230px; + width: 270px; margin-left: -100%; font-size: 90%; word-wrap: break-word; @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -335,12 +325,16 @@ p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; @@ -379,6 +373,8 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +382,8 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +426,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,19 +609,26 @@ ul.simple p { margin-bottom: 0; } -dl.footnote > dt, -dl.citation > dt { +aside.footnote > span, +div.citation > span { float: left; - margin-right: 0.5em; } - -dl.footnote > dd, -dl.citation > dd { +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { margin-bottom: 0em; } - -dl.footnote > dd:after, -dl.citation > dd:after { +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { content: ""; clear: both; } @@ -644,10 +645,6 @@ dl.field-list > dt { padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; diff --git a/latest/_static/check-solid.svg b/latest/_static/check-solid.svg new file mode 100644 index 000000000..92fad4b5c --- /dev/null +++ b/latest/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/latest/_static/clipboard.min.js b/latest/_static/clipboard.min.js new file mode 100644 index 000000000..54b3c4638 --- /dev/null +++ b/latest/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/latest/_static/copybutton.css b/latest/_static/copybutton.css new file mode 100644 index 000000000..f1916ec7d --- /dev/null +++ b/latest/_static/copybutton.css @@ -0,0 +1,94 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +/* Show the copybutton */ +.highlight:hover button.copybtn, button.copybtn.success { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/latest/_static/copybutton.js b/latest/_static/copybutton.js new file mode 100644 index 000000000..2ea7ff3e2 --- /dev/null +++ b/latest/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/latest/_static/copybutton_funcs.js b/latest/_static/copybutton_funcs.js new file mode 100644 index 000000000..dbe1aaad7 --- /dev/null +++ b/latest/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/latest/_static/css/_color.scss b/latest/_static/css/_color.scss new file mode 100644 index 000000000..ccbabe8ff --- /dev/null +++ b/latest/_static/css/_color.scss @@ -0,0 +1,322 @@ +/******************************************************************************* +* master color map. Only the colors that actually differ between light and dark +* themes are specified separately. +* +* To see the full list of colors see https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1234%3A765&t=ifcFT1JtnrSshGfi-1 +*/ + +/** +* Function to get items from nested maps +*/ +// @param {Map} $map - Map +// @param {Arglist} $keys - Keys to fetch +// @return {*} +@function map-deep-get($map, $keys...) { + @each $key in $keys { + $map: map-get($map, $key); + } + @return $map; +} + +/* Assign base colors for the PyData theme */ +$color-palette: ( + // Primary color + "teal": + ( + "50": #f4fbfc, + "100": #e9f6f8, + "200": #d0ecf1, + "300": #abdde6, + "400": #3fb1c5, + "500": #0a7d91, + "600": #085d6c, + "700": #064752, + "800": #042c33, + "900": #021b1f, + ), + // Secondary color + "violet": + ( + "50": #f4eefb, + "100": #e0c7ff, + "200": #d5b4fd, + "300": #b780ff, + "400": #9c5ffd, + "500": #8045e5, + "600": #6432bd, + "700": #4b258f, + "800": #341a61, + "900": #1e0e39, + ), + // Neutrals + "gray": + ( + "50": #f9f9fa, + "100": #f3f4f5, + "200": #e5e7ea, + "300": #d1d5da, + "400": #9ca4af, + "500": #677384, + "600": #48566b, + "700": #29313d, + "800": #222832, + "900": #14181e, + ), + // Accent color + "pink": + ( + "50": #fcf8fd, + "100": #fcf0fa, + "200": #f8dff5, + "300": #f3c7ee, + "400": #e47fd7, + "500": #c132af, + "600": #912583, + "700": #6e1c64, + "800": #46123f, + "900": #2b0b27, + ), + "foundation": ( + "white": #ffffff, + // gray-900 + "black": #14181e, + ) +); + +:root { + // Add theme colours to the html root element + @each $group-color, $color in $color-palette { + @each $color-name, $definition in $color { + --pst-#{$group-color}-#{$color-name}: #{$definition}; + } + } +} + +// Static SCSS variables used thoroughout the theme +// Minimum contrast ratio used for the theme. +// Acceptable values for WCAG 2.0 are 3, 4.5 and 7. +// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast +// 4.5 - is for text that is 14pt or less +$min-contrast-ratio-4: 4.5; +// 3 is for text that is 18pt or bold, or for non-text elements +$min-contrast-ratio-3: 3; + +// Customize the light and dark text colors for use in our color contrast function. +$foundation-black: #14181e; +$foundation-white: #ffffff; +// This is a custom - calculated color between gray 100 and 200 - to reduce +// the contrast ratio (avoid a jarring effect) +$base-light-text: #ced6dd; +// used in sphinx_design - gray 100 +$foundation-light-gray: #f3f4f5; +// used in sphinx_design - gray 700 +$foundation-muted-gray: #29313d; +// used in sphinx_design - gray 800 +$foundation-dark-gray: #222832; + +$pst-semantic-colors: ( + "primary": ( + "light": #{map-deep-get($color-palette, "teal", "500")}, + "bg-light": #{map-deep-get($color-palette, "teal", "200")}, + "dark": #{map-deep-get($color-palette, "teal", "400")}, + "bg-dark": #{map-deep-get($color-palette, "teal", "800")}, + ), + "secondary": ( + "light": #{map-deep-get($color-palette, "violet", "500")}, + "bg-light": #{map-deep-get($color-palette, "violet", "100")}, + "dark": #{map-deep-get($color-palette, "violet", "400")}, + "bg-dark": #{map-deep-get($color-palette, "violet", "800")}, + ), + "accent": ( + "light": #{map-deep-get($color-palette, "pink", "500")}, + "bg-light": #{map-deep-get($color-palette, "pink", "200")}, + "dark": #{map-deep-get($color-palette, "pink", "400")}, + "bg-dark": #{map-deep-get($color-palette, "pink", "800")}, + ), + "info": ( + "light": #276be9, + "bg-light": #dce7fc, + "dark": #79a3f2, + "bg-dark": #06245d, + ), + "warning": ( + "light": #f66a0a, + "bg-light": #f8e3d0, + "dark": #ff9245, + "bg-dark": #652a02, + ), + "success": ( + "light": #00843f, + "bg-light": #d6ece1, + "dark": #5fb488, + "bg-dark": #002f17, + ), + // This is is based on the warning color + "attention": + ( + "light": var(--pst-color-warning), + "bg-light": var(--pst-color-warning-bg), + "dark": var(--pst-color-warning), + "bg-dark": var(--pst-color-warning-bg), + ), + "danger": ( + "light": #d72d47, + "bg-light": #f9e1e4, + "dark": #e78894, + "bg-dark": #4e111b, + ), + "text-base": ( + "light": #{map-deep-get($color-palette, "gray", "800")}, + "dark": $base-light-text, + ), + "text-muted": ( + "light": #{map-deep-get($color-palette, "gray", "600")}, + "dark": #{map-deep-get($color-palette, "gray", "400")}, + ), + "heading-color": ( + "light": #{$foundation-white}, + "dark": #{$foundation-black}, + ), + "shadow": ( + "light": rgba(0, 0, 0, 0.1), + "dark": rgba(0, 0, 0, 0.2), + ), + "border": ( + "light": #{map-deep-get($color-palette, "gray", "300")}, + "dark": #{map-deep-get($color-palette, "gray", "600")}, + ), + "border-muted": ( + "light": rgba(23, 23, 26, 0.2), + "dark": #{map-deep-get($color-palette, "gray", "700")}, + ), + "inline-code": ( + "light": #{map-deep-get($color-palette, "pink", "600")}, + "dark": #{map-deep-get($color-palette, "pink", "300")}, + ), + "inline-code-links": ( + // need to make sure there is enough contrast against the code bg + "light": #{map-deep-get($color-palette, "teal", "600")}, + // keep primary color for dark mode + "dark": #{map-deep-get($color-palette, "teal", "400")}, + ), + "target": ( + "light": #f3cf95, + "dark": #675c04, + ), + // DEPTH COLORS - you can see the elevation colours and shades + // in the Figma file https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1492%3A922&t=sQeQZehkOzposYEg-1 + // background: color of the canvas / the furthest back layer + "background": + ( + "light": #{map-deep-get($color-palette, "foundation", "white")}, + "dark": #{map-deep-get($color-palette, "foundation", "black")}, + ), + // on-background: provides slight contrast against background + // (by use of shadows in light theme) + "on-background": + ( + "light": #{map-deep-get($color-palette, "foundation", "white")}, + "dark": #{map-deep-get($color-palette, "gray", "800")}, + ), + "surface": ( + "light": #{map-deep-get($color-palette, "gray", "100")}, + "dark": #{map-deep-get($color-palette, "gray", "700")}, + ), + // on_surface: object on top of surface object (without shadows) + "on-surface": + ( + "light": #{map-deep-get($color-palette, "gray", "800")}, + "dark": $foundation-light-gray, + ), +); + +/******************************************************************************* +* write the color rules for each theme (light/dark) +*/ + +/* NOTE: + * Mixins enable us to reuse the same definitions for the different modes + * https://sass-lang.com/documentation/at-rules/mixin + * #{something} inserts a variable into a CSS selector or property name + * https://sass-lang.com/documentation/interpolation + */ +@mixin theme-colors($mode) { + // check if this color is defined differently for light/dark + @each $col-name, $definition in $pst-semantic-colors { + @if type-of($definition) == map { + @each $key, $val in $definition { + @if str-index($key, $mode) != null { + // since now we define the bg colours in the semantic colours and not + // by changing opacity, we need to check if the key contains bg and the + // correct mode (light/dark) + @if str-index($key, "bg") != null { + --pst-color-#{$col-name}-bg: #{$val}; + } @else { + --pst-color-#{$col-name}: #{$val}; + } + } + } + } @else { + --pst-color-#{$col-name}: #{$definition}; + } + } + + // assign the "duplicate" colors (ones that just reference other variables) + & { + --pst-color-link: var(--pst-color-primary); + --pst-color-link-hover: var(--pst-color-secondary); + } + // adapt to light/dark-specific content + @if $mode == "light" { + .only-dark, + .only-dark ~ figcaption { + display: none !important; + } + } @else { + .only-light, + .only-light ~ figcaption { + display: none !important; + } + /* Adjust images in dark mode (unless they have class .only-dark or + * .dark-light, in which case assume they're already optimized for dark + * mode). + */ + img:not(.only-dark):not(.dark-light) { + filter: brightness(0.8) contrast(1.2); + } + /* Give images a light background in dark mode in case they have + * transparency and black text (unless they have class .only-dark or .dark-light, in + * which case assume they're already optimized for dark mode). + */ + .bd-content img:not(.only-dark):not(.dark-light) { + background: rgb(255, 255, 255); + border-radius: 0.25rem; + } + // MathJax SVG outputs should be filled to same color as text. + .MathJax_SVG * { + fill: var(--pst-color-text-base); + } + } +} + +/* Defaults to light mode if data-theme is not set */ +html:not([data-theme]) { + @include theme-colors("light"); +} + +/* NOTE: @each {...} is like a for-loop + * https://sass-lang.com/documentation/at-rules/control/each + */ +@each $mode in (light, dark) { + html[data-theme="#{$mode}"] { + @include theme-colors($mode); + color-scheme: $mode; + } +} + +// assign classes too, for runtime use of theme colors +@each $col-name, $definition in $pst-semantic-colors { + .pst-color-#{$col-name} { + color: var(--pst-color-#{$col-name}); + } +} diff --git a/latest/_static/css/compas.css b/latest/_static/css/compas.css index cafda838c..43ae4d082 100644 --- a/latest/_static/css/compas.css +++ b/latest/_static/css/compas.css @@ -1,489 +1,105 @@ -.fa-1x { -font-size: 1.25em; -} - -:target { -scroll-margin-top: calc(74px + 3rem); -} - -/* body { -font-family: roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; -} */ - -h1 { -font-weight: 500; -margin-top: 0; -margin-bottom: 1rem; -padding-bottom: 1rem; -border-bottom: 4px solid #eee; -} - -h2 { -margin-top: 3rem; -margin-bottom: 1rem; -font-weight: 500; -} - -h3 { -margin-top: 2rem; -margin-bottom: 1rem; -font-weight: 500; -} - -h4 { -margin-top: 1rem; -margin-bottom: 1rem; -font-weight: 500; -} - -a { -text-decoration: none; -color: #0092d2; -} -a:hover { -color: #0092d2; +html { + --pst-font-size-base: 1rem; + --pst-sidebar-font-size: 0.8rem; } -blockquote { -font-style: italic; -padding-left: 2rem; -padding-right: 2rem; -margin-top: 3rem; -margin-bottom: 3rem; +html[data-theme="light"] { + --pst-color-primary: #0092d2; + --pst-color-info: #0092d2; + --pst-color-text-muted: #888; + --pst-color-inline-code: #ff5e99; + --pst-color-secondary-bg: #ffe800; } -code { -/* color: inherit; */ -color: var(--pink); -/* background-color: #f0f0f0; */ -/* padding: 0.2rem 0.4rem; */ +body { + line-height: 1.75; + font-weight: 300; } -a > code { -background: none; -padding: 0; -} +/* Layout */ -/* ol ol, ol ul, ul ol, ul ul { -margin-bottom: 1rem; +/* default is 60em */ +/* .bd-main .bd-content .bd-article-container { + max-width: 100%; } */ - -table { -margin: 0; -margin-top: 2rem !important; -margin-bottom: 2rem !important; - -} - -p { - margin: 1rem 0; -} - -caption { - text-align: left !important; - caption-side: top !important; -} - -.compas-header { -height: 114px; -z-index: 1053; -background-color: #0092d2; -} - -@media (min-width: 768px) { -@supports ((position: sticky) - or (position: -webkit-sticky) - or (position: -moz-sticky) - or (position: -ms-sticky) - or (position: -o-sticky)) { - .compas-header { - position: -webkit-sticky; - position: -moz-sticky; - position: -ms-sticky; - position: -o-sticky; - position: sticky; - top: 0px; - height: 74px; - } -} -} - -.compas-header .nav-link { -color: rgba(255, 255, 255, 0.5); -} -.compas-header .nav-item:hover .nav-link { -color: rgba(255, 255, 255, 0.75); -} -.compas-header .active .nav-link { -color: #fff; -} - -.compas-sidebar { -order: 0; -background-color: #f8f9fa; -padding: 0; -} - -@media (min-width: 768px) { -.compas-sidebar { - border-bottom: none; - border-right: 1px solid #ccc; - max-width: 480px; -} - -@supports ((position: sticky) - or (position: -webkit-sticky) - or (position: -moz-sticky) - or (position: -ms-sticky) - or (position: -o-sticky)) { - .compas-sidebar { - position: -webkit-sticky; - position: -moz-sticky; - position: -ms-sticky; - position: -o-sticky; - position: sticky; - top: 74px; - height: calc(100vh - 74px); - overflow-y: auto; - } -} -} - -.compas-content { -order: 1; -} - -@media (min-width: 768px) { - .compas-content {} - - @supports ((position: sticky) - or (position: -webkit-sticky) - or (position: -moz-sticky) - or (position: -ms-sticky) - or (position: -o-sticky)) { - .compas-content { - position: -webkit-sticky; - position: -moz-sticky; - position: -ms-sticky; - position: -o-sticky; - position: sticky; - top: 74px; - } - } -} - -.compas-toc { -order: 2; -border-left: 1px solid #eee; -font-size: 0.875rem; -} - -@media (min-width: 768px) { - @supports ((position: sticky) - or (position: -webkit-sticky) - or (position: -moz-sticky) - or (position: -ms-sticky) - or (position: -o-sticky)) { - .compas-toc { - position: -webkit-sticky; - position: -moz-sticky; - position: -ms-sticky; - position: -o-sticky; - position: sticky; - top: 74px; - max-height: calc(100vh - 74px); - overflow-y: auto; - } - } -} - -/* Sidebar */ - -.compas-searchbox { -padding: 1rem; -background-color: #eee; -border-bottom: 1px solid #ccc; -position: relative; -} - -.navbar-toggler { -margin-left: 1rem; -border: none; -} -.navbar-toggler-icon { -background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -.compas-navigation { -padding: 0; -} - -@media (min-width: 768px) { -.compas-navigation { - display: block !important; - overflow-y: auto; - max-height: calc(100vh - 150px); - border: none; -} -} - -.compas-navigation .nav { -padding: 0; -} - -.compas-navigation .nav-item { -padding: 0; -} - -.compas-navigation .nav .nav-link { -background-color: #f8f9fa; -color: #aaa; -padding: 0.5rem 1rem; -border-bottom: 1px solid #eee; -} - -.compas-navigation .nav .nav-link:hover, -.compas-navigation .nav .active .nav-link { -color: #222; -} - -.compas-navigation .nav .nav .nav-link { -background-color: #fff; -color: #888; -padding-left: 2rem; -} - -.compas-navigation .nav .nav .nav-link:hover { -color: #222; -} - -.compas-navigation .nav .nav .active .nav-link { -color: #222; -font-weight: bold; -} - -.compas-navigation .nav .nav .nav .nav-link { -color: #888; -padding-left: 3rem; -padding-top: 0.25rem; -padding-bottom: 0.25rem; -font-size: 0.8rem; -font-weight: normal -} - -.compas-navigation .nav .nav .nav .nav-link:hover { -color: #222; -} - -.compas-navigation .nav .nav .nav .active .nav-link { -color: #222; -font-weight: bold -} - -.compas-navigation .nav-item.has-children .nav-link { - padding-right: 41px; -} - -.menu-toggle { -float: right; -position: relative; -top: 0px; -right: 0px; -width: 41px; -height: 41px; -color: #aaa; -display: flex; -align-items: center; -justify-content: center; -cursor: pointer; -} - - -/* TOC */ - -.compas-toc { -padding: 1rem 1rem; -} - -.compas-toc .nav { -padding: 0; -} - -.compas-toc .nav-item { -padding: 0; -} - -.compas-toc .nav-link { -color: #888; -padding: 0.25rem 0.5rem; -} - -.compas-toc .nav-link:hover, -.compas-toc .active .nav-link { -color: #222; +.bd-main.no-sidebars .bd-content .bd-article-container { + max-width: 60rem; + margin: 0 auto; } -.compas-toc .nav .nav .nav-link { -padding-left: 1.5rem; -} - -.compas-toc .nav .nav .nav .nav-link { -padding-left: 2.5rem; -} - -.compas-toc .nav .nav .nav .nav .nav-link { -padding-left: 3.5rem; -} +/* default is 88rem */ +/* .bd-page-width { + max-width: 1920px; +} */ -/* Content */ +/* +Ideally max-width would only be applied to the content of the sidebar +and the sidebar itself would be 25% of the page width. +The content then should be aligned to the right. +*/ -.compas-content ul p, .compas-content ol p { -margin: 0; -padding: 0; -} +/* .bd-sidebar-primary { + width: 25%; + max-width: 22rem; +} */ -.lead { -margin-bottom: 2rem; +.bd-header { + box-shadow: none; + border-bottom: 1px solid var(--pst-color-shadow); } -.compas-content .figure { -margin: 0; -padding: 0; +.navbar-brand img { + height: 32px; } -.highlighted { -background-color: #ffffaa; +.bd-header .navbar-brand { + margin-right: 1rem; } -.highlight { -margin-top: 1rem; -margin-bottom: 1rem; +.bd-sidebar-primary .toctree-l3 { + font-size: 0.8rem; } -.hljs { -/* padding: 2rem; */ -/* background-color: rgba(0, 146, 210, 0.1); */ -} +/* Links */ -.nohighlight pre { -padding: 1rem; -background-color: #f0f0f0; +.bd-header .navbar-nav li a.nav-link:hover { + color: var(--pst-color-primary); + text-decoration: none; } -.copy { - display: block; - float: right; - position: relative; - width: 32px; - height: 32px; - top: 3px; - right: 35px; - margin-right: -32px; - color: rgba(0, 0, 0, 0.2); - padding: 0; -} -.copy:hover { - color: rgba(0, 0, 0, 0.8); +nav.bd-links li > a:hover { + color: var(--pst-color-primary); + text-decoration: none; } -.compas-content .anchorjs-link { -text-decoration: none; +ul.bd-breadcrumbs li.breadcrumb-item a:hover { + color: var(--pst-color-primary); + text-decoration: none; } -.field-list em { - font-style: normal; -} +/* Article */ -.card { - border-radius: 0; - border: 4px solid #eee; - margin: 1rem 0; -} -.card-header:first-child { - border: none; -} -.card-header { - padding: 0; - border: none; - background-color: transparent; -} -.card-body { - border-top: 1px solid #eee; - padding: 1rem; -} -.card-header-tabs { - margin: 0; - border: none; -} -.nav-tabs .nav-item { - margin: 0; -} -.nav-tabs .nav-link { - border-radius: 0; -} -.nav-tabs .nav-link, .nav-tabs .nav-link.active { - border: none; - background-color: inherit; -} -.nav-tabs .nav-link.active { - /* border-bottom: 4px solid #0092d2; */ - background-color: #f0f0f0; -} - -.compas-tabs { - display: flex; - flex-wrap: wrap; - position: relative; - border: 4px solid #eee; -} -.compas-tabs > input { - position: absolute; - opacity: 0; -} -.compas-tab-item-label { - padding: 0.5rem 1rem; - margin: 0; - color: #0092d2; -} -.compas-tab-item-content { - order: 99; - width: 100%; - padding: 1rem; - display: none; - border-top: 1px solid #eee; -} -.compas-tabs > input:checked + label { - background-color: #eee; - color: #222; -} -.compas-tabs > input:checked + label + div { - display: block; -} - -/* Footer */ +/* .bd-article-container h1 { + color: #0092d2 !important; +} */ -.compas-footer { - background-color: #000000; +#rtd-footer-container { + bottom: 0 !important; + margin: 0 !important; + display: none; } -.footer-text, -.footer-link, -.footer-title { - color: rgba(255, 255, 255, 0.5); -} -.footer-link:hover { - color: rgba(255, 255, 255, 0.75); +dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt.field-even, +dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt.field-odd { + background-color: var(--pst-color-surface); + margin-bottom: 1rem; + margin-top: 1rem; } -.below { - background-color: #23272b; +.highlight pre { + line-height: 150% !important; } -.below-text, -.below-link, -.below-title { - color: rgba(255, 255, 255, 0.25); -} -.below-link:hover { - color: rgba(255, 255, 255, 0.5); +.bd-footer-article { + margin-top: 2rem; } diff --git a/latest/_static/design-tabs.js b/latest/_static/design-tabs.js new file mode 100644 index 000000000..b25bd6a4f --- /dev/null +++ b/latest/_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/latest/_static/doctools.js b/latest/_static/doctools.js index e1bfd708b..d06a71d75 100644 --- a/latest/_static/doctools.js +++ b/latest/_static/doctools.js @@ -2,357 +2,155 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return result; }; -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists } }, - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; - - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; - - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/latest/_static/documentation_options.js b/latest/_static/documentation_options.js index dcb5b6dbd..5ec00f957 100644 --- a/latest/_static/documentation_options.js +++ b/latest/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.2.1', - LANGUAGE: 'None', + VERSION: 'Unreleased', + LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', diff --git a/latest/_static/language_data.js b/latest/_static/language_data.js index ebe2f03bf..250f5665f 100644 --- a/latest/_static/language_data.js +++ b/latest/_static/language_data.js @@ -5,12 +5,12 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ -var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; /* Non-minified version is copied as a separate JS file, is available */ @@ -197,101 +197,3 @@ var Stemmer = function() { } } - - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - -function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; -} - - diff --git a/latest/_static/pygments.css b/latest/_static/pygments.css index 0d49244ed..16231f75d 100644 --- a/latest/_static/pygments.css +++ b/latest/_static/pygments.css @@ -1,75 +1,160 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #ffffcc } +html[data-theme="light"] .highlight { background: #f8f8f8; } +html[data-theme="light"] .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +html[data-theme="light"] .highlight .err { border: 1px solid #FF0000 } /* Error */ +html[data-theme="light"] .highlight .k { color: #008000; font-weight: bold } /* Keyword */ +html[data-theme="light"] .highlight .o { color: #666666 } /* Operator */ +html[data-theme="light"] .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #9C6500 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #A00000 } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +html[data-theme="light"] .highlight .gr { color: #E40000 } /* Generic.Error */ +html[data-theme="light"] .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +html[data-theme="light"] .highlight .gi { color: #008400 } /* Generic.Inserted */ +html[data-theme="light"] .highlight .go { color: #717171 } /* Generic.Output */ +html[data-theme="light"] .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +html[data-theme="light"] .highlight .gt { color: #0044DD } /* Generic.Traceback */ +html[data-theme="light"] .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #008000 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #B00040 } /* Keyword.Type */ +html[data-theme="light"] .highlight .m { color: #666666 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #BA2121 } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #687822 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #008000 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #880000 } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #AA22FF } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #0000FF } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #767600 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +html[data-theme="light"] .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #19177C } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +html[data-theme="light"] .highlight .w { color: #bbbbbb } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #666666 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #666666 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #666666 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #666666 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #666666 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #BA2121 } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #19177C } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #0000FF } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #19177C } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #19177C } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #19177C } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #19177C } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #49483e } +html[data-theme="dark"] .highlight { background: #272822; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #959077 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ed007e; background-color: #1e0010 } /* Error */ +html[data-theme="dark"] .highlight .esc { color: #f8f8f2 } /* Escape */ +html[data-theme="dark"] .highlight .g { color: #f8f8f2 } /* Generic */ +html[data-theme="dark"] .highlight .k { color: #66d9ef } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ae81ff } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #ff4689 } /* Operator */ +html[data-theme="dark"] .highlight .x { color: #f8f8f2 } /* Other */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #959077 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #959077 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #959077 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #959077 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #959077 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #959077 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #ff4689 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .ges { color: #f8f8f2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +html[data-theme="dark"] .highlight .gr { color: #f8f8f2 } /* Generic.Error */ +html[data-theme="dark"] .highlight .gh { color: #f8f8f2 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gi { color: #a6e22e } /* Generic.Inserted */ +html[data-theme="dark"] .highlight .go { color: #66d9ef } /* Generic.Output */ +html[data-theme="dark"] .highlight .gp { color: #ff4689; font-weight: bold } /* Generic.Prompt */ +html[data-theme="dark"] .highlight .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #959077 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .gt { color: #f8f8f2 } /* Generic.Traceback */ +html[data-theme="dark"] .highlight .kc { color: #66d9ef } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #ff4689 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #66d9ef } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #e6db74 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ae81ff } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #e6db74 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #a6e22e } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #a6e22e } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #66d9ef } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #a6e22e } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #f8f8f2 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #a6e22e } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #a6e22e } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #f8f8f2 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #a6e22e } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #f8f8f2 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #ff4689 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #f8f8f2 } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #ff4689 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #e6db74 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #ae81ff } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #e6db74 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ +html[data-theme="dark"] .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/latest/_static/scripts/bootstrap.js b/latest/_static/scripts/bootstrap.js new file mode 100644 index 000000000..766173aba --- /dev/null +++ b/latest/_static/scripts/bootstrap.js @@ -0,0 +1,3 @@ +/*! For license information please see bootstrap.js.LICENSE.txt */ +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>w,afterRead:()=>b,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>G,auto:()=>r,basePlacements:()=>a,beforeMain:()=>v,beforeRead:()=>m,beforeWrite:()=>A,bottom:()=>n,clippingParents:()=>h,computeStyles:()=>et,createPopper:()=>Dt,createPopperBase:()=>Lt,createPopperLite:()=>$t,detectOverflow:()=>mt,end:()=>c,eventListeners:()=>nt,flip:()=>_t,hide:()=>yt,left:()=>o,main:()=>y,modifierPhases:()=>T,offset:()=>wt,placements:()=>g,popper:()=>d,popperGenerator:()=>kt,popperOffsets:()=>At,preventOverflow:()=>Et,read:()=>_,reference:()=>f,right:()=>s,start:()=>l,top:()=>i,variationPlacements:()=>p,viewport:()=>u,write:()=>E});var i="top",n="bottom",s="right",o="left",r="auto",a=[i,n,s,o],l="start",c="end",h="clippingParents",u="viewport",d="popper",f="reference",p=a.reduce((function(t,e){return t.concat([e+"-"+l,e+"-"+c])}),[]),g=[].concat(a,[r]).reduce((function(t,e){return t.concat([e,e+"-"+l,e+"-"+c])}),[]),m="beforeRead",_="read",b="afterRead",v="beforeMain",y="main",w="afterMain",A="beforeWrite",E="write",C="afterWrite",T=[m,_,b,v,y,w,A,E,C];function O(t){return t?(t.nodeName||"").toLowerCase():null}function x(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function k(t){return t instanceof x(t).Element||t instanceof Element}function L(t){return t instanceof x(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof x(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];L(s)&&O(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});L(n)&&O(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function S(t){return t.split("-")[0]}var I=Math.max,N=Math.min,P=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&L(t)&&(s=t.offsetWidth>0&&P(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&P(n.height)/t.offsetHeight||1);var r=(k(t)?x(t):window).visualViewport,a=!M()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,u=n.height/o;return{width:h,height:u,top:c,right:l+h,bottom:c+u,left:l,x:l,y:c}}function W(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function F(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function B(t){return x(t).getComputedStyle(t)}function z(t){return["table","td","th"].indexOf(O(t))>=0}function q(t){return((k(t)?t.ownerDocument:t.document)||window.document).documentElement}function R(t){return"html"===O(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function V(t){return L(t)&&"fixed"!==B(t).position?t.offsetParent:null}function K(t){for(var e=x(t),i=V(t);i&&z(i)&&"static"===B(i).position;)i=V(i);return i&&("html"===O(i)||"body"===O(i)&&"static"===B(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&L(t)&&"fixed"===B(t).position)return null;var i=R(t);for(D(i)&&(i=i.host);L(i)&&["html","body"].indexOf(O(i))<0;){var n=B(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return I(t,N(e,i))}function Y(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function U(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const G={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,r=t.state,l=t.name,c=t.options,h=r.elements.arrow,u=r.modifiersData.popperOffsets,d=S(r.placement),f=Q(d),p=[o,s].indexOf(d)>=0?"height":"width";if(h&&u){var g=function(t,e){return Y("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:U(t,a))}(c.padding,r),m=W(h),_="y"===f?i:o,b="y"===f?n:s,v=r.rects.reference[p]+r.rects.reference[f]-u[f]-r.rects.popper[p],y=u[f]-r.rects.reference[f],w=K(h),A=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,E=v/2-y/2,C=g[_],T=A-m[p]-g[b],O=A/2-m[p]/2+E,x=X(C,O,T),k=f;r.modifiersData[l]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&F(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function J(t){return t.split("-")[1]}var Z={top:"auto",right:"auto",bottom:"auto",left:"auto"};function tt(t){var e,r=t.popper,a=t.popperRect,l=t.placement,h=t.variation,u=t.offsets,d=t.position,f=t.gpuAcceleration,p=t.adaptive,g=t.roundOffsets,m=t.isFixed,_=u.x,b=void 0===_?0:_,v=u.y,y=void 0===v?0:v,w="function"==typeof g?g({x:b,y}):{x:b,y};b=w.x,y=w.y;var A=u.hasOwnProperty("x"),E=u.hasOwnProperty("y"),C=o,T=i,O=window;if(p){var k=K(r),L="clientHeight",D="clientWidth";k===x(r)&&"static"!==B(k=q(r)).position&&"absolute"===d&&(L="scrollHeight",D="scrollWidth"),(l===i||(l===o||l===s)&&h===c)&&(T=n,y-=(m&&k===O&&O.visualViewport?O.visualViewport.height:k[L])-a.height,y*=f?1:-1),l!==o&&(l!==i&&l!==n||h!==c)||(C=s,b-=(m&&k===O&&O.visualViewport?O.visualViewport.width:k[D])-a.width,b*=f?1:-1)}var $,S=Object.assign({position:d},p&&Z),I=!0===g?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:P(i*s)/s||0,y:P(n*s)/s||0}}({x:b,y},x(r)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},S,(($={})[T]=E?"0":"",$[C]=A?"0":"",$.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",$)):Object.assign({},S,((e={})[T]=E?y+"px":"",e[C]=A?b+"px":"",e.transform="",e))}const et={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:S(e.placement),variation:J(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,tt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,tt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var it={passive:!0};const nt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=x(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,it)})),a&&l.addEventListener("resize",i.update,it),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,it)})),a&&l.removeEventListener("resize",i.update,it)}},data:{}};var st={left:"right",right:"left",bottom:"top",top:"bottom"};function ot(t){return t.replace(/left|right|bottom|top/g,(function(t){return st[t]}))}var rt={start:"end",end:"start"};function at(t){return t.replace(/start|end/g,(function(t){return rt[t]}))}function lt(t){var e=x(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ct(t){return H(q(t)).left+lt(t).scrollLeft}function ht(t){var e=B(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(O(t))>=0?t.ownerDocument.body:L(t)&&ht(t)?t:ut(R(t))}function dt(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=x(n),r=s?[o].concat(o.visualViewport||[],ht(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(dt(R(r)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function pt(t,e,i){return e===u?ft(function(t,e){var i=x(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=M();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ct(t),y:l}}(t,i)):k(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ft(function(t){var e,i=q(t),n=lt(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=I(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=I(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ct(t),l=-n.scrollTop;return"rtl"===B(s||i).direction&&(a+=I(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,r=t.reference,a=t.element,h=t.placement,u=h?S(h):null,d=h?J(h):null,f=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2;switch(u){case i:e={x:f,y:r.y-a.height};break;case n:e={x:f,y:r.y+r.height};break;case s:e={x:r.x+r.width,y:p};break;case o:e={x:r.x-a.width,y:p};break;default:e={x:r.x,y:r.y}}var g=u?Q(u):null;if(null!=g){var m="y"===g?"height":"width";switch(d){case l:e[g]=e[g]-(r[m]/2-a[m]/2);break;case c:e[g]=e[g]+(r[m]/2-a[m]/2)}}return e}function mt(t,e){void 0===e&&(e={});var o=e,r=o.placement,l=void 0===r?t.placement:r,c=o.strategy,p=void 0===c?t.strategy:c,g=o.boundary,m=void 0===g?h:g,_=o.rootBoundary,b=void 0===_?u:_,v=o.elementContext,y=void 0===v?d:v,w=o.altBoundary,A=void 0!==w&&w,E=o.padding,C=void 0===E?0:E,T=Y("number"!=typeof C?C:U(C,a)),x=y===d?f:d,D=t.rects.popper,$=t.elements[A?x:y],S=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=dt(R(t)),i=["absolute","fixed"].indexOf(B(t).position)>=0&&L(t)?K(t):t;return k(i)?e.filter((function(t){return k(t)&&F(t,i)&&"body"!==O(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=pt(t,i,n);return e.top=I(s.top,e.top),e.right=N(s.right,e.right),e.bottom=N(s.bottom,e.bottom),e.left=I(s.left,e.left),e}),pt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(k($)?$:$.contextElement||q(t.elements.popper),m,b,p),P=H(t.elements.reference),j=gt({reference:P,element:D,strategy:"absolute",placement:l}),M=ft(Object.assign({},D,j)),W=y===d?M:P,z={top:S.top-W.top+T.top,bottom:W.bottom-S.bottom+T.bottom,left:S.left-W.left+T.left,right:W.right-S.right+T.right},V=t.modifiersData.offset;if(y===d&&V){var Q=V[l];Object.keys(z).forEach((function(t){var e=[s,n].indexOf(t)>=0?1:-1,o=[i,n].indexOf(t)>=0?"y":"x";z[t]+=Q[o]*e}))}return z}const _t={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,c=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var u=c.mainAxis,d=void 0===u||u,f=c.altAxis,m=void 0===f||f,_=c.fallbackPlacements,b=c.padding,v=c.boundary,y=c.rootBoundary,w=c.altBoundary,A=c.flipVariations,E=void 0===A||A,C=c.allowedAutoPlacements,T=e.options.placement,O=S(T),x=_||(O!==T&&E?function(t){if(S(t)===r)return[];var e=ot(t);return[at(t),e,at(e)]}(T):[ot(T)]),k=[T].concat(x).reduce((function(t,i){return t.concat(S(i)===r?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,l=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,u=J(n),d=u?l?p:p.filter((function(t){return J(t)===u})):a,f=d.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=d);var m=f.reduce((function(e,i){return e[i]=mt(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[S(i)],e}),{});return Object.keys(m).sort((function(t,e){return m[t]-m[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:E,allowedAutoPlacements:C}):i)}),[]),L=e.rects.reference,D=e.rects.popper,$=new Map,I=!0,N=k[0],P=0;P=0,F=W?"width":"height",B=mt(e,{placement:j,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=W?H?s:o:H?n:i;L[F]>D[F]&&(z=ot(z));var q=ot(z),R=[];if(d&&R.push(B[M]<=0),m&&R.push(B[z]<=0,B[q]<=0),R.every((function(t){return t}))){N=j,I=!1;break}$.set(j,R)}if(I)for(var V=function(t){var e=k.find((function(e){var i=$.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},K=E?3:1;K>0&&"break"!==V(K);K--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function bt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function vt(t){return[i,s,n,o].some((function(e){return t[e]>=0}))}const yt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=mt(e,{elementContext:"reference"}),a=mt(e,{altBoundary:!0}),l=bt(r,n),c=bt(a,s,o),h=vt(l),u=vt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}},wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,r=t.name,a=n.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,n){return t[n]=function(t,e,n){var r=S(t),a=[o,i].indexOf(r)>=0?-1:1,l="function"==typeof n?n(Object.assign({},e,{placement:t})):n,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[o,s].indexOf(r)>=0?{x:h,y:c}:{x:c,y:h}}(n,e.rects,l),t}),{}),h=c[e.placement],u=h.x,d=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=u,e.modifiersData.popperOffsets.y+=d),e.modifiersData[r]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Et={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,r=t.options,a=t.name,c=r.mainAxis,h=void 0===c||c,u=r.altAxis,d=void 0!==u&&u,f=r.boundary,p=r.rootBoundary,g=r.altBoundary,m=r.padding,_=r.tether,b=void 0===_||_,v=r.tetherOffset,y=void 0===v?0:v,w=mt(e,{boundary:f,rootBoundary:p,padding:m,altBoundary:g}),A=S(e.placement),E=J(e.placement),C=!E,T=Q(A),O="x"===T?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,D="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,$="number"==typeof D?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,j={x:0,y:0};if(x){if(h){var M,H="y"===T?i:o,F="y"===T?n:s,B="y"===T?"height":"width",z=x[T],q=z+w[H],R=z-w[F],V=b?-L[B]/2:0,Y=E===l?k[B]:L[B],U=E===l?-L[B]:-k[B],G=e.elements.arrow,Z=b&&G?W(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[H],it=tt[F],nt=X(0,k[B],Z[B]),st=C?k[B]/2-V-nt-et-$.mainAxis:Y-nt-et-$.mainAxis,ot=C?-k[B]/2+V+nt+it+$.mainAxis:U+nt+it+$.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===T?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(M=null==P?void 0:P[T])?M:0,ct=z+ot-lt,ht=X(b?N(q,z+st-lt-at):q,z,b?I(R,ct):R);x[T]=ht,j[T]=ht-z}if(d){var ut,dt="x"===T?i:o,ft="x"===T?n:s,pt=x[O],gt="y"===O?"height":"width",_t=pt+w[dt],bt=pt-w[ft],vt=-1!==[i,o].indexOf(A),yt=null!=(ut=null==P?void 0:P[O])?ut:0,wt=vt?_t:pt-k[gt]-L[gt]-yt+$.altAxis,At=vt?pt+k[gt]+L[gt]-yt-$.altAxis:bt,Et=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,At):X(b?wt:_t,pt,b?At:bt);x[O]=Et,j[O]=Et-pt}e.modifiersData[a]=j}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=L(e),r=L(e)&&function(t){var e=t.getBoundingClientRect(),i=P(e.width)/t.offsetWidth||1,n=P(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==O(e)||ht(a))&&(c=(n=e)!==x(n)&&L(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:lt(n)),L(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ct(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Tt(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function xt(){for(var t=arguments.length,e=new Array(t),i=0;i{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},Nt=t=>{const e=It(t);return e&&document.querySelector(e)?e:null},Pt=t=>{const e=It(t);return e?document.querySelector(e):null},jt=t=>{t.dispatchEvent(new Event(St))},Mt=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Mt(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,Wt=t=>{if(!Mt(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Ft=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),Bt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?Bt(t.parentNode):null},zt=()=>{},qt=t=>{t.offsetHeight},Rt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Vt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Rt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Vt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Vt)t()})),Vt.push(e)):e()},Xt=t=>{"function"==typeof t&&t()},Yt=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(St,o),Xt(t))};e.addEventListener(St,o),setTimeout((()=>{s||jt(e)}),n)},Ut=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Gt=/[^.]*(?=\..*)\.|.*/,Jt=/\..*/,Zt=/::\d+$/,te={};let ee=1;const ie={mouseenter:"mouseover",mouseleave:"mouseout"},ne=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function se(t,e){return e&&`${e}::${ee++}`||t.uidEvent||ee++}function oe(t){const e=se(t);return t.uidEvent=e,te[e]=te[e]||{},te[e]}function re(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function ae(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return ne.has(o)||(o=t),[n,s,o]}function le(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=ae(e,i,n);if(e in ie){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=oe(t),c=l[a]||(l[a]={}),h=re(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const u=se(r,e.replace(Gt,"")),d=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return fe(s,{delegateTarget:r}),n.oneOff&&de.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return fe(n,{delegateTarget:t}),i.oneOff&&de.off(t,n.type,e),e.apply(t,[n])}}(t,r);d.delegationSelector=o?i:null,d.callable=r,d.oneOff=s,d.uidEvent=u,c[u]=d,t.addEventListener(a,d,o)}function ce(t,e,i,n,s){const o=re(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function he(t,e,i,n){const s=e[i]||{};for(const o of Object.keys(s))if(o.includes(n)){const n=s[o];ce(t,e,i,n.callable,n.delegationSelector)}}function ue(t){return t=t.replace(Jt,""),ie[t]||t}const de={on(t,e,i,n){le(t,e,i,n,!1)},one(t,e,i,n){le(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=ae(e,i,n),a=r!==e,l=oe(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))he(t,l,i,e.slice(1));for(const i of Object.keys(c)){const n=i.replace(Zt,"");if(!a||e.includes(n)){const e=c[i];ce(t,l,r,e.callable,e.delegationSelector)}}}else{if(!Object.keys(c).length)return;ce(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Rt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=fe(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function fe(t,e){for(const[i,n]of Object.entries(e||{}))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}const pe=new Map,ge={set(t,e,i){pe.has(t)||pe.set(t,new Map);const n=pe.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>pe.has(t)&&pe.get(t).get(e)||null,remove(t,e){if(!pe.has(t))return;const i=pe.get(t);i.delete(e),0===i.size&&pe.delete(t)}};function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function _e(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const be={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${_e(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${_e(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${_e(e)}`))};class ve{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Mt(e)?be.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Mt(e)?be.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const s=e[n],o=t[n],r=Mt(o)?"element":null==(i=o)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class ye extends ve{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),ge.set(this._element,this.constructor.DATA_KEY,this))}dispose(){ge.remove(this._element,this.constructor.DATA_KEY),de.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Yt(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return ge.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.2.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const we=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;de.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Ft(this))return;const s=Pt(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Ee=`close${Ae}`,Ce=`closed${Ae}`;class Te extends ye{static get NAME(){return"alert"}close(){if(de.trigger(this._element,Ee).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),de.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Te.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}we(Te,"close"),Qt(Te);const Oe='[data-bs-toggle="button"]';class xe extends ye{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=xe.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}de.on(document,"click.bs.button.data-api",Oe,(t=>{t.preventDefault();const e=t.target.closest(Oe);xe.getOrCreateInstance(e).toggle()})),Qt(xe);const ke={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Ft(t)&&Wt(t)))}},Le=".bs.swipe",De=`touchstart${Le}`,$e=`touchmove${Le}`,Se=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},je={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Me extends ve{constructor(t,e){super(),this._element=t,t&&Me.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return je}static get NAME(){return"swipe"}dispose(){de.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(de.on(this._element,Ie,(t=>this._start(t))),de.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(de.on(this._element,De,(t=>this._start(t))),de.on(this._element,$e,(t=>this._move(t))),de.on(this._element,Se,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const He=".bs.carousel",We=".data-api",Fe="next",Be="prev",ze="left",qe="right",Re=`slide${He}`,Ve=`slid${He}`,Ke=`keydown${He}`,Qe=`mouseenter${He}`,Xe=`mouseleave${He}`,Ye=`dragstart${He}`,Ue=`load${He}${We}`,Ge=`click${He}${We}`,Je="carousel",Ze="active",ti=".active",ei=".carousel-item",ii=ti+ei,ni={ArrowLeft:qe,ArrowRight:ze},si={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},oi={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ri extends ye{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=ke.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===Je&&this.cycle()}static get Default(){return si}static get DefaultType(){return oi}static get NAME(){return"carousel"}next(){this._slide(Fe)}nextWhenVisible(){!document.hidden&&Wt(this._element)&&this.next()}prev(){this._slide(Be)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?de.one(this._element,Ve,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void de.one(this._element,Ve,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?Fe:Be;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&de.on(this._element,Ke,(t=>this._keydown(t))),"hover"===this._config.pause&&(de.on(this._element,Qe,(()=>this.pause())),de.on(this._element,Xe,(()=>this._maybeEnableCycle()))),this._config.touch&&Me.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of ke.find(".carousel-item img",this._element))de.on(t,Ye,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ze)),rightCallback:()=>this._slide(this._directionToOrder(qe)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Me(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=ni[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=ke.findOne(ti,this._indicatorsElement);e.classList.remove(Ze),e.removeAttribute("aria-current");const i=ke.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Ze),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===Fe,s=e||Ut(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>de.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(Re).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(Ze),i.classList.remove(Ze,c,l),this._isSliding=!1,r(Ve)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return ke.findOne(ii,this._element)}_getItems(){return ke.find(ei,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===ze?Be:Fe:t===ze?Fe:Be}_orderToDirection(t){return Kt()?t===Be?ze:qe:t===Be?qe:ze}static jQueryInterface(t){return this.each((function(){const e=ri.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}de.on(document,Ge,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=Pt(this);if(!e||!e.classList.contains(Je))return;t.preventDefault();const i=ri.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===be.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),de.on(window,Ue,(()=>{const t=ke.find('[data-bs-ride="carousel"]');for(const e of t)ri.getOrCreateInstance(e)})),Qt(ri);const ai=".bs.collapse",li=`show${ai}`,ci=`shown${ai}`,hi=`hide${ai}`,ui=`hidden${ai}`,di=`click${ai}.data-api`,fi="show",pi="collapse",gi="collapsing",mi=`:scope .${pi} .${pi}`,_i='[data-bs-toggle="collapse"]',bi={parent:null,toggle:!0},vi={parent:"(null|element)",toggle:"boolean"};class yi extends ye{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=ke.find(_i);for(const t of i){const e=Nt(t),i=ke.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return bi}static get DefaultType(){return vi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>yi.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(de.trigger(this._element,li).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(pi),this._element.classList.add(gi),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(gi),this._element.classList.add(pi,fi),this._element.style[e]="",de.trigger(this._element,ci)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(de.trigger(this._element,hi).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(gi),this._element.classList.remove(pi,fi);for(const t of this._triggerArray){const e=Pt(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(gi),this._element.classList.add(pi),de.trigger(this._element,ui)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(fi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(_i);for(const e of t){const t=Pt(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=ke.find(mi,this._config.parent);return ke.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=yi.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}de.on(document,di,_i,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=Nt(this),i=ke.find(e);for(const t of i)yi.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(yi);const wi="dropdown",Ai=".bs.dropdown",Ei=".data-api",Ci="ArrowUp",Ti="ArrowDown",Oi=`hide${Ai}`,xi=`hidden${Ai}`,ki=`show${Ai}`,Li=`shown${Ai}`,Di=`click${Ai}${Ei}`,$i=`keydown${Ai}${Ei}`,Si=`keyup${Ai}${Ei}`,Ii="show",Ni='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Pi=`${Ni}.${Ii}`,ji=".dropdown-menu",Mi=Kt()?"top-end":"top-start",Hi=Kt()?"top-start":"top-end",Wi=Kt()?"bottom-end":"bottom-start",Fi=Kt()?"bottom-start":"bottom-end",Bi=Kt()?"left-start":"right-start",zi=Kt()?"right-start":"left-start",qi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Vi extends ye{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=ke.next(this._element,ji)[0]||ke.prev(this._element,ji)[0]||ke.findOne(ji,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return qi}static get DefaultType(){return Ri}static get NAME(){return wi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Ft(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!de.trigger(this._element,ki,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))de.on(t,"mouseover",zt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Ii),this._element.classList.add(Ii),de.trigger(this._element,Li,t)}}hide(){if(Ft(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!de.trigger(this._element,Oi,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.off(t,"mouseover",zt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Ii),this._element.classList.remove(Ii),this._element.setAttribute("aria-expanded","false"),be.removeDataAttribute(this._menu,"popper"),de.trigger(this._element,xi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Mt(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${wi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Mt(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Ii)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Bi;if(t.classList.contains("dropstart"))return zi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Hi:Mi:e?Fi:Wi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(be.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=ke.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Wt(t)));i.length&&Ut(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Vi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=ke.find(Pi);for(const i of e){const e=Vi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ci,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ni)?this:ke.prev(this,Ni)[0]||ke.next(this,Ni)[0]||ke.findOne(Ni,t.delegateTarget.parentNode),o=Vi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}de.on(document,$i,Ni,Vi.dataApiKeydownHandler),de.on(document,$i,ji,Vi.dataApiKeydownHandler),de.on(document,Di,Vi.clearMenus),de.on(document,Si,Vi.clearMenus),de.on(document,Di,Ni,(function(t){t.preventDefault(),Vi.getOrCreateInstance(this).toggle()})),Qt(Vi);const Ki=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Qi=".sticky-top",Xi="padding-right",Yi="margin-right";class Ui{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Xi,(e=>e+t)),this._setElementAttributes(Ki,Xi,(e=>e+t)),this._setElementAttributes(Qi,Yi,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Xi),this._resetElementAttributes(Ki,Xi),this._resetElementAttributes(Qi,Yi)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&be.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=be.getDataAttribute(t,e);null!==i?(be.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Mt(t))e(t);else for(const i of ke.find(t,this._element))e(i)}}const Gi="backdrop",Ji="show",Zi=`mousedown.bs.${Gi}`,tn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},en={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class nn extends ve{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return tn}static get DefaultType(){return en}static get NAME(){return Gi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Ji),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ji),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(de.off(this._element,Zi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),de.on(t,Zi,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Yt(t,this._getElement(),this._config.isAnimated)}}const sn=".bs.focustrap",on=`focusin${sn}`,rn=`keydown.tab${sn}`,an="backward",ln={autofocus:!0,trapElement:null},cn={autofocus:"boolean",trapElement:"element"};class hn extends ve{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return ln}static get DefaultType(){return cn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),de.off(document,sn),de.on(document,on,(t=>this._handleFocusin(t))),de.on(document,rn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,de.off(document,sn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=ke.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===an?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?an:"forward")}}const un=".bs.modal",dn=`hide${un}`,fn=`hidePrevented${un}`,pn=`hidden${un}`,gn=`show${un}`,mn=`shown${un}`,_n=`resize${un}`,bn=`click.dismiss${un}`,vn=`mousedown.dismiss${un}`,yn=`keydown.dismiss${un}`,wn=`click${un}.data-api`,An="modal-open",En="show",Cn="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},On={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class xn extends ye{constructor(t,e){super(t,e),this._dialog=ke.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ui,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return On}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||de.trigger(this._element,gn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(An),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(de.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(En),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])de.off(t,un);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new nn({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new hn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=ke.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(En),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,de.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){de.on(this._element,yn,(t=>{if("Escape"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),de.on(window,_n,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),de.on(this._element,vn,(t=>{de.one(this._element,bn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(An),this._resetAdjustments(),this._scrollBar.reset(),de.trigger(this._element,pn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(de.trigger(this._element,fn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Cn)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Cn),this._queueCallback((()=>{this._element.classList.remove(Cn),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=xn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}de.on(document,wn,'[data-bs-toggle="modal"]',(function(t){const e=Pt(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),de.one(e,gn,(t=>{t.defaultPrevented||de.one(e,pn,(()=>{Wt(this)&&this.focus()}))}));const i=ke.findOne(".modal.show");i&&xn.getInstance(i).hide(),xn.getOrCreateInstance(e).toggle(this)})),we(xn),Qt(xn);const kn=".bs.offcanvas",Ln=".data-api",Dn=`load${kn}${Ln}`,$n="show",Sn="showing",In="hiding",Nn=".offcanvas.show",Pn=`show${kn}`,jn=`shown${kn}`,Mn=`hide${kn}`,Hn=`hidePrevented${kn}`,Wn=`hidden${kn}`,Fn=`resize${kn}`,Bn=`click${kn}${Ln}`,zn=`keydown.dismiss${kn}`,qn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Vn extends ye{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return qn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||de.trigger(this._element,Pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ui).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Sn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add($n),this._element.classList.remove(Sn),de.trigger(this._element,jn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(de.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(In),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove($n,In),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new Ui).reset(),de.trigger(this._element,Wn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new nn({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():de.trigger(this._element,Hn)}:null})}_initializeFocusTrap(){return new hn({trapElement:this._element})}_addEventListeners(){de.on(this._element,zn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():de.trigger(this._element,Hn))}))}static jQueryInterface(t){return this.each((function(){const e=Vn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}de.on(document,Bn,'[data-bs-toggle="offcanvas"]',(function(t){const e=Pt(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ft(this))return;de.one(e,Wn,(()=>{Wt(this)&&this.focus()}));const i=ke.findOne(Nn);i&&i!==e&&Vn.getInstance(i).hide(),Vn.getOrCreateInstance(e).toggle(this)})),de.on(window,Dn,(()=>{for(const t of ke.find(Nn))Vn.getOrCreateInstance(t).show()})),de.on(window,Fn,(()=>{for(const t of ke.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Vn.getOrCreateInstance(t).hide()})),we(Vn),Qt(Vn);const Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Xn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Yn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)||Xn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Un={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Gn={allowList:Un,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Jn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Zn={entry:"(string|element|function|null)",selector:"(string|element)"};class ts extends ve{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Gn}static get DefaultType(){return Jn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Zn)}_setContent(t,e,i){const n=ke.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Mt(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Yn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const es=new Set(["sanitize","allowList","sanitizeFn"]),is="fade",ns="show",ss=".modal",os="hide.bs.modal",rs="hover",as="focus",ls={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},cs={allowList:Un,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},hs={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class us extends ye{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return cs}static get DefaultType(){return hs}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),de.off(this._element.closest(ss),os,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=de.trigger(this._element,this.constructor.eventName("show")),e=(Bt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),de.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ns),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.on(t,"mouseover",zt);this._queueCallback((()=>{de.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!de.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ns),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))de.off(t,"mouseover",zt);this._activeTrigger.click=!1,this._activeTrigger[as]=!1,this._activeTrigger[rs]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),de.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(is,ns),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(is),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new ts({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(is)}_isShown(){return this.tip&&this.tip.classList.contains(ns)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,i=ls[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)de.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===rs?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===rs?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");de.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?as:rs]=!0,e._enter()})),de.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?as:rs]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},de.on(this._element.closest(ss),os,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=be.getDataAttributes(this._element);for(const t of Object.keys(e))es.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(us);const ds={...us.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},fs={...us.DefaultType,content:"(null|string|element|function)"};class ps extends us{static get Default(){return ds}static get DefaultType(){return fs}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=ps.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(ps);const gs=".bs.scrollspy",ms=`activate${gs}`,_s=`click${gs}`,bs=`load${gs}.data-api`,vs="active",ys="[href]",ws=".nav-link",As=`${ws}, .nav-item > ${ws}, .list-group-item`,Es={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Cs={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ts extends ye{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Es}static get DefaultType(){return Cs}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(de.off(this._config.target,_s),de.on(this._config.target,_s,ys,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=ke.find(ys,this._config.target);for(const e of t){if(!e.hash||Ft(e))continue;const t=ke.findOne(e.hash,this._element);Wt(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(vs),this._activateParents(t),de.trigger(this._element,ms,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))ke.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(vs);else for(const e of ke.parents(t,".nav, .list-group"))for(const t of ke.prev(e,As))t.classList.add(vs)}_clearActiveClass(t){t.classList.remove(vs);const e=ke.find(`${ys}.${vs}`,t);for(const t of e)t.classList.remove(vs)}static jQueryInterface(t){return this.each((function(){const e=Ts.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}de.on(window,bs,(()=>{for(const t of ke.find('[data-bs-spy="scroll"]'))Ts.getOrCreateInstance(t)})),Qt(Ts);const Os=".bs.tab",xs=`hide${Os}`,ks=`hidden${Os}`,Ls=`show${Os}`,Ds=`shown${Os}`,$s=`click${Os}`,Ss=`keydown${Os}`,Is=`load${Os}`,Ns="ArrowLeft",Ps="ArrowRight",js="ArrowUp",Ms="ArrowDown",Hs="active",Ws="fade",Fs="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,Rs=`.${Hs}[data-bs-toggle="tab"], .${Hs}[data-bs-toggle="pill"], .${Hs}[data-bs-toggle="list"]`;class Vs extends ye{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),de.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?de.trigger(e,xs,{relatedTarget:t}):null;de.trigger(t,Ls,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Hs),this._activate(Pt(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),de.trigger(t,Ds,{relatedTarget:e})):t.classList.add(Fs)}),t,t.classList.contains(Ws)))}_deactivate(t,e){t&&(t.classList.remove(Hs),t.blur(),this._deactivate(Pt(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),de.trigger(t,ks,{relatedTarget:e})):t.classList.remove(Fs)}),t,t.classList.contains(Ws)))}_keydown(t){if(![Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[Ps,Ms].includes(t.key),i=Ut(this._getChildren().filter((t=>!Ft(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return ke.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=Pt(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=ke.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Hs),n(".dropdown-menu",Fs),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Hs)}_getInnerElement(t){return t.matches(qs)?t:ke.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}de.on(document,$s,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Ft(this)||Vs.getOrCreateInstance(this).show()})),de.on(window,Is,(()=>{for(const t of ke.find(Rs))Vs.getOrCreateInstance(t)})),Qt(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends ye{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){de.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),qt(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),de.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(de.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),de.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){de.on(this._element,Qs,(t=>this._onInteraction(t,!0))),de.on(this._element,Xs,(t=>this._onInteraction(t,!1))),de.on(this._element,Ys,(t=>this._onInteraction(t,!0))),de.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}var ao;we(ro),Qt(ro),ao=function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new us(t,{delay:{show:500,hide:100}})}))},"loading"!=document.readyState?ao():document.addEventListener("DOMContentLoaded",ao)})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/latest/_static/scripts/bootstrap.js.LICENSE.txt b/latest/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 000000000..91ad10aa0 --- /dev/null +++ b/latest/_static/scripts/bootstrap.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * Bootstrap v5.2.3 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ diff --git a/latest/_static/scripts/bootstrap.js.map b/latest/_static/scripts/bootstrap.js.map new file mode 100644 index 000000000..d83e2f7cd --- /dev/null +++ b/latest/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":";mBACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,ipBCLvD,IAAI,EAAM,MACNC,EAAS,SACTC,EAAQ,QACRC,EAAO,OACPC,EAAO,OACPC,EAAiB,CAAC,EAAKJ,EAAQC,EAAOC,GACtCG,EAAQ,QACRC,EAAM,MACNC,EAAkB,kBAClBC,EAAW,WACXC,EAAS,SACTC,EAAY,YACZC,EAAmCP,EAAeQ,QAAO,SAAUC,EAAKC,GACjF,OAAOD,EAAIE,OAAO,CAACD,EAAY,IAAMT,EAAOS,EAAY,IAAMR,GAChE,GAAG,IACQ,EAA0B,GAAGS,OAAOX,EAAgB,CAACD,IAAOS,QAAO,SAAUC,EAAKC,GAC3F,OAAOD,EAAIE,OAAO,CAACD,EAAWA,EAAY,IAAMT,EAAOS,EAAY,IAAMR,GAC3E,GAAG,IAEQU,EAAa,aACbC,EAAO,OACPC,EAAY,YAEZC,EAAa,aACbC,EAAO,OACPC,EAAY,YAEZC,EAAc,cACdC,EAAQ,QACRC,EAAa,aACbC,EAAiB,CAACT,EAAYC,EAAMC,EAAWC,EAAYC,EAAMC,EAAWC,EAAaC,EAAOC,GC9B5F,SAASE,EAAYC,GAClC,OAAOA,GAAWA,EAAQC,UAAY,IAAIC,cAAgB,IAC5D,CCFe,SAASC,EAAUC,GAChC,GAAY,MAARA,EACF,OAAOC,OAGT,GAAwB,oBAApBD,EAAKE,WAAkC,CACzC,IAAIC,EAAgBH,EAAKG,cACzB,OAAOA,GAAgBA,EAAcC,aAAwBH,MAC/D,CAEA,OAAOD,CACT,CCTA,SAASK,EAAUL,GAEjB,OAAOA,aADUD,EAAUC,GAAMM,SACIN,aAAgBM,OACvD,CAEA,SAASC,EAAcP,GAErB,OAAOA,aADUD,EAAUC,GAAMQ,aACIR,aAAgBQ,WACvD,CAEA,SAASC,EAAaT,GAEpB,MAA0B,oBAAfU,aAKJV,aADUD,EAAUC,GAAMU,YACIV,aAAgBU,WACvD,CCwDA,SACEC,KAAM,cACNC,SAAS,EACTC,MAAO,QACPC,GA5EF,SAAqBC,GACnB,IAAIC,EAAQD,EAAKC,MACjB3D,OAAO4D,KAAKD,EAAME,UAAUC,SAAQ,SAAUR,GAC5C,IAAIS,EAAQJ,EAAMK,OAAOV,IAAS,CAAC,EAC/BW,EAAaN,EAAMM,WAAWX,IAAS,CAAC,EACxCf,EAAUoB,EAAME,SAASP,GAExBJ,EAAcX,IAAaD,EAAYC,KAO5CvC,OAAOkE,OAAO3B,EAAQwB,MAAOA,GAC7B/D,OAAO4D,KAAKK,GAAYH,SAAQ,SAAUR,GACxC,IAAI3C,EAAQsD,EAAWX,IAET,IAAV3C,EACF4B,EAAQ4B,gBAAgBb,GAExBf,EAAQ6B,aAAad,GAAgB,IAAV3C,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDE0D,OAlDF,SAAgBC,GACd,IAAIX,EAAQW,EAAMX,MACdY,EAAgB,CAClBlD,OAAQ,CACNmD,SAAUb,EAAMc,QAAQC,SACxB5D,KAAM,IACN6D,IAAK,IACLC,OAAQ,KAEVC,MAAO,CACLL,SAAU,YAEZlD,UAAW,CAAC,GASd,OAPAtB,OAAOkE,OAAOP,EAAME,SAASxC,OAAO0C,MAAOQ,EAAclD,QACzDsC,EAAMK,OAASO,EAEXZ,EAAME,SAASgB,OACjB7E,OAAOkE,OAAOP,EAAME,SAASgB,MAAMd,MAAOQ,EAAcM,OAGnD,WACL7E,OAAO4D,KAAKD,EAAME,UAAUC,SAAQ,SAAUR,GAC5C,IAAIf,EAAUoB,EAAME,SAASP,GACzBW,EAAaN,EAAMM,WAAWX,IAAS,CAAC,EAGxCS,EAFkB/D,OAAO4D,KAAKD,EAAMK,OAAOzD,eAAe+C,GAAQK,EAAMK,OAAOV,GAAQiB,EAAcjB,IAE7E9B,QAAO,SAAUuC,EAAOe,GAElD,OADAf,EAAMe,GAAY,GACXf,CACT,GAAG,CAAC,GAECb,EAAcX,IAAaD,EAAYC,KAI5CvC,OAAOkE,OAAO3B,EAAQwB,MAAOA,GAC7B/D,OAAO4D,KAAKK,GAAYH,SAAQ,SAAUiB,GACxCxC,EAAQ4B,gBAAgBY,EAC1B,IACF,GACF,CACF,EASEC,SAAU,CAAC,kBCjFE,SAASC,EAAiBvD,GACvC,OAAOA,EAAUwD,MAAM,KAAK,EAC9B,CCHO,IAAI,EAAMC,KAAKC,IACX,EAAMD,KAAKE,IACXC,EAAQH,KAAKG,MCFT,SAASC,IACtB,IAAIC,EAASC,UAAUC,cAEvB,OAAc,MAAVF,GAAkBA,EAAOG,QAAUC,MAAMC,QAAQL,EAAOG,QACnDH,EAAOG,OAAOG,KAAI,SAAUC,GACjC,OAAOA,EAAKC,MAAQ,IAAMD,EAAKE,OACjC,IAAGC,KAAK,KAGHT,UAAUU,SACnB,CCTe,SAASC,IACtB,OAAQ,iCAAiCC,KAAKd,IAChD,CCCe,SAASe,EAAsB/D,EAASgE,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAIC,EAAalE,EAAQ+D,wBACrBI,EAAS,EACTC,EAAS,EAETJ,GAAgBrD,EAAcX,KAChCmE,EAASnE,EAAQqE,YAAc,GAAItB,EAAMmB,EAAWI,OAAStE,EAAQqE,aAAmB,EACxFD,EAASpE,EAAQuE,aAAe,GAAIxB,EAAMmB,EAAWM,QAAUxE,EAAQuE,cAAoB,GAG7F,IACIE,GADOhE,EAAUT,GAAWG,EAAUH,GAAWK,QAC3BoE,eAEtBC,GAAoBb,KAAsBI,EAC1CU,GAAKT,EAAW3F,MAAQmG,GAAoBD,EAAiBA,EAAeG,WAAa,IAAMT,EAC/FU,GAAKX,EAAW9B,KAAOsC,GAAoBD,EAAiBA,EAAeK,UAAY,IAAMV,EAC7FE,EAAQJ,EAAWI,MAAQH,EAC3BK,EAASN,EAAWM,OAASJ,EACjC,MAAO,CACLE,MAAOA,EACPE,OAAQA,EACRpC,IAAKyC,EACLvG,MAAOqG,EAAIL,EACXjG,OAAQwG,EAAIL,EACZjG,KAAMoG,EACNA,EAAGA,EACHE,EAAGA,EAEP,CCrCe,SAASE,EAAc/E,GACpC,IAAIkE,EAAaH,EAAsB/D,GAGnCsE,EAAQtE,EAAQqE,YAChBG,EAASxE,EAAQuE,aAUrB,OARI3B,KAAKoC,IAAId,EAAWI,MAAQA,IAAU,IACxCA,EAAQJ,EAAWI,OAGjB1B,KAAKoC,IAAId,EAAWM,OAASA,IAAW,IAC1CA,EAASN,EAAWM,QAGf,CACLG,EAAG3E,EAAQ4E,WACXC,EAAG7E,EAAQ8E,UACXR,MAAOA,EACPE,OAAQA,EAEZ,CCvBe,SAASS,EAASC,EAAQC,GACvC,IAAIC,EAAWD,EAAME,aAAeF,EAAME,cAE1C,GAAIH,EAAOD,SAASE,GAClB,OAAO,EAEJ,GAAIC,GAAYvE,EAAauE,GAAW,CACzC,IAAIE,EAAOH,EAEX,EAAG,CACD,GAAIG,GAAQJ,EAAOK,WAAWD,GAC5B,OAAO,EAITA,EAAOA,EAAKE,YAAcF,EAAKG,IACjC,OAASH,EACX,CAGF,OAAO,CACT,CCrBe,SAAS,EAAiBtF,GACvC,OAAOG,EAAUH,GAAS0F,iBAAiB1F,EAC7C,CCFe,SAAS2F,EAAe3F,GACrC,MAAO,CAAC,QAAS,KAAM,MAAM4F,QAAQ7F,EAAYC,KAAa,CAChE,CCFe,SAAS6F,EAAmB7F,GAEzC,QAASS,EAAUT,GAAWA,EAAQO,cACtCP,EAAQ8F,WAAazF,OAAOyF,UAAUC,eACxC,CCFe,SAASC,EAAchG,GACpC,MAA6B,SAAzBD,EAAYC,GACPA,EAMPA,EAAQiG,cACRjG,EAAQwF,aACR3E,EAAab,GAAWA,EAAQyF,KAAO,OAEvCI,EAAmB7F,EAGvB,CCVA,SAASkG,EAAoBlG,GAC3B,OAAKW,EAAcX,IACoB,UAAvC,EAAiBA,GAASiC,SAInBjC,EAAQmG,aAHN,IAIX,CAwCe,SAASC,EAAgBpG,GAItC,IAHA,IAAIK,EAASF,EAAUH,GACnBmG,EAAeD,EAAoBlG,GAEhCmG,GAAgBR,EAAeQ,IAA6D,WAA5C,EAAiBA,GAAclE,UACpFkE,EAAeD,EAAoBC,GAGrC,OAAIA,IAA+C,SAA9BpG,EAAYoG,IAA0D,SAA9BpG,EAAYoG,IAAwE,WAA5C,EAAiBA,GAAclE,UAC3H5B,EAGF8F,GAhDT,SAA4BnG,GAC1B,IAAIqG,EAAY,WAAWvC,KAAKd,KAGhC,GAFW,WAAWc,KAAKd,MAEfrC,EAAcX,IAII,UAFX,EAAiBA,GAEnBiC,SACb,OAAO,KAIX,IAAIqE,EAAcN,EAAchG,GAMhC,IAJIa,EAAayF,KACfA,EAAcA,EAAYb,MAGrB9E,EAAc2F,IAAgB,CAAC,OAAQ,QAAQV,QAAQ7F,EAAYuG,IAAgB,GAAG,CAC3F,IAAIC,EAAM,EAAiBD,GAI3B,GAAsB,SAAlBC,EAAIC,WAA4C,SAApBD,EAAIE,aAA0C,UAAhBF,EAAIG,UAAiF,IAA1D,CAAC,YAAa,eAAed,QAAQW,EAAII,aAAsBN,GAAgC,WAAnBE,EAAII,YAA2BN,GAAaE,EAAIK,QAAyB,SAAfL,EAAIK,OACjO,OAAON,EAEPA,EAAcA,EAAYd,UAE9B,CAEA,OAAO,IACT,CAgByBqB,CAAmB7G,IAAYK,CACxD,CCpEe,SAASyG,EAAyB3H,GAC/C,MAAO,CAAC,MAAO,UAAUyG,QAAQzG,IAAc,EAAI,IAAM,GAC3D,CCDO,SAAS4H,EAAOjE,EAAK1E,EAAOyE,GACjC,OAAO,EAAQC,EAAK,EAAQ1E,EAAOyE,GACrC,CCFe,SAASmE,EAAmBC,GACzC,OAAOxJ,OAAOkE,OAAO,CAAC,ECDf,CACLS,IAAK,EACL9D,MAAO,EACPD,OAAQ,EACRE,KAAM,GDHuC0I,EACjD,CEHe,SAASC,EAAgB9I,EAAOiD,GAC7C,OAAOA,EAAKpC,QAAO,SAAUkI,EAAS5J,GAEpC,OADA4J,EAAQ5J,GAAOa,EACR+I,CACT,GAAG,CAAC,EACN,CCuFA,SACEpG,KAAM,QACNC,SAAS,EACTC,MAAO,OACPC,GA9EF,SAAeC,GACb,IAAIiG,EAEAhG,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KACZmB,EAAUf,EAAKe,QACfmF,EAAejG,EAAME,SAASgB,MAC9BgF,EAAgBlG,EAAMmG,cAAcD,cACpCE,EAAgB9E,EAAiBtB,EAAMjC,WACvCsI,EAAOX,EAAyBU,GAEhCE,EADa,CAACnJ,EAAMD,GAAOsH,QAAQ4B,IAAkB,EAClC,SAAW,QAElC,GAAKH,GAAiBC,EAAtB,CAIA,IAAIL,EAxBgB,SAAyBU,EAASvG,GAItD,OAAO4F,EAAsC,iBAH7CW,EAA6B,mBAAZA,EAAyBA,EAAQlK,OAAOkE,OAAO,CAAC,EAAGP,EAAMwG,MAAO,CAC/EzI,UAAWiC,EAAMjC,aACbwI,GACkDA,EAAUT,EAAgBS,EAASlJ,GAC7F,CAmBsBoJ,CAAgB3F,EAAQyF,QAASvG,GACjD0G,EAAY/C,EAAcsC,GAC1BU,EAAmB,MAATN,EAAe,EAAMlJ,EAC/ByJ,EAAmB,MAATP,EAAepJ,EAASC,EAClC2J,EAAU7G,EAAMwG,MAAM7I,UAAU2I,GAAOtG,EAAMwG,MAAM7I,UAAU0I,GAAQH,EAAcG,GAAQrG,EAAMwG,MAAM9I,OAAO4I,GAC9GQ,EAAYZ,EAAcG,GAAQrG,EAAMwG,MAAM7I,UAAU0I,GACxDU,EAAoB/B,EAAgBiB,GACpCe,EAAaD,EAA6B,MAATV,EAAeU,EAAkBE,cAAgB,EAAIF,EAAkBG,aAAe,EAAI,EAC3HC,EAAoBN,EAAU,EAAIC,EAAY,EAG9CpF,EAAMmE,EAAcc,GACpBlF,EAAMuF,EAAaN,EAAUJ,GAAOT,EAAce,GAClDQ,EAASJ,EAAa,EAAIN,EAAUJ,GAAO,EAAIa,EAC/CE,EAAS1B,EAAOjE,EAAK0F,EAAQ3F,GAE7B6F,EAAWjB,EACfrG,EAAMmG,cAAcxG,KAASqG,EAAwB,CAAC,GAAyBsB,GAAYD,EAAQrB,EAAsBuB,aAAeF,EAASD,EAAQpB,EAnBzJ,CAoBF,EA4CEtF,OA1CF,SAAgBC,GACd,IAAIX,EAAQW,EAAMX,MAEdwH,EADU7G,EAAMG,QACWlC,QAC3BqH,OAAoC,IAArBuB,EAA8B,sBAAwBA,EAErD,MAAhBvB,IAKwB,iBAAjBA,IACTA,EAAejG,EAAME,SAASxC,OAAO+J,cAAcxB,MAahDpC,EAAS7D,EAAME,SAASxC,OAAQuI,KAQrCjG,EAAME,SAASgB,MAAQ+E,EACzB,EASE5E,SAAU,CAAC,iBACXqG,iBAAkB,CAAC,oBCnGN,SAASC,EAAa5J,GACnC,OAAOA,EAAUwD,MAAM,KAAK,EAC9B,CCOA,IAAIqG,EAAa,CACf5G,IAAK,OACL9D,MAAO,OACPD,OAAQ,OACRE,KAAM,QAeD,SAAS0K,GAAYlH,GAC1B,IAAImH,EAEApK,EAASiD,EAAMjD,OACfqK,EAAapH,EAAMoH,WACnBhK,EAAY4C,EAAM5C,UAClBiK,EAAYrH,EAAMqH,UAClBC,EAAUtH,EAAMsH,QAChBpH,EAAWF,EAAME,SACjBqH,EAAkBvH,EAAMuH,gBACxBC,EAAWxH,EAAMwH,SACjBC,EAAezH,EAAMyH,aACrBC,EAAU1H,EAAM0H,QAChBC,EAAaL,EAAQ1E,EACrBA,OAAmB,IAAf+E,EAAwB,EAAIA,EAChCC,EAAaN,EAAQxE,EACrBA,OAAmB,IAAf8E,EAAwB,EAAIA,EAEhCC,EAAgC,mBAAjBJ,EAA8BA,EAAa,CAC5D7E,EAAGA,EACHE,IACG,CACHF,EAAGA,EACHE,GAGFF,EAAIiF,EAAMjF,EACVE,EAAI+E,EAAM/E,EACV,IAAIgF,EAAOR,EAAQrL,eAAe,KAC9B8L,EAAOT,EAAQrL,eAAe,KAC9B+L,EAAQxL,EACRyL,EAAQ,EACRC,EAAM5J,OAEV,GAAIkJ,EAAU,CACZ,IAAIpD,EAAeC,EAAgBtH,GAC/BoL,EAAa,eACbC,EAAY,cAEZhE,IAAiBhG,EAAUrB,IAGmB,WAA5C,EAFJqH,EAAeN,EAAmB/G,IAECmD,UAAsC,aAAbA,IAC1DiI,EAAa,eACbC,EAAY,gBAOZhL,IAAc,IAAQA,IAAcZ,GAAQY,IAAcb,IAAU8K,IAAczK,KACpFqL,EAAQ3L,EAGRwG,IAFc4E,GAAWtD,IAAiB8D,GAAOA,EAAIxF,eAAiBwF,EAAIxF,eAAeD,OACzF2B,EAAa+D,IACEf,EAAW3E,OAC1BK,GAAKyE,EAAkB,GAAK,GAG1BnK,IAAcZ,IAASY,IAAc,GAAOA,IAAcd,GAAW+K,IAAczK,KACrFoL,EAAQzL,EAGRqG,IAFc8E,GAAWtD,IAAiB8D,GAAOA,EAAIxF,eAAiBwF,EAAIxF,eAAeH,MACzF6B,EAAagE,IACEhB,EAAW7E,MAC1BK,GAAK2E,EAAkB,GAAK,EAEhC,CAEA,IAgBMc,EAhBFC,EAAe5M,OAAOkE,OAAO,CAC/BM,SAAUA,GACTsH,GAAYP,GAEXsB,GAAyB,IAAjBd,EAlFd,SAA2BrI,EAAM8I,GAC/B,IAAItF,EAAIxD,EAAKwD,EACTE,EAAI1D,EAAK0D,EACT0F,EAAMN,EAAIO,kBAAoB,EAClC,MAAO,CACL7F,EAAG5B,EAAM4B,EAAI4F,GAAOA,GAAO,EAC3B1F,EAAG9B,EAAM8B,EAAI0F,GAAOA,GAAO,EAE/B,CA0EsCE,CAAkB,CACpD9F,EAAGA,EACHE,GACC1E,EAAUrB,IAAW,CACtB6F,EAAGA,EACHE,GAMF,OAHAF,EAAI2F,EAAM3F,EACVE,EAAIyF,EAAMzF,EAENyE,EAGK7L,OAAOkE,OAAO,CAAC,EAAG0I,IAAeD,EAAiB,CAAC,GAAkBJ,GAASF,EAAO,IAAM,GAAIM,EAAeL,GAASF,EAAO,IAAM,GAAIO,EAAe5D,WAAayD,EAAIO,kBAAoB,IAAM,EAAI,aAAe7F,EAAI,OAASE,EAAI,MAAQ,eAAiBF,EAAI,OAASE,EAAI,SAAUuF,IAG5R3M,OAAOkE,OAAO,CAAC,EAAG0I,IAAenB,EAAkB,CAAC,GAAmBc,GAASF,EAAOjF,EAAI,KAAO,GAAIqE,EAAgBa,GAASF,EAAOlF,EAAI,KAAO,GAAIuE,EAAgB1C,UAAY,GAAI0C,GAC9L,CAuDA,UACEnI,KAAM,gBACNC,SAAS,EACTC,MAAO,cACPC,GAzDF,SAAuBwJ,GACrB,IAAItJ,EAAQsJ,EAAMtJ,MACdc,EAAUwI,EAAMxI,QAChByI,EAAwBzI,EAAQoH,gBAChCA,OAA4C,IAA1BqB,GAA0CA,EAC5DC,EAAoB1I,EAAQqH,SAC5BA,OAAiC,IAAtBqB,GAAsCA,EACjDC,EAAwB3I,EAAQsH,aAChCA,OAAyC,IAA1BqB,GAA0CA,EAYzDR,EAAe,CACjBlL,UAAWuD,EAAiBtB,EAAMjC,WAClCiK,UAAWL,EAAa3H,EAAMjC,WAC9BL,OAAQsC,EAAME,SAASxC,OACvBqK,WAAY/H,EAAMwG,MAAM9I,OACxBwK,gBAAiBA,EACjBG,QAAoC,UAA3BrI,EAAMc,QAAQC,UAGgB,MAArCf,EAAMmG,cAAcD,gBACtBlG,EAAMK,OAAO3C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMK,OAAO3C,OAAQmK,GAAYxL,OAAOkE,OAAO,CAAC,EAAG0I,EAAc,CACvGhB,QAASjI,EAAMmG,cAAcD,cAC7BrF,SAAUb,EAAMc,QAAQC,SACxBoH,SAAUA,EACVC,aAAcA,OAIe,MAA7BpI,EAAMmG,cAAcjF,QACtBlB,EAAMK,OAAOa,MAAQ7E,OAAOkE,OAAO,CAAC,EAAGP,EAAMK,OAAOa,MAAO2G,GAAYxL,OAAOkE,OAAO,CAAC,EAAG0I,EAAc,CACrGhB,QAASjI,EAAMmG,cAAcjF,MAC7BL,SAAU,WACVsH,UAAU,EACVC,aAAcA,OAIlBpI,EAAMM,WAAW5C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMM,WAAW5C,OAAQ,CACnE,wBAAyBsC,EAAMjC,WAEnC,EAQE2L,KAAM,CAAC,GChLT,IAAIC,GAAU,CACZA,SAAS,GAsCX,UACEhK,KAAM,iBACNC,SAAS,EACTC,MAAO,QACPC,GAAI,WAAe,EACnBY,OAxCF,SAAgBX,GACd,IAAIC,EAAQD,EAAKC,MACb4J,EAAW7J,EAAK6J,SAChB9I,EAAUf,EAAKe,QACf+I,EAAkB/I,EAAQgJ,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAkBjJ,EAAQkJ,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7C9K,EAASF,EAAUiB,EAAME,SAASxC,QAClCuM,EAAgB,GAAGjM,OAAOgC,EAAMiK,cAActM,UAAWqC,EAAMiK,cAAcvM,QAYjF,OAVIoM,GACFG,EAAc9J,SAAQ,SAAU+J,GAC9BA,EAAaC,iBAAiB,SAAUP,EAASQ,OAAQT,GAC3D,IAGEK,GACF/K,EAAOkL,iBAAiB,SAAUP,EAASQ,OAAQT,IAG9C,WACDG,GACFG,EAAc9J,SAAQ,SAAU+J,GAC9BA,EAAaG,oBAAoB,SAAUT,EAASQ,OAAQT,GAC9D,IAGEK,GACF/K,EAAOoL,oBAAoB,SAAUT,EAASQ,OAAQT,GAE1D,CACF,EASED,KAAM,CAAC,GC/CT,IAAIY,GAAO,CACTnN,KAAM,QACND,MAAO,OACPD,OAAQ,MACR+D,IAAK,UAEQ,SAASuJ,GAAqBxM,GAC3C,OAAOA,EAAUyM,QAAQ,0BAA0B,SAAUC,GAC3D,OAAOH,GAAKG,EACd,GACF,CCVA,IAAI,GAAO,CACTnN,MAAO,MACPC,IAAK,SAEQ,SAASmN,GAA8B3M,GACpD,OAAOA,EAAUyM,QAAQ,cAAc,SAAUC,GAC/C,OAAO,GAAKA,EACd,GACF,CCPe,SAASE,GAAgB3L,GACtC,IAAI6J,EAAM9J,EAAUC,GAGpB,MAAO,CACL4L,WAHe/B,EAAIgC,YAInBC,UAHcjC,EAAIkC,YAKtB,CCNe,SAASC,GAAoBpM,GAQ1C,OAAO+D,EAAsB8B,EAAmB7F,IAAUzB,KAAOwN,GAAgB/L,GAASgM,UAC5F,CCXe,SAASK,GAAerM,GAErC,IAAIsM,EAAoB,EAAiBtM,GACrCuM,EAAWD,EAAkBC,SAC7BC,EAAYF,EAAkBE,UAC9BC,EAAYH,EAAkBG,UAElC,MAAO,6BAA6B3I,KAAKyI,EAAWE,EAAYD,EAClE,CCLe,SAASE,GAAgBtM,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAawF,QAAQ7F,EAAYK,KAAU,EAEvDA,EAAKG,cAAcoM,KAGxBhM,EAAcP,IAASiM,GAAejM,GACjCA,EAGFsM,GAAgB1G,EAAc5F,GACvC,CCJe,SAASwM,GAAkB5M,EAAS6M,GACjD,IAAIC,OAES,IAATD,IACFA,EAAO,IAGT,IAAIvB,EAAeoB,GAAgB1M,GAC/B+M,EAASzB,KAAqE,OAAlDwB,EAAwB9M,EAAQO,oBAAyB,EAASuM,EAAsBH,MACpH1C,EAAM9J,EAAUmL,GAChB0B,EAASD,EAAS,CAAC9C,GAAK7K,OAAO6K,EAAIxF,gBAAkB,GAAI4H,GAAef,GAAgBA,EAAe,IAAMA,EAC7G2B,EAAcJ,EAAKzN,OAAO4N,GAC9B,OAAOD,EAASE,EAChBA,EAAY7N,OAAOwN,GAAkB5G,EAAcgH,IACrD,CCzBe,SAASE,GAAiBC,GACvC,OAAO1P,OAAOkE,OAAO,CAAC,EAAGwL,EAAM,CAC7B5O,KAAM4O,EAAKxI,EACXvC,IAAK+K,EAAKtI,EACVvG,MAAO6O,EAAKxI,EAAIwI,EAAK7I,MACrBjG,OAAQ8O,EAAKtI,EAAIsI,EAAK3I,QAE1B,CCqBA,SAAS4I,GAA2BpN,EAASqN,EAAgBlL,GAC3D,OAAOkL,IAAmBxO,EAAWqO,GCzBxB,SAAyBlN,EAASmC,GAC/C,IAAI8H,EAAM9J,EAAUH,GAChBsN,EAAOzH,EAAmB7F,GAC1ByE,EAAiBwF,EAAIxF,eACrBH,EAAQgJ,EAAKhF,YACb9D,EAAS8I,EAAKjF,aACd1D,EAAI,EACJE,EAAI,EAER,GAAIJ,EAAgB,CAClBH,EAAQG,EAAeH,MACvBE,EAASC,EAAeD,OACxB,IAAI+I,EAAiB1J,KAEjB0J,IAAmBA,GAA+B,UAAbpL,KACvCwC,EAAIF,EAAeG,WACnBC,EAAIJ,EAAeK,UAEvB,CAEA,MAAO,CACLR,MAAOA,EACPE,OAAQA,EACRG,EAAGA,EAAIyH,GAAoBpM,GAC3B6E,EAAGA,EAEP,CDDwD2I,CAAgBxN,EAASmC,IAAa1B,EAAU4M,GAdxG,SAAoCrN,EAASmC,GAC3C,IAAIgL,EAAOpJ,EAAsB/D,GAAS,EAAoB,UAAbmC,GASjD,OARAgL,EAAK/K,IAAM+K,EAAK/K,IAAMpC,EAAQyN,UAC9BN,EAAK5O,KAAO4O,EAAK5O,KAAOyB,EAAQ0N,WAChCP,EAAK9O,OAAS8O,EAAK/K,IAAMpC,EAAQqI,aACjC8E,EAAK7O,MAAQ6O,EAAK5O,KAAOyB,EAAQsI,YACjC6E,EAAK7I,MAAQtE,EAAQsI,YACrB6E,EAAK3I,OAASxE,EAAQqI,aACtB8E,EAAKxI,EAAIwI,EAAK5O,KACd4O,EAAKtI,EAAIsI,EAAK/K,IACP+K,CACT,CAG0HQ,CAA2BN,EAAgBlL,GAAY+K,GEtBlK,SAAyBlN,GACtC,IAAI8M,EAEAQ,EAAOzH,EAAmB7F,GAC1B4N,EAAY7B,GAAgB/L,GAC5B2M,EAA0D,OAAlDG,EAAwB9M,EAAQO,oBAAyB,EAASuM,EAAsBH,KAChGrI,EAAQ,EAAIgJ,EAAKO,YAAaP,EAAKhF,YAAaqE,EAAOA,EAAKkB,YAAc,EAAGlB,EAAOA,EAAKrE,YAAc,GACvG9D,EAAS,EAAI8I,EAAKQ,aAAcR,EAAKjF,aAAcsE,EAAOA,EAAKmB,aAAe,EAAGnB,EAAOA,EAAKtE,aAAe,GAC5G1D,GAAKiJ,EAAU5B,WAAaI,GAAoBpM,GAChD6E,GAAK+I,EAAU1B,UAMnB,MAJiD,QAA7C,EAAiBS,GAAQW,GAAMS,YACjCpJ,GAAK,EAAI2I,EAAKhF,YAAaqE,EAAOA,EAAKrE,YAAc,GAAKhE,GAGrD,CACLA,MAAOA,EACPE,OAAQA,EACRG,EAAGA,EACHE,EAAGA,EAEP,CFCkMmJ,CAAgBnI,EAAmB7F,IACrO,CG1Be,SAASiO,GAAe9M,GACrC,IAOIkI,EAPAtK,EAAYoC,EAAKpC,UACjBiB,EAAUmB,EAAKnB,QACfb,EAAYgC,EAAKhC,UACjBqI,EAAgBrI,EAAYuD,EAAiBvD,GAAa,KAC1DiK,EAAYjK,EAAY4J,EAAa5J,GAAa,KAClD+O,EAAUnP,EAAU4F,EAAI5F,EAAUuF,MAAQ,EAAItE,EAAQsE,MAAQ,EAC9D6J,EAAUpP,EAAU8F,EAAI9F,EAAUyF,OAAS,EAAIxE,EAAQwE,OAAS,EAGpE,OAAQgD,GACN,KAAK,EACH6B,EAAU,CACR1E,EAAGuJ,EACHrJ,EAAG9F,EAAU8F,EAAI7E,EAAQwE,QAE3B,MAEF,KAAKnG,EACHgL,EAAU,CACR1E,EAAGuJ,EACHrJ,EAAG9F,EAAU8F,EAAI9F,EAAUyF,QAE7B,MAEF,KAAKlG,EACH+K,EAAU,CACR1E,EAAG5F,EAAU4F,EAAI5F,EAAUuF,MAC3BO,EAAGsJ,GAEL,MAEF,KAAK5P,EACH8K,EAAU,CACR1E,EAAG5F,EAAU4F,EAAI3E,EAAQsE,MACzBO,EAAGsJ,GAEL,MAEF,QACE9E,EAAU,CACR1E,EAAG5F,EAAU4F,EACbE,EAAG9F,EAAU8F,GAInB,IAAIuJ,EAAW5G,EAAgBV,EAAyBU,GAAiB,KAEzE,GAAgB,MAAZ4G,EAAkB,CACpB,IAAI1G,EAAmB,MAAb0G,EAAmB,SAAW,QAExC,OAAQhF,GACN,KAAK1K,EACH2K,EAAQ+E,GAAY/E,EAAQ+E,IAAarP,EAAU2I,GAAO,EAAI1H,EAAQ0H,GAAO,GAC7E,MAEF,KAAK/I,EACH0K,EAAQ+E,GAAY/E,EAAQ+E,IAAarP,EAAU2I,GAAO,EAAI1H,EAAQ0H,GAAO,GAKnF,CAEA,OAAO2B,CACT,CC3De,SAASgF,GAAejN,EAAOc,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIoM,EAAWpM,EACXqM,EAAqBD,EAASnP,UAC9BA,OAAmC,IAAvBoP,EAAgCnN,EAAMjC,UAAYoP,EAC9DC,EAAoBF,EAASnM,SAC7BA,OAAiC,IAAtBqM,EAA+BpN,EAAMe,SAAWqM,EAC3DC,EAAoBH,EAASI,SAC7BA,OAAiC,IAAtBD,EAA+B7P,EAAkB6P,EAC5DE,EAAwBL,EAASM,aACjCA,OAAyC,IAA1BD,EAAmC9P,EAAW8P,EAC7DE,EAAwBP,EAASQ,eACjCA,OAA2C,IAA1BD,EAAmC/P,EAAS+P,EAC7DE,EAAuBT,EAASU,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBX,EAAS3G,QAC5BA,OAA+B,IAArBsH,EAA8B,EAAIA,EAC5ChI,EAAgBD,EAAsC,iBAAZW,EAAuBA,EAAUT,EAAgBS,EAASlJ,IACpGyQ,EAAaJ,IAAmBhQ,EAASC,EAAYD,EACrDqK,EAAa/H,EAAMwG,MAAM9I,OACzBkB,EAAUoB,EAAME,SAAS0N,EAAcE,EAAaJ,GACpDK,EJkBS,SAAyBnP,EAAS0O,EAAUE,EAAczM,GACvE,IAAIiN,EAAmC,oBAAbV,EAlB5B,SAA4B1O,GAC1B,IAAIpB,EAAkBgO,GAAkB5G,EAAchG,IAElDqP,EADoB,CAAC,WAAY,SAASzJ,QAAQ,EAAiB5F,GAASiC,WAAa,GACnDtB,EAAcX,GAAWoG,EAAgBpG,GAAWA,EAE9F,OAAKS,EAAU4O,GAKRzQ,EAAgBgI,QAAO,SAAUyG,GACtC,OAAO5M,EAAU4M,IAAmBpI,EAASoI,EAAgBgC,IAAmD,SAAhCtP,EAAYsN,EAC9F,IANS,EAOX,CAK6DiC,CAAmBtP,GAAW,GAAGZ,OAAOsP,GAC/F9P,EAAkB,GAAGQ,OAAOgQ,EAAqB,CAACR,IAClDW,EAAsB3Q,EAAgB,GACtC4Q,EAAe5Q,EAAgBK,QAAO,SAAUwQ,EAASpC,GAC3D,IAAIF,EAAOC,GAA2BpN,EAASqN,EAAgBlL,GAK/D,OAJAsN,EAAQrN,IAAM,EAAI+K,EAAK/K,IAAKqN,EAAQrN,KACpCqN,EAAQnR,MAAQ,EAAI6O,EAAK7O,MAAOmR,EAAQnR,OACxCmR,EAAQpR,OAAS,EAAI8O,EAAK9O,OAAQoR,EAAQpR,QAC1CoR,EAAQlR,KAAO,EAAI4O,EAAK5O,KAAMkR,EAAQlR,MAC/BkR,CACT,GAAGrC,GAA2BpN,EAASuP,EAAqBpN,IAK5D,OAJAqN,EAAalL,MAAQkL,EAAalR,MAAQkR,EAAajR,KACvDiR,EAAahL,OAASgL,EAAanR,OAASmR,EAAapN,IACzDoN,EAAa7K,EAAI6K,EAAajR,KAC9BiR,EAAa3K,EAAI2K,EAAapN,IACvBoN,CACT,CInC2BE,CAAgBjP,EAAUT,GAAWA,EAAUA,EAAQ2P,gBAAkB9J,EAAmBzE,EAAME,SAASxC,QAAS4P,EAAUE,EAAczM,GACjKyN,EAAsB7L,EAAsB3C,EAAME,SAASvC,WAC3DuI,EAAgB2G,GAAe,CACjClP,UAAW6Q,EACX5P,QAASmJ,EACThH,SAAU,WACVhD,UAAWA,IAET0Q,EAAmB3C,GAAiBzP,OAAOkE,OAAO,CAAC,EAAGwH,EAAY7B,IAClEwI,EAAoBhB,IAAmBhQ,EAAS+Q,EAAmBD,EAGnEG,EAAkB,CACpB3N,IAAK+M,EAAmB/M,IAAM0N,EAAkB1N,IAAM6E,EAAc7E,IACpE/D,OAAQyR,EAAkBzR,OAAS8Q,EAAmB9Q,OAAS4I,EAAc5I,OAC7EE,KAAM4Q,EAAmB5Q,KAAOuR,EAAkBvR,KAAO0I,EAAc1I,KACvED,MAAOwR,EAAkBxR,MAAQ6Q,EAAmB7Q,MAAQ2I,EAAc3I,OAExE0R,EAAa5O,EAAMmG,cAAckB,OAErC,GAAIqG,IAAmBhQ,GAAUkR,EAAY,CAC3C,IAAIvH,EAASuH,EAAW7Q,GACxB1B,OAAO4D,KAAK0O,GAAiBxO,SAAQ,SAAUhE,GAC7C,IAAI0S,EAAW,CAAC3R,EAAOD,GAAQuH,QAAQrI,IAAQ,EAAI,GAAK,EACpDkK,EAAO,CAAC,EAAKpJ,GAAQuH,QAAQrI,IAAQ,EAAI,IAAM,IACnDwS,EAAgBxS,IAAQkL,EAAOhB,GAAQwI,CACzC,GACF,CAEA,OAAOF,CACT,CCyEA,UACEhP,KAAM,OACNC,SAAS,EACTC,MAAO,OACPC,GA5HF,SAAcC,GACZ,IAAIC,EAAQD,EAAKC,MACbc,EAAUf,EAAKe,QACfnB,EAAOI,EAAKJ,KAEhB,IAAIK,EAAMmG,cAAcxG,GAAMmP,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBjO,EAAQkM,SAC5BgC,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBnO,EAAQoO,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8BtO,EAAQuO,mBACtC9I,EAAUzF,EAAQyF,QAClB+G,EAAWxM,EAAQwM,SACnBE,EAAe1M,EAAQ0M,aACvBI,EAAc9M,EAAQ8M,YACtB0B,EAAwBxO,EAAQyO,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwB1O,EAAQ0O,sBAChCC,EAAqBzP,EAAMc,QAAQ/C,UACnCqI,EAAgB9E,EAAiBmO,GAEjCJ,EAAqBD,IADHhJ,IAAkBqJ,GACqCF,EAjC/E,SAAuCxR,GACrC,GAAIuD,EAAiBvD,KAAeX,EAClC,MAAO,GAGT,IAAIsS,EAAoBnF,GAAqBxM,GAC7C,MAAO,CAAC2M,GAA8B3M,GAAY2R,EAAmBhF,GAA8BgF,GACrG,CA0B6IC,CAA8BF,GAA3E,CAAClF,GAAqBkF,KAChHG,EAAa,CAACH,GAAoBzR,OAAOqR,GAAoBxR,QAAO,SAAUC,EAAKC,GACrF,OAAOD,EAAIE,OAAOsD,EAAiBvD,KAAeX,ECvCvC,SAA8B4C,EAAOc,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIoM,EAAWpM,EACX/C,EAAYmP,EAASnP,UACrBuP,EAAWJ,EAASI,SACpBE,EAAeN,EAASM,aACxBjH,EAAU2G,EAAS3G,QACnBgJ,EAAiBrC,EAASqC,eAC1BM,EAAwB3C,EAASsC,sBACjCA,OAAkD,IAA1BK,EAAmC,EAAgBA,EAC3E7H,EAAYL,EAAa5J,GACzB6R,EAAa5H,EAAYuH,EAAiB3R,EAAsBA,EAAoB4H,QAAO,SAAUzH,GACvG,OAAO4J,EAAa5J,KAAeiK,CACrC,IAAK3K,EACDyS,EAAoBF,EAAWpK,QAAO,SAAUzH,GAClD,OAAOyR,EAAsBhL,QAAQzG,IAAc,CACrD,IAEiC,IAA7B+R,EAAkBC,SACpBD,EAAoBF,GAQtB,IAAII,EAAYF,EAAkBjS,QAAO,SAAUC,EAAKC,GAOtD,OANAD,EAAIC,GAAakP,GAAejN,EAAO,CACrCjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdjH,QAASA,IACRjF,EAAiBvD,IACbD,CACT,GAAG,CAAC,GACJ,OAAOzB,OAAO4D,KAAK+P,GAAWC,MAAK,SAAUC,EAAGC,GAC9C,OAAOH,EAAUE,GAAKF,EAAUG,EAClC,GACF,CDH6DC,CAAqBpQ,EAAO,CACnFjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdjH,QAASA,EACTgJ,eAAgBA,EAChBC,sBAAuBA,IACpBzR,EACP,GAAG,IACCsS,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzB4S,EAAY,IAAIC,IAChBC,GAAqB,EACrBC,EAAwBb,EAAW,GAE9Bc,EAAI,EAAGA,EAAId,EAAWG,OAAQW,IAAK,CAC1C,IAAI3S,EAAY6R,EAAWc,GAEvBC,EAAiBrP,EAAiBvD,GAElC6S,EAAmBjJ,EAAa5J,KAAeT,EAC/CuT,EAAa,CAAC,EAAK5T,GAAQuH,QAAQmM,IAAmB,EACtDrK,EAAMuK,EAAa,QAAU,SAC7B1F,EAAW8B,GAAejN,EAAO,CACnCjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdI,YAAaA,EACbrH,QAASA,IAEPuK,EAAoBD,EAAaD,EAAmB1T,EAAQC,EAAOyT,EAAmB3T,EAAS,EAE/FoT,EAAc/J,GAAOyB,EAAWzB,KAClCwK,EAAoBvG,GAAqBuG,IAG3C,IAAIC,EAAmBxG,GAAqBuG,GACxCE,EAAS,GAUb,GARIhC,GACFgC,EAAOC,KAAK9F,EAASwF,IAAmB,GAGtCxB,GACF6B,EAAOC,KAAK9F,EAAS2F,IAAsB,EAAG3F,EAAS4F,IAAqB,GAG1EC,EAAOE,OAAM,SAAUC,GACzB,OAAOA,CACT,IAAI,CACFV,EAAwB1S,EACxByS,GAAqB,EACrB,KACF,CAEAF,EAAUc,IAAIrT,EAAWiT,EAC3B,CAEA,GAAIR,EAqBF,IAnBA,IAEIa,EAAQ,SAAeC,GACzB,IAAIC,EAAmB3B,EAAW4B,MAAK,SAAUzT,GAC/C,IAAIiT,EAASV,EAAU9T,IAAIuB,GAE3B,GAAIiT,EACF,OAAOA,EAAOS,MAAM,EAAGH,GAAIJ,OAAM,SAAUC,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAII,EAEF,OADAd,EAAwBc,EACjB,OAEX,EAESD,EAnBY/B,EAAiB,EAAI,EAmBZ+B,EAAK,GAGpB,UAFFD,EAAMC,GADmBA,KAOpCtR,EAAMjC,YAAc0S,IACtBzQ,EAAMmG,cAAcxG,GAAMmP,OAAQ,EAClC9O,EAAMjC,UAAY0S,EAClBzQ,EAAM0R,OAAQ,EA5GhB,CA8GF,EAQEhK,iBAAkB,CAAC,UACnBgC,KAAM,CACJoF,OAAO,IE7IX,SAAS6C,GAAexG,EAAUY,EAAM6F,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBrO,EAAG,EACHE,EAAG,IAIA,CACLzC,IAAKmK,EAASnK,IAAM+K,EAAK3I,OAASwO,EAAiBnO,EACnDvG,MAAOiO,EAASjO,MAAQ6O,EAAK7I,MAAQ0O,EAAiBrO,EACtDtG,OAAQkO,EAASlO,OAAS8O,EAAK3I,OAASwO,EAAiBnO,EACzDtG,KAAMgO,EAAShO,KAAO4O,EAAK7I,MAAQ0O,EAAiBrO,EAExD,CAEA,SAASsO,GAAsB1G,GAC7B,MAAO,CAAC,EAAKjO,EAAOD,EAAQE,GAAM2U,MAAK,SAAUC,GAC/C,OAAO5G,EAAS4G,IAAS,CAC3B,GACF,CA+BA,UACEpS,KAAM,OACNC,SAAS,EACTC,MAAO,OACP6H,iBAAkB,CAAC,mBACnB5H,GAlCF,SAAcC,GACZ,IAAIC,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KACZ0Q,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzBkU,EAAmB5R,EAAMmG,cAAc6L,gBACvCC,EAAoBhF,GAAejN,EAAO,CAC5C0N,eAAgB,cAEdwE,EAAoBjF,GAAejN,EAAO,CAC5C4N,aAAa,IAEXuE,EAA2BR,GAAeM,EAAmB5B,GAC7D+B,EAAsBT,GAAeO,EAAmBnK,EAAY6J,GACpES,EAAoBR,GAAsBM,GAC1CG,EAAmBT,GAAsBO,GAC7CpS,EAAMmG,cAAcxG,GAAQ,CAC1BwS,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBtS,EAAMM,WAAW5C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMM,WAAW5C,OAAQ,CACnE,+BAAgC2U,EAChC,sBAAuBC,GAE3B,GCJA,IACE3S,KAAM,SACNC,SAAS,EACTC,MAAO,OACPwB,SAAU,CAAC,iBACXvB,GA5BF,SAAgBa,GACd,IAAIX,EAAQW,EAAMX,MACdc,EAAUH,EAAMG,QAChBnB,EAAOgB,EAAMhB,KACb4S,EAAkBzR,EAAQuG,OAC1BA,OAA6B,IAApBkL,EAA6B,CAAC,EAAG,GAAKA,EAC/C7I,EAAO,UAAkB,SAAU5L,EAAKC,GAE1C,OADAD,EAAIC,GA5BD,SAAiCA,EAAWyI,EAAOa,GACxD,IAAIjB,EAAgB9E,EAAiBvD,GACjCyU,EAAiB,CAACrV,EAAM,GAAKqH,QAAQ4B,IAAkB,GAAK,EAAI,EAEhErG,EAAyB,mBAAXsH,EAAwBA,EAAOhL,OAAOkE,OAAO,CAAC,EAAGiG,EAAO,CACxEzI,UAAWA,KACPsJ,EACFoL,EAAW1S,EAAK,GAChB2S,EAAW3S,EAAK,GAIpB,OAFA0S,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAACrV,EAAMD,GAAOsH,QAAQ4B,IAAkB,EAAI,CACjD7C,EAAGmP,EACHjP,EAAGgP,GACD,CACFlP,EAAGkP,EACHhP,EAAGiP,EAEP,CASqBC,CAAwB5U,EAAWiC,EAAMwG,MAAOa,GAC1DvJ,CACT,GAAG,CAAC,GACA8U,EAAwBlJ,EAAK1J,EAAMjC,WACnCwF,EAAIqP,EAAsBrP,EAC1BE,EAAImP,EAAsBnP,EAEW,MAArCzD,EAAMmG,cAAcD,gBACtBlG,EAAMmG,cAAcD,cAAc3C,GAAKA,EACvCvD,EAAMmG,cAAcD,cAAczC,GAAKA,GAGzCzD,EAAMmG,cAAcxG,GAAQ+J,CAC9B,GC1BA,IACE/J,KAAM,gBACNC,SAAS,EACTC,MAAO,OACPC,GApBF,SAAuBC,GACrB,IAAIC,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KAKhBK,EAAMmG,cAAcxG,GAAQkN,GAAe,CACzClP,UAAWqC,EAAMwG,MAAM7I,UACvBiB,QAASoB,EAAMwG,MAAM9I,OACrBqD,SAAU,WACVhD,UAAWiC,EAAMjC,WAErB,EAQE2L,KAAM,CAAC,GCgHT,IACE/J,KAAM,kBACNC,SAAS,EACTC,MAAO,OACPC,GA/HF,SAAyBC,GACvB,IAAIC,EAAQD,EAAKC,MACbc,EAAUf,EAAKe,QACfnB,EAAOI,EAAKJ,KACZoP,EAAoBjO,EAAQkM,SAC5BgC,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBnO,EAAQoO,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrD3B,EAAWxM,EAAQwM,SACnBE,EAAe1M,EAAQ0M,aACvBI,EAAc9M,EAAQ8M,YACtBrH,EAAUzF,EAAQyF,QAClBsM,EAAkB/R,EAAQgS,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBjS,EAAQkS,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtD5H,EAAW8B,GAAejN,EAAO,CACnCsN,SAAUA,EACVE,aAAcA,EACdjH,QAASA,EACTqH,YAAaA,IAEXxH,EAAgB9E,EAAiBtB,EAAMjC,WACvCiK,EAAYL,EAAa3H,EAAMjC,WAC/BkV,GAAmBjL,EACnBgF,EAAWtH,EAAyBU,GACpC8I,ECrCY,MDqCSlC,ECrCH,IAAM,IDsCxB9G,EAAgBlG,EAAMmG,cAAcD,cACpCmK,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzBwV,EAA4C,mBAAjBF,EAA8BA,EAAa3W,OAAOkE,OAAO,CAAC,EAAGP,EAAMwG,MAAO,CACvGzI,UAAWiC,EAAMjC,aACbiV,EACFG,EAA2D,iBAAtBD,EAAiC,CACxElG,SAAUkG,EACVhE,QAASgE,GACP7W,OAAOkE,OAAO,CAChByM,SAAU,EACVkC,QAAS,GACRgE,GACCE,EAAsBpT,EAAMmG,cAAckB,OAASrH,EAAMmG,cAAckB,OAAOrH,EAAMjC,WAAa,KACjG2L,EAAO,CACTnG,EAAG,EACHE,EAAG,GAGL,GAAKyC,EAAL,CAIA,GAAI8I,EAAe,CACjB,IAAIqE,EAEAC,EAAwB,MAAbtG,EAAmB,EAAM7P,EACpCoW,EAAuB,MAAbvG,EAAmB/P,EAASC,EACtCoJ,EAAmB,MAAb0G,EAAmB,SAAW,QACpC3F,EAASnB,EAAc8G,GACvBtL,EAAM2F,EAAS8D,EAASmI,GACxB7R,EAAM4F,EAAS8D,EAASoI,GACxBC,EAAWV,GAAU/K,EAAWzB,GAAO,EAAI,EAC3CmN,EAASzL,IAAc1K,EAAQ+S,EAAc/J,GAAOyB,EAAWzB,GAC/DoN,EAAS1L,IAAc1K,GAASyK,EAAWzB,IAAQ+J,EAAc/J,GAGjEL,EAAejG,EAAME,SAASgB,MAC9BwF,EAAYoM,GAAU7M,EAAetC,EAAcsC,GAAgB,CACrE/C,MAAO,EACPE,OAAQ,GAENuQ,GAAqB3T,EAAMmG,cAAc,oBAAsBnG,EAAMmG,cAAc,oBAAoBI,QxBhFtG,CACLvF,IAAK,EACL9D,MAAO,EACPD,OAAQ,EACRE,KAAM,GwB6EFyW,GAAkBD,GAAmBL,GACrCO,GAAkBF,GAAmBJ,GAMrCO,GAAWnO,EAAO,EAAG0K,EAAc/J,GAAMI,EAAUJ,IACnDyN,GAAYd,EAAkB5C,EAAc/J,GAAO,EAAIkN,EAAWM,GAAWF,GAAkBT,EAA4BnG,SAAWyG,EAASK,GAAWF,GAAkBT,EAA4BnG,SACxMgH,GAAYf,GAAmB5C,EAAc/J,GAAO,EAAIkN,EAAWM,GAAWD,GAAkBV,EAA4BnG,SAAW0G,EAASI,GAAWD,GAAkBV,EAA4BnG,SACzMjG,GAAoB/G,EAAME,SAASgB,OAAS8D,EAAgBhF,EAAME,SAASgB,OAC3E+S,GAAelN,GAAiC,MAAbiG,EAAmBjG,GAAkBsF,WAAa,EAAItF,GAAkBuF,YAAc,EAAI,EAC7H4H,GAAwH,OAAjGb,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBpG,IAAqBqG,EAAwB,EAEvJc,GAAY9M,EAAS2M,GAAYE,GACjCE,GAAkBzO,EAAOmN,EAAS,EAAQpR,EAF9B2F,EAAS0M,GAAYG,GAAsBD,IAEKvS,EAAK2F,EAAQyL,EAAS,EAAQrR,EAAK0S,IAAa1S,GAChHyE,EAAc8G,GAAYoH,GAC1B1K,EAAKsD,GAAYoH,GAAkB/M,CACrC,CAEA,GAAI8H,EAAc,CAChB,IAAIkF,GAEAC,GAAyB,MAAbtH,EAAmB,EAAM7P,EAErCoX,GAAwB,MAAbvH,EAAmB/P,EAASC,EAEvCsX,GAAUtO,EAAcgJ,GAExBuF,GAAmB,MAAZvF,EAAkB,SAAW,QAEpCwF,GAAOF,GAAUrJ,EAASmJ,IAE1BK,GAAOH,GAAUrJ,EAASoJ,IAE1BK,IAAuD,IAAxC,CAAC,EAAKzX,GAAMqH,QAAQ4B,GAEnCyO,GAAyH,OAAjGR,GAAgD,MAAvBjB,OAA8B,EAASA,EAAoBlE,IAAoBmF,GAAyB,EAEzJS,GAAaF,GAAeF,GAAOF,GAAUnE,EAAcoE,IAAQ1M,EAAW0M,IAAQI,GAAuB1B,EAA4BjE,QAEzI6F,GAAaH,GAAeJ,GAAUnE,EAAcoE,IAAQ1M,EAAW0M,IAAQI,GAAuB1B,EAA4BjE,QAAUyF,GAE5IK,GAAmBlC,GAAU8B,G1BzH9B,SAAwBlT,EAAK1E,EAAOyE,GACzC,IAAIwT,EAAItP,EAAOjE,EAAK1E,EAAOyE,GAC3B,OAAOwT,EAAIxT,EAAMA,EAAMwT,CACzB,C0BsHoDC,CAAeJ,GAAYN,GAASO,IAAcpP,EAAOmN,EAASgC,GAAaJ,GAAMF,GAAS1B,EAASiC,GAAaJ,IAEpKzO,EAAcgJ,GAAW8F,GACzBtL,EAAKwF,GAAW8F,GAAmBR,EACrC,CAEAxU,EAAMmG,cAAcxG,GAAQ+J,CAvE5B,CAwEF,EAQEhC,iBAAkB,CAAC,WE1HN,SAASyN,GAAiBC,EAAyBrQ,EAAcsD,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICnBoCrJ,ECJOJ,EFuBvCyW,EAA0B9V,EAAcwF,GACxCuQ,EAAuB/V,EAAcwF,IAf3C,SAAyBnG,GACvB,IAAImN,EAAOnN,EAAQ+D,wBACfI,EAASpB,EAAMoK,EAAK7I,OAAStE,EAAQqE,aAAe,EACpDD,EAASrB,EAAMoK,EAAK3I,QAAUxE,EAAQuE,cAAgB,EAC1D,OAAkB,IAAXJ,GAA2B,IAAXC,CACzB,CAU4DuS,CAAgBxQ,GACtEJ,EAAkBF,EAAmBM,GACrCgH,EAAOpJ,EAAsByS,EAAyBE,EAAsBjN,GAC5EyB,EAAS,CACXc,WAAY,EACZE,UAAW,GAET7C,EAAU,CACZ1E,EAAG,EACHE,EAAG,GAkBL,OAfI4R,IAA4BA,IAA4BhN,MACxB,SAA9B1J,EAAYoG,IAChBkG,GAAetG,MACbmF,GCnCgC9K,EDmCT+F,KClCdhG,EAAUC,IAAUO,EAAcP,GCJxC,CACL4L,YAFyChM,EDQbI,GCNR4L,WACpBE,UAAWlM,EAAQkM,WDGZH,GAAgB3L,IDoCnBO,EAAcwF,KAChBkD,EAAUtF,EAAsBoC,GAAc,IACtCxB,GAAKwB,EAAauH,WAC1BrE,EAAQxE,GAAKsB,EAAasH,WACjB1H,IACTsD,EAAQ1E,EAAIyH,GAAoBrG,KAI7B,CACLpB,EAAGwI,EAAK5O,KAAO2M,EAAOc,WAAa3C,EAAQ1E,EAC3CE,EAAGsI,EAAK/K,IAAM8I,EAAOgB,UAAY7C,EAAQxE,EACzCP,MAAO6I,EAAK7I,MACZE,OAAQ2I,EAAK3I,OAEjB,CGvDA,SAASoS,GAAMC,GACb,IAAItT,EAAM,IAAIoO,IACVmF,EAAU,IAAIC,IACdC,EAAS,GAKb,SAAS3F,EAAK4F,GACZH,EAAQI,IAAID,EAASlW,MACN,GAAG3B,OAAO6X,EAASxU,UAAY,GAAIwU,EAASnO,kBAAoB,IACtEvH,SAAQ,SAAU4V,GACzB,IAAKL,EAAQM,IAAID,GAAM,CACrB,IAAIE,EAAc9T,EAAI3F,IAAIuZ,GAEtBE,GACFhG,EAAKgG,EAET,CACF,IACAL,EAAO3E,KAAK4E,EACd,CAQA,OAzBAJ,EAAUtV,SAAQ,SAAU0V,GAC1B1T,EAAIiP,IAAIyE,EAASlW,KAAMkW,EACzB,IAiBAJ,EAAUtV,SAAQ,SAAU0V,GACrBH,EAAQM,IAAIH,EAASlW,OAExBsQ,EAAK4F,EAET,IACOD,CACT,CClBA,IAEIM,GAAkB,CACpBnY,UAAW,SACX0X,UAAW,GACX1U,SAAU,YAGZ,SAASoV,KACP,IAAK,IAAI1B,EAAO2B,UAAUrG,OAAQsG,EAAO,IAAIpU,MAAMwS,GAAO6B,EAAO,EAAGA,EAAO7B,EAAM6B,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzB,OAAQD,EAAKvE,MAAK,SAAUlT,GAC1B,QAASA,GAAoD,mBAAlCA,EAAQ+D,sBACrC,GACF,CAEO,SAAS4T,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCV,GAAkBU,EAC3E,OAAO,SAAsBjZ,EAAWD,EAAQoD,QAC9B,IAAZA,IACFA,EAAU+V,GAGZ,IC/C6B/W,EAC3BgX,ED8CE9W,EAAQ,CACVjC,UAAW,SACXgZ,iBAAkB,GAClBjW,QAASzE,OAAOkE,OAAO,CAAC,EAAG2V,GAAiBW,GAC5C1Q,cAAe,CAAC,EAChBjG,SAAU,CACRvC,UAAWA,EACXD,OAAQA,GAEV4C,WAAY,CAAC,EACbD,OAAQ,CAAC,GAEP2W,EAAmB,GACnBC,GAAc,EACdrN,EAAW,CACb5J,MAAOA,EACPkX,WAAY,SAAoBC,GAC9B,IAAIrW,EAAsC,mBAArBqW,EAAkCA,EAAiBnX,EAAMc,SAAWqW,EACzFC,IACApX,EAAMc,QAAUzE,OAAOkE,OAAO,CAAC,EAAGsW,EAAgB7W,EAAMc,QAASA,GACjEd,EAAMiK,cAAgB,CACpBtM,UAAW0B,EAAU1B,GAAa6N,GAAkB7N,GAAaA,EAAU4Q,eAAiB/C,GAAkB7N,EAAU4Q,gBAAkB,GAC1I7Q,OAAQ8N,GAAkB9N,IAI5B,IEzE4B+X,EAC9B4B,EFwEMN,EDvCG,SAAwBtB,GAErC,IAAIsB,EAAmBvB,GAAMC,GAE7B,OAAO/W,EAAeb,QAAO,SAAUC,EAAK+B,GAC1C,OAAO/B,EAAIE,OAAO+Y,EAAiBvR,QAAO,SAAUqQ,GAClD,OAAOA,EAAShW,QAAUA,CAC5B,IACF,GAAG,GACL,CC8B+ByX,EEzEK7B,EFyEsB,GAAGzX,OAAO2Y,EAAkB3W,EAAMc,QAAQ2U,WExE9F4B,EAAS5B,EAAU5X,QAAO,SAAUwZ,EAAQE,GAC9C,IAAIC,EAAWH,EAAOE,EAAQ5X,MAK9B,OAJA0X,EAAOE,EAAQ5X,MAAQ6X,EAAWnb,OAAOkE,OAAO,CAAC,EAAGiX,EAAUD,EAAS,CACrEzW,QAASzE,OAAOkE,OAAO,CAAC,EAAGiX,EAAS1W,QAASyW,EAAQzW,SACrD4I,KAAMrN,OAAOkE,OAAO,CAAC,EAAGiX,EAAS9N,KAAM6N,EAAQ7N,QAC5C6N,EACEF,CACT,GAAG,CAAC,GAEGhb,OAAO4D,KAAKoX,GAAQlV,KAAI,SAAUhG,GACvC,OAAOkb,EAAOlb,EAChB,MFsGM,OAvCA6D,EAAM+W,iBAAmBA,EAAiBvR,QAAO,SAAUiS,GACzD,OAAOA,EAAE7X,OACX,IAoJFI,EAAM+W,iBAAiB5W,SAAQ,SAAUqI,GACvC,IAAI7I,EAAO6I,EAAM7I,KACb+X,EAAgBlP,EAAM1H,QACtBA,OAA4B,IAAlB4W,EAA2B,CAAC,EAAIA,EAC1ChX,EAAS8H,EAAM9H,OAEnB,GAAsB,mBAAXA,EAAuB,CAChC,IAAIiX,EAAYjX,EAAO,CACrBV,MAAOA,EACPL,KAAMA,EACNiK,SAAUA,EACV9I,QAASA,IAKXkW,EAAiB/F,KAAK0G,GAFT,WAAmB,EAGlC,CACF,IAjIS/N,EAASQ,QAClB,EAMAwN,YAAa,WACX,IAAIX,EAAJ,CAIA,IAAIY,EAAkB7X,EAAME,SACxBvC,EAAYka,EAAgBla,UAC5BD,EAASma,EAAgBna,OAG7B,GAAKyY,GAAiBxY,EAAWD,GAAjC,CASAsC,EAAMwG,MAAQ,CACZ7I,UAAWwX,GAAiBxX,EAAWqH,EAAgBtH,GAAoC,UAA3BsC,EAAMc,QAAQC,UAC9ErD,OAAQiG,EAAcjG,IAOxBsC,EAAM0R,OAAQ,EACd1R,EAAMjC,UAAYiC,EAAMc,QAAQ/C,UAKhCiC,EAAM+W,iBAAiB5W,SAAQ,SAAU0V,GACvC,OAAO7V,EAAMmG,cAAc0P,EAASlW,MAAQtD,OAAOkE,OAAO,CAAC,EAAGsV,EAASnM,KACzE,IAGA,IAFA,IAESoO,EAAQ,EAAGA,EAAQ9X,EAAM+W,iBAAiBhH,OAAQ+H,IAUzD,IAAoB,IAAhB9X,EAAM0R,MAAV,CAMA,IAAIqG,EAAwB/X,EAAM+W,iBAAiBe,GAC/ChY,EAAKiY,EAAsBjY,GAC3BkY,EAAyBD,EAAsBjX,QAC/CoM,OAAsC,IAA3B8K,EAAoC,CAAC,EAAIA,EACpDrY,EAAOoY,EAAsBpY,KAEf,mBAAPG,IACTE,EAAQF,EAAG,CACTE,MAAOA,EACPc,QAASoM,EACTvN,KAAMA,EACNiK,SAAUA,KACN5J,EAdR,MAHEA,EAAM0R,OAAQ,EACdoG,GAAS,CAnCb,CAbA,CAmEF,EAGA1N,QClM2BtK,EDkMV,WACf,OAAO,IAAImY,SAAQ,SAAUC,GAC3BtO,EAASgO,cACTM,EAAQlY,EACV,GACF,ECrMG,WAUL,OATK8W,IACHA,EAAU,IAAImB,SAAQ,SAAUC,GAC9BD,QAAQC,UAAUC,MAAK,WACrBrB,OAAUsB,EACVF,EAAQpY,IACV,GACF,KAGKgX,CACT,GD2LIuB,QAAS,WACPjB,IACAH,GAAc,CAChB,GAGF,IAAKd,GAAiBxY,EAAWD,GAK/B,OAAOkM,EAmCT,SAASwN,IACPJ,EAAiB7W,SAAQ,SAAUL,GACjC,OAAOA,GACT,IACAkX,EAAmB,EACrB,CAEA,OAvCApN,EAASsN,WAAWpW,GAASqX,MAAK,SAAUnY,IACrCiX,GAAenW,EAAQwX,eAC1BxX,EAAQwX,cAActY,EAE1B,IAmCO4J,CACT,CACF,CACO,IAAI2O,GAA4BhC,KGrPnC,GAA4BA,GAAgB,CAC9CI,iBAFqB,CAAC6B,GAAgB,GAAe,GAAe,EAAa,GAAQ,GAAM,GAAiB,EAAO,MCJrH,GAA4BjC,GAAgB,CAC9CI,iBAFqB,CAAC6B,GAAgB,GAAe,GAAe,KCQtE,MAEMC,GAAiB,gBAsBjBC,GAAc9Z,IAClB,IAAI+Z,EAAW/Z,EAAQga,aAAa,kBAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAIE,EAAgBja,EAAQga,aAAa,QAKzC,IAAKC,IAAkBA,EAAcC,SAAS,OAASD,EAAcE,WAAW,KAC9E,OAAO,KAILF,EAAcC,SAAS,OAASD,EAAcE,WAAW,OAC3DF,EAAgB,IAAIA,EAActX,MAAM,KAAK,MAG/CoX,EAAWE,GAAmC,MAAlBA,EAAwBA,EAAcG,OAAS,IAC7E,CAEA,OAAOL,CAAQ,EAGXM,GAAyBra,IAC7B,MAAM+Z,EAAWD,GAAY9Z,GAE7B,OAAI+Z,GACKjU,SAAS+C,cAAckR,GAAYA,EAGrC,IAAI,EAGPO,GAAyBta,IAC7B,MAAM+Z,EAAWD,GAAY9Z,GAC7B,OAAO+Z,EAAWjU,SAAS+C,cAAckR,GAAY,IAAI,EA0BrDQ,GAAuBva,IAC3BA,EAAQwa,cAAc,IAAIC,MAAMZ,IAAgB,EAG5C,GAAYa,MACXA,GAA4B,iBAAXA,UAIO,IAAlBA,EAAOC,SAChBD,EAASA,EAAO,SAGgB,IAApBA,EAAOE,UAGjBC,GAAaH,GAEb,GAAUA,GACLA,EAAOC,OAASD,EAAO,GAAKA,EAGf,iBAAXA,GAAuBA,EAAOvJ,OAAS,EACzCrL,SAAS+C,cAAc6R,GAGzB,KAGHI,GAAY9a,IAChB,IAAK,GAAUA,IAAgD,IAApCA,EAAQ+a,iBAAiB5J,OAClD,OAAO,EAGT,MAAM6J,EAAgF,YAA7DtV,iBAAiB1F,GAASib,iBAAiB,cAE9DC,EAAgBlb,EAAQmb,QAAQ,uBAEtC,IAAKD,EACH,OAAOF,EAGT,GAAIE,IAAkBlb,EAAS,CAC7B,MAAMob,EAAUpb,EAAQmb,QAAQ,WAEhC,GAAIC,GAAWA,EAAQ5V,aAAe0V,EACpC,OAAO,EAGT,GAAgB,OAAZE,EACF,OAAO,CAEX,CAEA,OAAOJ,CAAgB,EAGnBK,GAAarb,IACZA,GAAWA,EAAQ4a,WAAaU,KAAKC,gBAItCvb,EAAQwb,UAAUvW,SAAS,mBAIC,IAArBjF,EAAQyb,SACVzb,EAAQyb,SAGVzb,EAAQ0b,aAAa,aAAoD,UAArC1b,EAAQga,aAAa,aAG5D2B,GAAiB3b,IACrB,IAAK8F,SAASC,gBAAgB6V,aAC5B,OAAO,KAIT,GAAmC,mBAAxB5b,EAAQqF,YAA4B,CAC7C,MAAMwW,EAAO7b,EAAQqF,cACrB,OAAOwW,aAAgB/a,WAAa+a,EAAO,IAC7C,CAEA,OAAI7b,aAAmBc,WACdd,EAIJA,EAAQwF,WAINmW,GAAe3b,EAAQwF,YAHrB,IAGgC,EAGrCsW,GAAO,OAWPC,GAAS/b,IACbA,EAAQuE,YAAY,EAGhByX,GAAY,IACZ3b,OAAO4b,SAAWnW,SAAS6G,KAAK+O,aAAa,qBACxCrb,OAAO4b,OAGT,KAGHC,GAA4B,GAmB5BC,GAAQ,IAAuC,QAAjCrW,SAASC,gBAAgBqW,IAEvCC,GAAqBC,IAnBAC,QAoBN,KACjB,MAAMC,EAAIR,KAGV,GAAIQ,EAAG,CACL,MAAMzb,EAAOub,EAAOG,KACdC,EAAqBF,EAAEtb,GAAGH,GAChCyb,EAAEtb,GAAGH,GAAQub,EAAOK,gBACpBH,EAAEtb,GAAGH,GAAM6b,YAAcN,EAEzBE,EAAEtb,GAAGH,GAAM8b,WAAa,KACtBL,EAAEtb,GAAGH,GAAQ2b,EACNJ,EAAOK,gBAElB,GAjC0B,YAAxB7W,SAASgX,YAENZ,GAA0B/K,QAC7BrL,SAASyF,iBAAiB,oBAAoB,KAC5C,IAAK,MAAMgR,KAAYL,GACrBK,GACF,IAIJL,GAA0B7J,KAAKkK,IAE/BA,GAsBA,EAGEQ,GAAUR,IACU,mBAAbA,GACTA,GACF,EAGIS,GAAyB,CAACT,EAAUU,EAAmBC,GAAoB,KAC/E,IAAKA,EAEH,YADAH,GAAQR,GAIV,MACMY,EAnMiCnd,KACvC,IAAKA,EACH,OAAO,EAIT,IAAI,mBACFod,EAAkB,gBAClBC,GACEhd,OAAOqF,iBAAiB1F,GAC5B,MAAMsd,EAA0BC,OAAOC,WAAWJ,GAC5CK,EAAuBF,OAAOC,WAAWH,GAE/C,OAAKC,GAA4BG,GAKjCL,EAAqBA,EAAmBza,MAAM,KAAK,GACnD0a,EAAkBA,EAAgB1a,MAAM,KAAK,GAjFf,KAkFtB4a,OAAOC,WAAWJ,GAAsBG,OAAOC,WAAWH,KANzD,CAMoG,EA+KpFK,CAAiCT,GADlC,EAExB,IAAIU,GAAS,EAEb,MAAMC,EAAU,EACd5Q,aAEIA,IAAWiQ,IAIfU,GAAS,EACTV,EAAkBxR,oBAAoBoO,GAAgB+D,GACtDb,GAAQR,GAAS,EAGnBU,EAAkB1R,iBAAiBsO,GAAgB+D,GACnDC,YAAW,KACJF,GACHpD,GAAqB0C,EACvB,GACCE,EAAiB,EAahBW,GAAuB,CAACjR,EAAMkR,EAAeC,EAAeC,KAChE,MAAMC,EAAarR,EAAKsE,OACxB,IAAI+H,EAAQrM,EAAKjH,QAAQmY,GAGzB,OAAe,IAAX7E,GACM8E,GAAiBC,EAAiBpR,EAAKqR,EAAa,GAAKrR,EAAK,IAGxEqM,GAAS8E,EAAgB,GAAK,EAE1BC,IACF/E,GAASA,EAAQgF,GAAcA,GAG1BrR,EAAKjK,KAAKC,IAAI,EAAGD,KAAKE,IAAIoW,EAAOgF,EAAa,KAAI,EAarDC,GAAiB,qBACjBC,GAAiB,OACjBC,GAAgB,SAChBC,GAAgB,CAAC,EAEvB,IAAIC,GAAW,EACf,MAAMC,GAAe,CACnBC,WAAY,YACZC,WAAY,YAERC,GAAe,IAAI5H,IAAI,CAAC,QAAS,WAAY,UAAW,YAAa,cAAe,aAAc,iBAAkB,YAAa,WAAY,YAAa,cAAe,YAAa,UAAW,WAAY,QAAS,oBAAqB,aAAc,YAAa,WAAY,cAAe,cAAe,cAAe,YAAa,eAAgB,gBAAiB,eAAgB,gBAAiB,aAAc,QAAS,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,WAAY,OAAQ,SAAU,eAAgB,SAAU,OAAQ,mBAAoB,mBAAoB,QAAS,QAAS,WAK/lB,SAAS6H,GAAa5e,EAAS6e,GAC7B,OAAOA,GAAO,GAAGA,MAAQN,QAAgBve,EAAQue,UAAYA,IAC/D,CAEA,SAASO,GAAiB9e,GACxB,MAAM6e,EAAMD,GAAa5e,GAGzB,OAFAA,EAAQue,SAAWM,EACnBP,GAAcO,GAAOP,GAAcO,IAAQ,CAAC,EACrCP,GAAcO,EACvB,CA0CA,SAASE,GAAYC,EAAQC,EAAUC,EAAqB,MAC1D,OAAOzhB,OAAO0hB,OAAOH,GAAQpM,MAAKwM,GAASA,EAAMH,WAAaA,GAAYG,EAAMF,qBAAuBA,GACzG,CAEA,SAASG,GAAoBC,EAAmB1B,EAAS2B,GACvD,MAAMC,EAAiC,iBAAZ5B,EAErBqB,EAAWO,EAAcD,EAAqB3B,GAAW2B,EAC/D,IAAIE,EAAYC,GAAaJ,GAM7B,OAJKX,GAAavH,IAAIqI,KACpBA,EAAYH,GAGP,CAACE,EAAaP,EAAUQ,EACjC,CAEA,SAASE,GAAW3f,EAASsf,EAAmB1B,EAAS2B,EAAoBK,GAC3E,GAAiC,iBAAtBN,IAAmCtf,EAC5C,OAGF,IAAKwf,EAAaP,EAAUQ,GAAaJ,GAAoBC,EAAmB1B,EAAS2B,GAGzF,GAAID,KAAqBd,GAAc,CACrC,MAAMqB,EAAe3e,GACZ,SAAUke,GACf,IAAKA,EAAMU,eAAiBV,EAAMU,gBAAkBV,EAAMW,iBAAmBX,EAAMW,eAAe9a,SAASma,EAAMU,eAC/G,OAAO5e,EAAGjD,KAAK+hB,KAAMZ,EAEzB,EAGFH,EAAWY,EAAaZ,EAC1B,CAEA,MAAMD,EAASF,GAAiB9e,GAC1BigB,EAAWjB,EAAOS,KAAeT,EAAOS,GAAa,CAAC,GACtDS,EAAmBnB,GAAYkB,EAAUhB,EAAUO,EAAc5B,EAAU,MAEjF,GAAIsC,EAEF,YADAA,EAAiBN,OAASM,EAAiBN,QAAUA,GAIvD,MAAMf,EAAMD,GAAaK,EAAUK,EAAkB1T,QAAQuS,GAAgB,KACvEjd,EAAKse,EAzEb,SAAoCxf,EAAS+Z,EAAU7Y,GACrD,OAAO,SAAS0c,EAAQwB,GACtB,MAAMe,EAAcngB,EAAQogB,iBAAiBrG,GAE7C,IAAK,IAAI,OACP/M,GACEoS,EAAOpS,GAAUA,IAAWgT,KAAMhT,EAASA,EAAOxH,WACpD,IAAK,MAAM6a,KAAcF,EACvB,GAAIE,IAAerT,EAYnB,OARAsT,GAAWlB,EAAO,CAChBW,eAAgB/S,IAGd4Q,EAAQgC,QACVW,GAAaC,IAAIxgB,EAASof,EAAMqB,KAAM1G,EAAU7Y,GAG3CA,EAAGwf,MAAM1T,EAAQ,CAACoS,GAG/B,CACF,CAiD2BuB,CAA2B3gB,EAAS4d,EAASqB,GAvFxE,SAA0Bjf,EAASkB,GACjC,OAAO,SAAS0c,EAAQwB,GAStB,OARAkB,GAAWlB,EAAO,CAChBW,eAAgB/f,IAGd4d,EAAQgC,QACVW,GAAaC,IAAIxgB,EAASof,EAAMqB,KAAMvf,GAGjCA,EAAGwf,MAAM1gB,EAAS,CAACof,GAC5B,CACF,CA2EoFwB,CAAiB5gB,EAASif,GAC5G/d,EAAGge,mBAAqBM,EAAc5B,EAAU,KAChD1c,EAAG+d,SAAWA,EACd/d,EAAG0e,OAASA,EACZ1e,EAAGqd,SAAWM,EACdoB,EAASpB,GAAO3d,EAChBlB,EAAQuL,iBAAiBkU,EAAWve,EAAIse,EAC1C,CAEA,SAASqB,GAAc7gB,EAASgf,EAAQS,EAAW7B,EAASsB,GAC1D,MAAMhe,EAAK6d,GAAYC,EAAOS,GAAY7B,EAASsB,GAE9Che,IAILlB,EAAQyL,oBAAoBgU,EAAWve,EAAI4f,QAAQ5B,WAC5CF,EAAOS,GAAWve,EAAGqd,UAC9B,CAEA,SAASwC,GAAyB/gB,EAASgf,EAAQS,EAAWuB,GAC5D,MAAMC,EAAoBjC,EAAOS,IAAc,CAAC,EAEhD,IAAK,MAAMyB,KAAczjB,OAAO4D,KAAK4f,GACnC,GAAIC,EAAWhH,SAAS8G,GAAY,CAClC,MAAM5B,EAAQ6B,EAAkBC,GAChCL,GAAc7gB,EAASgf,EAAQS,EAAWL,EAAMH,SAAUG,EAAMF,mBAClE,CAEJ,CAEA,SAASQ,GAAaN,GAGpB,OADAA,EAAQA,EAAMxT,QAAQwS,GAAgB,IAC/BI,GAAaY,IAAUA,CAChC,CAEA,MAAMmB,GAAe,CACnBY,GAAGnhB,EAASof,EAAOxB,EAAS2B,GAC1BI,GAAW3f,EAASof,EAAOxB,EAAS2B,GAAoB,EAC1D,EAEA6B,IAAIphB,EAASof,EAAOxB,EAAS2B,GAC3BI,GAAW3f,EAASof,EAAOxB,EAAS2B,GAAoB,EAC1D,EAEAiB,IAAIxgB,EAASsf,EAAmB1B,EAAS2B,GACvC,GAAiC,iBAAtBD,IAAmCtf,EAC5C,OAGF,MAAOwf,EAAaP,EAAUQ,GAAaJ,GAAoBC,EAAmB1B,EAAS2B,GACrF8B,EAAc5B,IAAcH,EAC5BN,EAASF,GAAiB9e,GAC1BihB,EAAoBjC,EAAOS,IAAc,CAAC,EAC1C6B,EAAchC,EAAkBnF,WAAW,KAEjD,QAAwB,IAAb8E,EAAX,CAUA,GAAIqC,EACF,IAAK,MAAMC,KAAgB9jB,OAAO4D,KAAK2d,GACrC+B,GAAyB/gB,EAASgf,EAAQuC,EAAcjC,EAAkBzM,MAAM,IAIpF,IAAK,MAAM2O,KAAe/jB,OAAO4D,KAAK4f,GAAoB,CACxD,MAAMC,EAAaM,EAAY5V,QAAQyS,GAAe,IAEtD,IAAKgD,GAAe/B,EAAkBpF,SAASgH,GAAa,CAC1D,MAAM9B,EAAQ6B,EAAkBO,GAChCX,GAAc7gB,EAASgf,EAAQS,EAAWL,EAAMH,SAAUG,EAAMF,mBAClE,CACF,CAfA,KARA,CAEE,IAAKzhB,OAAO4D,KAAK4f,GAAmB9P,OAClC,OAGF0P,GAAc7gB,EAASgf,EAAQS,EAAWR,EAAUO,EAAc5B,EAAU,KAE9E,CAgBF,EAEA6D,QAAQzhB,EAASof,EAAO3H,GACtB,GAAqB,iBAAV2H,IAAuBpf,EAChC,OAAO,KAGT,MAAMwc,EAAIR,KAGV,IAAI0F,EAAc,KACdC,GAAU,EACVC,GAAiB,EACjBC,GAAmB,EAJHzC,IADFM,GAAaN,IAOZ5C,IACjBkF,EAAclF,EAAE/B,MAAM2E,EAAO3H,GAC7B+E,EAAExc,GAASyhB,QAAQC,GACnBC,GAAWD,EAAYI,uBACvBF,GAAkBF,EAAYK,gCAC9BF,EAAmBH,EAAYM,sBAGjC,IAAIC,EAAM,IAAIxH,MAAM2E,EAAO,CACzBuC,UACAO,YAAY,IAgBd,OAdAD,EAAM3B,GAAW2B,EAAKxK,GAElBoK,GACFI,EAAIE,iBAGFP,GACF5hB,EAAQwa,cAAcyH,GAGpBA,EAAIJ,kBAAoBH,GAC1BA,EAAYS,iBAGPF,CACT,GAIF,SAAS3B,GAAWziB,EAAKukB,GACvB,IAAK,MAAO7kB,EAAKa,KAAUX,OAAO4kB,QAAQD,GAAQ,CAAC,GACjD,IACEvkB,EAAIN,GAAOa,CACb,CAAE,MAAOkkB,GACP7kB,OAAOC,eAAeG,EAAKN,EAAK,CAC9BglB,cAAc,EAEd3kB,IAAG,IACMQ,GAIb,CAGF,OAAOP,CACT,CAYA,MAAM2kB,GAAa,IAAI7Q,IACjB8Q,GAAO,CACXjQ,IAAIxS,EAASzC,EAAKyN,GACXwX,GAAWpL,IAAIpX,IAClBwiB,GAAWhQ,IAAIxS,EAAS,IAAI2R,KAG9B,MAAM+Q,EAAcF,GAAW5kB,IAAIoC,GAG9B0iB,EAAYtL,IAAI7Z,IAA6B,IAArBmlB,EAAYC,KAMzCD,EAAYlQ,IAAIjV,EAAKyN,GAJnB4X,QAAQC,MAAM,+EAA+Exf,MAAMyf,KAAKJ,EAAYrhB,QAAQ,MAKhI,EAEAzD,IAAG,CAACoC,EAASzC,IACPilB,GAAWpL,IAAIpX,IACVwiB,GAAW5kB,IAAIoC,GAASpC,IAAIL,IAG9B,KAGTwlB,OAAO/iB,EAASzC,GACd,IAAKilB,GAAWpL,IAAIpX,GAClB,OAGF,MAAM0iB,EAAcF,GAAW5kB,IAAIoC,GACnC0iB,EAAYM,OAAOzlB,GAEM,IAArBmlB,EAAYC,MACdH,GAAWQ,OAAOhjB,EAEtB,GAUF,SAASijB,GAAc7kB,GACrB,GAAc,SAAVA,EACF,OAAO,EAGT,GAAc,UAAVA,EACF,OAAO,EAGT,GAAIA,IAAUmf,OAAOnf,GAAOkC,WAC1B,OAAOid,OAAOnf,GAGhB,GAAc,KAAVA,GAA0B,SAAVA,EAClB,OAAO,KAGT,GAAqB,iBAAVA,EACT,OAAOA,EAGT,IACE,OAAO8kB,KAAKC,MAAMC,mBAAmBhlB,GACvC,CAAE,MAAOkkB,GACP,OAAOlkB,CACT,CACF,CAEA,SAASilB,GAAiB9lB,GACxB,OAAOA,EAAIqO,QAAQ,UAAU0X,GAAO,IAAIA,EAAIpjB,iBAC9C,CAEA,MAAMqjB,GAAc,CAClBC,iBAAiBxjB,EAASzC,EAAKa,GAC7B4B,EAAQ6B,aAAa,WAAWwhB,GAAiB9lB,KAAQa,EAC3D,EAEAqlB,oBAAoBzjB,EAASzC,GAC3ByC,EAAQ4B,gBAAgB,WAAWyhB,GAAiB9lB,KACtD,EAEAmmB,kBAAkB1jB,GAChB,IAAKA,EACH,MAAO,CAAC,EAGV,MAAM0B,EAAa,CAAC,EACdiiB,EAASlmB,OAAO4D,KAAKrB,EAAQ4jB,SAAShd,QAAOrJ,GAAOA,EAAI4c,WAAW,QAAU5c,EAAI4c,WAAW,cAElG,IAAK,MAAM5c,KAAOomB,EAAQ,CACxB,IAAIE,EAAUtmB,EAAIqO,QAAQ,MAAO,IACjCiY,EAAUA,EAAQC,OAAO,GAAG5jB,cAAgB2jB,EAAQhR,MAAM,EAAGgR,EAAQ1S,QACrEzP,EAAWmiB,GAAWZ,GAAcjjB,EAAQ4jB,QAAQrmB,GACtD,CAEA,OAAOmE,CACT,EAEAqiB,iBAAgB,CAAC/jB,EAASzC,IACjB0lB,GAAcjjB,EAAQga,aAAa,WAAWqJ,GAAiB9lB,QAe1E,MAAMymB,GAEOC,qBACT,MAAO,CAAC,CACV,CAEWC,yBACT,MAAO,CAAC,CACV,CAEWzH,kBACT,MAAM,IAAI0H,MAAM,sEAClB,CAEAC,WAAWC,GAMT,OALAA,EAASrE,KAAKsE,gBAAgBD,GAC9BA,EAASrE,KAAKuE,kBAAkBF,GAEhCrE,KAAKwE,iBAAiBH,GAEfA,CACT,CAEAE,kBAAkBF,GAChB,OAAOA,CACT,CAEAC,gBAAgBD,EAAQrkB,GACtB,MAAMykB,EAAa,GAAUzkB,GAAWujB,GAAYQ,iBAAiB/jB,EAAS,UAAY,CAAC,EAE3F,MAAO,IAAKggB,KAAK0E,YAAYT,WACD,iBAAfQ,EAA0BA,EAAa,CAAC,KAC/C,GAAUzkB,GAAWujB,GAAYG,kBAAkB1jB,GAAW,CAAC,KAC7C,iBAAXqkB,EAAsBA,EAAS,CAAC,EAE/C,CAEAG,iBAAiBH,EAAQM,EAAc3E,KAAK0E,YAAYR,aACtD,IAAK,MAAM3hB,KAAY9E,OAAO4D,KAAKsjB,GAAc,CAC/C,MAAMC,EAAgBD,EAAYpiB,GAC5BnE,EAAQimB,EAAO9hB,GACfsiB,EAAY,GAAUzmB,GAAS,UA1uBrCsc,OADSA,EA2uB+Ctc,GAzuBnD,GAAGsc,IAGLjd,OAAOM,UAAUuC,SAASrC,KAAKyc,GAAQoK,MAAM,eAAe,GAAG5kB,cAwuBlE,IAAK,IAAI6kB,OAAOH,GAAe9gB,KAAK+gB,GAClC,MAAM,IAAIG,UAAU,GAAGhF,KAAK0E,YAAYjI,KAAKwI,0BAA0B1iB,qBAA4BsiB,yBAAiCD,MAExI,CAhvBWlK,KAivBb,EAmBF,MAAMwK,WAAsBlB,GAC1BU,YAAY1kB,EAASqkB,GACnBc,SACAnlB,EAAU6a,GAAW7a,MAMrBggB,KAAKoF,SAAWplB,EAChBggB,KAAKqF,QAAUrF,KAAKoE,WAAWC,GAC/B5B,GAAKjQ,IAAIwN,KAAKoF,SAAUpF,KAAK0E,YAAYY,SAAUtF,MACrD,CAGAuF,UACE9C,GAAKM,OAAO/C,KAAKoF,SAAUpF,KAAK0E,YAAYY,UAC5C/E,GAAaC,IAAIR,KAAKoF,SAAUpF,KAAK0E,YAAYc,WAEjD,IAAK,MAAMC,KAAgBhoB,OAAOioB,oBAAoB1F,MACpDA,KAAKyF,GAAgB,IAEzB,CAEAE,eAAepJ,EAAUvc,EAAS4lB,GAAa,GAC7C5I,GAAuBT,EAAUvc,EAAS4lB,EAC5C,CAEAxB,WAAWC,GAMT,OALAA,EAASrE,KAAKsE,gBAAgBD,EAAQrE,KAAKoF,UAC3Cf,EAASrE,KAAKuE,kBAAkBF,GAEhCrE,KAAKwE,iBAAiBH,GAEfA,CACT,CAGAwB,mBAAmB7lB,GACjB,OAAOyiB,GAAK7kB,IAAIid,GAAW7a,GAAUggB,KAAKsF,SAC5C,CAEAO,2BAA2B7lB,EAASqkB,EAAS,CAAC,GAC5C,OAAOrE,KAAK8F,YAAY9lB,IAAY,IAAIggB,KAAKhgB,EAA2B,iBAAXqkB,EAAsBA,EAAS,KAC9F,CAEW0B,qBACT,MApDY,OAqDd,CAEWT,sBACT,MAAO,MAAMtF,KAAKvD,MACpB,CAEW+I,uBACT,MAAO,IAAIxF,KAAKsF,UAClB,CAEAO,iBAAiB9kB,GACf,MAAO,GAAGA,IAAOif,KAAKwF,WACxB,EAWF,MAAMQ,GAAuB,CAACC,EAAWC,EAAS,UAChD,MAAMC,EAAa,gBAAgBF,EAAUT,YACvCzkB,EAAOklB,EAAUxJ,KACvB8D,GAAaY,GAAGrb,SAAUqgB,EAAY,qBAAqBplB,OAAU,SAAUqe,GAK7E,GAJI,CAAC,IAAK,QAAQlF,SAAS8F,KAAKoG,UAC9BhH,EAAM+C,iBAGJ9G,GAAW2E,MACb,OAGF,MAAMhT,EAASsN,GAAuB0F,OAASA,KAAK7E,QAAQ,IAAIpa,KAC/CklB,EAAUI,oBAAoBrZ,GAEtCkZ,IACX,GAAE,EAeEI,GAAc,YACdC,GAAc,QAAQD,KACtBE,GAAe,SAASF,KAO9B,MAAMG,WAAcvB,GAEPzI,kBACT,MAdW,OAeb,CAGAiK,QAGE,GAFmBnG,GAAakB,QAAQzB,KAAKoF,SAAUmB,IAExC1E,iBACb,OAGF7B,KAAKoF,SAAS5J,UAAUuH,OAnBF,QAqBtB,MAAM6C,EAAa5F,KAAKoF,SAAS5J,UAAUvW,SAtBrB,QAwBtB+a,KAAK2F,gBAAe,IAAM3F,KAAK2G,mBAAmB3G,KAAKoF,SAAUQ,EACnE,CAGAe,kBACE3G,KAAKoF,SAASrC,SAEdxC,GAAakB,QAAQzB,KAAKoF,SAAUoB,IACpCxG,KAAKuF,SACP,CAGAM,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAO2b,GAAMJ,oBAAoBrG,MAEvC,GAAsB,iBAAXqE,EAAX,CAIA,QAAqB7K,IAAjB1O,EAAKuZ,IAAyBA,EAAOlK,WAAW,MAAmB,gBAAXkK,EAC1D,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,GAAQrE,KANb,CAOF,GACF,EAQFgG,GAAqBS,GAAO,SAK5BpK,GAAmBoK,IAYnB,MAKMI,GAAyB,4BAM/B,MAAMC,WAAe5B,GAERzI,kBACT,MAdW,QAeb,CAGAsK,SAEE/G,KAAKoF,SAASvjB,aAAa,eAAgBme,KAAKoF,SAAS5J,UAAUuL,OAhB3C,UAiB1B,CAGAlB,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOgc,GAAOT,oBAAoBrG,MAEzB,WAAXqE,GACFvZ,EAAKuZ,IAET,GACF,EAQF9D,GAAaY,GAAGrb,SAlCe,2BAkCmB+gB,IAAwBzH,IACxEA,EAAM+C,iBACN,MAAM6E,EAAS5H,EAAMpS,OAAOmO,QAAQ0L,IACvBC,GAAOT,oBAAoBW,GACnCD,QAAQ,IAMf1K,GAAmByK,IAYnB,MAAMG,GAAiB,CACrBrU,KAAI,CAACmH,EAAU/Z,EAAU8F,SAASC,kBACzB,GAAG3G,UAAUsB,QAAQ3C,UAAUqiB,iBAAiBniB,KAAK+B,EAAS+Z,IAGvEmN,QAAO,CAACnN,EAAU/Z,EAAU8F,SAASC,kBAC5BrF,QAAQ3C,UAAU8K,cAAc5K,KAAK+B,EAAS+Z,GAGvDoN,SAAQ,CAACnnB,EAAS+Z,IACT,GAAG3a,UAAUY,EAAQmnB,UAAUvgB,QAAOzB,GAASA,EAAMiiB,QAAQrN,KAGtEsN,QAAQrnB,EAAS+Z,GACf,MAAMsN,EAAU,GAChB,IAAIC,EAAWtnB,EAAQwF,WAAW2V,QAAQpB,GAE1C,KAAOuN,GACLD,EAAQhV,KAAKiV,GACbA,EAAWA,EAAS9hB,WAAW2V,QAAQpB,GAGzC,OAAOsN,CACT,EAEAE,KAAKvnB,EAAS+Z,GACZ,IAAIyN,EAAWxnB,EAAQynB,uBAEvB,KAAOD,GAAU,CACf,GAAIA,EAASJ,QAAQrN,GACnB,MAAO,CAACyN,GAGVA,EAAWA,EAASC,sBACtB,CAEA,MAAO,EACT,EAGAniB,KAAKtF,EAAS+Z,GACZ,IAAIzU,EAAOtF,EAAQ0nB,mBAEnB,KAAOpiB,GAAM,CACX,GAAIA,EAAK8hB,QAAQrN,GACf,MAAO,CAACzU,GAGVA,EAAOA,EAAKoiB,kBACd,CAEA,MAAO,EACT,EAEAC,kBAAkB3nB,GAChB,MAAM4nB,EAAa,CAAC,IAAK,SAAU,QAAS,WAAY,SAAU,UAAW,aAAc,4BAA4BrkB,KAAIwW,GAAY,GAAGA,2BAAiCpW,KAAK,KAChL,OAAOqc,KAAKpN,KAAKgV,EAAY5nB,GAAS4G,QAAOihB,IAAOxM,GAAWwM,IAAO/M,GAAU+M,IAClF,GAeIC,GAAc,YACdC,GAAmB,aAAaD,KAChCE,GAAkB,YAAYF,KAC9BG,GAAiB,WAAWH,KAC5BI,GAAoB,cAAcJ,KAClCK,GAAkB,YAAYL,KAK9BM,GAAY,CAChBC,YAAa,KACbC,aAAc,KACdC,cAAe,MAEXC,GAAgB,CACpBH,YAAa,kBACbC,aAAc,kBACdC,cAAe,mBAMjB,MAAME,WAAczE,GAClBU,YAAY1kB,EAASqkB,GACnBc,QACAnF,KAAKoF,SAAWplB,EAEXA,GAAYyoB,GAAMC,gBAIvB1I,KAAKqF,QAAUrF,KAAKoE,WAAWC,GAC/BrE,KAAK2I,QAAU,EACf3I,KAAK4I,sBAAwB9H,QAAQzgB,OAAOwoB,cAE5C7I,KAAK8I,cACP,CAGW7E,qBACT,OAAOmE,EACT,CAEWlE,yBACT,OAAOsE,EACT,CAEW/L,kBACT,MAnDW,OAoDb,CAGA8I,UACEhF,GAAaC,IAAIR,KAAKoF,SAAU0C,GAClC,CAGAiB,OAAO3J,GACAY,KAAK4I,sBAKN5I,KAAKgJ,wBAAwB5J,KAC/BY,KAAK2I,QAAUvJ,EAAM6J,SALrBjJ,KAAK2I,QAAUvJ,EAAM8J,QAAQ,GAAGD,OAOpC,CAEAE,KAAK/J,GACCY,KAAKgJ,wBAAwB5J,KAC/BY,KAAK2I,QAAUvJ,EAAM6J,QAAUjJ,KAAK2I,SAGtC3I,KAAKoJ,eAELrM,GAAQiD,KAAKqF,QAAQgD,YACvB,CAEAgB,MAAMjK,GACJY,KAAK2I,QAAUvJ,EAAM8J,SAAW9J,EAAM8J,QAAQ/X,OAAS,EAAI,EAAIiO,EAAM8J,QAAQ,GAAGD,QAAUjJ,KAAK2I,OACjG,CAEAS,eACE,MAAME,EAAY1mB,KAAKoC,IAAIgb,KAAK2I,SAEhC,GAAIW,GA9EgB,GA+ElB,OAGF,MAAMvb,EAAYub,EAAYtJ,KAAK2I,QACnC3I,KAAK2I,QAAU,EAEV5a,GAILgP,GAAQhP,EAAY,EAAIiS,KAAKqF,QAAQkD,cAAgBvI,KAAKqF,QAAQiD,aACpE,CAEAQ,cACM9I,KAAK4I,uBACPrI,GAAaY,GAAGnB,KAAKoF,SAAU8C,IAAmB9I,GAASY,KAAK+I,OAAO3J,KACvEmB,GAAaY,GAAGnB,KAAKoF,SAAU+C,IAAiB/I,GAASY,KAAKmJ,KAAK/J,KAEnEY,KAAKoF,SAAS5J,UAAUtE,IAlGG,mBAoG3BqJ,GAAaY,GAAGnB,KAAKoF,SAAU2C,IAAkB3I,GAASY,KAAK+I,OAAO3J,KACtEmB,GAAaY,GAAGnB,KAAKoF,SAAU4C,IAAiB5I,GAASY,KAAKqJ,MAAMjK,KACpEmB,GAAaY,GAAGnB,KAAKoF,SAAU6C,IAAgB7I,GAASY,KAAKmJ,KAAK/J,KAEtE,CAEA4J,wBAAwB5J,GACtB,OAAOY,KAAK4I,wBA5GS,QA4GiBxJ,EAAMmK,aA7GrB,UA6GyDnK,EAAMmK,YACxF,CAGA1D,qBACE,MAAO,iBAAkB/f,SAASC,iBAAmB7C,UAAUsmB,eAAiB,CAClF,EAcF,MAEMC,GAAc,eACdC,GAAiB,YAKjBC,GAAa,OACbC,GAAa,OACbC,GAAiB,OACjBC,GAAkB,QAClBC,GAAc,QAAQN,KACtBO,GAAa,OAAOP,KACpBQ,GAAkB,UAAUR,KAC5BS,GAAqB,aAAaT,KAClCU,GAAqB,aAAaV,KAClCW,GAAmB,YAAYX,KAC/BY,GAAwB,OAAOZ,KAAcC,KAC7CY,GAAyB,QAAQb,KAAcC,KAC/Ca,GAAsB,WACtBC,GAAsB,SAMtBC,GAAkB,UAClBC,GAAgB,iBAChBC,GAAuBF,GAAkBC,GAKzCE,GAAmB,CACvB,UAAoBd,GACpB,WAAqBD,IAEjBgB,GAAY,CAChBC,SAAU,IACVC,UAAU,EACVC,MAAO,QACPC,MAAM,EACNC,OAAO,EACPC,MAAM,GAEFC,GAAgB,CACpBN,SAAU,mBAEVC,SAAU,UACVC,MAAO,mBACPC,KAAM,mBACNC,MAAO,UACPC,KAAM,WAMR,MAAME,WAAiBnG,GACrBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAKsL,UAAY,KACjBtL,KAAKuL,eAAiB,KACtBvL,KAAKwL,YAAa,EAClBxL,KAAKyL,aAAe,KACpBzL,KAAK0L,aAAe,KACpB1L,KAAK2L,mBAAqB1E,GAAeC,QApCjB,uBAoC8ClH,KAAKoF,UAE3EpF,KAAK4L,qBAED5L,KAAKqF,QAAQ4F,OAASV,IACxBvK,KAAK6L,OAET,CAGW5H,qBACT,OAAO4G,EACT,CAEW3G,yBACT,OAAOkH,EACT,CAEW3O,kBACT,MAtFW,UAuFb,CAGAnX,OACE0a,KAAK8L,OAAOnC,GACd,CAEAoC,mBAIOjmB,SAASkmB,QAAUlR,GAAUkF,KAAKoF,WACrCpF,KAAK1a,MAET,CAEAiiB,OACEvH,KAAK8L,OAAOlC,GACd,CAEAoB,QACMhL,KAAKwL,YACPjR,GAAqByF,KAAKoF,UAG5BpF,KAAKiM,gBACP,CAEAJ,QACE7L,KAAKiM,iBAELjM,KAAKkM,kBAELlM,KAAKsL,UAAYa,aAAY,IAAMnM,KAAK+L,mBAAmB/L,KAAKqF,QAAQyF,SAC1E,CAEAsB,oBACOpM,KAAKqF,QAAQ4F,OAIdjL,KAAKwL,WACPjL,GAAaa,IAAIpB,KAAKoF,SAAU4E,IAAY,IAAMhK,KAAK6L,UAIzD7L,KAAK6L,QACP,CAEAQ,GAAGnT,GACD,MAAMoT,EAAQtM,KAAKuM,YAEnB,GAAIrT,EAAQoT,EAAMnb,OAAS,GAAK+H,EAAQ,EACtC,OAGF,GAAI8G,KAAKwL,WAEP,YADAjL,GAAaa,IAAIpB,KAAKoF,SAAU4E,IAAY,IAAMhK,KAAKqM,GAAGnT,KAI5D,MAAMsT,EAAcxM,KAAKyM,cAAczM,KAAK0M,cAE5C,GAAIF,IAAgBtT,EAClB,OAGF,MAAMtC,EAAQsC,EAAQsT,EAAc7C,GAAaC,GAEjD5J,KAAK8L,OAAOlV,EAAO0V,EAAMpT,GAC3B,CAEAqM,UACMvF,KAAK0L,cACP1L,KAAK0L,aAAanG,UAGpBJ,MAAMI,SACR,CAGAhB,kBAAkBF,GAEhB,OADAA,EAAOsI,gBAAkBtI,EAAOyG,SACzBzG,CACT,CAEAuH,qBACM5L,KAAKqF,QAAQ0F,UACfxK,GAAaY,GAAGnB,KAAKoF,SAAU6E,IAAiB7K,GAASY,KAAK4M,SAASxN,KAG9C,UAAvBY,KAAKqF,QAAQ2F,QACfzK,GAAaY,GAAGnB,KAAKoF,SAAU8E,IAAoB,IAAMlK,KAAKgL,UAC9DzK,GAAaY,GAAGnB,KAAKoF,SAAU+E,IAAoB,IAAMnK,KAAKoM,uBAG5DpM,KAAKqF,QAAQ6F,OAASzC,GAAMC,eAC9B1I,KAAK6M,yBAET,CAEAA,0BACE,IAAK,MAAMC,KAAO7F,GAAerU,KA/JX,qBA+JmCoN,KAAKoF,UAC5D7E,GAAaY,GAAG2L,EAAK1C,IAAkBhL,GAASA,EAAM+C,mBAGxD,MAqBM4K,EAAc,CAClBzE,aAAc,IAAMtI,KAAK8L,OAAO9L,KAAKgN,kBAAkBnD,KACvDtB,cAAe,IAAMvI,KAAK8L,OAAO9L,KAAKgN,kBAAkBlD,KACxDzB,YAxBkB,KACS,UAAvBrI,KAAKqF,QAAQ2F,QAWjBhL,KAAKgL,QAEDhL,KAAKyL,cACPwB,aAAajN,KAAKyL,cAGpBzL,KAAKyL,aAAe5N,YAAW,IAAMmC,KAAKoM,qBA7MjB,IA6M+DpM,KAAKqF,QAAQyF,UAAS,GAQhH9K,KAAK0L,aAAe,IAAIjD,GAAMzI,KAAKoF,SAAU2H,EAC/C,CAEAH,SAASxN,GACP,GAAI,kBAAkBtb,KAAKsb,EAAMpS,OAAOoZ,SACtC,OAGF,MAAMrY,EAAY6c,GAAiBxL,EAAM7hB,KAErCwQ,IACFqR,EAAM+C,iBAENnC,KAAK8L,OAAO9L,KAAKgN,kBAAkBjf,IAEvC,CAEA0e,cAAczsB,GACZ,OAAOggB,KAAKuM,YAAY3mB,QAAQ5F,EAClC,CAEAktB,2BAA2BhU,GACzB,IAAK8G,KAAK2L,mBACR,OAGF,MAAMwB,EAAkBlG,GAAeC,QAAQuD,GAAiBzK,KAAK2L,oBACrEwB,EAAgB3R,UAAUuH,OAAOyH,IACjC2C,EAAgBvrB,gBAAgB,gBAChC,MAAMwrB,EAAqBnG,GAAeC,QAAQ,sBAAsBhO,MAAW8G,KAAK2L,oBAEpFyB,IACFA,EAAmB5R,UAAUtE,IAAIsT,IACjC4C,EAAmBvrB,aAAa,eAAgB,QAEpD,CAEAqqB,kBACE,MAAMlsB,EAAUggB,KAAKuL,gBAAkBvL,KAAK0M,aAE5C,IAAK1sB,EACH,OAGF,MAAMqtB,EAAkB9P,OAAO+P,SAASttB,EAAQga,aAAa,oBAAqB,IAClFgG,KAAKqF,QAAQyF,SAAWuC,GAAmBrN,KAAKqF,QAAQsH,eAC1D,CAEAb,OAAOlV,EAAO5W,EAAU,MACtB,GAAIggB,KAAKwL,WACP,OAGF,MAAMzN,EAAgBiC,KAAK0M,aAErBa,EAAS3W,IAAU+S,GACnB6D,EAAcxtB,GAAW8d,GAAqBkC,KAAKuM,YAAaxO,EAAewP,EAAQvN,KAAKqF,QAAQ8F,MAE1G,GAAIqC,IAAgBzP,EAClB,OAGF,MAAM0P,EAAmBzN,KAAKyM,cAAce,GAEtCE,EAAeC,GACZpN,GAAakB,QAAQzB,KAAKoF,SAAUuI,EAAW,CACpD7N,cAAe0N,EACfzf,UAAWiS,KAAK4N,kBAAkBhX,GAClCkM,KAAM9C,KAAKyM,cAAc1O,GACzBsO,GAAIoB,IAMR,GAFmBC,EAAa3D,IAEjBlI,iBACb,OAGF,IAAK9D,IAAkByP,EAGrB,OAGF,MAAMK,EAAY/M,QAAQd,KAAKsL,WAC/BtL,KAAKgL,QACLhL,KAAKwL,YAAa,EAElBxL,KAAKkN,2BAA2BO,GAEhCzN,KAAKuL,eAAiBiC,EACtB,MAAMM,EAAuBP,EA/RR,sBADF,oBAiSbQ,EAAiBR,EA/RH,qBACA,qBA+RpBC,EAAYhS,UAAUtE,IAAI6W,GAC1BhS,GAAOyR,GACPzP,EAAcvC,UAAUtE,IAAI4W,GAC5BN,EAAYhS,UAAUtE,IAAI4W,GAU1B9N,KAAK2F,gBARoB,KACvB6H,EAAYhS,UAAUuH,OAAO+K,EAAsBC,GACnDP,EAAYhS,UAAUtE,IAAIsT,IAC1BzM,EAAcvC,UAAUuH,OAAOyH,GAAqBuD,EAAgBD,GACpE9N,KAAKwL,YAAa,EAClBkC,EAAa1D,GAAW,GAGYjM,EAAeiC,KAAKgO,eAEtDH,GACF7N,KAAK6L,OAET,CAEAmC,cACE,OAAOhO,KAAKoF,SAAS5J,UAAUvW,SAxTV,QAyTvB,CAEAynB,aACE,OAAOzF,GAAeC,QAAQyD,GAAsB3K,KAAKoF,SAC3D,CAEAmH,YACE,OAAOtF,GAAerU,KAAK8X,GAAe1K,KAAKoF,SACjD,CAEA6G,iBACMjM,KAAKsL,YACP2C,cAAcjO,KAAKsL,WACnBtL,KAAKsL,UAAY,KAErB,CAEA0B,kBAAkBjf,GAChB,OAAIoO,KACKpO,IAAc8b,GAAiBD,GAAaD,GAG9C5b,IAAc8b,GAAiBF,GAAaC,EACrD,CAEAgE,kBAAkBhX,GAChB,OAAIuF,KACKvF,IAAUgT,GAAaC,GAAiBC,GAG1ClT,IAAUgT,GAAaE,GAAkBD,EAClD,CAGAhE,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOugB,GAAShF,oBAAoBrG,KAAMqE,GAEhD,GAAsB,iBAAXA,GAKX,GAAsB,iBAAXA,EAAqB,CAC9B,QAAqB7K,IAAjB1O,EAAKuZ,IAAyBA,EAAOlK,WAAW,MAAmB,gBAAXkK,EAC1D,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IACP,OAVEvZ,EAAKuhB,GAAGhI,EAWZ,GACF,EAQF9D,GAAaY,GAAGrb,SAAUwkB,GA1WE,uCA0W2C,SAAUlL,GAC/E,MAAMpS,EAASsN,GAAuB0F,MAEtC,IAAKhT,IAAWA,EAAOwO,UAAUvW,SAASslB,IACxC,OAGFnL,EAAM+C,iBACN,MAAM+L,EAAW7C,GAAShF,oBAAoBrZ,GACxCmhB,EAAanO,KAAKhG,aAAa,oBAErC,OAAImU,GACFD,EAAS7B,GAAG8B,QAEZD,EAAS9B,qBAKyC,SAAhD7I,GAAYQ,iBAAiB/D,KAAM,UACrCkO,EAAS5oB,YAET4oB,EAAS9B,sBAKX8B,EAAS3G,YAET2G,EAAS9B,oBACX,IACA7L,GAAaY,GAAG9gB,OAAQgqB,IAAuB,KAC7C,MAAM+D,EAAYnH,GAAerU,KAzYR,6BA2YzB,IAAK,MAAMsb,KAAYE,EACrB/C,GAAShF,oBAAoB6H,EAC/B,IAMF7R,GAAmBgP,IAYnB,MAEMgD,GAAc,eAEdC,GAAe,OAAOD,KACtBE,GAAgB,QAAQF,KACxBG,GAAe,OAAOH,KACtBI,GAAiB,SAASJ,KAC1BK,GAAyB,QAAQL,cACjCM,GAAoB,OACpBC,GAAsB,WACtBC,GAAwB,aAExBC,GAA6B,WAAWF,OAAwBA,KAKhEG,GAAyB,8BACzBC,GAAY,CAChB9pB,OAAQ,KACR6hB,QAAQ,GAEJkI,GAAgB,CACpB/pB,OAAQ,iBACR6hB,OAAQ,WAMV,MAAMmI,WAAiBhK,GACrBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAKmP,kBAAmB,EACxBnP,KAAKoP,cAAgB,GACrB,MAAMC,EAAapI,GAAerU,KAAKmc,IAEvC,IAAK,MAAMO,KAAQD,EAAY,CAC7B,MAAMtV,EAAWM,GAAuBiV,GAClCC,EAAgBtI,GAAerU,KAAKmH,GAAUnT,QAAO4oB,GAAgBA,IAAiBxP,KAAKoF,WAEhF,OAAbrL,GAAqBwV,EAAcpe,QACrC6O,KAAKoP,cAAc/c,KAAKid,EAE5B,CAEAtP,KAAKyP,sBAEAzP,KAAKqF,QAAQngB,QAChB8a,KAAK0P,0BAA0B1P,KAAKoP,cAAepP,KAAK2P,YAGtD3P,KAAKqF,QAAQ0B,QACf/G,KAAK+G,QAET,CAGW9C,qBACT,OAAO+K,EACT,CAEW9K,yBACT,OAAO+K,EACT,CAEWxS,kBACT,MApEW,UAqEb,CAGAsK,SACM/G,KAAK2P,WACP3P,KAAK4P,OAEL5P,KAAK6P,MAET,CAEAA,OACE,GAAI7P,KAAKmP,kBAAoBnP,KAAK2P,WAChC,OAGF,IAAIG,EAAiB,GAQrB,GANI9P,KAAKqF,QAAQngB,SACf4qB,EAAiB9P,KAAK+P,uBAvEH,wCAuE4CnpB,QAAO5G,GAAWA,IAAYggB,KAAKoF,WAAU7hB,KAAIvD,GAAWkvB,GAAS7I,oBAAoBrmB,EAAS,CAC/J+mB,QAAQ,OAIR+I,EAAe3e,QAAU2e,EAAe,GAAGX,iBAC7C,OAKF,GAFmB5O,GAAakB,QAAQzB,KAAKoF,SAAUkJ,IAExCzM,iBACb,OAGF,IAAK,MAAMmO,KAAkBF,EAC3BE,EAAeJ,OAGjB,MAAMK,EAAYjQ,KAAKkQ,gBAEvBlQ,KAAKoF,SAAS5J,UAAUuH,OAAO6L,IAE/B5O,KAAKoF,SAAS5J,UAAUtE,IAAI2X,IAE5B7O,KAAKoF,SAAS5jB,MAAMyuB,GAAa,EAEjCjQ,KAAK0P,0BAA0B1P,KAAKoP,eAAe,GAEnDpP,KAAKmP,kBAAmB,EAExB,MAYMgB,EAAa,SADUF,EAAU,GAAGhL,cAAgBgL,EAAUpd,MAAM,KAG1EmN,KAAK2F,gBAdY,KACf3F,KAAKmP,kBAAmB,EAExBnP,KAAKoF,SAAS5J,UAAUuH,OAAO8L,IAE/B7O,KAAKoF,SAAS5J,UAAUtE,IAAI0X,GAAqBD,IAEjD3O,KAAKoF,SAAS5jB,MAAMyuB,GAAa,GACjC1P,GAAakB,QAAQzB,KAAKoF,SAAUmJ,GAAc,GAMtBvO,KAAKoF,UAAU,GAE7CpF,KAAKoF,SAAS5jB,MAAMyuB,GAAa,GAAGjQ,KAAKoF,SAAS+K,MACpD,CAEAP,OACE,GAAI5P,KAAKmP,mBAAqBnP,KAAK2P,WACjC,OAKF,GAFmBpP,GAAakB,QAAQzB,KAAKoF,SAAUoJ,IAExC3M,iBACb,OAGF,MAAMoO,EAAYjQ,KAAKkQ,gBAEvBlQ,KAAKoF,SAAS5jB,MAAMyuB,GAAa,GAAGjQ,KAAKoF,SAASrhB,wBAAwBksB,OAC1ElU,GAAOiE,KAAKoF,UAEZpF,KAAKoF,SAAS5J,UAAUtE,IAAI2X,IAE5B7O,KAAKoF,SAAS5J,UAAUuH,OAAO6L,GAAqBD,IAEpD,IAAK,MAAMlN,KAAWzB,KAAKoP,cAAe,CACxC,MAAMpvB,EAAUsa,GAAuBmH,GAEnCzhB,IAAYggB,KAAK2P,SAAS3vB,IAC5BggB,KAAK0P,0BAA0B,CAACjO,IAAU,EAE9C,CAEAzB,KAAKmP,kBAAmB,EAYxBnP,KAAKoF,SAAS5jB,MAAMyuB,GAAa,GAEjCjQ,KAAK2F,gBAZY,KACf3F,KAAKmP,kBAAmB,EAExBnP,KAAKoF,SAAS5J,UAAUuH,OAAO8L,IAE/B7O,KAAKoF,SAAS5J,UAAUtE,IAAI0X,IAE5BrO,GAAakB,QAAQzB,KAAKoF,SAAUqJ,GAAe,GAKvBzO,KAAKoF,UAAU,EAC/C,CAEAuK,SAAS3vB,EAAUggB,KAAKoF,UACtB,OAAOplB,EAAQwb,UAAUvW,SAAS0pB,GACpC,CAGApK,kBAAkBF,GAIhB,OAHAA,EAAO0C,OAASjG,QAAQuD,EAAO0C,QAE/B1C,EAAOnf,OAAS2V,GAAWwJ,EAAOnf,QAC3Bmf,CACT,CAEA6L,gBACE,OAAOlQ,KAAKoF,SAAS5J,UAAUvW,SAtLL,uBAChB,QACC,QAqLb,CAEAwqB,sBACE,IAAKzP,KAAKqF,QAAQngB,OAChB,OAGF,MAAMiiB,EAAWnH,KAAK+P,uBAAuBhB,IAE7C,IAAK,MAAM/uB,KAAWmnB,EAAU,CAC9B,MAAMiJ,EAAW9V,GAAuBta,GAEpCowB,GACFpQ,KAAK0P,0BAA0B,CAAC1vB,GAAUggB,KAAK2P,SAASS,GAE5D,CACF,CAEAL,uBAAuBhW,GACrB,MAAMoN,EAAWF,GAAerU,KAAKkc,GAA4B9O,KAAKqF,QAAQngB,QAE9E,OAAO+hB,GAAerU,KAAKmH,EAAUiG,KAAKqF,QAAQngB,QAAQ0B,QAAO5G,IAAYmnB,EAASjN,SAASla,IACjG,CAEA0vB,0BAA0BW,EAAcC,GACtC,GAAKD,EAAalf,OAIlB,IAAK,MAAMnR,KAAWqwB,EACpBrwB,EAAQwb,UAAUuL,OAvNK,aAuNyBuJ,GAChDtwB,EAAQ6B,aAAa,gBAAiByuB,EAE1C,CAGAzK,uBAAuBxB,GACrB,MAAMgB,EAAU,CAAC,EAMjB,MAJsB,iBAAXhB,GAAuB,YAAYvgB,KAAKugB,KACjDgB,EAAQ0B,QAAS,GAGZ/G,KAAK4G,MAAK,WACf,MAAM9b,EAAOokB,GAAS7I,oBAAoBrG,KAAMqF,GAEhD,GAAsB,iBAAXhB,EAAqB,CAC9B,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IACP,CACF,GACF,EAQF9D,GAAaY,GAAGrb,SAAU4oB,GAAwBK,IAAwB,SAAU3P,IAErD,MAAzBA,EAAMpS,OAAOoZ,SAAmBhH,EAAMW,gBAAmD,MAAjCX,EAAMW,eAAeqG,UAC/EhH,EAAM+C,iBAGR,MAAMpI,EAAWM,GAAuB2F,MAClCuQ,EAAmBtJ,GAAerU,KAAKmH,GAE7C,IAAK,MAAM/Z,KAAWuwB,EACpBrB,GAAS7I,oBAAoBrmB,EAAS,CACpC+mB,QAAQ,IACPA,QAEP,IAKA1K,GAAmB6S,IAYnB,MAAMsB,GAAS,WAETC,GAAc,eACdC,GAAiB,YAGjBC,GAAiB,UACjBC,GAAmB,YAGnBC,GAAe,OAAOJ,KACtBK,GAAiB,SAASL,KAC1BM,GAAe,OAAON,KACtBO,GAAgB,QAAQP,KACxBQ,GAAyB,QAAQR,KAAcC,KAC/CQ,GAAyB,UAAUT,KAAcC,KACjDS,GAAuB,QAAQV,KAAcC,KAC7CU,GAAoB,OAMpBC,GAAyB,4DACzBC,GAA6B,GAAGD,MAA0BD,KAC1DG,GAAgB,iBAIhBC,GAAgBrV,KAAU,UAAY,YACtCsV,GAAmBtV,KAAU,YAAc,UAC3CuV,GAAmBvV,KAAU,aAAe,eAC5CwV,GAAsBxV,KAAU,eAAiB,aACjDyV,GAAkBzV,KAAU,aAAe,cAC3C0V,GAAiB1V,KAAU,cAAgB,aAG3C2V,GAAY,CAChBC,WAAW,EACXrjB,SAAU,kBACVsjB,QAAS,UACTvpB,OAAQ,CAAC,EAAG,GACZwpB,aAAc,KACdlzB,UAAW,UAEPmzB,GAAgB,CACpBH,UAAW,mBACXrjB,SAAU,mBACVsjB,QAAS,SACTvpB,OAAQ,0BACRwpB,aAAc,yBACdlzB,UAAW,2BAMb,MAAMozB,WAAiBjN,GACrBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAKoS,QAAU,KACfpS,KAAKqS,QAAUrS,KAAKoF,SAAS5f,WAG7Bwa,KAAKsS,MAAQrL,GAAe3hB,KAAK0a,KAAKoF,SAAUmM,IAAe,IAAMtK,GAAeM,KAAKvH,KAAKoF,SAAUmM,IAAe,IAAMtK,GAAeC,QAAQqK,GAAevR,KAAKqS,SACxKrS,KAAKuS,UAAYvS,KAAKwS,eACxB,CAGWvO,qBACT,OAAO6N,EACT,CAEW5N,yBACT,OAAOgO,EACT,CAEWzV,kBACT,OAAO+T,EACT,CAGAzJ,SACE,OAAO/G,KAAK2P,WAAa3P,KAAK4P,OAAS5P,KAAK6P,MAC9C,CAEAA,OACE,GAAIxU,GAAW2E,KAAKoF,WAAapF,KAAK2P,WACpC,OAGF,MAAM7P,EAAgB,CACpBA,cAAeE,KAAKoF,UAItB,IAFkB7E,GAAakB,QAAQzB,KAAKoF,SAAU2L,GAAcjR,GAEtD+B,iBAAd,CAUA,GANA7B,KAAKyS,gBAMD,iBAAkB3sB,SAASC,kBAAoBia,KAAKqS,QAAQlX,QA/ExC,eAgFtB,IAAK,MAAMnb,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAKwa,UAC/C5G,GAAaY,GAAGnhB,EAAS,YAAa8b,IAI1CkE,KAAKoF,SAASsN,QAEd1S,KAAKoF,SAASvjB,aAAa,iBAAiB,GAE5Cme,KAAKsS,MAAM9W,UAAUtE,IAAIka,IAEzBpR,KAAKoF,SAAS5J,UAAUtE,IAAIka,IAE5B7Q,GAAakB,QAAQzB,KAAKoF,SAAU4L,GAAelR,EAtBnD,CAuBF,CAEA8P,OACE,GAAIvU,GAAW2E,KAAKoF,YAAcpF,KAAK2P,WACrC,OAGF,MAAM7P,EAAgB,CACpBA,cAAeE,KAAKoF,UAGtBpF,KAAK2S,cAAc7S,EACrB,CAEAyF,UACMvF,KAAKoS,SACPpS,KAAKoS,QAAQ3Y,UAGf0L,MAAMI,SACR,CAEA/Z,SACEwU,KAAKuS,UAAYvS,KAAKwS,gBAElBxS,KAAKoS,SACPpS,KAAKoS,QAAQ5mB,QAEjB,CAGAmnB,cAAc7S,GAGZ,IAFkBS,GAAakB,QAAQzB,KAAKoF,SAAUyL,GAAc/Q,GAEtD+B,iBAAd,CAMA,GAAI,iBAAkB/b,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAKwa,UAC/C5G,GAAaC,IAAIxgB,EAAS,YAAa8b,IAIvCkE,KAAKoS,SACPpS,KAAKoS,QAAQ3Y,UAGfuG,KAAKsS,MAAM9W,UAAUuH,OAAOqO,IAE5BpR,KAAKoF,SAAS5J,UAAUuH,OAAOqO,IAE/BpR,KAAKoF,SAASvjB,aAAa,gBAAiB,SAE5C0hB,GAAYE,oBAAoBzD,KAAKsS,MAAO,UAC5C/R,GAAakB,QAAQzB,KAAKoF,SAAU0L,GAAgBhR,EArBpD,CAsBF,CAEAsE,WAAWC,GAGT,GAAgC,iBAFhCA,EAASc,MAAMf,WAAWC,IAERtlB,YAA2B,GAAUslB,EAAOtlB,YAAgE,mBAA3CslB,EAAOtlB,UAAUgF,sBAElG,MAAM,IAAIihB,UAAU,GAAGwL,GAAOvL,+GAGhC,OAAOZ,CACT,CAEAoO,gBACE,QAAsB,IAAX,EACT,MAAM,IAAIzN,UAAU,gEAGtB,IAAI4N,EAAmB5S,KAAKoF,SAEG,WAA3BpF,KAAKqF,QAAQtmB,UACf6zB,EAAmB5S,KAAKqS,QACf,GAAUrS,KAAKqF,QAAQtmB,WAChC6zB,EAAmB/X,GAAWmF,KAAKqF,QAAQtmB,WACA,iBAA3BihB,KAAKqF,QAAQtmB,YAC7B6zB,EAAmB5S,KAAKqF,QAAQtmB,WAGlC,MAAMkzB,EAAejS,KAAK6S,mBAE1B7S,KAAKoS,QAAU,GAAoBQ,EAAkB5S,KAAKsS,MAAOL,EACnE,CAEAtC,WACE,OAAO3P,KAAKsS,MAAM9W,UAAUvW,SAASmsB,GACvC,CAEA0B,gBACE,MAAMC,EAAiB/S,KAAKqS,QAE5B,GAAIU,EAAevX,UAAUvW,SAxMN,WAyMrB,OAAO2sB,GAGT,GAAImB,EAAevX,UAAUvW,SA3MJ,aA4MvB,OAAO4sB,GAGT,GAAIkB,EAAevX,UAAUvW,SA9MA,iBA+M3B,MAjMsB,MAoMxB,GAAI8tB,EAAevX,UAAUvW,SAjNE,mBAkN7B,MApMyB,SAwM3B,MAAM+tB,EAAkF,QAA1EttB,iBAAiBsa,KAAKsS,OAAOrX,iBAAiB,iBAAiBb,OAE7E,OAAI2Y,EAAevX,UAAUvW,SA5NP,UA6Nb+tB,EAAQvB,GAAmBD,GAG7BwB,EAAQrB,GAAsBD,EACvC,CAEAc,gBACE,OAAkD,OAA3CxS,KAAKoF,SAASjK,QA5ND,UA6NtB,CAEA8X,aACE,MAAM,OACJxqB,GACEuX,KAAKqF,QAET,MAAsB,iBAAX5c,EACFA,EAAO9F,MAAM,KAAKY,KAAInF,GAASmf,OAAO+P,SAASlvB,EAAO,MAGzC,mBAAXqK,EACFyqB,GAAczqB,EAAOyqB,EAAYlT,KAAKoF,UAGxC3c,CACT,CAEAoqB,mBACE,MAAMM,EAAwB,CAC5Bh0B,UAAW6gB,KAAK8S,gBAChBjc,UAAW,CAAC,CACV9V,KAAM,kBACNmB,QAAS,CACPwM,SAAUsR,KAAKqF,QAAQ3W,WAExB,CACD3N,KAAM,SACNmB,QAAS,CACPuG,OAAQuX,KAAKiT,iBAcnB,OATIjT,KAAKuS,WAAsC,WAAzBvS,KAAKqF,QAAQ2M,WACjCzO,GAAYC,iBAAiBxD,KAAKsS,MAAO,SAAU,UAEnDa,EAAsBtc,UAAY,CAAC,CACjC9V,KAAM,cACNC,SAAS,KAIN,IAAKmyB,KAC+B,mBAA9BnT,KAAKqF,QAAQ4M,aAA8BjS,KAAKqF,QAAQ4M,aAAakB,GAAyBnT,KAAKqF,QAAQ4M,aAE1H,CAEAmB,iBAAgB,IACd71B,EAAG,OACHyP,IAEA,MAAMsf,EAAQrF,GAAerU,KA/QF,8DA+Q+BoN,KAAKsS,OAAO1rB,QAAO5G,GAAW8a,GAAU9a,KAE7FssB,EAAMnb,QAMX2M,GAAqBwO,EAAOtf,EAAQzP,IAAQqzB,IAAmBtE,EAAMpS,SAASlN,IAAS0lB,OACzF,CAGA7M,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOqnB,GAAS9L,oBAAoBrG,KAAMqE,GAEhD,GAAsB,iBAAXA,EAAX,CAIA,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IANL,CAOF,GACF,CAEAwB,kBAAkBzG,GAChB,GAhUuB,IAgUnBA,EAAM4H,QAAgD,UAAf5H,EAAMqB,MAnUnC,QAmUuDrB,EAAM7hB,IACzE,OAGF,MAAM81B,EAAcpM,GAAerU,KAAK0e,IAExC,IAAK,MAAMvK,KAAUsM,EAAa,CAChC,MAAMC,EAAUnB,GAASrM,YAAYiB,GAErC,IAAKuM,IAAyC,IAA9BA,EAAQjO,QAAQ0M,UAC9B,SAGF,MAAMwB,EAAenU,EAAMmU,eACrBC,EAAeD,EAAarZ,SAASoZ,EAAQhB,OAEnD,GAAIiB,EAAarZ,SAASoZ,EAAQlO,WAA2C,WAA9BkO,EAAQjO,QAAQ0M,YAA2ByB,GAA8C,YAA9BF,EAAQjO,QAAQ0M,WAA2ByB,EACnJ,SAIF,GAAIF,EAAQhB,MAAMrtB,SAASma,EAAMpS,UAA2B,UAAfoS,EAAMqB,MAxVvC,QAwV2DrB,EAAM7hB,KAAqB,qCAAqCuG,KAAKsb,EAAMpS,OAAOoZ,UACvJ,SAGF,MAAMtG,EAAgB,CACpBA,cAAewT,EAAQlO,UAGN,UAAfhG,EAAMqB,OACRX,EAAcqG,WAAa/G,GAG7BkU,EAAQX,cAAc7S,EACxB,CACF,CAEA+F,6BAA6BzG,GAG3B,MAAMqU,EAAU,kBAAkB3vB,KAAKsb,EAAMpS,OAAOoZ,SAC9CsN,EA7WW,WA6WKtU,EAAM7hB,IACtBo2B,EAAkB,CAAChD,GAAgBC,IAAkB1W,SAASkF,EAAM7hB,KAE1E,IAAKo2B,IAAoBD,EACvB,OAGF,GAAID,IAAYC,EACd,OAGFtU,EAAM+C,iBAEN,MAAMyR,EAAkB5T,KAAKoH,QAAQiK,IAA0BrR,KAAOiH,GAAeM,KAAKvH,KAAMqR,IAAwB,IAAMpK,GAAe3hB,KAAK0a,KAAMqR,IAAwB,IAAMpK,GAAeC,QAAQmK,GAAwBjS,EAAMW,eAAeva,YACpPwF,EAAWmnB,GAAS9L,oBAAoBuN,GAE9C,GAAID,EAMF,OALAvU,EAAMyU,kBACN7oB,EAAS6kB,YAET7kB,EAASooB,gBAAgBhU,GAKvBpU,EAAS2kB,aAEXvQ,EAAMyU,kBACN7oB,EAAS4kB,OACTgE,EAAgBlB,QAEpB,EAQFnS,GAAaY,GAAGrb,SAAUorB,GAAwBG,GAAwBc,GAAS2B,uBACnFvT,GAAaY,GAAGrb,SAAUorB,GAAwBK,GAAeY,GAAS2B,uBAC1EvT,GAAaY,GAAGrb,SAAUmrB,GAAwBkB,GAAS4B,YAC3DxT,GAAaY,GAAGrb,SAAUqrB,GAAsBgB,GAAS4B,YACzDxT,GAAaY,GAAGrb,SAAUmrB,GAAwBI,IAAwB,SAAUjS,GAClFA,EAAM+C,iBACNgQ,GAAS9L,oBAAoBrG,MAAM+G,QACrC,IAKA1K,GAAmB8V,IAYnB,MAAM6B,GAAyB,oDACzBC,GAA0B,cAC1BC,GAAmB,gBACnBC,GAAkB,eAKxB,MAAMC,GACJ1P,cACE1E,KAAKoF,SAAWtf,SAAS6G,IAC3B,CAGA0nB,WAEE,MAAMC,EAAgBxuB,SAASC,gBAAgBuC,YAC/C,OAAO1F,KAAKoC,IAAI3E,OAAOk0B,WAAaD,EACtC,CAEA1E,OACE,MAAMtrB,EAAQ0b,KAAKqU,WAEnBrU,KAAKwU,mBAGLxU,KAAKyU,sBAAsBzU,KAAKoF,SAAU8O,IAAkBQ,GAAmBA,EAAkBpwB,IAGjG0b,KAAKyU,sBAAsBT,GAAwBE,IAAkBQ,GAAmBA,EAAkBpwB,IAE1G0b,KAAKyU,sBAAsBR,GAAyBE,IAAiBO,GAAmBA,EAAkBpwB,GAC5G,CAEAwO,QACEkN,KAAK2U,wBAAwB3U,KAAKoF,SAAU,YAE5CpF,KAAK2U,wBAAwB3U,KAAKoF,SAAU8O,IAE5ClU,KAAK2U,wBAAwBX,GAAwBE,IAErDlU,KAAK2U,wBAAwBV,GAAyBE,GACxD,CAEAS,gBACE,OAAO5U,KAAKqU,WAAa,CAC3B,CAGAG,mBACExU,KAAK6U,sBAAsB7U,KAAKoF,SAAU,YAE1CpF,KAAKoF,SAAS5jB,MAAM+K,SAAW,QACjC,CAEAkoB,sBAAsB1a,EAAU+a,EAAevY,GAC7C,MAAMwY,EAAiB/U,KAAKqU,WAa5BrU,KAAKgV,2BAA2Bjb,GAXH/Z,IAC3B,GAAIA,IAAYggB,KAAKoF,UAAY/kB,OAAOk0B,WAAav0B,EAAQsI,YAAcysB,EACzE,OAGF/U,KAAK6U,sBAAsB70B,EAAS80B,GAEpC,MAAMJ,EAAkBr0B,OAAOqF,iBAAiB1F,GAASib,iBAAiB6Z,GAC1E90B,EAAQwB,MAAMyzB,YAAYH,EAAe,GAAGvY,EAASgB,OAAOC,WAAWkX,QAAsB,GAIjG,CAEAG,sBAAsB70B,EAAS80B,GAC7B,MAAMI,EAAcl1B,EAAQwB,MAAMyZ,iBAAiB6Z,GAE/CI,GACF3R,GAAYC,iBAAiBxjB,EAAS80B,EAAeI,EAEzD,CAEAP,wBAAwB5a,EAAU+a,GAahC9U,KAAKgV,2BAA2Bjb,GAZH/Z,IAC3B,MAAM5B,EAAQmlB,GAAYQ,iBAAiB/jB,EAAS80B,GAEtC,OAAV12B,GAKJmlB,GAAYE,oBAAoBzjB,EAAS80B,GACzC90B,EAAQwB,MAAMyzB,YAAYH,EAAe12B,IALvC4B,EAAQwB,MAAM2zB,eAAeL,EAKgB,GAInD,CAEAE,2BAA2Bjb,EAAUqb,GACnC,GAAI,GAAUrb,GACZqb,EAASrb,QAIX,IAAK,MAAMsb,KAAOpO,GAAerU,KAAKmH,EAAUiG,KAAKoF,UACnDgQ,EAASC,EAEb,EAcF,MAAMC,GAAS,WAETC,GAAoB,OACpBC,GAAkB,gBAAgBF,KAClCG,GAAY,CAChBC,UAAW,iBACXC,cAAe,KACf/P,YAAY,EACZ9K,WAAW,EAEX8a,YAAa,QAGTC,GAAgB,CACpBH,UAAW,SACXC,cAAe,kBACf/P,WAAY,UACZ9K,UAAW,UACX8a,YAAa,oBAMf,MAAME,WAAiB9R,GACrBU,YAAYL,GACVc,QACAnF,KAAKqF,QAAUrF,KAAKoE,WAAWC,GAC/BrE,KAAK+V,aAAc,EACnB/V,KAAKoF,SAAW,IAClB,CAGWnB,qBACT,OAAOwR,EACT,CAEWvR,yBACT,OAAO2R,EACT,CAEWpZ,kBACT,OAAO6Y,EACT,CAGAzF,KAAKtT,GACH,IAAKyD,KAAKqF,QAAQvK,UAEhB,YADAiC,GAAQR,GAIVyD,KAAKgW,UAEL,MAAMh2B,EAAUggB,KAAKiW,cAEjBjW,KAAKqF,QAAQO,YACf7J,GAAO/b,GAGTA,EAAQwb,UAAUtE,IAAIqe,IAEtBvV,KAAKkW,mBAAkB,KACrBnZ,GAAQR,EAAS,GAErB,CAEAqT,KAAKrT,GACEyD,KAAKqF,QAAQvK,WAKlBkF,KAAKiW,cAAcza,UAAUuH,OAAOwS,IAEpCvV,KAAKkW,mBAAkB,KACrBlW,KAAKuF,UACLxI,GAAQR,EAAS,KARjBQ,GAAQR,EAUZ,CAEAgJ,UACOvF,KAAK+V,cAIVxV,GAAaC,IAAIR,KAAKoF,SAAUoQ,IAEhCxV,KAAKoF,SAASrC,SAEd/C,KAAK+V,aAAc,EACrB,CAGAE,cACE,IAAKjW,KAAKoF,SAAU,CAClB,MAAM+Q,EAAWrwB,SAASswB,cAAc,OACxCD,EAAST,UAAY1V,KAAKqF,QAAQqQ,UAE9B1V,KAAKqF,QAAQO,YACfuQ,EAAS3a,UAAUtE,IAnGD,QAsGpB8I,KAAKoF,SAAW+Q,CAClB,CAEA,OAAOnW,KAAKoF,QACd,CAEAb,kBAAkBF,GAGhB,OADAA,EAAOuR,YAAc/a,GAAWwJ,EAAOuR,aAChCvR,CACT,CAEA2R,UACE,GAAIhW,KAAK+V,YACP,OAGF,MAAM/1B,EAAUggB,KAAKiW,cAErBjW,KAAKqF,QAAQuQ,YAAYS,OAAOr2B,GAEhCugB,GAAaY,GAAGnhB,EAASw1B,IAAiB,KACxCzY,GAAQiD,KAAKqF,QAAQsQ,cAAc,IAErC3V,KAAK+V,aAAc,CACrB,CAEAG,kBAAkB3Z,GAChBS,GAAuBT,EAAUyD,KAAKiW,cAAejW,KAAKqF,QAAQO,WACpE,EAcF,MAEM0Q,GAAc,gBACdC,GAAkB,UAAUD,KAC5BE,GAAoB,cAAcF,KAGlCG,GAAmB,WACnBC,GAAY,CAChBC,WAAW,EACXC,YAAa,MAGTC,GAAgB,CACpBF,UAAW,UACXC,YAAa,WAMf,MAAME,WAAkB9S,GACtBU,YAAYL,GACVc,QACAnF,KAAKqF,QAAUrF,KAAKoE,WAAWC,GAC/BrE,KAAK+W,WAAY,EACjB/W,KAAKgX,qBAAuB,IAC9B,CAGW/S,qBACT,OAAOyS,EACT,CAEWxS,yBACT,OAAO2S,EACT,CAEWpa,kBACT,MAvCW,WAwCb,CAGAwa,WACMjX,KAAK+W,YAIL/W,KAAKqF,QAAQsR,WACf3W,KAAKqF,QAAQuR,YAAYlE,QAG3BnS,GAAaC,IAAI1a,SAAUwwB,IAE3B/V,GAAaY,GAAGrb,SAAUywB,IAAiBnX,GAASY,KAAKkX,eAAe9X,KACxEmB,GAAaY,GAAGrb,SAAU0wB,IAAmBpX,GAASY,KAAKmX,eAAe/X,KAC1EY,KAAK+W,WAAY,EACnB,CAEAK,aACOpX,KAAK+W,YAIV/W,KAAK+W,WAAY,EACjBxW,GAAaC,IAAI1a,SAAUwwB,IAC7B,CAGAY,eAAe9X,GACb,MAAM,YACJwX,GACE5W,KAAKqF,QAET,GAAIjG,EAAMpS,SAAWlH,UAAYsZ,EAAMpS,SAAW4pB,GAAeA,EAAY3xB,SAASma,EAAMpS,QAC1F,OAGF,MAAM1L,EAAW2lB,GAAeU,kBAAkBiP,GAE1B,IAApBt1B,EAAS6P,OACXylB,EAAYlE,QACH1S,KAAKgX,uBAAyBP,GACvCn1B,EAASA,EAAS6P,OAAS,GAAGuhB,QAE9BpxB,EAAS,GAAGoxB,OAEhB,CAEAyE,eAAe/X,GApFD,QAqFRA,EAAM7hB,MAIVyiB,KAAKgX,qBAAuB5X,EAAMiY,SAAWZ,GAxFzB,UAyFtB,EAcF,MAEMa,GAAc,YAGdC,GAAe,OAAOD,KACtBE,GAAyB,gBAAgBF,KACzCG,GAAiB,SAASH,KAC1BI,GAAe,OAAOJ,KACtBK,GAAgB,QAAQL,KACxBM,GAAiB,SAASN,KAC1BO,GAAsB,gBAAgBP,KACtCQ,GAA0B,oBAAoBR,KAC9CS,GAA0B,kBAAkBT,KAC5CU,GAAyB,QAAQV,cACjCW,GAAkB,aAElBC,GAAoB,OACpBC,GAAoB,eAKpBC,GAAY,CAChBjC,UAAU,EACVzD,OAAO,EACP3H,UAAU,GAENsN,GAAgB,CACpBlC,SAAU,mBACVzD,MAAO,UACP3H,SAAU,WAMZ,MAAMuN,WAAcpT,GAClBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAKuY,QAAUtR,GAAeC,QApBV,gBAoBmClH,KAAKoF,UAC5DpF,KAAKwY,UAAYxY,KAAKyY,sBACtBzY,KAAK0Y,WAAa1Y,KAAK2Y,uBACvB3Y,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EACxBnP,KAAK4Y,WAAa,IAAIxE,GAEtBpU,KAAK4L,oBACP,CAGW3H,qBACT,OAAOmU,EACT,CAEWlU,yBACT,OAAOmU,EACT,CAEW5b,kBACT,MA5DW,OA6Db,CAGAsK,OAAOjH,GACL,OAAOE,KAAK2P,SAAW3P,KAAK4P,OAAS5P,KAAK6P,KAAK/P,EACjD,CAEA+P,KAAK/P,GACCE,KAAK2P,UAAY3P,KAAKmP,kBAIR5O,GAAakB,QAAQzB,KAAKoF,SAAUsS,GAAc,CAClE5X,kBAGY+B,mBAId7B,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EAExBnP,KAAK4Y,WAAWhJ,OAEhB9pB,SAAS6G,KAAK6O,UAAUtE,IAAI+gB,IAE5BjY,KAAK6Y,gBAEL7Y,KAAKwY,UAAU3I,MAAK,IAAM7P,KAAK8Y,aAAahZ,KAC9C,CAEA8P,OACO5P,KAAK2P,WAAY3P,KAAKmP,mBAIT5O,GAAakB,QAAQzB,KAAKoF,SAAUmS,IAExC1V,mBAId7B,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EAExBnP,KAAK0Y,WAAWtB,aAEhBpX,KAAKoF,SAAS5J,UAAUuH,OAAOmV,IAE/BlY,KAAK2F,gBAAe,IAAM3F,KAAK+Y,cAAc/Y,KAAKoF,SAAUpF,KAAKgO,gBACnE,CAEAzI,UACE,IAAK,MAAMyT,IAAe,CAAC34B,OAAQ2f,KAAKuY,SACtChY,GAAaC,IAAIwY,EAAa1B,IAGhCtX,KAAKwY,UAAUjT,UAEfvF,KAAK0Y,WAAWtB,aAEhBjS,MAAMI,SACR,CAEA0T,eACEjZ,KAAK6Y,eACP,CAGAJ,sBACE,OAAO,IAAI3C,GAAS,CAClBhb,UAAWgG,QAAQd,KAAKqF,QAAQ8Q,UAEhCvQ,WAAY5F,KAAKgO,eAErB,CAEA2K,uBACE,OAAO,IAAI7B,GAAU,CACnBF,YAAa5W,KAAKoF,UAEtB,CAEA0T,aAAahZ,GAENha,SAAS6G,KAAK1H,SAAS+a,KAAKoF,WAC/Btf,SAAS6G,KAAK0pB,OAAOrW,KAAKoF,UAG5BpF,KAAKoF,SAAS5jB,MAAMwwB,QAAU,QAE9BhS,KAAKoF,SAASxjB,gBAAgB,eAE9Boe,KAAKoF,SAASvjB,aAAa,cAAc,GAEzCme,KAAKoF,SAASvjB,aAAa,OAAQ,UAEnCme,KAAKoF,SAASlZ,UAAY,EAC1B,MAAMgtB,EAAYjS,GAAeC,QA3IT,cA2IsClH,KAAKuY,SAE/DW,IACFA,EAAUhtB,UAAY,GAGxB6P,GAAOiE,KAAKoF,UAEZpF,KAAKoF,SAAS5J,UAAUtE,IAAIghB,IAa5BlY,KAAK2F,gBAXsB,KACrB3F,KAAKqF,QAAQqN,OACf1S,KAAK0Y,WAAWzB,WAGlBjX,KAAKmP,kBAAmB,EACxB5O,GAAakB,QAAQzB,KAAKoF,SAAUuS,GAAe,CACjD7X,iBACA,GAGoCE,KAAKuY,QAASvY,KAAKgO,cAC7D,CAEApC,qBACErL,GAAaY,GAAGnB,KAAKoF,SAAU2S,IAAyB3Y,IACtD,GAtLe,WAsLXA,EAAM7hB,IAIV,OAAIyiB,KAAKqF,QAAQ0F,UACf3L,EAAM+C,sBACNnC,KAAK4P,aAIP5P,KAAKmZ,4BAA4B,IAEnC5Y,GAAaY,GAAG9gB,OAAQu3B,IAAgB,KAClC5X,KAAK2P,WAAa3P,KAAKmP,kBACzBnP,KAAK6Y,eACP,IAEFtY,GAAaY,GAAGnB,KAAKoF,SAAU0S,IAAyB1Y,IAEtDmB,GAAaa,IAAIpB,KAAKoF,SAAUyS,IAAqBuB,IAC/CpZ,KAAKoF,WAAahG,EAAMpS,QAAUgT,KAAKoF,WAAagU,EAAOpsB,SAIjC,WAA1BgT,KAAKqF,QAAQ8Q,SAMbnW,KAAKqF,QAAQ8Q,UACfnW,KAAK4P,OANL5P,KAAKmZ,6BAOP,GACA,GAEN,CAEAJ,aACE/Y,KAAKoF,SAAS5jB,MAAMwwB,QAAU,OAE9BhS,KAAKoF,SAASvjB,aAAa,eAAe,GAE1Cme,KAAKoF,SAASxjB,gBAAgB,cAE9Boe,KAAKoF,SAASxjB,gBAAgB,QAE9Boe,KAAKmP,kBAAmB,EAExBnP,KAAKwY,UAAU5I,MAAK,KAClB9pB,SAAS6G,KAAK6O,UAAUuH,OAAOkV,IAE/BjY,KAAKqZ,oBAELrZ,KAAK4Y,WAAW9lB,QAEhByN,GAAakB,QAAQzB,KAAKoF,SAAUqS,GAAe,GAEvD,CAEAzJ,cACE,OAAOhO,KAAKoF,SAAS5J,UAAUvW,SAtOT,OAuOxB,CAEAk0B,6BAGE,GAFkB5Y,GAAakB,QAAQzB,KAAKoF,SAAUoS,IAExC3V,iBACZ,OAGF,MAAMyX,EAAqBtZ,KAAKoF,SAAStX,aAAehI,SAASC,gBAAgBsC,aAC3EkxB,EAAmBvZ,KAAKoF,SAAS5jB,MAAMiL,UAEpB,WAArB8sB,GAAiCvZ,KAAKoF,SAAS5J,UAAUvW,SAASkzB,MAIjEmB,IACHtZ,KAAKoF,SAAS5jB,MAAMiL,UAAY,UAGlCuT,KAAKoF,SAAS5J,UAAUtE,IAAIihB,IAE5BnY,KAAK2F,gBAAe,KAClB3F,KAAKoF,SAAS5J,UAAUuH,OAAOoV,IAE/BnY,KAAK2F,gBAAe,KAClB3F,KAAKoF,SAAS5jB,MAAMiL,UAAY8sB,CAAgB,GAC/CvZ,KAAKuY,QAAQ,GACfvY,KAAKuY,SAERvY,KAAKoF,SAASsN,QAChB,CAMAmG,gBACE,MAAMS,EAAqBtZ,KAAKoF,SAAStX,aAAehI,SAASC,gBAAgBsC,aAE3E0sB,EAAiB/U,KAAK4Y,WAAWvE,WAEjCmF,EAAoBzE,EAAiB,EAE3C,GAAIyE,IAAsBF,EAAoB,CAC5C,MAAM/2B,EAAW4Z,KAAU,cAAgB,eAC3C6D,KAAKoF,SAAS5jB,MAAMe,GAAY,GAAGwyB,KACrC,CAEA,IAAKyE,GAAqBF,EAAoB,CAC5C,MAAM/2B,EAAW4Z,KAAU,eAAiB,cAC5C6D,KAAKoF,SAAS5jB,MAAMe,GAAY,GAAGwyB,KACrC,CACF,CAEAsE,oBACErZ,KAAKoF,SAAS5jB,MAAMi4B,YAAc,GAClCzZ,KAAKoF,SAAS5jB,MAAMk4B,aAAe,EACrC,CAGA7T,uBAAuBxB,EAAQvE,GAC7B,OAAOE,KAAK4G,MAAK,WACf,MAAM9b,EAAOwtB,GAAMjS,oBAAoBrG,KAAMqE,GAE7C,GAAsB,iBAAXA,EAAX,CAIA,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,GAAQvE,EANb,CAOF,GACF,EAQFS,GAAaY,GAAGrb,SAAUkyB,GApTK,4BAoT2C,SAAU5Y,GAClF,MAAMpS,EAASsN,GAAuB0F,MAElC,CAAC,IAAK,QAAQ9F,SAAS8F,KAAKoG,UAC9BhH,EAAM+C,iBAGR5B,GAAaa,IAAIpU,EAAQ0qB,IAAciC,IACjCA,EAAU9X,kBAKdtB,GAAaa,IAAIpU,EAAQyqB,IAAgB,KACnC3c,GAAUkF,OACZA,KAAK0S,OACP,GACA,IAGJ,MAAMkH,EAAc3S,GAAeC,QA3Ub,eA6UlB0S,GACFtB,GAAMxS,YAAY8T,GAAahK,OAGpB0I,GAAMjS,oBAAoBrZ,GAClC+Z,OAAO/G,KACd,IACAgG,GAAqBsS,IAKrBjc,GAAmBic,IAYnB,MAEMuB,GAAc,gBACdC,GAAiB,YACjBC,GAAwB,OAAOF,KAAcC,KAE7CE,GAAoB,OACpBC,GAAuB,UACvBC,GAAoB,SAEpBC,GAAgB,kBAChBC,GAAe,OAAOP,KACtBQ,GAAgB,QAAQR,KACxBS,GAAe,OAAOT,KACtBU,GAAuB,gBAAgBV,KACvCW,GAAiB,SAASX,KAC1BY,GAAe,SAASZ,KACxBa,GAAyB,QAAQb,KAAcC,KAC/Ca,GAAwB,kBAAkBd,KAE1Ce,GAAY,CAChBzE,UAAU,EACVpL,UAAU,EACV7f,QAAQ,GAEJ2vB,GAAgB,CACpB1E,SAAU,mBACVpL,SAAU,UACV7f,OAAQ,WAMV,MAAM4vB,WAAkB5V,GACtBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAK2P,UAAW,EAChB3P,KAAKwY,UAAYxY,KAAKyY,sBACtBzY,KAAK0Y,WAAa1Y,KAAK2Y,uBAEvB3Y,KAAK4L,oBACP,CAGW3H,qBACT,OAAO2W,EACT,CAEW1W,yBACT,OAAO2W,EACT,CAEWpe,kBACT,MAtDW,WAuDb,CAGAsK,OAAOjH,GACL,OAAOE,KAAK2P,SAAW3P,KAAK4P,OAAS5P,KAAK6P,KAAK/P,EACjD,CAEA+P,KAAK/P,GACCE,KAAK2P,UAISpP,GAAakB,QAAQzB,KAAKoF,SAAUgV,GAAc,CAClEta,kBAGY+B,mBAId7B,KAAK2P,UAAW,EAEhB3P,KAAKwY,UAAU3I,OAEV7P,KAAKqF,QAAQna,SAChB,IAAIkpB,IAAkBxE,OAGxB5P,KAAKoF,SAASvjB,aAAa,cAAc,GAEzCme,KAAKoF,SAASvjB,aAAa,OAAQ,UAEnCme,KAAKoF,SAAS5J,UAAUtE,IAAI+iB,IAgB5Bja,KAAK2F,gBAdoB,KAClB3F,KAAKqF,QAAQna,SAAU8U,KAAKqF,QAAQ8Q,UACvCnW,KAAK0Y,WAAWzB,WAGlBjX,KAAKoF,SAAS5J,UAAUtE,IAAI8iB,IAE5Bha,KAAKoF,SAAS5J,UAAUuH,OAAOkX,IAE/B1Z,GAAakB,QAAQzB,KAAKoF,SAAUiV,GAAe,CACjDva,iBACA,GAGkCE,KAAKoF,UAAU,GACvD,CAEAwK,OACO5P,KAAK2P,WAIQpP,GAAakB,QAAQzB,KAAKoF,SAAUkV,IAExCzY,mBAId7B,KAAK0Y,WAAWtB,aAEhBpX,KAAKoF,SAAS2V,OAEd/a,KAAK2P,UAAW,EAEhB3P,KAAKoF,SAAS5J,UAAUtE,IAAIgjB,IAE5Bla,KAAKwY,UAAU5I,OAgBf5P,KAAK2F,gBAdoB,KACvB3F,KAAKoF,SAAS5J,UAAUuH,OAAOiX,GAAmBE,IAElDla,KAAKoF,SAASxjB,gBAAgB,cAE9Boe,KAAKoF,SAASxjB,gBAAgB,QAEzBoe,KAAKqF,QAAQna,SAChB,IAAIkpB,IAAkBthB,QAGxByN,GAAakB,QAAQzB,KAAKoF,SAAUoV,GAAe,GAGfxa,KAAKoF,UAAU,IACvD,CAEAG,UACEvF,KAAKwY,UAAUjT,UAEfvF,KAAK0Y,WAAWtB,aAEhBjS,MAAMI,SACR,CAGAkT,sBACE,MAUM3d,EAAYgG,QAAQd,KAAKqF,QAAQ8Q,UACvC,OAAO,IAAIL,GAAS,CAClBJ,UA7JsB,qBA8JtB5a,YACA8K,YAAY,EACZgQ,YAAa5V,KAAKoF,SAAS5f,WAC3BmwB,cAAe7a,EAhBK,KACU,WAA1BkF,KAAKqF,QAAQ8Q,SAKjBnW,KAAK4P,OAJHrP,GAAakB,QAAQzB,KAAKoF,SAAUmV,GAI3B,EAUgC,MAE/C,CAEA5B,uBACE,OAAO,IAAI7B,GAAU,CACnBF,YAAa5W,KAAKoF,UAEtB,CAEAwG,qBACErL,GAAaY,GAAGnB,KAAKoF,SAAUuV,IAAuBvb,IAhLvC,WAiLTA,EAAM7hB,MAILyiB,KAAKqF,QAAQ0F,SAKlB/K,KAAK4P,OAJHrP,GAAakB,QAAQzB,KAAKoF,SAAUmV,IAI3B,GAEf,CAGA1U,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOgwB,GAAUzU,oBAAoBrG,KAAMqE,GAEjD,GAAsB,iBAAXA,EAAX,CAIA,QAAqB7K,IAAjB1O,EAAKuZ,IAAyBA,EAAOlK,WAAW,MAAmB,gBAAXkK,EAC1D,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,GAAQrE,KANb,CAOF,GACF,EAQFO,GAAaY,GAAGrb,SAAU40B,GAvMK,gCAuM2C,SAAUtb,GAClF,MAAMpS,EAASsN,GAAuB0F,MAMtC,GAJI,CAAC,IAAK,QAAQ9F,SAAS8F,KAAKoG,UAC9BhH,EAAM+C,iBAGJ9G,GAAW2E,MACb,OAGFO,GAAaa,IAAIpU,EAAQwtB,IAAgB,KAEnC1f,GAAUkF,OACZA,KAAK0S,OACP,IAGF,MAAMkH,EAAc3S,GAAeC,QAAQiT,IAEvCP,GAAeA,IAAgB5sB,GACjC8tB,GAAUhV,YAAY8T,GAAahK,OAGxBkL,GAAUzU,oBAAoBrZ,GACtC+Z,OAAO/G,KACd,IACAO,GAAaY,GAAG9gB,OAAQ05B,IAAuB,KAC7C,IAAK,MAAMhgB,KAAYkN,GAAerU,KAAKunB,IACzCW,GAAUzU,oBAAoBtM,GAAU8V,MAC1C,IAEFtP,GAAaY,GAAG9gB,OAAQo6B,IAAc,KACpC,IAAK,MAAMz6B,KAAWinB,GAAerU,KAAK,gDACG,UAAvClN,iBAAiB1F,GAASiC,UAC5B64B,GAAUzU,oBAAoBrmB,GAAS4vB,MAE3C,IAEF5J,GAAqB8U,IAKrBze,GAAmBye,IAQnB,MAAME,GAAgB,IAAIjkB,IAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,eAQhGkkB,GAAmB,iEAOnBC,GAAmB,qIAEnBC,GAAmB,CAAC34B,EAAW44B,KACnC,MAAMC,EAAgB74B,EAAUvC,SAASC,cAEzC,OAAIk7B,EAAqBlhB,SAASmhB,IAC5BL,GAAc5jB,IAAIikB,IACbva,QAAQma,GAAiBn3B,KAAKtB,EAAU84B,YAAcJ,GAAiBp3B,KAAKtB,EAAU84B,YAO1FF,EAAqBx0B,QAAO20B,GAAkBA,aAA0BxW,SAAQ7R,MAAKsoB,GAASA,EAAM13B,KAAKu3B,IAAe,EAG3HI,GAAmB,CAEvB,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAjCP,kBAkC7BnqB,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BoqB,KAAM,GACNnqB,EAAG,GACHoqB,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxqB,EAAG,GACHgb,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDyP,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,GACLC,EAAG,GACHC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,EAAG,GACHC,GAAI,IA+CAC,GAAY,CAChBC,UAAW3B,GACX4B,QAAS,CAAC,EAEVC,WAAY,GACZhwB,MAAM,EACNiwB,UAAU,EACVC,WAAY,KACZC,SAAU,eAENC,GAAgB,CACpBN,UAAW,SACXC,QAAS,SACTC,WAAY,oBACZhwB,KAAM,UACNiwB,SAAU,UACVC,WAAY,kBACZC,SAAU,UAENE,GAAqB,CACzBC,MAAO,iCACP7jB,SAAU,oBAMZ,MAAM8jB,WAAwB7Z,GAC5BU,YAAYL,GACVc,QACAnF,KAAKqF,QAAUrF,KAAKoE,WAAWC,EACjC,CAGWJ,qBACT,OAAOkZ,EACT,CAEWjZ,yBACT,OAAOwZ,EACT,CAEWjhB,kBACT,MA5CW,iBA6Cb,CAGAqhB,aACE,OAAOrgC,OAAO0hB,OAAOa,KAAKqF,QAAQgY,SAAS95B,KAAI8gB,GAAUrE,KAAK+d,yBAAyB1Z,KAASzd,OAAOka,QACzG,CAEAkd,aACE,OAAOhe,KAAK8d,aAAa3sB,OAAS,CACpC,CAEA8sB,cAAcZ,GAMZ,OALArd,KAAKke,cAAcb,GAEnBrd,KAAKqF,QAAQgY,QAAU,IAAKrd,KAAKqF,QAAQgY,WACpCA,GAEErd,IACT,CAEAme,SACE,MAAMC,EAAkBt4B,SAASswB,cAAc,OAC/CgI,EAAgBC,UAAYre,KAAKse,eAAete,KAAKqF,QAAQoY,UAE7D,IAAK,MAAO1jB,EAAUwkB,KAAS9gC,OAAO4kB,QAAQrC,KAAKqF,QAAQgY,SACzDrd,KAAKwe,YAAYJ,EAAiBG,EAAMxkB,GAG1C,MAAM0jB,EAAWW,EAAgBjX,SAAS,GAEpCmW,EAAatd,KAAK+d,yBAAyB/d,KAAKqF,QAAQiY,YAM9D,OAJIA,GACFG,EAASjiB,UAAUtE,OAAOomB,EAAW36B,MAAM,MAGtC86B,CACT,CAGAjZ,iBAAiBH,GACfc,MAAMX,iBAAiBH,GAEvBrE,KAAKke,cAAc7Z,EAAOgZ,QAC5B,CAEAa,cAAcO,GACZ,IAAK,MAAO1kB,EAAUsjB,KAAY5/B,OAAO4kB,QAAQoc,GAC/CtZ,MAAMX,iBAAiB,CACrBzK,WACA6jB,MAAOP,GACNM,GAEP,CAEAa,YAAYf,EAAUJ,EAAStjB,GAC7B,MAAM2kB,EAAkBzX,GAAeC,QAAQnN,EAAU0jB,GAEpDiB,KAILrB,EAAUrd,KAAK+d,yBAAyBV,IAOpC,GAAUA,GACZrd,KAAK2e,sBAAsB9jB,GAAWwiB,GAAUqB,GAK9C1e,KAAKqF,QAAQ/X,KACfoxB,EAAgBL,UAAYre,KAAKse,eAAejB,GAIlDqB,EAAgBE,YAAcvB,EAf5BqB,EAAgB3b,SAgBpB,CAEAub,eAAeG,GACb,OAAOze,KAAKqF,QAAQkY,SA7KxB,SAAsBsB,EAAYzB,EAAW0B,GAC3C,IAAKD,EAAW1tB,OACd,OAAO0tB,EAGT,GAAIC,GAAgD,mBAArBA,EAC7B,OAAOA,EAAiBD,GAG1B,MACME,GADY,IAAI1+B,OAAO2+B,WACKC,gBAAgBJ,EAAY,aACxDv9B,EAAW,GAAGlC,UAAU2/B,EAAgBpyB,KAAKyT,iBAAiB,MAEpE,IAAK,MAAMpgB,KAAWsB,EAAU,CAC9B,MAAM49B,EAAcl/B,EAAQC,SAASC,cAErC,IAAKzC,OAAO4D,KAAK+7B,GAAWljB,SAASglB,GAAc,CACjDl/B,EAAQ+iB,SACR,QACF,CAEA,MAAMoc,EAAgB,GAAG//B,UAAUY,EAAQ0B,YACrC09B,EAAoB,GAAGhgC,OAAOg+B,EAAU,MAAQ,GAAIA,EAAU8B,IAAgB,IAEpF,IAAK,MAAM18B,KAAa28B,EACjBhE,GAAiB34B,EAAW48B,IAC/Bp/B,EAAQ4B,gBAAgBY,EAAUvC,SAGxC,CAEA,OAAO8+B,EAAgBpyB,KAAK0xB,SAC9B,CA6ImCgB,CAAaZ,EAAKze,KAAKqF,QAAQ+X,UAAWpd,KAAKqF,QAAQmY,YAAciB,CACtG,CAEAV,yBAAyBU,GACvB,MAAsB,mBAARA,EAAqBA,EAAIze,MAAQye,CACjD,CAEAE,sBAAsB3+B,EAAS0+B,GAC7B,GAAI1e,KAAKqF,QAAQ/X,KAGf,OAFAoxB,EAAgBL,UAAY,QAC5BK,EAAgBrI,OAAOr2B,GAIzB0+B,EAAgBE,YAAc5+B,EAAQ4+B,WACxC,EAcF,MACMU,GAAwB,IAAIvoB,IAAI,CAAC,WAAY,YAAa,eAC1DwoB,GAAoB,OAEpBC,GAAoB,OAEpBC,GAAiB,SACjBC,GAAmB,gBACnBC,GAAgB,QAChBC,GAAgB,QAahBC,GAAgB,CACpBC,KAAM,OACNC,IAAK,MACLC,MAAO7jB,KAAU,OAAS,QAC1B8jB,OAAQ,SACRC,KAAM/jB,KAAU,QAAU,QAEtBgkB,GAAY,CAChB/C,UAAW3B,GACX2E,WAAW,EACX1xB,SAAU,kBACV2xB,WAAW,EACXC,YAAa,GACbC,MAAO,EACP9vB,mBAAoB,CAAC,MAAO,QAAS,SAAU,QAC/CnD,MAAM,EACN7E,OAAQ,CAAC,EAAG,GACZtJ,UAAW,MACX8yB,aAAc,KACdsL,UAAU,EACVC,WAAY,KACZzjB,UAAU,EACV0jB,SAAU,+GACV+C,MAAO,GACP/e,QAAS,eAELgf,GAAgB,CACpBrD,UAAW,SACXgD,UAAW,UACX1xB,SAAU,mBACV2xB,UAAW,2BACXC,YAAa,oBACbC,MAAO,kBACP9vB,mBAAoB,QACpBnD,KAAM,UACN7E,OAAQ,0BACRtJ,UAAW,oBACX8yB,aAAc,yBACdsL,SAAU,UACVC,WAAY,kBACZzjB,SAAU,mBACV0jB,SAAU,SACV+C,MAAO,4BACP/e,QAAS,UAMX,MAAMif,WAAgBxb,GACpBR,YAAY1kB,EAASqkB,GACnB,QAAsB,IAAX,EACT,MAAM,IAAIW,UAAU,+DAGtBG,MAAMnlB,EAASqkB,GAEfrE,KAAK2gB,YAAa,EAClB3gB,KAAK4gB,SAAW,EAChB5gB,KAAK6gB,WAAa,KAClB7gB,KAAK8gB,eAAiB,CAAC,EACvB9gB,KAAKoS,QAAU,KACfpS,KAAK+gB,iBAAmB,KACxB/gB,KAAKghB,YAAc,KAEnBhhB,KAAKihB,IAAM,KAEXjhB,KAAKkhB,gBAEAlhB,KAAKqF,QAAQtL,UAChBiG,KAAKmhB,WAET,CAGWld,qBACT,OAAOkc,EACT,CAEWjc,yBACT,OAAOuc,EACT,CAEWhkB,kBACT,MA1GW,SA2Gb,CAGA2kB,SACEphB,KAAK2gB,YAAa,CACpB,CAEAU,UACErhB,KAAK2gB,YAAa,CACpB,CAEAW,gBACEthB,KAAK2gB,YAAc3gB,KAAK2gB,UAC1B,CAEA5Z,SACO/G,KAAK2gB,aAIV3gB,KAAK8gB,eAAeS,OAASvhB,KAAK8gB,eAAeS,MAE7CvhB,KAAK2P,WACP3P,KAAKwhB,SAKPxhB,KAAKyhB,SACP,CAEAlc,UACE0H,aAAajN,KAAK4gB,UAClBrgB,GAAaC,IAAIR,KAAKoF,SAASjK,QAAQskB,IAAiBC,GAAkB1f,KAAK0hB,mBAE3E1hB,KAAKoF,SAASpL,aAAa,2BAC7BgG,KAAKoF,SAASvjB,aAAa,QAASme,KAAKoF,SAASpL,aAAa,2BAGjEgG,KAAK2hB,iBAELxc,MAAMI,SACR,CAEAsK,OACE,GAAoC,SAAhC7P,KAAKoF,SAAS5jB,MAAMwwB,QACtB,MAAM,IAAI7N,MAAM,uCAGlB,IAAMnE,KAAK4hB,mBAAoB5hB,KAAK2gB,WAClC,OAGF,MAAMhH,EAAYpZ,GAAakB,QAAQzB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UAlJtD,SAqJXkU,GAFalmB,GAAeqE,KAAKoF,WAELpF,KAAKoF,SAAS7kB,cAAcwF,iBAAiBd,SAAS+a,KAAKoF,UAE7F,GAAIuU,EAAU9X,mBAAqBggB,EACjC,OAIF7hB,KAAK2hB,iBAEL,MAAMV,EAAMjhB,KAAK8hB,iBAEjB9hB,KAAKoF,SAASvjB,aAAa,mBAAoBo/B,EAAIjnB,aAAa,OAEhE,MAAM,UACJqmB,GACErgB,KAAKqF,QAaT,GAXKrF,KAAKoF,SAAS7kB,cAAcwF,gBAAgBd,SAAS+a,KAAKihB,OAC7DZ,EAAUhK,OAAO4K,GACjB1gB,GAAakB,QAAQzB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UAtKpC,cAyKnB3N,KAAKoS,QAAUpS,KAAKyS,cAAcwO,GAClCA,EAAIzlB,UAAUtE,IAAIsoB,IAKd,iBAAkB15B,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAKwa,UAC/C5G,GAAaY,GAAGnhB,EAAS,YAAa8b,IAc1CkE,KAAK2F,gBAVY,KACfpF,GAAakB,QAAQzB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UAvLrC,WAyLQ,IAApB3N,KAAK6gB,YACP7gB,KAAKwhB,SAGPxhB,KAAK6gB,YAAa,CAAK,GAGK7gB,KAAKihB,IAAKjhB,KAAKgO,cAC/C,CAEA4B,OACE,GAAK5P,KAAK2P,aAIQpP,GAAakB,QAAQzB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UA3MtD,SA6MH9L,iBAAd,CASA,GALY7B,KAAK8hB,iBAEbtmB,UAAUuH,OAAOyc,IAGjB,iBAAkB15B,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAKwa,UAC/C5G,GAAaC,IAAIxgB,EAAS,YAAa8b,IAI3CkE,KAAK8gB,eAA4B,OAAI,EACrC9gB,KAAK8gB,eAAelB,KAAiB,EACrC5f,KAAK8gB,eAAenB,KAAiB,EACrC3f,KAAK6gB,WAAa,KAgBlB7gB,KAAK2F,gBAdY,KACX3F,KAAK+hB,yBAIJ/hB,KAAK6gB,YACR7gB,KAAK2hB,iBAGP3hB,KAAKoF,SAASxjB,gBAAgB,oBAE9B2e,GAAakB,QAAQzB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UA3OpC,WA2O8D,GAGnD3N,KAAKihB,IAAKjhB,KAAKgO,cAhC7C,CAiCF,CAEAxiB,SACMwU,KAAKoS,SACPpS,KAAKoS,QAAQ5mB,QAEjB,CAGAo2B,iBACE,OAAO9gB,QAAQd,KAAKgiB,YACtB,CAEAF,iBAKE,OAJK9hB,KAAKihB,MACRjhB,KAAKihB,IAAMjhB,KAAKiiB,kBAAkBjiB,KAAKghB,aAAehhB,KAAKkiB,2BAGtDliB,KAAKihB,GACd,CAEAgB,kBAAkB5E,GAChB,MAAM4D,EAAMjhB,KAAKmiB,oBAAoB9E,GAASc,SAG9C,IAAK8C,EACH,OAAO,KAGTA,EAAIzlB,UAAUuH,OAAOwc,GAAmBC,IAExCyB,EAAIzlB,UAAUtE,IAAI,MAAM8I,KAAK0E,YAAYjI,aACzC,MAAM2lB,EA92HKC,KACb,GACEA,GAAUz/B,KAAK0/B,MAlBH,IAkBS1/B,KAAK2/B,gBACnBz8B,SAAS08B,eAAeH,IAEjC,OAAOA,CAAM,EAy2HGI,CAAOziB,KAAK0E,YAAYjI,MAAMnc,WAO5C,OANA2gC,EAAIp/B,aAAa,KAAMugC,GAEnBpiB,KAAKgO,eACPiT,EAAIzlB,UAAUtE,IAAIqoB,IAGb0B,CACT,CAEAyB,WAAWrF,GACTrd,KAAKghB,YAAc3D,EAEfrd,KAAK2P,aACP3P,KAAK2hB,iBAEL3hB,KAAK6P,OAET,CAEAsS,oBAAoB9E,GAYlB,OAXIrd,KAAK+gB,iBACP/gB,KAAK+gB,iBAAiB9C,cAAcZ,GAEpCrd,KAAK+gB,iBAAmB,IAAIlD,GAAgB,IAAK7d,KAAKqF,QAGpDgY,UACAC,WAAYtd,KAAK+d,yBAAyB/d,KAAKqF,QAAQib,eAIpDtgB,KAAK+gB,gBACd,CAEAmB,yBACE,MAAO,CACL,iBAA0BliB,KAAKgiB,YAEnC,CAEAA,YACE,OAAOhiB,KAAK+d,yBAAyB/d,KAAKqF,QAAQmb,QAAUxgB,KAAKoF,SAASpL,aAAa,yBACzF,CAGA2oB,6BAA6BvjB,GAC3B,OAAOY,KAAK0E,YAAY2B,oBAAoBjH,EAAMW,eAAgBC,KAAK4iB,qBACzE,CAEA5U,cACE,OAAOhO,KAAKqF,QAAQ+a,WAAapgB,KAAKihB,KAAOjhB,KAAKihB,IAAIzlB,UAAUvW,SAASs6B,GAC3E,CAEA5P,WACE,OAAO3P,KAAKihB,KAAOjhB,KAAKihB,IAAIzlB,UAAUvW,SAASu6B,GACjD,CAEA/M,cAAcwO,GACZ,MAAM9hC,EAA8C,mBAA3B6gB,KAAKqF,QAAQlmB,UAA2B6gB,KAAKqF,QAAQlmB,UAAUlB,KAAK+hB,KAAMihB,EAAKjhB,KAAKoF,UAAYpF,KAAKqF,QAAQlmB,UAChI0jC,EAAahD,GAAc1gC,EAAU8lB,eAC3C,OAAO,GAAoBjF,KAAKoF,SAAU6b,EAAKjhB,KAAK6S,iBAAiBgQ,GACvE,CAEA5P,aACE,MAAM,OACJxqB,GACEuX,KAAKqF,QAET,MAAsB,iBAAX5c,EACFA,EAAO9F,MAAM,KAAKY,KAAInF,GAASmf,OAAO+P,SAASlvB,EAAO,MAGzC,mBAAXqK,EACFyqB,GAAczqB,EAAOyqB,EAAYlT,KAAKoF,UAGxC3c,CACT,CAEAs1B,yBAAyBU,GACvB,MAAsB,mBAARA,EAAqBA,EAAIxgC,KAAK+hB,KAAKoF,UAAYqZ,CAC/D,CAEA5L,iBAAiBgQ,GACf,MAAM1P,EAAwB,CAC5Bh0B,UAAW0jC,EACXhsB,UAAW,CAAC,CACV9V,KAAM,OACNmB,QAAS,CACPuO,mBAAoBuP,KAAKqF,QAAQ5U,qBAElC,CACD1P,KAAM,SACNmB,QAAS,CACPuG,OAAQuX,KAAKiT,eAEd,CACDlyB,KAAM,kBACNmB,QAAS,CACPwM,SAAUsR,KAAKqF,QAAQ3W,WAExB,CACD3N,KAAM,QACNmB,QAAS,CACPlC,QAAS,IAAIggB,KAAK0E,YAAYjI,eAE/B,CACD1b,KAAM,kBACNC,SAAS,EACTC,MAAO,aACPC,GAAI4J,IAGFkV,KAAK8hB,iBAAiBjgC,aAAa,wBAAyBiJ,EAAK1J,MAAMjC,UAAU,KAIvF,MAAO,IAAKg0B,KAC+B,mBAA9BnT,KAAKqF,QAAQ4M,aAA8BjS,KAAKqF,QAAQ4M,aAAakB,GAAyBnT,KAAKqF,QAAQ4M,aAE1H,CAEAiP,gBACE,MAAM4B,EAAW9iB,KAAKqF,QAAQ5D,QAAQ9e,MAAM,KAE5C,IAAK,MAAM8e,KAAWqhB,EACpB,GAAgB,UAAZrhB,EACFlB,GAAaY,GAAGnB,KAAKoF,SAAUpF,KAAK0E,YAAYiJ,UA3YlC,SA2Y4D3N,KAAKqF,QAAQtL,UAAUqF,IAC/EY,KAAK2iB,6BAA6BvjB,GAE1C2H,QAAQ,SAEb,GAtZU,WAsZNtF,EAA4B,CACrC,MAAMshB,EAAUthB,IAAYke,GAAgB3f,KAAK0E,YAAYiJ,UA9Y5C,cA8Y0E3N,KAAK0E,YAAYiJ,UAhZ5F,WAiZVqV,EAAWvhB,IAAYke,GAAgB3f,KAAK0E,YAAYiJ,UA9Y7C,cA8Y2E3N,KAAK0E,YAAYiJ,UAhZ5F,YAiZjBpN,GAAaY,GAAGnB,KAAKoF,SAAU2d,EAAS/iB,KAAKqF,QAAQtL,UAAUqF,IAC7D,MAAMkU,EAAUtT,KAAK2iB,6BAA6BvjB,GAElDkU,EAAQwN,eAA8B,YAAf1hB,EAAMqB,KAAqBmf,GAAgBD,KAAiB,EAEnFrM,EAAQmO,QAAQ,IAElBlhB,GAAaY,GAAGnB,KAAKoF,SAAU4d,EAAUhjB,KAAKqF,QAAQtL,UAAUqF,IAC9D,MAAMkU,EAAUtT,KAAK2iB,6BAA6BvjB,GAElDkU,EAAQwN,eAA8B,aAAf1hB,EAAMqB,KAAsBmf,GAAgBD,IAAiBrM,EAAQlO,SAASngB,SAASma,EAAMU,eAEpHwT,EAAQkO,QAAQ,GAEpB,CAGFxhB,KAAK0hB,kBAAoB,KACnB1hB,KAAKoF,UACPpF,KAAK4P,MACP,EAGFrP,GAAaY,GAAGnB,KAAKoF,SAASjK,QAAQskB,IAAiBC,GAAkB1f,KAAK0hB,kBAChF,CAEAP,YACE,MAAMX,EAAQxgB,KAAKoF,SAASpL,aAAa,SAEpCwmB,IAIAxgB,KAAKoF,SAASpL,aAAa,eAAkBgG,KAAKoF,SAASwZ,YAAYxkB,QAC1E4F,KAAKoF,SAASvjB,aAAa,aAAc2+B,GAG3CxgB,KAAKoF,SAASvjB,aAAa,yBAA0B2+B,GAGrDxgB,KAAKoF,SAASxjB,gBAAgB,SAChC,CAEA6/B,SACMzhB,KAAK2P,YAAc3P,KAAK6gB,WAC1B7gB,KAAK6gB,YAAa,GAIpB7gB,KAAK6gB,YAAa,EAElB7gB,KAAKijB,aAAY,KACXjjB,KAAK6gB,YACP7gB,KAAK6P,MACP,GACC7P,KAAKqF,QAAQkb,MAAM1Q,MACxB,CAEA2R,SACMxhB,KAAK+hB,yBAIT/hB,KAAK6gB,YAAa,EAElB7gB,KAAKijB,aAAY,KACVjjB,KAAK6gB,YACR7gB,KAAK4P,MACP,GACC5P,KAAKqF,QAAQkb,MAAM3Q,MACxB,CAEAqT,YAAYrlB,EAASslB,GACnBjW,aAAajN,KAAK4gB,UAClB5gB,KAAK4gB,SAAW/iB,WAAWD,EAASslB,EACtC,CAEAnB,uBACE,OAAOtkC,OAAO0hB,OAAOa,KAAK8gB,gBAAgB5mB,UAAS,EACrD,CAEAkK,WAAWC,GACT,MAAM8e,EAAiB5f,GAAYG,kBAAkB1D,KAAKoF,UAE1D,IAAK,MAAMge,KAAiB3lC,OAAO4D,KAAK8hC,GAClC7D,GAAsBloB,IAAIgsB,WACrBD,EAAeC,GAY1B,OARA/e,EAAS,IAAK8e,KACU,iBAAX9e,GAAuBA,EAASA,EAAS,CAAC,GAEvDA,EAASrE,KAAKsE,gBAAgBD,GAC9BA,EAASrE,KAAKuE,kBAAkBF,GAEhCrE,KAAKwE,iBAAiBH,GAEfA,CACT,CAEAE,kBAAkBF,GAkBhB,OAjBAA,EAAOgc,WAAiC,IAArBhc,EAAOgc,UAAsBv6B,SAAS6G,KAAOkO,GAAWwJ,EAAOgc,WAEtD,iBAAjBhc,EAAOkc,QAChBlc,EAAOkc,MAAQ,CACb1Q,KAAMxL,EAAOkc,MACb3Q,KAAMvL,EAAOkc,QAIW,iBAAjBlc,EAAOmc,QAChBnc,EAAOmc,MAAQnc,EAAOmc,MAAMlgC,YAGA,iBAAnB+jB,EAAOgZ,UAChBhZ,EAAOgZ,QAAUhZ,EAAOgZ,QAAQ/8B,YAG3B+jB,CACT,CAEAue,qBACE,MAAMve,EAAS,CAAC,EAEhB,IAAK,MAAM9mB,KAAOyiB,KAAKqF,QACjBrF,KAAK0E,YAAYT,QAAQ1mB,KAASyiB,KAAKqF,QAAQ9nB,KACjD8mB,EAAO9mB,GAAOyiB,KAAKqF,QAAQ9nB,IAS/B,OALA8mB,EAAOtK,UAAW,EAClBsK,EAAO5C,QAAU,SAIV4C,CACT,CAEAsd,iBACM3hB,KAAKoS,UACPpS,KAAKoS,QAAQ3Y,UAEbuG,KAAKoS,QAAU,MAGbpS,KAAKihB,MACPjhB,KAAKihB,IAAIle,SACT/C,KAAKihB,IAAM,KAEf,CAGApb,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAO41B,GAAQra,oBAAoBrG,KAAMqE,GAE/C,GAAsB,iBAAXA,EAAX,CAIA,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IANL,CAOF,GACF,EAQFhI,GAAmBqkB,IAYnB,MAGM2C,GAAY,IAAK3C,GAAQzc,QAC7BoZ,QAAS,GACT50B,OAAQ,CAAC,EAAG,GACZtJ,UAAW,QACXs+B,SAAU,8IACVhc,QAAS,SAEL6hB,GAAgB,IAAK5C,GAAQxc,YACjCmZ,QAAS,kCAMX,MAAMkG,WAAgB7C,GAETzc,qBACT,OAAOof,EACT,CAEWnf,yBACT,OAAOof,EACT,CAEW7mB,kBACT,MA5BW,SA6Bb,CAGAmlB,iBACE,OAAO5hB,KAAKgiB,aAAehiB,KAAKwjB,aAClC,CAGAtB,yBACE,MAAO,CACL,kBAAkBliB,KAAKgiB,YACvB,gBAAoBhiB,KAAKwjB,cAE7B,CAEAA,cACE,OAAOxjB,KAAK+d,yBAAyB/d,KAAKqF,QAAQgY,QACpD,CAGAxX,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOy4B,GAAQld,oBAAoBrG,KAAMqE,GAE/C,GAAsB,iBAAXA,EAAX,CAIA,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IANL,CAOF,GACF,EAQFhI,GAAmBknB,IAYnB,MAEME,GAAc,gBAEdC,GAAiB,WAAWD,KAC5BE,GAAc,QAAQF,KACtBG,GAAwB,OAAOH,cAE/BI,GAAsB,SAEtBC,GAAwB,SAExBC,GAAqB,YAGrBC,GAAsB,GAAGD,mBAA+CA,uBAGxEE,GAAY,CAChBx7B,OAAQ,KAERy7B,WAAY,eACZC,cAAc,EACdn3B,OAAQ,KACRo3B,UAAW,CAAC,GAAK,GAAK,IAElBC,GAAgB,CACpB57B,OAAQ,gBAERy7B,WAAY,SACZC,aAAc,UACdn3B,OAAQ,UACRo3B,UAAW,SAMb,MAAME,WAAkBpf,GACtBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GAEfrE,KAAKukB,aAAe,IAAI5yB,IACxBqO,KAAKwkB,oBAAsB,IAAI7yB,IAC/BqO,KAAKykB,aAA6D,YAA9C/+B,iBAAiBsa,KAAKoF,UAAU3Y,UAA0B,KAAOuT,KAAKoF,SAC1FpF,KAAK0kB,cAAgB,KACrB1kB,KAAK2kB,UAAY,KACjB3kB,KAAK4kB,oBAAsB,CACzBC,gBAAiB,EACjBC,gBAAiB,GAEnB9kB,KAAK+kB,SACP,CAGW9gB,qBACT,OAAOggB,EACT,CAEW/f,yBACT,OAAOmgB,EACT,CAEW5nB,kBACT,MAhEW,WAiEb,CAGAsoB,UACE/kB,KAAKglB,mCAELhlB,KAAKilB,2BAEDjlB,KAAK2kB,UACP3kB,KAAK2kB,UAAUO,aAEfllB,KAAK2kB,UAAY3kB,KAAKmlB,kBAGxB,IAAK,MAAMC,KAAWplB,KAAKwkB,oBAAoBrlB,SAC7Ca,KAAK2kB,UAAUU,QAAQD,EAE3B,CAEA7f,UACEvF,KAAK2kB,UAAUO,aAEf/f,MAAMI,SACR,CAGAhB,kBAAkBF,GAUhB,OARAA,EAAOrX,OAAS6N,GAAWwJ,EAAOrX,SAAWlH,SAAS6G,KAEtD0X,EAAO6f,WAAa7f,EAAO5b,OAAS,GAAG4b,EAAO5b,oBAAsB4b,EAAO6f,WAE3C,iBAArB7f,EAAO+f,YAChB/f,EAAO+f,UAAY/f,EAAO+f,UAAUzhC,MAAM,KAAKY,KAAInF,GAASmf,OAAOC,WAAWpf,MAGzEimB,CACT,CAEA4gB,2BACOjlB,KAAKqF,QAAQ8e,eAKlB5jB,GAAaC,IAAIR,KAAKqF,QAAQrY,OAAQ22B,IACtCpjB,GAAaY,GAAGnB,KAAKqF,QAAQrY,OAAQ22B,GAAaG,IAAuB1kB,IACvE,MAAMkmB,EAAoBtlB,KAAKwkB,oBAAoB5mC,IAAIwhB,EAAMpS,OAAOtB,MAEpE,GAAI45B,EAAmB,CACrBlmB,EAAM+C,iBACN,MAAMtG,EAAOmE,KAAKykB,cAAgBpkC,OAC5BmE,EAAS8gC,EAAkBxgC,UAAYkb,KAAKoF,SAAStgB,UAE3D,GAAI+W,EAAK0pB,SAKP,YAJA1pB,EAAK0pB,SAAS,CACZnjC,IAAKoC,EACLghC,SAAU,WAMd3pB,EAAK3P,UAAY1H,CACnB,KAEJ,CAEA2gC,kBACE,MAAMjjC,EAAU,CACd2Z,KAAMmE,KAAKykB,aACXL,UAAWpkB,KAAKqF,QAAQ+e,UACxBF,WAAYlkB,KAAKqF,QAAQ6e,YAE3B,OAAO,IAAIuB,sBAAqBpjB,GAAWrC,KAAK0lB,kBAAkBrjB,IAAUngB,EAC9E,CAGAwjC,kBAAkBrjB,GAChB,MAAMsjB,EAAgB/H,GAAS5d,KAAKukB,aAAa3mC,IAAI,IAAIggC,EAAM5wB,OAAO44B,MAEhE3O,EAAW2G,IACf5d,KAAK4kB,oBAAoBC,gBAAkBjH,EAAM5wB,OAAOlI,UAExDkb,KAAK6lB,SAASF,EAAc/H,GAAO,EAG/BkH,GAAmB9kB,KAAKykB,cAAgB3+B,SAASC,iBAAiBmG,UAClE45B,EAAkBhB,GAAmB9kB,KAAK4kB,oBAAoBE,gBACpE9kB,KAAK4kB,oBAAoBE,gBAAkBA,EAE3C,IAAK,MAAMlH,KAASvb,EAAS,CAC3B,IAAKub,EAAMmI,eAAgB,CACzB/lB,KAAK0kB,cAAgB,KAErB1kB,KAAKgmB,kBAAkBL,EAAc/H,IAErC,QACF,CAEA,MAAMqI,EAA2BrI,EAAM5wB,OAAOlI,WAAakb,KAAK4kB,oBAAoBC,gBAEpF,GAAIiB,GAAmBG,GAGrB,GAFAhP,EAAS2G,IAEJkH,EACH,YAOCgB,GAAoBG,GACvBhP,EAAS2G,EAEb,CACF,CAEAoH,mCACEhlB,KAAKukB,aAAe,IAAI5yB,IACxBqO,KAAKwkB,oBAAsB,IAAI7yB,IAC/B,MAAMu0B,EAAcjf,GAAerU,KAAKkxB,GAAuB9jB,KAAKqF,QAAQrY,QAE5E,IAAK,MAAMm5B,KAAUD,EAAa,CAEhC,IAAKC,EAAOz6B,MAAQ2P,GAAW8qB,GAC7B,SAGF,MAAMb,EAAoBre,GAAeC,QAAQif,EAAOz6B,KAAMsU,KAAKoF,UAE/DtK,GAAUwqB,KACZtlB,KAAKukB,aAAa/xB,IAAI2zB,EAAOz6B,KAAMy6B,GAEnCnmB,KAAKwkB,oBAAoBhyB,IAAI2zB,EAAOz6B,KAAM45B,GAE9C,CACF,CAEAO,SAAS74B,GACHgT,KAAK0kB,gBAAkB13B,IAI3BgT,KAAKgmB,kBAAkBhmB,KAAKqF,QAAQrY,QAEpCgT,KAAK0kB,cAAgB13B,EACrBA,EAAOwO,UAAUtE,IAAI2sB,IAErB7jB,KAAKomB,iBAAiBp5B,GAEtBuT,GAAakB,QAAQzB,KAAKoF,SAAUse,GAAgB,CAClD5jB,cAAe9S,IAEnB,CAEAo5B,iBAAiBp5B,GAEf,GAAIA,EAAOwO,UAAUvW,SAzNQ,iBA0N3BgiB,GAAeC,QAhNc,mBAgNsBla,EAAOmO,QAjNtC,cAiNkEK,UAAUtE,IAAI2sB,SAItG,IAAK,MAAMwC,KAAapf,GAAeI,QAAQra,EA1NnB,qBA6N1B,IAAK,MAAMxJ,KAAQyjB,GAAeM,KAAK8e,EAAWrC,IAChDxgC,EAAKgY,UAAUtE,IAAI2sB,GAGzB,CAEAmC,kBAAkB9gC,GAChBA,EAAOsW,UAAUuH,OAAO8gB,IACxB,MAAMyC,EAAcrf,GAAerU,KAAK,GAAGkxB,MAAyBD,KAAuB3+B,GAE3F,IAAK,MAAM9E,KAAQkmC,EACjBlmC,EAAKob,UAAUuH,OAAO8gB,GAE1B,CAGAhe,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAOw5B,GAAUje,oBAAoBrG,KAAMqE,GAEjD,GAAsB,iBAAXA,EAAX,CAIA,QAAqB7K,IAAjB1O,EAAKuZ,IAAyBA,EAAOlK,WAAW,MAAmB,gBAAXkK,EAC1D,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IANL,CAOF,GACF,EAQF9D,GAAaY,GAAG9gB,OAAQujC,IAAuB,KAC7C,IAAK,MAAM2C,KAAOtf,GAAerU,KAtQT,0BAuQtB0xB,GAAUje,oBAAoBkgB,EAChC,IAMFlqB,GAAmBioB,IAYnB,MAEMkC,GAAc,UACdC,GAAe,OAAOD,KACtBE,GAAiB,SAASF,KAC1BG,GAAe,OAAOH,KACtBI,GAAgB,QAAQJ,KACxBK,GAAuB,QAAQL,KAC/BM,GAAgB,UAAUN,KAC1BO,GAAsB,OAAOP,KAC7BQ,GAAiB,YACjBC,GAAkB,aAClBC,GAAe,UACfC,GAAiB,YACjBC,GAAoB,SACpBC,GAAoB,OACpBC,GAAoB,OAIpBC,GAA+B,yBAI/BC,GAAuB,2EAEvBC,GAAsB,YAHOF,uBAAiDA,mBAA6CA,OAG/EC,KAC5CE,GAA8B,IAAIN,8BAA6CA,+BAA8CA,4BAKnI,MAAMO,WAAYziB,GAChBR,YAAY1kB,GACVmlB,MAAMnlB,GACNggB,KAAKqS,QAAUrS,KAAKoF,SAASjK,QAdN,uCAgBlB6E,KAAKqS,UAMVrS,KAAK4nB,sBAAsB5nB,KAAKqS,QAASrS,KAAK6nB,gBAE9CtnB,GAAaY,GAAGnB,KAAKoF,SAAU0hB,IAAe1nB,GAASY,KAAK4M,SAASxN,KACvE,CAGW3C,kBACT,MAlDW,KAmDb,CAGAoT,OAEE,MAAMiY,EAAY9nB,KAAKoF,SAEvB,GAAIpF,KAAK+nB,cAAcD,GACrB,OAIF,MAAME,EAAShoB,KAAKioB,iBAEdC,EAAYF,EAASznB,GAAakB,QAAQumB,EAAQvB,GAAc,CACpE3mB,cAAegoB,IACZ,KACavnB,GAAakB,QAAQqmB,EAAWnB,GAAc,CAC9D7mB,cAAekoB,IAGHnmB,kBAAoBqmB,GAAaA,EAAUrmB,mBAIzD7B,KAAKmoB,YAAYH,EAAQF,GAEzB9nB,KAAKooB,UAAUN,EAAWE,GAC5B,CAGAI,UAAUpoC,EAASqoC,GACZroC,IAILA,EAAQwb,UAAUtE,IAAIkwB,IAEtBpnB,KAAKooB,UAAU9tB,GAAuBta,IAmBtCggB,KAAK2F,gBAhBY,KACsB,QAAjC3lB,EAAQga,aAAa,SAKzBha,EAAQ4B,gBAAgB,YACxB5B,EAAQ6B,aAAa,iBAAiB,GAEtCme,KAAKsoB,gBAAgBtoC,GAAS,GAE9BugB,GAAakB,QAAQzhB,EAAS4mC,GAAe,CAC3C9mB,cAAeuoB,KAVfroC,EAAQwb,UAAUtE,IAAIowB,GAWtB,GAG0BtnC,EAASA,EAAQwb,UAAUvW,SAASoiC,KACpE,CAEAc,YAAYnoC,EAASqoC,GACdroC,IAILA,EAAQwb,UAAUuH,OAAOqkB,IACzBpnC,EAAQ+6B,OAER/a,KAAKmoB,YAAY7tB,GAAuBta,IAmBxCggB,KAAK2F,gBAhBY,KACsB,QAAjC3lB,EAAQga,aAAa,SAKzBha,EAAQ6B,aAAa,iBAAiB,GACtC7B,EAAQ6B,aAAa,WAAY,MAEjCme,KAAKsoB,gBAAgBtoC,GAAS,GAE9BugB,GAAakB,QAAQzhB,EAAS0mC,GAAgB,CAC5C5mB,cAAeuoB,KAVfroC,EAAQwb,UAAUuH,OAAOukB,GAWzB,GAG0BtnC,EAASA,EAAQwb,UAAUvW,SAASoiC,KACpE,CAEAza,SAASxN,GACP,IAAK,CAAC4nB,GAAgBC,GAAiBC,GAAcC,IAAgBjtB,SAASkF,EAAM7hB,KAClF,OAGF6hB,EAAMyU,kBAENzU,EAAM+C,iBACN,MAAMoL,EAAS,CAAC0Z,GAAiBE,IAAgBjtB,SAASkF,EAAM7hB,KAC1DgrC,EAAoBzqB,GAAqBkC,KAAK6nB,eAAejhC,QAAO5G,IAAYqb,GAAWrb,KAAWof,EAAMpS,OAAQugB,GAAQ,GAE9Hgb,IACFA,EAAkB7V,MAAM,CACtB8V,eAAe,IAEjBb,GAAIthB,oBAAoBkiB,GAAmB1Y,OAE/C,CAEAgY,eAEE,OAAO5gB,GAAerU,KAAK60B,GAAqBznB,KAAKqS,QACvD,CAEA4V,iBACE,OAAOjoB,KAAK6nB,eAAej1B,MAAKzN,GAAS6a,KAAK+nB,cAAc5iC,MAAW,IACzE,CAEAyiC,sBAAsB1iC,EAAQiiB,GAC5BnH,KAAKyoB,yBAAyBvjC,EAAQ,OAAQ,WAE9C,IAAK,MAAMC,KAASgiB,EAClBnH,KAAK0oB,6BAA6BvjC,EAEtC,CAEAujC,6BAA6BvjC,GAC3BA,EAAQ6a,KAAK2oB,iBAAiBxjC,GAE9B,MAAMyjC,EAAW5oB,KAAK+nB,cAAc5iC,GAE9B0jC,EAAY7oB,KAAK8oB,iBAAiB3jC,GAExCA,EAAMtD,aAAa,gBAAiB+mC,GAEhCC,IAAc1jC,GAChB6a,KAAKyoB,yBAAyBI,EAAW,OAAQ,gBAG9CD,GACHzjC,EAAMtD,aAAa,WAAY,MAGjCme,KAAKyoB,yBAAyBtjC,EAAO,OAAQ,OAG7C6a,KAAK+oB,mCAAmC5jC,EAC1C,CAEA4jC,mCAAmC5jC,GACjC,MAAM6H,EAASsN,GAAuBnV,GAEjC6H,IAILgT,KAAKyoB,yBAAyBz7B,EAAQ,OAAQ,YAE1C7H,EAAMygC,IACR5lB,KAAKyoB,yBAAyBz7B,EAAQ,kBAAmB,IAAI7H,EAAMygC,MAEvE,CAEA0C,gBAAgBtoC,EAASgpC,GACvB,MAAMH,EAAY7oB,KAAK8oB,iBAAiB9oC,GAExC,IAAK6oC,EAAUrtB,UAAUvW,SAxMN,YAyMjB,OAGF,MAAM8hB,EAAS,CAAChN,EAAU2b,KACxB,MAAM11B,EAAUinB,GAAeC,QAAQnN,EAAU8uB,GAE7C7oC,GACFA,EAAQwb,UAAUuL,OAAO2O,EAAWsT,EACtC,EAGFjiB,EAnN6B,mBAmNIqgB,IACjCrgB,EAnN2B,iBAmNIugB,IAC/BuB,EAAUhnC,aAAa,gBAAiBmnC,EAC1C,CAEAP,yBAAyBzoC,EAASwC,EAAWpE,GACtC4B,EAAQ0b,aAAalZ,IACxBxC,EAAQ6B,aAAaW,EAAWpE,EAEpC,CAEA2pC,cAAczY,GACZ,OAAOA,EAAK9T,UAAUvW,SAASmiC,GACjC,CAGAuB,iBAAiBrZ,GACf,OAAOA,EAAKlI,QAAQqgB,IAAuBnY,EAAOrI,GAAeC,QAAQugB,GAAqBnY,EAChG,CAGAwZ,iBAAiBxZ,GACf,OAAOA,EAAKnU,QArOO,gCAqOoBmU,CACzC,CAGAzJ,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAO68B,GAAIthB,oBAAoBrG,MAErC,GAAsB,iBAAXqE,EAAX,CAIA,QAAqB7K,IAAjB1O,EAAKuZ,IAAyBA,EAAOlK,WAAW,MAAmB,gBAAXkK,EAC1D,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,IANL,CAOF,GACF,EAQF9D,GAAaY,GAAGrb,SAAU+gC,GAAsBW,IAAsB,SAAUpoB,GAC1E,CAAC,IAAK,QAAQlF,SAAS8F,KAAKoG,UAC9BhH,EAAM+C,iBAGJ9G,GAAW2E,OAIf2nB,GAAIthB,oBAAoBrG,MAAM6P,MAChC,IAKAtP,GAAaY,GAAG9gB,OAAQ0mC,IAAqB,KAC3C,IAAK,MAAM/mC,KAAWinB,GAAerU,KAAK80B,IACxCC,GAAIthB,oBAAoBrmB,EAC1B,IAMFqc,GAAmBsrB,IAYnB,MAEMniB,GAAY,YACZyjB,GAAkB,YAAYzjB,KAC9B0jB,GAAiB,WAAW1jB,KAC5B2jB,GAAgB,UAAU3jB,KAC1B4jB,GAAiB,WAAW5jB,KAC5B6jB,GAAa,OAAO7jB,KACpB8jB,GAAe,SAAS9jB,KACxB+jB,GAAa,OAAO/jB,KACpBgkB,GAAc,QAAQhkB,KAEtBikB,GAAkB,OAElBC,GAAkB,OAClBC,GAAqB,UACrBzlB,GAAc,CAClBkc,UAAW,UACXwJ,SAAU,UACVrJ,MAAO,UAEHtc,GAAU,CACdmc,WAAW,EACXwJ,UAAU,EACVrJ,MAAO,KAMT,MAAMsJ,WAAc3kB,GAClBR,YAAY1kB,EAASqkB,GACnBc,MAAMnlB,EAASqkB,GACfrE,KAAK4gB,SAAW,KAChB5gB,KAAK8pB,sBAAuB,EAC5B9pB,KAAK+pB,yBAA0B,EAE/B/pB,KAAKkhB,eACP,CAGWjd,qBACT,OAAOA,EACT,CAEWC,yBACT,OAAOA,EACT,CAEWzH,kBACT,MAlDS,OAmDX,CAGAoT,OACoBtP,GAAakB,QAAQzB,KAAKoF,SAAUmkB,IAExC1nB,mBAId7B,KAAKgqB,gBAEDhqB,KAAKqF,QAAQ+a,WACfpgB,KAAKoF,SAAS5J,UAAUtE,IArDN,QAgEpB8I,KAAKoF,SAAS5J,UAAUuH,OAAO0mB,IAG/B1tB,GAAOiE,KAAKoF,UAEZpF,KAAKoF,SAAS5J,UAAUtE,IAAIwyB,GAAiBC,IAE7C3pB,KAAK2F,gBAfY,KACf3F,KAAKoF,SAAS5J,UAAUuH,OAAO4mB,IAE/BppB,GAAakB,QAAQzB,KAAKoF,SAAUokB,IAEpCxpB,KAAKiqB,oBAAoB,GAUGjqB,KAAKoF,SAAUpF,KAAKqF,QAAQ+a,WAC5D,CAEAxQ,OACO5P,KAAKkqB,YAIQ3pB,GAAakB,QAAQzB,KAAKoF,SAAUikB,IAExCxnB,mBAad7B,KAAKoF,SAAS5J,UAAUtE,IAAIyyB,IAE5B3pB,KAAK2F,gBAXY,KACf3F,KAAKoF,SAAS5J,UAAUtE,IAAIuyB,IAG5BzpB,KAAKoF,SAAS5J,UAAUuH,OAAO4mB,GAAoBD,IAEnDnpB,GAAakB,QAAQzB,KAAKoF,SAAUkkB,GAAa,GAKrBtpB,KAAKoF,SAAUpF,KAAKqF,QAAQ+a,YAC5D,CAEA7a,UACEvF,KAAKgqB,gBAEDhqB,KAAKkqB,WACPlqB,KAAKoF,SAAS5J,UAAUuH,OAAO2mB,IAGjCvkB,MAAMI,SACR,CAEA2kB,UACE,OAAOlqB,KAAKoF,SAAS5J,UAAUvW,SAASykC,GAC1C,CAGAO,qBACOjqB,KAAKqF,QAAQukB,WAId5pB,KAAK8pB,sBAAwB9pB,KAAK+pB,0BAItC/pB,KAAK4gB,SAAW/iB,YAAW,KACzBmC,KAAK4P,MAAM,GACV5P,KAAKqF,QAAQkb,QAClB,CAEA4J,eAAe/qB,EAAOgrB,GACpB,OAAQhrB,EAAMqB,MACZ,IAAK,YACL,IAAK,WAEDT,KAAK8pB,qBAAuBM,EAC5B,MAGJ,IAAK,UACL,IAAK,WAEDpqB,KAAK+pB,wBAA0BK,EAKrC,GAAIA,EAGF,YAFApqB,KAAKgqB,gBAKP,MAAMxc,EAAcpO,EAAMU,cAEtBE,KAAKoF,WAAaoI,GAAexN,KAAKoF,SAASngB,SAASuoB,IAI5DxN,KAAKiqB,oBACP,CAEA/I,gBACE3gB,GAAaY,GAAGnB,KAAKoF,SAAU6jB,IAAiB7pB,GAASY,KAAKmqB,eAAe/qB,GAAO,KACpFmB,GAAaY,GAAGnB,KAAKoF,SAAU8jB,IAAgB9pB,GAASY,KAAKmqB,eAAe/qB,GAAO,KACnFmB,GAAaY,GAAGnB,KAAKoF,SAAU+jB,IAAe/pB,GAASY,KAAKmqB,eAAe/qB,GAAO,KAClFmB,GAAaY,GAAGnB,KAAKoF,SAAUgkB,IAAgBhqB,GAASY,KAAKmqB,eAAe/qB,GAAO,IACrF,CAEA4qB,gBACE/c,aAAajN,KAAK4gB,UAClB5gB,KAAK4gB,SAAW,IAClB,CAGA/a,uBAAuBxB,GACrB,OAAOrE,KAAK4G,MAAK,WACf,MAAM9b,EAAO++B,GAAMxjB,oBAAoBrG,KAAMqE,GAE7C,GAAsB,iBAAXA,EAAqB,CAC9B,QAA4B,IAAjBvZ,EAAKuZ,GACd,MAAM,IAAIW,UAAU,oBAAoBX,MAG1CvZ,EAAKuZ,GAAQrE,KACf,CACF,GACF,ECxjKK,IAAuBzD,GDgkK9ByJ,GAAqB6jB,IAKrBxtB,GAAmBwtB,ICrkKWttB,GCK9B,WAC2B,GAAG1J,MAAM5U,KAChC6H,SAASsa,iBAAiB,+BAET7c,KAAI,SAAU8mC,GAC/B,OAAO,IAAI3J,GAAQ2J,EAAkB,CAAE9J,MAAO,CAAE1Q,KAAM,IAAKD,KAAM,MACnE,GACF,EDX6B,WAAvB9pB,SAASgX,WAAyBP,KACjCzW,SAASyF,iBAAiB,mBAAoBgR","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * Public Util API\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n\n return typeof object.nodeType !== 'undefined';\n};\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object);\n }\n\n return null;\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n const closedDetails = element.closest('details:not([open])');\n\n if (!closedDetails) {\n return elementIsVisible;\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n\n if (summary === null) {\n return false;\n }\n }\n\n return elementIsVisible;\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n };\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n\n return [isDelegated, callable, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n callable = wrapFunction(callable);\n }\n\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\n evt = hydrateObj(evt, args);\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\n\nfunction hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (value === Number(value).toString()) {\n return Number(value);\n }\n\n if (value === '' || value === 'null') {\n return null;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n\n static get DefaultType() {\n return {};\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3';\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n\n if (!element || !Swipe.isSupported()) {\n return;\n }\n\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n\n this._initEvents();\n } // Getters\n\n\n static get Default() {\n return Default$c;\n }\n\n static get DefaultType() {\n return DefaultType$c;\n }\n\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n } // Private\n\n\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n\n this._handleSwipe();\n\n execute(this._config.endCallback);\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n\n if (!direction) {\n return;\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n } // Static\n\n\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n\n this._addEventListeners();\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$b;\n }\n\n static get DefaultType() {\n return DefaultType$b;\n }\n\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n\n this._clearInterval();\n }\n\n cycle() {\n this._clearInterval();\n\n this._updateInterval();\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n\n this.cycle();\n }\n\n to(index) {\n const items = this._getItems();\n\n if (index > items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n const activeIndex = this._getItemIndex(this._getActive());\n\n if (activeIndex === index) {\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, items[index]);\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n } // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(this._directionToOrder(direction));\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n\n const activeElement = this._getActive();\n\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n\n if (nextElement === activeElement) {\n return;\n }\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n\n const slideEvent = triggerEvent(EVENT_SLIDE);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return;\n }\n\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n\n this._setActiveIndicatorElement(nextElementIndex);\n\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n carousel.to(slideIndex);\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n carousel.prev();\n\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get DefaultType() {\n return DefaultType$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n for (const trigger of this._triggerArray) {\n const element = getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n\n for (const element of children) {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get DefaultType() {\n return DefaultType$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._createPopper(); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n\n _getConfig(config) {\n config = super._getConfig(config);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getPlacement() {\n const parentDropdown = this._parent;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display or Dropdown is in Navbar\n\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove\n\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n\n if (isInput && !isEscapeEvent) {\n return;\n }\n\n event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n } // Public\n\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n } // Private\n\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProperty);\n\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero\n\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n const element = this._getElement();\n\n if (this._config.isAnimated) {\n reflow(element);\n }\n\n element.classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n const element = this._getElement();\n\n this._config.rootElement.append(element);\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n } // Getters\n\n\n static get Default() {\n return Default$7;\n }\n\n static get DefaultType() {\n return DefaultType$7;\n }\n\n static get NAME() {\n return NAME$8;\n } // Public\n\n\n activate() {\n if (this._isActive) {\n return;\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$6;\n }\n\n static get DefaultType() {\n return DefaultType$6;\n }\n\n static get NAME() {\n return NAME$7;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._isTransitioning = true;\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n this._isTransitioning = true;\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY$4);\n }\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n\n if (this._config.keyboard) {\n event.preventDefault();\n this.hide();\n return;\n }\n\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n\n return;\n }\n\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed\n\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n\n this._element.focus();\n }\n /**\n * The following methods are used to handle overflowing modals\n */\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking modal toggler while another one is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get DefaultType() {\n return DefaultType$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.add(CLASS_NAME_HIDING);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n }; // 'static' option will be translated to true, and booleans will keep their value\n\n\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n\n if (!this._config.keyboard) {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n } // Check if a regular expression validates the attribute.\n\n\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\n\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n } // Getters\n\n\n static get Default() {\n return Default$4;\n }\n\n static get DefaultType() {\n return DefaultType$4;\n }\n\n static get NAME() {\n return NAME$5;\n } // Public\n\n\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n\n hasContent() {\n return this.getContent().length > 0;\n }\n\n changeContent(content) {\n this._checkContent(content);\n\n this._config.content = { ...this._config.content,\n ...content\n };\n return this;\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n\n const template = templateWrapper.children[0];\n\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n\n return template;\n } // Private\n\n\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n\n this._checkContent(config.content);\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!templateElement) {\n return;\n }\n\n content = this._resolvePossibleFunction(content);\n\n if (!content) {\n templateElement.remove();\n return;\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n\n return;\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n\n templateElement.textContent = content;\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg(this) : arg;\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n\n templateElement.textContent = element.textContent;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 0],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element, config); // Private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null; // Protected\n\n this.tip = null;\n\n this._setListeners();\n\n if (!this._config.selector) {\n this._fixTitle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n }\n\n static get NAME() {\n return NAME$4;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n\n this._activeTrigger.click = !this._activeTrigger.click;\n\n if (this._isShown()) {\n this._leave();\n\n return;\n }\n\n this._enter();\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // todo v6 remove this OR make it optional\n\n\n this._disposePopper();\n\n const tip = this._getTipElement();\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n\n const {\n container\n } = this._config;\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n\n if (this._isHovered === false) {\n this._leave();\n }\n\n this._isHovered = false;\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n hide() {\n if (!this._isShown()) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const tip = this._getTipElement();\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (!this._isHovered) {\n this._disposePopper();\n }\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n update() {\n if (this._popper) {\n this._popper.update();\n }\n } // Protected\n\n\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n\n return this.tip;\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6\n\n\n if (!tip) {\n return null;\n }\n\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only\n\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n return tip;\n }\n\n setContent(content) {\n this._newContent = content;\n\n if (this._isShown()) {\n this._disposePopper();\n\n this.show();\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({ ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n\n return this._templateFactory;\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n } // Private\n\n\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n\n _createPopper(tip) {\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg.call(this._element) : arg;\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n\n context._leave();\n });\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n if (!title) {\n return;\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n\n\n this._element.removeAttribute('title');\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n\n this._isHovered = true;\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n this._isHovered = false;\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n\n config = { ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n }\n\n config.selector = false;\n config.trigger = 'manual'; // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n return config;\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = { ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n }\n\n static get NAME() {\n return NAME$3;\n } // Overrides\n\n\n _isWithContent() {\n return this._getTitle() || this._getContent();\n } // Private\n\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper\n\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get DefaultType() {\n return DefaultType$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n this._initializeTargetsAndObservables();\n\n this._maybeEnableSmoothScroll();\n\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n\n dispose() {\n this._observer.disconnect();\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n\n return config;\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n } // unregister any previous listeners\n\n\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n } // Chrome 60 doesn't support `scrollTo`\n\n\n root.scrollTop = height;\n }\n });\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n } // The logic of selection\n\n\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n\n this._process(targetElement(entry));\n };\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n\n this._clearActiveClass(targetElement(entry));\n\n continue;\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop\n\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n\n if (!parentScrollTop) {\n return;\n }\n\n continue;\n } // if we are scrolling up, pick the smallest offsetTop\n\n\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible\n\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor);\n\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n\n this._clearActiveClass(this._config.target);\n\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n\n this._activateParents(target);\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both
+ + + + + + + + + + + + + + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

compas_ags.ags

Core

- ---- +
- + - + @@ -114,25 +572,21 @@

Core

Graph Statics

-

update_q_from_qind(E, q, dep, ind)

update_q_from_qind(E, q, dep, ind)

Update the full set of force densities using the values of the independent edges.

update_primal_from_dual(xy, _xy, free, ...)

update_primal_from_dual(xy, _xy, free, ...)

Update the coordinates of the primal diagram using the coordinates of the corresponding dual diagram.

---- +
- + - + - + - + - + @@ -140,28 +594,24 @@

Graph Statics

Load Path

-

form_count_dof(form)

form_count_dof(form)

Count the number of degrees of freedom of a form diagram.

form_identify_dof(form)

form_identify_dof(form)

Identify the DOF of a form diagram.

form_update_q_from_qind(form)

form_update_q_from_qind(form)

Update the force densities of the dependent edges of a form diagram using the values of the independent ones.

form_update_from_force(form, force[, kmax])

form_update_from_force(form, force[, kmax])

Update the form diagram after a modification of the force diagram.

force_update_from_form(force, form)

force_update_from_form(force, form)

Update the force diagram after modifying the (force densities of) the form diagram.

---- +
- + - + - + - + - + - + @@ -169,212 +619,83 @@

Load Path

- - - - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/compas_ags.diagrams.html b/latest/api/compas_ags.diagrams.html index df5809b0d..461a53151 100644 --- a/latest/api/compas_ags.diagrams.html +++ b/latest/api/compas_ags.diagrams.html @@ -1,109 +1,567 @@ + + - - + + + + + + + + compas_ags.diagrams — COMPAS AGS + - compas_ags - compas_ags.diagrams + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+ + + + Ctrl+K +
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

compas_ags.diagrams

Graphs

-

compute_loadpath(form, force)

compute_loadpath(form, force)

Compute the internal work of a structure.

compute_external_work(form, force)

compute_external_work(form, force)

Compute the external work of a structure.

compute_internal_work(form, force)

compute_internal_work(form, force)

Compute the work done by the internal forces of a structure.

compute_internal_work_tension(form, force)

compute_internal_work_tension(form, force)

Compute the work done by the internal tensile forces of a structure.

compute_internal_work_compression(form, force)

compute_internal_work_compression(form, force)

Compute the work done by the internal compressive forces of a structure.

optimise_loadpath(form, force[, algo])

optimise_loadpath(form, force[, algo])

Optimise the loadpath using the parameters of the force domain.

---- +
- + @@ -111,19 +569,15 @@

Graphs

Diagrams

-

FormGraph()

FormGraph

A graph representing the geometry and connectivity of the lines of a form diagram.

---- +
- + - + - + @@ -131,211 +585,82 @@

Diagrams

- - - - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/compas_ags.exceptions.html b/latest/api/compas_ags.exceptions.html new file mode 100644 index 000000000..9acb368fe --- /dev/null +++ b/latest/api/compas_ags.exceptions.html @@ -0,0 +1,649 @@ + + + + + + + + + + + + compas_ags.exceptions — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + Ctrl+K +
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

compas_ags.exceptions

+
+

Classes

+

Diagram()

Diagram

Basic mesh-based data structure for diagrams in AGS.

FormDiagram()

FormDiagram

Mesh-based data structure for form diagrams in AGS.

ForceDiagram()

ForceDiagram

Mesh-based data structure for force diagrams in AGS.

+ + + + + +

SolutionError

Used to throw solution errors during form or force computations.

+
+
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+ + + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/compas_ags.html b/latest/api/compas_ags.html index c76379cbd..88740be5d 100644 --- a/latest/api/compas_ags.html +++ b/latest/api/compas_ags.html @@ -1,308 +1,625 @@ + + - - + + + + + + + + compas_ags — COMPAS AGS + - compas_ags - compas_ags + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + + +
- - - + + -
- - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+
+ + + - - - - - - - - - - - - - - - - - + - }) - } - - +
+ +
+ \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.compute_external_work.html b/latest/api/generated/compas_ags.ags.compute_external_work.html index e1d51e788..c8ef780bf 100644 --- a/latest/api/generated/compas_ags.ags.compute_external_work.html +++ b/latest/api/generated/compas_ags.ags.compute_external_work.html @@ -1,329 +1,673 @@ + + - - + + + + + + + + compute_external_work — COMPAS AGS + - compas_ags - compas_ags.ags.compute_external_work + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.compute_external_work

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

compute_external_work

-compas_ags.ags.compute_external_work(form, force)[source]
+compas_ags.ags.compute_external_work(form, force)

Compute the external work of a structure.

The external work done by a structure is equal to the work done by the external forces. This is equal to the sum of the dot products of the force vectors and the vectors defined by the force application point and a fixed arbitrary point.

-
Parameters
-
    -
  • form (FormDiagram) – The form diagram.

  • -
  • force (ForceDiagram) – The force diagram.

  • -
+
Parameters:
+
+
formFormDiagram

The form diagram.

+
+
forceForceDiagram

The force diagram.

-
Returns
-

float – The external work done by the structure.

+
+
+
Returns:
+
+
float

The external work done by the structure.

+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - -
- -
+ + + +
- +
+ + +
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.compute_internal_work.html b/latest/api/generated/compas_ags.ags.compute_internal_work.html index 1a18840c9..216083410 100644 --- a/latest/api/generated/compas_ags.ags.compute_internal_work.html +++ b/latest/api/generated/compas_ags.ags.compute_internal_work.html @@ -1,326 +1,670 @@ + + - - + + + + + + + + compute_internal_work — COMPAS AGS + - compas_ags - compas_ags.ags.compute_internal_work + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
+ -
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.compute_internal_work_compression.html b/latest/api/generated/compas_ags.ags.compute_internal_work_compression.html index a7e2eb59b..0b8dcb07e 100644 --- a/latest/api/generated/compas_ags.ags.compute_internal_work_compression.html +++ b/latest/api/generated/compas_ags.ags.compute_internal_work_compression.html @@ -1,326 +1,670 @@ + + - - + + + + + + + + compute_internal_work_compression — COMPAS AGS + - compas_ags - compas_ags.ags.compute_internal_work_compression + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
+ -
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.compute_internal_work_tension.html b/latest/api/generated/compas_ags.ags.compute_internal_work_tension.html index 1824fe259..13c410efc 100644 --- a/latest/api/generated/compas_ags.ags.compute_internal_work_tension.html +++ b/latest/api/generated/compas_ags.ags.compute_internal_work_tension.html @@ -1,326 +1,670 @@ + + - - + + + + + + + + compute_internal_work_tension — COMPAS AGS + - compas_ags - compas_ags.ags.compute_internal_work_tension + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
+ -
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.compute_loadpath.html b/latest/api/generated/compas_ags.ags.compute_loadpath.html index eaf6c811e..f3d21b2c7 100644 --- a/latest/api/generated/compas_ags.ags.compute_loadpath.html +++ b/latest/api/generated/compas_ags.ags.compute_loadpath.html @@ -1,322 +1,666 @@ + + - - + + + + + + + + compute_loadpath — COMPAS AGS + - compas_ags - compas_ags.ags.compute_loadpath + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.force_update_from_form.html b/latest/api/generated/compas_ags.ags.force_update_from_form.html index e529e18f0..d787cee3b 100644 --- a/latest/api/generated/compas_ags.ags.force_update_from_form.html +++ b/latest/api/generated/compas_ags.ags.force_update_from_form.html @@ -1,322 +1,666 @@ + + - - + + + + + + + + force_update_from_form — COMPAS AGS + - compas_ags - compas_ags.ags.force_update_from_form + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.form_count_dof.html b/latest/api/generated/compas_ags.ags.form_count_dof.html index 05284e224..c1d1a1670 100644 --- a/latest/api/generated/compas_ags.ags.form_count_dof.html +++ b/latest/api/generated/compas_ags.ags.form_count_dof.html @@ -1,118 +1,588 @@ + + - - + + + + + + + + form_count_dof — COMPAS AGS + + - compas_ags - compas_ags.ags.form_count_dof + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.form_count_dof

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

form_count_dof

-compas_ags.ags.form_count_dof(form)[source]
+compas_ags.ags.form_count_dof(form)

Count the number of degrees of freedom of a form diagram.

-
Parameters
-

form (FormDiagram) – The form diagram.

+
Parameters:
+
+
form: :class:`FormDiagram`

The form diagram.

-
Returns
-

    -
  • k (int) – Dimension of the null space (nullity) of the equilibrium matrix of the -form diagram.

  • -
  • m (int) – Dimension of the left null space of the equilibrium matrix of the form -diagram.

  • -
-

+
+
+
Returns:
+
+
kint

Dimension of the null space (nullity) of the equilibrium matrix of the +form diagram.

+
+
mint

Dimension of the left null space of the equilibrium matrix of the form +diagram.

+
+

Notes

@@ -124,215 +594,85 @@

compas_ags.ags.form_count_dof

\mathbf{C}_{i}^{t}\mathbf{U} \\ \mathbf{C}_{i}^{t}\mathbf{V} \end{bmatrix}\end{split}\]
-

Examples

-
>>>
-
-
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.form_identify_dof.html b/latest/api/generated/compas_ags.ags.form_identify_dof.html index e9dcc5a65..bf16a9fd5 100644 --- a/latest/api/generated/compas_ags.ags.form_identify_dof.html +++ b/latest/api/generated/compas_ags.ags.form_identify_dof.html @@ -1,119 +1,590 @@ + + - - + + + + + + + + form_identify_dof — COMPAS AGS + + - compas_ags - compas_ags.ags.form_identify_dof + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.form_identify_dof

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

form_identify_dof

-compas_ags.ags.form_identify_dof(form)[source]
+compas_ags.ags.form_identify_dof(form)

Identify the DOF of a form diagram.

-
Parameters
-

form (FormDiagram) – The form diagram.

+
Parameters:
+
+
form: :class:`FormDiagram`

The form diagram.

-
Returns
-

    -
  • k (int) – Dimension of the null space (nullity) of the equilibrium matrix. -Number of independent states of self-stress.

  • -
  • m (int) – Size of the left null space of the equilibrium matrix. -Number of (infenitesimal) mechanisms.

  • -
  • ind (list) – Indices of the independent edges.

  • -
-

+
+
+
Returns:
+
+
kint

Dimension of the null space (nullity) of the equilibrium matrix. +Number of independent states of self-stress.

+
+
mint

Size of the left null space of the equilibrium matrix. +Number of (infenitesimal) mechanisms.

+
+
indlist

Indices of the independent edges.

+
+

Notes

@@ -132,215 +603,85 @@

compas_ags.ags.form_identify_dof

vectors of a basis of that vector space. A set of vectors forms a basis of a vector space if they are linearly independent vectors and every vector of the space is a linear combination of this set.

-

Examples

-
>>>
-
-
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.form_update_from_force.html b/latest/api/generated/compas_ags.ags.form_update_from_force.html index f9c6b19e7..7937b9953 100644 --- a/latest/api/generated/compas_ags.ags.form_update_from_force.html +++ b/latest/api/generated/compas_ags.ags.form_update_from_force.html @@ -1,121 +1,591 @@ + + - - + + + + + + + + form_update_from_force — COMPAS AGS + + - compas_ags - compas_ags.ags.form_update_from_force + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.form_update_from_force

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

form_update_from_force

-compas_ags.ags.form_update_from_force(form, force, kmax=100)[source]
+compas_ags.ags.form_update_from_force(form, force, kmax=100)

Update the form diagram after a modification of the force diagram.

-
-
Parameters
-
    -
  • form (FormDiagram) – The form diagram to update.

  • -
  • force (ForceDiagram) – The force diagram on which the update is based.

  • -
  • kmax (int, optional) – Maximum number of least-square iterations for solving the duality form-force. -The default value is 20.

  • -
+
+
Parameters:
+
+
form: :class:`FormDiagram`

The form diagram to update.

-
Returns
-

    -
  • form (FormDiagram) – The form diagram with updated force densities.

  • -
  • force (ForceDiagram) – The updated force diagram.

  • -
-

+
forceForceDiagram

The force diagram on which the update is based.

+
+
kmax: int, optional

Maximum number of least-square iterations for solving the duality form-force. +The default value is 20.

+
+
+
+
Returns:
+
+
form: FormDiagram

The form diagram with updated force densities.

+
+
force: ForceDiagram

The updated force diagram.

+
+

Notes

@@ -132,214 +602,88 @@

compas_ags.ags.form_update_from_force

in Fortran order (first all x-coordinates, then all y-coordinates), and \(\mathbf{b}\) ….

Examples

-
>>>
-
+
>>>
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.form_update_q_from_qind.html b/latest/api/generated/compas_ags.ags.form_update_q_from_qind.html index aaf132fcc..92c5cb5b0 100644 --- a/latest/api/generated/compas_ags.ags.form_update_q_from_qind.html +++ b/latest/api/generated/compas_ags.ags.form_update_q_from_qind.html @@ -1,324 +1,669 @@ + + - - + + + + + + + + form_update_q_from_qind — COMPAS AGS + - compas_ags - compas_ags.ags.form_update_q_from_qind + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.form_update_q_from_qind

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

form_update_q_from_qind

-compas_ags.ags.form_update_q_from_qind(form)[source]
+compas_ags.ags.form_update_q_from_qind(form)

Update the force densities of the dependent edges of a form diagram using the values of the independent ones.

-
Parameters
-

form (FormDiagram) – The form diagram.

+
Parameters:
+
+
form: :class:`FormDiagram`

The form diagram.

+
+
+
+
Returns:
+
+
form: FormDiagram

The updated form diagram with force densities stored as attributes of the edges.

-
Returns
-

form (FormDiagram) – The updated form diagram with force densities stored as attributes of the edges.

+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.optimise_loadpath.html b/latest/api/generated/compas_ags.ags.optimise_loadpath.html index 4b3cdd721..02e569fdb 100644 --- a/latest/api/generated/compas_ags.ags.optimise_loadpath.html +++ b/latest/api/generated/compas_ags.ags.optimise_loadpath.html @@ -1,121 +1,590 @@ + + - - + + + + + + + + optimise_loadpath — COMPAS AGS + - compas_ags - compas_ags.ags.optimise_loadpath + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.optimise_loadpath

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

optimise_loadpath

-compas_ags.ags.optimise_loadpath(form, force, algo='COBYLA')[source]
+compas_ags.ags.optimise_loadpath(form, force, algo='COBYLA')

Optimise the loadpath using the parameters of the force domain. The parameters of the force domain are the coordinates of the vertices of the force diagram.

-
Parameters
-
    -
  • form (FormDiagram) – The form diagram.

  • -
  • force (ForceDiagram) – The force diagram.

  • -
  • algo ({‘COBYLA’, L-BFGS-B’, ‘SLSQ’, ‘MMA’, ‘GMMA’}, optional) – The optimisation algorithm.

  • -
+
Parameters:
+
+
formFormDiagram

The form diagram.

-
Returns
-

    -
  • form (FormDiagram) – The optimised form diagram.

  • -
  • force (ForceDiagram) – The optimised force diagram.

  • -
-

+
forceForceDiagram

The force diagram.

+
+
algo{‘COBYLA’, L-BFGS-B’, ‘SLSQ’, ‘MMA’, ‘GMMA’}, optional

The optimisation algorithm.

+
+
+
+
Returns:
+
+
form: FormDiagram

The optimised form diagram.

+
+
force: ForceDiagram

The optimised force diagram.

+
+

Notes

@@ -137,207 +606,81 @@

compas_ags.ags.optimise_loadpath

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.update_primal_from_dual.html b/latest/api/generated/compas_ags.ags.update_primal_from_dual.html index a48db02bb..53eb6e0d8 100644 --- a/latest/api/generated/compas_ags.ags.update_primal_from_dual.html +++ b/latest/api/generated/compas_ags.ags.update_primal_from_dual.html @@ -1,130 +1,611 @@ + + - - + + + + + + + + update_primal_from_dual — COMPAS AGS + + - compas_ags - compas_ags.ags.update_primal_from_dual + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.ags.update_primal_from_dual

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

update_primal_from_dual

-compas_ags.ags.update_primal_from_dual(xy, _xy, free, i_nbrs, ij_e, _C, line_constraints=None, target_lengths=[], target_vectors=[], leaves=[], kmax=100)[source]
+compas_ags.ags.update_primal_from_dual(xy, _xy, free, i_nbrs, ij_e, _C, line_constraints=None, target_lengths=[], target_vectors=[], leaves=[], kmax=100)

Update the coordinates of the primal diagram using the coordinates of the corresponding dual diagram. This function apply to both sides, i.e. it can be used to update the form diagram from the geometry of the force diagram or to update the force diagram from the geometry of the force diagram.

-
Parameters
-
    -
  • xy (array-like) – XY coordinates of the vertices of the primal diagram.

  • -
  • _xy (array-like) – XY coordinates of the vertices of the dual diagram.

  • -
  • i_nbrs (list of list of int) – Vertex neighbours per vertex.

  • -
  • ij_e (dict) – Edge index for every vertex pair.

  • -
  • _C (sparse matrix in csr format) – The connectivity matrix of the force diagram.

  • -
  • line_constraints (list, optional) – Line constraints applied to the free nodes. -Default is an None in which case no line constraints are considered.

  • -
  • target_lengths (list, optional) – Target lengths / target forces of the edges. -Default is an empty list, which considers that no target lengths are considered.

  • -
  • target_vectors (list, optional) – Target vectors of the edges. -Default is an empty list, which considers that no target vectors are considered.

  • -
  • leaves (list, optional) – The leaves of the primal diagram. -Default is an empty list, which considers that no leaves are considered.

  • -
  • kmax (int, optional) – Maximum number of iterations. -Default is 100.

  • -
+
Parameters:
+
+
xyarray-like

XY coordinates of the vertices of the primal diagram.

+
+
_xyarray-like

XY coordinates of the vertices of the dual diagram.

+
+
freelist

List of free vertices.

+
+
i_nbrslist of list of int

Vertex neighbours per vertex.

+
+
ij_edict

Edge index for every vertex pair.

+
+
_Csparse matrix in csr format

The connectivity matrix of the force diagram.

+
+
line_constraintslist, optional

Line constraints applied to the free nodes. +Default is an None in which case no line constraints are considered.

+
+
target_lengthslist, optional

Target lengths / target forces of the edges. +Default is an empty list, which considers that no target lengths are considered.

+
+
target_vectorslist, optional

Target vectors of the edges. +Default is an empty list, which considers that no target vectors are considered.

-
Returns
-

None – The vertex coordinates are modified in-place.

+
leaveslist, optional

The leaves of the primal diagram. +Default is an empty list, which considers that no leaves are considered.

+
+
kmaxint, optional

Maximum number of iterations. +Default is 100.

+
+
+
+
Returns:
+
+
None

The vertex coordinates are modified in-place.

+
+

Notes

@@ -153,214 +634,88 @@

compas_ags.ags.update_primal_from_dual

\[\mathbf{p} = (\mathbf{R}^{T}\mathbf{R})^{-1}\mathbf{R}^{T}\mathbf{q}\]

Examples

-
>>>
-
+
>>>
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.ags.update_q_from_qind.html b/latest/api/generated/compas_ags.ags.update_q_from_qind.html index 1560a0b30..e53dceac0 100644 --- a/latest/api/generated/compas_ags.ags.update_q_from_qind.html +++ b/latest/api/generated/compas_ags.ags.update_q_from_qind.html @@ -1,328 +1,674 @@ + + - - + + + + + + + + update_q_from_qind — COMPAS AGS + + - compas_ags - compas_ags.ags.update_q_from_qind + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.ToString.html b/latest/api/generated/compas_ags.diagrams.Diagram.ToString.html index 44fa1d0ea..f5d6f4a05 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.ToString.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.ToString.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.ToString — COMPAS AGS + - compas_ags - Diagram.ToString + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.ToString

@@ -114,210 +577,81 @@

Diagram.ToString

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.aabb.html b/latest/api/generated/compas_ags.diagrams.Diagram.aabb.html new file mode 100644 index 000000000..516940207 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + Diagram.aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.aabb

+
+
+Diagram.aabb()
+

Calculate the axis aligned bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.add_face.html b/latest/api/generated/compas_ags.diagrams.Diagram.add_face.html index ca115ff29..1b2c0257c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.add_face.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.add_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.add_face — COMPAS AGS + - compas_ags - Diagram.add_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.add_face

@@ -105,19 +568,35 @@

Diagram.add_face

Add a face to the mesh object.

Parameters:
-
    -
  • vertices (list[int]) – A list of vertex keys.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of face attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
verticeslist[int]

A list of vertex keys.

+
+
attr_dictdict[str, Any], optional

A dictionary of face attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The key of the face.

+
+
int

The key of the face.

+
+
Raises:
-

TypeError – If the provided face key is of an unhashable type.

+
+
TypeError

If the provided face key is of an unhashable type.

+
+
+

Notes

If no key is provided for the face, one is generated automatically. An automatically generated key is an integer that increments @@ -128,210 +607,81 @@

Diagram.add_face

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.add_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.add_vertex.html index 147481029..f395d4114 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.add_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.add_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.add_vertex — COMPAS AGS + + - compas_ags - Diagram.add_vertex + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.add_vertex

@@ -105,16 +568,29 @@

Diagram.add_vertex

Add a vertex to the mesh object.

Parameters:
-
    -
  • key (int, optional) – The vertex identifier.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of vertex attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
keyint, optional

The vertex identifier.

+
+
attr_dictdict[str, Any], optional

A dictionary of vertex attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The identifier of the vertex.

+
+
int

The identifier of the vertex.

+
+
+

Notes

If no key is provided for the vertex, one is generated automatically. An automatically generated key is an integer that increments @@ -122,7 +598,7 @@

Diagram.add_vertex

If a key with an integer value is provided that is higher than the current highest integer key value, then the highest integer value is updated accordingly.

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh()
 >>> mesh.add_vertex()
 0
@@ -132,216 +608,87 @@ 

Diagram.add_vertex

2 >>> mesh.add_vertex(key=0, x=1) 0 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.html b/latest/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.html new file mode 100644 index 000000000..046e221f1 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.adjacency_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.adjacency_matrix

+
+
+Diagram.adjacency_matrix(rtype='array')
+

Compute the adjacency matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The adjacency matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.area.html b/latest/api/generated/compas_ags.diagrams.Diagram.area.html index 6aa1b7f0b..da35603a2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.area.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.area.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.area — COMPAS AGS + - compas_ags - Diagram.area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.centroid.html b/latest/api/generated/compas_ags.diagrams.Diagram.centroid.html index ff97dcc59..d8ce61a64 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.centroid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.centroid.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.centroid — COMPAS AGS + - compas_ags - Diagram.centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.clear.html b/latest/api/generated/compas_ags.diagrams.Diagram.clear.html index 5d3f07d70..4acb25a9d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.clear.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.clear.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + Diagram.clear — COMPAS AGS + - compas_ags - Diagram.clear + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.collapse_edge.html b/latest/api/generated/compas_ags.diagrams.Diagram.collapse_edge.html index af4218996..5084be338 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.collapse_edge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.collapse_edge.html @@ -1,337 +1,680 @@ + + - - + + + + + + + + Diagram.collapse_edge — COMPAS AGS + - compas_ags - Diagram.collapse_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.collapse_edge

-Diagram.collapse_edge(u, v, t=0.5, allow_boundary=False, fixed=None)
+Diagram.collapse_edge(edge, t=0.5, allow_boundary=False, fixed=None)

Collapse an edge to its first or second vertex, or to an intermediate point.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (str) – The first vertex of the (half-) edge.

  • -
  • v (str) – The second vertex of the (half-) edge.

  • -
  • t (float, optional) – Determines where to collapse to. -If t == 0.0 collapse to u. -If t == 1.0 collapse to v. -If 0.0 < t < 1.0, collapse to a point between u and v.

  • -
  • allow_boundary (bool, optional) – If True, allow collapses involving boundary vertices.

  • -
  • fixed (list[int], optional) – A list of identifiers of vertices that should stay fixed.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge.

+
+
tfloat, optional

Determines where to collapse to. +If t == 0.0 collapse to start of the edge. +If t == 1.0 collapse to end of the edge. +If 0.0 < t < 1.0, collapse to a point between start and end of the edge.

+
+
allow_boundarybool, optional

If True, allow collapses involving boundary vertices.

+
+
fixedlist[int], optional

A list of identifiers of vertices that should stay fixed.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If the edge is not part of the mesh.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.compute_aabb.html b/latest/api/generated/compas_ags.diagrams.Diagram.compute_aabb.html new file mode 100644 index 000000000..d1f3886df --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.compute_aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + Diagram.compute_aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.compute_aabb

+
+
+Diagram.compute_aabb()
+

Compute the axis-aligned bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.compute_obb.html b/latest/api/generated/compas_ags.diagrams.Diagram.compute_obb.html new file mode 100644 index 000000000..31989d517 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.compute_obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + Diagram.compute_obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.compute_obb

+
+
+Diagram.compute_obb()
+

Compute the oriented bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.connected_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.connected_faces.html new file mode 100644 index 000000000..dce8b8bd8 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.connected_faces.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + Diagram.connected_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.connected_faces

+
+
+Diagram.connected_faces()
+

Find groups of connected faces.

+
+
Returns:
+
+
list[list[int]]

Groups of connected faces.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.connected_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.connected_vertices.html new file mode 100644 index 000000000..c04aec96f --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.connected_vertices.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + Diagram.connected_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.connected_vertices

+
+
+Diagram.connected_vertices()
+

Find groups of connected vertices.

+
+
Returns:
+
+
list[list[int]]

Groups of connected vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.html b/latest/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.html new file mode 100644 index 000000000..d5762e96b --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.connectivity_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.connectivity_matrix

+
+
+Diagram.connectivity_matrix(rtype='array')
+

Compute the connectivity matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The connectivity matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.copy.html b/latest/api/generated/compas_ags.diagrams.Diagram.copy.html index a0d47afd2..8af8df9b1 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.copy.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.copy.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + Diagram.copy — COMPAS AGS + - compas_ags - Diagram.copy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.copy

Diagram.copy(cls=None)

Make an independent copy of the data object.

-
+
Parameters:
-

cls (Type[Data], optional) – The type of data object to return. +

+
clsType[compas.data.Data], optional

The type of data object to return. Defaults to the type of the current data object.

+
+
Returns:
-

Data – An independent copy of this object.

+
+
compas.data.Data

An independent copy of this object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.cull_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.cull_vertices.html index 8f314b09d..9046d48aa 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.cull_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.cull_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + Diagram.cull_vertices — COMPAS AGS + - compas_ags - Diagram.cull_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.degree_matrix.html b/latest/api/generated/compas_ags.diagrams.Diagram.degree_matrix.html new file mode 100644 index 000000000..364e36f29 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.degree_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.degree_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.degree_matrix

+
+
+Diagram.degree_matrix(rtype='array')
+

Compute the degree matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The degree matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.delete_face.html b/latest/api/generated/compas_ags.diagrams.Diagram.delete_face.html index cf491b14b..da51ebec6 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.delete_face.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.delete_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.delete_face — COMPAS AGS + - compas_ags - Diagram.delete_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.delete_face

@@ -105,12 +568,24 @@

Diagram.delete_face

Delete a face from the mesh object.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

Diagram.delete_face

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.delete_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.delete_vertex.html index 0d7caf935..555920599 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.delete_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.delete_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.delete_vertex — COMPAS AGS + - compas_ags - Diagram.delete_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.delete_vertex

@@ -105,12 +568,24 @@

Diagram.delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

Diagram.delete_vertex

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_attribute.html index 28a7181bd..50f324b31 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edge_attribute — COMPAS AGS + - compas_ags - Diagram.edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_attribute

@@ -105,228 +568,117 @@

Diagram.edge_attribute

Get or set an attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge as a pair of vertex identifiers.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
+
+
edgetuple[int, int]

The identifier of the edge as a pair of vertex identifiers.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_attributes.html index 3bb0df287..12ddf6b3c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edge_attributes — COMPAS AGS + - compas_ags - Diagram.edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_attributes

@@ -105,231 +568,119 @@

Diagram.edge_attributes

Get or set multiple attributes of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the edge. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.html index 71428cc09..28f1cbb10 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_coordinates.html @@ -1,332 +1,667 @@ + + - - + + + + + + + + Diagram.edge_coordinates — COMPAS AGS + - compas_ags - Diagram.edge_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_coordinates

-Diagram.edge_coordinates(u, v, axes='xyz')
+Diagram.edge_coordinates(edge, axes='xyz')

Return the coordinates of the start and end point of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • axes (str, optional) – The axes along which the coordinates should be included.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
axesstr, optional

The axes along which the coordinates should be included.

+
+
Returns:
-

    -
  • list[float] – The coordinates of the start point.

  • -
  • list[float] – The coordinates of the end point.

  • -
-

+
+
tuple(point, point)

The coordinates of the start point. +The coordinates of the end point.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_direction.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_direction.html index 626050b5f..b578ee2d8 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_direction.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_direction.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.edge_direction — COMPAS AGS + - compas_ags - Diagram.edge_direction + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_direction

-Diagram.edge_direction(u, v)
+Diagram.edge_direction(edge)

Return the direction vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The direction vector of the edge.

+
+
compas.geometry.Vector

The direction vector of the edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_end.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_end.html new file mode 100644 index 000000000..5178046f5 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_end.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.edge_end — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.edge_end

+
+
+Diagram.edge_end(edge)
+

Return the point at the end of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the end.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_faces.html index fd34e7b70..27e2de2bd 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_faces.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + Diagram.edge_faces — COMPAS AGS + - compas_ags - Diagram.edge_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_faces

-Diagram.edge_faces(u, v)
+Diagram.edge_faces(edge)

Find the two faces adjacent to an edge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

tuple[int, int] – The identifiers of the adjacent faces. +

+
tuple[int, int]

The identifiers of the adjacent faces. If the edge is on the boundary, one of the identifiers is None.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_index.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_index.html index 59685b8bf..200176ce3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_index.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_index.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + Diagram.edge_index — COMPAS AGS + - compas_ags - Diagram.edge_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_length.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_length.html index b646a7325..d7a125ac7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_length.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_length.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.edge_length — COMPAS AGS + - compas_ags - Diagram.edge_length + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_length

-Diagram.edge_length(u, v)
+Diagram.edge_length(edge)

Return the length of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

float – The length of the edge.

+
+
float

The length of the edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_line.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_line.html new file mode 100644 index 000000000..de8521039 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_line.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.edge_line — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.edge_line

+
+
+Diagram.edge_line(edge)
+

Return the line of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Line

The line of the edge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_loop.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_loop.html index 2c665313e..37c1ceddd 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edge_loop — COMPAS AGS + - compas_ags - Diagram.edge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_loop

@@ -105,220 +568,97 @@

Diagram.edge_loop

Find all edges on the same loop as a given edge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.html index f343f84fa..9d84df35c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_midpoint.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.edge_midpoint — COMPAS AGS + - compas_ags - Diagram.edge_midpoint + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_point.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_point.html index 5b195911d..43e5fc69f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_point.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_point.html @@ -1,330 +1,668 @@ + + - - + + + + + + + + Diagram.edge_point — COMPAS AGS + - compas_ags - Diagram.edge_point + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_point

-Diagram.edge_point(u, v, t=0.5)
-

Return the location of a point along an edge.

+Diagram.edge_point(edge, t=0.5) +

Return a point along an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • t (float, optional) – The location of the point on the edge. +

    +
    edgetuple(int, int)

    The identifier of the edge.

    +
    +
    tfloat, optional

    The location of the point on the edge. If the value of t is outside the range 0-1, the point will -lie in the direction of the edge, but not on the edge vector.

  • -
+lie in the direction of the edge, but not on the edge vector.

+
+
Returns:
-

list[float] – The XYZ coordinates of the point.

+
+
compas.geometry.Point

The point at parameter t.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_sample.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_sample.html index 0b551735f..96251637d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_sample.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edge_sample — COMPAS AGS + - compas_ags - Diagram.edge_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_sample

@@ -105,220 +568,103 @@

Diagram.edge_sample

A random sample of the edges.

Parameters:
-

size (int, optional) – The number of edges in the random sample.

+
+
sizeint, optional

The number of edges in the random sample.

+
+
Returns:
-

list[tuple[int, int]] – The identifiers of the edges.

+
+
list[tuple[int, int]]

The identifiers of the edges.

+
+
+
+

See also

+
+
vertex_sample(), face_sample()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_start.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_start.html new file mode 100644 index 000000000..b338a1c51 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_start.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.edge_start — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.edge_start

+
+
+Diagram.edge_start(edge)
+

Return the point at the start of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the start.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_strip.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_strip.html index cb29f1beb..43b9520d5 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edge_strip — COMPAS AGS + - compas_ags - Diagram.edge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_strip

@@ -105,224 +568,100 @@

Diagram.edge_strip

Find all edges on the same strip as a given edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the starting edge.

  • -
  • return_faces (bool, optional) – Return the faces on the strip in addition to the edges.

  • -
+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
return_facesbool, optional

Return the faces on the strip in addition to the edges.

+
+
Returns:
-

list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]] – If return_faces is False, the edges on the same strip as the given edge. +

+
list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]]

If return_faces is False, the edges on the same strip as the given edge. If return_faces is False, the edges on the same strip and the corresponding faces.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edge_vector.html b/latest/api/generated/compas_ags.diagrams.Diagram.edge_vector.html index 172eb5f34..b0b795525 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edge_vector.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edge_vector.html @@ -1,327 +1,663 @@ + + - - + + + + + + + + Diagram.edge_vector — COMPAS AGS + - compas_ags - Diagram.edge_vector + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edge_vector

-Diagram.edge_vector(u, v)
+Diagram.edge_vector(edge)

Return the vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The vector from u to v.

+
+
compas.geometry.Vector
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges.html index b19d6cc5b..8b3eb6082 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edges — COMPAS AGS + + - compas_ags - Diagram.edges + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edges

@@ -105,13 +568,26 @@

Diagram.edges

Iterate over the edges of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a ((u, v), data) tuple.

+
+
+

Notes

Mesh edges have no topological meaning. They are only used to store data. Edges are not automatically created when vertices and faces are added to @@ -121,218 +597,85 @@

Diagram.edges

Unless edges were added explicitly using add_edge() the order of edges is as they come out. However, as long as the toplogy remains unchanged, the order is consistent.

-

Examples

-
>>>
-
-
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_attribute.html index 09a1485d3..7b9e7bb9d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edges_attribute — COMPAS AGS + - compas_ags - Diagram.edges_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edges_attribute

@@ -105,229 +568,117 @@

Diagram.edges_attribute

Get or set an attribute of multiple edges.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per edge of the requested attribute, +

+
list[Any] | None

A list containing the value per edge of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_attributes.html index 86ab3b103..da180f87c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edges_attributes — COMPAS AGS + - compas_ags - Diagram.edges_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edges_attributes

@@ -105,233 +568,121 @@

Diagram.edges_attributes

Get or set multiple attributes of multiple edges.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per edge an attribute dict with all attributes (default + custom) of the edge. If the parameter names is not empty, a list containing per edge a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.html index 6b8201625..535bdb534 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.edges_on_boundaries — COMPAS AGS + - compas_ags - Diagram.edges_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.html index 403258cb0..5acf926f2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.edges_on_boundary — COMPAS AGS + - compas_ags - Diagram.edges_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_where.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_where.html index 6258203ff..977e3d476 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_where.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edges_where — COMPAS AGS + - compas_ags - Diagram.edges_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edges_where

@@ -105,227 +568,111 @@

Diagram.edges_where

Get edges for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.html b/latest/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.html index 3ca275003..9ef0f266c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.edges_where_predicate — COMPAS AGS + - compas_ags - Diagram.edges_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.edges_where_predicate

@@ -105,227 +568,110 @@

Diagram.edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 3 parameters: the identifier of the first vertex, the identifier of the second vertex, and the edge attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition ot the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition ot the vertex identifiers.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.euler.html b/latest/api/generated/compas_ags.diagrams.Diagram.euler.html index b3a102694..67f2c082f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.euler.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.euler.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + Diagram.euler — COMPAS AGS + - compas_ags - Diagram.euler + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.exploded.html b/latest/api/generated/compas_ags.diagrams.Diagram.exploded.html new file mode 100644 index 000000000..d888228a5 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.exploded.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + Diagram.exploded — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.exploded

+
+
+Diagram.exploded()
+

Explode the mesh into its connected components.

+
+
Returns:
+
+
list[compas.datastructures.Mesh]

The list of the meshes from the exploded mesh parts.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.html index d8ee792f6..84f8eaf26 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_adjacency_halfedge — COMPAS AGS + - compas_ags - Diagram.face_adjacency_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_adjacency_halfedge

@@ -105,16 +568,21 @@

Diagram.face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

tuple[int, int] | None – The half-edge separating face 1 from face 2, +

+
tuple[int, int] | None

The half-edge separating face 1 from face 2, or None, if the faces are not adjacent.

+
+

Notes

For use in form-finding algorithms, that rely on form-force duality information, further checks relating to the orientation of the corresponding are required.

@@ -122,210 +590,81 @@

Diagram.face_adjacency_halfedge

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.html index a7a437e4e..ea5ac1cec 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_adjacency_vertices — COMPAS AGS + - compas_ags - Diagram.face_adjacency_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_adjacency_vertices

@@ -105,224 +568,100 @@

Diagram.face_adjacency_vertices

Find all vertices over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

list[int] | None – The vertices separating face 1 from face 2, +

+
list[int] | None

The vertices separating face 1 from face 2, or None, if the faces are not adjacent.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_area.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_area.html index 7f6fd6f06..b012c3119 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_area.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_area — COMPAS AGS + - compas_ags - Diagram.face_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_area

@@ -105,220 +568,97 @@

Diagram.face_area

Compute the area of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

float – The area of the face.

+
+
float

The area of the face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.html index e06084637..a5345b44d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_aspect_ratio — COMPAS AGS + - compas_ags - Diagram.face_aspect_ratio + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_aspect_ratio

@@ -105,10 +568,16 @@

Diagram.face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The aspect ratio.

+
+
float

The aspect ratio.

+
+

References

@@ -119,210 +588,81 @@

Diagram.face_aspect_ratio

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_attribute.html index 3536dc99a..8998dc0e1 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_attribute — COMPAS AGS + - compas_ags - Diagram.face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_attribute

@@ -105,227 +568,116 @@

Diagram.face_attribute

Get or set an attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_attributes.html index 49a1f8e51..eb5617d13 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_attributes — COMPAS AGS + - compas_ags - Diagram.face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_attributes

@@ -105,231 +568,119 @@

Diagram.face_attributes

Get or set multiple attributes of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the face.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the face. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_center.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_center.html index 4a9ce0279..6920d875e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_center.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_center.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + Diagram.face_center — COMPAS AGS + - compas_ags - Diagram.face_center + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_center

Diagram.face_center(fkey)
-

Compute the location of the center of mass of a face.

+

Compute the point at the center of mass of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the center of mass.

+
+
compas.geometry.Point

The point at the center of mass.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_centroid.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_centroid.html index f7d28afd4..b04b38c1a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_centroid.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + Diagram.face_centroid — COMPAS AGS + - compas_ags - Diagram.face_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_centroid

Diagram.face_centroid(fkey)
-

Compute the location of the centroid of a face.

+

Compute the point at the centroid of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The point at the centroid.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_circle.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_circle.html new file mode 100644 index 000000000..3290b26f9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_circle.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.face_circle — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.face_circle

+
+
+Diagram.face_circle(face)
+

The circle of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Circle

The circle of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_coordinates.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_coordinates.html index c692f7dcd..f03fca1f8 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_coordinates — COMPAS AGS + - compas_ags - Diagram.face_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_coordinates

@@ -105,224 +568,100 @@

Diagram.face_coordinates

Compute the coordinates of the vertices of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
fkeyint

The identifier of the face.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[list[float]] – The coordinates of the vertices of the face.

+
+
list[list[float]]

The coordinates of the vertices of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_corners.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_corners.html index 42aaa14b3..6768a53eb 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_corners.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_corners.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_corners — COMPAS AGS + - compas_ags - Diagram.face_corners + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_corners

@@ -105,220 +568,97 @@

Diagram.face_corners

Return triplets of face vertices forming the corners of the face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The corners of the face in the form of a list of vertex triplets.

+
+
list[int]

The corners of the face in the form of a list of vertex triplets.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_curvature.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_curvature.html index 654ae7efc..347a7131b 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_curvature — COMPAS AGS + - compas_ags - Diagram.face_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_curvature

@@ -108,220 +571,97 @@

Diagram.face_curvature

the face vertices to the face centroid.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_degree.html index 8ba96b2ce..651cbe856 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_degree — COMPAS AGS + - compas_ags - Diagram.face_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_degree

@@ -105,220 +568,97 @@

Diagram.face_degree

Count the neighbors of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

int – The count.

+
+
int

The count.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_flatness.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_flatness.html index f7d8de317..f26d6e047 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_flatness.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_flatness.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_flatness — COMPAS AGS + + - compas_ags - Diagram.face_flatness + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_flatness

@@ -105,231 +568,113 @@

Diagram.face_flatness

Compute the flatness of the mesh face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • maxdev (float, optional) – A maximum value for the allowed deviation from flatness.

  • -
+
+
fkeyint

The identifier of the face.

+
+
maxdevfloat, optional

A maximum value for the allowed deviation from flatness.

+
+
Returns:
-

float – The flatness.

+
+
float

The flatness.

+
+
+
+
Raises:
+
+
Exception

If the face has more than 4 vertices.

+
+
-

Notes

-

Flatness is computed as the ratio of the distance between the diagonals -of the face to the average edge length. A practical limit on this value -realted to manufacturing is 0.02 (2%).

Warning

This method only makes sense for quadrilateral faces.

+

Notes

+

Flatness is computed as the ratio of the distance between the diagonals +of the face to the average edge length. A practical limit on this value +realted to manufacturing is 0.02 (2%).

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_frame.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_frame.html new file mode 100644 index 000000000..550f57999 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_frame.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.face_frame — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.face_frame

+
+
+Diagram.face_frame(face)
+

The frame of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Frame

The frame of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_halfedges.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_halfedges.html index d4ea5ed18..995cfc63e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_halfedges.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_halfedges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_halfedges — COMPAS AGS + - compas_ags - Diagram.face_halfedges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_halfedges

@@ -105,220 +568,97 @@

Diagram.face_halfedges

The halfedges of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[tuple[int, int]] – The halfedges of a face.

+
+
list[tuple[int, int]]

The halfedges of a face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_matrix.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_matrix.html new file mode 100644 index 000000000..5a9363ab5 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_matrix.html @@ -0,0 +1,695 @@ + + + + + + + + + + + + Diagram.face_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.face_matrix

+
+
+Diagram.face_matrix(rtype='array')
+

Compute the face matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The face matrix.

+
+
+
+
+

Notes

+

The face matrix represents the relationship between faces and vertices. +Each row of the matrix represents a face. Each column represents a vertex. +The matrix is filled with zeros except where a relationship between a vertex +and a face exist.

+
+\[\begin{split}F_{ij} = +\begin{cases} + 1 & \text{if vertex j is part of face i} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

The face matrix can for example be used to compute the centroids of all +faces of a mesh.

+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> F = mesh.face_matrix()
+>>> type(F)
+<class 'numpy.ndarray'>
+
+
+
>>> from numpy import allclose
+>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> F = mesh.face_matrix(mesh, rtype='csr')
+>>> c1 = F.dot(xyz) / F.sum(axis=1)
+>>> c2 = [mesh.face_centroid(fkey) for fkey in mesh.faces()]
+>>> allclose(c1, c2)
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_max_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_max_degree.html index 859c7423d..d0d2c0726 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.face_max_degree — COMPAS AGS + - compas_ags - Diagram.face_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_min_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_min_degree.html index 3e2cf3538..cd8bd8dac 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.face_min_degree — COMPAS AGS + - compas_ags - Diagram.face_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.html index 4f5141d02..c31fc8f09 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_neighborhood — COMPAS AGS + - compas_ags - Diagram.face_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_neighborhood

@@ -105,223 +568,99 @@

Diagram.face_neighborhood

Return the faces in the neighborhood of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • ring (int, optional) – The size of the neighborhood.

  • -
+
+
keyint

The identifier of the face.

+
+
ringint, optional

The size of the neighborhood.

+
+
Returns:
-

list[int] – A list of face identifiers.

+
+
list[int]

A list of face identifiers.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_neighbors.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_neighbors.html index e1fb1e73b..0213bab26 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_neighbors — COMPAS AGS + - compas_ags - Diagram.face_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_neighbors

@@ -105,220 +568,97 @@

Diagram.face_neighbors

Return the neighbors of a face across its edges.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The identifiers of the neighboring faces.

+
+
list[int]

The identifiers of the neighboring faces.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_normal.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_normal.html index 191ad3a4a..e956ec683 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_normal.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_normal — COMPAS AGS + - compas_ags - Diagram.face_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_normal

@@ -105,223 +568,98 @@

Diagram.face_normal

Compute the normal of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • unitized (bool, optional) – If True, the vector is unitized.

  • -
+
+
fkeyint

The identifier of the face.

+
+
unitizedbool, optional

If True, the vector is unitized.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_plane.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_plane.html index 95b3ff124..b1f4ceb6f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_plane.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_plane.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_plane — COMPAS AGS + - compas_ags - Diagram.face_plane + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_plane

@@ -105,224 +568,97 @@

Diagram.face_plane

A plane defined by the centroid and the normal of the face.

Parameters:
-

face (int) – The face identifier.

+
+
faceint

The face identifier.

+
+
Returns:
-

    -
  • list[float] – The base point of the plane.

  • -
  • list[float] – The normal vector of the plane.

  • -
-

+
+
compas.geometry.Plane

The plane of the face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_points.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_points.html new file mode 100644 index 000000000..a94791518 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.face_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.face_points

+
+
+Diagram.face_points(fkey)
+

Compute the points of the vertices of a face.

+
+
Parameters:
+
+
fkeyint

The identifier of the face.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_polygon.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_polygon.html new file mode 100644 index 000000000..06289a0a7 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_polygon.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.face_polygon — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.face_polygon

+
+
+Diagram.face_polygon(face)
+

The polygon of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Polygon

The polygon of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_sample.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_sample.html index d56ea94fb..00608b876 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_sample.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_sample — COMPAS AGS + - compas_ags - Diagram.face_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_sample

@@ -105,220 +568,103 @@

Diagram.face_sample

A random sample of the faces.

Parameters:
-

size (int, optional) – The number of faces in the random sample.

+
+
sizeint, optional

The number of faces in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the faces.

+
+
list[int]

The identifiers of the faces.

+
+
+
+

See also

+
+
vertex_sample(), edge_sample()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_skewness.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_skewness.html index dbb35a427..40a454c18 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_skewness.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_skewness.html @@ -1,114 +1,583 @@ + + - - + + + + + + + + Diagram.face_skewness — COMPAS AGS + - compas_ags - Diagram.face_skewness + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_skewness

Diagram.face_skewness(fkey)
-

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

+

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The skewness.

+
+
float

The skewness.

+
+

References

@@ -119,210 +588,81 @@

Diagram.face_skewness

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.html index d0e4e4c86..76487d114 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_after.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_vertex_after — COMPAS AGS + - compas_ags - Diagram.face_vertex_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_vertex_after

@@ -105,228 +568,108 @@

Diagram.face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.html index 0c266a367..665374fe8 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_vertex_ancestor — COMPAS AGS + - compas_ags - Diagram.face_vertex_ancestor + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_vertex_ancestor

@@ -105,228 +568,108 @@

Diagram.face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.html index 26efb5226..b5503d58c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_before.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_vertex_before — COMPAS AGS + - compas_ags - Diagram.face_vertex_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_vertex_before

@@ -105,228 +568,108 @@

Diagram.face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.html index 8f8dbdb39..b90aba536 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_vertex_descendant — COMPAS AGS + - compas_ags - Diagram.face_vertex_descendant + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_vertex_descendant

@@ -105,228 +568,108 @@

Diagram.face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertices.html index f585ba55d..d0e6b881f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.face_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.face_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.face_vertices — COMPAS AGS + - compas_ags - Diagram.face_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.face_vertices

@@ -105,220 +568,97 @@

Diagram.face_vertices

The vertices of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – Ordered vertex identifiers.

+
+
list[int]

Ordered vertex identifiers.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces.html index 6ffc3132f..233730293 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.faces — COMPAS AGS + - compas_ags - Diagram.faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.faces

@@ -105,221 +568,105 @@

Diagram.faces

Iterate over the faces of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face identifier. If data is True, the next face as a (fkey, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_attribute.html index e3393be7c..a0bc6e2ad 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.faces_attribute — COMPAS AGS + - compas_ags - Diagram.faces_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.faces_attribute

@@ -105,229 +568,117 @@

Diagram.faces_attribute

Get or set an attribute of multiple faces.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per face of the requested attribute, +

+
list[Any] | None

A list containing the value per face of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_attributes.html index 7e8dccb69..4c2ff38ef 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.faces_attributes — COMPAS AGS + - compas_ags - Diagram.faces_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.faces_attributes

@@ -105,233 +568,121 @@

Diagram.faces_attributes

Get or set multiple attributes of multiple faces.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per face an attribute dict with all attributes (default + custom) of the face. If the parameter names is not empty, a list containing per face a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.html index 6b73b89eb..aacb9e5e7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.faces_on_boundaries — COMPAS AGS + - compas_ags - Diagram.faces_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.html index dfc49b5fc..868ab0329 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.faces_on_boundary — COMPAS AGS + - compas_ags - Diagram.faces_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_where.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_where.html index 461125f9f..b2e72fdb4 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_where.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.faces_where — COMPAS AGS + - compas_ags - Diagram.faces_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.faces_where

@@ -105,227 +568,111 @@

Diagram.faces_where

Get faces for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to face identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the face attributes in addition to face identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.html b/latest/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.html index 3a6db3c99..533b52f5f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.faces_where_predicate — COMPAS AGS + - compas_ags - Diagram.faces_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.faces_where_predicate

@@ -105,226 +568,109 @@

Diagram.faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the face identifier and the face attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.flip_cycles.html b/latest/api/generated/compas_ags.diagrams.Diagram.flip_cycles.html index 9ef57a471..cc87e77a0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.flip_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.flip_cycles.html @@ -1,114 +1,577 @@ + + - - + + + + + + + + Diagram.flip_cycles — COMPAS AGS + - compas_ags - Diagram.flip_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.flip_cycles

Diagram.flip_cycles()

Flip the cycle directions of all faces.

-
Parameters:
-

mesh (Mesh) – A mesh object.

+
Returns:
+
+
None

The mesh is modified in place.

-
Returns:
-

None – The mesh is modified in place.

+

Notes

@@ -118,210 +581,81 @@

Diagram.flip_cycles

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_json.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_json.html index 0d88ca243..e90be0054 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_json.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_json.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + Diagram.from_json — COMPAS AGS + - compas_ags - Diagram.from_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_json

classmethod Diagram.from_json(filepath)
-

Construct an object from serialized data contained in a JSON file.

+

Construct an object of this type from a JSON file.

Parameters:
-

filepath (path string | file-like object | URL string) – The path, file or URL to the file for serialization.

+
+
filepathstr

The path to the JSON file.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the file has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the file is not a compas.data.Data.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.html index 7752cd36a..65d09237d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_jsonstring.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + Diagram.from_jsonstring — COMPAS AGS + - compas_ags - Diagram.from_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_jsonstring

classmethod Diagram.from_jsonstring(string)
-

Construct an object from serialized data contained in a JSON string.

+

Construct an object of this type from a JSON string.

Parameters:
-

string (str) – The object as a JSON string.

+
+
stringstr

The JSON string.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the string has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the string is not a compas.data.Data.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_lines.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_lines.html index 56b1472f9..9e1add8ff 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_lines.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_lines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_lines — COMPAS AGS + - compas_ags - Diagram.from_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_lines

@@ -105,227 +568,104 @@

Diagram.from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

Parameters:
-
    -
  • lines (list[tuple[list[float], list[float]]]) – A list of pairs of point coordinates.

  • -
  • delete_boundary_face (bool, optional) – The algorithm that finds the faces formed by the connected lines +

    +
    lineslist[tuple[list[float], list[float]]]

    A list of pairs of point coordinates.

    +
    +
    delete_boundary_facebool, optional

    The algorithm that finds the faces formed by the connected lines first finds the face on the outside. In most cases this face is not expected -to be there. Therefore, there is the option to have it automatically deleted.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to the value of compas.PRECISION.

  • -
+to be there. Therefore, there is the option to have it automatically deleted.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.html index 3ff244312..473a73ee2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_meshgrid.html @@ -1,331 +1,672 @@ + + - - + + + + + + + + Diagram.from_meshgrid — COMPAS AGS + - compas_ags - Diagram.from_meshgrid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_meshgrid

classmethod Diagram.from_meshgrid(dx, nx, dy=None, ny=None)
-

Create a mesh from faces and vertices on a regular grid.

+

Construct a mesh from faces and vertices on a regular grid.

Parameters:
-
    -
  • dx (float) – The size of the grid in the X direction.

  • -
  • nx (int) – The number of faces in the X direction.

  • -
  • dy (float, optional) – The size of the grid in the Y direction. -Defaults to the value of dx.

  • -
  • ny (int, optional) – The number of faces in the Y direction. -Defaults to the value of nx.

  • -
+
+
dxfloat

The size of the grid in the X direction.

+
+
nxint

The number of faces in the X direction.

+
+
dyfloat, optional

The size of the grid in the Y direction. +Defaults to the value of dx.

+
+
nyint, optional

The number of faces in the Y direction. +Defaults to the value of nx.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_obj.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_obj.html index d3193fd99..86e8cd3b7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_obj.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_obj — COMPAS AGS + - compas_ags - Diagram.from_obj + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_obj

@@ -105,13 +568,18 @@

Diagram.from_obj

Construct a mesh object from the data described in an OBJ file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+

Notes

@@ -128,210 +596,81 @@

Diagram.from_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_off.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_off.html index 7c104a6b8..5350e6046 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_off.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_off — COMPAS AGS + - compas_ags - Diagram.from_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_off

@@ -105,220 +568,97 @@

Diagram.from_off

Construct a mesh object from the data described in a OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_ply.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_ply.html index 881ae8c71..1309b2b88 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_ply.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_ply — COMPAS AGS + - compas_ags - Diagram.from_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_ply

@@ -105,220 +568,97 @@

Diagram.from_ply

Construct a mesh object from the data described in a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_points.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_points.html index 48c48bb7c..17f7ade5d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_points.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_points.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + Diagram.from_points — COMPAS AGS + - compas_ags - Diagram.from_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_points

-classmethod Diagram.from_points(points, boundary=None, holes=None)
+classmethod Diagram.from_points(points)

Construct a mesh from a delaunay triangulation of a set of points.

Parameters:
-

points (list[list[float]]) – XYZ coordinates of the points. +

+
pointslist[list[float]]

XYZ coordinates of the points. Z coordinates should be zero.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_polygons.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_polygons.html index ac8c7f1a7..302ab180e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_polygons.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_polygons — COMPAS AGS + - compas_ags - Diagram.from_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_polygons

@@ -105,225 +568,101 @@

Diagram.from_polygons

Construct a mesh from a series of polygons.

Parameters:
-
    -
  • polygons (list[list[float]]) – A list of polygons, with each polygon defined as an ordered list of -XYZ coordinates of its corners.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to compas.PRECISION.

  • -
+
+
polygonslist[list[float]]

A list of polygons, with each polygon defined as an ordered list of +XYZ coordinates of its corners.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.html index 7ea35694e..8b34e1dae 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_polyhedron.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_polyhedron — COMPAS AGS + - compas_ags - Diagram.from_polyhedron + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_polyhedron

@@ -105,220 +568,97 @@

Diagram.from_polyhedron

Construct a mesh from a platonic solid.

Parameters:
-

f ({4, 6, 8, 12, 20}) – The number of faces.

+
+
f{4, 6, 8, 12, 20}

The number of faces.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_polylines.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_polylines.html index db1c7376f..b3cc93ef3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_polylines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_polylines — COMPAS AGS + - compas_ags - Diagram.from_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_polylines

@@ -110,223 +573,99 @@

Diagram.from_polylines

that could overlap and yield a wrong connectivity if using from_lines based on the polyline extremities only.

Parameters:
-
    -
  • boundary_polylines (list[list[float]]) – List of polylines representing boundaries as lists of vertex coordinates.

  • -
  • other_polylines (list[list[float]]) – List of the other polylines as lists of vertex coordinates.

  • -
+
+
boundary_polylineslist[list[float]]

List of polylines representing boundaries as lists of vertex coordinates.

+
+
other_polylineslist[list[float]]

List of the other polylines as lists of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_shape.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_shape.html index 67c9d3922..6e55ae6ed 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_shape.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_shape.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + Diagram.from_shape — COMPAS AGS + - compas_ags - Diagram.from_shape + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_shape

classmethod Diagram.from_shape(shape, **kwargs)

Construct a mesh from a primitive shape.

-
+
Parameters:
-
    -
  • shape (Shape) – The input shape to generate a mesh from.

  • -
  • **kwargs (dict[str, Any], optional) – Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

  • -
+
+
shapecompas.geometry.Shape

The input shape to generate a mesh from.

+
+
**kwargsdict[str, Any], optional

Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_stl.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_stl.html index 3f2a14d8f..0640181ef 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_stl.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_stl — COMPAS AGS + - compas_ags - Diagram.from_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_stl

@@ -105,223 +568,99 @@

Diagram.from_stl

Construct a mesh object from the data described in a STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.html index 502045f20..8d94b6374 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.from_vertices_and_faces — COMPAS AGS + - compas_ags - Diagram.from_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.from_vertices_and_faces

@@ -105,225 +568,101 @@

Diagram.from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

Parameters:
-
    -
  • vertices (list[list[float]] | dict[int, list[float]]) – A list of vertices, represented by their XYZ coordinates, -or a dictionary of vertex keys pointing to their XYZ coordinates.

  • -
  • faces (list[list[int]] | dict[int, list[int]]) – A list of faces, represented by a list of indices referencing the list of vertex coordinates, -or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

  • -
+
+
verticeslist[list[float]] | dict[int, list[float]]

A list of vertices, represented by their XYZ coordinates, +or a dictionary of vertex keys pointing to their XYZ coordinates.

+
+
faceslist[list[int]] | dict[int, list[int]]

A list of faces, represented by a list of indices referencing the list of vertex coordinates, +or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.html index 03b38ec04..6cb477bd3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.gkey_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.gkey_vertex — COMPAS AGS + - compas_ags - Diagram.gkey_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.gkey_vertex

@@ -106,221 +569,98 @@

Diagram.gkey_vertex

to the keys of the corresponding vertices.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[str, int] – A dictionary of geometric key-key pairs.

+
+
dict[str, int]

A dictionary of geometric key-key pairs.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_after.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_after.html index 37cf1c2d6..eb7f3bc35 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_after.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_after.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.halfedge_after — COMPAS AGS + - compas_ags - Diagram.halfedge_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.halfedge_after

-Diagram.halfedge_after(u, v)
+Diagram.halfedge_after(edge)

Find the halfedge after the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The next halfedge.

+
+
tuple[int, int]

The next halfedge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_before.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_before.html index 9ea25725f..69337d3be 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_before.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_before.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.halfedge_before — COMPAS AGS + - compas_ags - Diagram.halfedge_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.halfedge_before

-Diagram.halfedge_before(u, v)
+Diagram.halfedge_before(edge)

Find the halfedge before the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The previous halfedge.

+
+
tuple[int, int]

The previous halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_face.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_face.html index d78f00a4b..0d80a6fff 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_face.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_face.html @@ -1,331 +1,671 @@ + + - - + + + + + + + + Diagram.halfedge_face — COMPAS AGS + - compas_ags - Diagram.halfedge_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.halfedge_face

-Diagram.halfedge_face(u, v)
+Diagram.halfedge_face(edge)

Find the face corresponding to a halfedge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

int | None – The identifier of the face corresponding to the halfedge. +

+
int | None

The identifier of the face corresponding to the halfedge. None, if the halfedge is on the outside of a boundary.

+
+
Raises:
-

KeyError – If the halfedge does not exist.

+
+
KeyError

If the halfedge does not exist.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.html index 1fbea37c8..d46212969 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.halfedge_loop — COMPAS AGS + - compas_ags - Diagram.halfedge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.halfedge_loop

@@ -105,220 +568,97 @@

Diagram.halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.html new file mode 100644 index 000000000..392164088 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.html @@ -0,0 +1,662 @@ + + + + + + + + + + + + Diagram.halfedge_loop_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.halfedge_loop_vertices

+
+
+Diagram.halfedge_loop_vertices(edge)
+

Find all vertices on the same loop as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns
+
——-
+
list[int]

The vertices on the same loop as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.html index e05eb6056..710204a61 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.halfedge_strip — COMPAS AGS + - compas_ags - Diagram.halfedge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.halfedge_strip

@@ -105,220 +568,97 @@

Diagram.halfedge_strip

Find all edges on the same strip as a given halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same strip as the given halfedge.

+
+
list[tuple[int, int]]

The edges on the same strip as the given halfedge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.html new file mode 100644 index 000000000..9a81893d9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.halfedge_strip_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.halfedge_strip_faces

+
+
+Diagram.halfedge_strip_faces(edge)
+

Find all faces on the same strip as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
+
+
Returns:
+
+
list[int]

The faces on the same strip as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.has_edge.html b/latest/api/generated/compas_ags.diagrams.Diagram.has_edge.html index 0a3e4145b..3b0d576f1 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.has_edge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.has_edge.html @@ -1,329 +1,669 @@ + + - - + + + + + + + + Diagram.has_edge — COMPAS AGS + + - compas_ags - Diagram.has_edge + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.has_edge

Diagram.has_edge(key)

Verify that the mesh contains a specific edge.

-
-

Warning

-

This method may produce unexpected results.

-
Parameters:
-

key (tuple[int, int]) – The identifier of the edge.

+
+
keytuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge exists. +

+
bool

True if the edge exists. False otherwise.

+
+
+
+

Warning

+

This method may produce unexpected results.

+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.has_face.html b/latest/api/generated/compas_ags.diagrams.Diagram.has_face.html index 448179266..6fd763827 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.has_face.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.has_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.has_face — COMPAS AGS + - compas_ags - Diagram.has_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.has_face

@@ -105,221 +568,98 @@

Diagram.has_face

Verify that a face is part of the mesh.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face exists. +

+
bool

True if the face exists. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.has_halfedge.html b/latest/api/generated/compas_ags.diagrams.Diagram.has_halfedge.html index 513671e24..d036373a4 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.has_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.has_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.has_halfedge — COMPAS AGS + - compas_ags - Diagram.has_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.has_halfedge

@@ -105,221 +568,98 @@

Diagram.has_halfedge

Verify that a halfedge is part of the mesh.

Parameters:
-

key (tuple[int, int]) – The identifier of the halfedge.

+
+
keytuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

bool – True if the halfedge is part of the mesh. +

+
bool

True if the halfedge is part of the mesh. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.has_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.has_vertex.html index 576a16c04..cc2da8dc0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.has_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.has_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.has_vertex — COMPAS AGS + - compas_ags - Diagram.has_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.has_vertex

@@ -105,221 +568,98 @@

Diagram.has_vertex

Verify that a vertex is in the mesh.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is in the mesh. +

+
bool

True if the vertex is in the mesh. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.html b/latest/api/generated/compas_ags.diagrams.Diagram.html index c02ee08b5..9030d6a35 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.html @@ -1,738 +1,1211 @@ + + - - + + + + + + + + Diagram — COMPAS AGS - compas_ags - compas_ags.diagrams.Diagram + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
-

compas_ags.diagrams.Diagram

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram

-class compas_ags.diagrams.Diagram[source]
-

Bases: compas.datastructures.mesh.mesh.Mesh

+class compas_ags.diagrams.Diagram +

Bases: Mesh

Basic mesh-based data structure for diagrams in AGS.

-
-
Attributes
-

dual (compas_ags.diagrams.Diagram) – The dual diagram of this diagram.

+
+
Attributes:
+
+
dualcompas_ags.diagrams.Diagram

Construct the dual of a mesh.

+
+
-
-
-__init__()[source]
-
-

Methods

- ---- +
- - + + - + - + + + + + + + +

ToString()

Converts the instance to a string.

edge_index

__init__()

index_edge

add_face(vertices[, fkey, attr_dict])

index_vertex

Returns a dictionary that maps the indices of a vertex list to the corresponding vertex identifiers.

vertex_index

Returns a dictionary that maps vertex identifiers to the corresponding index in a vertex list or array.

+

Inherited Methods

+ + + + + + + + + - + - - - - - + + - - + + - + - + - + - - + + + + + - + + + + + + + + + + - + - + + + + - + - + - + - + - + - - + + - - + + - + - + + + + - - + + - - + + - + - + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + + + + - - + + - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - - - - + - + - + - + - + + + + - + + + + - + - + - + - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + - + - - - - - - - + - + - + - + - - + + - - + + - - + + - + + + + - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + + + + + + + - - + + - - + + - + + + + + + + - + - + - + + + + + + + - + - + - - + + - - - - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + + + + - + - -

ToString

Converts the instance to a string.

aabb

Calculate the axis aligned bounding box of the mesh.

add_face

Add a face to the mesh object.

add_vertex([key, attr_dict])

add_vertex

Add a vertex to the mesh object.

area()

Calculate the total mesh area.

bounding_box()

Compute the (axis aligned) bounding box of a mesh.

adjacency_matrix

Compute the adjacency matrix of the mesh.

bounding_box_xy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

area

Calculate the total mesh area.

centroid()

centroid

Calculate the mesh centroid.

clear()

clear

Clear all the mesh data.

collapse_edge(u, v[, t, allow_boundary, fixed])

collapse_edge

Collapse an edge to its first or second vertex, or to an intermediate point.

connected_components()

Find the connected components of the mesh.

compute_aabb

Compute the axis-aligned bounding box of the datastructure.

compute_obb

Compute the oriented bounding box of the datastructure.

copy([cls])

connected_faces

Find groups of connected faces.

connected_vertices

Find groups of connected vertices.

connectivity_matrix

Compute the connectivity matrix of the mesh.

copy

Make an independent copy of the data object.

cull_vertices()

cull_vertices

Remove all unused vertices from the mesh object.

delete_face(fkey)

degree_matrix

Compute the degree matrix of the mesh.

delete_face

Delete a face from the mesh object.

delete_vertex(key)

delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

edge_attribute(edge, name[, value])

edge_attribute

Get or set an attribute of an edge.

edge_attributes(edge[, names, values])

edge_attributes

Get or set multiple attributes of an edge.

edge_coordinates(u, v[, axes])

edge_coordinates

Return the coordinates of the start and end point of an edge.

edge_direction(u, v)

edge_direction

Return the direction vector of an edge.

edge_faces(u, v)

Find the two faces adjacent to an edge.

edge_end

Return the point at the end of an edge.

edge_index()

edge_faces

Find the two faces adjacent to an edge.

edge_length(u, v)

edge_length

Return the length of an edge.

edge_loop(edge)

edge_line

Return the line of an edge.

edge_loop

Find all edges on the same loop as a given edge.

edge_midpoint(u, v)

Return the location of the midpoint of an edge.

edge_midpoint

Return the midpoint of an edge.

edge_point(u, v[, t])

Return the location of a point along an edge.

edge_point

Return a point along an edge.

edge_sample([size])

edge_sample

A random sample of the edges.

edge_strip(edge[, return_faces])

edge_start

Return the point at the start of an edge.

edge_strip

Find all edges on the same strip as a given edge.

edge_vector(u, v)

edge_vector

Return the vector of an edge.

edges([data])

edges

Iterate over the edges of the mesh.

edges_attribute(name[, value, keys])

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes([names, values, keys])

edges_attributes

Get or set multiple attributes of multiple edges.

edges_on_boundaries()

edges_on_boundaries

Find the edges on all boundaries of the mesh.

edges_on_boundary()

edges_on_boundary

Find the edges on the longest boundary.

edges_where([conditions, data])

edges_where

Get edges for which a certain condition or set of conditions is true.

edges_where_predicate(predicate[, data])

edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

euler()

euler

Calculate the Euler characteristic.

face_adjacency()

Build a face adjacency dict.

exploded

Explode the mesh into its connected components.

face_adjacency_halfedge(f1, f2)

face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

face_adjacency_vertices(f1, f2)

face_adjacency_vertices

Find all vertices over which two faces are adjacent.

face_area(fkey)

face_area

Compute the area of a face.

face_aspect_ratio(fkey)

face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

face_attribute(key, name[, value])

face_attribute

Get or set an attribute of a face.

face_attributes(key[, names, values])

face_attributes

Get or set multiple attributes of a face.

face_center(fkey)

Compute the location of the center of mass of a face.

face_center

Compute the point at the center of mass of a face.

face_centroid

Compute the point at the centroid of a face.

face_centroid(fkey)

Compute the location of the centroid of a face.

face_circle

The circle of a face.

face_coordinates(fkey[, axes])

face_coordinates

Compute the coordinates of the vertices of a face.

face_corners(fkey)

face_corners

Return triplets of face vertices forming the corners of the face.

face_curvature(fkey)

face_curvature

Dimensionless face curvature.

face_degree(fkey)

face_degree

Count the neighbors of a face.

face_flatness(fkey[, maxdev])

face_flatness

Compute the flatness of the mesh face.

face_halfedges(fkey)

face_frame

The frame of a face.

face_halfedges

The halfedges of a face.

face_max_degree()

face_matrix

Compute the face matrix of the mesh.

face_max_degree

Compute the maximum degree of all faces.

face_min_degree()

face_min_degree

Compute the minimum degree of all faces.

face_neighborhood(key[, ring])

face_neighborhood

Return the faces in the neighborhood of a face.

face_neighbors(fkey)

face_neighbors

Return the neighbors of a face across its edges.

face_normal(fkey[, unitized])

face_normal

Compute the normal of a face.

face_plane(face)

face_plane

A plane defined by the centroid and the normal of the face.

face_sample([size])

face_points

Compute the points of the vertices of a face.

face_polygon

The polygon of a face.

face_sample

A random sample of the faces.

face_skewness(fkey)

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

face_skewness

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

face_vertex_after(fkey, key[, n])

face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

face_vertex_ancestor(fkey, key[, n])

face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_before(fkey, key[, n])

face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_descendant(fkey, key[, n])

face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

face_vertices(fkey)

face_vertices

The vertices of a face.

faces([data])

faces

Iterate over the faces of the mesh.

faces_attribute(name[, value, keys])

faces_attribute

Get or set an attribute of multiple faces.

faces_attributes([names, values, keys])

faces_attributes

Get or set multiple attributes of multiple faces.

faces_on_boundaries()

faces_on_boundaries

Find the faces on all boundaries of the mesh.

faces_on_boundary()

faces_on_boundary

Find the faces on the longest boundary.

faces_where([conditions, data])

faces_where

Get faces for which a certain condition or set of conditions is true.

faces_where_predicate(predicate[, data])

faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

flip_cycles()

flip_cycles

Flip the cycle directions of all faces.

from_data(data)

Construct an object of this type from the provided data.

from_json

Construct an object of this type from a JSON file.

from_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object of this type from a JSON string.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

from_lines(lines[, delete_boundary_face, ...])

from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

from_meshgrid(dx, nx[, dy, ny])

Create a mesh from faces and vertices on a regular grid.

from_meshgrid

Construct a mesh from faces and vertices on a regular grid.

from_obj(filepath[, precision])

from_obj

Construct a mesh object from the data described in an OBJ file.

from_off(filepath)

from_off

Construct a mesh object from the data described in a OFF file.

from_ply(filepath[, precision])

from_ply

Construct a mesh object from the data described in a PLY file.

from_points(points[, boundary, holes])

from_points

Construct a mesh from a delaunay triangulation of a set of points.

from_polygons(polygons[, precision])

from_polygons

Construct a mesh from a series of polygons.

from_polyhedron(f)

from_polyhedron

Construct a mesh from a platonic solid.

from_polylines(boundary_polylines, ...)

from_polylines

Construct mesh from polylines.

from_shape(shape, **kwargs)

from_shape

Construct a mesh from a primitive shape.

from_stl(filepath[, precision])

from_stl

Construct a mesh object from the data described in a STL file.

from_vertices_and_faces(vertices, faces)

from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

genus()

Calculate the genus.

get_any_face()

Get the identifier of a random face.

get_any_vertex()

Get the identifier of a random vertex.

get_any_vertices(n[, exclude_leaves])

Get a list of identifiers of a random set of n vertices.

gkey_key([precision])

gkey_vertex

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

gkey_vertex([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

halfedge_after(u, v)

halfedge_after

Find the halfedge after the given halfedge in the same face.

halfedge_before(u, v)

halfedge_before

Find the halfedge before the given halfedge in the same face.

halfedge_face(u, v)

halfedge_face

Find the face corresponding to a halfedge.

halfedge_loop(edge)

halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

halfedge_strip(edge)

halfedge_loop_vertices

Find all vertices on the same loop as a given halfedge.

halfedge_strip

Find all edges on the same strip as a given halfedge.

has_edge(key)

halfedge_strip_faces

Find all faces on the same strip as a given halfedge.

has_edge

Verify that the mesh contains a specific edge.

has_face(fkey)

has_face

Verify that a face is part of the mesh.

has_halfedge(key)

has_halfedge

Verify that a halfedge is part of the mesh.

has_vertex(key)

has_vertex

Verify that a vertex is in the mesh.

index_edge()

index_key()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

index_vertex()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

insert_vertex(fkey[, key, xyz, return_fkeys])

insert_vertex

Insert a vertex in the specified face.

is_closed()

is_closed

Verify that the mesh is closed.

is_connected()

is_connected

Verify that the mesh is connected.

is_edge_on_boundary(u, v)

is_edge_on_boundary

Verify that an edge is on the boundary.

is_empty()

is_empty

Verify that the mesh is empty.

is_face_on_boundary(key)

is_face_on_boundary

Verify that a face is on a boundary.

is_manifold()

is_manifold

Verify that the mesh is manifold.

is_orientable()

is_orientable

Verify that the mesh is orientable.

is_quadmesh()

is_quadmesh

Verify that the mesh consists of only quads.

is_regular()

is_regular

Verify that the mesh is regular.

is_trimesh()

is_trimesh

Verify that the mesh consists of only triangles.

is_valid()

is_valid

Verify that the mesh is valid.

is_vertex_connected(key)

is_vertex_connected

Verify that a vertex is connected.

is_vertex_on_boundary(key)

is_vertex_on_boundary

Verify that a vertex is on a boundary.

join(other)

join

Add the vertices and faces of another mesh to the current mesh.

key_gkey([precision])

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

key_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

laplacian_matrix

Compute the Laplacian matrix of the mesh.

merge_faces(faces)

merge_faces

Merge two faces of a mesh over their shared edge.

mesh_oriented_bounding_box_numpy()

Compute the (axis aligned) bounding box of a mesh.

mesh_oriented_bounding_box_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

normal()

normal

Calculate the average mesh normal.

number_of_edges()

number_of_edges

Count the number of edges in the mesh.

number_of_faces()

number_of_faces

Count the number of faces in the mesh.

number_of_vertices()

number_of_vertices

Count the number of vertices in the mesh.

obb_numpy()

Compute the (axis aligned) bounding box of a mesh.

obb

Calculate the oriented bounding box of the mesh.

obb_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

offset

Generate an offset mesh.

quads_to_triangles([check_angles])

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

quads_to_triangles

Convert all quadrilateral faces to triangles by adding a diagonal edge.

remove_unused_vertices()

remove_duplicate_vertices

Remove all duplicate vertices and clean up any affected faces.

remove_unused_vertices

Remove all unused vertices from the mesh object.

sha256([as_string])

rotate

Rotate the datastructure.

rotated

Returns a rotated copy of this geometry.

scale

Scale the datastructure.

scaled

Returns a scaled copy of this geometry.

set_vertex_point

Set the point of a vertex.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

slice_plane(plane)

slice

Slice a mesh with a plane and construct the resulting submeshes.

smooth_area([fixed, kmax, damping, ...])

smooth_area

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

smooth_centroid([fixed, kmax, damping, ...])

smooth_centroid

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

split_edge(u, v[, t, allow_boundary])

split_edge

Split and edge by inserting a vertex along its length.

split_face(fkey, u, v)

split_face

Split a face by inserting an edge between two specified vertices.

split_strip(edge)

split_strip

Split the srip of faces corresponding to a given edge.

subdivide([scheme])

subdivided

Subdivide the input mesh.

summary()

summary

Print a summary of the mesh.

to_data()

Convert an object to its native data representation.

thickened

Generate a thicknened mesh.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_json

Convert an object to its native data representation and save it to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

to_lines()

to_lines

Return the lines of the mesh as pairs of start and end point coordinates.

to_obj(filepath[, precision, unweld])

to_obj

Write the mesh to an OBJ file.

to_off(filepath, **kwargs)

to_off

Write a mesh object to an OFF file.

to_ply(filepath, **kwargs)

to_ply

Write a mesh object to a PLY file.

to_points()

to_points

Convert the mesh to a collection of points.

to_polygons()

to_polygons

Convert the mesh to a collection of polygons.

to_polylines()

to_polylines

Convert the mesh to a collection of polylines.

to_stl(filepath[, precision, binary])

to_stl

Write a mesh to an STL file.

to_vertices_and_faces([triangulated])

to_vertices_and_faces

Return the vertices and faces of a mesh.

transform(transformation)

Transform a mesh.

transform

Transform the mesh.

transform_numpy

Transform the mesh.

transformed

Returns a transformed copy of this data structure.

transformed(transformation)

Return a transformed copy of the mesh.

transformed_numpy

Returns a transformed copy of this data structure.

unify_cycles([root])

Unify the cycle directions of all faces.

translate

Translate the datastructure.

unset_edge_attribute(edge, name)

translated

Returns a translated copy of this geometry.

unify_cycles

Unify the cycles of the mesh.

unset_edge_attribute

Unset the attribute of an edge.

unset_face_attribute(key, name)

unset_face_attribute

Unset the attribute of a face.

unset_vertex_attribute(key, name)

unset_vertex_attribute

Unset the attribute of a vertex.

update_default_edge_attributes([attr_dict])

unweld_edges

Unwelds a mesh along edges.

unweld_vertices

Unweld a face of the mesh.

update_default_edge_attributes

Update the default edge attributes.

update_default_face_attributes([attr_dict])

update_default_face_attributes

Update the default face attributes.

update_default_vertex_attributes([attr_dict])

update_default_vertex_attributes

Update the default vertex attributes.

validate_data()

Validate the object's data against its data schema.

validate_data

Validate the data against the object's data schema.

validate_json()

Validate the object's data against its json schema.

vertex_area(key)

vertex_area

Compute the tributary area of a vertex.

vertex_attribute(key, name[, value])

vertex_attribute

Get or set an attribute of a vertex.

vertex_attributes(key[, names, values])

vertex_attributes

Get or set multiple attributes of a vertex.

vertex_coordinates(key[, axes])

vertex_coordinates

Return the coordinates of a vertex.

vertex_curvature(vkey)

vertex_curvature

Dimensionless vertex curvature.

vertex_degree(key)

vertex_degree

Count the neighbors of a vertex.

vertex_edges(vertex)

vertex_edges

Find all edges connected to a given vertex.

vertex_faces(key[, ordered, include_none])

vertex_faces

The faces connected to a vertex.

vertex_gkey([precision])

vertex_gkey

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

vertex_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

vertex_laplacian(key)

vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

vertex_max_degree()

vertex_max_degree

Compute the maximum degree of all vertices.

vertex_min_degree()

vertex_min_degree

Compute the minimum degree of all vertices.

vertex_neighborhood(key[, ring])

vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

vertex_neighborhood_centroid(key)

vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

vertex_neighbors(key[, ordered])

vertex_neighbors

Return the neighbors of a vertex.

vertex_normal(key)

vertex_normal

Return the normal vector at the vertex as the weighted average of the normals of the neighboring faces.

vertex_sample([size])

vertex_point

Return the point of a vertex.

vertex_sample

A random sample of the vertices.

vertices([data])

vertices

Iterate over the vertices of the mesh.

vertices_attribute(name[, value, keys])

vertices_attribute

Get or set an attribute of multiple vertices.

vertices_attributes([names, values, keys])

vertices_attributes

Get or set multiple attributes of multiple vertices.

vertices_on_boundaries()

vertices_on_boundaries

Find the vertices on all boundaries of the mesh.

vertices_on_boundary()

vertices_on_boundary

Find the vertices on the longest boundary.

vertices_where([conditions, data])

vertices_points

Return the points of multiple vertices.

vertices_where

Get vertices for which a certain condition or set of conditions is true.

vertices_where_predicate(predicate[, data])

vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

-

Attributes

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

JSONSCHEMANAME

The schema of the data of this object in JSON format.

adjacency

data

dtype

dual

The dual of this diagram.

guid

jsondefinitions

Reusable schema definitions.

jsonstring

jsonvalidator

JSON schema validator for draft 7.

name

weld

Weld vertices that are closer than a given precision.

@@ -740,207 +1213,81 @@

compas_ags.diagrams.Diagram

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.index_edge.html b/latest/api/generated/compas_ags.diagrams.Diagram.index_edge.html index ca2413c2b..e3346d703 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.index_edge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.index_edge.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + Diagram.index_edge — COMPAS AGS + - compas_ags - Diagram.index_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.index_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.index_vertex.html index 8fd72cf59..0ca738ff9 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.index_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.index_vertex.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + Diagram.index_vertex — COMPAS AGS + - compas_ags - Diagram.index_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.insert_vertex.html b/latest/api/generated/compas_ags.diagrams.Diagram.insert_vertex.html index 0e978b233..d5e02bdb2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.insert_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.insert_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.insert_vertex — COMPAS AGS + - compas_ags - Diagram.insert_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.insert_vertex

@@ -105,226 +568,104 @@

Diagram.insert_vertex

Insert a vertex in the specified face.

Parameters:
-
    -
  • fkey (int) – The key of the face in which the vertex should be inserted.

  • -
  • key (int, optional) – The key to be used to identify the inserted vertex.

  • -
  • xyz (list[float], optional) – Specific XYZ coordinates for the inserted vertex.

  • -
  • return_fkeys (bool, optional) – If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

  • -
+
+
fkeyint

The key of the face in which the vertex should be inserted.

+
+
keyint, optional

The key to be used to identify the inserted vertex.

+
+
xyzlist[float], optional

Specific XYZ coordinates for the inserted vertex.

+
+
return_fkeysbool, optional

If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

+
+
Returns:
-

int | tuple[int, list[int]] – If return_fkeys is False, the key of the inserted vertex. +

+
int | tuple[int, list[int]]

If return_fkeys is False, the key of the inserted vertex. If return_fkeys is True, the key of the newly created vertex and a list with the newly created faces.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_closed.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_closed.html index 375462c2f..18896b043 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_closed.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_closed.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_closed — COMPAS AGS + - compas_ags - Diagram.is_closed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_connected.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_connected.html index a57e52ec1..8b44b0c0a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_connected.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_connected.html @@ -1,342 +1,665 @@ + + - - + + + + + + + + Diagram.is_connected — COMPAS AGS + - compas_ags - Diagram.is_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.is_connected

Diagram.is_connected()

Verify that the mesh is connected.

-
Parameters:
-

mesh (Mesh) – A mesh data structure.

+
Returns:
+
+
bool

True if the mesh is not empty and has no naked edges. +False otherwise.

-
Returns:
-

bool – True, if the mesh is connected. -False, otherwise.

+
-

Notes

-

A mesh is connected if for every two vertices a path exists connecting them.

-

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh()
->>> mesh_is_connected(mesh)
-False
->>> a = mesh.add_vertex(x=0, y=0, z=0)
->>> b = mesh.add_vertex(x=1, y=0, z=0)
->>> c = mesh.add_vertex(x=1, y=1, z=0)
->>> mesh_is_connected(mesh)
-False
->>> abc = mesh.add_face([a, b, c])
->>> mesh_is_connected(mesh)
-True
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.html index a22d3feec..1d3f6fc8c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + Diagram.is_edge_on_boundary — COMPAS AGS + - compas_ags - Diagram.is_edge_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.is_edge_on_boundary

-Diagram.is_edge_on_boundary(u, v)
+Diagram.is_edge_on_boundary(edge)

Verify that an edge is on the boundary.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge is on the boundary. +

+
bool

True if the edge is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_empty.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_empty.html index 133fa7ef2..4d7b044a5 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_empty.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_empty.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_empty — COMPAS AGS + - compas_ags - Diagram.is_empty + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.html index d20caecff..dbfdb0b7e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_face_on_boundary — COMPAS AGS + - compas_ags - Diagram.is_face_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.is_face_on_boundary

@@ -105,221 +568,98 @@

Diagram.is_face_on_boundary

Verify that a face is on a boundary.

Parameters:
-

key (int) – The identifier of the face.

+
+
keyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face is on the boundary. +

+
bool

True if the face is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_manifold.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_manifold.html index 19e456393..641ca5ea7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_manifold.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_manifold.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_manifold — COMPAS AGS + - compas_ags - Diagram.is_manifold + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_orientable.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_orientable.html index b48fa7a9e..f1c75b45b 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_orientable.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_orientable.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_orientable — COMPAS AGS + - compas_ags - Diagram.is_orientable + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.html index 56625e64c..646022cb3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_quadmesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_quadmesh — COMPAS AGS + - compas_ags - Diagram.is_quadmesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_regular.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_regular.html index 763bdb95e..bcc3ee7f0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_regular.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_regular.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_regular — COMPAS AGS + - compas_ags - Diagram.is_regular + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_trimesh.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_trimesh.html index 7a39c5562..34f5e667a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_trimesh.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_trimesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_trimesh — COMPAS AGS + - compas_ags - Diagram.is_trimesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_valid.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_valid.html index c0a256e26..fb5cf191a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_valid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_valid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_valid — COMPAS AGS + - compas_ags - Diagram.is_valid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.html index fb8a3087a..5357521fb 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_vertex_connected — COMPAS AGS + - compas_ags - Diagram.is_vertex_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.is_vertex_connected

@@ -105,221 +568,98 @@

Diagram.is_vertex_connected

Verify that a vertex is connected.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is connected to at least one other vertex. +

+
bool

True if the vertex is connected to at least one other vertex. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.html index 1ac2b0fe8..e6c8460f7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.is_vertex_on_boundary — COMPAS AGS + - compas_ags - Diagram.is_vertex_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.is_vertex_on_boundary

@@ -105,221 +568,98 @@

Diagram.is_vertex_on_boundary

Verify that a vertex is on a boundary.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is on the boundary. +

+
bool

True if the vertex is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.join.html b/latest/api/generated/compas_ags.diagrams.Diagram.join.html index 8d78a0acc..6acbc4a7a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.join.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.join.html @@ -1,118 +1,593 @@ + + - - + + + + + + + + Diagram.join — COMPAS AGS + + - compas_ags - Diagram.join + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.join

-Diagram.join(other)
+Diagram.join(other, weld=False, precision=None)

Add the vertices and faces of another mesh to the current mesh.

-
+
Parameters:
-

other (Mesh) – The other mesh.

+
+
othercompas.datastructures.Mesh

The other mesh.

+
+
weldbool, optional

If True, weld close vertices after joining. +Default is False.

+
+
precisionint, optional

The precision used for welding. +Default is TOL.precision.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+

Examples

-
>>> from compas.geometry import Box
+
>>> from compas.geometry import Box
 >>> from compas.geometry import Translation
 >>> from compas.datastructures import Mesh
 >>> a = Box.from_width_height_depth(1, 1, 1)
@@ -134,216 +609,87 @@ 

Diagram.join

16 >>> a.number_of_faces() 12 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.html b/latest/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.html new file mode 100644 index 000000000..9e153faba --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + Diagram.laplacian_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.laplacian_matrix

+
+
+Diagram.laplacian_matrix(rtype='array')
+

Compute the Laplacian matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The Laplacian matrix.

+
+
+
+
+

Notes

+

The \(n \times n\) uniform Laplacian matrix \(\mathbf{L}\) of a mesh +with vertices \(\mathbf{V}\) and edges \(\mathbf{E}\) is defined as +follows [1]

+
+\[\begin{split}\mathbf{L}_{ij} = +\begin{cases} + -1 & i = j \\ + \frac{1}{deg(i)} & (i, j) \in \mathbf{E} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

with \(deg(i)\) the degree of vertex \(i\).

+

Therefore, the uniform Laplacian of a vertex \(\mathbf{v}_{i}\) points to +the centroid of its neighboring vertices.

+

References

+
+
+[1] +

Nealen A., Igarashi T., Sorkine O. and Alexa M. +Laplacian Mesh Optimization.

+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> L = mesh.laplacian_matrix(mesh, rtype='array')
+>>> type(L)
+<class 'numpy.ndarray'>
+
+
+
>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> L = mesh.laplacian_matrix(mesh)
+>>> d = L.dot(xyz)
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.merge_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.merge_faces.html index 5db56d245..251b1d57d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.merge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.merge_faces.html @@ -1,123 +1,590 @@ + + - - + + + + + + + + Diagram.merge_faces — COMPAS AGS + + - compas_ags - Diagram.merge_faces + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.merge_faces

Diagram.merge_faces(faces)

Merge two faces of a mesh over their shared edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • faces (list[int]) – Face identifiers.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh data structure.

+
+
faceslist[int]

Face identifiers.

+
+
Returns:
-

int

+
+
int
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
->>> mesh = mesh.subdivide(scheme='quad')
+>>> mesh = mesh.subdivide(scheme="quad")
 >>> mesh_merge_faces(mesh, [1, 2])
 5
 >>> mesh_merge_faces(mesh, [3, 5])
@@ -126,216 +593,87 @@ 

Diagram.merge_faces

7 >>> mesh.face_vertices(7) [3, 5, 0, 4, 1, 6, 2, 7] -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.normal.html b/latest/api/generated/compas_ags.diagrams.Diagram.normal.html index b1078f629..9d631ccf5 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.normal.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.normal.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.normal — COMPAS AGS + - compas_ags - Diagram.normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_edges.html b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_edges.html index 0d4489f2b..1b495091b 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_edges.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_edges.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + Diagram.number_of_edges — COMPAS AGS + - compas_ags - Diagram.number_of_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_faces.html index a6fac8c74..b32b526b1 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_faces.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + Diagram.number_of_faces — COMPAS AGS + - compas_ags - Diagram.number_of_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.html index 99d1541fa..7d21011e6 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.number_of_vertices.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + Diagram.number_of_vertices — COMPAS AGS + - compas_ags - Diagram.number_of_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.obb.html b/latest/api/generated/compas_ags.diagrams.Diagram.obb.html new file mode 100644 index 000000000..a006206c4 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + Diagram.obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.obb

+
+
+Diagram.obb()
+

Calculate the oriented bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.offset.html b/latest/api/generated/compas_ags.diagrams.Diagram.offset.html new file mode 100644 index 000000000..0443c2147 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.offset.html @@ -0,0 +1,677 @@ + + + + + + + + + + + + Diagram.offset — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.offset

+
+
+Diagram.offset(distance=1.0)
+

Generate an offset mesh.

+
+
Parameters:
+
+
distancefloat, optional

The offset distance.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The offset mesh.

+
+
+
+
+

Notes

+

If the offset distance is a positive value, the offset is in the direction of the vertex normal. +If the value is negative, the offset is in the opposite direction. +In both cases, the orientation of the offset mesh is the same as the orientation of the original.

+

In areas with high degree of curvature, the offset mesh can have self-intersections.

+

Examples

+
>>> from compas.datastructures import Mesh, mesh_offset
+>>> from compas.geometry import distance_point_point as dist
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.offset()
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.html b/latest/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.html index 4c15cb9d4..8e0bbb1a2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + Diagram.quads_to_triangles — COMPAS AGS + - compas_ags - Diagram.quads_to_triangles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.quads_to_triangles

Diagram.quads_to_triangles(check_angles=False)
-

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

+

Convert all quadrilateral faces to triangles by adding a diagonal edge.

Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • check_angles (bool, optional) – Flag indicating that the angles of the quads should be checked to choose the best diagonal.

  • -
+
+
check_anglesbool, optional

Flag indicating that the angles of the quads should be checked to choose the best diagonal.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.html new file mode 100644 index 000000000..4b4e2a131 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + Diagram.remove_duplicate_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.remove_duplicate_vertices

+
+
+Diagram.remove_duplicate_vertices(precision=None)
+

Remove all duplicate vertices and clean up any affected faces.

+
+
Parameters:
+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
+
+
Returns:
+
+
None

The mesh is modified in-place.

+
+
+
+
+

Examples

+
>>> import compas
+>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
+>>> mesh.number_of_vertices()
+36
+>>> for x, y, z in mesh.vertices_attributes("xyz", keys=list(mesh.vertices())[:5]):
+...     mesh.add_vertex(x=x, y=y, z=z)
+38
+39
+40
+>>> mesh.number_of_vertices()
+41
+>>> mesh.remove_duplicate_vertices()
+>>> mesh.number_of_vertices()
+36
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.html index a66f6581e..b6648955a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + Diagram.remove_unused_vertices — COMPAS AGS + - compas_ags - Diagram.remove_unused_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.rotate.html b/latest/api/generated/compas_ags.diagrams.Diagram.rotate.html new file mode 100644 index 000000000..49a3162f8 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.rotate.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + Diagram.rotate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.rotate

+
+
+Diagram.rotate(angle, axis=None, point=None)
+

Rotate the datastructure.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
rotated
+
translate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.rotated.html b/latest/api/generated/compas_ags.diagrams.Diagram.rotated.html new file mode 100644 index 000000000..bf09e282a --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.rotated.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + Diagram.rotated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.rotated

+
+
+Diagram.rotated(angle, axis=None, point=None)
+

Returns a rotated copy of this geometry.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
Geometry

The rotated geometry.

+
+
+
+
+
+

See also

+
+
rotate
+
translated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.scale.html b/latest/api/generated/compas_ags.diagrams.Diagram.scale.html new file mode 100644 index 000000000..720ed32b7 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.scale.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + Diagram.scale — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.scale

+
+
+Diagram.scale(x, y=None, z=None)
+

Scale the datastructure.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
scaled
+
translate
+
rotate
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.scaled.html b/latest/api/generated/compas_ags.diagrams.Diagram.scaled.html new file mode 100644 index 000000000..ff35a64c1 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.scaled.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + Diagram.scaled — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.scaled

+
+
+Diagram.scaled(x, y=None, z=None)
+

Returns a scaled copy of this geometry.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
Geometry

The scaled geometry.

+
+
+
+
+
+

See also

+
+
scale
+
translated
+
rotated
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.html b/latest/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.html new file mode 100644 index 000000000..767d56648 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + Diagram.set_vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.set_vertex_point

+
+
+Diagram.set_vertex_point(vertex, point)
+

Set the point of a vertex.

+
+
Parameters:
+
+
vertexint

The identifier of the vertex.

+
+
pointcompas.geometry.Point

The point to set.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.sha256.html b/latest/api/generated/compas_ags.diagrams.Diagram.sha256.html index e62c23de4..617f12538 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.sha256.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.sha256.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.sha256 — COMPAS AGS + - compas_ags - Diagram.sha256 + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.sha256

@@ -105,233 +568,109 @@

Diagram.sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

Parameters:
-

as_string (bool, optional) – If True, return the digest in hexadecimal format rather than as bytes.

+
+
as_stringbool, optional

If True, return the digest in hexadecimal format rather than as bytes.

+
+
Returns:
-

bytes | str

+
+
bytes | str
+

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh.from_obj(compas.get('faces.obj'))
+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> v1 = mesh.sha256()
 >>> v2 = mesh.sha256()
->>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], 'z', 1)
+>>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], "z", 1)
 >>> v3 = mesh.sha256()
 >>> v1 == v2
 True
 >>> v2 == v3
 False
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.slice.html b/latest/api/generated/compas_ags.diagrams.Diagram.slice.html new file mode 100644 index 000000000..3a069ec51 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.slice.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + Diagram.slice — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.slice

+
+
+Diagram.slice(plane)
+

Slice a mesh with a plane and construct the resulting submeshes.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

The original mesh.

+
+
planecompas.geometry.Plane

The cutting plane.

+
+
+
+
Returns:
+
+
tuple[compas.datastructures.Mesh, compas.datastructures.Mesh] | None

The “positive” and “negative” submeshes. +If the mesh and plane do not intersect, +or if the intersection is degenerate (point or line), +the function returns None.

+
+
+
+
+

Examples

+
>>> from compas.geometry import Plane
+>>> from compas.geometry import Box
+>>> from compas.datastructures import Mesh
+>>> plane = Plane((0, 0, 0), (1, 0, 0))
+>>> box = Box.from_width_height_depth(1, 1, 1)
+>>> mesh = Mesh.from_shape(box)
+>>> result = mesh_slice_plane(mesh, plane)
+>>> len(result) == 2
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.smooth_area.html b/latest/api/generated/compas_ags.diagrams.Diagram.smooth_area.html index 1e8cde351..32c6ae3f3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.smooth_area.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.smooth_area.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + Diagram.smooth_area — COMPAS AGS + + - compas_ags - Diagram.smooth_area + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.smooth_area

Diagram.smooth_area(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.html b/latest/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.html index e363d6e33..1c5e70d47 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.smooth_centroid.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + Diagram.smooth_centroid — COMPAS AGS + + - compas_ags - Diagram.smooth_centroid + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.smooth_centroid

Diagram.smooth_centroid(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.split_edge.html b/latest/api/generated/compas_ags.diagrams.Diagram.split_edge.html index 7641b33cb..1f1b87cb2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.split_edge.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.split_edge.html @@ -1,334 +1,677 @@ + + - - + + + + + + + + Diagram.split_edge — COMPAS AGS + - compas_ags - Diagram.split_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.split_edge

-Diagram.split_edge(u, v, t=0.5, allow_boundary=False)
+Diagram.split_edge(edge, t=0.5, allow_boundary=False)

Split and edge by inserting a vertex along its length.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (int) – The key of the first vertex of the edge.

  • -
  • v (int) – The key of the second vertex of the edge.

  • -
  • t (float, optional) – The position of the inserted vertex. -The value should be between 0.0 and 1.0

  • -
  • allow_boundary (bool, optional) – If True, also split edges on the boundary.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge to split.

+
+
tfloat, optional

The position of the inserted vertex. +The value should be between 0.0 and 1.0

+
+
allow_boundarybool, optional

If True, also split edges on the boundary.

+
+
Returns:
-

int – The key of the inserted vertex.

+
+
int

The key of the inserted vertex.

+
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If u and v are not neighbors.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.split_face.html b/latest/api/generated/compas_ags.diagrams.Diagram.split_face.html index 187e03b2b..4c0efa9dc 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.split_face.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.split_face.html @@ -1,127 +1,600 @@ + + - - + + + + + + + + Diagram.split_face — COMPAS AGS + + - compas_ags - Diagram.split_face + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.split_face

Diagram.split_face(fkey, u, v)

Split a face by inserting an edge between two specified vertices.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh

  • -
  • fkey (int) – The face key.

  • -
  • u (int) – The key of the first split vertex.

  • -
  • v (int) – The key of the second split vertex.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh

+
+
fkeyint

The face key.

+
+
uint

The key of the first split vertex.

+
+
vint

The key of the second split vertex.

+
+
Returns:
-

tuple[int, int] – Keys of the created faces.

+
+
tuple[int, int]

Keys of the created faces.

+
+
Raises:
-

ValueError – If the split vertices does not belong to the split face or if the split - vertices are neighbors.

+
+
ValueError

If the split vertices does not belong to the split face or if the split +vertices are neighbors.

+
+

Examples

-
>>> import compas
+
>>> import compas
 >>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> face = mesh.face_sample(size=1)[0]
@@ -134,216 +607,87 @@ 

Diagram.split_face

(25, 26) >>> mesh.number_of_faces() # faces after split 26 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.split_strip.html b/latest/api/generated/compas_ags.diagrams.Diagram.split_strip.html index f695c41d8..02874ac8d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.split_strip.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.split_strip.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + Diagram.split_strip — COMPAS AGS + - compas_ags - Diagram.split_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.split_strip

Diagram.split_strip(edge)

Split the srip of faces corresponding to a given edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – The input mesh.

  • -
  • edge (tuple[int, int]) – The edge identifying the strip.

  • -
+
+
meshcompas.datastructures.Mesh

The input mesh.

+
+
edgetuple[int, int]

The edge identifying the strip.

+
+
Returns:
-

list[int] – The split vertices in the same order as the edges of the strip.

+
+
list[int]

The split vertices in the same order as the edges of the strip.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.subdivided.html b/latest/api/generated/compas_ags.diagrams.Diagram.subdivided.html new file mode 100644 index 000000000..705549201 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.subdivided.html @@ -0,0 +1,674 @@ + + + + + + + + + + + + Diagram.subdivided — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.subdivided

+
+
+Diagram.subdivided(scheme='catmullclark', **options)
+

Subdivide the input mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
schemeLiteral[‘tri’, ‘quad’, ‘corner’, ‘catmullclark’, ‘doosabin’, ‘frames’, ‘loop’], optional

The scheme according to which the mesh should be subdivided.

+
+
**optionsdict[str, Any], optional

Optional additional keyword arguments.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The subdivided mesh.

+
+
+
+
Raises:
+
+
ValueError

If the scheme is not supported.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.summary.html b/latest/api/generated/compas_ags.diagrams.Diagram.summary.html index ce6901e6f..e66dba1e0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.summary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.summary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.summary — COMPAS AGS + - compas_ags - Diagram.summary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.thickened.html b/latest/api/generated/compas_ags.diagrams.Diagram.thickened.html new file mode 100644 index 000000000..ce3ea9234 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.thickened.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + Diagram.thickened — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.thickened

+
+
+Diagram.thickened(thickness=1.0, both=True)
+

Generate a thicknened mesh.

+
+
Parameters:
+
+
thicknessfloat, optional

The mesh thickness. +This should be a positive value.

+
+
bothbool, optional

If true, the mesh is thickened on both sides of the original. +Otherwise, the mesh is thickened on the side of the positive normal.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The thickened mesh.

+
+
+
+
Raises:
+
+
ValueError

If thickness is not a positive number.

+
+
+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.thicken(mesh)
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_json.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_json.html index c8e0c2ae2..e37643a44 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_json.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_json.html @@ -1,327 +1,661 @@ + + - - + + + + + + + + Diagram.to_json — COMPAS AGS + - compas_ags - Diagram.to_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.html index ae788e809..4e7136816 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_jsonstring.html @@ -1,324 +1,665 @@ + + - - + + + + + + + + Diagram.to_jsonstring — COMPAS AGS + - compas_ags - Diagram.to_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_jsonstring

Diagram.to_jsonstring(pretty=False)
-

Serialize the data representation of an object to a JSON string.

+

Convert an object to its native data representation and save it to a JSON string.

Parameters:
-

pretty (bool, optional) – If True serialize a pretty representation of the data.

+
+
prettybool, optional

If True, the JSON string will be pretty printed. +Defaults to False.

+
+
Returns:
-

str – The object’s data dict in JSON string format.

+
+
str

The JSON string.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_lines.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_lines.html index 403a66f79..a44dbe0f7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_lines.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_lines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.to_lines — COMPAS AGS + - compas_ags - Diagram.to_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_obj.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_obj.html index 2592ce19a..4915766f2 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_obj.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.to_obj — COMPAS AGS + + - compas_ags - Diagram.to_obj + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_obj

@@ -105,15 +568,20 @@

Diagram.to_obj

Write the mesh to an OBJ file.

Parameters:
-
    -
  • filepath (str) – Full path of the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
  • unweld (bool, optional) – If True, all faces have their own unique vertices. -If False (default), vertices are shared between faces if this is also the case in the mesh.

  • -
+
+
filepathstr

Full path of the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
unweldbool, optional

If True, all faces have their own unique vertices. +If False (default), vertices are shared between faces if this is also the case in the mesh.

+
+
Returns:
-

None

+
+
None
+
@@ -125,210 +593,81 @@

Diagram.to_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_off.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_off.html index 55b6907fb..18cec137c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_off.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.to_off — COMPAS AGS + - compas_ags - Diagram.to_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_off

@@ -105,220 +568,96 @@

Diagram.to_off

Write a mesh object to an OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_ply.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_ply.html index 8763d283f..807ae1a09 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_ply.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.to_ply — COMPAS AGS + - compas_ags - Diagram.to_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_ply

@@ -105,220 +568,96 @@

Diagram.to_ply

Write a mesh object to a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_points.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_points.html index 67b93ea1f..ad0e9c7d3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_points.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_points.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.to_points — COMPAS AGS + - compas_ags - Diagram.to_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_polygons.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_polygons.html index 5e83df350..94afd420d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_polygons.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.to_polygons — COMPAS AGS + - compas_ags - Diagram.to_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_polylines.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_polylines.html index 1f943b6c6..53019e08e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_polylines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.to_polylines — COMPAS AGS + - compas_ags - Diagram.to_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_stl.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_stl.html index a12523a9e..1119ed6b9 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_stl.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.to_stl — COMPAS AGS + - compas_ags - Diagram.to_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_stl

@@ -105,230 +568,106 @@

Diagram.to_stl

Write a mesh to an STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – Rounding precision for the vertex coordinates. -Defaults to the value of compas.PRECISION.

  • -
  • binary (bool, optional) – If True, the file will be written in binary format. -ASCII otherwise.

  • -
+
+
filepathstr

The path to the file.

+
+
precisionstr, optional

Rounding precision for the vertex coordinates. +Defaults to the value of compas.PRECISION.

+
+
binarybool, optional

If True, the file will be written in binary format. +ASCII otherwise.

+
+
Returns:
-

None

+
+
None
+

Notes

STL files only support triangle faces. It is the user’s responsibility to convert all faces of a mesh to triangles. -For example, with compas.datastructures.mesh_quads_to_triangles().

+For example, with compas.datastructures.Mesh.quads_to_triangles().

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.html index efab2ad66..89828418b 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.to_vertices_and_faces — COMPAS AGS + - compas_ags - Diagram.to_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.to_vertices_and_faces

@@ -105,224 +568,99 @@

Diagram.to_vertices_and_faces

Return the vertices and faces of a mesh.

Parameters:
-

triangulated (bool, optional) – If True, triangulate the faces.

+
+
triangulated: bool, optional

If True, triangulate the faces.

+
+
Returns:
-

    -
  • list[list[float]] – The vertices as a list of XYZ coordinates.

  • -
  • list[list[int]] – The faces as a list of lists of vertex indices.

  • -
-

+
+
list[list[float]]

The vertices as a list of XYZ coordinates.

+
+
list[list[int]]

The faces as a list of lists of vertex indices.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.transform.html b/latest/api/generated/compas_ags.diagrams.Diagram.transform.html index 59f1a760e..b5241d06f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.transform.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.transform.html @@ -1,336 +1,672 @@ + + - - + + + + + + + + Diagram.transform — COMPAS AGS + + - compas_ags - Diagram.transform + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.transform

-Diagram.transform(transformation)
-

Transform a mesh.

-
+Diagram.transform(T) +

Transform the mesh.

+
Parameters:
-
    -
  • mesh (Mesh) – The mesh.

  • -
  • transformation (Transformation) – The transformation.

  • -
+
+
TTransformation

The transformation used to transform the mesh.

+
+
Returns:
-

None – The mesh is modified in-place.

+
+
None

The mesh is modified in-place.

+
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> from compas.geometry import matrix_from_axis_and_angle
 >>> mesh = Mesh.from_polyhedron(6)
 >>> T = matrix_from_axis_and_angle([0, 0, 1], math.pi / 4)
->>> tmesh = mesh.copy()
->>> mesh_transform(tmesh, T)
-
+>>> mesh.transform(T) +
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.transform_numpy.html b/latest/api/generated/compas_ags.diagrams.Diagram.transform_numpy.html index aef204c69..0ce5fdfd1 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.transform_numpy.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.transform_numpy.html @@ -1,274 +1,672 @@ + + - - + + + + + + + + + Diagram.transform_numpy — COMPAS AGS - compas_ags - Diagram.transform_numpy + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + +
+ +
+ + + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+ +
+ +
- - - + + + + - - - - - - - - - - - - - +
+ + +
+ \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.transformed.html b/latest/api/generated/compas_ags.diagrams.Diagram.transformed.html index 3cfae1d1b..bb46577b0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.transformed.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.transformed.html @@ -1,335 +1,664 @@ + + - - + + + + + + + + Diagram.transformed — COMPAS AGS + + - compas_ags - Diagram.transformed + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.html b/latest/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.html new file mode 100644 index 000000000..d8214619c --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.transformed_numpy — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.transformed_numpy

+
+
+Diagram.transformed_numpy(transformation)
+

Returns a transformed copy of this data structure.

+
+
Parameters:
+
+
transformationTransformation

The transformation used to transform the copy.

+
+
+
+
Returns:
+
+
Datastructure

The transformed copy.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.translate.html b/latest/api/generated/compas_ags.diagrams.Diagram.translate.html new file mode 100644 index 000000000..9356ed611 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.translate.html @@ -0,0 +1,672 @@ + + + + + + + + + + + + Diagram.translate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.translate

+
+
+Diagram.translate(vector)
+

Translate the datastructure.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
translated
+
rotate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.translated.html b/latest/api/generated/compas_ags.diagrams.Diagram.translated.html new file mode 100644 index 000000000..0b3b2abf7 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.translated.html @@ -0,0 +1,673 @@ + + + + + + + + + + + + Diagram.translated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.translated

+
+
+Diagram.translated(vector)
+

Returns a translated copy of this geometry.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
Geometry

The translated geometry.

+
+
+
+
+
+

See also

+
+
translate
+
rotated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unify_cycles.html b/latest/api/generated/compas_ags.diagrams.Diagram.unify_cycles.html index 4507d8726..ad502f4b7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.unify_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unify_cycles.html @@ -1,332 +1,658 @@ + + - - + + + + + + + + Diagram.unify_cycles — COMPAS AGS + - compas_ags - Diagram.unify_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.html index 41c012362..b1a3659b0 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.unset_edge_attribute — COMPAS AGS + - compas_ags - Diagram.unset_edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.unset_edge_attribute

@@ -105,18 +568,33 @@

Diagram.unset_edge_attribute

Unset the attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The edge identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
edgetuple[int, int]

The edge identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+

Notes

Unsetting the value of an edge attribute implicitly sets it back to the value stored in the default edge attribute dict.

@@ -124,210 +602,81 @@

Diagram.unset_edge_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.html index 40b4fa562..45f9e011e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.unset_face_attribute — COMPAS AGS + - compas_ags - Diagram.unset_face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.unset_face_attribute

@@ -105,18 +568,33 @@

Diagram.unset_face_attribute

Unset the attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+

Notes

Unsetting the value of a face attribute implicitly sets it back to the value stored in the default face attribute dict.

@@ -124,210 +602,81 @@

Diagram.unset_face_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.html index afbe53f0e..cdaeee0a5 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.unset_vertex_attribute — COMPAS AGS + - compas_ags - Diagram.unset_vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.unset_vertex_attribute

@@ -105,18 +568,33 @@

Diagram.unset_vertex_attribute

Unset the attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+

Notes

Unsetting the value of a vertex attribute implicitly sets it back to the value stored in the default vertex attribute dict.

@@ -124,210 +602,81 @@

Diagram.unset_vertex_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unweld_edges.html b/latest/api/generated/compas_ags.diagrams.Diagram.unweld_edges.html new file mode 100644 index 000000000..7e2c80924 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unweld_edges.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + Diagram.unweld_edges — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.unweld_edges

+
+
+Diagram.unweld_edges(edges)
+

Unwelds a mesh along edges.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh.

+
+
edges: list[tuple[int, int]]

List of edges as tuples of vertex keys.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.html new file mode 100644 index 000000000..d13e3c74d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + Diagram.unweld_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.unweld_vertices

+
+
+Diagram.unweld_vertices(fkey, where=None)
+

Unweld a face of the mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fkeyint

The identifier of a face.

+
+
wherelist[int], optional

A list of vertices to unweld. +Default is to unweld all vertices of the face.

+
+
+
+
Returns:
+
+
list[int]

The vertices of the unwelded face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.html index 47cd5d1fb..b3f00569a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.update_default_edge_attributes — COMPAS AGS + - compas_ags - Diagram.update_default_edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.update_default_edge_attributes

@@ -105,225 +568,107 @@

Diagram.update_default_edge_attributes

Update the default edge attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.html index caf975bb7..e4ae2a252 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.update_default_face_attributes — COMPAS AGS + - compas_ags - Diagram.update_default_face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.update_default_face_attributes

@@ -105,225 +568,107 @@

Diagram.update_default_face_attributes

Update the default face attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.html index f23bcdfaa..84e8245ce 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.update_default_vertex_attributes — COMPAS AGS + - compas_ags - Diagram.update_default_vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.update_default_vertex_attributes

@@ -105,225 +568,107 @@

Diagram.update_default_vertex_attributes

Update the default vertex attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.validate_data.html b/latest/api/generated/compas_ags.diagrams.Diagram.validate_data.html index 29e10a9c5..85c9634de 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.validate_data.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.validate_data.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + Diagram.validate_data — COMPAS AGS + - compas_ags - Diagram.validate_data + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_area.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_area.html index b0739bf73..8f9cb746f 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_area.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_area — COMPAS AGS + - compas_ags - Diagram.vertex_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_area

@@ -105,220 +568,97 @@

Diagram.vertex_area

Compute the tributary area of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

float – The tributary are.

+
+
float

The tributary are.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.html index 446c44c6c..cd311895d 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_attribute — COMPAS AGS + - compas_ags - Diagram.vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_attribute

@@ -105,228 +568,117 @@

Diagram.vertex_attribute

Get or set an attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, +

+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.html index 2194d599a..ef24c59c4 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_attributes — COMPAS AGS + - compas_ags - Diagram.vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_attributes

@@ -105,231 +568,119 @@

Diagram.vertex_attributes

Get or set multiple attributes of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the vertex.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, the function returns a dictionary of all attribute name-value pairs of the vertex. If the parameter names is not empty, the function returns a list of the values corresponding to the requested attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.html index 97b33ac9c..2d9e11010 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_coordinates — COMPAS AGS + - compas_ags - Diagram.vertex_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_coordinates

@@ -105,224 +568,100 @@

Diagram.vertex_coordinates

Return the coordinates of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
keyint

The identifier of the vertex.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[float] – Coordinates of the vertex.

+
+
list[float]

Coordinates of the vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.html index 02e8ac7e7..6741e8248 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_curvature — COMPAS AGS + - compas_ags - Diagram.vertex_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_curvature

@@ -105,10 +568,16 @@

Diagram.vertex_curvature

Dimensionless vertex curvature.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+

References

@@ -123,210 +592,81 @@

Diagram.vertex_curvature

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_degree.html index de7661605..e6344cced 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_degree — COMPAS AGS + - compas_ags - Diagram.vertex_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_degree

@@ -105,220 +568,97 @@

Diagram.vertex_degree

Count the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

int – The degree of the vertex.

+
+
int

The degree of the vertex.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_edges.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_edges.html index 16977eca0..a67fb455a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_edges.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_edges — COMPAS AGS + - compas_ags - Diagram.vertex_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_edges

@@ -105,220 +568,95 @@

Diagram.vertex_edges

Find all edges connected to a given vertex.

Parameters:
-

vertex (int)

+
+
vertexint
+
Returns:
-

list[tuple[int, int]]

+
+
list[tuple[int, int]]
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_faces.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_faces.html index a04c1c1df..a77483934 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_faces.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_faces — COMPAS AGS + - compas_ags - Diagram.vertex_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_faces

@@ -105,224 +568,101 @@

Diagram.vertex_faces

The faces connected to a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the faces in cycling order.

  • -
  • include_none (bool, optional) – If True, include outside faces in the list.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the faces in cycling order.

+
+
include_nonebool, optional

If True, include outside faces in the list.

+
+
Returns:
-

list[int] – The faces connected to a vertex.

+
+
list[int]

The faces connected to a vertex.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.html index b5a3d1480..3f553efe3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_gkey.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_gkey — COMPAS AGS + - compas_ags - Diagram.vertex_gkey + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_gkey

@@ -106,221 +569,98 @@

Diagram.vertex_gkey

geometric key up to a certain precision.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[int, str] – A dictionary of key-geometric key pairs.

+
+
dict[int, str]

A dictionary of key-geometric key pairs.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_index.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_index.html index 250375f63..4ceb95910 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_index.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_index.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + Diagram.vertex_index — COMPAS AGS + - compas_ags - Diagram.vertex_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.html index 2c9060794..306262dd5 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_laplacian — COMPAS AGS + - compas_ags - Diagram.vertex_laplacian + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_laplacian

@@ -105,220 +568,97 @@

Diagram.vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the vector.

+
+
compas.geometry.Vector

The Laplacian vector.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.html index 230e1dd05..e3c0bde15 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.vertex_max_degree — COMPAS AGS + - compas_ags - Diagram.vertex_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.html index ac4dbd570..8da80a744 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.vertex_min_degree — COMPAS AGS + - compas_ags - Diagram.vertex_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.html index 9c8f440ec..ba784291e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_neighborhood — COMPAS AGS + - compas_ags - Diagram.vertex_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_neighborhood

@@ -105,13 +568,18 @@

Diagram.vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ring (int, optional) – The number of neighborhood rings to include.

  • -
+
+
keyint

The identifier of the vertex.

+
+
ringint, optional

The number of neighborhood rings to include.

+
+
Returns:
-

list[int] – The vertices in the neighborhood.

+
+
list[int]

The vertices in the neighborhood.

+
+

Notes

@@ -120,210 +588,81 @@

Diagram.vertex_neighborhood

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.html index 0a4014c5d..82bd68c8b 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_neighborhood_centroid — COMPAS AGS + - compas_ags - Diagram.vertex_neighborhood_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_neighborhood_centroid

@@ -105,220 +568,97 @@

Diagram.vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The centroid of the vertex neighbors.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.html index bb79eb6e4..e4868c6eb 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_neighbors — COMPAS AGS + - compas_ags - Diagram.vertex_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_neighbors

@@ -105,17 +568,22 @@

Diagram.vertex_neighbors

Return the neighbors of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the neighbors in the cycling order of the faces.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the neighbors in the cycling order of the faces.

+
+
Returns:
-

list[int] – The list of neighboring vertices. +

+
list[int]

The list of neighboring vertices. If the vertex lies on the boundary of the mesh, an ordered list always starts and ends with with boundary vertices.

+
+

Notes

Due to the nature of the ordering algorithm, the neighbors cycle around the node in the opposite direction as the cycling direction of the faces. @@ -126,210 +594,81 @@

Diagram.vertex_neighbors

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_normal.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_normal.html index 0566d8eab..443762c43 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_normal.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_normal — COMPAS AGS + - compas_ags - Diagram.vertex_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_normal

@@ -106,220 +569,97 @@

Diagram.vertex_normal

normals of the neighboring faces.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector

The normal vector.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_point.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_point.html new file mode 100644 index 000000000..ec62bb6b5 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_point.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.vertex_point

+
+
+Diagram.vertex_point(key)
+

Return the point of a vertex.

+
+
Parameters:
+
+
keyint

The identifier of the vertex.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point of the vertex.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_sample.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_sample.html index 457b171c7..f7076f0f3 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertex_sample.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertex_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertex_sample — COMPAS AGS + - compas_ags - Diagram.vertex_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertex_sample

@@ -105,220 +568,103 @@

Diagram.vertex_sample

A random sample of the vertices.

Parameters:
-

size (int, optional) – The number of vertices in the random sample.

+
+
sizeint, optional

The number of vertices in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the vertices.

+
+
list[int]

The identifiers of the vertices.

+
+
+
+

See also

+
+
edge_sample(), face_sample()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices.html index 89f50b0a0..3a4150dc7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertices — COMPAS AGS + - compas_ags - Diagram.vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertices

@@ -105,221 +568,105 @@

Diagram.vertices

Iterate over the vertices of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex identifier. If data is True, the next vertex as a (key, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.html index 9c765d3d0..26131fd3a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertices_attribute — COMPAS AGS + - compas_ags - Diagram.vertices_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertices_attribute

@@ -105,229 +568,117 @@

Diagram.vertices_attribute

Get or set an attribute of multiple vertices.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[Any] | None – The value of the attribute for each vertex, +

+
list[Any] | None

The value of the attribute for each vertex, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.html index 1ec3f25b5..ab2eab06c 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertices_attributes — COMPAS AGS + - compas_ags - Diagram.vertices_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertices_attributes

@@ -105,231 +568,119 @@

Diagram.vertices_attributes

Get or set multiple attributes of multiple vertices.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute.

  • -
  • values (list[Any], optional) – The values of the attributes.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute.

+
+
valueslist[Any], optional

The values of the attributes.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, the function returns a list containing an attribute dict per vertex. If the parameter names is not empty, the function returns a list containing a list of attribute values per vertex corresponding to the provided attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.html index c52987437..8eb255d9a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.html @@ -1,321 +1,659 @@ + + - - + + + + + + + + Diagram.vertices_on_boundaries — COMPAS AGS + - compas_ags - Diagram.vertices_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.html index dd4989850..712a7fa8a 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + Diagram.vertices_on_boundary — COMPAS AGS + - compas_ags - Diagram.vertices_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_points.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_points.html new file mode 100644 index 000000000..4e6abde8e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + Diagram.vertices_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.vertices_points

+
+
+Diagram.vertices_points(vertices)
+

Return the points of multiple vertices.

+
+
Parameters:
+
+
verticeslist[int]

The identifiers of the vertices.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where.html index 4ecb285c4..3f7f47af7 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertices_where — COMPAS AGS + - compas_ags - Diagram.vertices_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertices_where

@@ -105,227 +568,111 @@

Diagram.vertices_where

Get vertices for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.html b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.html index 5f2205d3e..7d5faa08e 100644 --- a/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + Diagram.vertices_where_predicate — COMPAS AGS + + - compas_ags - Diagram.vertices_where_predicate + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

Diagram.vertices_where_predicate

@@ -105,230 +568,109 @@

Diagram.vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the vertex identifier and the vertex attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

-

Examples

-
>>>
-
+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.Diagram.weld.html b/latest/api/generated/compas_ags.diagrams.Diagram.weld.html new file mode 100644 index 000000000..6362b3198 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.Diagram.weld.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + Diagram.weld — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Diagram.weld

+
+
+Diagram.weld(precision=None)
+

Weld vertices that are closer than a given precision.

+
+
Parameters:
+
+
precisionint, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
+
+
Returns:
+
+
None

The mesh is modified in place.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.ToString.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.ToString.html index 9109a2947..4e36c58f3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.ToString.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.ToString.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.ToString — COMPAS AGS + - compas_ags - ForceDiagram.ToString + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.ToString

@@ -114,210 +577,81 @@

ForceDiagram.ToString

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.aabb.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.aabb.html new file mode 100644 index 000000000..c9107bd23 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + ForceDiagram.aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.aabb

+
+
+ForceDiagram.aabb()
+

Calculate the axis aligned bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_face.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_face.html index 7e3c227f7..20d1e33e0 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_face.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.add_face — COMPAS AGS + - compas_ags - ForceDiagram.add_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.add_face

@@ -105,19 +568,35 @@

ForceDiagram.add_face

Add a face to the mesh object.

Parameters:
-
    -
  • vertices (list[int]) – A list of vertex keys.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of face attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
verticeslist[int]

A list of vertex keys.

+
+
attr_dictdict[str, Any], optional

A dictionary of face attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The key of the face.

+
+
int

The key of the face.

+
+
Raises:
-

TypeError – If the provided face key is of an unhashable type.

+
+
TypeError

If the provided face key is of an unhashable type.

+
+
+

Notes

If no key is provided for the face, one is generated automatically. An automatically generated key is an integer that increments @@ -128,210 +607,81 @@

ForceDiagram.add_face

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.html index 6db887b62..759ac549c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.add_vertex — COMPAS AGS + + - compas_ags - ForceDiagram.add_vertex + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.add_vertex

@@ -105,16 +568,29 @@

ForceDiagram.add_vertex

Add a vertex to the mesh object.

Parameters:
-
    -
  • key (int, optional) – The vertex identifier.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of vertex attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
keyint, optional

The vertex identifier.

+
+
attr_dictdict[str, Any], optional

A dictionary of vertex attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The identifier of the vertex.

+
+
int

The identifier of the vertex.

+
+
+

Notes

If no key is provided for the vertex, one is generated automatically. An automatically generated key is an integer that increments @@ -122,7 +598,7 @@

ForceDiagram.add_vertex

If a key with an integer value is provided that is higher than the current highest integer key value, then the highest integer value is updated accordingly.

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh()
 >>> mesh.add_vertex()
 0
@@ -132,216 +608,87 @@ 

ForceDiagram.add_vertex

2 >>> mesh.add_vertex(key=0, x=1) 0 -
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.html new file mode 100644 index 000000000..41616bd0b --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.adjacency_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.adjacency_matrix

+
+
+ForceDiagram.adjacency_matrix(rtype='array')
+

Compute the adjacency matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The adjacency matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.anchor.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.anchor.html index b23557a2c..44543c88a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.anchor.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.anchor.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + ForceDiagram.anchor — COMPAS AGS + - compas_ags - ForceDiagram.anchor + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.area.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.area.html index cad20e69a..ab9bf03f0 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.area.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.area.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.area — COMPAS AGS + - compas_ags - ForceDiagram.area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.centroid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.centroid.html index c6623e988..19bba035b 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.centroid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.centroid.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.centroid — COMPAS AGS + - compas_ags - ForceDiagram.centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.clear.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.clear.html index 02706ec86..0c2ac8c0f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.clear.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.clear.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + ForceDiagram.clear — COMPAS AGS + - compas_ags - ForceDiagram.clear + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.html index f4bb44f04..9aa094051 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.html @@ -1,337 +1,680 @@ + + - - + + + + + + + + ForceDiagram.collapse_edge — COMPAS AGS + - compas_ags - ForceDiagram.collapse_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.collapse_edge

-ForceDiagram.collapse_edge(u, v, t=0.5, allow_boundary=False, fixed=None)
+ForceDiagram.collapse_edge(edge, t=0.5, allow_boundary=False, fixed=None)

Collapse an edge to its first or second vertex, or to an intermediate point.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (str) – The first vertex of the (half-) edge.

  • -
  • v (str) – The second vertex of the (half-) edge.

  • -
  • t (float, optional) – Determines where to collapse to. -If t == 0.0 collapse to u. -If t == 1.0 collapse to v. -If 0.0 < t < 1.0, collapse to a point between u and v.

  • -
  • allow_boundary (bool, optional) – If True, allow collapses involving boundary vertices.

  • -
  • fixed (list[int], optional) – A list of identifiers of vertices that should stay fixed.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge.

+
+
tfloat, optional

Determines where to collapse to. +If t == 0.0 collapse to start of the edge. +If t == 1.0 collapse to end of the edge. +If 0.0 < t < 1.0, collapse to a point between start and end of the edge.

+
+
allow_boundarybool, optional

If True, allow collapses involving boundary vertices.

+
+
fixedlist[int], optional

A list of identifiers of vertices that should stay fixed.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If the edge is not part of the mesh.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.html new file mode 100644 index 000000000..a368ffe4c --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + ForceDiagram.compute_aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.compute_aabb

+
+
+ForceDiagram.compute_aabb()
+

Compute the axis-aligned bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.html new file mode 100644 index 000000000..4783ef44b --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + ForceDiagram.compute_obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.compute_obb

+
+
+ForceDiagram.compute_obb()
+

Compute the oriented bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.html new file mode 100644 index 000000000..c3e60fac5 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + ForceDiagram.connected_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.connected_faces

+
+
+ForceDiagram.connected_faces()
+

Find groups of connected faces.

+
+
Returns:
+
+
list[list[int]]

Groups of connected faces.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.html new file mode 100644 index 000000000..8296efe18 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + ForceDiagram.connected_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.connected_vertices

+
+
+ForceDiagram.connected_vertices()
+

Find groups of connected vertices.

+
+
Returns:
+
+
list[list[int]]

Groups of connected vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.html new file mode 100644 index 000000000..109ebb0bc --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.connectivity_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.connectivity_matrix

+
+
+ForceDiagram.connectivity_matrix(rtype='array')
+

Compute the connectivity matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The connectivity matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.html index 257b4c369..ffb2a0874 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + ForceDiagram.constraints_from_dual — COMPAS AGS + - compas_ags - ForceDiagram.constraints_from_dual + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.copy.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.copy.html index 1cd1569af..7c9aa862a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.copy.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.copy.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + ForceDiagram.copy — COMPAS AGS + - compas_ags - ForceDiagram.copy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.copy

ForceDiagram.copy(cls=None)

Make an independent copy of the data object.

-
+
Parameters:
-

cls (Type[Data], optional) – The type of data object to return. +

+
clsType[compas.data.Data], optional

The type of data object to return. Defaults to the type of the current data object.

+
+
Returns:
-

Data – An independent copy of this object.

+
+
compas.data.Data

An independent copy of this object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.html index 25bada6c6..a9e226227 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + ForceDiagram.cull_vertices — COMPAS AGS + - compas_ags - ForceDiagram.cull_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.html new file mode 100644 index 000000000..eb7c9f751 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.degree_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.degree_matrix

+
+
+ForceDiagram.degree_matrix(rtype='array')
+

Compute the degree matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The degree matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.html index 18f08f15f..ef857b121 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.delete_face — COMPAS AGS + - compas_ags - ForceDiagram.delete_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.delete_face

@@ -105,12 +568,24 @@

ForceDiagram.delete_face

Delete a face from the mesh object.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

ForceDiagram.delete_face

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.html index d8346c986..87d9f10c2 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.delete_vertex — COMPAS AGS + - compas_ags - ForceDiagram.delete_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.delete_vertex

@@ -105,12 +568,24 @@

ForceDiagram.delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

ForceDiagram.delete_vertex

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.html index a1637fd18..6dd0b9a2a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + ForceDiagram.dual_edge — COMPAS AGS + - compas_ags - ForceDiagram.dual_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.dual_edge

-ForceDiagram.dual_edge(edge)[source]
+ForceDiagram.dual_edge(edge)

Find the cooresponding edge in the diagram’s dual.

Parameters:
-

edge (tuple of int) – The edge identifier.

+
+
edgetuple of int

The edge identifier.

+
+
Returns:
-

tuple (int, int) or None – The identifier of the dual edge if it exists.

+
+
tuple (int, int) or None

The identifier of the dual edge if it exists.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.html index 0ffc34edf..4dd950596 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.dual_edge_angledeviation — COMPAS AGS + - compas_ags - ForceDiagram.dual_edge_angledeviation + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.dual_edge_angledeviation

-ForceDiagram.dual_edge_angledeviation(edge)[source]
+ForceDiagram.dual_edge_angledeviation(edge)

Retrieve the angle deviation in the corresponding edge of the diagram’s dual.

Parameters:
-

edge (tuple(int, int)) – The edge identifier.

+
+
edgetuple(int, int)

The edge identifier.

+
+
Returns:
-

float

+
+
float
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.html index 0e2ce5bd0..38e6b399b 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.dual_edge_force — COMPAS AGS + - compas_ags - ForceDiagram.dual_edge_force + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.dual_edge_force

-ForceDiagram.dual_edge_force(edge)[source]
+ForceDiagram.dual_edge_force(edge)

Retrieve the force in the corresponding edge of the diagram’s dual.

Parameters:
-

edge (tuple(int, int)) – The edge identifier.

+
+
edgetuple(int, int)

The edge identifier.

+
+
Returns:
-

float

+
+
float
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.html index 05042d261..90288b10e 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.dual_edge_targetforce — COMPAS AGS + - compas_ags - ForceDiagram.dual_edge_targetforce + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.dual_edge_targetforce

-ForceDiagram.dual_edge_targetforce(edge)[source]
+ForceDiagram.dual_edge_targetforce(edge)

Retrieve the target force in the corresponding edge of the diagram’s dual.

Parameters:
-

edge (tuple(int, int)) – The edge identifier.

+
+
edgetuple(int, int)

The edge identifier.

+
+
Returns:
-

float

+
+
float
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.html index e8df9a97f..53f9f7bdd 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edge_attribute — COMPAS AGS + - compas_ags - ForceDiagram.edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_attribute

@@ -105,228 +568,117 @@

ForceDiagram.edge_attribute

Get or set an attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge as a pair of vertex identifiers.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
+
+
edgetuple[int, int]

The identifier of the edge as a pair of vertex identifiers.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.html index d530bc7b8..189e4b2b1 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edge_attributes — COMPAS AGS + - compas_ags - ForceDiagram.edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_attributes

@@ -105,231 +568,119 @@

ForceDiagram.edge_attributes

Get or set multiple attributes of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the edge. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.html index b96da57ef..5380e3c87 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.html @@ -1,332 +1,667 @@ + + - - + + + + + + + + ForceDiagram.edge_coordinates — COMPAS AGS + - compas_ags - ForceDiagram.edge_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_coordinates

-ForceDiagram.edge_coordinates(u, v, axes='xyz')
+ForceDiagram.edge_coordinates(edge, axes='xyz')

Return the coordinates of the start and end point of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • axes (str, optional) – The axes along which the coordinates should be included.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
axesstr, optional

The axes along which the coordinates should be included.

+
+
Returns:
-

    -
  • list[float] – The coordinates of the start point.

  • -
  • list[float] – The coordinates of the end point.

  • -
-

+
+
tuple(point, point)

The coordinates of the start point. +The coordinates of the end point.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.html index 6270da555..9565854eb 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.edge_direction — COMPAS AGS + - compas_ags - ForceDiagram.edge_direction + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_direction

-ForceDiagram.edge_direction(u, v)
+ForceDiagram.edge_direction(edge)

Return the direction vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The direction vector of the edge.

+
+
compas.geometry.Vector

The direction vector of the edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.html new file mode 100644 index 000000000..195dce20a --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.edge_end — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.edge_end

+
+
+ForceDiagram.edge_end(edge)
+

Return the point at the end of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the end.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.html index 643f46c43..436ae28fd 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + ForceDiagram.edge_faces — COMPAS AGS + - compas_ags - ForceDiagram.edge_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_faces

-ForceDiagram.edge_faces(u, v)
+ForceDiagram.edge_faces(edge)

Find the two faces adjacent to an edge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

tuple[int, int] – The identifiers of the adjacent faces. +

+
tuple[int, int]

The identifiers of the adjacent faces. If the edge is on the boundary, one of the identifiers is None.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.html index 4c7d69ff6..69634889e 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_index.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + ForceDiagram.edge_index — COMPAS AGS + - compas_ags - ForceDiagram.edge_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_index

-ForceDiagram.edge_index(form=None)[source]
+ForceDiagram.edge_index(form=None)

Construct a mapping between the identifiers of edges and the corresponding indices in a list of edges.

-
+
Parameters:
-

form (compas_ags.diagrams.FormDiagram, optional) – If a form diagra is provided as reference, the list of edges is ordered such that it corresponds +

+
formcompas_ags.diagrams.FormDiagram, optional

If a form diagra is provided as reference, the list of edges is ordered such that it corresponds to the natural ordering of edges in the form diagram.

+
+
Returns:
-

dict – Mapping between edge identifiers and the correpsonding indices of the edges in a list.

+
+
dict

Mapping between edge identifiers and the correpsonding indices of the edges in a list.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.html index 157c0a784..bc3d48f74 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_length.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.edge_length — COMPAS AGS + - compas_ags - ForceDiagram.edge_length + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_length

-ForceDiagram.edge_length(u, v)
+ForceDiagram.edge_length(edge)

Return the length of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

float – The length of the edge.

+
+
float

The length of the edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.html new file mode 100644 index 000000000..6e2eadac7 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.edge_line — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.edge_line

+
+
+ForceDiagram.edge_line(edge)
+

Return the line of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Line

The line of the edge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.html index 7f67fc853..a3d74978b 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edge_loop — COMPAS AGS + - compas_ags - ForceDiagram.edge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_loop

@@ -105,220 +568,97 @@

ForceDiagram.edge_loop

Find all edges on the same loop as a given edge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.html index 709e793c3..edf16dae1 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.edge_midpoint — COMPAS AGS + - compas_ags - ForceDiagram.edge_midpoint + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.html index cc0310666..cd776fe23 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_point.html @@ -1,330 +1,668 @@ + + - - + + + + + + + + ForceDiagram.edge_point — COMPAS AGS + - compas_ags - ForceDiagram.edge_point + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_point

-ForceDiagram.edge_point(u, v, t=0.5)
-

Return the location of a point along an edge.

+ForceDiagram.edge_point(edge, t=0.5) +

Return a point along an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • t (float, optional) – The location of the point on the edge. +

    +
    edgetuple(int, int)

    The identifier of the edge.

    +
    +
    tfloat, optional

    The location of the point on the edge. If the value of t is outside the range 0-1, the point will -lie in the direction of the edge, but not on the edge vector.

  • -
+lie in the direction of the edge, but not on the edge vector.

+
+
Returns:
-

list[float] – The XYZ coordinates of the point.

+
+
compas.geometry.Point

The point at parameter t.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.html index 643aef851..803a8ff48 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edge_sample — COMPAS AGS + - compas_ags - ForceDiagram.edge_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_sample

@@ -105,220 +568,103 @@

ForceDiagram.edge_sample

A random sample of the edges.

Parameters:
-

size (int, optional) – The number of edges in the random sample.

+
+
sizeint, optional

The number of edges in the random sample.

+
+
Returns:
-

list[tuple[int, int]] – The identifiers of the edges.

+
+
list[tuple[int, int]]

The identifiers of the edges.

+
+
+
+

See also

+
+
vertex_sample(), face_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.html new file mode 100644 index 000000000..b1965335c --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.edge_start — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.edge_start

+
+
+ForceDiagram.edge_start(edge)
+

Return the point at the start of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the start.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.html index 660efc85c..2740ad798 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edge_strip — COMPAS AGS + - compas_ags - ForceDiagram.edge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_strip

@@ -105,224 +568,100 @@

ForceDiagram.edge_strip

Find all edges on the same strip as a given edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the starting edge.

  • -
  • return_faces (bool, optional) – Return the faces on the strip in addition to the edges.

  • -
+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
return_facesbool, optional

Return the faces on the strip in addition to the edges.

+
+
Returns:
-

list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]] – If return_faces is False, the edges on the same strip as the given edge. +

+
list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]]

If return_faces is False, the edges on the same strip as the given edge. If return_faces is False, the edges on the same strip and the corresponding faces.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.html index 72f5ef204..00bcb8287 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.html @@ -1,327 +1,663 @@ + + - - + + + + + + + + ForceDiagram.edge_vector — COMPAS AGS + - compas_ags - ForceDiagram.edge_vector + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edge_vector

-ForceDiagram.edge_vector(u, v)
+ForceDiagram.edge_vector(edge)

Return the vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The vector from u to v.

+
+
compas.geometry.Vector
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges.html index db927bcfa..584f5606a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edges — COMPAS AGS + + - compas_ags - ForceDiagram.edges + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges

@@ -105,13 +568,26 @@

ForceDiagram.edges

Iterate over the edges of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a ((u, v), data) tuple.

+
+
+

Notes

Mesh edges have no topological meaning. They are only used to store data. Edges are not automatically created when vertices and faces are added to @@ -121,218 +597,85 @@

ForceDiagram.edges

Unless edges were added explicitly using add_edge() the order of edges is as they come out. However, as long as the toplogy remains unchanged, the order is consistent.

-

Examples

-
>>>
-
-
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.html index d25b08791..4de59b54c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edges_attribute — COMPAS AGS + - compas_ags - ForceDiagram.edges_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges_attribute

@@ -105,229 +568,117 @@

ForceDiagram.edges_attribute

Get or set an attribute of multiple edges.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per edge of the requested attribute, +

+
list[Any] | None

A list containing the value per edge of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.html index 6965d8988..8cda13383 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edges_attributes — COMPAS AGS + - compas_ags - ForceDiagram.edges_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges_attributes

@@ -105,233 +568,121 @@

ForceDiagram.edges_attributes

Get or set multiple attributes of multiple edges.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per edge an attribute dict with all attributes (default + custom) of the edge. If the parameter names is not empty, a list containing per edge a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.html index 3ca196a8b..ef35d0765 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.edges_on_boundaries — COMPAS AGS + - compas_ags - ForceDiagram.edges_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.html index 148ad9bbf..88d3e9da9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.edges_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.edges_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.html index b84510dea..6f5826171 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edges_where — COMPAS AGS + - compas_ags - ForceDiagram.edges_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges_where

@@ -105,227 +568,111 @@

ForceDiagram.edges_where

Get edges for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.html index 58e73c4f9..31d63e68c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.html @@ -1,335 +1,674 @@ + + - - + + + + + + + + ForceDiagram.edges_where_dual — COMPAS AGS + + - compas_ags - ForceDiagram.edges_where_dual + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges_where_dual

-ForceDiagram.edges_where_dual(conditions, data=False)[source]
+ForceDiagram.edges_where_dual(conditions, data=False)

Get edges for which a certain condition or set of conditions is true for the corresponding edges in the diagram’s dual.

Parameters:
-
    -
  • conditions (dict) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – Yield the edges and their data attributes. -Default is False.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

Yield the edges and their data attributes. +Default is False.

+
+
Yields:
-

2-tuple – The next edge as a (u, v) tuple, if data=False. +

+
2-tuple

The next edge as a (u, v) tuple, if data=False. The next edge as a ((u, v), data) tuple, if data=True.

+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.html index 69a4517bf..c315efad7 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.edges_where_predicate — COMPAS AGS + - compas_ags - ForceDiagram.edges_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.edges_where_predicate

@@ -105,227 +568,110 @@

ForceDiagram.edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 3 parameters: the identifier of the first vertex, the identifier of the second vertex, and the edge attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition ot the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition ot the vertex identifiers.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.euler.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.euler.html index 332917802..055eb32ab 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.euler.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.euler.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + ForceDiagram.euler — COMPAS AGS + - compas_ags - ForceDiagram.euler + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.exploded.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.exploded.html new file mode 100644 index 000000000..b7e3ea911 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.exploded.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + ForceDiagram.exploded — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.exploded

+
+
+ForceDiagram.exploded()
+

Explode the mesh into its connected components.

+
+
Returns:
+
+
list[compas.datastructures.Mesh]

The list of the meshes from the exploded mesh parts.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.html index 5365fb80c..b43039ecd 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_adjacency_halfedge — COMPAS AGS + - compas_ags - ForceDiagram.face_adjacency_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_adjacency_halfedge

@@ -105,16 +568,21 @@

ForceDiagram.face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

tuple[int, int] | None – The half-edge separating face 1 from face 2, +

+
tuple[int, int] | None

The half-edge separating face 1 from face 2, or None, if the faces are not adjacent.

+
+

Notes

For use in form-finding algorithms, that rely on form-force duality information, further checks relating to the orientation of the corresponding are required.

@@ -122,210 +590,81 @@

ForceDiagram.face_adjacency_halfedge

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.html index 2ecbfab57..5ed1a02e2 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_adjacency_vertices — COMPAS AGS + - compas_ags - ForceDiagram.face_adjacency_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_adjacency_vertices

@@ -105,224 +568,100 @@

ForceDiagram.face_adjacency_vertices

Find all vertices over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

list[int] | None – The vertices separating face 1 from face 2, +

+
list[int] | None

The vertices separating face 1 from face 2, or None, if the faces are not adjacent.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_area.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_area.html index b64c598d7..18f5ed289 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_area.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_area — COMPAS AGS + - compas_ags - ForceDiagram.face_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_area

@@ -105,220 +568,97 @@

ForceDiagram.face_area

Compute the area of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

float – The area of the face.

+
+
float

The area of the face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.html index a5f1911ff..7cbc7ac70 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_aspect_ratio — COMPAS AGS + - compas_ags - ForceDiagram.face_aspect_ratio + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_aspect_ratio

@@ -105,10 +568,16 @@

ForceDiagram.face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The aspect ratio.

+
+
float

The aspect ratio.

+
+

References

@@ -119,210 +588,81 @@

ForceDiagram.face_aspect_ratio

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.html index 4263d2a5f..359dd4202 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_attribute — COMPAS AGS + - compas_ags - ForceDiagram.face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_attribute

@@ -105,227 +568,116 @@

ForceDiagram.face_attribute

Get or set an attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.html index bff92f7cf..fc2cb64f6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_attributes — COMPAS AGS + - compas_ags - ForceDiagram.face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_attributes

@@ -105,231 +568,119 @@

ForceDiagram.face_attributes

Get or set multiple attributes of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the face.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the face. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_center.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_center.html index ee749395d..795f03604 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_center.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_center.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + ForceDiagram.face_center — COMPAS AGS + - compas_ags - ForceDiagram.face_center + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_center

ForceDiagram.face_center(fkey)
-

Compute the location of the center of mass of a face.

+

Compute the point at the center of mass of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the center of mass.

+
+
compas.geometry.Point

The point at the center of mass.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.html index d03458469..8280e724f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + ForceDiagram.face_centroid — COMPAS AGS + - compas_ags - ForceDiagram.face_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_centroid

ForceDiagram.face_centroid(fkey)
-

Compute the location of the centroid of a face.

+

Compute the point at the centroid of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The point at the centroid.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.html new file mode 100644 index 000000000..d0a6733a3 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.face_circle — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.face_circle

+
+
+ForceDiagram.face_circle(face)
+

The circle of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Circle

The circle of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.html index 347bd63dd..681eeb0a9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_coordinates — COMPAS AGS + - compas_ags - ForceDiagram.face_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_coordinates

@@ -105,224 +568,100 @@

ForceDiagram.face_coordinates

Compute the coordinates of the vertices of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
fkeyint

The identifier of the face.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[list[float]] – The coordinates of the vertices of the face.

+
+
list[list[float]]

The coordinates of the vertices of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.html index 262ba2388..dc96f5a3c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_corners.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_corners — COMPAS AGS + - compas_ags - ForceDiagram.face_corners + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_corners

@@ -105,220 +568,97 @@

ForceDiagram.face_corners

Return triplets of face vertices forming the corners of the face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The corners of the face in the form of a list of vertex triplets.

+
+
list[int]

The corners of the face in the form of a list of vertex triplets.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.html index 49523e11d..6ba4d0afe 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_curvature — COMPAS AGS + - compas_ags - ForceDiagram.face_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_curvature

@@ -108,220 +571,97 @@

ForceDiagram.face_curvature

the face vertices to the face centroid.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.html index 719c69e09..62e3e345a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_degree — COMPAS AGS + - compas_ags - ForceDiagram.face_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_degree

@@ -105,220 +568,97 @@

ForceDiagram.face_degree

Count the neighbors of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

int – The count.

+
+
int

The count.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.html index c12a15f75..3cee2bf99 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_flatness — COMPAS AGS + + - compas_ags - ForceDiagram.face_flatness + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_flatness

@@ -105,231 +568,113 @@

ForceDiagram.face_flatness

Compute the flatness of the mesh face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • maxdev (float, optional) – A maximum value for the allowed deviation from flatness.

  • -
+
+
fkeyint

The identifier of the face.

+
+
maxdevfloat, optional

A maximum value for the allowed deviation from flatness.

+
+
Returns:
-

float – The flatness.

+
+
float

The flatness.

+
+
+
+
Raises:
+
+
Exception

If the face has more than 4 vertices.

+
+
-

Notes

-

Flatness is computed as the ratio of the distance between the diagonals -of the face to the average edge length. A practical limit on this value -realted to manufacturing is 0.02 (2%).

Warning

This method only makes sense for quadrilateral faces.

+

Notes

+

Flatness is computed as the ratio of the distance between the diagonals +of the face to the average edge length. A practical limit on this value +realted to manufacturing is 0.02 (2%).

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.html new file mode 100644 index 000000000..d08bfcfd4 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.face_frame — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.face_frame

+
+
+ForceDiagram.face_frame(face)
+

The frame of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Frame

The frame of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.html index 20572e317..b4db95c7a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_halfedges — COMPAS AGS + - compas_ags - ForceDiagram.face_halfedges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_halfedges

@@ -105,220 +568,97 @@

ForceDiagram.face_halfedges

The halfedges of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[tuple[int, int]] – The halfedges of a face.

+
+
list[tuple[int, int]]

The halfedges of a face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.html new file mode 100644 index 000000000..703b04a90 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.html @@ -0,0 +1,695 @@ + + + + + + + + + + + + ForceDiagram.face_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.face_matrix

+
+
+ForceDiagram.face_matrix(rtype='array')
+

Compute the face matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The face matrix.

+
+
+
+
+

Notes

+

The face matrix represents the relationship between faces and vertices. +Each row of the matrix represents a face. Each column represents a vertex. +The matrix is filled with zeros except where a relationship between a vertex +and a face exist.

+
+\[\begin{split}F_{ij} = +\begin{cases} + 1 & \text{if vertex j is part of face i} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

The face matrix can for example be used to compute the centroids of all +faces of a mesh.

+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> F = mesh.face_matrix()
+>>> type(F)
+<class 'numpy.ndarray'>
+
+
+
>>> from numpy import allclose
+>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> F = mesh.face_matrix(mesh, rtype='csr')
+>>> c1 = F.dot(xyz) / F.sum(axis=1)
+>>> c2 = [mesh.face_centroid(fkey) for fkey in mesh.faces()]
+>>> allclose(c1, c2)
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.html index 41240c98e..6072d8efc 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.face_max_degree — COMPAS AGS + - compas_ags - ForceDiagram.face_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.html index d478d722e..50752155d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.face_min_degree — COMPAS AGS + - compas_ags - ForceDiagram.face_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.html index d169c510e..4ecd39d77 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_neighborhood — COMPAS AGS + - compas_ags - ForceDiagram.face_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_neighborhood

@@ -105,223 +568,99 @@

ForceDiagram.face_neighborhood

Return the faces in the neighborhood of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • ring (int, optional) – The size of the neighborhood.

  • -
+
+
keyint

The identifier of the face.

+
+
ringint, optional

The size of the neighborhood.

+
+
Returns:
-

list[int] – A list of face identifiers.

+
+
list[int]

A list of face identifiers.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.html index 7fdff1e35..dd25237f3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_neighbors — COMPAS AGS + - compas_ags - ForceDiagram.face_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_neighbors

@@ -105,220 +568,97 @@

ForceDiagram.face_neighbors

Return the neighbors of a face across its edges.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The identifiers of the neighboring faces.

+
+
list[int]

The identifiers of the neighboring faces.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.html index 91ed2fc7a..96d8be362 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_normal — COMPAS AGS + - compas_ags - ForceDiagram.face_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_normal

@@ -105,223 +568,98 @@

ForceDiagram.face_normal

Compute the normal of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • unitized (bool, optional) – If True, the vector is unitized.

  • -
+
+
fkeyint

The identifier of the face.

+
+
unitizedbool, optional

If True, the vector is unitized.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.html index 287eab244..76d52126f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_plane.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_plane — COMPAS AGS + - compas_ags - ForceDiagram.face_plane + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_plane

@@ -105,224 +568,97 @@

ForceDiagram.face_plane

A plane defined by the centroid and the normal of the face.

Parameters:
-

face (int) – The face identifier.

+
+
faceint

The face identifier.

+
+
Returns:
-

    -
  • list[float] – The base point of the plane.

  • -
  • list[float] – The normal vector of the plane.

  • -
-

+
+
compas.geometry.Plane

The plane of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_points.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_points.html new file mode 100644 index 000000000..2b73acb77 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.face_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.face_points

+
+
+ForceDiagram.face_points(fkey)
+

Compute the points of the vertices of a face.

+
+
Parameters:
+
+
fkeyint

The identifier of the face.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.html new file mode 100644 index 000000000..9fab8f048 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.face_polygon — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.face_polygon

+
+
+ForceDiagram.face_polygon(face)
+

The polygon of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Polygon

The polygon of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.html index 40fd36f33..50fe925a0 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_sample — COMPAS AGS + - compas_ags - ForceDiagram.face_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_sample

@@ -105,220 +568,103 @@

ForceDiagram.face_sample

A random sample of the faces.

Parameters:
-

size (int, optional) – The number of faces in the random sample.

+
+
sizeint, optional

The number of faces in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the faces.

+
+
list[int]

The identifiers of the faces.

+
+
+
+

See also

+
+
vertex_sample(), edge_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.html index 5c8d91817..ec4251898 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.html @@ -1,114 +1,583 @@ + + - - + + + + + + + + ForceDiagram.face_skewness — COMPAS AGS + - compas_ags - ForceDiagram.face_skewness + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_skewness

ForceDiagram.face_skewness(fkey)
-

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

+

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The skewness.

+
+
float

The skewness.

+
+

References

@@ -119,210 +588,81 @@

ForceDiagram.face_skewness

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.html index 3c4655124..c2474c9bb 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_vertex_after — COMPAS AGS + - compas_ags - ForceDiagram.face_vertex_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_vertex_after

@@ -105,228 +568,108 @@

ForceDiagram.face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.html index c01d2d550..6037a0f25 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_vertex_ancestor — COMPAS AGS + - compas_ags - ForceDiagram.face_vertex_ancestor + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_vertex_ancestor

@@ -105,228 +568,108 @@

ForceDiagram.face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.html index dd4cd363a..7410f6659 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_vertex_before — COMPAS AGS + - compas_ags - ForceDiagram.face_vertex_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_vertex_before

@@ -105,228 +568,108 @@

ForceDiagram.face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.html index 6933a4a06..bc3d33ca4 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_vertex_descendant — COMPAS AGS + - compas_ags - ForceDiagram.face_vertex_descendant + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_vertex_descendant

@@ -105,228 +568,108 @@

ForceDiagram.face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.html index aab041952..2c67ad0c6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.face_vertices — COMPAS AGS + - compas_ags - ForceDiagram.face_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.face_vertices

@@ -105,220 +568,97 @@

ForceDiagram.face_vertices

The vertices of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – Ordered vertex identifiers.

+
+
list[int]

Ordered vertex identifiers.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces.html index 697b74567..60eba9166 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.faces — COMPAS AGS + - compas_ags - ForceDiagram.faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.faces

@@ -105,221 +568,105 @@

ForceDiagram.faces

Iterate over the faces of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face identifier. If data is True, the next face as a (fkey, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.html index eac12233b..d0d6379ca 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.faces_attribute — COMPAS AGS + - compas_ags - ForceDiagram.faces_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.faces_attribute

@@ -105,229 +568,117 @@

ForceDiagram.faces_attribute

Get or set an attribute of multiple faces.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per face of the requested attribute, +

+
list[Any] | None

A list containing the value per face of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.html index c7779d144..30c112069 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.faces_attributes — COMPAS AGS + - compas_ags - ForceDiagram.faces_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.faces_attributes

@@ -105,233 +568,121 @@

ForceDiagram.faces_attributes

Get or set multiple attributes of multiple faces.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per face an attribute dict with all attributes (default + custom) of the face. If the parameter names is not empty, a list containing per face a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.html index d899831ea..ae5f95f55 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.faces_on_boundaries — COMPAS AGS + - compas_ags - ForceDiagram.faces_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.html index 51c92a17a..397264d35 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.faces_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.faces_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.html index 55796b23c..7ddfcc723 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.faces_where — COMPAS AGS + - compas_ags - ForceDiagram.faces_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.faces_where

@@ -105,227 +568,111 @@

ForceDiagram.faces_where

Get faces for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to face identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the face attributes in addition to face identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.html index 517928e49..d732ace5f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.faces_where_predicate — COMPAS AGS + - compas_ags - ForceDiagram.faces_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.faces_where_predicate

@@ -105,226 +568,109 @@

ForceDiagram.faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the face identifier and the face attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.fixed.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.fixed.html index 6dccbf429..738a90de9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.fixed.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.fixed.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + ForceDiagram.fixed — COMPAS AGS + - compas_ags - ForceDiagram.fixed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.html index e4329342f..5379d9e8d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.html @@ -1,114 +1,577 @@ + + - - + + + + + + + + ForceDiagram.flip_cycles — COMPAS AGS + - compas_ags - ForceDiagram.flip_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.flip_cycles

ForceDiagram.flip_cycles()

Flip the cycle directions of all faces.

-
Parameters:
-

mesh (Mesh) – A mesh object.

+
Returns:
+
+
None

The mesh is modified in place.

-
Returns:
-

None – The mesh is modified in place.

+

Notes

@@ -118,210 +581,81 @@

ForceDiagram.flip_cycles

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.html index 3e0569e9a..9285c28f1 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.from_formdiagram — COMPAS AGS + - compas_ags - ForceDiagram.from_formdiagram + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_json.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_json.html index 5aeec25a2..f4b06fa28 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_json.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_json.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + ForceDiagram.from_json — COMPAS AGS + - compas_ags - ForceDiagram.from_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_json

classmethod ForceDiagram.from_json(filepath)
-

Construct an object from serialized data contained in a JSON file.

+

Construct an object of this type from a JSON file.

Parameters:
-

filepath (path string | file-like object | URL string) – The path, file or URL to the file for serialization.

+
+
filepathstr

The path to the JSON file.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the file has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the file is not a compas.data.Data.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.html index a671311a0..457f0d564 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + ForceDiagram.from_jsonstring — COMPAS AGS + - compas_ags - ForceDiagram.from_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_jsonstring

classmethod ForceDiagram.from_jsonstring(string)
-

Construct an object from serialized data contained in a JSON string.

+

Construct an object of this type from a JSON string.

Parameters:
-

string (str) – The object as a JSON string.

+
+
stringstr

The JSON string.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the string has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the string is not a compas.data.Data.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.html index 0939f5a92..bec47a568 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_lines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_lines — COMPAS AGS + - compas_ags - ForceDiagram.from_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_lines

@@ -105,227 +568,104 @@

ForceDiagram.from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

Parameters:
-
    -
  • lines (list[tuple[list[float], list[float]]]) – A list of pairs of point coordinates.

  • -
  • delete_boundary_face (bool, optional) – The algorithm that finds the faces formed by the connected lines +

    +
    lineslist[tuple[list[float], list[float]]]

    A list of pairs of point coordinates.

    +
    +
    delete_boundary_facebool, optional

    The algorithm that finds the faces formed by the connected lines first finds the face on the outside. In most cases this face is not expected -to be there. Therefore, there is the option to have it automatically deleted.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to the value of compas.PRECISION.

  • -
+to be there. Therefore, there is the option to have it automatically deleted.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.html index 681e4f6ff..96e93166d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.html @@ -1,331 +1,672 @@ + + - - + + + + + + + + ForceDiagram.from_meshgrid — COMPAS AGS + - compas_ags - ForceDiagram.from_meshgrid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_meshgrid

classmethod ForceDiagram.from_meshgrid(dx, nx, dy=None, ny=None)
-

Create a mesh from faces and vertices on a regular grid.

+

Construct a mesh from faces and vertices on a regular grid.

Parameters:
-
    -
  • dx (float) – The size of the grid in the X direction.

  • -
  • nx (int) – The number of faces in the X direction.

  • -
  • dy (float, optional) – The size of the grid in the Y direction. -Defaults to the value of dx.

  • -
  • ny (int, optional) – The number of faces in the Y direction. -Defaults to the value of nx.

  • -
+
+
dxfloat

The size of the grid in the X direction.

+
+
nxint

The number of faces in the X direction.

+
+
dyfloat, optional

The size of the grid in the Y direction. +Defaults to the value of dx.

+
+
nyint, optional

The number of faces in the Y direction. +Defaults to the value of nx.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.html index 0406e89ff..f0a9a8079 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_obj — COMPAS AGS + - compas_ags - ForceDiagram.from_obj + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_obj

@@ -105,13 +568,18 @@

ForceDiagram.from_obj

Construct a mesh object from the data described in an OBJ file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+

Notes

@@ -128,210 +596,81 @@

ForceDiagram.from_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_off.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_off.html index ed99e4744..a77db0241 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_off.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_off — COMPAS AGS + - compas_ags - ForceDiagram.from_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_off

@@ -105,220 +568,97 @@

ForceDiagram.from_off

Construct a mesh object from the data described in a OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.html index 7fab17fd2..6c0bcd434 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_ply — COMPAS AGS + - compas_ags - ForceDiagram.from_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_ply

@@ -105,220 +568,97 @@

ForceDiagram.from_ply

Construct a mesh object from the data described in a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_points.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_points.html index 6ccba6324..b2bea1470 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_points.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_points.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + ForceDiagram.from_points — COMPAS AGS + - compas_ags - ForceDiagram.from_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_points

-classmethod ForceDiagram.from_points(points, boundary=None, holes=None)
+classmethod ForceDiagram.from_points(points)

Construct a mesh from a delaunay triangulation of a set of points.

Parameters:
-

points (list[list[float]]) – XYZ coordinates of the points. +

+
pointslist[list[float]]

XYZ coordinates of the points. Z coordinates should be zero.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.html index 10349d82f..ad9e6304c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_polygons — COMPAS AGS + - compas_ags - ForceDiagram.from_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_polygons

@@ -105,225 +568,101 @@

ForceDiagram.from_polygons

Construct a mesh from a series of polygons.

Parameters:
-
    -
  • polygons (list[list[float]]) – A list of polygons, with each polygon defined as an ordered list of -XYZ coordinates of its corners.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to compas.PRECISION.

  • -
+
+
polygonslist[list[float]]

A list of polygons, with each polygon defined as an ordered list of +XYZ coordinates of its corners.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.html index 86ecc0ca8..01c458aba 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_polyhedron — COMPAS AGS + - compas_ags - ForceDiagram.from_polyhedron + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_polyhedron

@@ -105,220 +568,97 @@

ForceDiagram.from_polyhedron

Construct a mesh from a platonic solid.

Parameters:
-

f ({4, 6, 8, 12, 20}) – The number of faces.

+
+
f{4, 6, 8, 12, 20}

The number of faces.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.html index 09e0ea4e5..62744c13c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_polylines — COMPAS AGS + - compas_ags - ForceDiagram.from_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_polylines

@@ -110,223 +573,99 @@

ForceDiagram.from_polylines

that could overlap and yield a wrong connectivity if using from_lines based on the polyline extremities only.

Parameters:
-
    -
  • boundary_polylines (list[list[float]]) – List of polylines representing boundaries as lists of vertex coordinates.

  • -
  • other_polylines (list[list[float]]) – List of the other polylines as lists of vertex coordinates.

  • -
+
+
boundary_polylineslist[list[float]]

List of polylines representing boundaries as lists of vertex coordinates.

+
+
other_polylineslist[list[float]]

List of the other polylines as lists of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.html index 2812f30e3..3415fd7d2 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_shape.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + ForceDiagram.from_shape — COMPAS AGS + - compas_ags - ForceDiagram.from_shape + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_shape

classmethod ForceDiagram.from_shape(shape, **kwargs)

Construct a mesh from a primitive shape.

-
+
Parameters:
-
    -
  • shape (Shape) – The input shape to generate a mesh from.

  • -
  • **kwargs (dict[str, Any], optional) – Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

  • -
+
+
shapecompas.geometry.Shape

The input shape to generate a mesh from.

+
+
**kwargsdict[str, Any], optional

Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.html index a9257bf74..a6dd2a8da 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_stl — COMPAS AGS + - compas_ags - ForceDiagram.from_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_stl

@@ -105,223 +568,99 @@

ForceDiagram.from_stl

Construct a mesh object from the data described in a STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.html index dde0bf190..2601dc9e6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.from_vertices_and_faces — COMPAS AGS + - compas_ags - ForceDiagram.from_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.from_vertices_and_faces

@@ -105,225 +568,101 @@

ForceDiagram.from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

Parameters:
-
    -
  • vertices (list[list[float]] | dict[int, list[float]]) – A list of vertices, represented by their XYZ coordinates, -or a dictionary of vertex keys pointing to their XYZ coordinates.

  • -
  • faces (list[list[int]] | dict[int, list[int]]) – A list of faces, represented by a list of indices referencing the list of vertex coordinates, -or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

  • -
+
+
verticeslist[list[float]] | dict[int, list[float]]

A list of vertices, represented by their XYZ coordinates, +or a dictionary of vertex keys pointing to their XYZ coordinates.

+
+
faceslist[list[int]] | dict[int, list[int]]

A list of faces, represented by a list of indices referencing the list of vertex coordinates, +or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.html index 8fb29d775..d8b6d73a9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.gkey_vertex — COMPAS AGS + - compas_ags - ForceDiagram.gkey_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.gkey_vertex

@@ -106,221 +569,98 @@

ForceDiagram.gkey_vertex

to the keys of the corresponding vertices.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[str, int] – A dictionary of geometric key-key pairs.

+
+
dict[str, int]

A dictionary of geometric key-key pairs.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.html index 7d3fc34d5..98bdd2414 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.halfedge_after — COMPAS AGS + - compas_ags - ForceDiagram.halfedge_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.halfedge_after

-ForceDiagram.halfedge_after(u, v)
+ForceDiagram.halfedge_after(edge)

Find the halfedge after the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The next halfedge.

+
+
tuple[int, int]

The next halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.html index 9799fe41c..62c9be0bf 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.halfedge_before — COMPAS AGS + - compas_ags - ForceDiagram.halfedge_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.halfedge_before

-ForceDiagram.halfedge_before(u, v)
+ForceDiagram.halfedge_before(edge)

Find the halfedge before the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The previous halfedge.

+
+
tuple[int, int]

The previous halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.html index ade2b67d6..06567de37 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.html @@ -1,331 +1,671 @@ + + - - + + + + + + + + ForceDiagram.halfedge_face — COMPAS AGS + - compas_ags - ForceDiagram.halfedge_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.halfedge_face

-ForceDiagram.halfedge_face(u, v)
+ForceDiagram.halfedge_face(edge)

Find the face corresponding to a halfedge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

int | None – The identifier of the face corresponding to the halfedge. +

+
int | None

The identifier of the face corresponding to the halfedge. None, if the halfedge is on the outside of a boundary.

+
+
Raises:
-

KeyError – If the halfedge does not exist.

+
+
KeyError

If the halfedge does not exist.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.html index 2a718e9eb..5aada8d90 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.halfedge_loop — COMPAS AGS + - compas_ags - ForceDiagram.halfedge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.halfedge_loop

@@ -105,220 +568,97 @@

ForceDiagram.halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.html new file mode 100644 index 000000000..a03adf46b --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.html @@ -0,0 +1,662 @@ + + + + + + + + + + + + ForceDiagram.halfedge_loop_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.halfedge_loop_vertices

+
+
+ForceDiagram.halfedge_loop_vertices(edge)
+

Find all vertices on the same loop as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns
+
——-
+
list[int]

The vertices on the same loop as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.html index 35f166b6b..a796b543e 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.halfedge_strip — COMPAS AGS + - compas_ags - ForceDiagram.halfedge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.halfedge_strip

@@ -105,220 +568,97 @@

ForceDiagram.halfedge_strip

Find all edges on the same strip as a given halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same strip as the given halfedge.

+
+
list[tuple[int, int]]

The edges on the same strip as the given halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.html new file mode 100644 index 000000000..39a407ed0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.halfedge_strip_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.halfedge_strip_faces

+
+
+ForceDiagram.halfedge_strip_faces(edge)
+

Find all faces on the same strip as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
+
+
Returns:
+
+
list[int]

The faces on the same strip as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.html index 4ee49355d..3288ad35d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_edge.html @@ -1,329 +1,669 @@ + + - - + + + + + + + + ForceDiagram.has_edge — COMPAS AGS + + - compas_ags - ForceDiagram.has_edge + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.has_edge

ForceDiagram.has_edge(key)

Verify that the mesh contains a specific edge.

-
-

Warning

-

This method may produce unexpected results.

-
Parameters:
-

key (tuple[int, int]) – The identifier of the edge.

+
+
keytuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge exists. +

+
bool

True if the edge exists. False otherwise.

+
+
+
+

Warning

+

This method may produce unexpected results.

+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_face.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_face.html index 224d7d57f..49fa785cf 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_face.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.has_face — COMPAS AGS + - compas_ags - ForceDiagram.has_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.has_face

@@ -105,221 +568,98 @@

ForceDiagram.has_face

Verify that a face is part of the mesh.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face exists. +

+
bool

True if the face exists. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.html index 1147d8cb4..cf781a2b6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.has_halfedge — COMPAS AGS + - compas_ags - ForceDiagram.has_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.has_halfedge

@@ -105,221 +568,98 @@

ForceDiagram.has_halfedge

Verify that a halfedge is part of the mesh.

Parameters:
-

key (tuple[int, int]) – The identifier of the halfedge.

+
+
keytuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

bool – True if the halfedge is part of the mesh. +

+
bool

True if the halfedge is part of the mesh. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.html index 7162ab80e..a42fa88b3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.has_vertex — COMPAS AGS + - compas_ags - ForceDiagram.has_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.has_vertex

@@ -105,221 +568,98 @@

ForceDiagram.has_vertex

Verify that a vertex is in the mesh.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is in the mesh. +

+
bool

True if the vertex is in the mesh. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.html index 084f987ab..2180e9827 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.html @@ -1,778 +1,1248 @@ + + - - + + + + + + + + ForceDiagram — COMPAS AGS + - compas_ags - compas_ags.diagrams.ForceDiagram + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
-

compas_ags.diagrams.ForceDiagram

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram

-class compas_ags.diagrams.ForceDiagram[source]
-

Bases: compas_ags.diagrams.diagram.Diagram

+class compas_ags.diagrams.ForceDiagram +

Bases: Diagram

Mesh-based data structure for force diagrams in AGS.

-
-
-__init__()[source]
-
-

Methods

- ---- +
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

ToString()

anchor

Get an anchor to the force diagram.

constraints_from_dual

"Reflect constraints from the form diagram in the force diagram.

dual_edge

Find the cooresponding edge in the diagram's dual.

dual_edge_angledeviation

Retrieve the angle deviation in the corresponding edge of the diagram's dual.

dual_edge_force

Retrieve the force in the corresponding edge of the diagram's dual.

dual_edge_targetforce

Retrieve the target force in the corresponding edge of the diagram's dual.

edge_index

Construct a mapping between the identifiers of edges and the corresponding indices in a list of edges.

edges_where_dual

Get edges for which a certain condition or set of conditions is true for the corresponding edges in the diagram's dual.

fixed

The identifiers of the fixed vertices.

from_formdiagram

Construct a force diagram from a form diagram.

is_dual_edge_external

Verify if the corresponding edge in the diagram's dual is marked as "external".

is_dual_edge_ind

Verify if the corresponding edge in the diagram's dual is marked as "independent".

is_dual_edge_load

Verify if the corresponding edge in the diagram's dual is marked as "load".

is_dual_edge_reaction

Verify if the corresponding edge in the diagram's dual is marked as "reaction".

ordered_edges

"Construct a list of edges with the same order as the corresponding edges of the form diagram.

xy

The XY coordinates of the vertices.

+

Inherited Methods

+ + + - - + + - + - + - - + + - + - - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + + + + - - + + - - + + - + - + + + + - + - + - + - + - + - + - + - - - - + - + - - + + - + - + - + - + - + - + - - + + + + + - - + + - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - - + + - - + + - - - - - - - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - - - - - + + - + - + - + - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + - + - - - - - - - + - + - + - + - - + + - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + - - + + - - + + - + + + + - + - + - + + + + + + + - + - + - - - - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + + + + - + - - - - -

ToString

Converts the instance to a string.

__init__()

aabb

Calculate the axis aligned bounding box of the mesh.

add_face(vertices[, fkey, attr_dict])

add_face

Add a face to the mesh object.

add_vertex([key, attr_dict])

add_vertex

Add a vertex to the mesh object.

anchor()

Get an anchor to the force diagram.

adjacency_matrix

Compute the adjacency matrix of the mesh.

area()

area

Calculate the total mesh area.

bounding_box()

Compute the (axis aligned) bounding box of a mesh.

bounding_box_xy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

centroid()

centroid

Calculate the mesh centroid.

clear()

clear

Clear all the mesh data.

collapse_edge(u, v[, t, allow_boundary, fixed])

collapse_edge

Collapse an edge to its first or second vertex, or to an intermediate point.

connected_components()

Find the connected components of the mesh.

compute_aabb

Compute the axis-aligned bounding box of the datastructure.

constraints_from_dual([tol])

"Reflect constraints from the form diagram in the force diagram.

compute_obb

Compute the oriented bounding box of the datastructure.

copy([cls])

Make an independent copy of the data object.

connected_faces

Find groups of connected faces.

cull_vertices()

Remove all unused vertices from the mesh object.

connected_vertices

Find groups of connected vertices.

delete_face(fkey)

Delete a face from the mesh object.

connectivity_matrix

Compute the connectivity matrix of the mesh.

delete_vertex(key)

Delete a vertex from the mesh and everything that is attached to it.

copy

Make an independent copy of the data object.

dual_edge(edge)

Find the cooresponding edge in the diagram's dual.

cull_vertices

Remove all unused vertices from the mesh object.

dual_edge_angledeviation(edge)

Retrieve the angle deviation in the corresponding edge of the diagram's dual.

degree_matrix

Compute the degree matrix of the mesh.

dual_edge_force(edge)

Retrieve the force in the corresponding edge of the diagram's dual.

delete_face

Delete a face from the mesh object.

dual_edge_targetforce(edge)

Retrieve the target force in the corresponding edge of the diagram's dual.

delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

edge_attribute(edge, name[, value])

edge_attribute

Get or set an attribute of an edge.

edge_attributes(edge[, names, values])

edge_attributes

Get or set multiple attributes of an edge.

edge_coordinates(u, v[, axes])

edge_coordinates

Return the coordinates of the start and end point of an edge.

edge_direction(u, v)

edge_direction

Return the direction vector of an edge.

edge_faces(u, v)

Find the two faces adjacent to an edge.

edge_end

Return the point at the end of an edge.

edge_index([form])

Construct a mapping between the identifiers of edges and the corresponding indices in a list of edges.

edge_faces

Find the two faces adjacent to an edge.

edge_length(u, v)

edge_length

Return the length of an edge.

edge_loop(edge)

edge_line

Return the line of an edge.

edge_loop

Find all edges on the same loop as a given edge.

edge_midpoint(u, v)

Return the location of the midpoint of an edge.

edge_midpoint

Return the midpoint of an edge.

edge_point(u, v[, t])

Return the location of a point along an edge.

edge_point

Return a point along an edge.

edge_sample([size])

edge_sample

A random sample of the edges.

edge_strip(edge[, return_faces])

edge_start

Return the point at the start of an edge.

edge_strip

Find all edges on the same strip as a given edge.

edge_vector(u, v)

edge_vector

Return the vector of an edge.

edges([data])

edges

Iterate over the edges of the mesh.

edges_attribute(name[, value, keys])

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes([names, values, keys])

edges_attributes

Get or set multiple attributes of multiple edges.

edges_on_boundaries()

edges_on_boundaries

Find the edges on all boundaries of the mesh.

edges_on_boundary()

edges_on_boundary

Find the edges on the longest boundary.

edges_where([conditions, data])

edges_where

Get edges for which a certain condition or set of conditions is true.

edges_where_dual(conditions[, data])

Get edges for which a certain condition or set of conditions is true for the corresponding edges in the diagram's dual.

edges_where_predicate(predicate[, data])

edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

euler()

euler

Calculate the Euler characteristic.

face_adjacency()

Build a face adjacency dict.

exploded

Explode the mesh into its connected components.

face_adjacency_halfedge(f1, f2)

face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

face_adjacency_vertices(f1, f2)

face_adjacency_vertices

Find all vertices over which two faces are adjacent.

face_area(fkey)

face_area

Compute the area of a face.

face_aspect_ratio(fkey)

face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

face_attribute(key, name[, value])

face_attribute

Get or set an attribute of a face.

face_attributes(key[, names, values])

face_attributes

Get or set multiple attributes of a face.

face_center(fkey)

Compute the location of the center of mass of a face.

face_center

Compute the point at the center of mass of a face.

face_centroid

Compute the point at the centroid of a face.

face_centroid(fkey)

Compute the location of the centroid of a face.

face_circle

The circle of a face.

face_coordinates(fkey[, axes])

face_coordinates

Compute the coordinates of the vertices of a face.

face_corners(fkey)

face_corners

Return triplets of face vertices forming the corners of the face.

face_curvature(fkey)

face_curvature

Dimensionless face curvature.

face_degree(fkey)

face_degree

Count the neighbors of a face.

face_flatness(fkey[, maxdev])

face_flatness

Compute the flatness of the mesh face.

face_halfedges(fkey)

face_frame

The frame of a face.

face_halfedges

The halfedges of a face.

face_max_degree()

face_matrix

Compute the face matrix of the mesh.

face_max_degree

Compute the maximum degree of all faces.

face_min_degree()

face_min_degree

Compute the minimum degree of all faces.

face_neighborhood(key[, ring])

face_neighborhood

Return the faces in the neighborhood of a face.

face_neighbors(fkey)

face_neighbors

Return the neighbors of a face across its edges.

face_normal(fkey[, unitized])

face_normal

Compute the normal of a face.

face_plane(face)

face_plane

A plane defined by the centroid and the normal of the face.

face_sample([size])

face_points

Compute the points of the vertices of a face.

face_polygon

The polygon of a face.

face_sample

A random sample of the faces.

face_skewness(fkey)

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

face_skewness

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

face_vertex_after(fkey, key[, n])

face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

face_vertex_ancestor(fkey, key[, n])

face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_before(fkey, key[, n])

face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_descendant(fkey, key[, n])

face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

face_vertices(fkey)

face_vertices

The vertices of a face.

faces([data])

faces

Iterate over the faces of the mesh.

faces_attribute(name[, value, keys])

faces_attribute

Get or set an attribute of multiple faces.

faces_attributes([names, values, keys])

faces_attributes

Get or set multiple attributes of multiple faces.

faces_on_boundaries()

faces_on_boundaries

Find the faces on all boundaries of the mesh.

faces_on_boundary()

faces_on_boundary

Find the faces on the longest boundary.

faces_where([conditions, data])

faces_where

Get faces for which a certain condition or set of conditions is true.

faces_where_predicate(predicate[, data])

faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

fixed()

The identifiers of the fixed vertices.

flip_cycles()

flip_cycles

Flip the cycle directions of all faces.

from_data(data)

Construct an object of this type from the provided data.

from_json

Construct an object of this type from a JSON file.

from_formdiagram(formdiagram)

Construct a force diagram from a form diagram.

from_jsonstring

Construct an object of this type from a JSON string.

from_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

from_lines(lines[, delete_boundary_face, ...])

from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

from_meshgrid(dx, nx[, dy, ny])

Create a mesh from faces and vertices on a regular grid.

from_meshgrid

Construct a mesh from faces and vertices on a regular grid.

from_obj(filepath[, precision])

from_obj

Construct a mesh object from the data described in an OBJ file.

from_off(filepath)

from_off

Construct a mesh object from the data described in a OFF file.

from_ply(filepath[, precision])

from_ply

Construct a mesh object from the data described in a PLY file.

from_points(points[, boundary, holes])

from_points

Construct a mesh from a delaunay triangulation of a set of points.

from_polygons(polygons[, precision])

from_polygons

Construct a mesh from a series of polygons.

from_polyhedron(f)

from_polyhedron

Construct a mesh from a platonic solid.

from_polylines(boundary_polylines, ...)

from_polylines

Construct mesh from polylines.

from_shape(shape, **kwargs)

from_shape

Construct a mesh from a primitive shape.

from_stl(filepath[, precision])

from_stl

Construct a mesh object from the data described in a STL file.

from_vertices_and_faces(vertices, faces)

from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

genus()

Calculate the genus.

get_any_face()

Get the identifier of a random face.

get_any_vertex()

Get the identifier of a random vertex.

get_any_vertices(n[, exclude_leaves])

Get a list of identifiers of a random set of n vertices.

gkey_key([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

gkey_vertex([precision])

gkey_vertex

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

halfedge_after(u, v)

halfedge_after

Find the halfedge after the given halfedge in the same face.

halfedge_before(u, v)

halfedge_before

Find the halfedge before the given halfedge in the same face.

halfedge_face(u, v)

halfedge_face

Find the face corresponding to a halfedge.

halfedge_loop(edge)

halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

halfedge_strip(edge)

halfedge_loop_vertices

Find all vertices on the same loop as a given halfedge.

halfedge_strip

Find all edges on the same strip as a given halfedge.

has_edge(key)

halfedge_strip_faces

Find all faces on the same strip as a given halfedge.

has_edge

Verify that the mesh contains a specific edge.

has_face(fkey)

has_face

Verify that a face is part of the mesh.

has_halfedge(key)

has_halfedge

Verify that a halfedge is part of the mesh.

has_vertex(key)

has_vertex

Verify that a vertex is in the mesh.

index_edge()

index_edge

index_key()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

index_vertex()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

index_vertex

Returns a dictionary that maps the indices of a vertex list to the corresponding vertex identifiers.

insert_vertex(fkey[, key, xyz, return_fkeys])

insert_vertex

Insert a vertex in the specified face.

is_closed()

is_closed

Verify that the mesh is closed.

is_connected()

is_connected

Verify that the mesh is connected.

is_dual_edge_external(edge)

Verify if the corresponding edge in the diagram's dual is marked as "external".

is_dual_edge_ind(edge)

Verify if the corresponding edge in the diagram's dual is marked as "independent".

is_dual_edge_load(edge)

Verify if the corresponding edge in the diagram's dual is marked as "load".

is_dual_edge_reaction(edge)

Verify if the corresponding edge in the diagram's dual is marked as "reaction".

is_edge_on_boundary(u, v)

is_edge_on_boundary

Verify that an edge is on the boundary.

is_empty()

is_empty

Verify that the mesh is empty.

is_face_on_boundary(key)

is_face_on_boundary

Verify that a face is on a boundary.

is_manifold()

is_manifold

Verify that the mesh is manifold.

is_orientable()

is_orientable

Verify that the mesh is orientable.

is_quadmesh()

is_quadmesh

Verify that the mesh consists of only quads.

is_regular()

is_regular

Verify that the mesh is regular.

is_trimesh()

is_trimesh

Verify that the mesh consists of only triangles.

is_valid()

is_valid

Verify that the mesh is valid.

is_vertex_connected(key)

is_vertex_connected

Verify that a vertex is connected.

is_vertex_on_boundary(key)

is_vertex_on_boundary

Verify that a vertex is on a boundary.

join(other)

join

Add the vertices and faces of another mesh to the current mesh.

key_gkey([precision])

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

key_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

laplacian_matrix

Compute the Laplacian matrix of the mesh.

merge_faces(faces)

merge_faces

Merge two faces of a mesh over their shared edge.

mesh_oriented_bounding_box_numpy()

Compute the (axis aligned) bounding box of a mesh.

mesh_oriented_bounding_box_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

normal()

normal

Calculate the average mesh normal.

number_of_edges()

number_of_edges

Count the number of edges in the mesh.

number_of_faces()

number_of_faces

Count the number of faces in the mesh.

number_of_vertices()

number_of_vertices

Count the number of vertices in the mesh.

obb_numpy()

Compute the (axis aligned) bounding box of a mesh.

obb

Calculate the oriented bounding box of the mesh.

obb_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

offset

Generate an offset mesh.

ordered_edges(form)

"Construct a list of edges with the same order as the corresponding edges of the form diagram.

quads_to_triangles

Convert all quadrilateral faces to triangles by adding a diagonal edge.

quads_to_triangles([check_angles])

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

remove_duplicate_vertices

Remove all duplicate vertices and clean up any affected faces.

remove_unused_vertices()

remove_unused_vertices

Remove all unused vertices from the mesh object.

sha256([as_string])

rotate

Rotate the datastructure.

rotated

Returns a rotated copy of this geometry.

scale

Scale the datastructure.

scaled

Returns a scaled copy of this geometry.

set_vertex_point

Set the point of a vertex.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

slice_plane(plane)

slice

Slice a mesh with a plane and construct the resulting submeshes.

smooth_area([fixed, kmax, damping, ...])

smooth_area

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

smooth_centroid([fixed, kmax, damping, ...])

smooth_centroid

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

split_edge(u, v[, t, allow_boundary])

split_edge

Split and edge by inserting a vertex along its length.

split_face(fkey, u, v)

split_face

Split a face by inserting an edge between two specified vertices.

split_strip(edge)

split_strip

Split the srip of faces corresponding to a given edge.

subdivide([scheme])

subdivided

Subdivide the input mesh.

summary()

summary

Print a summary of the mesh.

to_data()

Convert an object to its native data representation.

thickened

Generate a thicknened mesh.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_json

Convert an object to its native data representation and save it to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

to_lines()

to_lines

Return the lines of the mesh as pairs of start and end point coordinates.

to_obj(filepath[, precision, unweld])

to_obj

Write the mesh to an OBJ file.

to_off(filepath, **kwargs)

to_off

Write a mesh object to an OFF file.

to_ply(filepath, **kwargs)

to_ply

Write a mesh object to a PLY file.

to_points()

to_points

Convert the mesh to a collection of points.

to_polygons()

to_polygons

Convert the mesh to a collection of polygons.

to_polylines()

to_polylines

Convert the mesh to a collection of polylines.

to_stl(filepath[, precision, binary])

to_stl

Write a mesh to an STL file.

to_vertices_and_faces([triangulated])

to_vertices_and_faces

Return the vertices and faces of a mesh.

transform(transformation)

Transform a mesh.

transform

Transform the mesh.

transform_numpy

Transform the mesh.

transformed

Returns a transformed copy of this data structure.

transformed_numpy

Returns a transformed copy of this data structure.

transformed(transformation)

Return a transformed copy of the mesh.

translate

Translate the datastructure.

unify_cycles([root])

Unify the cycle directions of all faces.

translated

Returns a translated copy of this geometry.

unset_edge_attribute(edge, name)

unify_cycles

Unify the cycles of the mesh.

unset_edge_attribute

Unset the attribute of an edge.

unset_face_attribute(key, name)

unset_face_attribute

Unset the attribute of a face.

unset_vertex_attribute(key, name)

unset_vertex_attribute

Unset the attribute of a vertex.

update_default_edge_attributes([attr_dict])

unweld_edges

Unwelds a mesh along edges.

unweld_vertices

Unweld a face of the mesh.

update_default_edge_attributes

Update the default edge attributes.

update_default_face_attributes([attr_dict])

update_default_face_attributes

Update the default face attributes.

update_default_vertex_attributes([attr_dict])

update_default_vertex_attributes

Update the default vertex attributes.

validate_data()

Validate the object's data against its data schema.

validate_json()

Validate the object's data against its json schema.

validate_data

Validate the data against the object's data schema.

vertex_area(key)

vertex_area

Compute the tributary area of a vertex.

vertex_attribute(key, name[, value])

vertex_attribute

Get or set an attribute of a vertex.

vertex_attributes(key[, names, values])

vertex_attributes

Get or set multiple attributes of a vertex.

vertex_coordinates(key[, axes])

vertex_coordinates

Return the coordinates of a vertex.

vertex_curvature(vkey)

vertex_curvature

Dimensionless vertex curvature.

vertex_degree(key)

vertex_degree

Count the neighbors of a vertex.

vertex_edges(vertex)

vertex_edges

Find all edges connected to a given vertex.

vertex_faces(key[, ordered, include_none])

vertex_faces

The faces connected to a vertex.

vertex_gkey([precision])

vertex_gkey

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

vertex_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

vertex_index

Returns a dictionary that maps vertex identifiers to the corresponding index in a vertex list or array.

vertex_laplacian(key)

vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

vertex_max_degree()

vertex_max_degree

Compute the maximum degree of all vertices.

vertex_min_degree()

vertex_min_degree

Compute the minimum degree of all vertices.

vertex_neighborhood(key[, ring])

vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

vertex_neighborhood_centroid(key)

vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

vertex_neighbors(key[, ordered])

vertex_neighbors

Return the neighbors of a vertex.

vertex_normal(key)

vertex_normal

Return the normal vector at the vertex as the weighted average of the normals of the neighboring faces.

vertex_sample([size])

vertex_point

Return the point of a vertex.

vertex_sample

A random sample of the vertices.

vertices([data])

vertices

Iterate over the vertices of the mesh.

vertices_attribute(name[, value, keys])

vertices_attribute

Get or set an attribute of multiple vertices.

vertices_attributes([names, values, keys])

vertices_attributes

Get or set multiple attributes of multiple vertices.

vertices_on_boundaries()

vertices_on_boundaries

Find the vertices on all boundaries of the mesh.

vertices_on_boundary()

vertices_on_boundary

Find the vertices on the longest boundary.

vertices_where([conditions, data])

vertices_points

Return the points of multiple vertices.

vertices_where

Get vertices for which a certain condition or set of conditions is true.

vertices_where_predicate(predicate[, data])

vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

xy()

The XY coordinates of the vertices.

-

Attributes

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

JSONSCHEMANAME

The schema of the data of this object in JSON format.

adjacency

data

dtype

dual

The dual of this diagram.

guid

jsondefinitions

Reusable schema definitions.

jsonstring

jsonvalidator

JSON schema validator for draft 7.

name

weld

Weld vertices that are closer than a given precision.

@@ -780,207 +1250,81 @@

compas_ags.diagrams.ForceDiagram

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.html index c80e16bd6..f60a269bd 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_edge.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + ForceDiagram.index_edge — COMPAS AGS + - compas_ags - ForceDiagram.index_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.html index a6d8c5275..1f9c9ee7a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + ForceDiagram.index_vertex — COMPAS AGS + - compas_ags - ForceDiagram.index_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.html index 0aa7277a5..28d114d83 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.insert_vertex — COMPAS AGS + - compas_ags - ForceDiagram.insert_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.insert_vertex

@@ -105,226 +568,104 @@

ForceDiagram.insert_vertex

Insert a vertex in the specified face.

Parameters:
-
    -
  • fkey (int) – The key of the face in which the vertex should be inserted.

  • -
  • key (int, optional) – The key to be used to identify the inserted vertex.

  • -
  • xyz (list[float], optional) – Specific XYZ coordinates for the inserted vertex.

  • -
  • return_fkeys (bool, optional) – If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

  • -
+
+
fkeyint

The key of the face in which the vertex should be inserted.

+
+
keyint, optional

The key to be used to identify the inserted vertex.

+
+
xyzlist[float], optional

Specific XYZ coordinates for the inserted vertex.

+
+
return_fkeysbool, optional

If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

+
+
Returns:
-

int | tuple[int, list[int]] – If return_fkeys is False, the key of the inserted vertex. +

+
int | tuple[int, list[int]]

If return_fkeys is False, the key of the inserted vertex. If return_fkeys is True, the key of the newly created vertex and a list with the newly created faces.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.html index 48325430e..6f66d75cb 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_closed.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_closed — COMPAS AGS + - compas_ags - ForceDiagram.is_closed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.html index 94fa6c762..adc21bc2c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_connected.html @@ -1,342 +1,665 @@ + + - - + + + + + + + + ForceDiagram.is_connected — COMPAS AGS + - compas_ags - ForceDiagram.is_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_connected

ForceDiagram.is_connected()

Verify that the mesh is connected.

-
Parameters:
-

mesh (Mesh) – A mesh data structure.

+
Returns:
+
+
bool

True if the mesh is not empty and has no naked edges. +False otherwise.

-
Returns:
-

bool – True, if the mesh is connected. -False, otherwise.

+
-

Notes

-

A mesh is connected if for every two vertices a path exists connecting them.

-

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh()
->>> mesh_is_connected(mesh)
-False
->>> a = mesh.add_vertex(x=0, y=0, z=0)
->>> b = mesh.add_vertex(x=1, y=0, z=0)
->>> c = mesh.add_vertex(x=1, y=1, z=0)
->>> mesh_is_connected(mesh)
-False
->>> abc = mesh.add_face([a, b, c])
->>> mesh_is_connected(mesh)
-True
-
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.html index 7e656974a..a59018af8 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.is_dual_edge_external — COMPAS AGS + - compas_ags - ForceDiagram.is_dual_edge_external + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_dual_edge_external

-ForceDiagram.is_dual_edge_external(edge)[source]
+ForceDiagram.is_dual_edge_external(edge)

Verify if the corresponding edge in the diagram’s dual is marked as “external”.

Parameters:
-

edge (tuple of int) – The edge identifier.

+
+
edgetuple of int

The edge identifier.

+
+
Returns:
-

bool

+
+
bool
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.html index 6c99c3f4a..b05462e41 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.is_dual_edge_ind — COMPAS AGS + - compas_ags - ForceDiagram.is_dual_edge_ind + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_dual_edge_ind

-ForceDiagram.is_dual_edge_ind(edge)[source]
+ForceDiagram.is_dual_edge_ind(edge)

Verify if the corresponding edge in the diagram’s dual is marked as “independent”.

Parameters:
-

edge (tuple of int) – The edge identifier.

+
+
edgetuple of int

The edge identifier.

+
+
Returns:
-

bool

+
+
bool
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.html index 50f4e35a8..079d1cc41 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.is_dual_edge_load — COMPAS AGS + - compas_ags - ForceDiagram.is_dual_edge_load + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_dual_edge_load

-ForceDiagram.is_dual_edge_load(edge)[source]
+ForceDiagram.is_dual_edge_load(edge)

Verify if the corresponding edge in the diagram’s dual is marked as “load”.

Parameters:
-

edge (tuple of int) – The edge identifier.

+
+
edgetuple of int

The edge identifier.

+
+
Returns:
-

bool

+
+
bool
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.html index 8634f0ba7..0ac7ffdb3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + ForceDiagram.is_dual_edge_reaction — COMPAS AGS + - compas_ags - ForceDiagram.is_dual_edge_reaction + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_dual_edge_reaction

-ForceDiagram.is_dual_edge_reaction(edge)[source]
+ForceDiagram.is_dual_edge_reaction(edge)

Verify if the corresponding edge in the diagram’s dual is marked as “reaction”.

Parameters:
-

edge (tuple of int) – The edge identifier.

+
+
edgetuple of int

The edge identifier.

+
+
Returns:
-

bool

+
+
bool
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.html index 919f749f8..eb8af6980 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + ForceDiagram.is_edge_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.is_edge_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_edge_on_boundary

-ForceDiagram.is_edge_on_boundary(u, v)
+ForceDiagram.is_edge_on_boundary(edge)

Verify that an edge is on the boundary.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge is on the boundary. +

+
bool

True if the edge is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.html index 2e56514fd..8728cfe37 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_empty.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_empty — COMPAS AGS + - compas_ags - ForceDiagram.is_empty + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.html index 761b2be9d..99e2f3a55 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_face_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.is_face_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_face_on_boundary

@@ -105,221 +568,98 @@

ForceDiagram.is_face_on_boundary

Verify that a face is on a boundary.

Parameters:
-

key (int) – The identifier of the face.

+
+
keyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face is on the boundary. +

+
bool

True if the face is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.html index 61a4d7356..d77556d4a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_manifold — COMPAS AGS + - compas_ags - ForceDiagram.is_manifold + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.html index 8e7897364..4c375a508 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_orientable — COMPAS AGS + - compas_ags - ForceDiagram.is_orientable + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.html index ffa8a73ab..8cac66edf 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_quadmesh — COMPAS AGS + - compas_ags - ForceDiagram.is_quadmesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.html index 8d938ce39..50d7a0803 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_regular.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_regular — COMPAS AGS + - compas_ags - ForceDiagram.is_regular + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.html index 825e068ac..bf1edbbe7 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_trimesh — COMPAS AGS + - compas_ags - ForceDiagram.is_trimesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.html index ffb203b3f..15506e22d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_valid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_valid — COMPAS AGS + - compas_ags - ForceDiagram.is_valid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.html index 15c24fe44..f4458eb8f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_vertex_connected — COMPAS AGS + - compas_ags - ForceDiagram.is_vertex_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_vertex_connected

@@ -105,221 +568,98 @@

ForceDiagram.is_vertex_connected

Verify that a vertex is connected.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is connected to at least one other vertex. +

+
bool

True if the vertex is connected to at least one other vertex. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.html index a573df661..dd84ef59d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.is_vertex_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.is_vertex_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.is_vertex_on_boundary

@@ -105,221 +568,98 @@

ForceDiagram.is_vertex_on_boundary

Verify that a vertex is on a boundary.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is on the boundary. +

+
bool

True if the vertex is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.join.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.join.html index 305d80868..a073fed6e 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.join.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.join.html @@ -1,118 +1,593 @@ + + - - + + + + + + + + ForceDiagram.join — COMPAS AGS + + - compas_ags - ForceDiagram.join + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.join

-ForceDiagram.join(other)
+ForceDiagram.join(other, weld=False, precision=None)

Add the vertices and faces of another mesh to the current mesh.

-
+
Parameters:
-

other (Mesh) – The other mesh.

+
+
othercompas.datastructures.Mesh

The other mesh.

+
+
weldbool, optional

If True, weld close vertices after joining. +Default is False.

+
+
precisionint, optional

The precision used for welding. +Default is TOL.precision.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+

Examples

-
>>> from compas.geometry import Box
+
>>> from compas.geometry import Box
 >>> from compas.geometry import Translation
 >>> from compas.datastructures import Mesh
 >>> a = Box.from_width_height_depth(1, 1, 1)
@@ -134,216 +609,87 @@ 

ForceDiagram.join

16 >>> a.number_of_faces() 12 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.html new file mode 100644 index 000000000..c37e688fb --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + ForceDiagram.laplacian_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.laplacian_matrix

+
+
+ForceDiagram.laplacian_matrix(rtype='array')
+

Compute the Laplacian matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The Laplacian matrix.

+
+
+
+
+

Notes

+

The \(n \times n\) uniform Laplacian matrix \(\mathbf{L}\) of a mesh +with vertices \(\mathbf{V}\) and edges \(\mathbf{E}\) is defined as +follows [1]

+
+\[\begin{split}\mathbf{L}_{ij} = +\begin{cases} + -1 & i = j \\ + \frac{1}{deg(i)} & (i, j) \in \mathbf{E} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

with \(deg(i)\) the degree of vertex \(i\).

+

Therefore, the uniform Laplacian of a vertex \(\mathbf{v}_{i}\) points to +the centroid of its neighboring vertices.

+

References

+
+
+[1] +

Nealen A., Igarashi T., Sorkine O. and Alexa M. +Laplacian Mesh Optimization.

+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> L = mesh.laplacian_matrix(mesh, rtype='array')
+>>> type(L)
+<class 'numpy.ndarray'>
+
+
+
>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> L = mesh.laplacian_matrix(mesh)
+>>> d = L.dot(xyz)
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.html index 6edfd3fa6..505a18c67 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.html @@ -1,123 +1,590 @@ + + - - + + + + + + + + ForceDiagram.merge_faces — COMPAS AGS + + - compas_ags - ForceDiagram.merge_faces + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.merge_faces

ForceDiagram.merge_faces(faces)

Merge two faces of a mesh over their shared edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • faces (list[int]) – Face identifiers.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh data structure.

+
+
faceslist[int]

Face identifiers.

+
+
Returns:
-

int

+
+
int
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
->>> mesh = mesh.subdivide(scheme='quad')
+>>> mesh = mesh.subdivide(scheme="quad")
 >>> mesh_merge_faces(mesh, [1, 2])
 5
 >>> mesh_merge_faces(mesh, [3, 5])
@@ -126,216 +593,87 @@ 

ForceDiagram.merge_faces

7 >>> mesh.face_vertices(7) [3, 5, 0, 4, 1, 6, 2, 7] -
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.normal.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.normal.html index d1e95f0e3..252933373 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.normal.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.normal.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.normal — COMPAS AGS + - compas_ags - ForceDiagram.normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.html index 9f8451b21..dd053caff 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + ForceDiagram.number_of_edges — COMPAS AGS + - compas_ags - ForceDiagram.number_of_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.html index e25761e14..70d048cbe 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + ForceDiagram.number_of_faces — COMPAS AGS + - compas_ags - ForceDiagram.number_of_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.html index ebdf99203..090f2c6af 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + ForceDiagram.number_of_vertices — COMPAS AGS + - compas_ags - ForceDiagram.number_of_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.obb.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.obb.html new file mode 100644 index 000000000..65872b787 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + ForceDiagram.obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.obb

+
+
+ForceDiagram.obb()
+

Calculate the oriented bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.offset.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.offset.html new file mode 100644 index 000000000..e157fd6e2 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.offset.html @@ -0,0 +1,677 @@ + + + + + + + + + + + + ForceDiagram.offset — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.offset

+
+
+ForceDiagram.offset(distance=1.0)
+

Generate an offset mesh.

+
+
Parameters:
+
+
distancefloat, optional

The offset distance.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The offset mesh.

+
+
+
+
+

Notes

+

If the offset distance is a positive value, the offset is in the direction of the vertex normal. +If the value is negative, the offset is in the opposite direction. +In both cases, the orientation of the offset mesh is the same as the orientation of the original.

+

In areas with high degree of curvature, the offset mesh can have self-intersections.

+

Examples

+
>>> from compas.datastructures import Mesh, mesh_offset
+>>> from compas.geometry import distance_point_point as dist
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.offset()
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.html index db85330fb..d49a07cc9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.html @@ -1,324 +1,662 @@ + + - - + + + + + + + + ForceDiagram.ordered_edges — COMPAS AGS + - compas_ags - ForceDiagram.ordered_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.html index 45a631d0c..b50d02ef8 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + ForceDiagram.quads_to_triangles — COMPAS AGS + - compas_ags - ForceDiagram.quads_to_triangles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.quads_to_triangles

ForceDiagram.quads_to_triangles(check_angles=False)
-

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

+

Convert all quadrilateral faces to triangles by adding a diagonal edge.

Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • check_angles (bool, optional) – Flag indicating that the angles of the quads should be checked to choose the best diagonal.

  • -
+
+
check_anglesbool, optional

Flag indicating that the angles of the quads should be checked to choose the best diagonal.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.html new file mode 100644 index 000000000..eb4f0f373 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + ForceDiagram.remove_duplicate_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.remove_duplicate_vertices

+
+
+ForceDiagram.remove_duplicate_vertices(precision=None)
+

Remove all duplicate vertices and clean up any affected faces.

+
+
Parameters:
+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
+
+
Returns:
+
+
None

The mesh is modified in-place.

+
+
+
+
+

Examples

+
>>> import compas
+>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
+>>> mesh.number_of_vertices()
+36
+>>> for x, y, z in mesh.vertices_attributes("xyz", keys=list(mesh.vertices())[:5]):
+...     mesh.add_vertex(x=x, y=y, z=z)
+38
+39
+40
+>>> mesh.number_of_vertices()
+41
+>>> mesh.remove_duplicate_vertices()
+>>> mesh.number_of_vertices()
+36
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.html index 3a2a31a21..8c6b0cffb 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + ForceDiagram.remove_unused_vertices — COMPAS AGS + - compas_ags - ForceDiagram.remove_unused_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotate.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotate.html new file mode 100644 index 000000000..681e2041d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotate.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + ForceDiagram.rotate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.rotate

+
+
+ForceDiagram.rotate(angle, axis=None, point=None)
+

Rotate the datastructure.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
rotated
+
translate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotated.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotated.html new file mode 100644 index 000000000..2a98c6bea --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.rotated.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + ForceDiagram.rotated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.rotated

+
+
+ForceDiagram.rotated(angle, axis=None, point=None)
+

Returns a rotated copy of this geometry.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
Geometry

The rotated geometry.

+
+
+
+
+
+

See also

+
+
rotate
+
translated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.scale.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.scale.html new file mode 100644 index 000000000..808256f59 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.scale.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + ForceDiagram.scale — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.scale

+
+
+ForceDiagram.scale(x, y=None, z=None)
+

Scale the datastructure.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
scaled
+
translate
+
rotate
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.scaled.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.scaled.html new file mode 100644 index 000000000..8f777dc96 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.scaled.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + ForceDiagram.scaled — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.scaled

+
+
+ForceDiagram.scaled(x, y=None, z=None)
+

Returns a scaled copy of this geometry.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
Geometry

The scaled geometry.

+
+
+
+
+
+

See also

+
+
scale
+
translated
+
rotated
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.html new file mode 100644 index 000000000..47d3d8f11 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + ForceDiagram.set_vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.set_vertex_point

+
+
+ForceDiagram.set_vertex_point(vertex, point)
+

Set the point of a vertex.

+
+
Parameters:
+
+
vertexint

The identifier of the vertex.

+
+
pointcompas.geometry.Point

The point to set.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.sha256.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.sha256.html index 4588ef4aa..cc7d5ae36 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.sha256.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.sha256.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.sha256 — COMPAS AGS + - compas_ags - ForceDiagram.sha256 + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.sha256

@@ -105,233 +568,109 @@

ForceDiagram.sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

Parameters:
-

as_string (bool, optional) – If True, return the digest in hexadecimal format rather than as bytes.

+
+
as_stringbool, optional

If True, return the digest in hexadecimal format rather than as bytes.

+
+
Returns:
-

bytes | str

+
+
bytes | str
+

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh.from_obj(compas.get('faces.obj'))
+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> v1 = mesh.sha256()
 >>> v2 = mesh.sha256()
->>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], 'z', 1)
+>>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], "z", 1)
 >>> v3 = mesh.sha256()
 >>> v1 == v2
 True
 >>> v2 == v3
 False
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.slice.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.slice.html new file mode 100644 index 000000000..8ffcaccb0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.slice.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + ForceDiagram.slice — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.slice

+
+
+ForceDiagram.slice(plane)
+

Slice a mesh with a plane and construct the resulting submeshes.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

The original mesh.

+
+
planecompas.geometry.Plane

The cutting plane.

+
+
+
+
Returns:
+
+
tuple[compas.datastructures.Mesh, compas.datastructures.Mesh] | None

The “positive” and “negative” submeshes. +If the mesh and plane do not intersect, +or if the intersection is degenerate (point or line), +the function returns None.

+
+
+
+
+

Examples

+
>>> from compas.geometry import Plane
+>>> from compas.geometry import Box
+>>> from compas.datastructures import Mesh
+>>> plane = Plane((0, 0, 0), (1, 0, 0))
+>>> box = Box.from_width_height_depth(1, 1, 1)
+>>> mesh = Mesh.from_shape(box)
+>>> result = mesh_slice_plane(mesh, plane)
+>>> len(result) == 2
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.html index d9878ebb3..fc5ecd7a6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + ForceDiagram.smooth_area — COMPAS AGS + + - compas_ags - ForceDiagram.smooth_area + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.smooth_area

ForceDiagram.smooth_area(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.html index 34d206f9a..fe81b4c8d 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + ForceDiagram.smooth_centroid — COMPAS AGS + + - compas_ags - ForceDiagram.smooth_centroid + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.smooth_centroid

ForceDiagram.smooth_centroid(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.html index c15d72da7..0031e7923 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_edge.html @@ -1,334 +1,677 @@ + + - - + + + + + + + + ForceDiagram.split_edge — COMPAS AGS + - compas_ags - ForceDiagram.split_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.split_edge

-ForceDiagram.split_edge(u, v, t=0.5, allow_boundary=False)
+ForceDiagram.split_edge(edge, t=0.5, allow_boundary=False)

Split and edge by inserting a vertex along its length.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (int) – The key of the first vertex of the edge.

  • -
  • v (int) – The key of the second vertex of the edge.

  • -
  • t (float, optional) – The position of the inserted vertex. -The value should be between 0.0 and 1.0

  • -
  • allow_boundary (bool, optional) – If True, also split edges on the boundary.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge to split.

+
+
tfloat, optional

The position of the inserted vertex. +The value should be between 0.0 and 1.0

+
+
allow_boundarybool, optional

If True, also split edges on the boundary.

+
+
Returns:
-

int – The key of the inserted vertex.

+
+
int

The key of the inserted vertex.

+
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If u and v are not neighbors.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_face.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_face.html index 60c0a9e8f..c65006613 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_face.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_face.html @@ -1,127 +1,600 @@ + + - - + + + + + + + + ForceDiagram.split_face — COMPAS AGS + + - compas_ags - ForceDiagram.split_face + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.split_face

ForceDiagram.split_face(fkey, u, v)

Split a face by inserting an edge between two specified vertices.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh

  • -
  • fkey (int) – The face key.

  • -
  • u (int) – The key of the first split vertex.

  • -
  • v (int) – The key of the second split vertex.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh

+
+
fkeyint

The face key.

+
+
uint

The key of the first split vertex.

+
+
vint

The key of the second split vertex.

+
+
Returns:
-

tuple[int, int] – Keys of the created faces.

+
+
tuple[int, int]

Keys of the created faces.

+
+
Raises:
-

ValueError – If the split vertices does not belong to the split face or if the split - vertices are neighbors.

+
+
ValueError

If the split vertices does not belong to the split face or if the split +vertices are neighbors.

+
+

Examples

-
>>> import compas
+
>>> import compas
 >>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> face = mesh.face_sample(size=1)[0]
@@ -134,216 +607,87 @@ 

ForceDiagram.split_face

(25, 26) >>> mesh.number_of_faces() # faces after split 26 -
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.html index 77fab270d..b17174b1a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.split_strip.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + ForceDiagram.split_strip — COMPAS AGS + - compas_ags - ForceDiagram.split_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.split_strip

ForceDiagram.split_strip(edge)

Split the srip of faces corresponding to a given edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – The input mesh.

  • -
  • edge (tuple[int, int]) – The edge identifying the strip.

  • -
+
+
meshcompas.datastructures.Mesh

The input mesh.

+
+
edgetuple[int, int]

The edge identifying the strip.

+
+
Returns:
-

list[int] – The split vertices in the same order as the edges of the strip.

+
+
list[int]

The split vertices in the same order as the edges of the strip.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.html new file mode 100644 index 000000000..296748194 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.html @@ -0,0 +1,674 @@ + + + + + + + + + + + + ForceDiagram.subdivided — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.subdivided

+
+
+ForceDiagram.subdivided(scheme='catmullclark', **options)
+

Subdivide the input mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
schemeLiteral[‘tri’, ‘quad’, ‘corner’, ‘catmullclark’, ‘doosabin’, ‘frames’, ‘loop’], optional

The scheme according to which the mesh should be subdivided.

+
+
**optionsdict[str, Any], optional

Optional additional keyword arguments.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The subdivided mesh.

+
+
+
+
Raises:
+
+
ValueError

If the scheme is not supported.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.summary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.summary.html index fe90129c5..72115d629 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.summary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.summary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.summary — COMPAS AGS + - compas_ags - ForceDiagram.summary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.thickened.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.thickened.html new file mode 100644 index 000000000..3fb55c7b9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.thickened.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + ForceDiagram.thickened — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.thickened

+
+
+ForceDiagram.thickened(thickness=1.0, both=True)
+

Generate a thicknened mesh.

+
+
Parameters:
+
+
thicknessfloat, optional

The mesh thickness. +This should be a positive value.

+
+
bothbool, optional

If true, the mesh is thickened on both sides of the original. +Otherwise, the mesh is thickened on the side of the positive normal.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The thickened mesh.

+
+
+
+
Raises:
+
+
ValueError

If thickness is not a positive number.

+
+
+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.thicken(mesh)
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_json.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_json.html index c1fe2414e..52900b5d1 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_json.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_json.html @@ -1,327 +1,661 @@ + + - - + + + + + + + + ForceDiagram.to_json — COMPAS AGS + - compas_ags - ForceDiagram.to_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.html index 1924ea8f6..4fac41bcd 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.html @@ -1,324 +1,665 @@ + + - - + + + + + + + + ForceDiagram.to_jsonstring — COMPAS AGS + - compas_ags - ForceDiagram.to_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_jsonstring

ForceDiagram.to_jsonstring(pretty=False)
-

Serialize the data representation of an object to a JSON string.

+

Convert an object to its native data representation and save it to a JSON string.

Parameters:
-

pretty (bool, optional) – If True serialize a pretty representation of the data.

+
+
prettybool, optional

If True, the JSON string will be pretty printed. +Defaults to False.

+
+
Returns:
-

str – The object’s data dict in JSON string format.

+
+
str

The JSON string.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.html index 448452edd..e972755f4 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_lines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.to_lines — COMPAS AGS + - compas_ags - ForceDiagram.to_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.html index 09fb1edc7..fe8a7d453 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.to_obj — COMPAS AGS + + - compas_ags - ForceDiagram.to_obj + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_obj

@@ -105,15 +568,20 @@

ForceDiagram.to_obj

Write the mesh to an OBJ file.

Parameters:
-
    -
  • filepath (str) – Full path of the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
  • unweld (bool, optional) – If True, all faces have their own unique vertices. -If False (default), vertices are shared between faces if this is also the case in the mesh.

  • -
+
+
filepathstr

Full path of the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
unweldbool, optional

If True, all faces have their own unique vertices. +If False (default), vertices are shared between faces if this is also the case in the mesh.

+
+
Returns:
-

None

+
+
None
+
@@ -125,210 +593,81 @@

ForceDiagram.to_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_off.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_off.html index 673fd7e45..49e043a15 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_off.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.to_off — COMPAS AGS + - compas_ags - ForceDiagram.to_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_off

@@ -105,220 +568,96 @@

ForceDiagram.to_off

Write a mesh object to an OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.html index fe4d7fb66..526ade6a0 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.to_ply — COMPAS AGS + - compas_ags - ForceDiagram.to_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_ply

@@ -105,220 +568,96 @@

ForceDiagram.to_ply

Write a mesh object to a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_points.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_points.html index 48e672f9f..2179f57f8 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_points.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_points.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.to_points — COMPAS AGS + - compas_ags - ForceDiagram.to_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.html index c5fa59c85..f5164e64c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.to_polygons — COMPAS AGS + - compas_ags - ForceDiagram.to_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.html index f6d48be79..e73016d74 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.to_polylines — COMPAS AGS + - compas_ags - ForceDiagram.to_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.html index 3db7cee59..0fcf25d59 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.to_stl — COMPAS AGS + - compas_ags - ForceDiagram.to_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_stl

@@ -105,230 +568,106 @@

ForceDiagram.to_stl

Write a mesh to an STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – Rounding precision for the vertex coordinates. -Defaults to the value of compas.PRECISION.

  • -
  • binary (bool, optional) – If True, the file will be written in binary format. -ASCII otherwise.

  • -
+
+
filepathstr

The path to the file.

+
+
precisionstr, optional

Rounding precision for the vertex coordinates. +Defaults to the value of compas.PRECISION.

+
+
binarybool, optional

If True, the file will be written in binary format. +ASCII otherwise.

+
+
Returns:
-

None

+
+
None
+

Notes

STL files only support triangle faces. It is the user’s responsibility to convert all faces of a mesh to triangles. -For example, with compas.datastructures.mesh_quads_to_triangles().

+For example, with compas.datastructures.Mesh.quads_to_triangles().

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.html index 115ec94f4..dcd4fa2e3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.to_vertices_and_faces — COMPAS AGS + - compas_ags - ForceDiagram.to_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.to_vertices_and_faces

@@ -105,224 +568,99 @@

ForceDiagram.to_vertices_and_faces

Return the vertices and faces of a mesh.

Parameters:
-

triangulated (bool, optional) – If True, triangulate the faces.

+
+
triangulated: bool, optional

If True, triangulate the faces.

+
+
Returns:
-

    -
  • list[list[float]] – The vertices as a list of XYZ coordinates.

  • -
  • list[list[int]] – The faces as a list of lists of vertex indices.

  • -
-

+
+
list[list[float]]

The vertices as a list of XYZ coordinates.

+
+
list[list[int]]

The faces as a list of lists of vertex indices.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform.html index 15be1799e..b29d7c3b3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform.html @@ -1,336 +1,672 @@ + + - - + + + + + + + + ForceDiagram.transform — COMPAS AGS + + - compas_ags - ForceDiagram.transform + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.transform

-ForceDiagram.transform(transformation)
-

Transform a mesh.

-
+ForceDiagram.transform(T) +

Transform the mesh.

+
Parameters:
-
    -
  • mesh (Mesh) – The mesh.

  • -
  • transformation (Transformation) – The transformation.

  • -
+
+
TTransformation

The transformation used to transform the mesh.

+
+
Returns:
-

None – The mesh is modified in-place.

+
+
None

The mesh is modified in-place.

+
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> from compas.geometry import matrix_from_axis_and_angle
 >>> mesh = Mesh.from_polyhedron(6)
 >>> T = matrix_from_axis_and_angle([0, 0, 1], math.pi / 4)
->>> tmesh = mesh.copy()
->>> mesh_transform(tmesh, T)
-
+>>> mesh.transform(T) +
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.html index c99045c55..d8a14e50c 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.html @@ -1,274 +1,672 @@ + + - - + + + + + + + + + ForceDiagram.transform_numpy — COMPAS AGS - compas_ags - ForceDiagram.transform_numpy + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + +
+ +
+ + + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+ +
+ +
- - - + + + + - - - - - - - - - - - - - +
+ + +
+ \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed.html index 5f211f3d5..215f63b0a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed.html @@ -1,335 +1,664 @@ + + - - + + + + + + + + ForceDiagram.transformed — COMPAS AGS + + - compas_ags - ForceDiagram.transformed + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.html new file mode 100644 index 000000000..240c2d08b --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.transformed_numpy — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.transformed_numpy

+
+
+ForceDiagram.transformed_numpy(transformation)
+

Returns a transformed copy of this data structure.

+
+
Parameters:
+
+
transformationTransformation

The transformation used to transform the copy.

+
+
+
+
Returns:
+
+
Datastructure

The transformed copy.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.translate.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.translate.html new file mode 100644 index 000000000..7f8d299e6 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.translate.html @@ -0,0 +1,672 @@ + + + + + + + + + + + + ForceDiagram.translate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.translate

+
+
+ForceDiagram.translate(vector)
+

Translate the datastructure.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
translated
+
rotate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.translated.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.translated.html new file mode 100644 index 000000000..836ac828d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.translated.html @@ -0,0 +1,673 @@ + + + + + + + + + + + + ForceDiagram.translated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.translated

+
+
+ForceDiagram.translated(vector)
+

Returns a translated copy of this geometry.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
Geometry

The translated geometry.

+
+
+
+
+
+

See also

+
+
translate
+
rotated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.html index 9eef3c08f..ad7c0b561 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.html @@ -1,332 +1,658 @@ + + - - + + + + + + + + ForceDiagram.unify_cycles — COMPAS AGS + - compas_ags - ForceDiagram.unify_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.html index c81539b86..5e82571d8 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.unset_edge_attribute — COMPAS AGS + - compas_ags - ForceDiagram.unset_edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.unset_edge_attribute

@@ -105,18 +568,33 @@

ForceDiagram.unset_edge_attribute

Unset the attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The edge identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
edgetuple[int, int]

The edge identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+

Notes

Unsetting the value of an edge attribute implicitly sets it back to the value stored in the default edge attribute dict.

@@ -124,210 +602,81 @@

ForceDiagram.unset_edge_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.html index ce77dfb75..0ebdc0623 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.unset_face_attribute — COMPAS AGS + - compas_ags - ForceDiagram.unset_face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.unset_face_attribute

@@ -105,18 +568,33 @@

ForceDiagram.unset_face_attribute

Unset the attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+

Notes

Unsetting the value of a face attribute implicitly sets it back to the value stored in the default face attribute dict.

@@ -124,210 +602,81 @@

ForceDiagram.unset_face_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.html index 0ebb44ba0..575106523 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.unset_vertex_attribute — COMPAS AGS + - compas_ags - ForceDiagram.unset_vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.unset_vertex_attribute

@@ -105,18 +568,33 @@

ForceDiagram.unset_vertex_attribute

Unset the attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+

Notes

Unsetting the value of a vertex attribute implicitly sets it back to the value stored in the default vertex attribute dict.

@@ -124,210 +602,81 @@

ForceDiagram.unset_vertex_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.html new file mode 100644 index 000000000..4d51fe3ad --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + ForceDiagram.unweld_edges — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.unweld_edges

+
+
+ForceDiagram.unweld_edges(edges)
+

Unwelds a mesh along edges.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh.

+
+
edges: list[tuple[int, int]]

List of edges as tuples of vertex keys.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.html new file mode 100644 index 000000000..e78408d7c --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + ForceDiagram.unweld_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.unweld_vertices

+
+
+ForceDiagram.unweld_vertices(fkey, where=None)
+

Unweld a face of the mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fkeyint

The identifier of a face.

+
+
wherelist[int], optional

A list of vertices to unweld. +Default is to unweld all vertices of the face.

+
+
+
+
Returns:
+
+
list[int]

The vertices of the unwelded face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.html index 2e36bedee..9b2d67e32 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.update_default_edge_attributes — COMPAS AGS + - compas_ags - ForceDiagram.update_default_edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.update_default_edge_attributes

@@ -105,225 +568,107 @@

ForceDiagram.update_default_edge_attributes

Update the default edge attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.html index 5ae1c99e8..f009a5cbe 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.update_default_face_attributes — COMPAS AGS + - compas_ags - ForceDiagram.update_default_face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.update_default_face_attributes

@@ -105,225 +568,107 @@

ForceDiagram.update_default_face_attributes

Update the default face attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.html index c5446bb9b..8e1c22056 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.update_default_vertex_attributes — COMPAS AGS + - compas_ags - ForceDiagram.update_default_vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.update_default_vertex_attributes

@@ -105,225 +568,107 @@

ForceDiagram.update_default_vertex_attributes

Update the default vertex attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.html index ed465ec29..5a46b17a3 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.validate_data.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + ForceDiagram.validate_data — COMPAS AGS + - compas_ags - ForceDiagram.validate_data + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.html index 56e2e430a..dd4ef4657 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_area — COMPAS AGS + - compas_ags - ForceDiagram.vertex_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_area

@@ -105,220 +568,97 @@

ForceDiagram.vertex_area

Compute the tributary area of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

float – The tributary are.

+
+
float

The tributary are.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.html index 5ec9b52b0..e1f7f4c36 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_attribute — COMPAS AGS + - compas_ags - ForceDiagram.vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_attribute

@@ -105,228 +568,117 @@

ForceDiagram.vertex_attribute

Get or set an attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, +

+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.html index 7ac949b06..02f3b1692 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_attributes — COMPAS AGS + - compas_ags - ForceDiagram.vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_attributes

@@ -105,231 +568,119 @@

ForceDiagram.vertex_attributes

Get or set multiple attributes of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the vertex.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, the function returns a dictionary of all attribute name-value pairs of the vertex. If the parameter names is not empty, the function returns a list of the values corresponding to the requested attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.html index cc2e97b2c..e1f81f2c6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_coordinates — COMPAS AGS + - compas_ags - ForceDiagram.vertex_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_coordinates

@@ -105,224 +568,100 @@

ForceDiagram.vertex_coordinates

Return the coordinates of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
keyint

The identifier of the vertex.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[float] – Coordinates of the vertex.

+
+
list[float]

Coordinates of the vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.html index b9da7e1a0..2fcf2ed8a 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_curvature — COMPAS AGS + - compas_ags - ForceDiagram.vertex_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_curvature

@@ -105,10 +568,16 @@

ForceDiagram.vertex_curvature

Dimensionless vertex curvature.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+

References

@@ -123,210 +592,81 @@

ForceDiagram.vertex_curvature

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.html index 0edf7f6d8..b9a4d3271 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_degree — COMPAS AGS + - compas_ags - ForceDiagram.vertex_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_degree

@@ -105,220 +568,97 @@

ForceDiagram.vertex_degree

Count the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

int – The degree of the vertex.

+
+
int

The degree of the vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.html index 7c5491a80..85fe5c007 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_edges — COMPAS AGS + - compas_ags - ForceDiagram.vertex_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_edges

@@ -105,220 +568,95 @@

ForceDiagram.vertex_edges

Find all edges connected to a given vertex.

Parameters:
-

vertex (int)

+
+
vertexint
+
Returns:
-

list[tuple[int, int]]

+
+
list[tuple[int, int]]
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.html index f0453e7c8..cfcf7f5c6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_faces — COMPAS AGS + - compas_ags - ForceDiagram.vertex_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_faces

@@ -105,224 +568,101 @@

ForceDiagram.vertex_faces

The faces connected to a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the faces in cycling order.

  • -
  • include_none (bool, optional) – If True, include outside faces in the list.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the faces in cycling order.

+
+
include_nonebool, optional

If True, include outside faces in the list.

+
+
Returns:
-

list[int] – The faces connected to a vertex.

+
+
list[int]

The faces connected to a vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.html index c8d49ed7e..275d0d9f5 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_gkey — COMPAS AGS + - compas_ags - ForceDiagram.vertex_gkey + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_gkey

@@ -106,221 +569,98 @@

ForceDiagram.vertex_gkey

geometric key up to a certain precision.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[int, str] – A dictionary of key-geometric key pairs.

+
+
dict[int, str]

A dictionary of key-geometric key pairs.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.html index c28633c04..00e500e43 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + ForceDiagram.vertex_index — COMPAS AGS + - compas_ags - ForceDiagram.vertex_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.html index dae4c0e54..67c94ba72 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_laplacian — COMPAS AGS + - compas_ags - ForceDiagram.vertex_laplacian + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_laplacian

@@ -105,220 +568,97 @@

ForceDiagram.vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the vector.

+
+
compas.geometry.Vector

The Laplacian vector.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.html index 6623b46f7..33ddc53cc 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.vertex_max_degree — COMPAS AGS + - compas_ags - ForceDiagram.vertex_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.html index b1a80302b..7d6aa7b2f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.vertex_min_degree — COMPAS AGS + - compas_ags - ForceDiagram.vertex_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.html index 3ca3f0864..b436db3e9 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_neighborhood — COMPAS AGS + - compas_ags - ForceDiagram.vertex_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_neighborhood

@@ -105,13 +568,18 @@

ForceDiagram.vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ring (int, optional) – The number of neighborhood rings to include.

  • -
+
+
keyint

The identifier of the vertex.

+
+
ringint, optional

The number of neighborhood rings to include.

+
+
Returns:
-

list[int] – The vertices in the neighborhood.

+
+
list[int]

The vertices in the neighborhood.

+
+

Notes

@@ -120,210 +588,81 @@

ForceDiagram.vertex_neighborhood

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.html index 541e57c52..d1d570e46 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_neighborhood_centroid — COMPAS AGS + - compas_ags - ForceDiagram.vertex_neighborhood_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_neighborhood_centroid

@@ -105,220 +568,97 @@

ForceDiagram.vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The centroid of the vertex neighbors.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.html index 58e148030..db2023832 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_neighbors — COMPAS AGS + - compas_ags - ForceDiagram.vertex_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_neighbors

@@ -105,17 +568,22 @@

ForceDiagram.vertex_neighbors

Return the neighbors of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the neighbors in the cycling order of the faces.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the neighbors in the cycling order of the faces.

+
+
Returns:
-

list[int] – The list of neighboring vertices. +

+
list[int]

The list of neighboring vertices. If the vertex lies on the boundary of the mesh, an ordered list always starts and ends with with boundary vertices.

+
+

Notes

Due to the nature of the ordering algorithm, the neighbors cycle around the node in the opposite direction as the cycling direction of the faces. @@ -126,210 +594,81 @@

ForceDiagram.vertex_neighbors

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.html index 028aadb19..388e72c06 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_normal — COMPAS AGS + - compas_ags - ForceDiagram.vertex_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_normal

@@ -106,220 +569,97 @@

ForceDiagram.vertex_normal

normals of the neighboring faces.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector

The normal vector.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.html new file mode 100644 index 000000000..9279d1241 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.vertex_point

+
+
+ForceDiagram.vertex_point(key)
+

Return the point of a vertex.

+
+
Parameters:
+
+
keyint

The identifier of the vertex.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point of the vertex.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.html index baeba19ad..baec7ca4f 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertex_sample — COMPAS AGS + - compas_ags - ForceDiagram.vertex_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertex_sample

@@ -105,220 +568,103 @@

ForceDiagram.vertex_sample

A random sample of the vertices.

Parameters:
-

size (int, optional) – The number of vertices in the random sample.

+
+
sizeint, optional

The number of vertices in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the vertices.

+
+
list[int]

The identifiers of the vertices.

+
+
+
+

See also

+
+
edge_sample(), face_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices.html index b75f8030d..da0fcf671 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertices — COMPAS AGS + - compas_ags - ForceDiagram.vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertices

@@ -105,221 +568,105 @@

ForceDiagram.vertices

Iterate over the vertices of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex identifier. If data is True, the next vertex as a (key, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.html index 896386453..34d4a8e42 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertices_attribute — COMPAS AGS + - compas_ags - ForceDiagram.vertices_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertices_attribute

@@ -105,229 +568,117 @@

ForceDiagram.vertices_attribute

Get or set an attribute of multiple vertices.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[Any] | None – The value of the attribute for each vertex, +

+
list[Any] | None

The value of the attribute for each vertex, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.html index b821018ca..99af33c57 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertices_attributes — COMPAS AGS + - compas_ags - ForceDiagram.vertices_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertices_attributes

@@ -105,231 +568,119 @@

ForceDiagram.vertices_attributes

Get or set multiple attributes of multiple vertices.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute.

  • -
  • values (list[Any], optional) – The values of the attributes.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute.

+
+
valueslist[Any], optional

The values of the attributes.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, the function returns a list containing an attribute dict per vertex. If the parameter names is not empty, the function returns a list containing a list of attribute values per vertex corresponding to the provided attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.html index 6c76f8964..58921ee44 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.html @@ -1,321 +1,659 @@ + + - - + + + + + + + + ForceDiagram.vertices_on_boundaries — COMPAS AGS + - compas_ags - ForceDiagram.vertices_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.html index 3c0d83767..97a70b871 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + ForceDiagram.vertices_on_boundary — COMPAS AGS + - compas_ags - ForceDiagram.vertices_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.html new file mode 100644 index 000000000..f82f096ff --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + ForceDiagram.vertices_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.vertices_points

+
+
+ForceDiagram.vertices_points(vertices)
+

Return the points of multiple vertices.

+
+
Parameters:
+
+
verticeslist[int]

The identifiers of the vertices.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.html index d2636de21..d7166a435 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertices_where — COMPAS AGS + - compas_ags - ForceDiagram.vertices_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertices_where

@@ -105,227 +568,111 @@

ForceDiagram.vertices_where

Get vertices for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.html index a34aee6f4..23ff9fca6 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + ForceDiagram.vertices_where_predicate — COMPAS AGS + + - compas_ags - ForceDiagram.vertices_where_predicate + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

ForceDiagram.vertices_where_predicate

@@ -105,230 +568,109 @@

ForceDiagram.vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the vertex identifier and the vertex attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

-

Examples

-
>>>
-
+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.weld.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.weld.html new file mode 100644 index 000000000..a66f66ee6 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.weld.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + ForceDiagram.weld — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

ForceDiagram.weld

+
+
+ForceDiagram.weld(precision=None)
+

Weld vertices that are closer than a given precision.

+
+
Parameters:
+
+
precisionint, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
+
+
Returns:
+
+
None

The mesh is modified in place.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.ForceDiagram.xy.html b/latest/api/generated/compas_ags.diagrams.ForceDiagram.xy.html index fb96d078e..fd90cc136 100644 --- a/latest/api/generated/compas_ags.diagrams.ForceDiagram.xy.html +++ b/latest/api/generated/compas_ags.diagrams.ForceDiagram.xy.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + ForceDiagram.xy — COMPAS AGS + - compas_ags - ForceDiagram.xy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.ToString.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.ToString.html index 514894688..1b93dc904 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.ToString.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.ToString.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.ToString — COMPAS AGS + - compas_ags - FormDiagram.ToString + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.ToString

@@ -114,210 +577,81 @@

FormDiagram.ToString

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.aabb.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.aabb.html new file mode 100644 index 000000000..9fe6da3ce --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormDiagram.aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.aabb

+
+
+FormDiagram.aabb()
+

Calculate the axis aligned bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.add_face.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.add_face.html index b527cf80c..5ea23cdd2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.add_face.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.add_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.add_face — COMPAS AGS + - compas_ags - FormDiagram.add_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.add_face

@@ -105,19 +568,35 @@

FormDiagram.add_face

Add a face to the mesh object.

Parameters:
-
    -
  • vertices (list[int]) – A list of vertex keys.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of face attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
verticeslist[int]

A list of vertex keys.

+
+
attr_dictdict[str, Any], optional

A dictionary of face attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The key of the face.

+
+
int

The key of the face.

+
+
Raises:
-

TypeError – If the provided face key is of an unhashable type.

+
+
TypeError

If the provided face key is of an unhashable type.

+
+
+

Notes

If no key is provided for the face, one is generated automatically. An automatically generated key is an integer that increments @@ -128,210 +607,81 @@

FormDiagram.add_face

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.html index 3886af3e9..6b000ddf0 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.add_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.add_vertex — COMPAS AGS + + - compas_ags - FormDiagram.add_vertex + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.add_vertex

@@ -105,16 +568,29 @@

FormDiagram.add_vertex

Add a vertex to the mesh object.

Parameters:
-
    -
  • key (int, optional) – The vertex identifier.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of vertex attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
keyint, optional

The vertex identifier.

+
+
attr_dictdict[str, Any], optional

A dictionary of vertex attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

int – The identifier of the vertex.

+
+
int

The identifier of the vertex.

+
+
+

Notes

If no key is provided for the vertex, one is generated automatically. An automatically generated key is an integer that increments @@ -122,7 +598,7 @@

FormDiagram.add_vertex

If a key with an integer value is provided that is higher than the current highest integer key value, then the highest integer value is updated accordingly.

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh()
 >>> mesh.add_vertex()
 0
@@ -132,216 +608,87 @@ 

FormDiagram.add_vertex

2 >>> mesh.add_vertex(key=0, x=1) 0 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.html new file mode 100644 index 000000000..b0bf7646d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.adjacency_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.adjacency_matrix

+
+
+FormDiagram.adjacency_matrix(rtype='array')
+

Compute the adjacency matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The adjacency matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.area.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.area.html index a813d5a90..10ec79b4b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.area.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.area.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.area — COMPAS AGS + - compas_ags - FormDiagram.area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.centroid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.centroid.html index fabe39808..f1205d854 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.centroid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.centroid.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.centroid — COMPAS AGS + - compas_ags - FormDiagram.centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.clear.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.clear.html index 189d9974a..39eda8b78 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.clear.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.clear.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + FormDiagram.clear — COMPAS AGS + - compas_ags - FormDiagram.clear + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.html index 9eff2b778..d6b06e7e9 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.html @@ -1,337 +1,680 @@ + + - - + + + + + + + + FormDiagram.collapse_edge — COMPAS AGS + - compas_ags - FormDiagram.collapse_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.collapse_edge

-FormDiagram.collapse_edge(u, v, t=0.5, allow_boundary=False, fixed=None)
+FormDiagram.collapse_edge(edge, t=0.5, allow_boundary=False, fixed=None)

Collapse an edge to its first or second vertex, or to an intermediate point.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (str) – The first vertex of the (half-) edge.

  • -
  • v (str) – The second vertex of the (half-) edge.

  • -
  • t (float, optional) – Determines where to collapse to. -If t == 0.0 collapse to u. -If t == 1.0 collapse to v. -If 0.0 < t < 1.0, collapse to a point between u and v.

  • -
  • allow_boundary (bool, optional) – If True, allow collapses involving boundary vertices.

  • -
  • fixed (list[int], optional) – A list of identifiers of vertices that should stay fixed.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge.

+
+
tfloat, optional

Determines where to collapse to. +If t == 0.0 collapse to start of the edge. +If t == 1.0 collapse to end of the edge. +If 0.0 < t < 1.0, collapse to a point between start and end of the edge.

+
+
allow_boundarybool, optional

If True, allow collapses involving boundary vertices.

+
+
fixedlist[int], optional

A list of identifiers of vertices that should stay fixed.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If the edge is not part of the mesh.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.html new file mode 100644 index 000000000..ca132edde --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormDiagram.compute_aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.compute_aabb

+
+
+FormDiagram.compute_aabb()
+

Compute the axis-aligned bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.html new file mode 100644 index 000000000..6e1fed4d4 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormDiagram.compute_obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.compute_obb

+
+
+FormDiagram.compute_obb()
+

Compute the oriented bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.html new file mode 100644 index 000000000..e9505114d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + FormDiagram.connected_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.connected_faces

+
+
+FormDiagram.connected_faces()
+

Find groups of connected faces.

+
+
Returns:
+
+
list[list[int]]

Groups of connected faces.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.html new file mode 100644 index 000000000..828b84f7c --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + FormDiagram.connected_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.connected_vertices

+
+
+FormDiagram.connected_vertices()
+

Find groups of connected vertices.

+
+
Returns:
+
+
list[list[int]]

Groups of connected vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.html new file mode 100644 index 000000000..3604002dc --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.connectivity_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.connectivity_matrix

+
+
+FormDiagram.connectivity_matrix(rtype='array')
+

Compute the connectivity matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The connectivity matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.constrained.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.constrained.html index 929f507bd..09591c20a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.constrained.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.constrained.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.constrained — COMPAS AGS + - compas_ags - FormDiagram.constrained + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.constraints.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.constraints.html index 476a5637e..0eebc7a95 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.constraints.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.constraints.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.constraints — COMPAS AGS + - compas_ags - FormDiagram.constraints + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.copy.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.copy.html index ed3452fdb..9b92fa049 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.copy.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.copy.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + FormDiagram.copy — COMPAS AGS + - compas_ags - FormDiagram.copy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.copy

FormDiagram.copy(cls=None)

Make an independent copy of the data object.

-
+
Parameters:
-

cls (Type[Data], optional) – The type of data object to return. +

+
clsType[compas.data.Data], optional

The type of data object to return. Defaults to the type of the current data object.

+
+
Returns:
-

Data – An independent copy of this object.

+
+
compas.data.Data

An independent copy of this object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.html index 00376ea10..eedfc2392 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + FormDiagram.cull_vertices — COMPAS AGS + - compas_ags - FormDiagram.cull_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.html new file mode 100644 index 000000000..310930c71 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.degree_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.degree_matrix

+
+
+FormDiagram.degree_matrix(rtype='array')
+

Compute the degree matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The degree matrix.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_face.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_face.html index ec13cb0d9..e5b6a9a34 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_face.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.delete_face — COMPAS AGS + - compas_ags - FormDiagram.delete_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.delete_face

@@ -105,12 +568,24 @@

FormDiagram.delete_face

Delete a face from the mesh object.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

FormDiagram.delete_face

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.html index 062ee84b4..037906acb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.delete_vertex — COMPAS AGS + - compas_ags - FormDiagram.delete_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.delete_vertex

@@ -105,12 +568,24 @@

FormDiagram.delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

None

+
+
None
+
+

Notes

In some cases, disconnected vertices can remain after application of this method. To remove these vertices as well, combine this method with vertex @@ -119,210 +594,81 @@

FormDiagram.delete_vertex

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.html index 690ae86c7..46265fd02 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edge_attribute — COMPAS AGS + - compas_ags - FormDiagram.edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_attribute

@@ -105,228 +568,117 @@

FormDiagram.edge_attribute

Get or set an attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge as a pair of vertex identifiers.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
+
+
edgetuple[int, int]

The identifier of the edge as a pair of vertex identifiers.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.html index a4adeac50..16dab0b7e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edge_attributes — COMPAS AGS + - compas_ags - FormDiagram.edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_attributes

@@ -105,231 +568,119 @@

FormDiagram.edge_attributes

Get or set multiple attributes of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the edge.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the edge. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.html index e1296a7f2..ce373e7ed 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.html @@ -1,332 +1,667 @@ + + - - + + + + + + + + FormDiagram.edge_coordinates — COMPAS AGS + - compas_ags - FormDiagram.edge_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_coordinates

-FormDiagram.edge_coordinates(u, v, axes='xyz')
+FormDiagram.edge_coordinates(edge, axes='xyz')

Return the coordinates of the start and end point of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • axes (str, optional) – The axes along which the coordinates should be included.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
axesstr, optional

The axes along which the coordinates should be included.

+
+
Returns:
-

    -
  • list[float] – The coordinates of the start point.

  • -
  • list[float] – The coordinates of the end point.

  • -
-

+
+
tuple(point, point)

The coordinates of the start point. +The coordinates of the end point.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.html index b741a8004..128717531 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_direction.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.edge_direction — COMPAS AGS + - compas_ags - FormDiagram.edge_direction + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_direction

-FormDiagram.edge_direction(u, v)
+FormDiagram.edge_direction(edge)

Return the direction vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The direction vector of the edge.

+
+
compas.geometry.Vector

The direction vector of the edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_end.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_end.html new file mode 100644 index 000000000..fd1b8a8c8 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_end.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.edge_end — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.edge_end

+
+
+FormDiagram.edge_end(edge)
+

Return the point at the end of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the end.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.html index 820812478..9c0c98fc3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_faces.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + FormDiagram.edge_faces — COMPAS AGS + - compas_ags - FormDiagram.edge_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_faces

-FormDiagram.edge_faces(u, v)
+FormDiagram.edge_faces(edge)

Find the two faces adjacent to an edge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

tuple[int, int] – The identifiers of the adjacent faces. +

+
tuple[int, int]

The identifiers of the adjacent faces. If the edge is on the boundary, one of the identifiers is None.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_force.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_force.html index ab04ceb53..c05af29f1 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_force.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_force.html @@ -1,330 +1,669 @@ + + - - + + + + + + + + FormDiagram.edge_force — COMPAS AGS + - compas_ags - FormDiagram.edge_force + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_force

-FormDiagram.edge_force(edge, force=None)[source]
+FormDiagram.edge_force(edge, force=None)

Get or set the force in an edge.

Parameters:
-
    -
  • edge (int or tuple) – The identifier of the edge. -This can be the index in the edge list or a tuple of vertices.

  • -
  • force (float, optional) – If no value is given, the current force value will be returned. -Otherwise the stored value is updated.

  • -
+
+
edgeint or tuple

The identifier of the edge. +This can be the index in the edge list or a tuple of vertices.

+
+
forcefloat, optional

If no value is given, the current force value will be returned. +Otherwise the stored value is updated.

+
+
Returns:
-

float or None – The current force in the edge if no new value is given. +

+
float or None

The current force in the edge if no new value is given. Otherwise, nothing.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.html index 93bf42ec8..8abfdc474 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.html @@ -1,330 +1,669 @@ + + - - + + + + + + + + FormDiagram.edge_forcedensity — COMPAS AGS + - compas_ags - FormDiagram.edge_forcedensity + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_forcedensity

-FormDiagram.edge_forcedensity(edge, q=None)[source]
+FormDiagram.edge_forcedensity(edge, q=None)

Get or set the forcedensity in an edge.

Parameters:
-
    -
  • edge (int or tuple) – The identifier of the edge. -This can be the index in the edge list or a tuple of vertices.

  • -
  • q (float, optional) – If no new value is given, the current forcedensity value will be returned. -Otherwise the stored value is updated with the provided one.

  • -
+
+
edgeint or tuple

The identifier of the edge. +This can be the index in the edge list or a tuple of vertices.

+
+
qfloat, optional

If no new value is given, the current forcedensity value will be returned. +Otherwise the stored value is updated with the provided one.

+
+
Returns:
-

float or None – The current forcedensity in the edge if no new value is given. +

+
float or None

The current forcedensity in the edge if no new value is given. Otherwise, nothing.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_index.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_index.html index 7cd692d15..89625abdf 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_index.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_index.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.edge_index — COMPAS AGS + - compas_ags - FormDiagram.edge_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_length.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_length.html index bfb3f7d0b..9e88e5c19 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_length.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_length.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.edge_length — COMPAS AGS + - compas_ags - FormDiagram.edge_length + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_length

-FormDiagram.edge_length(u, v)
+FormDiagram.edge_length(edge)

Return the length of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

float – The length of the edge.

+
+
float

The length of the edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_line.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_line.html new file mode 100644 index 000000000..2ddc9d16e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_line.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.edge_line — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.edge_line

+
+
+FormDiagram.edge_line(edge)
+

Return the line of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Line

The line of the edge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.html index 3f7d3647b..bfd597285 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edge_loop — COMPAS AGS + - compas_ags - FormDiagram.edge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_loop

@@ -105,220 +568,97 @@

FormDiagram.edge_loop

Find all edges on the same loop as a given edge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.html index 9b3b710e8..d0796a99e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.edge_midpoint — COMPAS AGS + - compas_ags - FormDiagram.edge_midpoint + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_point.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_point.html index cfe13baa8..c918f12db 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_point.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_point.html @@ -1,330 +1,668 @@ + + - - + + + + + + + + FormDiagram.edge_point — COMPAS AGS + - compas_ags - FormDiagram.edge_point + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_point

-FormDiagram.edge_point(u, v, t=0.5)
-

Return the location of a point along an edge.

+FormDiagram.edge_point(edge, t=0.5) +

Return a point along an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
  • t (float, optional) – The location of the point on the edge. +

    +
    edgetuple(int, int)

    The identifier of the edge.

    +
    +
    tfloat, optional

    The location of the point on the edge. If the value of t is outside the range 0-1, the point will -lie in the direction of the edge, but not on the edge vector.

  • -
+lie in the direction of the edge, but not on the edge vector.

+
+
Returns:
-

list[float] – The XYZ coordinates of the point.

+
+
compas.geometry.Point

The point at parameter t.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.html index b97283362..65662e5cf 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edge_sample — COMPAS AGS + - compas_ags - FormDiagram.edge_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_sample

@@ -105,220 +568,103 @@

FormDiagram.edge_sample

A random sample of the edges.

Parameters:
-

size (int, optional) – The number of edges in the random sample.

+
+
sizeint, optional

The number of edges in the random sample.

+
+
Returns:
-

list[tuple[int, int]] – The identifiers of the edges.

+
+
list[tuple[int, int]]

The identifiers of the edges.

+
+
+
+

See also

+
+
vertex_sample(), face_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_start.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_start.html new file mode 100644 index 000000000..d08c986b9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_start.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.edge_start — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.edge_start

+
+
+FormDiagram.edge_start(edge)
+

Return the point at the start of an edge.

+
+
Parameters:
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point at the start.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.html index ae422d7b3..e8b5fed98 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edge_strip — COMPAS AGS + - compas_ags - FormDiagram.edge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_strip

@@ -105,224 +568,100 @@

FormDiagram.edge_strip

Find all edges on the same strip as a given edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The identifier of the starting edge.

  • -
  • return_faces (bool, optional) – Return the faces on the strip in addition to the edges.

  • -
+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
return_facesbool, optional

Return the faces on the strip in addition to the edges.

+
+
Returns:
-

list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]] – If return_faces is False, the edges on the same strip as the given edge. +

+
list[tuple[int, int]] | tuple[list[tuple[int, int]], list[int]]

If return_faces is False, the edges on the same strip as the given edge. If return_faces is False, the edges on the same strip and the corresponding faces.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.html index 20a43c6af..bae04ef9c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edge_vector.html @@ -1,327 +1,663 @@ + + - - + + + + + + + + FormDiagram.edge_vector — COMPAS AGS + - compas_ags - FormDiagram.edge_vector + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edge_vector

-FormDiagram.edge_vector(u, v)
+FormDiagram.edge_vector(edge)

Return the vector of an edge.

Parameters:
-
    -
  • u (int) – The key of the start vertex.

  • -
  • v (int) – The key of the end vertex.

  • -
+
+
edgetuple(int, int)

The identifier of the edge.

+
+
Returns:
-

list[float] – The vector from u to v.

+
+
compas.geometry.Vector
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges.html index 12ed15b72..6ca530571 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + FormDiagram.edges — COMPAS AGS + - compas_ags - FormDiagram.edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edges

-FormDiagram.edges(data=False)[source]
+FormDiagram.edges(data=False)

Edge iterator automatically discarding mesh edges that are not relevant in AGS.

Parameters:
-

data (bool, optional) – If True, yield the data attributes of the edges together with their identifiers.

+
+
databool, optional

If True, yield the data attributes of the edges together with their identifiers.

+
+
Yields:
-

tuple – If data is False, the tuple of vertices identifying the edge. +

+
tuple

If data is False, the tuple of vertices identifying the edge. Otherwise, a tuple with the pair of vertices and an attribute dict.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.html index f47cba112..c69ee523c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edges_attribute — COMPAS AGS + - compas_ags - FormDiagram.edges_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edges_attribute

@@ -105,229 +568,117 @@

FormDiagram.edges_attribute

Get or set an attribute of multiple edges.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per edge of the requested attribute, +

+
list[Any] | None

A list containing the value per edge of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.html index b413a66db..7990958ec 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edges_attributes — COMPAS AGS + - compas_ags - FormDiagram.edges_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edges_attributes

@@ -105,233 +568,121 @@

FormDiagram.edges_attributes

Get or set multiple attributes of multiple edges.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[tuple[int, int]], optional) – A list of edge identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[tuple[int, int]], optional

A list of edge identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per edge an attribute dict with all attributes (default + custom) of the edge. If the parameter names is not empty, a list containing per edge a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.html index 45728245b..5806fc5a8 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.edges_on_boundaries — COMPAS AGS + - compas_ags - FormDiagram.edges_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.html index 8ed0ea8b6..340e6361d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.edges_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.edges_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where.html index fa83bb02b..709820496 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edges_where — COMPAS AGS + - compas_ags - FormDiagram.edges_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edges_where

@@ -105,227 +568,111 @@

FormDiagram.edges_where

Get edges for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.html index 0189446d0..84726c337 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.edges_where_predicate — COMPAS AGS + - compas_ags - FormDiagram.edges_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.edges_where_predicate

@@ -105,227 +568,110 @@

FormDiagram.edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 3 parameters: the identifier of the first vertex, the identifier of the second vertex, and the edge attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition ot the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition ot the vertex identifiers.

+
+
Yields:
-

tuple[int, int] | tuple[tuple[int, int], dict[str, Any]] – If data is False, the next edge as a (u, v) tuple. +

+
tuple[int, int] | tuple[tuple[int, int], dict[str, Any]]

If data is False, the next edge as a (u, v) tuple. If data is True, the next edge as a (u, v, data) tuple.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.euler.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.euler.html index 374dec8b5..edb6f1539 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.euler.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.euler.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormDiagram.euler — COMPAS AGS + - compas_ags - FormDiagram.euler + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.exploded.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.exploded.html new file mode 100644 index 000000000..db58417b2 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.exploded.html @@ -0,0 +1,658 @@ + + + + + + + + + + + + FormDiagram.exploded — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.exploded

+
+
+FormDiagram.exploded()
+

Explode the mesh into its connected components.

+
+
Returns:
+
+
list[compas.datastructures.Mesh]

The list of the meshes from the exploded mesh parts.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.html index cff412674..eb79879dd 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_adjacency_halfedge — COMPAS AGS + - compas_ags - FormDiagram.face_adjacency_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_adjacency_halfedge

@@ -105,16 +568,21 @@

FormDiagram.face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

tuple[int, int] | None – The half-edge separating face 1 from face 2, +

+
tuple[int, int] | None

The half-edge separating face 1 from face 2, or None, if the faces are not adjacent.

+
+

Notes

For use in form-finding algorithms, that rely on form-force duality information, further checks relating to the orientation of the corresponding are required.

@@ -122,210 +590,81 @@

FormDiagram.face_adjacency_halfedge

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.html index 365d3a1d0..6d375fa98 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_adjacency_vertices — COMPAS AGS + - compas_ags - FormDiagram.face_adjacency_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_adjacency_vertices

@@ -105,224 +568,100 @@

FormDiagram.face_adjacency_vertices

Find all vertices over which two faces are adjacent.

Parameters:
-
    -
  • f1 (int) – The identifier of the first face.

  • -
  • f2 (int) – The identifier of the second face.

  • -
+
+
f1int

The identifier of the first face.

+
+
f2int

The identifier of the second face.

+
+
Returns:
-

list[int] | None – The vertices separating face 1 from face 2, +

+
list[int] | None

The vertices separating face 1 from face 2, or None, if the faces are not adjacent.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_area.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_area.html index eda87edb1..d31763800 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_area.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_area — COMPAS AGS + - compas_ags - FormDiagram.face_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_area

@@ -105,220 +568,97 @@

FormDiagram.face_area

Compute the area of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

float – The area of the face.

+
+
float

The area of the face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.html index 70784fcfe..8e829eeb4 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_aspect_ratio — COMPAS AGS + - compas_ags - FormDiagram.face_aspect_ratio + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_aspect_ratio

@@ -105,10 +568,16 @@

FormDiagram.face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The aspect ratio.

+
+
float

The aspect ratio.

+
+

References

@@ -119,210 +588,81 @@

FormDiagram.face_aspect_ratio

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.html index c2f3ddc23..2c6876611 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_attribute — COMPAS AGS + - compas_ags - FormDiagram.face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_attribute

@@ -105,227 +568,116 @@

FormDiagram.face_attribute

Get or set an attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.html index b7ca3f241..a54c30f34 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_attributes — COMPAS AGS + - compas_ags - FormDiagram.face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_attributes

@@ -105,231 +568,119 @@

FormDiagram.face_attributes

Get or set multiple attributes of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the face.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the face. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_center.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_center.html index 498f8d9d2..6ac1120c5 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_center.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_center.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + FormDiagram.face_center — COMPAS AGS + - compas_ags - FormDiagram.face_center + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_center

FormDiagram.face_center(fkey)
-

Compute the location of the center of mass of a face.

+

Compute the point at the center of mass of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the center of mass.

+
+
compas.geometry.Point

The point at the center of mass.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.html index 5b49121b2..25c1551e2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_centroid.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + FormDiagram.face_centroid — COMPAS AGS + - compas_ags - FormDiagram.face_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_centroid

FormDiagram.face_centroid(fkey)
-

Compute the location of the centroid of a face.

+

Compute the point at the centroid of a face.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The point at the centroid.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_circle.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_circle.html new file mode 100644 index 000000000..da7702e53 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_circle.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.face_circle — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.face_circle

+
+
+FormDiagram.face_circle(face)
+

The circle of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Circle

The circle of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.html index 66f840a94..60589336d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_coordinates — COMPAS AGS + - compas_ags - FormDiagram.face_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_coordinates

@@ -105,224 +568,100 @@

FormDiagram.face_coordinates

Compute the coordinates of the vertices of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
fkeyint

The identifier of the face.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[list[float]] – The coordinates of the vertices of the face.

+
+
list[list[float]]

The coordinates of the vertices of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_corners.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_corners.html index cf12272ef..145a59a07 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_corners.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_corners.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_corners — COMPAS AGS + - compas_ags - FormDiagram.face_corners + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_corners

@@ -105,220 +568,97 @@

FormDiagram.face_corners

Return triplets of face vertices forming the corners of the face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The corners of the face in the form of a list of vertex triplets.

+
+
list[int]

The corners of the face in the form of a list of vertex triplets.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.html index 5aebfcde5..a28b0e0d6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_curvature — COMPAS AGS + - compas_ags - FormDiagram.face_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_curvature

@@ -108,220 +571,97 @@

FormDiagram.face_curvature

the face vertices to the face centroid.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_degree.html index b3d444d1e..0f7d78c60 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_degree — COMPAS AGS + - compas_ags - FormDiagram.face_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_degree

@@ -105,220 +568,97 @@

FormDiagram.face_degree

Count the neighbors of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

int – The count.

+
+
int

The count.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.html index ef06569f1..beb70cc90 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_flatness.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_flatness — COMPAS AGS + + - compas_ags - FormDiagram.face_flatness + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_flatness

@@ -105,231 +568,113 @@

FormDiagram.face_flatness

Compute the flatness of the mesh face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • maxdev (float, optional) – A maximum value for the allowed deviation from flatness.

  • -
+
+
fkeyint

The identifier of the face.

+
+
maxdevfloat, optional

A maximum value for the allowed deviation from flatness.

+
+
Returns:
-

float – The flatness.

+
+
float

The flatness.

+
+
+
+
Raises:
+
+
Exception

If the face has more than 4 vertices.

+
+
-

Notes

-

Flatness is computed as the ratio of the distance between the diagonals -of the face to the average edge length. A practical limit on this value -realted to manufacturing is 0.02 (2%).

Warning

This method only makes sense for quadrilateral faces.

+

Notes

+

Flatness is computed as the ratio of the distance between the diagonals +of the face to the average edge length. A practical limit on this value +realted to manufacturing is 0.02 (2%).

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_frame.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_frame.html new file mode 100644 index 000000000..8965feb51 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_frame.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.face_frame — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.face_frame

+
+
+FormDiagram.face_frame(face)
+

The frame of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Frame

The frame of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.html index d30bf664d..24fc86882 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_halfedges — COMPAS AGS + - compas_ags - FormDiagram.face_halfedges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_halfedges

@@ -105,220 +568,97 @@

FormDiagram.face_halfedges

The halfedges of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[tuple[int, int]] – The halfedges of a face.

+
+
list[tuple[int, int]]

The halfedges of a face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.html new file mode 100644 index 000000000..b993b3abd --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.html @@ -0,0 +1,695 @@ + + + + + + + + + + + + FormDiagram.face_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.face_matrix

+
+
+FormDiagram.face_matrix(rtype='array')
+

Compute the face matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The face matrix.

+
+
+
+
+

Notes

+

The face matrix represents the relationship between faces and vertices. +Each row of the matrix represents a face. Each column represents a vertex. +The matrix is filled with zeros except where a relationship between a vertex +and a face exist.

+
+\[\begin{split}F_{ij} = +\begin{cases} + 1 & \text{if vertex j is part of face i} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

The face matrix can for example be used to compute the centroids of all +faces of a mesh.

+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> F = mesh.face_matrix()
+>>> type(F)
+<class 'numpy.ndarray'>
+
+
+
>>> from numpy import allclose
+>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> F = mesh.face_matrix(mesh, rtype='csr')
+>>> c1 = F.dot(xyz) / F.sum(axis=1)
+>>> c2 = [mesh.face_centroid(fkey) for fkey in mesh.faces()]
+>>> allclose(c1, c2)
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.html index dad22d354..e0f445d09 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.face_max_degree — COMPAS AGS + - compas_ags - FormDiagram.face_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.html index 1a165fc22..9a72167ab 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.face_min_degree — COMPAS AGS + - compas_ags - FormDiagram.face_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.html index 63f2acf55..14eae4604 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_neighborhood — COMPAS AGS + - compas_ags - FormDiagram.face_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_neighborhood

@@ -105,223 +568,99 @@

FormDiagram.face_neighborhood

Return the faces in the neighborhood of a face.

Parameters:
-
    -
  • key (int) – The identifier of the face.

  • -
  • ring (int, optional) – The size of the neighborhood.

  • -
+
+
keyint

The identifier of the face.

+
+
ringint, optional

The size of the neighborhood.

+
+
Returns:
-

list[int] – A list of face identifiers.

+
+
list[int]

A list of face identifiers.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.html index 4ee0dd385..64c0c8253 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_neighbors — COMPAS AGS + - compas_ags - FormDiagram.face_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_neighbors

@@ -105,220 +568,97 @@

FormDiagram.face_neighbors

Return the neighbors of a face across its edges.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – The identifiers of the neighboring faces.

+
+
list[int]

The identifiers of the neighboring faces.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_normal.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_normal.html index af6a7b0ec..1549f31a7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_normal.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_normal — COMPAS AGS + - compas_ags - FormDiagram.face_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_normal

@@ -105,223 +568,98 @@

FormDiagram.face_normal

Compute the normal of a face.

Parameters:
-
    -
  • fkey (int) – The identifier of the face.

  • -
  • unitized (bool, optional) – If True, the vector is unitized.

  • -
+
+
fkeyint

The identifier of the face.

+
+
unitizedbool, optional

If True, the vector is unitized.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_plane.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_plane.html index c29a4fe05..7a774004d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_plane.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_plane.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_plane — COMPAS AGS + - compas_ags - FormDiagram.face_plane + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_plane

@@ -105,224 +568,97 @@

FormDiagram.face_plane

A plane defined by the centroid and the normal of the face.

Parameters:
-

face (int) – The face identifier.

+
+
faceint

The face identifier.

+
+
Returns:
-

    -
  • list[float] – The base point of the plane.

  • -
  • list[float] – The normal vector of the plane.

  • -
-

+
+
compas.geometry.Plane

The plane of the face.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_points.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_points.html new file mode 100644 index 000000000..6fb81a170 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.face_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.face_points

+
+
+FormDiagram.face_points(fkey)
+

Compute the points of the vertices of a face.

+
+
Parameters:
+
+
fkeyint

The identifier of the face.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.html new file mode 100644 index 000000000..000b080f0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.face_polygon — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.face_polygon

+
+
+FormDiagram.face_polygon(face)
+

The polygon of a face.

+
+
Parameters:
+
+
faceint

The face identifier.

+
+
+
+
Returns:
+
+
compas.geometry.Polygon

The polygon of the face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_sample.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_sample.html index b5469b912..56446790e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_sample.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_sample — COMPAS AGS + - compas_ags - FormDiagram.face_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_sample

@@ -105,220 +568,103 @@

FormDiagram.face_sample

A random sample of the faces.

Parameters:
-

size (int, optional) – The number of faces in the random sample.

+
+
sizeint, optional

The number of faces in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the faces.

+
+
list[int]

The identifiers of the faces.

+
+
+
+

See also

+
+
vertex_sample(), edge_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.html index f1495f5b0..98fd01382 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_skewness.html @@ -1,114 +1,583 @@ + + - - + + + + + + + + FormDiagram.face_skewness — COMPAS AGS + - compas_ags - FormDiagram.face_skewness + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_skewness

FormDiagram.face_skewness(fkey)
-

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

+

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The skewness.

+
+
float

The skewness.

+
+

References

@@ -119,210 +588,81 @@

FormDiagram.face_skewness

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.html index 2bee937cd..ebab32a8e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_vertex_after — COMPAS AGS + - compas_ags - FormDiagram.face_vertex_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_vertex_after

@@ -105,228 +568,108 @@

FormDiagram.face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.html index 2a2d554b4..3d80deb51 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_vertex_ancestor — COMPAS AGS + - compas_ags - FormDiagram.face_vertex_ancestor + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_vertex_ancestor

@@ -105,228 +568,108 @@

FormDiagram.face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.html index 20dd1fe1c..30df246cb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_vertex_before — COMPAS AGS + - compas_ags - FormDiagram.face_vertex_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_vertex_before

@@ -105,228 +568,108 @@

FormDiagram.face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex ancestor. -Default is 1, meaning the previous vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex ancestor. +Default is 1, meaning the previous vertex.

+
+
Returns:
-

int – The identifier of the vertex before the given vertex in the face cycle.

+
+
int

The identifier of the vertex before the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.html index 8ed4ba090..5fdc9e4a2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_vertex_descendant — COMPAS AGS + - compas_ags - FormDiagram.face_vertex_descendant + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_vertex_descendant

@@ -105,228 +568,108 @@

FormDiagram.face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

Parameters:
-
    -
  • fkey (int) – Identifier of the face.

  • -
  • key (int) – The identifier of the vertex.

  • -
  • n (int, optional) – The index of the vertex descendant. -Default is 1, meaning the next vertex.

  • -
+
+
fkeyint

Identifier of the face.

+
+
keyint

The identifier of the vertex.

+
+
nint, optional

The index of the vertex descendant. +Default is 1, meaning the next vertex.

+
+
Returns:
-

int – The identifier of the vertex after the given vertex in the face cycle.

+
+
int

The identifier of the vertex after the given vertex in the face cycle.

+
+
Raises:
-

ValueError – If the vertex is not part of the face.

+
+
ValueError

If the vertex is not part of the face.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.html index a5cfca493..0c6f9624c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.face_vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.face_vertices — COMPAS AGS + - compas_ags - FormDiagram.face_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.face_vertices

@@ -105,220 +568,97 @@

FormDiagram.face_vertices

The vertices of a face.

Parameters:
-

fkey (int) – Identifier of the face.

+
+
fkeyint

Identifier of the face.

+
+
Returns:
-

list[int] – Ordered vertex identifiers.

+
+
list[int]

Ordered vertex identifiers.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces.html index 10c46a378..4e6bcfd3a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.faces — COMPAS AGS + - compas_ags - FormDiagram.faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.faces

@@ -105,221 +568,105 @@

FormDiagram.faces

Iterate over the faces of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face identifier. If data is True, the next face as a (fkey, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.html index d06a4e06b..8b7444680 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.faces_attribute — COMPAS AGS + - compas_ags - FormDiagram.faces_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.faces_attribute

@@ -105,229 +568,117 @@

FormDiagram.faces_attribute

Get or set an attribute of multiple faces.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per face of the requested attribute, +

+
list[Any] | None

A list containing the value per face of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.html index aabdfde2f..58fc16e66 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.faces_attributes — COMPAS AGS + - compas_ags - FormDiagram.faces_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.faces_attributes

@@ -105,233 +568,121 @@

FormDiagram.faces_attributes

Get or set multiple attributes of multiple faces.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute. -Default is None.

  • -
  • values (list[Any], optional) – The values of the attributes. -Default is None.

  • -
  • keys (list[int], optional) – A list of face identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute. +Default is None.

+
+
valueslist[Any], optional

The values of the attributes. +Default is None.

+
+
keyslist[int], optional

A list of face identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, a list containing per face an attribute dict with all attributes (default + custom) of the face. If the parameter names is not empty, a list containing per face a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the faces does not exist.

+
+
KeyError

If any of the faces does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.html index b5223964d..cfdd5a741 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.faces_on_boundaries — COMPAS AGS + - compas_ags - FormDiagram.faces_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.html index 8391d2810..49b1aba44 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.faces_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.faces_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where.html index 1f388d988..2b71085cd 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.faces_where — COMPAS AGS + - compas_ags - FormDiagram.faces_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.faces_where

@@ -105,227 +568,111 @@

FormDiagram.faces_where

Get faces for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to face identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the face attributes in addition to face identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.html index ef470cbf5..d8211afd6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.faces_where_predicate — COMPAS AGS + - compas_ags - FormDiagram.faces_where_predicate + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.faces_where_predicate

@@ -105,226 +568,109 @@

FormDiagram.faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the face identifier and the face attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the face attributes in addition to the face identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the face attributes in addition to the face identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next face that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next face that matches the condition. If data is True, the next face and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.fixed.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.fixed.html index 27c2095f8..26f5fee05 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.fixed.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.fixed.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.fixed — COMPAS AGS + - compas_ags - FormDiagram.fixed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.html index c66be7004..51fa0e2d4 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.html @@ -1,114 +1,577 @@ + + - - + + + + + + + + FormDiagram.flip_cycles — COMPAS AGS + - compas_ags - FormDiagram.flip_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.flip_cycles

FormDiagram.flip_cycles()

Flip the cycle directions of all faces.

-
Parameters:
-

mesh (Mesh) – A mesh object.

+
Returns:
+
+
None

The mesh is modified in place.

-
Returns:
-

None – The mesh is modified in place.

+

Notes

@@ -118,210 +581,81 @@

FormDiagram.flip_cycles

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_graph.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_graph.html index 1661e7505..578797533 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_graph.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_graph.html @@ -1,327 +1,665 @@ + + - - + + + + + + + + FormDiagram.from_graph — COMPAS AGS + - compas_ags - FormDiagram.from_graph + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_graph

-classmethod FormDiagram.from_graph(graph)[source]
+classmethod FormDiagram.from_graph(graph)

Construct a form diagram from a form graph.

This constructor converts the form graph into a mesh by finding the cycles of its planar embedding. Note that tt doesn’t check if the graph actually is a planar embedding. The outside face of the mesh is automatically split into smaller faces at the leaves.

-
+
Parameters:
-

graph (compas_ags.diagrams.FormGraph)

+
+
graphcompas_ags.diagrams.FormGraph
+
Returns:
-

compas_ags.diagrams.FormDiagram

+
+
compas_ags.diagrams.FormDiagram
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_json.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_json.html index 4f8dd3c4c..2834a96df 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_json.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_json.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormDiagram.from_json — COMPAS AGS + - compas_ags - FormDiagram.from_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_json

classmethod FormDiagram.from_json(filepath)
-

Construct an object from serialized data contained in a JSON file.

+

Construct an object of this type from a JSON file.

Parameters:
-

filepath (path string | file-like object | URL string) – The path, file or URL to the file for serialization.

+
+
filepathstr

The path to the JSON file.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the file has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the file is not a compas.data.Data.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.html index 182febacb..dbc3118b3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormDiagram.from_jsonstring — COMPAS AGS + - compas_ags - FormDiagram.from_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_jsonstring

classmethod FormDiagram.from_jsonstring(string)
-

Construct an object from serialized data contained in a JSON string.

+

Construct an object of this type from a JSON string.

Parameters:
-

string (str) – The object as a JSON string.

+
+
stringstr

The JSON string.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the string has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the string is not a compas.data.Data.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_lines.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_lines.html index cade15540..3c001cbac 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_lines.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_lines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_lines — COMPAS AGS + - compas_ags - FormDiagram.from_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_lines

@@ -105,227 +568,104 @@

FormDiagram.from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

Parameters:
-
    -
  • lines (list[tuple[list[float], list[float]]]) – A list of pairs of point coordinates.

  • -
  • delete_boundary_face (bool, optional) – The algorithm that finds the faces formed by the connected lines +

    +
    lineslist[tuple[list[float], list[float]]]

    A list of pairs of point coordinates.

    +
    +
    delete_boundary_facebool, optional

    The algorithm that finds the faces formed by the connected lines first finds the face on the outside. In most cases this face is not expected -to be there. Therefore, there is the option to have it automatically deleted.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to the value of compas.PRECISION.

  • -
+to be there. Therefore, there is the option to have it automatically deleted.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.html index a71872426..cfb7d754e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.html @@ -1,331 +1,672 @@ + + - - + + + + + + + + FormDiagram.from_meshgrid — COMPAS AGS + - compas_ags - FormDiagram.from_meshgrid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_meshgrid

classmethod FormDiagram.from_meshgrid(dx, nx, dy=None, ny=None)
-

Create a mesh from faces and vertices on a regular grid.

+

Construct a mesh from faces and vertices on a regular grid.

Parameters:
-
    -
  • dx (float) – The size of the grid in the X direction.

  • -
  • nx (int) – The number of faces in the X direction.

  • -
  • dy (float, optional) – The size of the grid in the Y direction. -Defaults to the value of dx.

  • -
  • ny (int, optional) – The number of faces in the Y direction. -Defaults to the value of nx.

  • -
+
+
dxfloat

The size of the grid in the X direction.

+
+
nxint

The number of faces in the X direction.

+
+
dyfloat, optional

The size of the grid in the Y direction. +Defaults to the value of dx.

+
+
nyint, optional

The number of faces in the Y direction. +Defaults to the value of nx.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_obj.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_obj.html index 908a1f982..d98ea864f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_obj.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_obj — COMPAS AGS + - compas_ags - FormDiagram.from_obj + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_obj

@@ -105,13 +568,18 @@

FormDiagram.from_obj

Construct a mesh object from the data described in an OBJ file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+

Notes

@@ -128,210 +596,81 @@

FormDiagram.from_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_off.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_off.html index 1ee8fc505..0396ca495 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_off.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_off — COMPAS AGS + - compas_ags - FormDiagram.from_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_off

@@ -105,220 +568,97 @@

FormDiagram.from_off

Construct a mesh object from the data described in a OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_ply.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_ply.html index 22d7ee187..7a3ed440c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_ply.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_ply — COMPAS AGS + - compas_ags - FormDiagram.from_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_ply

@@ -105,220 +568,97 @@

FormDiagram.from_ply

Construct a mesh object from the data described in a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_points.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_points.html index c538f3d0c..1ab660331 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_points.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_points.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + FormDiagram.from_points — COMPAS AGS + - compas_ags - FormDiagram.from_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_points

-classmethod FormDiagram.from_points(points, boundary=None, holes=None)
+classmethod FormDiagram.from_points(points)

Construct a mesh from a delaunay triangulation of a set of points.

Parameters:
-

points (list[list[float]]) – XYZ coordinates of the points. +

+
pointslist[list[float]]

XYZ coordinates of the points. Z coordinates should be zero.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.html index 1c7772bcc..86f473b31 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polygons.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_polygons — COMPAS AGS + - compas_ags - FormDiagram.from_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_polygons

@@ -105,225 +568,101 @@

FormDiagram.from_polygons

Construct a mesh from a series of polygons.

Parameters:
-
    -
  • polygons (list[list[float]]) – A list of polygons, with each polygon defined as an ordered list of -XYZ coordinates of its corners.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines. -Defaults to compas.PRECISION.

  • -
+
+
polygonslist[list[float]]

A list of polygons, with each polygon defined as an ordered list of +XYZ coordinates of its corners.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.html index 6b18980a0..79f02000a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_polyhedron — COMPAS AGS + - compas_ags - FormDiagram.from_polyhedron + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_polyhedron

@@ -105,220 +568,97 @@

FormDiagram.from_polyhedron

Construct a mesh from a platonic solid.

Parameters:
-

f ({4, 6, 8, 12, 20}) – The number of faces.

+
+
f{4, 6, 8, 12, 20}

The number of faces.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.html index 961ce5f96..66e36db10 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_polylines.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_polylines — COMPAS AGS + - compas_ags - FormDiagram.from_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_polylines

@@ -110,223 +573,99 @@

FormDiagram.from_polylines

that could overlap and yield a wrong connectivity if using from_lines based on the polyline extremities only.

Parameters:
-
    -
  • boundary_polylines (list[list[float]]) – List of polylines representing boundaries as lists of vertex coordinates.

  • -
  • other_polylines (list[list[float]]) – List of the other polylines as lists of vertex coordinates.

  • -
+
+
boundary_polylineslist[list[float]]

List of polylines representing boundaries as lists of vertex coordinates.

+
+
other_polylineslist[list[float]]

List of the other polylines as lists of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_shape.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_shape.html index 75809e7d8..d8a3335c5 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_shape.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_shape.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + FormDiagram.from_shape — COMPAS AGS + - compas_ags - FormDiagram.from_shape + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_shape

classmethod FormDiagram.from_shape(shape, **kwargs)

Construct a mesh from a primitive shape.

-
+
Parameters:
-
    -
  • shape (Shape) – The input shape to generate a mesh from.

  • -
  • **kwargs (dict[str, Any], optional) – Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

  • -
+
+
shapecompas.geometry.Shape

The input shape to generate a mesh from.

+
+
**kwargsdict[str, Any], optional

Optional keyword arguments to be passed on to compas.geometry.Shape.to_vertices_and_faces().

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_stl.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_stl.html index 123f90727..504dda50a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_stl.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_stl — COMPAS AGS + - compas_ags - FormDiagram.from_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_stl

@@ -105,223 +568,99 @@

FormDiagram.from_stl

Construct a mesh object from the data described in a STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathstr

The path to the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.html index f06ec7f2e..bdd692103 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.from_vertices_and_faces — COMPAS AGS + - compas_ags - FormDiagram.from_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.from_vertices_and_faces

@@ -105,225 +568,101 @@

FormDiagram.from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

Parameters:
-
    -
  • vertices (list[list[float]] | dict[int, list[float]]) – A list of vertices, represented by their XYZ coordinates, -or a dictionary of vertex keys pointing to their XYZ coordinates.

  • -
  • faces (list[list[int]] | dict[int, list[int]]) – A list of faces, represented by a list of indices referencing the list of vertex coordinates, -or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

  • -
+
+
verticeslist[list[float]] | dict[int, list[float]]

A list of vertices, represented by their XYZ coordinates, +or a dictionary of vertex keys pointing to their XYZ coordinates.

+
+
faceslist[list[int]] | dict[int, list[int]]

A list of faces, represented by a list of indices referencing the list of vertex coordinates, +or a dictionary of face keys pointing to a list of indices referencing the list of vertex coordinates.

+
+
Returns:
-

Mesh – A mesh object.

+
+
compas.datastructures.Mesh

A mesh object.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.html index 649da0818..aba83fcfa 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.gkey_vertex — COMPAS AGS + - compas_ags - FormDiagram.gkey_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.gkey_vertex

@@ -106,221 +569,98 @@

FormDiagram.gkey_vertex

to the keys of the corresponding vertices.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[str, int] – A dictionary of geometric key-key pairs.

+
+
dict[str, int]

A dictionary of geometric key-key pairs.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.html index d3ff8be83..046bc10cf 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.halfedge_after — COMPAS AGS + - compas_ags - FormDiagram.halfedge_after + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.halfedge_after

-FormDiagram.halfedge_after(u, v)
+FormDiagram.halfedge_after(edge)

Find the halfedge after the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The next halfedge.

+
+
tuple[int, int]

The next halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.html index de9485ee5..5150622ae 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.halfedge_before — COMPAS AGS + - compas_ags - FormDiagram.halfedge_before + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.halfedge_before

-FormDiagram.halfedge_before(u, v)
+FormDiagram.halfedge_before(edge)

Find the halfedge before the given halfedge in the same face.

Parameters:
-
    -
  • u (int) – The first vertex of the halfedge.

  • -
  • v (int) – The second vertex of the halfedge.

  • -
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns:
-

tuple[int, int] – The previous halfedge.

+
+
tuple[int, int]

The previous halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.html index bb1783574..93dceb664 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.html @@ -1,331 +1,671 @@ + + - - + + + + + + + + FormDiagram.halfedge_face — COMPAS AGS + - compas_ags - FormDiagram.halfedge_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.halfedge_face

-FormDiagram.halfedge_face(u, v)
+FormDiagram.halfedge_face(edge)

Find the face corresponding to a halfedge.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

int | None – The identifier of the face corresponding to the halfedge. +

+
int | None

The identifier of the face corresponding to the halfedge. None, if the halfedge is on the outside of a boundary.

+
+
Raises:
-

KeyError – If the halfedge does not exist.

+
+
KeyError

If the halfedge does not exist.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.html index 2b353e650..f9e123cf4 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.halfedge_loop — COMPAS AGS + - compas_ags - FormDiagram.halfedge_loop + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.halfedge_loop

@@ -105,220 +568,97 @@

FormDiagram.halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same loop as the given edge.

+
+
list[tuple[int, int]]

The edges on the same loop as the given edge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.html new file mode 100644 index 000000000..e1ed37e4e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.html @@ -0,0 +1,662 @@ + + + + + + + + + + + + FormDiagram.halfedge_loop_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.halfedge_loop_vertices

+
+
+FormDiagram.halfedge_loop_vertices(edge)
+

Find all vertices on the same loop as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
Returns
+
——-
+
list[int]

The vertices on the same loop as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.html index c89789aec..9df6703af 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.halfedge_strip — COMPAS AGS + - compas_ags - FormDiagram.halfedge_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.halfedge_strip

@@ -105,220 +568,97 @@

FormDiagram.halfedge_strip

Find all edges on the same strip as a given halfedge.

Parameters:
-

edge (tuple[int, int]) – The identifier of the starting edge.

+
+
edgetuple[int, int]

The identifier of the starting edge.

+
+
Returns:
-

list[tuple[int, int]] – The edges on the same strip as the given halfedge.

+
+
list[tuple[int, int]]

The edges on the same strip as the given halfedge.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.html new file mode 100644 index 000000000..230323157 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.halfedge_strip_faces — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.halfedge_strip_faces

+
+
+FormDiagram.halfedge_strip_faces(edge)
+

Find all faces on the same strip as a given halfedge.

+
+
Parameters:
+
+
edgetuple[int, int]

The identifier of the starting halfedge.

+
+
+
+
Returns:
+
+
list[int]

The faces on the same strip as the given halfedge.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_edge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_edge.html index 00911443f..b84d94ee4 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_edge.html @@ -1,329 +1,669 @@ + + - - + + + + + + + + FormDiagram.has_edge — COMPAS AGS + + - compas_ags - FormDiagram.has_edge + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.has_edge

FormDiagram.has_edge(key)

Verify that the mesh contains a specific edge.

-
-

Warning

-

This method may produce unexpected results.

-
Parameters:
-

key (tuple[int, int]) – The identifier of the edge.

+
+
keytuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge exists. +

+
bool

True if the edge exists. False otherwise.

+
+
+
+

Warning

+

This method may produce unexpected results.

+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_face.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_face.html index f4cf804eb..1de96216d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_face.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_face.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.has_face — COMPAS AGS + - compas_ags - FormDiagram.has_face + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.has_face

@@ -105,221 +568,98 @@

FormDiagram.has_face

Verify that a face is part of the mesh.

Parameters:
-

fkey (int) – The identifier of the face.

+
+
fkeyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face exists. +

+
bool

True if the face exists. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.html index 624059661..5955673e6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.has_halfedge — COMPAS AGS + - compas_ags - FormDiagram.has_halfedge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.has_halfedge

@@ -105,221 +568,98 @@

FormDiagram.has_halfedge

Verify that a halfedge is part of the mesh.

Parameters:
-

key (tuple[int, int]) – The identifier of the halfedge.

+
+
keytuple[int, int]

The identifier of the halfedge.

+
+
Returns:
-

bool – True if the halfedge is part of the mesh. +

+
bool

True if the halfedge is part of the mesh. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.html index 3941420c2..678047579 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.has_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.has_vertex — COMPAS AGS + - compas_ags - FormDiagram.has_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.has_vertex

@@ -105,221 +568,98 @@

FormDiagram.has_vertex

Verify that a vertex is in the mesh.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is in the mesh. +

+
bool

True if the vertex is in the mesh. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.html index ea3f62f12..436eb21f8 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.html @@ -1,772 +1,1239 @@ + + - - + + + + + + + + FormDiagram — COMPAS AGS + - compas_ags - compas_ags.diagrams.FormDiagram + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
-

compas_ags.diagrams.FormDiagram

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram

-class compas_ags.diagrams.FormDiagram[source]
-

Bases: compas_ags.diagrams.diagram.Diagram

+class compas_ags.diagrams.FormDiagram +

Bases: Diagram

Mesh-based data structure for form diagrams in AGS.

-
-
-__init__()[source]
-
-

Methods

- ---- +
- - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

ToString()

Converts the instance to a string.

constrained

__init__()

constraints

add_face(vertices[, fkey, attr_dict])

edge_force

Get or set the force in an edge.

edge_forcedensity

Get or set the forcedensity in an edge.

edges

Edge iterator automatically discarding mesh edges that are not relevant in AGS.

fixed

from_graph

Construct a form diagram from a form graph.

identify_constraints

Identify constraints on the Form Diagram based on the geometry.

ind

leaf_edges

Identify the edges connecting leaf vertices to the diagram.

leaves

Identify the leaves of the form diagram.

q

xy

+

Inherited Methods

+ + + + + + + + + - + - - - - - + + - - + + - + - + - + - - + + - - + + - - + + + + + + + + - + - + - + + + + - + - + - + - + - + - - + + - - - - - + + - + - + - + + + + - - + + - - + + - + - + + + + - + - - - - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + + + + - - + + - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - - - - - - - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - - - - - - - + - - + + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + - - - - + - - - - - - - + - + - + - + - - + + - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + - - + + - - + + - + + + + - + - + - + + + + + + + - + - + - - - - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + + + + - + - - - - -

ToString

Converts the instance to a string.

aabb

Calculate the axis aligned bounding box of the mesh.

add_face

Add a face to the mesh object.

add_vertex([key, attr_dict])

add_vertex

Add a vertex to the mesh object.

area()

Calculate the total mesh area.

bounding_box()

Compute the (axis aligned) bounding box of a mesh.

adjacency_matrix

Compute the adjacency matrix of the mesh.

bounding_box_xy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

area

Calculate the total mesh area.

centroid()

centroid

Calculate the mesh centroid.

clear()

clear

Clear all the mesh data.

collapse_edge(u, v[, t, allow_boundary, fixed])

collapse_edge

Collapse an edge to its first or second vertex, or to an intermediate point.

connected_components()

Find the connected components of the mesh.

compute_aabb

Compute the axis-aligned bounding box of the datastructure.

constrained()

compute_obb

Compute the oriented bounding box of the datastructure.

constraints()

connected_faces

Find groups of connected faces.

connected_vertices

Find groups of connected vertices.

connectivity_matrix

Compute the connectivity matrix of the mesh.

copy([cls])

copy

Make an independent copy of the data object.

cull_vertices()

cull_vertices

Remove all unused vertices from the mesh object.

delete_face(fkey)

degree_matrix

Compute the degree matrix of the mesh.

delete_face

Delete a face from the mesh object.

delete_vertex(key)

delete_vertex

Delete a vertex from the mesh and everything that is attached to it.

edge_attribute(edge, name[, value])

edge_attribute

Get or set an attribute of an edge.

edge_attributes(edge[, names, values])

edge_attributes

Get or set multiple attributes of an edge.

edge_coordinates(u, v[, axes])

edge_coordinates

Return the coordinates of the start and end point of an edge.

edge_direction(u, v)

edge_direction

Return the direction vector of an edge.

edge_faces(u, v)

Find the two faces adjacent to an edge.

edge_end

Return the point at the end of an edge.

edge_force(edge[, force])

Get or set the force in an edge.

edge_forcedensity(edge[, q])

Get or set the forcedensity in an edge.

edge_faces

Find the two faces adjacent to an edge.

edge_index()

edge_index

edge_length(u, v)

edge_length

Return the length of an edge.

edge_loop(edge)

edge_line

Return the line of an edge.

edge_loop

Find all edges on the same loop as a given edge.

edge_midpoint(u, v)

Return the location of the midpoint of an edge.

edge_midpoint

Return the midpoint of an edge.

edge_point(u, v[, t])

Return the location of a point along an edge.

edge_point

Return a point along an edge.

edge_sample([size])

edge_sample

A random sample of the edges.

edge_strip(edge[, return_faces])

edge_start

Return the point at the start of an edge.

edge_strip

Find all edges on the same strip as a given edge.

edge_vector(u, v)

edge_vector

Return the vector of an edge.

edges([data])

Edge iterator automatically discarding mesh edges that are not relevant in AGS.

edges_attribute(name[, value, keys])

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes([names, values, keys])

edges_attributes

Get or set multiple attributes of multiple edges.

edges_on_boundaries()

edges_on_boundaries

Find the edges on all boundaries of the mesh.

edges_on_boundary()

edges_on_boundary

Find the edges on the longest boundary.

edges_where([conditions, data])

edges_where

Get edges for which a certain condition or set of conditions is true.

edges_where_predicate(predicate[, data])

edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

euler()

euler

Calculate the Euler characteristic.

face_adjacency()

Build a face adjacency dict.

exploded

Explode the mesh into its connected components.

face_adjacency_halfedge(f1, f2)

face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

face_adjacency_vertices(f1, f2)

face_adjacency_vertices

Find all vertices over which two faces are adjacent.

face_area(fkey)

face_area

Compute the area of a face.

face_aspect_ratio(fkey)

face_aspect_ratio

Face aspect ratio as the ratio between the lengths of the maximum and minimum face edges.

face_attribute(key, name[, value])

face_attribute

Get or set an attribute of a face.

face_attributes(key[, names, values])

face_attributes

Get or set multiple attributes of a face.

face_center(fkey)

Compute the location of the center of mass of a face.

face_center

Compute the point at the center of mass of a face.

face_centroid

Compute the point at the centroid of a face.

face_centroid(fkey)

Compute the location of the centroid of a face.

face_circle

The circle of a face.

face_coordinates(fkey[, axes])

face_coordinates

Compute the coordinates of the vertices of a face.

face_corners(fkey)

face_corners

Return triplets of face vertices forming the corners of the face.

face_curvature(fkey)

face_curvature

Dimensionless face curvature.

face_degree(fkey)

face_degree

Count the neighbors of a face.

face_flatness(fkey[, maxdev])

face_flatness

Compute the flatness of the mesh face.

face_halfedges(fkey)

face_frame

The frame of a face.

face_halfedges

The halfedges of a face.

face_max_degree()

face_matrix

Compute the face matrix of the mesh.

face_max_degree

Compute the maximum degree of all faces.

face_min_degree()

face_min_degree

Compute the minimum degree of all faces.

face_neighborhood(key[, ring])

face_neighborhood

Return the faces in the neighborhood of a face.

face_neighbors(fkey)

face_neighbors

Return the neighbors of a face across its edges.

face_normal(fkey[, unitized])

face_normal

Compute the normal of a face.

face_plane(face)

face_plane

A plane defined by the centroid and the normal of the face.

face_sample([size])

face_points

Compute the points of the vertices of a face.

face_polygon

The polygon of a face.

face_sample

A random sample of the faces.

face_skewness(fkey)

Face skewness as the maximum absolute angular deviation from the ideal polygon angle.

face_skewness

Face skewness as the maximum absolute angular deviation from the idefault_edge_attributesl polygon angle.

face_vertex_after(fkey, key[, n])

face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

face_vertex_ancestor(fkey, key[, n])

face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_before(fkey, key[, n])

face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_descendant(fkey, key[, n])

face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

face_vertices(fkey)

face_vertices

The vertices of a face.

faces([data])

faces

Iterate over the faces of the mesh.

faces_attribute(name[, value, keys])

faces_attribute

Get or set an attribute of multiple faces.

faces_attributes([names, values, keys])

faces_attributes

Get or set multiple attributes of multiple faces.

faces_on_boundaries()

faces_on_boundaries

Find the faces on all boundaries of the mesh.

faces_on_boundary()

faces_on_boundary

Find the faces on the longest boundary.

faces_where([conditions, data])

faces_where

Get faces for which a certain condition or set of conditions is true.

faces_where_predicate(predicate[, data])

faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

fixed()

flip_cycles()

flip_cycles

Flip the cycle directions of all faces.

from_data(data)

Construct an object of this type from the provided data.

from_graph(graph)

Construct a form diagram from a form graph.

from_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_json

Construct an object of this type from a JSON file.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

from_jsonstring

Construct an object of this type from a JSON string.

from_lines(lines[, delete_boundary_face, ...])

from_lines

Construct a mesh object from a list of lines described by start and end point coordinates.

from_meshgrid(dx, nx[, dy, ny])

Create a mesh from faces and vertices on a regular grid.

from_meshgrid

Construct a mesh from faces and vertices on a regular grid.

from_obj(filepath[, precision])

from_obj

Construct a mesh object from the data described in an OBJ file.

from_off(filepath)

from_off

Construct a mesh object from the data described in a OFF file.

from_ply(filepath[, precision])

from_ply

Construct a mesh object from the data described in a PLY file.

from_points(points[, boundary, holes])

from_points

Construct a mesh from a delaunay triangulation of a set of points.

from_polygons(polygons[, precision])

from_polygons

Construct a mesh from a series of polygons.

from_polyhedron(f)

from_polyhedron

Construct a mesh from a platonic solid.

from_polylines(boundary_polylines, ...)

from_polylines

Construct mesh from polylines.

from_shape(shape, **kwargs)

from_shape

Construct a mesh from a primitive shape.

from_stl(filepath[, precision])

from_stl

Construct a mesh object from the data described in a STL file.

from_vertices_and_faces(vertices, faces)

from_vertices_and_faces

Construct a mesh object from a list of vertices and faces.

genus()

Calculate the genus.

get_any_face()

Get the identifier of a random face.

get_any_vertex()

Get the identifier of a random vertex.

get_any_vertices(n[, exclude_leaves])

Get a list of identifiers of a random set of n vertices.

gkey_key([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

gkey_vertex([precision])

gkey_vertex

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding vertices.

halfedge_after(u, v)

halfedge_after

Find the halfedge after the given halfedge in the same face.

halfedge_before(u, v)

halfedge_before

Find the halfedge before the given halfedge in the same face.

halfedge_face(u, v)

halfedge_face

Find the face corresponding to a halfedge.

halfedge_loop(edge)

halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

halfedge_strip(edge)

halfedge_loop_vertices

Find all vertices on the same loop as a given halfedge.

halfedge_strip

Find all edges on the same strip as a given halfedge.

has_edge(key)

halfedge_strip_faces

Find all faces on the same strip as a given halfedge.

has_edge

Verify that the mesh contains a specific edge.

has_face(fkey)

has_face

Verify that a face is part of the mesh.

has_halfedge(key)

has_halfedge

Verify that a halfedge is part of the mesh.

has_vertex(key)

has_vertex

Verify that a vertex is in the mesh.

identify_constraints([tol])

Identify constraints on the Form Diagram based on the geometry.

ind()

index_edge()

index_edge

index_key()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

index_vertex

Returns a dictionary that maps the indices of a vertex list to the corresponding vertex identifiers.

index_vertex()

Returns a dictionary that maps the indices of a vertex list to keys in a vertex dictionary.

insert_vertex(fkey[, key, xyz, return_fkeys])

insert_vertex

Insert a vertex in the specified face.

is_closed()

is_closed

Verify that the mesh is closed.

is_connected()

is_connected

Verify that the mesh is connected.

is_edge_on_boundary(u, v)

is_edge_on_boundary

Verify that an edge is on the boundary.

is_empty()

is_empty

Verify that the mesh is empty.

is_face_on_boundary(key)

is_face_on_boundary

Verify that a face is on a boundary.

is_manifold()

is_manifold

Verify that the mesh is manifold.

is_orientable()

is_orientable

Verify that the mesh is orientable.

is_quadmesh()

is_quadmesh

Verify that the mesh consists of only quads.

is_regular()

is_regular

Verify that the mesh is regular.

is_trimesh()

is_trimesh

Verify that the mesh consists of only triangles.

is_valid()

is_valid

Verify that the mesh is valid.

is_vertex_connected(key)

is_vertex_connected

Verify that a vertex is connected.

is_vertex_on_boundary(key)

is_vertex_on_boundary

Verify that a vertex is on a boundary.

join(other)

join

Add the vertices and faces of another mesh to the current mesh.

key_gkey([precision])

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

key_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

leaf_edges()

Identify the edges connecting leaf vertices to the diagram.

laplacian_matrix

Compute the Laplacian matrix of the mesh.

leaves()

Identify the leaves of the form diagram.

merge_faces(faces)

merge_faces

Merge two faces of a mesh over their shared edge.

mesh_oriented_bounding_box_numpy()

Compute the (axis aligned) bounding box of a mesh.

mesh_oriented_bounding_box_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

normal()

normal

Calculate the average mesh normal.

number_of_edges()

number_of_edges

Count the number of edges in the mesh.

number_of_faces()

number_of_faces

Count the number of faces in the mesh.

number_of_vertices()

number_of_vertices

Count the number of vertices in the mesh.

obb_numpy()

Compute the (axis aligned) bounding box of a mesh.

obb

Calculate the oriented bounding box of the mesh.

obb_xy_numpy()

Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane.

offset

Generate an offset mesh.

q()

quads_to_triangles

Convert all quadrilateral faces to triangles by adding a diagonal edge.

quads_to_triangles([check_angles])

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

remove_duplicate_vertices

Remove all duplicate vertices and clean up any affected faces.

remove_unused_vertices()

remove_unused_vertices

Remove all unused vertices from the mesh object.

sha256([as_string])

rotate

Rotate the datastructure.

rotated

Returns a rotated copy of this geometry.

scale

Scale the datastructure.

scaled

Returns a scaled copy of this geometry.

set_vertex_point

Set the point of a vertex.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

slice_plane(plane)

slice

Slice a mesh with a plane and construct the resulting submeshes.

smooth_area([fixed, kmax, damping, ...])

smooth_area

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

smooth_centroid([fixed, kmax, damping, ...])

smooth_centroid

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

split_edge(u, v[, t, allow_boundary])

split_edge

Split and edge by inserting a vertex along its length.

split_face(fkey, u, v)

split_face

Split a face by inserting an edge between two specified vertices.

split_strip(edge)

split_strip

Split the srip of faces corresponding to a given edge.

subdivide([scheme])

subdivided

Subdivide the input mesh.

summary()

summary

Print a summary of the mesh.

to_data()

Convert an object to its native data representation.

thickened

Generate a thicknened mesh.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_json

Convert an object to its native data representation and save it to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

to_lines()

to_lines

Return the lines of the mesh as pairs of start and end point coordinates.

to_obj(filepath[, precision, unweld])

to_obj

Write the mesh to an OBJ file.

to_off(filepath, **kwargs)

to_off

Write a mesh object to an OFF file.

to_ply(filepath, **kwargs)

to_ply

Write a mesh object to a PLY file.

to_points()

to_points

Convert the mesh to a collection of points.

to_polygons()

to_polygons

Convert the mesh to a collection of polygons.

to_polylines()

to_polylines

Convert the mesh to a collection of polylines.

to_stl(filepath[, precision, binary])

to_stl

Write a mesh to an STL file.

to_vertices_and_faces([triangulated])

to_vertices_and_faces

Return the vertices and faces of a mesh.

transform(transformation)

Transform a mesh.

transform

Transform the mesh.

transform_numpy

Transform the mesh.

transformed

Returns a transformed copy of this data structure.

transformed_numpy

Returns a transformed copy of this data structure.

transformed(transformation)

Return a transformed copy of the mesh.

translate

Translate the datastructure.

unify_cycles([root])

Unify the cycle directions of all faces.

translated

Returns a translated copy of this geometry.

unset_edge_attribute(edge, name)

unify_cycles

Unify the cycles of the mesh.

unset_edge_attribute

Unset the attribute of an edge.

unset_face_attribute(key, name)

unset_face_attribute

Unset the attribute of a face.

unset_vertex_attribute(key, name)

unset_vertex_attribute

Unset the attribute of a vertex.

update_default_edge_attributes([attr_dict])

unweld_edges

Unwelds a mesh along edges.

unweld_vertices

Unweld a face of the mesh.

update_default_edge_attributes

Update the default edge attributes.

update_default_face_attributes([attr_dict])

update_default_face_attributes

Update the default face attributes.

update_default_vertex_attributes([attr_dict])

update_default_vertex_attributes

Update the default vertex attributes.

validate_data()

Validate the object's data against its data schema.

validate_json()

Validate the object's data against its json schema.

validate_data

Validate the data against the object's data schema.

vertex_area(key)

vertex_area

Compute the tributary area of a vertex.

vertex_attribute(key, name[, value])

vertex_attribute

Get or set an attribute of a vertex.

vertex_attributes(key[, names, values])

vertex_attributes

Get or set multiple attributes of a vertex.

vertex_coordinates(key[, axes])

vertex_coordinates

Return the coordinates of a vertex.

vertex_curvature(vkey)

vertex_curvature

Dimensionless vertex curvature.

vertex_degree(key)

vertex_degree

Count the neighbors of a vertex.

vertex_edges(vertex)

vertex_edges

Find all edges connected to a given vertex.

vertex_faces(key[, ordered, include_none])

vertex_faces

The faces connected to a vertex.

vertex_gkey([precision])

vertex_gkey

Returns a dictionary that maps vertex dictionary keys to the corresponding geometric key up to a certain precision.

vertex_index()

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

vertex_index

Returns a dictionary that maps vertex identifiers to the corresponding index in a vertex list or array.

vertex_laplacian(key)

vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

vertex_max_degree()

vertex_max_degree

Compute the maximum degree of all vertices.

vertex_min_degree()

vertex_min_degree

Compute the minimum degree of all vertices.

vertex_neighborhood(key[, ring])

vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

vertex_neighborhood_centroid(key)

vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

vertex_neighbors(key[, ordered])

vertex_neighbors

Return the neighbors of a vertex.

vertex_normal(key)

vertex_normal

Return the normal vector at the vertex as the weighted average of the normals of the neighboring faces.

vertex_sample([size])

vertex_point

Return the point of a vertex.

vertex_sample

A random sample of the vertices.

vertices([data])

vertices

Iterate over the vertices of the mesh.

vertices_attribute(name[, value, keys])

vertices_attribute

Get or set an attribute of multiple vertices.

vertices_attributes([names, values, keys])

vertices_attributes

Get or set multiple attributes of multiple vertices.

vertices_on_boundaries()

vertices_on_boundaries

Find the vertices on all boundaries of the mesh.

vertices_on_boundary()

vertices_on_boundary

Find the vertices on the longest boundary.

vertices_where([conditions, data])

vertices_points

Return the points of multiple vertices.

vertices_where

Get vertices for which a certain condition or set of conditions is true.

vertices_where_predicate(predicate[, data])

vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

xy()

-

Attributes

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

JSONSCHEMANAME

The schema of the data of this object in JSON format.

adjacency

data

dtype

dual

The dual of this diagram.

graph

guid

jsondefinitions

Reusable schema definitions.

jsonstring

jsonvalidator

JSON schema validator for draft 7.

name

weld

Weld vertices that are closer than a given precision.

@@ -774,207 +1241,81 @@

compas_ags.diagrams.FormDiagram

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.html index 8a1d2d99b..fe0c1aefd 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.html @@ -1,326 +1,666 @@ + + - - + + + + + + + + FormDiagram.identify_constraints — COMPAS AGS + - compas_ags - FormDiagram.identify_constraints + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.identify_constraints

-FormDiagram.identify_constraints(tol=0.001)[source]
+FormDiagram.identify_constraints(tol=0.001)

Identify constraints on the Form Diagram based on the geometry. External loads define a line-load which constraint vertices in x, or y.

Parameters:
-

tol (float, optional) – Tolerance to define if leaves lay in a vertical, or horizontal line. +

+
tolfloat, optional

Tolerance to define if leaves lay in a vertical, or horizontal line. The default value is 10E-4.

+
+
Returns:
-

None – The FormDiagram is modified in place.

+
+
None

The FormDiagram is modified in place.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.ind.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.ind.html index 207a9ff66..e724f965d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.ind.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.ind.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.ind — COMPAS AGS + - compas_ags - FormDiagram.ind + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.index_edge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.index_edge.html index 2cdd5e768..3c51055c3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.index_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.index_edge.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.index_edge — COMPAS AGS + - compas_ags - FormDiagram.index_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.html index 509ede6a0..580e32dcf 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.index_vertex.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + FormDiagram.index_vertex — COMPAS AGS + - compas_ags - FormDiagram.index_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.html index ed80e5886..90c94f624 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.insert_vertex — COMPAS AGS + - compas_ags - FormDiagram.insert_vertex + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.insert_vertex

@@ -105,226 +568,104 @@

FormDiagram.insert_vertex

Insert a vertex in the specified face.

Parameters:
-
    -
  • fkey (int) – The key of the face in which the vertex should be inserted.

  • -
  • key (int, optional) – The key to be used to identify the inserted vertex.

  • -
  • xyz (list[float], optional) – Specific XYZ coordinates for the inserted vertex.

  • -
  • return_fkeys (bool, optional) – If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

  • -
+
+
fkeyint

The key of the face in which the vertex should be inserted.

+
+
keyint, optional

The key to be used to identify the inserted vertex.

+
+
xyzlist[float], optional

Specific XYZ coordinates for the inserted vertex.

+
+
return_fkeysbool, optional

If True, return the identifiers of the newly created faces in addition to the identifier of the inserted vertex.

+
+
Returns:
-

int | tuple[int, list[int]] – If return_fkeys is False, the key of the inserted vertex. +

+
int | tuple[int, list[int]]

If return_fkeys is False, the key of the inserted vertex. If return_fkeys is True, the key of the newly created vertex and a list with the newly created faces.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_closed.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_closed.html index 71ebcb4db..804a0d7fc 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_closed.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_closed.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_closed — COMPAS AGS + - compas_ags - FormDiagram.is_closed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_connected.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_connected.html index 9d9e4b890..d4a8294f6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_connected.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_connected.html @@ -1,342 +1,665 @@ + + - - + + + + + + + + FormDiagram.is_connected — COMPAS AGS + - compas_ags - FormDiagram.is_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.is_connected

FormDiagram.is_connected()

Verify that the mesh is connected.

-
Parameters:
-

mesh (Mesh) – A mesh data structure.

+
Returns:
+
+
bool

True if the mesh is not empty and has no naked edges. +False otherwise.

-
Returns:
-

bool – True, if the mesh is connected. -False, otherwise.

+
-

Notes

-

A mesh is connected if for every two vertices a path exists connecting them.

-

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh()
->>> mesh_is_connected(mesh)
-False
->>> a = mesh.add_vertex(x=0, y=0, z=0)
->>> b = mesh.add_vertex(x=1, y=0, z=0)
->>> c = mesh.add_vertex(x=1, y=1, z=0)
->>> mesh_is_connected(mesh)
-False
->>> abc = mesh.add_face([a, b, c])
->>> mesh_is_connected(mesh)
-True
-
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.html index 74a4cf82c..129fc8e29 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.html @@ -1,328 +1,665 @@ + + - - + + + + + + + + FormDiagram.is_edge_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.is_edge_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.is_edge_on_boundary

-FormDiagram.is_edge_on_boundary(u, v)
+FormDiagram.is_edge_on_boundary(edge)

Verify that an edge is on the boundary.

Parameters:
-
    -
  • u (int) – The identifier of the first vertex.

  • -
  • v (int) – The identifier of the second vertex.

  • -
+
+
edgetuple[int, int]

The identifier of the edge.

+
+
Returns:
-

bool – True if the edge is on the boundary. +

+
bool

True if the edge is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_empty.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_empty.html index aae30634c..ccfbaa79f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_empty.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_empty.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_empty — COMPAS AGS + - compas_ags - FormDiagram.is_empty + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.html index 399cf6217..875bc43af 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_face_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.is_face_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.is_face_on_boundary

@@ -105,221 +568,98 @@

FormDiagram.is_face_on_boundary

Verify that a face is on a boundary.

Parameters:
-

key (int) – The identifier of the face.

+
+
keyint

The identifier of the face.

+
+
Returns:
-

bool – True if the face is on the boundary. +

+
bool

True if the face is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.html index c9293a2ae..6b2f2b591 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_manifold.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_manifold — COMPAS AGS + - compas_ags - FormDiagram.is_manifold + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.html index ea31c564b..467c215db 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_orientable.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_orientable — COMPAS AGS + - compas_ags - FormDiagram.is_orientable + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.html index 85642fe04..55326d309 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_quadmesh — COMPAS AGS + - compas_ags - FormDiagram.is_quadmesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_regular.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_regular.html index 9e97cd97b..edd748db6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_regular.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_regular.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_regular — COMPAS AGS + - compas_ags - FormDiagram.is_regular + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.html index 06883489a..9da59863f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_trimesh — COMPAS AGS + - compas_ags - FormDiagram.is_trimesh + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_valid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_valid.html index 1e9d750e8..ba17f2d1e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_valid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_valid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_valid — COMPAS AGS + - compas_ags - FormDiagram.is_valid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.html index fcb220502..f6191b495 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_vertex_connected — COMPAS AGS + - compas_ags - FormDiagram.is_vertex_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.is_vertex_connected

@@ -105,221 +568,98 @@

FormDiagram.is_vertex_connected

Verify that a vertex is connected.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is connected to at least one other vertex. +

+
bool

True if the vertex is connected to at least one other vertex. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.html index 2ecb9652f..c0bf84f7a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.is_vertex_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.is_vertex_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.is_vertex_on_boundary

@@ -105,221 +568,98 @@

FormDiagram.is_vertex_on_boundary

Verify that a vertex is on a boundary.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

bool – True if the vertex is on the boundary. +

+
bool

True if the vertex is on the boundary. False otherwise.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.join.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.join.html index 6435f0161..966496fcb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.join.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.join.html @@ -1,118 +1,593 @@ + + - - + + + + + + + + FormDiagram.join — COMPAS AGS + + - compas_ags - FormDiagram.join + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.join

-FormDiagram.join(other)
+FormDiagram.join(other, weld=False, precision=None)

Add the vertices and faces of another mesh to the current mesh.

-
+
Parameters:
-

other (Mesh) – The other mesh.

+
+
othercompas.datastructures.Mesh

The other mesh.

+
+
weldbool, optional

If True, weld close vertices after joining. +Default is False.

+
+
precisionint, optional

The precision used for welding. +Default is TOL.precision.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+

Examples

-
>>> from compas.geometry import Box
+
>>> from compas.geometry import Box
 >>> from compas.geometry import Translation
 >>> from compas.datastructures import Mesh
 >>> a = Box.from_width_height_depth(1, 1, 1)
@@ -134,216 +609,87 @@ 

FormDiagram.join

16 >>> a.number_of_faces() 12 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.html new file mode 100644 index 000000000..944aefa01 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + FormDiagram.laplacian_matrix — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.laplacian_matrix

+
+
+FormDiagram.laplacian_matrix(rtype='array')
+

Compute the Laplacian matrix of the mesh.

+
+
Parameters:
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
+
+
Returns:
+
+
array-like

The Laplacian matrix.

+
+
+
+
+

Notes

+

The \(n \times n\) uniform Laplacian matrix \(\mathbf{L}\) of a mesh +with vertices \(\mathbf{V}\) and edges \(\mathbf{E}\) is defined as +follows [1]

+
+\[\begin{split}\mathbf{L}_{ij} = +\begin{cases} + -1 & i = j \\ + \frac{1}{deg(i)} & (i, j) \in \mathbf{E} \\ + 0 & \text{otherwise} +\end{cases}\end{split}\]
+

with \(deg(i)\) the degree of vertex \(i\).

+

Therefore, the uniform Laplacian of a vertex \(\mathbf{v}_{i}\) points to +the centroid of its neighboring vertices.

+

References

+
+
+[1] +

Nealen A., Igarashi T., Sorkine O. and Alexa M. +Laplacian Mesh Optimization.

+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_polyhedron(6)
+>>> L = mesh.laplacian_matrix(mesh, rtype='array')
+>>> type(L)
+<class 'numpy.ndarray'>
+
+
+
>>> xyz = asarray(mesh.vertices_attributes('xyz'))
+>>> L = mesh.laplacian_matrix(mesh)
+>>> d = L.dot(xyz)
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.html index 9e953f688..0dac8d53f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.leaf_edges — COMPAS AGS + - compas_ags - FormDiagram.leaf_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.leaves.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.leaves.html index be96ea2d9..22f2bbb0f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.leaves.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.leaves.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.leaves — COMPAS AGS + - compas_ags - FormDiagram.leaves + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.html index 379dc879c..a12088da2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.merge_faces.html @@ -1,123 +1,590 @@ + + - - + + + + + + + + FormDiagram.merge_faces — COMPAS AGS + + - compas_ags - FormDiagram.merge_faces + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.merge_faces

FormDiagram.merge_faces(faces)

Merge two faces of a mesh over their shared edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • faces (list[int]) – Face identifiers.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh data structure.

+
+
faceslist[int]

Face identifiers.

+
+
Returns:
-

int

+
+
int
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
->>> mesh = mesh.subdivide(scheme='quad')
+>>> mesh = mesh.subdivide(scheme="quad")
 >>> mesh_merge_faces(mesh, [1, 2])
 5
 >>> mesh_merge_faces(mesh, [3, 5])
@@ -126,216 +593,87 @@ 

FormDiagram.merge_faces

7 >>> mesh.face_vertices(7) [3, 5, 0, 4, 1, 6, 2, 7] -
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.normal.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.normal.html index eddd868b5..f72c4048b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.normal.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.normal.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.normal — COMPAS AGS + - compas_ags - FormDiagram.normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.html index faaaff007..0a010630f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormDiagram.number_of_edges — COMPAS AGS + - compas_ags - FormDiagram.number_of_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.html index 1a1e5b468..f98721a51 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormDiagram.number_of_faces — COMPAS AGS + - compas_ags - FormDiagram.number_of_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.html index e1869d914..3e0689168 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormDiagram.number_of_vertices — COMPAS AGS + - compas_ags - FormDiagram.number_of_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.obb.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.obb.html new file mode 100644 index 000000000..784dbf220 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormDiagram.obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.obb

+
+
+FormDiagram.obb()
+

Calculate the oriented bounding box of the mesh.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.offset.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.offset.html new file mode 100644 index 000000000..7280c411e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.offset.html @@ -0,0 +1,677 @@ + + + + + + + + + + + + FormDiagram.offset — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.offset

+
+
+FormDiagram.offset(distance=1.0)
+

Generate an offset mesh.

+
+
Parameters:
+
+
distancefloat, optional

The offset distance.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The offset mesh.

+
+
+
+
+

Notes

+

If the offset distance is a positive value, the offset is in the direction of the vertex normal. +If the value is negative, the offset is in the opposite direction. +In both cases, the orientation of the offset mesh is the same as the orientation of the original.

+

In areas with high degree of curvature, the offset mesh can have self-intersections.

+

Examples

+
>>> from compas.datastructures import Mesh, mesh_offset
+>>> from compas.geometry import distance_point_point as dist
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.offset()
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.q.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.q.html index 93955bff9..136a4939d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.q.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.q.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.q — COMPAS AGS + - compas_ags - FormDiagram.q + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.html index 48aacd845..8e1474128 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormDiagram.quads_to_triangles — COMPAS AGS + - compas_ags - FormDiagram.quads_to_triangles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.quads_to_triangles

FormDiagram.quads_to_triangles(check_angles=False)
-

Convert all quadrilateral faces of a mesh to triangles by adding a diagonal edge.

+

Convert all quadrilateral faces to triangles by adding a diagonal edge.

Parameters:
-
    -
  • mesh (Mesh) – A mesh data structure.

  • -
  • check_angles (bool, optional) – Flag indicating that the angles of the quads should be checked to choose the best diagonal.

  • -
+
+
check_anglesbool, optional

Flag indicating that the angles of the quads should be checked to choose the best diagonal.

+
+
Returns:
-

None – The mesh is modified in place.

+
+
None

The mesh is modified in place.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.html new file mode 100644 index 000000000..52c3076d3 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + FormDiagram.remove_duplicate_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.remove_duplicate_vertices

+
+
+FormDiagram.remove_duplicate_vertices(precision=None)
+

Remove all duplicate vertices and clean up any affected faces.

+
+
Parameters:
+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
+
+
Returns:
+
+
None

The mesh is modified in-place.

+
+
+
+
+

Examples

+
>>> import compas
+>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
+>>> mesh.number_of_vertices()
+36
+>>> for x, y, z in mesh.vertices_attributes("xyz", keys=list(mesh.vertices())[:5]):
+...     mesh.add_vertex(x=x, y=y, z=z)
+38
+39
+40
+>>> mesh.number_of_vertices()
+41
+>>> mesh.remove_duplicate_vertices()
+>>> mesh.number_of_vertices()
+36
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.html index e2df7f264..c43d709d4 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.html @@ -1,321 +1,663 @@ + + - - + + + + + + + + FormDiagram.remove_unused_vertices — COMPAS AGS + - compas_ags - FormDiagram.remove_unused_vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.rotate.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.rotate.html new file mode 100644 index 000000000..7419578f7 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.rotate.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + FormDiagram.rotate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.rotate

+
+
+FormDiagram.rotate(angle, axis=None, point=None)
+

Rotate the datastructure.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
rotated
+
translate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.rotated.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.rotated.html new file mode 100644 index 000000000..27fce72a0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.rotated.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + FormDiagram.rotated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.rotated

+
+
+FormDiagram.rotated(angle, axis=None, point=None)
+

Returns a rotated copy of this geometry.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
Geometry

The rotated geometry.

+
+
+
+
+
+

See also

+
+
rotate
+
translated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.scale.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.scale.html new file mode 100644 index 000000000..8d5baf230 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.scale.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + FormDiagram.scale — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.scale

+
+
+FormDiagram.scale(x, y=None, z=None)
+

Scale the datastructure.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
scaled
+
translate
+
rotate
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.scaled.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.scaled.html new file mode 100644 index 000000000..a8974decf --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.scaled.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + FormDiagram.scaled — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.scaled

+
+
+FormDiagram.scaled(x, y=None, z=None)
+

Returns a scaled copy of this geometry.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
Geometry

The scaled geometry.

+
+
+
+
+
+

See also

+
+
scale
+
translated
+
rotated
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.html new file mode 100644 index 000000000..ef62ef753 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + FormDiagram.set_vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.set_vertex_point

+
+
+FormDiagram.set_vertex_point(vertex, point)
+

Set the point of a vertex.

+
+
Parameters:
+
+
vertexint

The identifier of the vertex.

+
+
pointcompas.geometry.Point

The point to set.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.sha256.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.sha256.html index 41082e4bb..e9866cf37 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.sha256.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.sha256.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.sha256 — COMPAS AGS + - compas_ags - FormDiagram.sha256 + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.sha256

@@ -105,233 +568,109 @@

FormDiagram.sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

Parameters:
-

as_string (bool, optional) – If True, return the digest in hexadecimal format rather than as bytes.

+
+
as_stringbool, optional

If True, return the digest in hexadecimal format rather than as bytes.

+
+
Returns:
-

bytes | str

+
+
bytes | str
+

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh.from_obj(compas.get('faces.obj'))
+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> v1 = mesh.sha256()
 >>> v2 = mesh.sha256()
->>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], 'z', 1)
+>>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], "z", 1)
 >>> v3 = mesh.sha256()
 >>> v1 == v2
 True
 >>> v2 == v3
 False
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.slice.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.slice.html new file mode 100644 index 000000000..27e7c5ba9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.slice.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + FormDiagram.slice — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.slice

+
+
+FormDiagram.slice(plane)
+

Slice a mesh with a plane and construct the resulting submeshes.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

The original mesh.

+
+
planecompas.geometry.Plane

The cutting plane.

+
+
+
+
Returns:
+
+
tuple[compas.datastructures.Mesh, compas.datastructures.Mesh] | None

The “positive” and “negative” submeshes. +If the mesh and plane do not intersect, +or if the intersection is degenerate (point or line), +the function returns None.

+
+
+
+
+

Examples

+
>>> from compas.geometry import Plane
+>>> from compas.geometry import Box
+>>> from compas.datastructures import Mesh
+>>> plane = Plane((0, 0, 0), (1, 0, 0))
+>>> box = Box.from_width_height_depth(1, 1, 1)
+>>> mesh = Mesh.from_shape(box)
+>>> result = mesh_slice_plane(mesh, plane)
+>>> len(result) == 2
+True
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.html index b0afde1b2..be6d3e5ea 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_area.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + FormDiagram.smooth_area — COMPAS AGS + + - compas_ags - FormDiagram.smooth_area + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.smooth_area

FormDiagram.smooth_area(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.html index e951b764d..9b8c6ac58 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + FormDiagram.smooth_centroid — COMPAS AGS + + - compas_ags - FormDiagram.smooth_centroid + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.smooth_centroid

FormDiagram.smooth_centroid(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)

Smooth a mesh by moving every free vertex to the centroid of its neighbors.

-
+
Parameters:
-
    -
  • mesh (Mesh) – A mesh object.

  • -
  • fixed (list[int], optional) – The fixed vertices of the mesh.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list[Any], optional) – A list of arguments to be passed to the callback.

  • -
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fixedlist[int], optional

The fixed vertices of the mesh.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist[Any], optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_edge.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_edge.html index e081476a2..e932da7f1 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_edge.html @@ -1,334 +1,677 @@ + + - - + + + + + + + + FormDiagram.split_edge — COMPAS AGS + - compas_ags - FormDiagram.split_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.split_edge

-FormDiagram.split_edge(u, v, t=0.5, allow_boundary=False)
+FormDiagram.split_edge(edge, t=0.5, allow_boundary=False)

Split and edge by inserting a vertex along its length.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh.

  • -
  • u (int) – The key of the first vertex of the edge.

  • -
  • v (int) – The key of the second vertex of the edge.

  • -
  • t (float, optional) – The position of the inserted vertex. -The value should be between 0.0 and 1.0

  • -
  • allow_boundary (bool, optional) – If True, also split edges on the boundary.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh.

+
+
edgetuple[int, int]

The identifier of the edge to split.

+
+
tfloat, optional

The position of the inserted vertex. +The value should be between 0.0 and 1.0

+
+
allow_boundarybool, optional

If True, also split edges on the boundary.

+
+
Returns:
-

int – The key of the inserted vertex.

+
+
int

The key of the inserted vertex.

+
+
Raises:
-

ValueError – If u and v are not neighbors.

+
+
ValueError

If u and v are not neighbors.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_face.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_face.html index 2758c1d76..1a7c02b29 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_face.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_face.html @@ -1,127 +1,600 @@ + + - - + + + + + + + + FormDiagram.split_face — COMPAS AGS + + - compas_ags - FormDiagram.split_face + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.split_face

FormDiagram.split_face(fkey, u, v)

Split a face by inserting an edge between two specified vertices.

-
+
Parameters:
-
    -
  • mesh (Mesh) – Instance of a mesh

  • -
  • fkey (int) – The face key.

  • -
  • u (int) – The key of the first split vertex.

  • -
  • v (int) – The key of the second split vertex.

  • -
+
+
meshcompas.datastructures.Mesh

Instance of a mesh

+
+
fkeyint

The face key.

+
+
uint

The key of the first split vertex.

+
+
vint

The key of the second split vertex.

+
+
Returns:
-

tuple[int, int] – Keys of the created faces.

+
+
tuple[int, int]

Keys of the created faces.

+
+
Raises:
-

ValueError – If the split vertices does not belong to the split face or if the split - vertices are neighbors.

+
+
ValueError

If the split vertices does not belong to the split face or if the split +vertices are neighbors.

+
+

Examples

-
>>> import compas
+
>>> import compas
 >>> from compas.datastructures import Mesh
 >>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> face = mesh.face_sample(size=1)[0]
@@ -134,216 +607,87 @@ 

FormDiagram.split_face

(25, 26) >>> mesh.number_of_faces() # faces after split 26 -
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_strip.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_strip.html index 49105c43d..1e11f2a4d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.split_strip.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.split_strip.html @@ -1,327 +1,666 @@ + + - - + + + + + + + + FormDiagram.split_strip — COMPAS AGS + - compas_ags - FormDiagram.split_strip + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.split_strip

FormDiagram.split_strip(edge)

Split the srip of faces corresponding to a given edge.

-
+
Parameters:
-
    -
  • mesh (Mesh) – The input mesh.

  • -
  • edge (tuple[int, int]) – The edge identifying the strip.

  • -
+
+
meshcompas.datastructures.Mesh

The input mesh.

+
+
edgetuple[int, int]

The edge identifying the strip.

+
+
Returns:
-

list[int] – The split vertices in the same order as the edges of the strip.

+
+
list[int]

The split vertices in the same order as the edges of the strip.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.subdivided.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.subdivided.html new file mode 100644 index 000000000..f38cbe774 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.subdivided.html @@ -0,0 +1,674 @@ + + + + + + + + + + + + FormDiagram.subdivided — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.subdivided

+
+
+FormDiagram.subdivided(scheme='catmullclark', **options)
+

Subdivide the input mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
schemeLiteral[‘tri’, ‘quad’, ‘corner’, ‘catmullclark’, ‘doosabin’, ‘frames’, ‘loop’], optional

The scheme according to which the mesh should be subdivided.

+
+
**optionsdict[str, Any], optional

Optional additional keyword arguments.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The subdivided mesh.

+
+
+
+
Raises:
+
+
ValueError

If the scheme is not supported.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.summary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.summary.html index 1f7c4d7e1..455d50aa7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.summary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.summary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.summary — COMPAS AGS + - compas_ags - FormDiagram.summary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.thickened.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.thickened.html new file mode 100644 index 000000000..d560621f0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.thickened.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + FormDiagram.thickened — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.thickened

+
+
+FormDiagram.thickened(thickness=1.0, both=True)
+

Generate a thicknened mesh.

+
+
Parameters:
+
+
thicknessfloat, optional

The mesh thickness. +This should be a positive value.

+
+
bothbool, optional

If true, the mesh is thickened on both sides of the original. +Otherwise, the mesh is thickened on the side of the positive normal.

+
+
+
+
Returns:
+
+
compas.datastructures.Mesh

The thickened mesh.

+
+
+
+
Raises:
+
+
ValueError

If thickness is not a positive number.

+
+
+
+
+

Examples

+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_vertices_and_faces([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]], [[0, 1, 2, 3]])
+>>> mesh.thicken(mesh)
+<compas.datastructures.mesh.mesh.Mesh object at 0x109eaad60>
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_json.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_json.html index 2b8b3b8a4..ebc4bda9c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_json.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_json.html @@ -1,327 +1,661 @@ + + - - + + + + + + + + FormDiagram.to_json — COMPAS AGS + - compas_ags - FormDiagram.to_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.html index c10a7ddf7..213068232 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.html @@ -1,324 +1,665 @@ + + - - + + + + + + + + FormDiagram.to_jsonstring — COMPAS AGS + - compas_ags - FormDiagram.to_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_jsonstring

FormDiagram.to_jsonstring(pretty=False)
-

Serialize the data representation of an object to a JSON string.

+

Convert an object to its native data representation and save it to a JSON string.

Parameters:
-

pretty (bool, optional) – If True serialize a pretty representation of the data.

+
+
prettybool, optional

If True, the JSON string will be pretty printed. +Defaults to False.

+
+
Returns:
-

str – The object’s data dict in JSON string format.

+
+
str

The JSON string.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_lines.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_lines.html index 5eee68417..f57b28060 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_lines.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_lines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.to_lines — COMPAS AGS + - compas_ags - FormDiagram.to_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_obj.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_obj.html index 5fcb0185f..aed806390 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_obj.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_obj.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.to_obj — COMPAS AGS + + - compas_ags - FormDiagram.to_obj + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_obj

@@ -105,15 +568,20 @@

FormDiagram.to_obj

Write the mesh to an OBJ file.

Parameters:
-
    -
  • filepath (str) – Full path of the file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
  • unweld (bool, optional) – If True, all faces have their own unique vertices. -If False (default), vertices are shared between faces if this is also the case in the mesh.

  • -
+
+
filepathstr

Full path of the file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
unweldbool, optional

If True, all faces have their own unique vertices. +If False (default), vertices are shared between faces if this is also the case in the mesh.

+
+
Returns:
-

None

+
+
None
+
@@ -125,210 +593,81 @@

FormDiagram.to_obj

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_off.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_off.html index db63c5471..d373f5cf7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_off.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_off.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.to_off — COMPAS AGS + - compas_ags - FormDiagram.to_off + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_off

@@ -105,220 +568,96 @@

FormDiagram.to_off

Write a mesh object to an OFF file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_ply.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_ply.html index cf25f504c..501c9beab 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_ply.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_ply.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.to_ply — COMPAS AGS + - compas_ags - FormDiagram.to_ply + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_ply

@@ -105,220 +568,96 @@

FormDiagram.to_ply

Write a mesh object to a PLY file.

Parameters:
-

filepath (str) – The path to the file.

+
+
filepathstr

The path to the file.

+
+
Returns:
-

None

+
+
None
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_points.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_points.html index 403af47ae..bbbe3f430 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_points.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_points.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.to_points — COMPAS AGS + - compas_ags - FormDiagram.to_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.html index ae19301c1..394e0793c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polygons.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.to_polygons — COMPAS AGS + - compas_ags - FormDiagram.to_polygons + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.html index cdd60e97e..b2f11660e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_polylines.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.to_polylines — COMPAS AGS + - compas_ags - FormDiagram.to_polylines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_stl.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_stl.html index a0a5ecadb..d67b8b2ed 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_stl.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_stl.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.to_stl — COMPAS AGS + - compas_ags - FormDiagram.to_stl + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_stl

@@ -105,230 +568,106 @@

FormDiagram.to_stl

Write a mesh to an STL file.

Parameters:
-
    -
  • filepath (str) – The path to the file.

  • -
  • precision (str, optional) – Rounding precision for the vertex coordinates. -Defaults to the value of compas.PRECISION.

  • -
  • binary (bool, optional) – If True, the file will be written in binary format. -ASCII otherwise.

  • -
+
+
filepathstr

The path to the file.

+
+
precisionstr, optional

Rounding precision for the vertex coordinates. +Defaults to the value of compas.PRECISION.

+
+
binarybool, optional

If True, the file will be written in binary format. +ASCII otherwise.

+
+
Returns:
-

None

+
+
None
+

Notes

STL files only support triangle faces. It is the user’s responsibility to convert all faces of a mesh to triangles. -For example, with compas.datastructures.mesh_quads_to_triangles().

+For example, with compas.datastructures.Mesh.quads_to_triangles().

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.html index d3d169022..60b1cebeb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.to_vertices_and_faces — COMPAS AGS + - compas_ags - FormDiagram.to_vertices_and_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.to_vertices_and_faces

@@ -105,224 +568,99 @@

FormDiagram.to_vertices_and_faces

Return the vertices and faces of a mesh.

Parameters:
-

triangulated (bool, optional) – If True, triangulate the faces.

+
+
triangulated: bool, optional

If True, triangulate the faces.

+
+
Returns:
-

    -
  • list[list[float]] – The vertices as a list of XYZ coordinates.

  • -
  • list[list[int]] – The faces as a list of lists of vertex indices.

  • -
-

+
+
list[list[float]]

The vertices as a list of XYZ coordinates.

+
+
list[list[int]]

The faces as a list of lists of vertex indices.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.transform.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.transform.html index 8dadaa255..e15ffd017 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.transform.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.transform.html @@ -1,336 +1,672 @@ + + - - + + + + + + + + FormDiagram.transform — COMPAS AGS + + - compas_ags - FormDiagram.transform + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.transform

-FormDiagram.transform(transformation)
-

Transform a mesh.

-
+FormDiagram.transform(T) +

Transform the mesh.

+
Parameters:
-
    -
  • mesh (Mesh) – The mesh.

  • -
  • transformation (Transformation) – The transformation.

  • -
+
+
TTransformation

The transformation used to transform the mesh.

+
+
Returns:
-

None – The mesh is modified in-place.

+
+
None

The mesh is modified in-place.

+
+

Examples

-
>>> from compas.datastructures import Mesh
+
>>> from compas.datastructures import Mesh
 >>> from compas.geometry import matrix_from_axis_and_angle
 >>> mesh = Mesh.from_polyhedron(6)
 >>> T = matrix_from_axis_and_angle([0, 0, 1], math.pi / 4)
->>> tmesh = mesh.copy()
->>> mesh_transform(tmesh, T)
-
+>>> mesh.transform(T) +
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.html index c34b188f7..1abde7474 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.html @@ -1,274 +1,672 @@ + + - - + + + + + + + + + FormDiagram.transform_numpy — COMPAS AGS - compas_ags - FormDiagram.transform_numpy + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + +
+ +
+ + + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+ +
+ +
- - - + + + + - - - - - - - - - - - - - +
+ + +
+ \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed.html index b079d1e1f..8dc79c8b8 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed.html @@ -1,335 +1,664 @@ + + - - + + + + + + + + FormDiagram.transformed — COMPAS AGS + + - compas_ags - FormDiagram.transformed + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.html new file mode 100644 index 000000000..8c4468010 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.transformed_numpy — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.transformed_numpy

+
+
+FormDiagram.transformed_numpy(transformation)
+

Returns a transformed copy of this data structure.

+
+
Parameters:
+
+
transformationTransformation

The transformation used to transform the copy.

+
+
+
+
Returns:
+
+
Datastructure

The transformed copy.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.translate.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.translate.html new file mode 100644 index 000000000..16a8c8068 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.translate.html @@ -0,0 +1,672 @@ + + + + + + + + + + + + FormDiagram.translate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.translate

+
+
+FormDiagram.translate(vector)
+

Translate the datastructure.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
translated
+
rotate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.translated.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.translated.html new file mode 100644 index 000000000..363e9e3d9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.translated.html @@ -0,0 +1,673 @@ + + + + + + + + + + + + FormDiagram.translated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.translated

+
+
+FormDiagram.translated(vector)
+

Returns a translated copy of this geometry.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
Geometry

The translated geometry.

+
+
+
+
+
+

See also

+
+
translate
+
rotated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.html index 72f51f0ab..eb3af350e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.html @@ -1,332 +1,658 @@ + + - - + + + + + + + + FormDiagram.unify_cycles — COMPAS AGS + - compas_ags - FormDiagram.unify_cycles + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.html index d9a740832..b5433256a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.unset_edge_attribute — COMPAS AGS + - compas_ags - FormDiagram.unset_edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.unset_edge_attribute

@@ -105,18 +568,33 @@

FormDiagram.unset_edge_attribute

Unset the attribute of an edge.

Parameters:
-
    -
  • edge (tuple[int, int]) – The edge identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
edgetuple[int, int]

The edge identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+

Notes

Unsetting the value of an edge attribute implicitly sets it back to the value stored in the default edge attribute dict.

@@ -124,210 +602,81 @@

FormDiagram.unset_edge_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.html index 486d20df1..828251f98 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.unset_face_attribute — COMPAS AGS + - compas_ags - FormDiagram.unset_face_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.unset_face_attribute

@@ -105,18 +568,33 @@

FormDiagram.unset_face_attribute

Unset the attribute of a face.

Parameters:
-
    -
  • key (int) – The face identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The face identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the face does not exist.

+
+
KeyError

If the face does not exist.

+
+
+

Notes

Unsetting the value of a face attribute implicitly sets it back to the value stored in the default face attribute dict.

@@ -124,210 +602,81 @@

FormDiagram.unset_face_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.html index 5e10e7b9d..d7faf37d1 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.unset_vertex_attribute — COMPAS AGS + - compas_ags - FormDiagram.unset_vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.unset_vertex_attribute

@@ -105,18 +568,33 @@

FormDiagram.unset_vertex_attribute

Unset the attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+

Notes

Unsetting the value of a vertex attribute implicitly sets it back to the value stored in the default vertex attribute dict.

@@ -124,210 +602,81 @@

FormDiagram.unset_vertex_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.html new file mode 100644 index 000000000..9acb45d23 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + FormDiagram.unweld_edges — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.unweld_edges

+
+
+FormDiagram.unweld_edges(edges)
+

Unwelds a mesh along edges.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh.

+
+
edges: list[tuple[int, int]]

List of edges as tuples of vertex keys.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.html new file mode 100644 index 000000000..c4cc6adf6 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + FormDiagram.unweld_vertices — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.unweld_vertices

+
+
+FormDiagram.unweld_vertices(fkey, where=None)
+

Unweld a face of the mesh.

+
+
Parameters:
+
+
meshcompas.datastructures.Mesh

A mesh object.

+
+
fkeyint

The identifier of a face.

+
+
wherelist[int], optional

A list of vertices to unweld. +Default is to unweld all vertices of the face.

+
+
+
+
Returns:
+
+
list[int]

The vertices of the unwelded face.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.html index 4dd2a0c15..98d3de806 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.update_default_edge_attributes — COMPAS AGS + - compas_ags - FormDiagram.update_default_edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.update_default_edge_attributes

@@ -105,225 +568,107 @@

FormDiagram.update_default_edge_attributes

Update the default edge attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.html index b7abb5693..7bc5a376f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.update_default_face_attributes — COMPAS AGS + - compas_ags - FormDiagram.update_default_face_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.update_default_face_attributes

@@ -105,225 +568,107 @@

FormDiagram.update_default_face_attributes

Update the default face attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.html index eb717a950..a50c5315e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.update_default_vertex_attributes — COMPAS AGS + - compas_ags - FormDiagram.update_default_vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.update_default_vertex_attributes

@@ -105,225 +568,107 @@

FormDiagram.update_default_vertex_attributes

Update the default vertex attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+

Notes

Named arguments overwrite corresponding key-value pairs in the attribute dictionary.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.validate_data.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.validate_data.html index e27d26175..ca6514e77 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.validate_data.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.validate_data.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + FormDiagram.validate_data — COMPAS AGS + - compas_ags - FormDiagram.validate_data + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.html index b6b0c86f3..76414d0cf 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_area.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_area — COMPAS AGS + - compas_ags - FormDiagram.vertex_area + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_area

@@ -105,220 +568,97 @@

FormDiagram.vertex_area

Compute the tributary area of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

float – The tributary are.

+
+
float

The tributary are.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.html index 8c3e1dd31..e1d27601d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_attribute — COMPAS AGS + - compas_ags - FormDiagram.vertex_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_attribute

@@ -105,228 +568,117 @@

FormDiagram.vertex_attribute

Get or set an attribute of a vertex.

Parameters:
-
    -
  • key (int) – The vertex identifier.

  • -
  • name (str) – The name of the attribute

  • -
  • value (object, optional) – The value of the attribute.

  • -
+
+
keyint

The vertex identifier.

+
+
namestr

The name of the attribute

+
+
valueobject, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, +

+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.html index cd605de46..0a47b35fc 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_attributes — COMPAS AGS + - compas_ags - FormDiagram.vertex_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_attributes

@@ -105,231 +568,119 @@

FormDiagram.vertex_attributes

Get or set multiple attributes of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyint

The identifier of the vertex.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, the function returns a dictionary of all attribute name-value pairs of the vertex. If the parameter names is not empty, the function returns a list of the values corresponding to the requested attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If the vertex does not exist.

+
+
KeyError

If the vertex does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.html index 41984c03e..18d825a54 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_coordinates — COMPAS AGS + - compas_ags - FormDiagram.vertex_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_coordinates

@@ -105,224 +568,100 @@

FormDiagram.vertex_coordinates

Return the coordinates of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • axes (str, optional) – The axes along which to take the coordinates. -Should be a combination of x, y, and z.

  • -
+
+
keyint

The identifier of the vertex.

+
+
axesstr, optional

The axes along which to take the coordinates. +Should be a combination of x, y, and z.

+
+
Returns:
-

list[float] – Coordinates of the vertex.

+
+
list[float]

Coordinates of the vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.html index 46d3854d2..2b41d7521 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_curvature — COMPAS AGS + - compas_ags - FormDiagram.vertex_curvature + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_curvature

@@ -105,10 +568,16 @@

FormDiagram.vertex_curvature

Dimensionless vertex curvature.

Parameters:
-

fkey (int) – The face key.

+
+
fkeyint

The face key.

+
+
Returns:
-

float – The dimensionless curvature.

+
+
float

The dimensionless curvature.

+
+

References

@@ -123,210 +592,81 @@

FormDiagram.vertex_curvature

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.html index 33250673c..41ab8e0d3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_degree — COMPAS AGS + - compas_ags - FormDiagram.vertex_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_degree

@@ -105,220 +568,97 @@

FormDiagram.vertex_degree

Count the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

int – The degree of the vertex.

+
+
int

The degree of the vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.html index 971a19c5a..19d0b699d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_edges — COMPAS AGS + - compas_ags - FormDiagram.vertex_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_edges

@@ -105,220 +568,95 @@

FormDiagram.vertex_edges

Find all edges connected to a given vertex.

Parameters:
-

vertex (int)

+
+
vertexint
+
Returns:
-

list[tuple[int, int]]

+
+
list[tuple[int, int]]
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.html index efd2ea033..a1d772b6c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_faces — COMPAS AGS + - compas_ags - FormDiagram.vertex_faces + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_faces

@@ -105,224 +568,101 @@

FormDiagram.vertex_faces

The faces connected to a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the faces in cycling order.

  • -
  • include_none (bool, optional) – If True, include outside faces in the list.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the faces in cycling order.

+
+
include_nonebool, optional

If True, include outside faces in the list.

+
+
Returns:
-

list[int] – The faces connected to a vertex.

+
+
list[int]

The faces connected to a vertex.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.html index 5258f4334..70ecdd207 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_gkey — COMPAS AGS + - compas_ags - FormDiagram.vertex_gkey + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_gkey

@@ -106,221 +569,98 @@

FormDiagram.vertex_gkey

geometric key up to a certain precision.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting. -Defaults to the value of compas.PRECISION.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[int, str] – A dictionary of key-geometric key pairs.

+
+
dict[int, str]

A dictionary of key-geometric key pairs.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.html index b4279e29e..50cf6bf3f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_index.html @@ -1,322 +1,665 @@ + + - - + + + + + + + + FormDiagram.vertex_index — COMPAS AGS + - compas_ags - FormDiagram.vertex_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.html index 0f4c33892..5502ef125 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_laplacian — COMPAS AGS + - compas_ags - FormDiagram.vertex_laplacian + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_laplacian

@@ -105,220 +568,97 @@

FormDiagram.vertex_laplacian

Compute the vector from a vertex to the centroid of its neighbors.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the vector.

+
+
compas.geometry.Vector

The Laplacian vector.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.html index 9070d3a23..ab3e6c986 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.vertex_max_degree — COMPAS AGS + - compas_ags - FormDiagram.vertex_max_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.html index 3126db550..7e21d07f7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.vertex_min_degree — COMPAS AGS + - compas_ags - FormDiagram.vertex_min_degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.html index ec4cf6623..37bcf75b2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_neighborhood — COMPAS AGS + - compas_ags - FormDiagram.vertex_neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_neighborhood

@@ -105,13 +568,18 @@

FormDiagram.vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ring (int, optional) – The number of neighborhood rings to include.

  • -
+
+
keyint

The identifier of the vertex.

+
+
ringint, optional

The number of neighborhood rings to include.

+
+
Returns:
-

list[int] – The vertices in the neighborhood.

+
+
list[int]

The vertices in the neighborhood.

+
+

Notes

@@ -120,210 +588,81 @@

FormDiagram.vertex_neighborhood

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.html index 15dd30ff6..7b7b3d282 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_neighborhood_centroid — COMPAS AGS + - compas_ags - FormDiagram.vertex_neighborhood_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_neighborhood_centroid

@@ -105,220 +568,97 @@

FormDiagram.vertex_neighborhood_centroid

Compute the centroid of the neighbors of a vertex.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The centroid of the vertex neighbors.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.html index 0cb7ac459..f47b13d97 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_neighbors — COMPAS AGS + - compas_ags - FormDiagram.vertex_neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_neighbors

@@ -105,17 +568,22 @@

FormDiagram.vertex_neighbors

Return the neighbors of a vertex.

Parameters:
-
    -
  • key (int) – The identifier of the vertex.

  • -
  • ordered (bool, optional) – If True, return the neighbors in the cycling order of the faces.

  • -
+
+
keyint

The identifier of the vertex.

+
+
orderedbool, optional

If True, return the neighbors in the cycling order of the faces.

+
+
Returns:
-

list[int] – The list of neighboring vertices. +

+
list[int]

The list of neighboring vertices. If the vertex lies on the boundary of the mesh, an ordered list always starts and ends with with boundary vertices.

+
+

Notes

Due to the nature of the ordering algorithm, the neighbors cycle around the node in the opposite direction as the cycling direction of the faces. @@ -126,210 +594,81 @@

FormDiagram.vertex_neighbors

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.html index a47ba71a5..e12004d8a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_normal — COMPAS AGS + - compas_ags - FormDiagram.vertex_normal + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_normal

@@ -106,220 +569,97 @@

FormDiagram.vertex_normal

normals of the neighboring faces.

Parameters:
-

key (int) – The identifier of the vertex.

+
+
keyint

The identifier of the vertex.

+
+
Returns:
-

list[float] – The components of the normal vector.

+
+
compas.geometry.Vector

The normal vector.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.html new file mode 100644 index 000000000..2c2e124e0 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.vertex_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.vertex_point

+
+
+FormDiagram.vertex_point(key)
+

Return the point of a vertex.

+
+
Parameters:
+
+
keyint

The identifier of the vertex.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The point of the vertex.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.html index 8c85f07e3..17be97c3b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertex_sample — COMPAS AGS + - compas_ags - FormDiagram.vertex_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertex_sample

@@ -105,220 +568,103 @@

FormDiagram.vertex_sample

A random sample of the vertices.

Parameters:
-

size (int, optional) – The number of vertices in the random sample.

+
+
sizeint, optional

The number of vertices in the random sample.

+
+
Returns:
-

list[int] – The identifiers of the vertices.

+
+
list[int]

The identifiers of the vertices.

+
+
+
+

See also

+
+
edge_sample(), face_sample()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices.html index 69514f313..7ac8bef30 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertices — COMPAS AGS + - compas_ags - FormDiagram.vertices + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertices

@@ -105,221 +568,105 @@

FormDiagram.vertices

Iterate over the vertices of the mesh.

Parameters:
-

data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex identifier. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex identifier. If data is True, the next vertex as a (key, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.html index 87bd392cb..3400df8ab 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertices_attribute — COMPAS AGS + - compas_ags - FormDiagram.vertices_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertices_attribute

@@ -105,229 +568,117 @@

FormDiagram.vertices_attribute

Get or set an attribute of multiple vertices.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (object, optional) – The value of the attribute. -Default is None.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobject, optional

The value of the attribute. +Default is None.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[Any] | None – The value of the attribute for each vertex, +

+
list[Any] | None

The value of the attribute for each vertex, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.html index 8e8f465a7..8986a1eba 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertices_attributes — COMPAS AGS + - compas_ags - FormDiagram.vertices_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertices_attributes

@@ -105,231 +568,119 @@

FormDiagram.vertices_attributes

Get or set multiple attributes of multiple vertices.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute.

  • -
  • values (list[Any], optional) – The values of the attributes.

  • -
  • keys (list[int], optional) – A list of vertex identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute.

+
+
valueslist[Any], optional

The values of the attributes.

+
+
keyslist[int], optional

A list of vertex identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is empty, the function returns a list containing an attribute dict per vertex. If the parameter names is not empty, the function returns a list containing a list of attribute values per vertex corresponding to the provided attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the vertices does not exist.

+
+
KeyError

If any of the vertices does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.html index ae491f43c..c27844065 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.html @@ -1,321 +1,659 @@ + + - - + + + + + + + + FormDiagram.vertices_on_boundaries — COMPAS AGS + - compas_ags - FormDiagram.vertices_on_boundaries + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.html index 442f38973..3b66fb133 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormDiagram.vertices_on_boundary — COMPAS AGS + - compas_ags - FormDiagram.vertices_on_boundary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.html new file mode 100644 index 000000000..073d54f9f --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormDiagram.vertices_points — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.vertices_points

+
+
+FormDiagram.vertices_points(vertices)
+

Return the points of multiple vertices.

+
+
Parameters:
+
+
verticeslist[int]

The identifiers of the vertices.

+
+
+
+
Returns:
+
+
list[compas.geometry.Point]

The points of the vertices.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.html index 8bd9f90fe..c7baee632 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertices_where — COMPAS AGS + - compas_ags - FormDiagram.vertices_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertices_where

@@ -105,227 +568,111 @@

FormDiagram.vertices_where

Get vertices for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.html index 49d27c4b5..f1309a55e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormDiagram.vertices_where_predicate — COMPAS AGS + + - compas_ags - FormDiagram.vertices_where_predicate + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormDiagram.vertices_where_predicate

@@ -105,230 +568,109 @@

FormDiagram.vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: the vertex identifier and the vertex attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the vertex attributes in addition to the vertex identifiers.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the vertex attributes in addition to the vertex identifiers.

+
+
Yields:
-

int | tuple[int, dict[str, Any]] – If data is False, the next vertex that matches the condition. +

+
int | tuple[int, dict[str, Any]]

If data is False, the next vertex that matches the condition. If data is True, the next vertex and its attributes.

-

Examples

-
>>>
-
+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.weld.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.weld.html new file mode 100644 index 000000000..58c07ab69 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.weld.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + FormDiagram.weld — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormDiagram.weld

+
+
+FormDiagram.weld(precision=None)
+

Weld vertices that are closer than a given precision.

+
+
Parameters:
+
+
precisionint, optional

The precision of the geometric map that is used to connect the lines. +Defaults to the value of compas.PRECISION.

+
+
+
+
Returns:
+
+
None

The mesh is modified in place.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormDiagram.xy.html b/latest/api/generated/compas_ags.diagrams.FormDiagram.xy.html index 6cc5d157d..e08a81e80 100644 --- a/latest/api/generated/compas_ags.diagrams.FormDiagram.xy.html +++ b/latest/api/generated/compas_ags.diagrams.FormDiagram.xy.html @@ -1,315 +1,649 @@ + + - - + + + + + + + + FormDiagram.xy — COMPAS AGS + - compas_ags - FormDiagram.xy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.ToString.html b/latest/api/generated/compas_ags.diagrams.FormGraph.ToString.html index 863862d79..8aa6523d7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.ToString.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.ToString.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.ToString — COMPAS AGS + - compas_ags - FormGraph.ToString + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.ToString

@@ -114,210 +577,81 @@

FormGraph.ToString

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.aabb.html b/latest/api/generated/compas_ags.diagrams.FormGraph.aabb.html new file mode 100644 index 000000000..86d2e7656 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormGraph.aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.aabb

+
+
+FormGraph.aabb()
+

Calculate the axis aligned bounding box of the graph.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.add_edge.html b/latest/api/generated/compas_ags.diagrams.FormGraph.add_edge.html index a67402422..fe40974fa 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.add_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.add_edge.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.add_edge — COMPAS AGS + + - compas_ags - FormGraph.add_edge + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.add_edge

@@ -105,229 +568,114 @@

FormGraph.add_edge

Add an edge and specify its attributes.

Parameters:
-
    -
  • u (hashable) – The identifier of the first node of the edge.

  • -
  • v (hashable) – The identifier of the second node of the edge.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of edge attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
uhashable

The identifier of the first node of the edge.

+
+
vhashable

The identifier of the second node of the edge.

+
+
attr_dictdict[str, Any], optional

A dictionary of edge attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

tuple[hashable, hashable] – The identifiers of the edge nodes.

+
+
tuple[hashable, hashable]

The identifier of the edge.

+
+
+
+

See also

+
+
add_node()
+
delete_edge()
+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.add_node.html b/latest/api/generated/compas_ags.diagrams.FormGraph.add_node.html index cb9013ba3..cdbc3b80c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.add_node.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.add_node.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.add_node — COMPAS AGS + + - compas_ags - FormGraph.add_node + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.add_node

@@ -105,236 +568,120 @@

FormGraph.add_node

Add a node and specify its attributes (optional).

Parameters:
-
    -
  • key (hashable, optional) – An identifier for the node. -Defaults to None, in which case an identifier of type int is automatically generated.

  • -
  • attr_dict (dict[str, Any], optional) – A dictionary of vertex attributes.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
keyhashable, optional

An identifier for the node. +Defaults to None, in which case an identifier of type int is automatically generated.

+
+
attr_dictdict[str, Any], optional

A dictionary of vertex attributes.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

hashable – The identifier of the node.

+
+
hashable

The identifier of the node.

+
+
+
+

See also

+
+
add_edge()
+
delete_node()
+
+

Notes

If no key is provided for the node, one is generated automatically. An automatically generated key increments the highest integer key in use by 1.

Examples

-
>>> graph = Graph()
+
>>> graph = Graph()
 >>> node = graph.add_node()
 >>> node
 0
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.html b/latest/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.html index 47f43837d..c49889dda 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormGraph.adjacency_matrix — COMPAS AGS + - compas_ags - FormGraph.adjacency_matrix + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.adjacency_matrix

FormGraph.adjacency_matrix(rtype='array')
-

Creates a node adjacency matrix from a Network datastructure.

+

Creates a node adjacency matrix from a Graph datastructure.

Parameters:
-
    -
  • network (obj) – Network datastructure object to get data from.

  • -
  • rtype (Literal[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional) – Format of the result.

  • -
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
Returns:
-

array_like – Constructed adjacency matrix.

+
+
array_like

Constructed adjacency matrix.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.clear.html b/latest/api/generated/compas_ags.diagrams.FormGraph.clear.html index 41bbf8cf6..0b9cdf37b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.clear.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.clear.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + FormGraph.clear — COMPAS AGS + - compas_ags - FormGraph.clear + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.complement.html b/latest/api/generated/compas_ags.diagrams.FormGraph.complement.html index fe4525e9b..58d0dd91e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.complement.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.complement.html @@ -1,344 +1,677 @@ + + - - + + + + + + + + FormGraph.complement — COMPAS AGS + - compas_ags - FormGraph.complement + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.complement

-FormGraph.complement(cls=None)
-

Generate the complement network of a network.

+FormGraph.complement() +

Generate the complement of a graph.

The complement of a graph G is the graph H with the same vertices -but whose edges consists of the edges not present in the graph G [1].

+but whose edges consists of the edges not present in the graph G [1].

-
Parameters:
-

network (Network) – A network.

+
Returns:
+
+
compas.datastructures.Graph

The complement graph.

-
Returns:
-

Network – The complement network.

+

References

- +
+

Examples

-
>>> import compas
->>> from compas.datastructures import Network
->>> from compas.datastructures import network_complement
->>> network = Network.from_obj(compas.get('lines.obj'))
->>> complement = network_complement(network)
->>> any(complement.has_edge(u, v, directed=False) for u, v in network.edges())
+
>>> import compas
+>>> from compas.datastructures import Graph
+>>> graph = Graph.from_obj(compas.get("lines.obj"))
+>>> complement = graph.complement()
+>>> any(complement.has_edge(u, v, directed=False) for u, v in graph.edges())
 False
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.html b/latest/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.html new file mode 100644 index 000000000..86798398e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormGraph.compute_aabb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.compute_aabb

+
+
+FormGraph.compute_aabb()
+

Compute the axis-aligned bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.compute_obb.html b/latest/api/generated/compas_ags.diagrams.FormGraph.compute_obb.html new file mode 100644 index 000000000..e44fe1006 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.compute_obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormGraph.compute_obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.compute_obb

+
+
+FormGraph.compute_obb()
+

Compute the oriented bounding box of the datastructure.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.connected_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.connected_edges.html index 487485e7a..586b41473 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.connected_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.connected_edges.html @@ -1,324 +1,663 @@ + + - - + + + + + + + + FormGraph.connected_edges — COMPAS AGS + - compas_ags - FormGraph.connected_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.html new file mode 100644 index 000000000..838343a73 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + FormGraph.connected_nodes — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.connected_nodes

+
+
+FormGraph.connected_nodes()
+

Get groups of connected nodes.

+
+
Returns:
+
+
list[list[hashable]]
+
+
+
+
+

See also

+
+
connected_edges()
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.html b/latest/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.html index 28fde29e0..c5d0a8ee6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormGraph.connectivity_matrix — COMPAS AGS + - compas_ags - FormGraph.connectivity_matrix + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.connectivity_matrix

FormGraph.connectivity_matrix(rtype='array')
-

Creates a connectivity matrix from a Network datastructure.

+

Creates a connectivity matrix from a Graph datastructure.

Parameters:
-
    -
  • network (Network) – Network data structure.

  • -
  • rtype (Literal[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional) – Format of the result.

  • -
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
Returns:
-

array_like – Constructed connectivity matrix.

+
+
array_like

Constructed connectivity matrix.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.copy.html b/latest/api/generated/compas_ags.diagrams.FormGraph.copy.html index dab5e6b8b..47e740ec2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.copy.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.copy.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + FormGraph.copy — COMPAS AGS + - compas_ags - FormGraph.copy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.copy

FormGraph.copy(cls=None)

Make an independent copy of the data object.

-
+
Parameters:
-

cls (Type[Data], optional) – The type of data object to return. +

+
clsType[compas.data.Data], optional

The type of data object to return. Defaults to the type of the current data object.

+
+
Returns:
-

Data – An independent copy of this object.

+
+
compas.data.Data

An independent copy of this object.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.count_crossings.html b/latest/api/generated/compas_ags.diagrams.FormGraph.count_crossings.html index 8cb4585a0..231415559 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.count_crossings.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.count_crossings.html @@ -1,326 +1,666 @@ + + - - + + + + + + + + FormGraph.count_crossings — COMPAS AGS + - compas_ags - FormGraph.count_crossings + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.count_crossings

FormGraph.count_crossings()
-

Count the number of crossings (pairs of crossing edges) in the network.

-
+

Count the number of crossings (pairs of crossing edges) in the graph.

+
Parameters:
-

network (Network) – A network object.

+
+
graphcompas.datastructures.Graph

A graph object.

+
+
Returns:
-

int – The number of crossings.

+
+
int

The number of crossings.

+
+

Notes

-

This algorithm assumes that the network lies in the XY plane.

+

This algorithm assumes that the graph lies in the XY plane.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.degree.html b/latest/api/generated/compas_ags.diagrams.FormGraph.degree.html index f5a715443..040ee2c27 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.degree.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.degree.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.degree — COMPAS AGS + - compas_ags - FormGraph.degree + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.degree

@@ -105,220 +568,103 @@

FormGraph.degree

Return the number of neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

int – The number of neighbors of the node.

+
+
int

The number of neighbors of the node.

+
+
+
+

See also

+
+
degree_out(), degree_in()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_in.html b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_in.html index e48e468b3..966215307 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_in.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_in.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.degree_in — COMPAS AGS + - compas_ags - FormGraph.degree_in + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.degree_in

@@ -105,220 +568,103 @@

FormGraph.degree_in

Return the numer of incoming neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

int – The number of incoming neighbors of the node.

+
+
int

The number of incoming neighbors of the node.

+
+
+
+

See also

+
+
degree(), degree_out()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.html b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.html index 370b950aa..76024210b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_matrix.html @@ -1,327 +1,664 @@ + + - - + + + + + + + + FormGraph.degree_matrix — COMPAS AGS + - compas_ags - FormGraph.degree_matrix + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.degree_matrix

FormGraph.degree_matrix(rtype='array')
-

Creates a node degree matrix from a Network datastructure.

+

Creates a degree matrix from a Graph datastructure.

Parameters:
-
    -
  • network (obj) – Network datastructure object to get data from.

  • -
  • rtype (Literal[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional) – Format of the result.

  • -
+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
Returns:
-

array_like – Constructed node degree matrix.

+
+
array_like

Constructed degree matrix.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_out.html b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_out.html index 123b77989..4bdc64225 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.degree_out.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.degree_out.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.degree_out — COMPAS AGS + - compas_ags - FormGraph.degree_out + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.degree_out

@@ -105,220 +568,103 @@

FormGraph.degree_out

Return the number of outgoing neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

int – The number of outgoing neighbors of the node.

+
+
int

The number of outgoing neighbors of the node.

+
+
+
+

See also

+
+
degree(), degree_in()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.delete_edge.html b/latest/api/generated/compas_ags.diagrams.FormGraph.delete_edge.html index 3bf7c8cfd..d1e70d333 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.delete_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.delete_edge.html @@ -1,331 +1,674 @@ + + - - + + + + + + + + FormGraph.delete_edge — COMPAS AGS + + - compas_ags - FormGraph.delete_edge + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.delete_edge

-FormGraph.delete_edge(u, v)
-

Delete an edge from the network.

+FormGraph.delete_edge(edge) +

Delete an edge from the graph.

Parameters:
-
    -
  • u (hashable) – The identifier of the first node.

  • -
  • v (hashable) – The identifier of the second node.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge as a pair of node identifiers.

+
+
Returns:
-

None

+
+
None
+
+
+

See also

+
+
delete_node()
+
add_edge()
+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.delete_node.html b/latest/api/generated/compas_ags.diagrams.FormGraph.delete_node.html index 184b82727..e130f1e5e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.delete_node.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.delete_node.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.delete_node — COMPAS AGS + + - compas_ags - FormGraph.delete_node + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.delete_node

@@ -105,224 +568,107 @@

FormGraph.delete_node

Delete a node from the graph.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

None

+
+
None
+
+
+

See also

+
+
delete_edge()
+
add_node()
+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.html index 1fa4c96b8..57772a068 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edge_attribute — COMPAS AGS + - compas_ags - FormGraph.edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_attribute

@@ -105,227 +568,115 @@

FormGraph.edge_attribute

Get or set an attribute of an edge.

Parameters:
-
    -
  • key (tuple[hashable, hashable]) – The identifier of the edge as a pair of node identifiers.

  • -
  • name (str) – The name of the attribute.

  • -
  • value (obj, optional) – The value of the attribute.

  • -
+
+
keytuple[hashable, hashable]

The identifier of the edge as a pair of node identifiers.

+
+
namestr

The name of the attribute.

+
+
valueobj, optional

The value of the attribute.

+
+
Returns:
-

object | None – The value of the attribute, or None when the function is used as a “setter”.

+
+
object | None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.html index 495cf1bda..ef2efab38 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edge_attributes — COMPAS AGS + - compas_ags - FormGraph.edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_attributes

@@ -105,229 +568,116 @@

FormGraph.edge_attributes

Get or set multiple attributes of an edge.

Parameters:
-
    -
  • key (tuple[hashable, hashable]) – The identifier of the edge.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keytuple[hashable, hashable]

The identifier of the edge.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, a dictionary of all attribute name-value pairs of the edge. +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, a dictionary of all attribute name-value pairs of the edge. If the parameter names is not empty, a list of the values corresponding to the provided names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.html index 9ed4bfc3a..bd84e7c93 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.html @@ -1,332 +1,673 @@ + + - - + + + + + + + + FormGraph.edge_coordinates — COMPAS AGS + - compas_ags - FormGraph.edge_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_coordinates

-FormGraph.edge_coordinates(u, v, axes='xyz')
+FormGraph.edge_coordinates(edge, axes='xyz')

Return the coordinates of the start and end point of an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
  • axes (str, optional) – The axes along which the coordinates should be included.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
axesstr, optional

The axes along which the coordinates should be included.

+
+
Returns:
-

    -
  • list[float] – The coordinates of the start point.

  • -
  • list[float] – The coordinates of the end point.

  • -
-

+
+
tuple[list[float], list[float]]

The coordinates of the start point. +The coordinates of the end point.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_direction.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_direction.html index cd1a5ea89..e7aa8261a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_direction.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_direction.html @@ -1,327 +1,670 @@ + + - - + + + + + + + + FormGraph.edge_direction — COMPAS AGS + - compas_ags - FormGraph.edge_direction + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_direction

-FormGraph.edge_direction(u, v)
+FormGraph.edge_direction(edge)

Return the direction vector of an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
Returns:
-

list[float] – The direction vector of the edge.

+
+
compas.geometry.Vector

The direction vector of the edge.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_end.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_end.html new file mode 100644 index 000000000..3ff90c803 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_end.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + FormGraph.edge_end — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.edge_end

+
+
+FormGraph.edge_end(edge)
+

Return the end point of an edge.

+
+
Parameters:
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The end point of the edge.

+
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_index.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_index.html new file mode 100644 index 000000000..2315bcb4e --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_index.html @@ -0,0 +1,666 @@ + + + + + + + + + + + + FormGraph.edge_index — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.edge_index

+
+
+FormGraph.edge_index()
+

Returns a dictionary that maps edge identifiers (i.e. pairs of vertex identifiers) +to the corresponding edge index in a list or array of edges.

+
+
Returns:
+
+
dict[tuple[hashable, hashable], int]

A dictionary of uv-index pairs.

+
+
+
+
+
+

See also

+
+
index_edge()
+
node_index()
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_length.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_length.html index 56bf85cb0..bd67919f5 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_length.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_length.html @@ -1,327 +1,670 @@ + + - - + + + + + + + + FormGraph.edge_length — COMPAS AGS + - compas_ags - FormGraph.edge_length + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_length

-FormGraph.edge_length(u, v)
+FormGraph.edge_length(edge)

Return the length of an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
Returns:
-

float – The length of the edge.

+
+
float

The length of the edge.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_line.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_line.html new file mode 100644 index 000000000..2179685bb --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_line.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + FormGraph.edge_line — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.html index 345acb732..32aefc78f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.html @@ -1,327 +1,670 @@ + + - - + + + + + + + + FormGraph.edge_midpoint — COMPAS AGS + - compas_ags - FormGraph.edge_midpoint + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_midpoint

-FormGraph.edge_midpoint(u, v)
+FormGraph.edge_midpoint(edge)

Return the location of the midpoint of an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
Returns:
-

list[float] – The XYZ coordinates of the midpoint.

+
+
compas.geometry.Point

The midpoint of the edge.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_point.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_point.html index 1f4b36a8b..cf2274093 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_point.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_point.html @@ -1,330 +1,674 @@ + + - - + + + + + + + + FormGraph.edge_point — COMPAS AGS + - compas_ags - FormGraph.edge_point + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_point

-FormGraph.edge_point(u, v, t=0.5)
-

Return the location of a point along an edge.

+FormGraph.edge_point(edge, t=0.5) +

Return the point at a parametric location along an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
  • t (float, optional) – The location of the point on the edge. +

    +
    edgetuple[hashable, hashable]

    The identifier of the edge.

    +
    +
    tfloat, optional

    The location of the point on the edge. If the value of t is outside the range 0-1, the point will -lie in the direction of the edge, but not on the edge vector.

  • -
+lie in the direction of the edge, but not on the edge vector.

+
+
Returns:
-

list[float] – The XYZ coordinates of the point.

+
+
compas.geometry.Point

The point at the specified location.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_sample.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_sample.html index 29d40f832..27b02ea13 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_sample.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edge_sample — COMPAS AGS + - compas_ags - FormGraph.edge_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_sample

@@ -105,220 +568,103 @@

FormGraph.edge_sample

Get the identifiers of a set of random edges.

Parameters:
-

size (int, optional) – The size of the sample.

+
+
sizeint, optional

The size of the sample.

+
+
Returns:
-

list[tuple[hashable, hashable]] – The identifiers of the random edges.

+
+
list[tuple[hashable, hashable]]

The identifiers of the random edges.

+
+
+
+

See also

+
+
node_sample()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_start.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_start.html new file mode 100644 index 000000000..bd3f716dc --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_start.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + FormGraph.edge_start — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.edge_start

+
+
+FormGraph.edge_start(edge)
+

Return the start point of an edge.

+
+
Parameters:
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
+
+
Returns:
+
+
compas.geometry.Point

The start point of the edge.

+
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_vector.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_vector.html index db60495e5..16c689c5d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edge_vector.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edge_vector.html @@ -1,327 +1,670 @@ + + - - + + + + + + + + FormGraph.edge_vector — COMPAS AGS + - compas_ags - FormGraph.edge_vector + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edge_vector

-FormGraph.edge_vector(u, v)
+FormGraph.edge_vector(edge)

Return the vector of an edge.

Parameters:
-
    -
  • u (hashable) – The key of the start node.

  • -
  • v (hashable) – The key of the end node.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge.

+
+
Returns:
-

list[float] – The vector from u to v.

+
+
compas.geometry.Vector

The vector from start to end.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edges.html index 2b8d9d4fe..6f7034cf6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edges.html @@ -1,325 +1,672 @@ + + - - + + + + + + + + FormGraph.edges — COMPAS AGS + - compas_ags - FormGraph.edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edges

FormGraph.edges(data=False)
-

Iterate over the edges of the network.

+

Iterate over the edges of the graph.

Parameters:
-

data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
Yields:
-

tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]] – If data is False, the next edge identifier (u, v). +

+
tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]]

If data is False, the next edge identifier (u, v). If data is True, the next edge identifier and its attributes as a ((u, v), attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.html index b954f2e4f..83dab82b6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edges_attribute — COMPAS AGS + - compas_ags - FormGraph.edges_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edges_attribute

@@ -105,228 +568,115 @@

FormGraph.edges_attribute

Get or set an attribute of multiple edges.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (obj, optional) – The value of the attribute.

  • -
  • keys (list[tuple[hashable, hashable]], optional) – A list of edge identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobj, optional

The value of the attribute.

+
+
keyslist[tuple[hashable, hashable]], optional

A list of edge identifiers.

+
+
Returns:
-

list[Any] | None – A list containing the value per edge of the requested attribute, +

+
list[Any] | None

A list containing the value per edge of the requested attribute, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.html index 2d7637ca9..ad5829d29 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edges_attributes — COMPAS AGS + - compas_ags - FormGraph.edges_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edges_attributes

@@ -105,231 +568,118 @@

FormGraph.edges_attributes

Get or set multiple attributes of multiple edges.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute.

  • -
  • values (list[Any], optional) – The values of the attributes.

  • -
  • keys (list[tuple[hashable, hashable]], optional) – A list of edge identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute.

+
+
valueslist[Any], optional

The values of the attributes.

+
+
keyslist[tuple[hashable, hashable]], optional

A list of edge identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If names is empty, +

+
list[dict[str, Any]] | list[list[Any]] | None

If names is empty, a list containing per edge an attribute dict with all attributes of the edge. If names is not empty, a list containing per edge a list of attribute values corresponding to the requested names. None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the edges does not exist.

+
+
KeyError

If any of the edges does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where.html index 2fe7050cc..a5ec494da 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edges_where — COMPAS AGS + - compas_ags - FormGraph.edges_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edges_where

@@ -105,227 +568,111 @@

FormGraph.edges_where

Get edges for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the edge attributes in addition to the edge identifiers.

  • -
  • **kwargs (dict[str, Any], optional) – Additional conditions provided as named function arguments.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge identifiers.

+
+
**kwargsdict[str, Any], optional

Additional conditions provided as named function arguments.

+
+
Yields:
-

tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]] – If data is False, the next edge identifier (u, v). +

+
tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]]

If data is False, the next edge identifier (u, v). If data is True, the next edge identifier and its attributes as a ((u, v), attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.html b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.html index 3eec1e583..7b7ecf8ba 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.edges_where_predicate — COMPAS AGS + + - compas_ags - FormGraph.edges_where_predicate + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.edges_where_predicate

@@ -105,231 +568,114 @@

FormGraph.edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. +

    +
    predicatecallable

    The condition you want to evaluate. The callable takes 2 parameters: an edge identifier (tuple of node identifiers) and edge attributes, -and should return True or False.

  • -
  • data (bool, optional) – If True, yield the edge attributes in addition to the edge attributes.

  • -
+and should return True or False.

+
+
databool, optional

If True, yield the edge attributes in addition to the edge attributes.

+
+
Yields:
-

tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]] – If data is False, the next edge identifier (u, v). +

+
tuple[hashable, hashable] | tuple[tuple[hashable, hashable], dict[str, Any]]

If data is False, the next edge identifier (u, v). If data is True, the next edge identifier and its attributes as a ((u, v), attr) tuple.

+
+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.embed.html b/latest/api/generated/compas_ags.diagrams.FormGraph.embed.html index 87d872d8b..ea66fa041 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.embed.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.embed.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + FormGraph.embed — COMPAS AGS + - compas_ags - FormGraph.embed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.html b/latest/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.html index 3dce7e79f..dc225dd26 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.html @@ -1,332 +1,673 @@ + + - - + + + + + + + + FormGraph.embed_in_plane — COMPAS AGS + - compas_ags - FormGraph.embed_in_plane + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.embed_in_plane

-FormGraph.embed_in_plane(fixed=None, straightline=True)
-

Embed the network in the plane.

-
+FormGraph.embed_in_plane(fixed=None) +

Embed the graph in the plane.

+
Parameters:
-
    -
  • network (Network) – A network object.

  • -
  • fixed ([hashable, hashable], optional) – Two fixed points.

  • -
  • straightline (bool, optional) – If True, embed using straight lines only.

  • -
+
+
graphcompas.datastructures.Graph

A graph object.

+
+
fixed[hashable, hashable], optional

Two fixed points.

+
+
Returns:
-

bool – True if the embedding was successful. +

+
bool

True if the embedding was successful. False otherwise.

+
+
Raises:
-

ImportError – If NetworkX is not installed.

+
+
ImportError

If NetworkX is not installed.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.exploded.html b/latest/api/generated/compas_ags.diagrams.FormGraph.exploded.html new file mode 100644 index 000000000..8811a3445 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.exploded.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormGraph.exploded — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.exploded

+
+
+FormGraph.exploded()
+

Explode the graph into its connected components.

+
+
Returns:
+
+
list[compas.datastructures.Graph]
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.find_crossings.html b/latest/api/generated/compas_ags.diagrams.FormGraph.find_crossings.html index 2a513a2bb..f4ae386c3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.find_crossings.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.find_crossings.html @@ -1,326 +1,666 @@ + + - - + + + + + + + + FormGraph.find_crossings — COMPAS AGS + - compas_ags - FormGraph.find_crossings + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.find_crossings

FormGraph.find_crossings()
-

Identify all pairs of crossing edges in a network.

-
+

Identify all pairs of crossing edges in a graph.

+
Parameters:
-

network (Network) – A network object.

+
+
graphcompas.datastructures.Graph

A graph object.

+
+
Returns:
-

list[tuple[tuple[hashable, hashable], tuple[hashable, hashable]]] – A list of edge pairs, with each edge represented by two vertex keys.

+
+
list[tuple[tuple[hashable, hashable], tuple[hashable, hashable]]]

A list of edge pairs, with each edge represented by two vertex keys.

+
+

Notes

-

This algorithm assumes that the network lies in the XY plane.

+

This algorithm assumes that the graph lies in the XY plane.

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.find_cycles.html b/latest/api/generated/compas_ags.diagrams.FormGraph.find_cycles.html index 43ccb13da..e145886ff 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.find_cycles.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.find_cycles.html @@ -1,337 +1,673 @@ + + - - + + + + + + + + FormGraph.find_cycles — COMPAS AGS + + - compas_ags - FormGraph.find_cycles + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.find_cycles

FormGraph.find_cycles(breakpoints=None)
-

Find the faces of a network.

-
+

Find the faces of a graph.

+
Parameters:
-
    -
  • network (Network) – The network object.

  • -
  • breakpoints (list, optional) – The vertices at which to break the found faces.

  • -
+
+
graphcompas.datastructures.Graph

The graph object.

+
+
breakpointslist, optional

The vertices at which to break the found faces.

+
+
-

Notes

-

Breakpoints are primarily used to break up the outside face in between -specific vertices. For example, in structural applications involving dual -diagrams, any vertices where external forces are applied (loads or reactions) -should be input as breakpoints.

Warning

This algorithms is essentially a wall follower (a type of maze-solving algorithm). -It relies on the geometry of the network to be repesented as a planar, +It relies on the geometry of the graph to be repesented as a planar, straight-line embedding. It determines an ordering of the neighboring vertices -around each vertex, and then follows the walls of the network, always +around each vertex, and then follows the walls of the graph, always taking turns in the same direction.

+

Notes

+

Breakpoints are primarily used to break up the outside face in between +specific vertices. For example, in structural applications involving dual +diagrams, any vertices where external forces are applied (loads or reactions) +should be input as breakpoints.

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_edges.html index e06a29a60..c50c7e8ff 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_edges.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.from_edges — COMPAS AGS + - compas_ags - FormGraph.from_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_edges

@@ -105,220 +568,102 @@

FormGraph.from_edges

Create a new graph instance from information about the edges.

Parameters:
-

edges (list[tuple[hashable, hashable]]) – The edges of the graph as pairs of node identifiers.

+
+
edgeslist[tuple[hashable, hashable]]

The edges of the graph as pairs of node identifiers.

+
+
Returns:
-

Graph

+
+
compas.datastructures.Graph
+
+
+

See also

+
+
from_networkx()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_json.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_json.html index 182711353..411c3fdbb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_json.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_json.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormGraph.from_json — COMPAS AGS + - compas_ags - FormGraph.from_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_json

classmethod FormGraph.from_json(filepath)
-

Construct an object from serialized data contained in a JSON file.

+

Construct an object of this type from a JSON file.

Parameters:
-

filepath (path string | file-like object | URL string) – The path, file or URL to the file for serialization.

+
+
filepathstr

The path to the JSON file.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the file has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the file is not a compas.data.Data.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.html index e0b49c748..2ef109a52 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormGraph.from_jsonstring — COMPAS AGS + - compas_ags - FormGraph.from_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_jsonstring

classmethod FormGraph.from_jsonstring(string)
-

Construct an object from serialized data contained in a JSON string.

+

Construct an object of this type from a JSON string.

Parameters:
-

string (str) – The object as a JSON string.

+
+
stringstr

The JSON string.

+
+
Returns:
-

Data – An instance of this object type if the data contained in the JSON file has the correct schema.

+
+
compas.data.Data

An instance of this object type if the data contained in the string has the correct schema.

+
+
+
+
Raises:
+
+
TypeError

If the data in the string is not a compas.data.Data.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_lines.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_lines.html index 0c472a89c..dec1bff86 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_lines.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_lines.html @@ -1,327 +1,674 @@ + + - - + + + + + + + + FormGraph.from_lines — COMPAS AGS + - compas_ags - FormGraph.from_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_lines

classmethod FormGraph.from_lines(lines, precision=None)
-

Construct a network from a set of lines represented by their start and end point coordinates.

+

Construct a graph from a set of lines represented by their start and end point coordinates.

Parameters:
-
    -
  • lines (list[tuple[list[float, list[float]]]]) – A list of pairs of point coordinates.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
lineslist[tuple[list[float, list[float]]]]

A list of pairs of point coordinates.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

Network – A network object.

+
+
compas.datastructures.Graph

A graph object.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_networkx.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_networkx.html index 0c8c4f569..1873ad415 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_networkx.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_networkx.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.from_networkx — COMPAS AGS + - compas_ags - FormGraph.from_networkx + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_networkx

@@ -105,220 +568,103 @@

FormGraph.from_networkx

Create a new graph instance from a NetworkX DiGraph instance.

Parameters:
-

graph (networkx.DiGraph) – NetworkX instance of a directed graph.

+
+
graphnetworkx.DiGraph

NetworkX instance of a directed graph.

+
+
Returns:
-

Graph

+
+
compas.datastructures.Graph
+
+
+

See also

+
+
to_networkx()
+
from_edges()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.html index eeb7ee10e..6577b9736 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.html @@ -1,327 +1,672 @@ + + - - + + + + + + + + FormGraph.from_nodes_and_edges — COMPAS AGS + - compas_ags - FormGraph.from_nodes_and_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_nodes_and_edges

classmethod FormGraph.from_nodes_and_edges(nodes, edges)
-

Construct a network from nodes and edges.

+

Construct a graph from nodes and edges.

Parameters:
-
    -
  • nodes (list[list[float]] | dict[hashable, list[float]]) – A list of node coordinates or a dictionary of keys pointing to node coordinates to specify keys.

  • -
  • edges (list[tuple[hashable, hshable]])

  • -
+
+
nodeslist[list[float]] | dict[hashable, list[float]]

A list of node coordinates or a dictionary of keys pointing to node coordinates to specify keys.

+
+
edgeslist[tuple[hashable, hshable]]
+
Returns:
-

Network – A network object.

+
+
compas.datastructures.Graph

A graph object.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_obj.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_obj.html index ccd9cc057..6c23d44ba 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_obj.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_obj.html @@ -1,327 +1,674 @@ + + - - + + + + + + + + FormGraph.from_obj — COMPAS AGS + - compas_ags - FormGraph.from_obj + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.from_obj

classmethod FormGraph.from_obj(filepath, precision=None)
-

Construct a network from the data contained in an OBJ file.

+

Construct a graph from the data contained in an OBJ file.

Parameters:
-
    -
  • filepath (path string | file-like object | URL string) – A path, a file-like object or a URL pointing to a file.

  • -
  • precision (str, optional) – The precision of the geometric map that is used to connect the lines.

  • -
+
+
filepathpath string | file-like object | URL string

A path, a file-like object or a URL pointing to a file.

+
+
precision: str, optional

The precision of the geometric map that is used to connect the lines.

+
+
Returns:
-

Network – A network object.

+
+
compas.datastructures.Graph

A graph object.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.html b/latest/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.html index 6f905e4ba..508a51433 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.html @@ -1,327 +1,673 @@ + + - - + + + + + + + + FormGraph.from_pointcloud — COMPAS AGS + - compas_ags - FormGraph.from_pointcloud + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.gkey_node.html b/latest/api/generated/compas_ags.diagrams.FormGraph.gkey_node.html index c20b7f69e..5cffa2f7b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.gkey_node.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.gkey_node.html @@ -1,325 +1,673 @@ + + - - + + + + + + + + FormGraph.gkey_node — COMPAS AGS + - compas_ags - FormGraph.gkey_node + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.gkey_node

FormGraph.gkey_node(precision=None)

Returns a dictionary that maps geometric keys of a certain precision -to the keys of the corresponding nodes.

+to the identifiers of the corresponding nodes.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[str, hashable] – A dictionary of geometric key-key pairs.

+
+
dict[str, hashable]

A dictionary of (geometric key, node) pairs.

+
+
+
+

See also

+
+
node_gkey()
+
compas.Tolerance.geometric_key()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.has_edge.html b/latest/api/generated/compas_ags.diagrams.FormGraph.has_edge.html index df44abcae..c2db070dd 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.has_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.has_edge.html @@ -1,328 +1,672 @@ + + - - + + + + + + + + FormGraph.has_edge — COMPAS AGS + - compas_ags - FormGraph.has_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.has_node.html b/latest/api/generated/compas_ags.diagrams.FormGraph.has_node.html index 746762182..472477977 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.has_node.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.has_node.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormGraph.has_node — COMPAS AGS + - compas_ags - FormGraph.has_node + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.has_node

FormGraph.has_node(key)
-

Verify if a specific node is present in the network.

+

Verify if a specific node is present in the graph.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

bool – True or False.

+
+
bool

True or False.

+
+
+
+

See also

+
+
has_edge()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.html b/latest/api/generated/compas_ags.diagrams.FormGraph.html index 36fb2a0fa..1a36c6584 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.html @@ -1,505 +1,927 @@ + + - - + + + + + + + + FormGraph — COMPAS AGS - compas_ags - compas_ags.diagrams.FormGraph + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
-

compas_ags.diagrams.FormGraph

+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph

-class compas_ags.diagrams.FormGraph[source]
-

Bases: compas.datastructures.network.network.Network

+class compas_ags.diagrams.FormGraph +

Bases: Graph

A graph representing the geometry and connectivity of the lines of a form diagram.

-
-
-__init__()[source]
-
-

Methods

- ---- +
+ + + + + + + + + + + + + + +

embed

Compute a geometry for the graph that embeds it in the plane.

is_2d

Verify that all nodes of the graph lie in a horizontal plane.

is_planar_embedding

Verify that the current embedding of the graph is planar.

node_index

Returns a dictionary that maps node identifiers to their corresponding index in a node list or array.

+

Inherited Methods

+ - + - - + + - + - + - - + + - - + + - - + + - - + + + + + - - + + - + + + + + + + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + + + + + + + - + + + + - - + + - + - + + + + - - + + - + - + - + - + - - - - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - + - - + + - - + + - - - - - - - + - + - - + + - - + + - - + + - - + + - - - - - + + - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - - + + - + - - + + + + + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - -

ToString()

ToString

Converts the instance to a string.

__init__()

aabb

Calculate the axis aligned bounding box of the graph.

add_edge(u, v[, attr_dict])

add_edge

Add an edge and specify its attributes.

add_node([key, attr_dict])

add_node

Add a node and specify its attributes (optional).

adjacency_matrix([rtype])

Creates a node adjacency matrix from a Network datastructure.

adjacency_matrix

Creates a node adjacency matrix from a Graph datastructure.

clear()

Clear all the network data.

clear

Clear all the graph data.

complement([cls])

Generate the complement network of a network.

complement

Generate the complement of a graph.

connected_edges(key)

Return the edges connected to a node.

compute_aabb

Compute the axis-aligned bounding box of the datastructure.

compute_obb

Compute the oriented bounding box of the datastructure.

connectivity_matrix([rtype])

Creates a connectivity matrix from a Network datastructure.

connected_edges

Get groups of connected edges.

copy([cls])

connected_nodes

Get groups of connected nodes.

connectivity_matrix

Creates a connectivity matrix from a Graph datastructure.

copy

Make an independent copy of the data object.

count_crossings()

Count the number of crossings (pairs of crossing edges) in the network.

count_crossings

Count the number of crossings (pairs of crossing edges) in the graph.

degree(key)

degree

Return the number of neighbors of a node.

degree_in(key)

degree_in

Return the numer of incoming neighbors of a node.

degree_matrix([rtype])

Creates a node degree matrix from a Network datastructure.

degree_matrix

Creates a degree matrix from a Graph datastructure.

degree_out(key)

degree_out

Return the number of outgoing neighbors of a node.

delete_edge(u, v)

Delete an edge from the network.

delete_edge

Delete an edge from the graph.

delete_node(key)

delete_node

Delete a node from the graph.

edge_attribute(key, name[, value])

edge_attribute

Get or set an attribute of an edge.

edge_attributes(key[, names, values])

edge_attributes

Get or set multiple attributes of an edge.

edge_coordinates(u, v[, axes])

edge_coordinates

Return the coordinates of the start and end point of an edge.

edge_direction(u, v)

edge_direction

Return the direction vector of an edge.

edge_length(u, v)

edge_end

Return the end point of an edge.

edge_index

Returns a dictionary that maps edge identifiers (i.e.

edge_length

Return the length of an edge.

edge_midpoint(u, v)

edge_line

Return the line of an edge.

edge_midpoint

Return the location of the midpoint of an edge.

edge_point(u, v[, t])

Return the location of a point along an edge.

edge_point

Return the point at a parametric location along an edge.

edge_sample([size])

edge_sample

Get the identifiers of a set of random edges.

edge_vector(u, v)

edge_start

Return the start point of an edge.

edge_vector

Return the vector of an edge.

edges([data])

Iterate over the edges of the network.

edges

Iterate over the edges of the graph.

edges_attribute(name[, value, keys])

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes([names, values, keys])

edges_attributes

Get or set multiple attributes of multiple edges.

edges_where([conditions, data])

edges_where

Get edges for which a certain condition or set of conditions is true.

edges_where_predicate(predicate[, data])

edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

embed([fixed, straightline])

Compute a geometry for the graph that embeds it in the plane.

embed_in_plane([fixed, straightline])

Embed the network in the plane.

embed_in_plane

Embed the graph in the plane.

find_crossings()

Identify all pairs of crossing edges in a network.

exploded

Explode the graph into its connected components.

find_cycles([breakpoints])

Find the faces of a network.

find_crossings

Identify all pairs of crossing edges in a graph.

from_data(data)

Construct an object of this type from the provided data.

find_cycles

Find the faces of a graph.

from_edges(edges)

from_edges

Create a new graph instance from information about the edges.

from_json(filepath)

Construct an object from serialized data contained in a JSON file.

from_json

Construct an object of this type from a JSON file.

from_jsonstring(string)

Construct an object from serialized data contained in a JSON string.

from_jsonstring

Construct an object of this type from a JSON string.

from_lines(lines[, precision])

Construct a network from a set of lines represented by their start and end point coordinates.

from_lines

Construct a graph from a set of lines represented by their start and end point coordinates.

from_networkx(graph)

from_networkx

Create a new graph instance from a NetworkX DiGraph instance.

from_nodes_and_edges(nodes, edges)

Construct a network from nodes and edges.

from_obj(filepath[, precision])

Construct a network from the data contained in an OBJ file.

from_nodes_and_edges

Construct a graph from nodes and edges.

from_pointcloud(cloud[, degree])

Construct a network from random connections between the points of a pointcloud.

from_obj

Construct a graph from the data contained in an OBJ file.

get_any_edge()

Get the identifier of a random edge.

from_pointcloud

Construct a graph from random connections between the points of a pointcloud.

get_any_edges(n)

Get the identifiers of a set of random edges.

gkey_node

Returns a dictionary that maps geometric keys of a certain precision to the identifiers of the corresponding nodes.

get_any_node()

Get the identifier of a random node.

has_edge

Verify if the graph contains a specific edge.

get_any_nodes(n[, exclude_leaves])

Get a list of identifiers of a random set of n nodes.

has_node

Verify if a specific node is present in the graph.

gkey_key([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding nodes.

index_edge

Returns a dictionary that maps edges in a list to the corresponding vertex identifier pairs.

gkey_node([precision])

Returns a dictionary that maps geometric keys of a certain precision to the keys of the corresponding nodes.

has_edge(u, v[, directed])

Verify if the network contains a specific edge.

has_node(key)

Verify if a specific node is present in the network.

index_key()

index_node

Returns a dictionary that maps the indices of a node list to keys in a node dictionary.

index_uv()

Returns a dictionary that maps edges in a list to the corresponding vertex key pairs.

is_connected

Verify that the graph is connected.

is_2d()

Verify that all nodes of the graph lie in a horizontal plane.

is_crossed

Verify if a graph has crossing edges.

is_connected()

Verify that the network is connected.

is_crossed()

Verify that the current embedding of the graph has crossing edges.

is_leaf(key)

is_leaf

Verify if a node is a leaf.

is_node_connected(key)

is_node_connected

Verify if a specific node is connected.

is_planar()

Verify that the graph has a planar embedding.

is_planar

Check if the graph is planar.

is_planar_embedding()

Verify that the current embedding of the graph is planar.

is_xy

Verify that a graph lies in the XY plane.

is_xy()

Verify that a network lies in the XY plane.

join_edges

Join the edges incidental on the given node, if there are exactly two incident edges.

key_gkey([precision])

Returns a dictionary that maps node dictionary keys to the corresponding geometric key up to a certain precision.

laplacian_matrix

Creates a Laplacian matrix from a Graph datastructure.

key_index()

Returns a dictionary that maps node identifiers to their corresponding index in a node list or array.

laplacian_matrix([normalize, rtype])

Construct a Laplacian matrix from a Network datastructure.

leaves

Return all leaves of the graph.

leaves()

Return all leaves of the network.

neighborhood(key[, ring])

neighborhood

Return the nodes in the neighborhood of a node.

neighbors(key)

neighbors

Return the neighbors of a node.

neighbors_in(key)

neighbors_in

Return the incoming neighbors of a node.

neighbors_out(key)

neighbors_out

Return the outgoing neighbors of a node.

network_adjacency_matrix([rtype])

Creates a node adjacency matrix from a Network datastructure.

network_connectivity_matrix([rtype])

Creates a connectivity matrix from a Network datastructure.

network_degree_matrix([rtype])

Creates a node degree matrix from a Network datastructure.

network_embed_in_plane([fixed, straightline])

Embed the network in the plane.

network_is_planar()

Check if the network is planar.

network_is_planar_embedding()

Verify that a network is embedded in the plane without crossing edges.

network_laplacian_matrix([normalize, rtype])

Construct a Laplacian matrix from a Network datastructure.

node_attribute(key, name[, value])

node_attribute

Get or set an attribute of a node.

node_attributes(key[, names, values])

node_attributes

Get or set multiple attributes of a node.

node_coordinates(key[, axes])

node_coordinates

Return the coordinates of a node.

node_gkey([precision])

Returns a dictionary that maps node dictionary keys to the corresponding geometric key up to a certain precision.

node_edges

Return the edges connected to a node.

node_index()

node_gkey

Returns a dictionary that maps node identifiers to the corresponding geometric key up to a certain precision.

node_laplacian(key)

node_laplacian

Return the vector from the node to the centroid of its 1-ring neighborhood.

node_neighborhood_centroid(key)

Compute the centroid of the neighboring nodes.

node_neighborhood_centroid

Return the computed centroid of the neighboring nodes.

node_point

Return the point of a node.

node_sample([size])

node_sample

Get a list of identifiers of a random set of n nodes.

nodes([data])

Iterate over the nodes of the network.

nodes

Iterate over the nodes of the graph.

nodes_attribute(name[, value, keys])

nodes_attribute

Get or set an attribute of multiple nodes.

nodes_attributes([names, values, keys])

nodes_attributes

Get or set multiple attributes of multiple nodes.

nodes_where([conditions, data])

nodes_where

Get nodes for which a certain condition or set of conditions is true.

nodes_where_predicate(predicate[, data])

nodes_where_predicate

Get nodes for which a certain condition or set of conditions is true using a lambda function.

number_of_edges()

number_of_edges

Compute the number of edges of the graph.

number_of_nodes()

number_of_nodes

Compute the number of nodes of the graph.

sha256([as_string])

Compute a hash of the data for comparison during version control using the sha256 algorithm.

obb

Calculate the oriented bounding box of the graph.

shortest_path(start, end)

Find the shortest path between two nodes of the network.

rotate

Rotate the datastructure.

smooth([fixed, kmax, damping, callback, ...])

Smooth a network by moving every free node to the centroid of its neighbors.

rotated

Returns a rotated copy of this geometry.

split_edge(u, v[, t])

Split and edge by inserting a node along its length.

scale

Scale the datastructure.

summary()

Return a summary of the graph.

scaled

Returns a scaled copy of this geometry.

to_data()

Convert an object to its native data representation.

to_json(filepath[, pretty])

Serialize the data representation of an object to a JSON file.

to_jsonstring([pretty])

Serialize the data representation of an object to a JSON string.

to_lines()

Return the lines of the network as pairs of start and end point coordinates.

to_networkx()

Create a new NetworkX graph instance from a graph.

to_nodes_and_edges()

Return the nodes and edges of a network.

to_obj()

Write the network to an OBJ file.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

to_points()

Return the coordinates of the network.

shortest_path

Find the shortest path between two nodes using the A* algorithm.

transform(transformation)

Transform a network.

smooth

Smooth a graph by moving every free node to the centroid of its neighbors.

transformed(transformation)

Return a transformed copy of the network.

split_edge

Split and edge by inserting a node along its length.

unset_edge_attribute(key, name)

Unset the attribute of an edge.

summary

Return a summary of the graph.

unset_node_attribute(key, name)

Unset the attribute of a node.

to_json

Convert an object to its native data representation and save it to a JSON file.

update_dea([attr_dict])

Update the default edge attributes.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

update_default_edge_attributes([attr_dict])

Update the default edge attributes.

to_lines

Return the lines of the graph as pairs of start and end point coordinates.

update_default_node_attributes([attr_dict])

Update the default node attributes.

to_networkx

Create a new NetworkX graph instance from a graph.

update_dna([attr_dict])

Update the default node attributes.

to_nodes_and_edges

Return the nodes and edges of a graph.

uv_index()

Returns a dictionary that maps edge keys (i.e.

to_obj

Write the graph to an OBJ file.

validate_data()

Validate the object's data against its data schema.

to_points

Return the coordinates of the graph.

validate_json()

Validate the object's data against its json schema.

transform

Transform all nodes of the graph.

-

Attributes

- ---- - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

DATASCHEMA

The schema of the data of this object.

transform_numpy

Transforms the data structure.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

transformed

Returns a transformed copy of this data structure.

JSONSCHEMANAME

The schema of the data of this object in JSON format.

transformed_numpy

Returns a transformed copy of this data structure.

data

translate

Translate the datastructure.

dtype

translated

Returns a translated copy of this geometry.

guid

unset_edge_attribute

Unset the attribute of an edge.

jsondefinitions

Reusable schema definitions.

unset_node_attribute

Unset the attribute of a node.

jsonstring

update_default_edge_attributes

Update the default edge attributes.

jsonvalidator

JSON schema validator for draft 7.

update_default_node_attributes

Update the default node attributes.

name

validate_data

Validate the data against the object's data schema.

@@ -507,207 +929,81 @@

compas_ags.diagrams.FormGraph

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.index_edge.html b/latest/api/generated/compas_ags.diagrams.FormGraph.index_edge.html new file mode 100644 index 000000000..de78dca1a --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.index_edge.html @@ -0,0 +1,666 @@ + + + + + + + + + + + + FormGraph.index_edge — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.index_edge

+
+
+FormGraph.index_edge()
+

Returns a dictionary that maps edges in a list to the corresponding +vertex identifier pairs.

+
+
Returns:
+
+
dict[int, tuple[hashable, hashable]]

A dictionary of index-uv pairs.

+
+
+
+
+
+

See also

+
+
edge_index()
+
index_node()
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.index_node.html b/latest/api/generated/compas_ags.diagrams.FormGraph.index_node.html new file mode 100644 index 000000000..6e2cc2354 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.index_node.html @@ -0,0 +1,665 @@ + + + + + + + + + + + + FormGraph.index_node — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.index_node

+
+
+FormGraph.index_node()
+

Returns a dictionary that maps the indices of a node list to keys in a node dictionary.

+
+
Returns:
+
+
dict[int, hashable]

A dictionary of index-node pairs.

+
+
+
+
+
+

See also

+
+
node_index()
+
index_edge()
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_2d.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_2d.html index 40b55c4e4..f9343e7e0 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_2d.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_2d.html @@ -1,321 +1,657 @@ + + - - + + + + + + + + FormGraph.is_2d — COMPAS AGS + - compas_ags - FormGraph.is_2d + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_connected.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_connected.html index 9e3e9f19a..ff2028b61 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_connected.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_connected.html @@ -1,336 +1,669 @@ + + - - + + + + + + + + FormGraph.is_connected — COMPAS AGS + - compas_ags - FormGraph.is_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.is_connected

FormGraph.is_connected()
-

Verify that the network is connected.

+

Verify that the graph is connected.

-
Parameters:
-

network (Network) – A network data structure.

-
-
Returns:
-

bool – True, if the network is connected. +

Returns:
+
+
bool

True, if the graph is connected. False, otherwise.

+
+

Notes

-

A network is connected if for every two vertices a path exists connecting them.

+

A graph is connected if for every two vertices a path exists connecting them.

Examples

-
>>> import compas
->>> from compas.datastructures import Network
->>> from compas.datastructures import network_is_connected
->>> network = Network.from_obj(compas.get('lines.obj'))
->>> network_is_connected(network)
+
>>> import compas
+>>> from compas.datastructures import Graph
+>>> graph = Graph.from_obj(compas.get("lines.obj"))
+>>> graph.is_connected()
 True
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_crossed.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_crossed.html index bd2237eee..7920bb589 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_crossed.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_crossed.html @@ -1,321 +1,667 @@ + + - - + + + + + + + + FormGraph.is_crossed — COMPAS AGS + - compas_ags - FormGraph.is_crossed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_leaf.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_leaf.html index a5c4a0d5e..6a6e365c3 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_leaf.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_leaf.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.is_leaf — COMPAS AGS + - compas_ags - FormGraph.is_leaf + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.is_leaf

@@ -105,222 +568,106 @@

FormGraph.is_leaf

Verify if a node is a leaf.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

bool – True or False.

+
+
bool

True or False.

+
+
+
+

See also

+
+
leaves()
+
is_node_connected()
+
+

Notes

A node is a leaf if it has only one neighbor.

- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.html index 9cf08fa80..1ea094493 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_node_connected.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.is_node_connected — COMPAS AGS + - compas_ags - FormGraph.is_node_connected + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.is_node_connected

@@ -105,220 +568,103 @@

FormGraph.is_node_connected

Verify if a specific node is connected.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

bool – True or False.

+
+
bool

True or False.

+
+
+
+

See also

+
+
is_leaf()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar.html index 9e142a56f..ef07bfd4b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar.html @@ -1,321 +1,676 @@ + + - - + + + + + + + + FormGraph.is_planar — COMPAS AGS + - compas_ags - FormGraph.is_planar + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.html index fc3cc90a6..e07307198 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.html @@ -1,316 +1,650 @@ + + - - + + + + + + + + FormGraph.is_planar_embedding — COMPAS AGS + - compas_ags - FormGraph.is_planar_embedding + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.is_xy.html b/latest/api/generated/compas_ags.diagrams.FormGraph.is_xy.html index 816be8c49..ec6fb1cf2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.is_xy.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.is_xy.html @@ -1,325 +1,665 @@ + + - - + + + + + + + + FormGraph.is_xy — COMPAS AGS + - compas_ags - FormGraph.is_xy + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.is_xy

FormGraph.is_xy()
-

Verify that a network lies in the XY plane.

-
+

Verify that a graph lies in the XY plane.

+
Parameters:
-

network (Network) – A network object.

+
+
graphcompas.datastructures.Graph

A graph object.

+
+
Returns:
-

bool – True if the Z coordinate of all vertices is zero. +

+
bool

True if the Z coordinate of all vertices is zero. False otherwise.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.join_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.join_edges.html new file mode 100644 index 000000000..ae865198f --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.join_edges.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + FormGraph.join_edges — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.join_edges

+
+
+FormGraph.join_edges(key)
+

Join the edges incidental on the given node, if there are exactly two incident edges.

+
+
Parameters:
+
+
graphcompas.geometry.Graph

A graph data structure.

+
+
keyhashable

The node identifier.

+
+
+
+
Returns:
+
+
None

The graph is modified in place.

+
+
+
+
+

Notes

+

A new edge is created to replace the two joined edges. +The attributes of the joined edges are not transferred to the new edge. +Therefore, the new edge has only default edge attributes.

+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.html b/latest/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.html index da3f50702..246031962 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.html @@ -1,118 +1,585 @@ + + - - + + + + + + + + FormGraph.laplacian_matrix — COMPAS AGS + - compas_ags - FormGraph.laplacian_matrix + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.laplacian_matrix

FormGraph.laplacian_matrix(normalize=False, rtype='array')
-

Construct a Laplacian matrix from a Network datastructure.

+

Creates a Laplacian matrix from a Graph datastructure.

Parameters:
-
    -
  • network (Network) – Network data structure.

  • -
  • normalize (bool, optional) – If True, normalize the entries such that the value on the diagonal is 1.

  • -
  • rtype (Literal[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional) – Format of the result.

  • -
+
+
normalizebool, optional

If True, normalize the entries such that the value on the diagonal is 1.

+
+
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

+
+
Returns:
-

array_like – Constructed Laplacian matrix.

+
+
array_like

Constructed Laplacian matrix.

+
+

Notes

@@ -123,210 +590,81 @@

FormGraph.laplacian_matrix

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.leaves.html b/latest/api/generated/compas_ags.diagrams.FormGraph.leaves.html index f7aa9a4a2..164c38689 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.leaves.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.leaves.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormGraph.leaves — COMPAS AGS + - compas_ags - FormGraph.leaves + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.neighborhood.html b/latest/api/generated/compas_ags.diagrams.FormGraph.neighborhood.html index abb1f8806..9468c93be 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.neighborhood.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.neighborhood.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.neighborhood — COMPAS AGS + - compas_ags - FormGraph.neighborhood + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.neighborhood

@@ -105,223 +568,105 @@

FormGraph.neighborhood

Return the nodes in the neighborhood of a node.

Parameters:
-
    -
  • key (hashable) – The identifier of the node.

  • -
  • ring (int, optional) – The size of the neighborhood.

  • -
+
+
keyhashable

The identifier of the node.

+
+
ringint, optional

The size of the neighborhood.

+
+
Returns:
-

list[hashable] – A list of node identifiers.

+
+
list[hashable]

A list of node identifiers.

+
+
+
+

See also

+
+
neighbors()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors.html b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors.html index f7351a1b7..5dbe6f83b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.neighbors — COMPAS AGS + - compas_ags - FormGraph.neighbors + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.neighbors

@@ -105,220 +568,104 @@

FormGraph.neighbors

Return the neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

list[hashable] – A list of node identifiers.

+
+
list[hashable]

A list of node identifiers.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.html b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.html index 9d9f7e627..40f822b20 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_in.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.neighbors_in — COMPAS AGS + - compas_ags - FormGraph.neighbors_in + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.neighbors_in

@@ -105,220 +568,103 @@

FormGraph.neighbors_in

Return the incoming neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

list[hashable] – A list of node identifiers.

+
+
list[hashable]

A list of node identifiers.

+
+
+
+

See also

+
+
neighbors(), neighbors_out()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.html b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.html index 1eef8d7e1..6273d2c3f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.neighbors_out.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.neighbors_out — COMPAS AGS + - compas_ags - FormGraph.neighbors_out + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.neighbors_out

@@ -105,220 +568,103 @@

FormGraph.neighbors_out

Return the outgoing neighbors of a node.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

list[hashable] – A list of node identifiers.

+
+
list[hashable]

A list of node identifiers.

+
+
+
+

See also

+
+
neighbors(), neighbors_in()
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_attribute.html index 0b817ef38..62d3dd05a 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.node_attribute — COMPAS AGS + - compas_ags - FormGraph.node_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_attribute

@@ -105,228 +568,116 @@

FormGraph.node_attribute

Get or set an attribute of a node.

Parameters:
-
    -
  • key (hashable) – The node identifier.

  • -
  • name (str) – The name of the attribute

  • -
  • value (obj, optional) – The value of the attribute.

  • -
+
+
keyhashable

The node identifier.

+
+
namestr

The name of the attribute

+
+
valueobj, optional

The value of the attribute.

+
+
Returns:
-

obj or None – The value of the attribute, +

+
obj or None

The value of the attribute, or None when the function is used as a “setter”.

+
+
Raises:
-

KeyError – If the node does not exist.

+
+
KeyError

If the node does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_attributes.html index c2015cf86..7cda3a131 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.node_attributes — COMPAS AGS + - compas_ags - FormGraph.node_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_attributes

@@ -105,231 +568,118 @@

FormGraph.node_attributes

Get or set multiple attributes of a node.

Parameters:
-
    -
  • key (hashable) – The identifier of the node.

  • -
  • names (list[str], optional) – A list of attribute names.

  • -
  • values (list[Any], optional) – A list of attribute values.

  • -
+
+
keyhashable

The identifier of the node.

+
+
nameslist[str], optional

A list of attribute names.

+
+
valueslist[Any], optional

A list of attribute values.

+
+
Returns:
-

dict[str, Any] | list[Any] | None – If the parameter names is empty, +

+
dict[str, Any] | list[Any] | None

If the parameter names is empty, the function returns a dictionary of all attribute name-value pairs of the node. If the parameter names is not empty, the function returns a list of the values corresponding to the requested attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If the node does not exist.

+
+
KeyError

If the node does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.html index 8bebf8618..aeba327e9 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_coordinates.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.node_coordinates — COMPAS AGS + - compas_ags - FormGraph.node_coordinates + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_coordinates

@@ -105,223 +568,105 @@

FormGraph.node_coordinates

Return the coordinates of a node.

Parameters:
-
    -
  • key (hashable) – The identifier of the node.

  • -
  • axes (str, optional) – The components of the node coordinates to return.

  • -
+
+
keyhashable

The identifier of the node.

+
+
axesstr, optional

The components of the node coordinates to return.

+
+
Returns:
-

list[float] – The coordinates of the node.

+
+
list[float]

The coordinates of the node.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_edges.html new file mode 100644 index 000000000..991ea6952 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_edges.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormGraph.node_edges — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.node_edges

+
+
+FormGraph.node_edges(key)
+

Return the edges connected to a node.

+
+
Parameters:
+
+
keyhashable

The identifier of the node.

+
+
+
+
Returns:
+
+
list[tuple[hashable, hashable]]

The edges connected to the node.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_gkey.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_gkey.html index 8fca93169..07cb3f580 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_gkey.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_gkey.html @@ -1,325 +1,673 @@ + + - - + + + + + + + + FormGraph.node_gkey — COMPAS AGS + - compas_ags - FormGraph.node_gkey + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_gkey

FormGraph.node_gkey(precision=None)
-

Returns a dictionary that maps node dictionary keys to the corresponding +

Returns a dictionary that maps node identifiers to the corresponding geometric key up to a certain precision.

Parameters:
-

precision (str, optional) – The float precision specifier used in string formatting.

+
+
precisionint, optional

Precision for converting numbers to strings. +Default is TOL.precision.

+
+
Returns:
-

dict[hashable, str] – A dictionary of key-geometric key pairs.

+
+
dict[hashable, str]

A dictionary of (node, geometric key) pairs.

+
+
+
+

See also

+
+
gkey_node()
+
compas.Tolerance.geometric_key()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_index.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_index.html index 202267663..37dbc20f6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_index.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_index.html @@ -1,315 +1,665 @@ + + - - + + + + + + + + FormGraph.node_index — COMPAS AGS + - compas_ags - FormGraph.node_index + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.html index f0cc6c799..ac9c0e82b 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_laplacian.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.node_laplacian — COMPAS AGS + - compas_ags - FormGraph.node_laplacian + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_laplacian

@@ -105,220 +568,103 @@

FormGraph.node_laplacian

Return the vector from the node to the centroid of its 1-ring neighborhood.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

list[float] – The laplacian vector.

+
+
compas.geometry.Vector

The laplacian vector.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.html index ac55e8cc4..e32caf6a2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormGraph.node_neighborhood_centroid — COMPAS AGS + - compas_ags - FormGraph.node_neighborhood_centroid + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_neighborhood_centroid

FormGraph.node_neighborhood_centroid(key)
-

Compute the centroid of the neighboring nodes.

+

Return the computed centroid of the neighboring nodes.

Parameters:
-

key (hashable) – The identifier of the node.

+
+
keyhashable

The identifier of the node.

+
+
Returns:
-

list[float] – The coordinates of the centroid.

+
+
compas.geometry.Point

The point at the centroid.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_point.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_point.html new file mode 100644 index 000000000..90d8a344d --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_point.html @@ -0,0 +1,670 @@ + + + + + + + + + + + + FormGraph.node_point — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + + + + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.node_sample.html b/latest/api/generated/compas_ags.diagrams.FormGraph.node_sample.html index c23a0c0be..bb9750aeb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.node_sample.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.node_sample.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.node_sample — COMPAS AGS + - compas_ags - FormGraph.node_sample + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.node_sample

@@ -105,220 +568,103 @@

FormGraph.node_sample

Get a list of identifiers of a random set of n nodes.

Parameters:
-

size (int, optional) – The size of the sample.

+
+
sizeint, optional

The size of the sample.

+
+
Returns:
-

list[hashable] – The identifiers of the nodes.

+
+
list[hashable]

The identifiers of the nodes.

+
+
+
+

See also

+
+
edge_sample()
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes.html index 2350e5c4d..0f1496f22 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes.html @@ -1,325 +1,672 @@ + + - - + + + + + + + + FormGraph.nodes — COMPAS AGS + - compas_ags - FormGraph.nodes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.nodes

FormGraph.nodes(data=False)
-

Iterate over the nodes of the network.

+

Iterate over the nodes of the graph.

Parameters:
-

data (bool, optional) – If True, yield the node attributes in addition to the node identifiers.

+
+
databool, optional

If True, yield the node attributes in addition to the node identifiers.

+
+
Yields:
-

hashable | tuple[hashable, dict[str, Any]] – If data is False, the next node identifier. +

+
hashable | tuple[hashable, dict[str, Any]]

If data is False, the next node identifier. If data is True, the next node as a (key, attr) tuple.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.html index 4df8b4060..37aee773e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.nodes_attribute — COMPAS AGS + - compas_ags - FormGraph.nodes_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.nodes_attribute

@@ -105,228 +568,115 @@

FormGraph.nodes_attribute

Get or set an attribute of multiple nodes.

Parameters:
-
    -
  • name (str) – The name of the attribute.

  • -
  • value (obj, optional) – The value of the attribute.

  • -
  • keys (list[hashable], optional) – A list of node identifiers.

  • -
+
+
namestr

The name of the attribute.

+
+
valueobj, optional

The value of the attribute.

+
+
keyslist[hashable], optional

A list of node identifiers.

+
+
Returns:
-

list[Any] | None – The value of the attribute for each node, +

+
list[Any] | None

The value of the attribute for each node, or None if the function is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the nodes does not exist.

+
+
KeyError

If any of the nodes does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.html index 23d2073d7..e6030f9ba 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.nodes_attributes — COMPAS AGS + - compas_ags - FormGraph.nodes_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.nodes_attributes

@@ -105,231 +568,118 @@

FormGraph.nodes_attributes

Get or set multiple attributes of multiple nodes.

Parameters:
-
    -
  • names (list[str], optional) – The names of the attribute.

  • -
  • values (list[Any], optional) – The values of the attributes.

  • -
  • keys (list[hashable], optional) – A list of node identifiers.

  • -
+
+
nameslist[str], optional

The names of the attribute.

+
+
valueslist[Any], optional

The values of the attributes.

+
+
keyslist[hashable], optional

A list of node identifiers.

+
+
Returns:
-

list[dict[str, Any]] | list[list[Any]] | None – If the parameter names is None, +

+
list[dict[str, Any]] | list[list[Any]] | None

If the parameter names is None, the function returns a list containing an attribute dict per node. If the parameter names is not None, the function returns a list containing a list of attribute values per node corresponding to the provided attribute names. The function returns None if it is used as a “setter”.

+
+
Raises:
-

KeyError – If any of the nodes does not exist.

+
+
KeyError

If any of the nodes does not exist.

+
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where.html b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where.html index 06af5040e..b67b7fc8e 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.nodes_where — COMPAS AGS + - compas_ags - FormGraph.nodes_where + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.nodes_where

@@ -105,226 +568,109 @@

FormGraph.nodes_where

Get nodes for which a certain condition or set of conditions is true.

Parameters:
-
    -
  • conditions (dict, optional) – A set of conditions in the form of key-value pairs. +

    +
    conditionsdict, optional

    A set of conditions in the form of key-value pairs. The keys should be attribute names. The values can be attribute -values or ranges of attribute values in the form of min/max pairs.

  • -
  • data (bool, optional) – If True, yield the node attributes in addition to the node identifiers.

  • -
+values or ranges of attribute values in the form of min/max pairs.

+
+
databool, optional

If True, yield the node attributes in addition to the node identifiers.

+
+
Yields:
-

hashable | tuple[hashable, dict[str, Any]] – If data is False, the next node that matches the condition. +

+
hashable | tuple[hashable, dict[str, Any]]

If data is False, the next node that matches the condition. If data is True, the next node and its attributes.

+
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.html b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.html index ea37ff963..9a96c7a40 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.nodes_where_predicate — COMPAS AGS + + - compas_ags - FormGraph.nodes_where_predicate + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.nodes_where_predicate

@@ -105,229 +568,112 @@

FormGraph.nodes_where_predicate

Get nodes for which a certain condition or set of conditions is true using a lambda function.

Parameters:
-
    -
  • predicate (callable) – The condition you want to evaluate. -The callable takes 2 parameters: the node identifier and the node attributes, and should return True or False.

  • -
  • data (bool, optional) – If True, yield the node attributes in addition to the node identifiers.

  • -
+
+
predicatecallable

The condition you want to evaluate. +The callable takes 2 parameters: the node identifier and the node attributes, and should return True or False.

+
+
databool, optional

If True, yield the node attributes in addition to the node identifiers.

+
+
Yields:
-

hashable | tuple[hashable, dict[str, Any]] – If data is False, the next node that matches the condition. +

+
hashable | tuple[hashable, dict[str, Any]]

If data is False, the next node that matches the condition. If data is True, the next node and its attributes.

+
+
+

Examples

-
>>>
-
+
>>>
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.html index aa0bab484..2297adcae 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_edges.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormGraph.number_of_edges — COMPAS AGS + - compas_ags - FormGraph.number_of_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.html index b7cac22e4..5e8d739aa 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormGraph.number_of_nodes — COMPAS AGS + - compas_ags - FormGraph.number_of_nodes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.obb.html b/latest/api/generated/compas_ags.diagrams.FormGraph.obb.html new file mode 100644 index 000000000..df2eef415 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.obb.html @@ -0,0 +1,657 @@ + + + + + + + + + + + + FormGraph.obb — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.obb

+
+
+FormGraph.obb()
+

Calculate the oriented bounding box of the graph.

+
+
Returns:
+
+
compas.geometry.Box
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.rotate.html b/latest/api/generated/compas_ags.diagrams.FormGraph.rotate.html new file mode 100644 index 000000000..94ab1499f --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.rotate.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + FormGraph.rotate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.rotate

+
+
+FormGraph.rotate(angle, axis=None, point=None)
+

Rotate the datastructure.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
rotated
+
translate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.rotated.html b/latest/api/generated/compas_ags.diagrams.FormGraph.rotated.html new file mode 100644 index 000000000..75a5bcd12 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.rotated.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + FormGraph.rotated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.rotated

+
+
+FormGraph.rotated(angle, axis=None, point=None)
+

Returns a rotated copy of this geometry.

+
+
Parameters:
+
+
anglefloat

The angle of rotation in radians.

+
+
axiscompas.geometry.Vector, optional

The axis of rotation. +Defaults to the z-axis.

+
+
pointcompas.geometry.Point, optional

The base point of the rotation axis. +Defaults to the origin.

+
+
+
+
Returns:
+
+
Geometry

The rotated geometry.

+
+
+
+
+
+

See also

+
+
rotate
+
translated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.scale.html b/latest/api/generated/compas_ags.diagrams.FormGraph.scale.html new file mode 100644 index 000000000..5c26ad4fe --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.scale.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + FormGraph.scale — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.scale

+
+
+FormGraph.scale(x, y=None, z=None)
+

Scale the datastructure.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
scaled
+
translate
+
rotate
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.scaled.html b/latest/api/generated/compas_ags.diagrams.FormGraph.scaled.html new file mode 100644 index 000000000..f233335df --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.scaled.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + FormGraph.scaled — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.scaled

+
+
+FormGraph.scaled(x, y=None, z=None)
+

Returns a scaled copy of this geometry.

+
+
Parameters:
+
+
xfloat

The scaling factor in the x-direction.

+
+
yfloat, optional

The scaling factor in the y-direction. +Defaults to x.

+
+
zfloat, optional

The scaling factor in the z-direction. +Defaults to x.

+
+
+
+
Returns:
+
+
Geometry

The scaled geometry.

+
+
+
+
+
+

See also

+
+
scale
+
translated
+
rotated
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.sha256.html b/latest/api/generated/compas_ags.diagrams.FormGraph.sha256.html index 4cf6d34f2..081be21eb 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.sha256.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.sha256.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.sha256 — COMPAS AGS + - compas_ags - FormGraph.sha256 + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.sha256

@@ -105,233 +568,109 @@

FormGraph.sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

Parameters:
-

as_string (bool, optional) – If True, return the digest in hexadecimal format rather than as bytes.

+
+
as_stringbool, optional

If True, return the digest in hexadecimal format rather than as bytes.

+
+
Returns:
-

bytes | str

+
+
bytes | str
+

Examples

-
>>> from compas.datastructures import Mesh
->>> mesh = Mesh.from_obj(compas.get('faces.obj'))
+
>>> from compas.datastructures import Mesh
+>>> mesh = Mesh.from_obj(compas.get("faces.obj"))
 >>> v1 = mesh.sha256()
 >>> v2 = mesh.sha256()
->>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], 'z', 1)
+>>> mesh.vertex_attribute(mesh.vertex_sample(1)[0], "z", 1)
 >>> v3 = mesh.sha256()
 >>> v1 == v2
 True
 >>> v2 == v3
 False
-
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.shortest_path.html b/latest/api/generated/compas_ags.diagrams.FormGraph.shortest_path.html index a07a67765..7f720cd1f 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.shortest_path.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.shortest_path.html @@ -1,328 +1,672 @@ + + - - + + + + + + + + FormGraph.shortest_path — COMPAS AGS + - compas_ags - FormGraph.shortest_path + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.smooth.html b/latest/api/generated/compas_ags.diagrams.FormGraph.smooth.html index 18436c649..5ede6b11d 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.smooth.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.smooth.html @@ -1,334 +1,679 @@ + + - - + + + + + + + + FormGraph.smooth — COMPAS AGS + + - compas_ags - FormGraph.smooth + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.smooth

FormGraph.smooth(fixed=None, kmax=100, damping=0.5, callback=None, callback_args=None)
-

Smooth a network by moving every free node to the centroid of its neighbors.

+

Smooth a graph by moving every free node to the centroid of its neighbors.

Parameters:
-
    -
  • network (Mesh) – A network object.

  • -
  • fixed (list, optional) – The fixed nodes of the network.

  • -
  • kmax (int, optional) – The maximum number of iterations.

  • -
  • damping (float, optional) – The damping factor.

  • -
  • callback (callable, optional) – A user-defined callback function to be executed after every iteration.

  • -
  • callback_args (list, optional) – A list of arguments to be passed to the callback.

  • -
+
+
graphMesh

A graph object.

+
+
fixedlist, optional

The fixed nodes of the graph.

+
+
kmaxint, optional

The maximum number of iterations.

+
+
dampingfloat, optional

The damping factor.

+
+
callbackcallable, optional

A user-defined callback function to be executed after every iteration.

+
+
callback_argslist, optional

A list of arguments to be passed to the callback.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

Exception – If a callback is provided, but it is not callable.

+
+
Exception

If a callback is provided, but it is not callable.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.split_edge.html b/latest/api/generated/compas_ags.diagrams.FormGraph.split_edge.html index c9ed19c91..266dc7cb7 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.split_edge.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.split_edge.html @@ -1,334 +1,674 @@ + + - - + + + + + + + + FormGraph.split_edge — COMPAS AGS + - compas_ags - FormGraph.split_edge + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.split_edge

-FormGraph.split_edge(u, v, t=0.5)
+FormGraph.split_edge(edge, t=0.5)

Split and edge by inserting a node along its length.

Parameters:
-
    -
  • u (str) – The key of the first node of the edge.

  • -
  • v (str) – The key of the second node of the edge.

  • -
  • t (float, optional) – The position of the inserted node on the edge.

  • -
+
+
edgetuple[hashable, hashable]

The identifier of the edge to split.

+
+
tfloat, optional

The position of the inserted node on the edge.

+
+
Returns:
-

hashable – The key of the inserted node.

+
+
hashable

The key of the inserted node.

+
+
Raises:
-
+
+
ValueError

If t is not in the range 0-1.

+
+
Exception

If the edge is not part of the graph.

+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.summary.html b/latest/api/generated/compas_ags.diagrams.FormGraph.summary.html index bec45788d..9c1508806 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.summary.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.summary.html @@ -1,321 +1,658 @@ + + - - + + + + + + + + FormGraph.summary — COMPAS AGS + - compas_ags - FormGraph.summary + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_json.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_json.html index cca93e15c..ea105b780 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_json.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_json.html @@ -1,327 +1,661 @@ + + - - + + + + + + + + FormGraph.to_json — COMPAS AGS + - compas_ags - FormGraph.to_json + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.html index 08f49c7e3..072d376b2 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.html @@ -1,324 +1,665 @@ + + - - + + + + + + + + FormGraph.to_jsonstring — COMPAS AGS + - compas_ags - FormGraph.to_jsonstring + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.to_jsonstring

FormGraph.to_jsonstring(pretty=False)
-

Serialize the data representation of an object to a JSON string.

+

Convert an object to its native data representation and save it to a JSON string.

Parameters:
-

pretty (bool, optional) – If True serialize a pretty representation of the data.

+
+
prettybool, optional

If True, the JSON string will be pretty printed. +Defaults to False.

+
+
Returns:
-

str – The object’s data dict in JSON string format.

+
+
str

The JSON string.

+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_lines.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_lines.html index 49d93cb72..285d440dc 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_lines.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_lines.html @@ -1,321 +1,665 @@ + + - - + + + + + + + + FormGraph.to_lines — COMPAS AGS + - compas_ags - FormGraph.to_lines + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_networkx.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_networkx.html index f9cad6850..b7f7cc34c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_networkx.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_networkx.html @@ -1,321 +1,664 @@ + + - - + + + + + + + + FormGraph.to_networkx — COMPAS AGS + - compas_ags - FormGraph.to_networkx + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.html index 74a3c1f2d..4d0efa951 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.html @@ -1,325 +1,667 @@ + + - - + + + + + + + + FormGraph.to_nodes_and_edges — COMPAS AGS + - compas_ags - FormGraph.to_nodes_and_edges + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_obj.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_obj.html index ea953b1db..e89495a2c 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_obj.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_obj.html @@ -1,324 +1,670 @@ + + - - + + + + + + + + FormGraph.to_obj — COMPAS AGS + - compas_ags - FormGraph.to_obj + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.to_obj

FormGraph.to_obj()
-

Write the network to an OBJ file.

+

Write the graph to an OBJ file.

Parameters:
-

filepath (path string | file-like object) – A path or a file-like object pointing to a file.

+
+
filepathpath string | file-like object

A path or a file-like object pointing to a file.

+
+
Returns:
-

None

+
+
None
+
+
- -
- - - - - -
- -
+ + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.to_points.html b/latest/api/generated/compas_ags.diagrams.FormGraph.to_points.html index 4879c74d4..4555e0933 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.to_points.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.to_points.html @@ -1,321 +1,665 @@ + + - - + + + + + + + + FormGraph.to_points — COMPAS AGS + - compas_ags - FormGraph.to_points + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.transform.html b/latest/api/generated/compas_ags.diagrams.FormGraph.transform.html index 6de87e8c5..4d6dfbed6 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.transform.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.transform.html @@ -1,329 +1,663 @@ + + - - + + + + + + + + FormGraph.transform — COMPAS AGS + - compas_ags - FormGraph.transform + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.html b/latest/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.html new file mode 100644 index 000000000..de1ec9da4 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + FormGraph.transform_numpy — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.transform_numpy

+
+
+FormGraph.transform_numpy(transformation)
+

Transforms the data structure.

+
+
Parameters:
+
+
transformationTransformation

The transformation used to transform the data structure.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.transformed.html b/latest/api/generated/compas_ags.diagrams.FormGraph.transformed.html index dfee9cc74..179386234 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.transformed.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.transformed.html @@ -1,330 +1,664 @@ + + - - + + + + + + + + FormGraph.transformed — COMPAS AGS + - compas_ags - FormGraph.transformed + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.html b/latest/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.html new file mode 100644 index 000000000..04fbb01c6 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + FormGraph.transformed_numpy — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.transformed_numpy

+
+
+FormGraph.transformed_numpy(transformation)
+

Returns a transformed copy of this data structure.

+
+
Parameters:
+
+
transformationTransformation

The transformation used to transform the copy.

+
+
+
+
Returns:
+
+
Datastructure

The transformed copy.

+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.translate.html b/latest/api/generated/compas_ags.diagrams.FormGraph.translate.html new file mode 100644 index 000000000..2178c26f9 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.translate.html @@ -0,0 +1,672 @@ + + + + + + + + + + + + FormGraph.translate — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.translate

+
+
+FormGraph.translate(vector)
+

Translate the datastructure.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
None
+
+
+
+
+

See also

+
+
translated
+
rotate
+
scale
+
transform
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.translated.html b/latest/api/generated/compas_ags.diagrams.FormGraph.translated.html new file mode 100644 index 000000000..c70472198 --- /dev/null +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.translated.html @@ -0,0 +1,673 @@ + + + + + + + + + + + + FormGraph.translated — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

FormGraph.translated

+
+
+FormGraph.translated(vector)
+

Returns a translated copy of this geometry.

+
+
Parameters:
+
+
vectorcompas.geometry.Vector

The vector used to translate the datastructure.

+
+
+
+
Returns:
+
+
Geometry

The translated geometry.

+
+
+
+
+
+

See also

+
+
translate
+
rotated
+
scaled
+
transformed
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.html index baa27f3e9..6ce87dace 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.unset_edge_attribute — COMPAS AGS + - compas_ags - FormGraph.unset_edge_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.unset_edge_attribute

@@ -105,18 +568,31 @@

FormGraph.unset_edge_attribute

Unset the attribute of an edge.

Parameters:
-
    -
  • key (tuple[hashable, hashable]) – The edge identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keytuple[hashable, hashable]

The edge identifier.

+
+
namestr

The name of the attribute.

+
+
Returns:
-

None

+
+
None
+
Raises:
-

KeyError – If the edge does not exist.

+
+
KeyError

If the edge does not exist.

+
+
+
+

See also

+
+
edge_attribute()
+
+

Notes

Unsetting the value of an edge attribute implicitly sets it back to the value stored in the default edge attribute dict.

@@ -124,210 +600,81 @@

FormGraph.unset_edge_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.html b/latest/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.html index dec7a0a7d..3991bca83 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.unset_node_attribute — COMPAS AGS + - compas_ags - FormGraph.unset_node_attribute + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.unset_node_attribute

@@ -105,15 +568,26 @@

FormGraph.unset_node_attribute

Unset the attribute of a node.

Parameters:
-
    -
  • key (int) – The node identifier.

  • -
  • name (str) – The name of the attribute.

  • -
+
+
keyint

The node identifier.

+
+
namestr

The name of the attribute.

+
+
Raises:
-

KeyError – If the node does not exist.

+
+
KeyError

If the node does not exist.

+
+
+
+

See also

+
+
node_attribute()
+
+

Notes

Unsetting the value of a node attribute implicitly sets it back to the value stored in the default node attribute dict.

@@ -121,210 +595,81 @@

FormGraph.unset_node_attribute

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.html index 9e7831dba..af0695971 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.update_default_edge_attributes — COMPAS AGS + - compas_ags - FormGraph.update_default_edge_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.update_default_edge_attributes

@@ -105,223 +568,104 @@

FormGraph.update_default_edge_attributes

Update the default edge attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.html b/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.html index 44060a513..7bd1226f0 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.html @@ -1,103 +1,566 @@ + + - - + + + + + + + + FormGraph.update_default_node_attributes — COMPAS AGS + - compas_ags - FormGraph.update_default_node_attributes + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +

FormGraph.update_default_node_attributes

@@ -105,223 +568,104 @@

FormGraph.update_default_node_attributes

Update the default node attributes.

Parameters:
-
    -
  • attr_dict (dict[str, Any], optional) – A dictionary of attributes with their default values.

  • -
  • **kwattr (dict[str, Any], optional) – A dictionary of additional attributes compiled of remaining named arguments.

  • -
+
+
attr_dictdict[str, Any], optional

A dictionary of attributes with their default values.

+
+
**kwattrdict[str, Any], optional

A dictionary of additional attributes compiled of remaining named arguments.

+
+
Returns:
-

None

+
+
None
+
+
- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.diagrams.FormGraph.validate_data.html b/latest/api/generated/compas_ags.diagrams.FormGraph.validate_data.html index 691fe1600..666d2fa18 100644 --- a/latest/api/generated/compas_ags.diagrams.FormGraph.validate_data.html +++ b/latest/api/generated/compas_ags.diagrams.FormGraph.validate_data.html @@ -1,324 +1,664 @@ + + - - + + + + + + + + FormGraph.validate_data — COMPAS AGS + - compas_ags - FormGraph.validate_data + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - + +
+
+ +
+ +
- - - + + + + + + + +
+ + + + + + +
- - -
+ +
-
+
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/api/generated/compas_ags.exceptions.SolutionError.html b/latest/api/generated/compas_ags.exceptions.SolutionError.html new file mode 100644 index 000000000..9a2f7974e --- /dev/null +++ b/latest/api/generated/compas_ags.exceptions.SolutionError.html @@ -0,0 +1,651 @@ + + + + + + + + + + + + SolutionError — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

SolutionError

+
+
+exception compas_ags.exceptions.SolutionError
+

Bases: Exception

+

Used to throw solution errors during form or force computations.

+
+ +
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/examples.html b/latest/examples.html index e5ff62e6a..a537195b9 100644 --- a/latest/examples.html +++ b/latest/examples.html @@ -1,307 +1,623 @@ + + - - + + + + + + + + Examples — COMPAS AGS + - compas_ags - Examples + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + + +
- - - + + -
- - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+
+ + + - - - - - - - - - - - - - - - - - + - }) - } - - +
+ +
+ \ No newline at end of file diff --git a/latest/examples/00_basic.html b/latest/examples/00_basic.html index c32415d78..84dfee66f 100644 --- a/latest/examples/00_basic.html +++ b/latest/examples/00_basic.html @@ -1,109 +1,571 @@ - - - - - compas_ags - Basic example - - - + - - - - - - - - + + + + + + Basic example — COMPAS AGS + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Basic example

../_images/example_basic.png
-
import compas_ags
-
-from compas_ags.diagrams import FormGraph
-from compas_ags.diagrams import FormDiagram
-from compas_ags.diagrams import ForceDiagram
+
from compas_viewer import Viewer
+from compas_viewer.config import Config
+
+import compas_ags
+from compas.colors import Color
+from compas.geometry import Box
+from compas.geometry import Circle
+from compas.geometry import Polygon
+from compas.geometry import bounding_box
 from compas_ags.ags import graphstatics
-
-from compas_ags.viewers import Viewer
+from compas_ags.diagrams import ForceDiagram
+from compas_ags.diagrams import FormDiagram
+from compas_ags.diagrams import FormGraph
 
 # ------------------------------------------------------------------------------
 # 1. get lines of a plane triangle frame in equilibrium, its applied loads and reaction forces
@@ -131,226 +593,121 @@ 

Basic example

# 3. display force and form diagrams # ------------------------------------------------------------------------------ -viewer = Viewer(form, force, delay_setup=False, figsize=(12, 7.5)) - -left = list(form.vertices_where({"x": 0.0, "y": 0.0}))[0] -right = list(form.vertices_where({"x": 6.0, "y": 0.0}))[0] - -viewer.draw_form( - vertexsize=0.15, - vertexcolor={key: "#000000" for key in (left, right)}, - vertexlabel={key: key for key in form.vertices()}, - edgelabel={uv: index for index, uv in enumerate(form.edges())}, -) - -viewer.draw_force(vertexsize=0.15, vertexlabel={key: key for key in force.vertices()}) +loadcolor = Color.green().darkened(50) +reactioncolor = Color.green().darkened(50) +tensioncolor = Color.red().lightened(25) +compressioncolor = Color.blue().lightened(25) + +b1 = Box.from_bounding_box(bounding_box(form.vertices_attributes("xyz"))) +b2 = Box.from_bounding_box(bounding_box(force.vertices_attributes("xyz"))) + +dx = b2.xmin - b1.xmax +if dx < 1: + dx = 1.5 * (b1.xmax - b2.xmin) +else: + dx = 0 + +config = Config() +config.renderer.view = "top" +config.renderer.gridsize = [100, 100, 100, 100] + +viewer = Viewer(config=config) + +viewer.scene.add(form, show_faces=False, show_lines=False, name="FormDiagram") +viewer.scene.add(force.translated([dx, 0, 0]), show_faces=False, name="ForceDiagram") + +circles = [Circle.from_point_and_radius(form.vertex_point(vertex) + [0, 0, 0.001], 0.1).to_polygon(n=128) for vertex in form.vertices()] +viewer.scene.add(circles, name="Vertices", facecolor=Color.white(), linecolor=Color.black()) + +external = [] +compression = [] +tension = [] +for edge in form.edges(): + line = form.edge_line(edge) + vector = line.direction.cross([0, 0, 1]) + force = form.edge_attribute(edge, name="f") + w = 0.01 * 0.5 * abs(force) + a = line.start + vector * -w + b = line.end + vector * -w + c = line.end + vector * +w + d = line.start + vector * +w + if form.edge_attribute(edge, name="is_external"): + external.append(Polygon([a, b, c, d])) + elif force > 0: + tension.append(Polygon([a, b, c, d])) + elif force < 0: + compression.append(Polygon([a, b, c, d])) + +viewer.scene.add(external, name="External Forces", facecolor=reactioncolor, linecolor=reactioncolor.contrast) +viewer.scene.add(compression, name="Compression", facecolor=compressioncolor, linecolor=compressioncolor.contrast) +viewer.scene.add(tension, name="Tension", facecolor=tensioncolor, linecolor=tensioncolor.contrast) viewer.show() -
+
- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - -
- + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/examples/01_rtl.html b/latest/examples/01_rtl.html index c265e2cd1..b50257dfe 100644 --- a/latest/examples/01_rtl.html +++ b/latest/examples/01_rtl.html @@ -1,109 +1,573 @@ - - - - - compas_ags - Updating the form diagram - - - + - - - - - - - - + + + + + + Updating the form diagram — COMPAS AGS + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Updating the form diagram

../_images/example_rtl.png
-
import compas_ags
-
-from compas_ags.diagrams import FormGraph
-from compas_ags.diagrams import FormDiagram
-from compas_ags.diagrams import ForceDiagram
+
from compas_viewer import Viewer
+from compas_viewer.config import Config
+
+import compas_ags
+from compas.colors import Color
+from compas.geometry import Box
+from compas.geometry import Circle
+from compas.geometry import Polygon
+from compas.geometry import bounding_box
 from compas_ags.ags import graphstatics
+from compas_ags.diagrams import ForceDiagram
+from compas_ags.diagrams import FormDiagram
+from compas_ags.diagrams import FormGraph
 
-from compas_ags.viewers import Viewer
+# from compas_ags.viewers import Viewer
 
 # ==============================================================================
 # Construct the graph of a single panel truss,
@@ -147,32 +611,6 @@ 

Updating the form diagram

# Store the original geometries. # ============================================================================== -force_key_xyz = {key: force.vertex_coordinates(key) for key in force.vertices()} - -form_lines = [] -for u, v in form.edges(): - form_lines.append( - { - "start": form.vertex_coordinates(u, "xy"), - "end": form.vertex_coordinates(v, "xy"), - "width": 1.0, - "color": "#cccccc", - "style": "--", - } - ) - -force_lines = [] -for u, v in force.edges(): - force_lines.append( - { - "start": force.vertex_coordinates(u, "xy"), - "end": force.vertex_coordinates(v, "xy"), - "width": 1.0, - "color": "#cccccc", - "style": "--", - } - ) - # ============================================================================== # Change the position of the "free" node of the force diagram # ============================================================================== @@ -189,239 +627,125 @@

Updating the form diagram

# Indicate the movement of the free node in the force diagram with an arrow. # ============================================================================== -force_lines.append( - { - "start": force_key_xyz[4], - "end": force.vertex_coordinates(4), - "color": "#ff0000", - "width": 10.0, - "style": "-", - } -) - # ============================================================================== # Visualize the result. # ============================================================================== -viewer = Viewer(form, force, delay_setup=False, figsize=(12, 7.5)) - -viewer.draw_form( - lines=form_lines, - forces_on=False, - vertexlabel={key: key for key in form.vertices()}, - vertexsize=0.2, - vertexcolor={key: "#000000" for key in fixed}, - edgelabel={key: index for index, key in enumerate(form.edges())}, -) - -viewer.draw_force(lines=force_lines, vertexlabel={key: key for key in force.vertices()}, vertexsize=0.2) +loadcolor = Color.green().darkened(50) +reactioncolor = Color.green().darkened(50) +tensioncolor = Color.red().lightened(25) +compressioncolor = Color.blue().lightened(25) + +b1 = Box.from_bounding_box(bounding_box(form.vertices_attributes("xyz"))) +b2 = Box.from_bounding_box(bounding_box(force.vertices_attributes("xyz"))) + +dx = b2.xmin - b1.xmax +if dx < 1: + dx = 1.5 * (b1.xmax - b2.xmin) +else: + dx = 0 + +config = Config() +config.renderer.view = "top" +config.renderer.gridsize = [100, 100, 100, 100] + +viewer = Viewer(config=config) + +viewer.scene.add(form, show_faces=False, show_lines=False, name="FormDiagram") +viewer.scene.add(force.translated([dx, 0, 0]), show_faces=False, name="ForceDiagram") + +circles = [Circle.from_point_and_radius(form.vertex_point(vertex) + [0, 0, 0.001], 0.1).to_polygon(n=128) for vertex in form.vertices()] +viewer.scene.add(circles, name="Vertices", facecolor=Color.white(), linecolor=Color.black()) + +external = [] +compression = [] +tension = [] +for edge in form.edges(): + line = form.edge_line(edge) + vector = line.direction.cross([0, 0, 1]) + force = form.edge_attribute(edge, name="f") + w = 0.01 * 0.5 * abs(force) + a = line.start + vector * -w + b = line.end + vector * -w + c = line.end + vector * +w + d = line.start + vector * +w + if form.edge_attribute(edge, name="is_external"): + external.append(Polygon([a, b, c, d])) + elif force > 0: + tension.append(Polygon([a, b, c, d])) + elif force < 0: + compression.append(Polygon([a, b, c, d])) + +viewer.scene.add(external, name="External Forces", facecolor=reactioncolor, linecolor=reactioncolor.contrast) +viewer.scene.add(compression, name="Compression", facecolor=compressioncolor, linecolor=compressioncolor.contrast) +viewer.scene.add(tension, name="Tension", facecolor=tensioncolor, linecolor=tensioncolor.contrast) viewer.show() -
+
- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/examples/02_lpopt.html b/latest/examples/02_lpopt.html index 03778fae0..4a3d8b466 100644 --- a/latest/examples/02_lpopt.html +++ b/latest/examples/02_lpopt.html @@ -1,109 +1,564 @@ - - - - - compas_ags - Optimise the load path - - - + - - - - - - - - + + + + + + Optimise the load path — COMPAS AGS + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Optimise the load path

../_images/example_lpopt.png
-
from compas_ags.diagrams import FormGraph
-from compas_ags.diagrams import FormDiagram
-from compas_ags.diagrams import ForceDiagram
-
-from compas_ags.viewers import Viewer
-
+
# from compas_ags.viewers import Viewer
 from compas_ags.ags import graphstatics
 from compas_ags.ags import loadpath
+from compas_ags.diagrams import ForceDiagram
+from compas_ags.diagrams import FormDiagram
+from compas_ags.diagrams import FormGraph
 
 # ------------------------------------------------------------------------------
 # 1. create a planar truss structure, its applied loads and boundary conditions
@@ -215,217 +670,77 @@ 

Optimise the load path

# 4. display force and form diagrams # ------------------------------------------------------------------------------ -viewer = Viewer(form, force, delay_setup=False, figsize=(12, 7.5)) +# viewer = Viewer(form, force, delay_setup=False, figsize=(12, 7.5)) -viewer.draw_form(forcescale=5, vertexlabel={key: str(key) for key in form.vertices()}, vertexsize=0.2) -viewer.draw_force(vertexlabel={key: str(key) for key in force.vertices()}, vertexsize=0.2) +# viewer.draw_form(forcescale=5, vertexlabel={key: str(key) for key in form.vertices()}, vertexsize=0.2) +# viewer.draw_force(vertexlabel={key: str(key) for key in force.vertices()}, vertexsize=0.2) -viewer.show() -
+# viewer.show() +
- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/examples/03_fink.html b/latest/examples/03_fink.html index b0ff98c24..8b073ef05 100644 --- a/latest/examples/03_fink.html +++ b/latest/examples/03_fink.html @@ -1,112 +1,565 @@ - - - - - compas_ags - Fink Truss - - - + - - - - - - - - + + + + + + Fink Truss — COMPAS AGS + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Fink Truss

../_images/example_fink.png
-
import compas_ags
-
-from compas.geometry import subtract_vectors
-from compas.geometry import sum_vectors
+
import compas_ags
 from compas.geometry import normalize_vector
 from compas.geometry import scale_vector
-
-from compas_ags.diagrams import FormGraph
+from compas.geometry import subtract_vectors
+from compas.geometry import sum_vectors
 from compas_ags.diagrams import FormDiagram
-
-from compas_plotters import MeshPlotter
+from compas_ags.diagrams import FormGraph
 
 # ==============================================================================
 # Construct the graph of a Fink truss.
@@ -147,7 +600,7 @@ 

Fink Truss

assert noleaves.embed(fixed=fixed), "The graph could not be embedded in the plane using a spring layout." E = noleaves.number_of_edges() - L = sum(noleaves.edge_length(*edge) for edge in noleaves.edges()) + L = sum(noleaves.edge_length(edge) for edge in noleaves.edges()) length = 0.5 * L / E for node in noleaves.nodes(): @@ -178,215 +631,75 @@

Fink Truss

# Visualize the result # ============================================================================== -plotter = MeshPlotter(form, figsize=(12, 7.5)) -plotter.draw_vertices(text="key", radius=0.3) -plotter.draw_edges() -plotter.show() -
+# plotter = MeshPlotter(form, figsize=(12, 7.5)) +# plotter.draw_vertices(text="key", radius=0.3) +# plotter.draw_edges() +# plotter.show() +
- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/genindex.html b/latest/genindex.html index e2abd0e6d..f858d5c48 100644 --- a/latest/genindex.html +++ b/latest/genindex.html @@ -1,444 +1,2760 @@ + + - - - Index - compas-ags 1.2.1 documentation + + + + + + Index — COMPAS AGS + + + + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + + + + + + + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ \ No newline at end of file diff --git a/latest/index.html b/latest/index.html index 7f0adee6c..ca5404231 100644 --- a/latest/index.html +++ b/latest/index.html @@ -1,94 +1,532 @@ + + - - + + + + + + + + Documentation of compas_ags — COMPAS AGS + - compas_ags - Algebraic Graph Statics + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+
+ + + + + +
+ + + + + + + + +
+ +
-
-

Algebraic Graph Statics

+
+
+ +
+ + + + + +
+ +
+

Documentation of compas_ags

+
+_images/AGS_intro.png +

Graphic Statics

Graphic statics is a well-known method for analysis and design of two-dimensional @@ -115,7 +553,7 @@

Table of Contents

- -
- - - - - - + + + +
- +
+ + + +
+ +
+ + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/installation.html b/latest/installation.html new file mode 100644 index 000000000..6fb9a598b --- /dev/null +++ b/latest/installation.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + Installation — COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +
+

Installation

+
+

Stable

+

Stable releases are available on PyPI and can be installed with pip.

+
pip install compas_ags
+
+
+
+
+

Latest

+

The latest version can be installed from local source.

+
git clone https://github.com/blockresearchgroup/compas_ags.git
+cd compas_ags
+pip install -e .
+
+
+
+
+

Development

+

To install compas_ags for development, install from local source with the “dev” requirements.

+
git clone https://github.com/blockresearchgroup/compas_ags.git
+cd compas_ags
+pip install -e ".[dev]"
+
+
+
+
+ + +
+ + + +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+
+
+ + + + + +
+ + +
+ + \ No newline at end of file diff --git a/latest/license.html b/latest/license.html index 4ac59a498..e0ce2b731 100644 --- a/latest/license.html +++ b/latest/license.html @@ -1,95 +1,552 @@ - - - - - compas_ags - License - - - + - - - - - - - - + + + + + + License — COMPAS AGS + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

License

-
MIT License
+
MIT License
 
 Copyright (c) 2016-2018 Block Research Group
 
@@ -110,203 +567,71 @@ 

License

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -
+
- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/objects.inv b/latest/objects.inv index bb22553a1..169188c85 100644 Binary files a/latest/objects.inv and b/latest/objects.inv differ diff --git a/latest/publications.html b/latest/publications.html index 1b38a9b76..ceca4dfea 100644 --- a/latest/publications.html +++ b/latest/publications.html @@ -1,307 +1,623 @@ + + - - + + + + + + + + Publications — COMPAS AGS + - compas_ags - Publications + + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + + +
- - - + + -
- - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
+
+
+ + + - - - - - - - - - - - - - - - - - + - }) - } - - +
+ +
+ \ No newline at end of file diff --git a/latest/publications/ags.html b/latest/publications/ags.html index 717c5fd4d..f82a67fa9 100644 --- a/latest/publications/ags.html +++ b/latest/publications/ags.html @@ -1,103 +1,560 @@ + + - - + + + + + + + + Algebraic Graph Statics — COMPAS AGS + + - compas_ags - Algebraic Graph Statics + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Algebraic Graph Statics

Warning

Under construction…

-
@article{VanMele2014,
+
@article{VanMele2014,
     author  = "Van Mele, T. and Block, P.",
     title   = "Algebraic Graph Statics",
     journal = "Computer-Aided Design",
@@ -109,7 +566,7 @@ 

Algebraic Graph Statics

doi = "10.1016/j.cad.2014.04.004", note = "", } -
+

Abstract

This paper presents a general, non-procedural, algebraic approach to graphical @@ -141,207 +598,67 @@

Algebraic Graph Statics

equilibrium methods, such as Thrust Network Analysis.

- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - -
- + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/publications/bi-ags.html b/latest/publications/bi-ags.html index 72f7dca20..c4fe98ff3 100644 --- a/latest/publications/bi-ags.html +++ b/latest/publications/bi-ags.html @@ -1,99 +1,556 @@ + + - - + + + + + + + + Bi-directional Algebraic Graph Statics — COMPAS AGS + + - compas_ags - Bi-directional Algebraic Graph Statics + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Bi-directional Algebraic Graph Statics

-
@article{ALIC201726,
+
@article{ALIC201726,
     author  = "Vedad Alic and Daniel Åkesson",
     title   = "Bi-directional algebraic graphic statics",
     journal = "Computer-Aided Design",
@@ -104,7 +561,7 @@ 

Bi-directional Algebraic Graph Statics

doi = "10.1016/j.cad.2017.08.003", note = "", } -
+

Abstract

A pre-existing algebraic graphic statics method is extended to allow for interactive manipulations of the force @@ -116,207 +573,67 @@

Bi-directional Algebraic Graph Statics

force diagram are emphasized.

- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/publications/interactive-ags.html b/latest/publications/interactive-ags.html index 81d06d363..ce52cd760 100644 --- a/latest/publications/interactive-ags.html +++ b/latest/publications/interactive-ags.html @@ -1,99 +1,556 @@ + + - - + + + + + + + + Interactive Graphic Statics — COMPAS AGS + + - compas_ags - Interactive Graphic Statics + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Interactive Graphic Statics

-
@inproceedings{MaiaAvelino2021,
+
@inproceedings{MaiaAvelino2021,
     author    = "Maia Avelino, R. and Lee, J. and Van Mele, T. and Block, P. ",
     title     = "An interactive implementation of algebraic graphic statics for geometry-based teaching and design of structures",
     booktitle = "Proceedings of the International fib Symposium on the Conceptual Design of Structures 2021",
@@ -108,7 +565,7 @@ 

Interactive Graphic Statics

doi = "10.35789/fib.PROC.0055.2021.CDSymp.P054", note = "", } -
+

Abstract

This paper presents an interactive implementation of graphic statics, which can be @@ -131,207 +588,67 @@

Interactive Graphic Statics

harness the advantages of traditional graphic statics for geometry-based teaching and design of structures.

- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/publications/loadpath.html b/latest/publications/loadpath.html index 2597d1b6d..56de1842c 100644 --- a/latest/publications/loadpath.html +++ b/latest/publications/loadpath.html @@ -1,99 +1,556 @@ + + - - + + + + + + + + Load-path optimisation of funicular networks — COMPAS AGS + + - compas_ags - Load-path optimisation of funicular networks + + + + + - - + + + + + - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
+ +
+
+ +
- + --> +
+ +
+ + + + + +
+ + + + + + + + + +
+ +
-
+
+
+ +
+
+ +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + +
+ +

Load-path optimisation of funicular networks

-
@article{Liew2018,
+
@article{Liew2018,
     author  = "Liew, A. and Pagonakis, D. and Van Mele, T. and Block, P.",
     title   = "Load-path optimisation of funicular networks",
     journal = "Meccanica",
@@ -105,7 +562,7 @@ 

Load-path optimisation of funicular networks

doi = "10.1007/s11012-017-0714-1", note = "", } -
+

Abstract

This paper describes the use of load-path optimisation for discrete compression vaults. The presented @@ -122,207 +579,67 @@

Load-path optimisation of funicular networks

of efficient thrust network patterns within the structure.

- -
- - - - - -
+ + + + +
+ +
+ +
+ + + + +
+
+ +
- - - - + - - - - - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-
-

Copyright © 2017-2021 compas-dev

-
-
-
- - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/latest/search.html b/latest/search.html index 2b0d4f29f..8dae0ace5 100644 --- a/latest/search.html +++ b/latest/search.html @@ -1,296 +1,613 @@ - - - - - compas_ags - - - - + - - - - - - - - + + + + Search - COMPAS AGS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + +
+
+
+
+
+ + - - - -
-
- -
- - - - - - -

Search

- -
+
- + + + + + -
+ + +
+
+ +
+ + + + +
+ + + - - -
- -
- - -
-
-
-
-

COMPAS

-

- A computational framework for collaboration and research - in Architecture, Engineering, Fabrication, and Construction. -

- -
-
-
-

Copyright © 2017-2021 compas-dev

-
+ +
+ + +
+
+ +
+ + +
+

Search

+
+ + + +
- - - - - - - - - - - - - - - - - + + + +
+ +
+ +
+ + + + +
+
+ +
+ + +
+
+ + + + + + + \ No newline at end of file diff --git a/latest/searchindex.js b/latest/searchindex.js index 7401dc1fe..3965ca550 100644 --- a/latest/searchindex.js +++ b/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api","api/compas_ags","api/compas_ags.ags","api/compas_ags.diagrams","api/compas_ags.rhino","api/compas_ags.utilities","api/compas_ags.viewers","api/generated/compas_ags.ags.compute_external_work","api/generated/compas_ags.ags.compute_internal_work","api/generated/compas_ags.ags.compute_internal_work_compression","api/generated/compas_ags.ags.compute_internal_work_tension","api/generated/compas_ags.ags.compute_loadpath","api/generated/compas_ags.ags.force_update_from_form","api/generated/compas_ags.ags.form_count_dof","api/generated/compas_ags.ags.form_identify_dof","api/generated/compas_ags.ags.form_update_from_force","api/generated/compas_ags.ags.form_update_q_from_qind","api/generated/compas_ags.ags.optimise_loadpath","api/generated/compas_ags.ags.update_primal_from_dual","api/generated/compas_ags.ags.update_q_from_qind","api/generated/compas_ags.diagrams.Diagram","api/generated/compas_ags.diagrams.ForceDiagram","api/generated/compas_ags.diagrams.FormDiagram","api/generated/compas_ags.diagrams.FormGraph","api/generated/compas_ags.viewers.Viewer","devguide","examples","examples/00_basic","examples/01_rtl","examples/02_lpopt","examples/03_fink","gettingstarted","index","license","publications","publications/ags","publications/bi-ags","publications/interactive-ags","publications/loadpath"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","api/compas_ags.rst","api/compas_ags.ags.rst","api/compas_ags.diagrams.rst","api/compas_ags.rhino.rst","api/compas_ags.utilities.rst","api/compas_ags.viewers.rst","api/generated/compas_ags.ags.compute_external_work.rst","api/generated/compas_ags.ags.compute_internal_work.rst","api/generated/compas_ags.ags.compute_internal_work_compression.rst","api/generated/compas_ags.ags.compute_internal_work_tension.rst","api/generated/compas_ags.ags.compute_loadpath.rst","api/generated/compas_ags.ags.force_update_from_form.rst","api/generated/compas_ags.ags.form_count_dof.rst","api/generated/compas_ags.ags.form_identify_dof.rst","api/generated/compas_ags.ags.form_update_from_force.rst","api/generated/compas_ags.ags.form_update_q_from_qind.rst","api/generated/compas_ags.ags.optimise_loadpath.rst","api/generated/compas_ags.ags.update_primal_from_dual.rst","api/generated/compas_ags.ags.update_q_from_qind.rst","api/generated/compas_ags.diagrams.Diagram.rst","api/generated/compas_ags.diagrams.ForceDiagram.rst","api/generated/compas_ags.diagrams.FormDiagram.rst","api/generated/compas_ags.diagrams.FormGraph.rst","api/generated/compas_ags.viewers.Viewer.rst","devguide.rst","examples.rst","examples/00_basic.rst","examples/01_rtl.rst","examples/02_lpopt.rst","examples/03_fink.rst","gettingstarted.rst","index.rst","license.rst","publications.rst","publications/ags.rst","publications/bi-ags.rst","publications/interactive-ags.rst","publications/loadpath.rst"],objects:{"":[[1,0,0,"-","compas_ags"]],"compas_ags.ags":[[7,1,1,"","compute_external_work"],[8,1,1,"","compute_internal_work"],[9,1,1,"","compute_internal_work_compression"],[10,1,1,"","compute_internal_work_tension"],[11,1,1,"","compute_loadpath"],[12,1,1,"","force_update_from_form"],[13,1,1,"","form_count_dof"],[14,1,1,"","form_identify_dof"],[15,1,1,"","form_update_from_force"],[16,1,1,"","form_update_q_from_qind"],[17,1,1,"","optimise_loadpath"],[18,1,1,"","update_primal_from_dual"],[19,1,1,"","update_q_from_qind"]],"compas_ags.diagrams":[[20,2,1,"","Diagram"],[21,2,1,"","ForceDiagram"],[22,2,1,"","FormDiagram"],[23,2,1,"","FormGraph"]],"compas_ags.diagrams.Diagram":[[20,3,1,"","__init__"]],"compas_ags.diagrams.ForceDiagram":[[21,3,1,"","__init__"]],"compas_ags.diagrams.FormDiagram":[[22,3,1,"","__init__"]],"compas_ags.diagrams.FormGraph":[[23,3,1,"","__init__"]],"compas_ags.viewers":[[24,2,1,"","Viewer"]],"compas_ags.viewers.Viewer":[[24,3,1,"","__init__"]],compas_ags:[[2,0,0,"-","ags"],[3,0,0,"-","diagrams"],[4,0,0,"-","rhino"],[6,0,0,"-","viewers"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"0":[14,27,28,29,30],"000000":[27,28],"0010":36,"003":36,"004":35,"0055":37,"017":38,"04":35,"0714":38,"08":36,"1":[18,27,28,29,30,32,38],"10":[28,29,35,36,37,38],"100":[15,18,28],"1007":38,"1016":[35,36],"104":35,"11":29,"116":35,"12":[27,28,29,30],"13":29,"14":29,"15":[27,29],"16":[24,29],"17":29,"18":29,"19th":37,"2":[27,28,29,32],"20":15,"2014":35,"2016":33,"2017":36,"2018":[33,38],"2021":37,"20th":37,"26":36,"279":38,"294":38,"2d":30,"3":[27,29,30,32],"30":27,"35789":37,"37":36,"4":[28,29,32],"447":37,"4485":36,"454":37,"5":[27,28,29,30],"53":[35,38],"6":[27,28,29,30],"7":[27,28,29,30],"8":[28,29],"9":[24,29,30],"93":36,"\u00e5kesson":36,"abstract":[35,36,37,38],"case":[17,18,38],"class":[20,21,22,23,24],"default":[15,18],"do":33,"fern\u00e1ndez":37,"final":[30,35],"float":[7,8,9,10,11],"function":[18,38],"import":[27,28,29,30],"int":[13,14,15,18],"long":38,"new":[17,18],"null":[13,14],"public":32,"return":[7,8,9,10,11,12,13,14,15,16,17,18,19],"static":[14,27,34],"true":[24,28,29],"while":18,A:[14,15,23,32,33,35,36,38],AND:33,AS:33,BE:33,BUT:33,By:38,FOR:33,For:[17,18],IN:33,IS:33,If:14,In:[17,32],NO:33,NOT:33,OF:33,OR:33,Or:[18,31],THE:33,TO:33,The:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,30,32,33,35,37,38],These:35,WITH:33,With:31,_:[13,14,18],__init__:[20,21,22,23,24],_c:18,_xy:18,ab:30,abov:33,accordingli:28,action:[33,38],acunto:37,add:30,addit:36,address:37,advantag:37,after:[12,15,18],ag:[0,1,20,21,22,27,28,29,32,37],aid:[35,36],algebra:[34,37],algo:17,algorithm:[17,35],alic201726:36,alic:36,all:[15,33],allow:[32,36,37,38],although:17,an:[18,27,28,32,33,35,36,37],analysi:[32,35,37,38],analyt:37,ani:[17,18,33],api:[31,32],append:[28,30],appli:[18,27,29],applic:[7,35,36],approach:[35,38],appropri:38,ar:[14,15,17,18,19,29,35,36,38],arbitrari:7,arch:17,areal:37,aris:33,arithmet:32,around:35,arrai:[18,19],arrow:28,articl:[35,36,38],assert:30,assign:[29,38],associ:[33,38],assum:18,attisholz:37,attribut:[16,20,21,22,23],author:[33,35,36,37,38],automat:[17,37],avelino:37,avoid:38,axial:32,b:[15,17,30],back:[35,36,37],bar:35,base:[12,15,17,18,20,21,22,23,24,32,37],basi:14,basic:[20,26,32,37],becaus:35,becom:18,been:35,begin:[13,14],behaviour:32,between:[32,35,37],bfg:17,bi:[32,34,37],block:[33,35,37,38],blockresearchgroup:31,bmatrix:[13,14],boil:15,booktitl:37,both:[15,18,32,38],bottom:29,boundari:[29,38],brg:17,bridg:17,briefli:35,bring:35,build:37,built:35,c:[13,14,33,37],cad:[35,36,37],calcul:35,can:[15,17,18,31,35,37,38],cannot:35,cccccc:28,cd:31,cdsymp:37,centuri:37,chang:28,charg:33,choic:17,choos:27,chord:29,claim:33,clone:31,cobyla:17,code:35,coeffici:15,color:28,com:31,combin:[14,32],compa:[20,23,30],compas_ag:[0,27,28,29,30,31,32],compas_plott:30,compress:[9,17,38],comput:[7,8,9,10,11,15,18,30,35,36,37],concept:35,conceptu:37,condit:[29,33,38],configur:32,connect:[17,18,23,29,33],consid:18,constrain:35,constraint:[15,18,36,37],construct:[28,30,35,37,38],contain:[32,35],continu:30,contract:33,contribut:35,coordin:[15,17,18,29],copi:[30,33],copyright:33,correspond:[15,17,18],corrspond:18,could:[30,38],count:13,creat:[29,30],cremona:32,cross:[30,35],csr:[18,19],d:[37,38],damag:33,daniel:36,data:[20,21,22],datastructur:[20,23],deal:33,deck:17,defin:[7,18,35,38],degre:13,delay_setup:[24,27,28,29],delete_nod:30,demonstr:[35,36],densiti:[12,15,16,19,27,28,29,38],dep:19,depend:[16,19,38],deriv:[36,38],describ:[14,32,38],design:[32,35,36,37],determin:[14,27,35,36],develop:[32,37],diagram:[0,1,7,8,9,10,11,12,13,14,15,16,17,18,26,27,29,30,32,35,36,37],dict:18,differ:35,dimens:[13,14],dimension:[32,35,37],direct:[18,32,34,37],directli:[17,31,35,36,38],disappear:37,discret:[37,38],discuss:[35,36],displai:[27,29],displaystyl:18,distribut:[29,33,38],document:33,doe:17,dof:14,doi:[35,36,37,38],domain:[17,29],don:31,done:[7,8,9,10,11],dot:[7,31],down:15,draw_edg:30,draw_forc:[27,28,29],draw_form:[27,28,29],draw_vertic:30,dual:[18,20],dualiti:15,e:[13,14,18,19,30,31],each:[15,18],edg:[14,15,16,17,18,19,27,28,29,30,35,38],edge_attribut:29,edge_forc:[27,28],edge_length:30,edgelabel:[27,28],editor:37,effect:17,effici:[17,32,38],egg:31,either:37,element:17,emb:30,embed:30,emphas:36,empti:18,enabl:37,encourag:38,end:[13,14,28,31,35,36,37],engin:37,enough:27,enumer:[27,28],environ:37,equal:7,equat:[18,35,36],equilibrium:[13,14,17,19,27,29,32,35,37],equival:35,essenti:15,evalu:32,event:33,everi:[14,18],exampl:[7,8,9,10,13,14,15,16,17,18,19,31,32,35,36,38],exist:36,express:[15,33],extend:36,extens:[32,37],extern:[7,32,35],fals:[27,28,29],few:37,ff0000:28,fib:37,figsiz:[24,27,28,29,30],figur:32,file:[31,33],find:[30,38],fink:[26,32,35],first:15,fit:33,fivet:37,fix:[7,15,28,29,30],flexibl:35,flip:17,flow:38,follow:[15,33],forc:[7,8,9,10,11,12,15,16,17,18,19,21,24,27,28,29,32,35,36,37,38],force_key_xyz:28,force_lin:28,force_update_from_form:[27,28,29],forcediagram:[7,8,9,10,11,12,15,17,27,28,29],forces_on:28,forcescal:29,forget:31,form:[7,8,9,10,11,12,13,14,15,16,17,18,22,23,24,26,27,29,30,32,35,36,37,38],form_lin:28,form_update_from_forc:28,form_update_q_from_qind:[27,28,29],formalis:37,format:18,formdiagram:[7,8,9,10,11,12,13,14,15,16,17,27,28,29,30],formgraph:[27,28,29,30],formul:[35,37],fortran:15,found:35,four:35,frame:[27,35],framework:35,free:[18,28,33],freedom:13,from:[15,17,18,27,28,29,30,31,33,35,36,37],from_formdiagram:[27,28,29],from_graph:[27,28,29,30],from_nodes_and_edg:29,from_obj:[27,28,30],full:19,funicular:[32,34,35],furnish:33,furthermor:32,gener:[17,35,38],geometr:[18,32,35,36,37],geometri:[15,18,23,28,30,37],get:[27,28,30,32],git:31,github:31,given:[17,29,37,38],glanc:32,gmma:17,gradient:38,grant:33,graph:[23,27,28,29,30,34,37],graphic:[34,35,36],graphicstat:32,graphstat:[27,28,29],group:33,gs_form_forc:[27,28],guid:32,ha:[30,38],hanger:17,har:37,have:[17,35,37],herebi:33,hessian:38,high:38,hing:35,holder:33,horizont:17,html:31,http:31,i:[13,14,18],i_nbr:18,identifi:[14,30],idepend:14,ij_:18,illustr:35,implement:[17,35,36,37],impli:33,impos:[18,37],improv:36,includ:[28,33],ind:[14,19],independ:[14,16,19,27,38],indetermin:[14,35],indeterminaci:38,index:[18,27,28],indic:[14,19,28],infenitesim:14,inproceed:37,integr:37,interact:[32,34,35,36],interchag:18,intern:[8,9,10,11,17,32,37,38],intersect:[15,18],introduc:[36,37],introduct:32,intuit:32,investig:38,involv:17,io:31,is_2d:30,is_cross:30,is_fix:[28,29],is_ind:29,is_param:29,is_planar:30,issn:36,iter:[15,18,37],its:[27,29,35,37,38],j:[18,35,36,37],jacobian:36,journal:[35,36,38],k:[13,14,18],kei:[27,28,29,30],kind:33,kmax:[15,18,28],known:[32,37],l:[17,30],layout:[30,38],least:[15,18],leav:[18,30],lee:37,left:[13,14,27,28],len:30,length:[18,30],liabil:33,liabl:33,licens:32,liew2018:38,liew:38,like:18,limit:33,line:[15,18,23,27,28,35],line_constraint:18,linear:[14,18,36,37],linearli:14,list:[14,18,19,27],load:[26,27,28,32,34,35],loadpath:[17,29],local:31,locat:[15,18],longer:[17,29],lowest:38,m:[13,14,37],magnitud:[27,28],maia:37,maiaavelino2021:37,main:17,make:[27,29,32],mani:17,manipul:36,mathbf:[13,14,15,18],matrix:[13,14,18,19,35,36],maximum:[15,18],maxwel:32,meccanica:38,mechan:14,mele:[35,37,38],member:29,merchant:33,merg:33,mesh:[20,21,22],meshplott:30,method:[20,21,22,23,24,32,35,36,37],minimis:38,minimum:29,mit:33,mma:17,modif:[15,37],modifi:[12,18,19,29,33],month:[35,37,38],more:[15,32],movement:28,n:18,natur:32,neighbor:30,neighbour:18,net:35,network:[23,32,34,35],newton:36,next:28,node:[18,28,29,30],node_attribut:30,noleav:30,non:[35,36,38],none:[18,19],noninfring:33,normal:18,normalize_vector:30,note:[13,14,15,17,18,35,36,37,38],notic:33,now:29,nulliti:[13,14],number:[13,14,15,17,18,35,37,38],number_of_edg:30,numer:32,o:37,obj:[27,28,30],object:[18,24],obtain:33,ohlbrock:37,one:27,ones:16,onli:[17,38],optim:29,optimis:[17,26,32,34],optimise_loadpath:29,optimum:38,option:[15,17,18],order:15,origin:28,orthogon:38,other:[33,37],otherwis:33,out:33,output:29,outsid:30,over:37,overal:29,p054:37,p:[18,35,37,38],page:[35,36,37,38],pagonaki:38,pair:18,panel:28,paper:[27,28,30,35,37,38],parallel:[15,18],parallelis:17,paramet:[7,8,9,10,11,12,13,14,15,16,17,18,19,29],paramt:17,particular:33,path:[26,32,34],pattern:38,per:18,perform:[32,37],permiss:33,permit:33,person:33,pip:31,place:[18,19],plan:38,planar:[29,30,35],plane:[27,30],plotter:30,point:[7,15,18,30],portion:33,posit:[18,28],practic:37,pre:[35,36],prefer:17,present:[35,36,37,38],previou:37,primal:18,problem:[15,17],proc:37,procedur:35,proceed:37,process:32,product:7,properti:35,provid:[33,35,37],publish:[33,37],purpos:33,q:[18,19,29],quad:18,qualiti:36,r:[18,37],radiu:30,rather:37,re:30,reaction:[27,28],real:[35,37],recent:37,reciproc:[15,18,32,35,37],refer:32,relat:[32,35,37],relationship:37,relev:35,reli:37,repo:31,repres:[23,32],represent:37,requir:36,research:33,restraint:38,restrict:33,result:[28,29,30,32],right:[27,28,33],robust:[35,36,37],routin:38,ruiz:37,s11012:38,s:[32,36,37,38],same:29,satisfi:18,scale_vector:30,scheme:35,segment:17,select:38,self:[14,35],sell:33,septemb:37,set:[14,19,27,28,29,36],sever:[35,36],shall:33,should:[17,18],show:[27,28,29,30,38],shown:35,side:18,signific:35,sinc:[15,17],singl:28,size:14,slowli:37,slsq:17,smaller:17,snippet:35,so:33,softwar:33,solut:[17,29,38],solv:[15,18,36],solver:37,some:15,sourc:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,31],space:[13,14,17],spars:[18,19],spring:30,squar:[15,18],stabl:17,start:[28,32],state:14,step:35,store:[16,28],str:29,stress:[14,35],structur:[7,8,9,10,11,20,21,22,29,32,35,37,38],strut:29,style:28,subject:[33,38],sublicens:33,substanti:33,subtract_vector:30,sum:[7,30],sum_:18,sum_vector:30,support:28,switzerland:37,symposium:37,system:[14,18,27,32,35],t:[13,14,18,31,35,37,38],tailor:17,taken:18,target:18,target_length:18,target_vector:18,teach:37,techniqu:35,tensil:10,tension:17,text:30,than:[17,32,37],thei:14,them:[17,35],theoret:35,theori:[32,35],thi:[7,14,15,18,20,33,35,37,38],three:[15,35],through:35,thrust:[35,38],thu:27,time:[35,37],titl:[35,36,37,38],togeth:35,top:29,topolog:38,tort:33,toward:30,tradit:[35,37],transpar:32,triangl:27,truss:[26,28,29,32,35],two:[32,37],u:[13,14,28,30],under:35,understand:38,unifi:35,unstabl:14,updat:[12,15,16,18,19,26,27,29,32,36,37],us:[16,17,18,19,30,33,35,36,37,38],usabl:36,user:37,uv:27,v:[13,14,28,30],valu:[15,16,19],van:[35,37,38],vanmele2014:35,variou:37,vault:38,vector:[7,14,18,30],vedad:36,verif:32,versa:17,vertex:[15,18,28,29],vertex_attribut:29,vertex_coordin:28,vertexcolor:[27,28],vertexlabel:[27,28,29],vertexs:[27,28,29],vertic:[15,17,18,27,28,29],vertices_attribut:[28,29],vertices_wher:[27,28],vice:17,viewer:[0,1,27,28,29,32],visual:[28,30,32],volum:[35,36,37,38],volumn:29,wa:37,warranti:33,we:[18,30,35,36],weight:38,well:[32,37],were:38,when:17,where:36,whether:33,which:[12,15,18,35,36,37],whom:33,width:28,within:38,without:[30,33],work:[7,8,9,10,11,37],workflow:37,write:18,written:35,x:[15,17,27,28],xy:[18,28,29,30],xyz:30,y:[15,27,28],year:[35,36,37,38]},titles:["API Reference","compas_ags","compas_ags.ags","compas_ags.diagrams","<no title>","<no title>","compas_ags.viewers","compas_ags.ags.compute_external_work","compas_ags.ags.compute_internal_work","compas_ags.ags.compute_internal_work_compression","compas_ags.ags.compute_internal_work_tension","compas_ags.ags.compute_loadpath","compas_ags.ags.force_update_from_form","compas_ags.ags.form_count_dof","compas_ags.ags.form_identify_dof","compas_ags.ags.form_update_from_force","compas_ags.ags.form_update_q_from_qind","compas_ags.ags.optimise_loadpath","compas_ags.ags.update_primal_from_dual","compas_ags.ags.update_q_from_qind","compas_ags.diagrams.Diagram","compas_ags.diagrams.ForceDiagram","compas_ags.diagrams.FormDiagram","compas_ags.diagrams.FormGraph","compas_ags.viewers.Viewer","Developer Guide","Examples","Basic example","Updating the form diagram","Optimise the load path","Fink Truss","Getting Started","Algebraic Graph Statics","License","Publications","Algebraic Graph Statics","Bi-directional Algebraic Graph Statics","Interactive Graphic Statics","Load-path optimisation of funicular networks"],titleterms:{"public":34,"static":[2,32,35,36,37],ag:[2,7,8,9,10,11,12,13,14,15,16,17,18,19],algebra:[32,35,36],api:0,basic:27,bi:36,compas_ag:[1,2,3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],compute_external_work:7,compute_internal_work:8,compute_internal_work_compress:9,compute_internal_work_tens:10,compute_loadpath:11,content:32,core:2,develop:25,diagram:[3,20,21,22,23,28],direct:36,exampl:[26,27],fink:30,first:31,force_update_from_form:12,forcediagram:21,form:28,form_count_dof:13,form_identify_dof:14,form_update_from_forc:15,form_update_q_from_qind:16,formdiagram:22,formgraph:23,funicular:38,get:31,graph:[2,3,32,35,36],graphic:[32,37],guid:25,implement:32,instal:31,interact:37,licens:33,load:[2,29,38],network:38,optimis:[29,38],optimise_loadpath:17,path:[2,29,38],refer:0,start:31,step:31,tabl:32,truss:30,updat:28,update_primal_from_du:18,update_q_from_qind:19,viewer:[6,24]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "api/compas_ags", "api/compas_ags.ags", "api/compas_ags.diagrams", "api/compas_ags.exceptions", "api/generated/compas_ags.ags.compute_external_work", "api/generated/compas_ags.ags.compute_internal_work", "api/generated/compas_ags.ags.compute_internal_work_compression", "api/generated/compas_ags.ags.compute_internal_work_tension", "api/generated/compas_ags.ags.compute_loadpath", "api/generated/compas_ags.ags.force_update_from_form", "api/generated/compas_ags.ags.form_count_dof", "api/generated/compas_ags.ags.form_identify_dof", "api/generated/compas_ags.ags.form_update_from_force", "api/generated/compas_ags.ags.form_update_q_from_qind", "api/generated/compas_ags.ags.optimise_loadpath", "api/generated/compas_ags.ags.update_primal_from_dual", "api/generated/compas_ags.ags.update_q_from_qind", "api/generated/compas_ags.diagrams.Diagram", "api/generated/compas_ags.diagrams.Diagram.ToString", "api/generated/compas_ags.diagrams.Diagram.aabb", "api/generated/compas_ags.diagrams.Diagram.add_face", "api/generated/compas_ags.diagrams.Diagram.add_vertex", "api/generated/compas_ags.diagrams.Diagram.adjacency_matrix", "api/generated/compas_ags.diagrams.Diagram.area", "api/generated/compas_ags.diagrams.Diagram.centroid", "api/generated/compas_ags.diagrams.Diagram.clear", "api/generated/compas_ags.diagrams.Diagram.collapse_edge", "api/generated/compas_ags.diagrams.Diagram.compute_aabb", "api/generated/compas_ags.diagrams.Diagram.compute_obb", "api/generated/compas_ags.diagrams.Diagram.connected_faces", "api/generated/compas_ags.diagrams.Diagram.connected_vertices", "api/generated/compas_ags.diagrams.Diagram.connectivity_matrix", "api/generated/compas_ags.diagrams.Diagram.copy", "api/generated/compas_ags.diagrams.Diagram.cull_vertices", "api/generated/compas_ags.diagrams.Diagram.degree_matrix", "api/generated/compas_ags.diagrams.Diagram.delete_face", "api/generated/compas_ags.diagrams.Diagram.delete_vertex", "api/generated/compas_ags.diagrams.Diagram.edge_attribute", "api/generated/compas_ags.diagrams.Diagram.edge_attributes", "api/generated/compas_ags.diagrams.Diagram.edge_coordinates", "api/generated/compas_ags.diagrams.Diagram.edge_direction", "api/generated/compas_ags.diagrams.Diagram.edge_end", "api/generated/compas_ags.diagrams.Diagram.edge_faces", "api/generated/compas_ags.diagrams.Diagram.edge_index", "api/generated/compas_ags.diagrams.Diagram.edge_length", "api/generated/compas_ags.diagrams.Diagram.edge_line", "api/generated/compas_ags.diagrams.Diagram.edge_loop", "api/generated/compas_ags.diagrams.Diagram.edge_midpoint", "api/generated/compas_ags.diagrams.Diagram.edge_point", "api/generated/compas_ags.diagrams.Diagram.edge_sample", "api/generated/compas_ags.diagrams.Diagram.edge_start", "api/generated/compas_ags.diagrams.Diagram.edge_strip", "api/generated/compas_ags.diagrams.Diagram.edge_vector", "api/generated/compas_ags.diagrams.Diagram.edges", "api/generated/compas_ags.diagrams.Diagram.edges_attribute", "api/generated/compas_ags.diagrams.Diagram.edges_attributes", "api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries", "api/generated/compas_ags.diagrams.Diagram.edges_on_boundary", "api/generated/compas_ags.diagrams.Diagram.edges_where", "api/generated/compas_ags.diagrams.Diagram.edges_where_predicate", "api/generated/compas_ags.diagrams.Diagram.euler", "api/generated/compas_ags.diagrams.Diagram.exploded", "api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge", "api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices", "api/generated/compas_ags.diagrams.Diagram.face_area", "api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio", "api/generated/compas_ags.diagrams.Diagram.face_attribute", "api/generated/compas_ags.diagrams.Diagram.face_attributes", "api/generated/compas_ags.diagrams.Diagram.face_center", "api/generated/compas_ags.diagrams.Diagram.face_centroid", "api/generated/compas_ags.diagrams.Diagram.face_circle", "api/generated/compas_ags.diagrams.Diagram.face_coordinates", "api/generated/compas_ags.diagrams.Diagram.face_corners", "api/generated/compas_ags.diagrams.Diagram.face_curvature", "api/generated/compas_ags.diagrams.Diagram.face_degree", "api/generated/compas_ags.diagrams.Diagram.face_flatness", "api/generated/compas_ags.diagrams.Diagram.face_frame", "api/generated/compas_ags.diagrams.Diagram.face_halfedges", "api/generated/compas_ags.diagrams.Diagram.face_matrix", "api/generated/compas_ags.diagrams.Diagram.face_max_degree", "api/generated/compas_ags.diagrams.Diagram.face_min_degree", "api/generated/compas_ags.diagrams.Diagram.face_neighborhood", "api/generated/compas_ags.diagrams.Diagram.face_neighbors", "api/generated/compas_ags.diagrams.Diagram.face_normal", "api/generated/compas_ags.diagrams.Diagram.face_plane", "api/generated/compas_ags.diagrams.Diagram.face_points", "api/generated/compas_ags.diagrams.Diagram.face_polygon", "api/generated/compas_ags.diagrams.Diagram.face_sample", "api/generated/compas_ags.diagrams.Diagram.face_skewness", "api/generated/compas_ags.diagrams.Diagram.face_vertex_after", "api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor", "api/generated/compas_ags.diagrams.Diagram.face_vertex_before", "api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant", "api/generated/compas_ags.diagrams.Diagram.face_vertices", "api/generated/compas_ags.diagrams.Diagram.faces", "api/generated/compas_ags.diagrams.Diagram.faces_attribute", "api/generated/compas_ags.diagrams.Diagram.faces_attributes", "api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries", "api/generated/compas_ags.diagrams.Diagram.faces_on_boundary", "api/generated/compas_ags.diagrams.Diagram.faces_where", "api/generated/compas_ags.diagrams.Diagram.faces_where_predicate", "api/generated/compas_ags.diagrams.Diagram.flip_cycles", "api/generated/compas_ags.diagrams.Diagram.from_json", "api/generated/compas_ags.diagrams.Diagram.from_jsonstring", "api/generated/compas_ags.diagrams.Diagram.from_lines", "api/generated/compas_ags.diagrams.Diagram.from_meshgrid", "api/generated/compas_ags.diagrams.Diagram.from_obj", "api/generated/compas_ags.diagrams.Diagram.from_off", "api/generated/compas_ags.diagrams.Diagram.from_ply", "api/generated/compas_ags.diagrams.Diagram.from_points", "api/generated/compas_ags.diagrams.Diagram.from_polygons", "api/generated/compas_ags.diagrams.Diagram.from_polyhedron", "api/generated/compas_ags.diagrams.Diagram.from_polylines", "api/generated/compas_ags.diagrams.Diagram.from_shape", "api/generated/compas_ags.diagrams.Diagram.from_stl", "api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces", "api/generated/compas_ags.diagrams.Diagram.gkey_vertex", "api/generated/compas_ags.diagrams.Diagram.halfedge_after", "api/generated/compas_ags.diagrams.Diagram.halfedge_before", "api/generated/compas_ags.diagrams.Diagram.halfedge_face", "api/generated/compas_ags.diagrams.Diagram.halfedge_loop", "api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices", "api/generated/compas_ags.diagrams.Diagram.halfedge_strip", "api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces", "api/generated/compas_ags.diagrams.Diagram.has_edge", "api/generated/compas_ags.diagrams.Diagram.has_face", "api/generated/compas_ags.diagrams.Diagram.has_halfedge", "api/generated/compas_ags.diagrams.Diagram.has_vertex", "api/generated/compas_ags.diagrams.Diagram.index_edge", "api/generated/compas_ags.diagrams.Diagram.index_vertex", "api/generated/compas_ags.diagrams.Diagram.insert_vertex", "api/generated/compas_ags.diagrams.Diagram.is_closed", "api/generated/compas_ags.diagrams.Diagram.is_connected", "api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary", "api/generated/compas_ags.diagrams.Diagram.is_empty", "api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary", "api/generated/compas_ags.diagrams.Diagram.is_manifold", "api/generated/compas_ags.diagrams.Diagram.is_orientable", "api/generated/compas_ags.diagrams.Diagram.is_quadmesh", "api/generated/compas_ags.diagrams.Diagram.is_regular", "api/generated/compas_ags.diagrams.Diagram.is_trimesh", "api/generated/compas_ags.diagrams.Diagram.is_valid", "api/generated/compas_ags.diagrams.Diagram.is_vertex_connected", "api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary", "api/generated/compas_ags.diagrams.Diagram.join", "api/generated/compas_ags.diagrams.Diagram.laplacian_matrix", "api/generated/compas_ags.diagrams.Diagram.merge_faces", "api/generated/compas_ags.diagrams.Diagram.normal", "api/generated/compas_ags.diagrams.Diagram.number_of_edges", "api/generated/compas_ags.diagrams.Diagram.number_of_faces", "api/generated/compas_ags.diagrams.Diagram.number_of_vertices", "api/generated/compas_ags.diagrams.Diagram.obb", "api/generated/compas_ags.diagrams.Diagram.offset", "api/generated/compas_ags.diagrams.Diagram.quads_to_triangles", "api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices", "api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices", "api/generated/compas_ags.diagrams.Diagram.rotate", "api/generated/compas_ags.diagrams.Diagram.rotated", "api/generated/compas_ags.diagrams.Diagram.scale", "api/generated/compas_ags.diagrams.Diagram.scaled", "api/generated/compas_ags.diagrams.Diagram.set_vertex_point", "api/generated/compas_ags.diagrams.Diagram.sha256", "api/generated/compas_ags.diagrams.Diagram.slice", "api/generated/compas_ags.diagrams.Diagram.smooth_area", "api/generated/compas_ags.diagrams.Diagram.smooth_centroid", "api/generated/compas_ags.diagrams.Diagram.split_edge", "api/generated/compas_ags.diagrams.Diagram.split_face", "api/generated/compas_ags.diagrams.Diagram.split_strip", "api/generated/compas_ags.diagrams.Diagram.subdivided", "api/generated/compas_ags.diagrams.Diagram.summary", "api/generated/compas_ags.diagrams.Diagram.thickened", "api/generated/compas_ags.diagrams.Diagram.to_json", "api/generated/compas_ags.diagrams.Diagram.to_jsonstring", "api/generated/compas_ags.diagrams.Diagram.to_lines", "api/generated/compas_ags.diagrams.Diagram.to_obj", "api/generated/compas_ags.diagrams.Diagram.to_off", "api/generated/compas_ags.diagrams.Diagram.to_ply", "api/generated/compas_ags.diagrams.Diagram.to_points", "api/generated/compas_ags.diagrams.Diagram.to_polygons", "api/generated/compas_ags.diagrams.Diagram.to_polylines", "api/generated/compas_ags.diagrams.Diagram.to_stl", "api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces", "api/generated/compas_ags.diagrams.Diagram.transform", "api/generated/compas_ags.diagrams.Diagram.transform_numpy", "api/generated/compas_ags.diagrams.Diagram.transformed", "api/generated/compas_ags.diagrams.Diagram.transformed_numpy", "api/generated/compas_ags.diagrams.Diagram.translate", "api/generated/compas_ags.diagrams.Diagram.translated", "api/generated/compas_ags.diagrams.Diagram.unify_cycles", "api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute", "api/generated/compas_ags.diagrams.Diagram.unset_face_attribute", "api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute", "api/generated/compas_ags.diagrams.Diagram.unweld_edges", "api/generated/compas_ags.diagrams.Diagram.unweld_vertices", "api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes", "api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes", "api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes", "api/generated/compas_ags.diagrams.Diagram.validate_data", "api/generated/compas_ags.diagrams.Diagram.vertex_area", "api/generated/compas_ags.diagrams.Diagram.vertex_attribute", "api/generated/compas_ags.diagrams.Diagram.vertex_attributes", "api/generated/compas_ags.diagrams.Diagram.vertex_coordinates", "api/generated/compas_ags.diagrams.Diagram.vertex_curvature", "api/generated/compas_ags.diagrams.Diagram.vertex_degree", "api/generated/compas_ags.diagrams.Diagram.vertex_edges", "api/generated/compas_ags.diagrams.Diagram.vertex_faces", "api/generated/compas_ags.diagrams.Diagram.vertex_gkey", "api/generated/compas_ags.diagrams.Diagram.vertex_index", "api/generated/compas_ags.diagrams.Diagram.vertex_laplacian", "api/generated/compas_ags.diagrams.Diagram.vertex_max_degree", "api/generated/compas_ags.diagrams.Diagram.vertex_min_degree", "api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood", "api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid", "api/generated/compas_ags.diagrams.Diagram.vertex_neighbors", "api/generated/compas_ags.diagrams.Diagram.vertex_normal", "api/generated/compas_ags.diagrams.Diagram.vertex_point", "api/generated/compas_ags.diagrams.Diagram.vertex_sample", "api/generated/compas_ags.diagrams.Diagram.vertices", "api/generated/compas_ags.diagrams.Diagram.vertices_attribute", "api/generated/compas_ags.diagrams.Diagram.vertices_attributes", "api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries", "api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary", "api/generated/compas_ags.diagrams.Diagram.vertices_points", "api/generated/compas_ags.diagrams.Diagram.vertices_where", "api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate", "api/generated/compas_ags.diagrams.Diagram.weld", "api/generated/compas_ags.diagrams.ForceDiagram", "api/generated/compas_ags.diagrams.ForceDiagram.ToString", "api/generated/compas_ags.diagrams.ForceDiagram.aabb", "api/generated/compas_ags.diagrams.ForceDiagram.add_face", "api/generated/compas_ags.diagrams.ForceDiagram.add_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix", "api/generated/compas_ags.diagrams.ForceDiagram.anchor", "api/generated/compas_ags.diagrams.ForceDiagram.area", "api/generated/compas_ags.diagrams.ForceDiagram.centroid", "api/generated/compas_ags.diagrams.ForceDiagram.clear", "api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge", "api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb", "api/generated/compas_ags.diagrams.ForceDiagram.compute_obb", "api/generated/compas_ags.diagrams.ForceDiagram.connected_faces", "api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix", "api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual", "api/generated/compas_ags.diagrams.ForceDiagram.copy", "api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix", "api/generated/compas_ags.diagrams.ForceDiagram.delete_face", "api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce", "api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates", "api/generated/compas_ags.diagrams.ForceDiagram.edge_direction", "api/generated/compas_ags.diagrams.ForceDiagram.edge_end", "api/generated/compas_ags.diagrams.ForceDiagram.edge_faces", "api/generated/compas_ags.diagrams.ForceDiagram.edge_index", "api/generated/compas_ags.diagrams.ForceDiagram.edge_length", "api/generated/compas_ags.diagrams.ForceDiagram.edge_line", "api/generated/compas_ags.diagrams.ForceDiagram.edge_loop", "api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint", "api/generated/compas_ags.diagrams.ForceDiagram.edge_point", "api/generated/compas_ags.diagrams.ForceDiagram.edge_sample", "api/generated/compas_ags.diagrams.ForceDiagram.edge_start", "api/generated/compas_ags.diagrams.ForceDiagram.edge_strip", "api/generated/compas_ags.diagrams.ForceDiagram.edge_vector", "api/generated/compas_ags.diagrams.ForceDiagram.edges", "api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries", "api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate", "api/generated/compas_ags.diagrams.ForceDiagram.euler", "api/generated/compas_ags.diagrams.ForceDiagram.exploded", "api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge", "api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.face_area", "api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio", "api/generated/compas_ags.diagrams.ForceDiagram.face_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.face_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.face_center", "api/generated/compas_ags.diagrams.ForceDiagram.face_centroid", "api/generated/compas_ags.diagrams.ForceDiagram.face_circle", "api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates", "api/generated/compas_ags.diagrams.ForceDiagram.face_corners", "api/generated/compas_ags.diagrams.ForceDiagram.face_curvature", "api/generated/compas_ags.diagrams.ForceDiagram.face_degree", "api/generated/compas_ags.diagrams.ForceDiagram.face_flatness", "api/generated/compas_ags.diagrams.ForceDiagram.face_frame", "api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges", "api/generated/compas_ags.diagrams.ForceDiagram.face_matrix", "api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree", "api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree", "api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood", "api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors", "api/generated/compas_ags.diagrams.ForceDiagram.face_normal", "api/generated/compas_ags.diagrams.ForceDiagram.face_plane", "api/generated/compas_ags.diagrams.ForceDiagram.face_points", "api/generated/compas_ags.diagrams.ForceDiagram.face_polygon", "api/generated/compas_ags.diagrams.ForceDiagram.face_sample", "api/generated/compas_ags.diagrams.ForceDiagram.face_skewness", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.faces", "api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries", "api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.faces_where", "api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate", "api/generated/compas_ags.diagrams.ForceDiagram.fixed", "api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles", "api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram", "api/generated/compas_ags.diagrams.ForceDiagram.from_json", "api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring", "api/generated/compas_ags.diagrams.ForceDiagram.from_lines", "api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid", "api/generated/compas_ags.diagrams.ForceDiagram.from_obj", "api/generated/compas_ags.diagrams.ForceDiagram.from_off", "api/generated/compas_ags.diagrams.ForceDiagram.from_ply", "api/generated/compas_ags.diagrams.ForceDiagram.from_points", "api/generated/compas_ags.diagrams.ForceDiagram.from_polygons", "api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron", "api/generated/compas_ags.diagrams.ForceDiagram.from_polylines", "api/generated/compas_ags.diagrams.ForceDiagram.from_shape", "api/generated/compas_ags.diagrams.ForceDiagram.from_stl", "api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces", "api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces", "api/generated/compas_ags.diagrams.ForceDiagram.has_edge", "api/generated/compas_ags.diagrams.ForceDiagram.has_face", "api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge", "api/generated/compas_ags.diagrams.ForceDiagram.has_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.index_edge", "api/generated/compas_ags.diagrams.ForceDiagram.index_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex", "api/generated/compas_ags.diagrams.ForceDiagram.is_closed", "api/generated/compas_ags.diagrams.ForceDiagram.is_connected", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction", "api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.is_empty", "api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.is_manifold", "api/generated/compas_ags.diagrams.ForceDiagram.is_orientable", "api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh", "api/generated/compas_ags.diagrams.ForceDiagram.is_regular", "api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh", "api/generated/compas_ags.diagrams.ForceDiagram.is_valid", "api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected", "api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.join", "api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix", "api/generated/compas_ags.diagrams.ForceDiagram.merge_faces", "api/generated/compas_ags.diagrams.ForceDiagram.normal", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.obb", "api/generated/compas_ags.diagrams.ForceDiagram.offset", "api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges", "api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles", "api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.rotate", "api/generated/compas_ags.diagrams.ForceDiagram.rotated", "api/generated/compas_ags.diagrams.ForceDiagram.scale", "api/generated/compas_ags.diagrams.ForceDiagram.scaled", "api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point", "api/generated/compas_ags.diagrams.ForceDiagram.sha256", "api/generated/compas_ags.diagrams.ForceDiagram.slice", "api/generated/compas_ags.diagrams.ForceDiagram.smooth_area", "api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid", "api/generated/compas_ags.diagrams.ForceDiagram.split_edge", "api/generated/compas_ags.diagrams.ForceDiagram.split_face", "api/generated/compas_ags.diagrams.ForceDiagram.split_strip", "api/generated/compas_ags.diagrams.ForceDiagram.subdivided", "api/generated/compas_ags.diagrams.ForceDiagram.summary", "api/generated/compas_ags.diagrams.ForceDiagram.thickened", "api/generated/compas_ags.diagrams.ForceDiagram.to_json", "api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring", "api/generated/compas_ags.diagrams.ForceDiagram.to_lines", "api/generated/compas_ags.diagrams.ForceDiagram.to_obj", "api/generated/compas_ags.diagrams.ForceDiagram.to_off", "api/generated/compas_ags.diagrams.ForceDiagram.to_ply", "api/generated/compas_ags.diagrams.ForceDiagram.to_points", "api/generated/compas_ags.diagrams.ForceDiagram.to_polygons", "api/generated/compas_ags.diagrams.ForceDiagram.to_polylines", "api/generated/compas_ags.diagrams.ForceDiagram.to_stl", "api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces", "api/generated/compas_ags.diagrams.ForceDiagram.transform", "api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy", "api/generated/compas_ags.diagrams.ForceDiagram.transformed", "api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy", "api/generated/compas_ags.diagrams.ForceDiagram.translate", "api/generated/compas_ags.diagrams.ForceDiagram.translated", "api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles", "api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges", "api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.validate_data", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_area", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_index", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_point", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample", "api/generated/compas_ags.diagrams.ForceDiagram.vertices", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_points", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_where", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate", "api/generated/compas_ags.diagrams.ForceDiagram.weld", "api/generated/compas_ags.diagrams.ForceDiagram.xy", "api/generated/compas_ags.diagrams.FormDiagram", "api/generated/compas_ags.diagrams.FormDiagram.ToString", "api/generated/compas_ags.diagrams.FormDiagram.aabb", "api/generated/compas_ags.diagrams.FormDiagram.add_face", "api/generated/compas_ags.diagrams.FormDiagram.add_vertex", "api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix", "api/generated/compas_ags.diagrams.FormDiagram.area", "api/generated/compas_ags.diagrams.FormDiagram.centroid", "api/generated/compas_ags.diagrams.FormDiagram.clear", "api/generated/compas_ags.diagrams.FormDiagram.collapse_edge", "api/generated/compas_ags.diagrams.FormDiagram.compute_aabb", "api/generated/compas_ags.diagrams.FormDiagram.compute_obb", "api/generated/compas_ags.diagrams.FormDiagram.connected_faces", "api/generated/compas_ags.diagrams.FormDiagram.connected_vertices", "api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix", "api/generated/compas_ags.diagrams.FormDiagram.constrained", "api/generated/compas_ags.diagrams.FormDiagram.constraints", "api/generated/compas_ags.diagrams.FormDiagram.copy", "api/generated/compas_ags.diagrams.FormDiagram.cull_vertices", "api/generated/compas_ags.diagrams.FormDiagram.degree_matrix", "api/generated/compas_ags.diagrams.FormDiagram.delete_face", "api/generated/compas_ags.diagrams.FormDiagram.delete_vertex", "api/generated/compas_ags.diagrams.FormDiagram.edge_attribute", "api/generated/compas_ags.diagrams.FormDiagram.edge_attributes", "api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates", "api/generated/compas_ags.diagrams.FormDiagram.edge_direction", "api/generated/compas_ags.diagrams.FormDiagram.edge_end", "api/generated/compas_ags.diagrams.FormDiagram.edge_faces", "api/generated/compas_ags.diagrams.FormDiagram.edge_force", "api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity", "api/generated/compas_ags.diagrams.FormDiagram.edge_index", "api/generated/compas_ags.diagrams.FormDiagram.edge_length", "api/generated/compas_ags.diagrams.FormDiagram.edge_line", "api/generated/compas_ags.diagrams.FormDiagram.edge_loop", "api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint", "api/generated/compas_ags.diagrams.FormDiagram.edge_point", "api/generated/compas_ags.diagrams.FormDiagram.edge_sample", "api/generated/compas_ags.diagrams.FormDiagram.edge_start", "api/generated/compas_ags.diagrams.FormDiagram.edge_strip", "api/generated/compas_ags.diagrams.FormDiagram.edge_vector", "api/generated/compas_ags.diagrams.FormDiagram.edges", "api/generated/compas_ags.diagrams.FormDiagram.edges_attribute", "api/generated/compas_ags.diagrams.FormDiagram.edges_attributes", "api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries", "api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.edges_where", "api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate", "api/generated/compas_ags.diagrams.FormDiagram.euler", "api/generated/compas_ags.diagrams.FormDiagram.exploded", "api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge", "api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices", "api/generated/compas_ags.diagrams.FormDiagram.face_area", "api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio", "api/generated/compas_ags.diagrams.FormDiagram.face_attribute", "api/generated/compas_ags.diagrams.FormDiagram.face_attributes", "api/generated/compas_ags.diagrams.FormDiagram.face_center", "api/generated/compas_ags.diagrams.FormDiagram.face_centroid", "api/generated/compas_ags.diagrams.FormDiagram.face_circle", "api/generated/compas_ags.diagrams.FormDiagram.face_coordinates", "api/generated/compas_ags.diagrams.FormDiagram.face_corners", "api/generated/compas_ags.diagrams.FormDiagram.face_curvature", "api/generated/compas_ags.diagrams.FormDiagram.face_degree", "api/generated/compas_ags.diagrams.FormDiagram.face_flatness", "api/generated/compas_ags.diagrams.FormDiagram.face_frame", "api/generated/compas_ags.diagrams.FormDiagram.face_halfedges", "api/generated/compas_ags.diagrams.FormDiagram.face_matrix", "api/generated/compas_ags.diagrams.FormDiagram.face_max_degree", "api/generated/compas_ags.diagrams.FormDiagram.face_min_degree", "api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood", "api/generated/compas_ags.diagrams.FormDiagram.face_neighbors", "api/generated/compas_ags.diagrams.FormDiagram.face_normal", "api/generated/compas_ags.diagrams.FormDiagram.face_plane", "api/generated/compas_ags.diagrams.FormDiagram.face_points", "api/generated/compas_ags.diagrams.FormDiagram.face_polygon", "api/generated/compas_ags.diagrams.FormDiagram.face_sample", "api/generated/compas_ags.diagrams.FormDiagram.face_skewness", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant", "api/generated/compas_ags.diagrams.FormDiagram.face_vertices", "api/generated/compas_ags.diagrams.FormDiagram.faces", "api/generated/compas_ags.diagrams.FormDiagram.faces_attribute", "api/generated/compas_ags.diagrams.FormDiagram.faces_attributes", "api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries", "api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.faces_where", "api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate", "api/generated/compas_ags.diagrams.FormDiagram.fixed", "api/generated/compas_ags.diagrams.FormDiagram.flip_cycles", "api/generated/compas_ags.diagrams.FormDiagram.from_graph", "api/generated/compas_ags.diagrams.FormDiagram.from_json", "api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring", "api/generated/compas_ags.diagrams.FormDiagram.from_lines", "api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid", "api/generated/compas_ags.diagrams.FormDiagram.from_obj", "api/generated/compas_ags.diagrams.FormDiagram.from_off", "api/generated/compas_ags.diagrams.FormDiagram.from_ply", "api/generated/compas_ags.diagrams.FormDiagram.from_points", "api/generated/compas_ags.diagrams.FormDiagram.from_polygons", "api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron", "api/generated/compas_ags.diagrams.FormDiagram.from_polylines", "api/generated/compas_ags.diagrams.FormDiagram.from_shape", "api/generated/compas_ags.diagrams.FormDiagram.from_stl", "api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces", "api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_after", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_before", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_face", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces", "api/generated/compas_ags.diagrams.FormDiagram.has_edge", "api/generated/compas_ags.diagrams.FormDiagram.has_face", "api/generated/compas_ags.diagrams.FormDiagram.has_halfedge", "api/generated/compas_ags.diagrams.FormDiagram.has_vertex", "api/generated/compas_ags.diagrams.FormDiagram.identify_constraints", "api/generated/compas_ags.diagrams.FormDiagram.ind", "api/generated/compas_ags.diagrams.FormDiagram.index_edge", "api/generated/compas_ags.diagrams.FormDiagram.index_vertex", "api/generated/compas_ags.diagrams.FormDiagram.insert_vertex", "api/generated/compas_ags.diagrams.FormDiagram.is_closed", "api/generated/compas_ags.diagrams.FormDiagram.is_connected", "api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.is_empty", "api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.is_manifold", "api/generated/compas_ags.diagrams.FormDiagram.is_orientable", "api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh", "api/generated/compas_ags.diagrams.FormDiagram.is_regular", "api/generated/compas_ags.diagrams.FormDiagram.is_trimesh", "api/generated/compas_ags.diagrams.FormDiagram.is_valid", "api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected", "api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.join", "api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix", "api/generated/compas_ags.diagrams.FormDiagram.leaf_edges", "api/generated/compas_ags.diagrams.FormDiagram.leaves", "api/generated/compas_ags.diagrams.FormDiagram.merge_faces", "api/generated/compas_ags.diagrams.FormDiagram.normal", "api/generated/compas_ags.diagrams.FormDiagram.number_of_edges", "api/generated/compas_ags.diagrams.FormDiagram.number_of_faces", "api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices", "api/generated/compas_ags.diagrams.FormDiagram.obb", "api/generated/compas_ags.diagrams.FormDiagram.offset", "api/generated/compas_ags.diagrams.FormDiagram.q", "api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles", "api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices", "api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices", "api/generated/compas_ags.diagrams.FormDiagram.rotate", "api/generated/compas_ags.diagrams.FormDiagram.rotated", "api/generated/compas_ags.diagrams.FormDiagram.scale", "api/generated/compas_ags.diagrams.FormDiagram.scaled", "api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point", "api/generated/compas_ags.diagrams.FormDiagram.sha256", "api/generated/compas_ags.diagrams.FormDiagram.slice", "api/generated/compas_ags.diagrams.FormDiagram.smooth_area", "api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid", "api/generated/compas_ags.diagrams.FormDiagram.split_edge", "api/generated/compas_ags.diagrams.FormDiagram.split_face", "api/generated/compas_ags.diagrams.FormDiagram.split_strip", "api/generated/compas_ags.diagrams.FormDiagram.subdivided", "api/generated/compas_ags.diagrams.FormDiagram.summary", "api/generated/compas_ags.diagrams.FormDiagram.thickened", "api/generated/compas_ags.diagrams.FormDiagram.to_json", "api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring", "api/generated/compas_ags.diagrams.FormDiagram.to_lines", "api/generated/compas_ags.diagrams.FormDiagram.to_obj", "api/generated/compas_ags.diagrams.FormDiagram.to_off", "api/generated/compas_ags.diagrams.FormDiagram.to_ply", "api/generated/compas_ags.diagrams.FormDiagram.to_points", "api/generated/compas_ags.diagrams.FormDiagram.to_polygons", "api/generated/compas_ags.diagrams.FormDiagram.to_polylines", "api/generated/compas_ags.diagrams.FormDiagram.to_stl", "api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces", "api/generated/compas_ags.diagrams.FormDiagram.transform", "api/generated/compas_ags.diagrams.FormDiagram.transform_numpy", "api/generated/compas_ags.diagrams.FormDiagram.transformed", "api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy", "api/generated/compas_ags.diagrams.FormDiagram.translate", "api/generated/compas_ags.diagrams.FormDiagram.translated", "api/generated/compas_ags.diagrams.FormDiagram.unify_cycles", "api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute", "api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute", "api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute", "api/generated/compas_ags.diagrams.FormDiagram.unweld_edges", "api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices", "api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes", "api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes", "api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes", "api/generated/compas_ags.diagrams.FormDiagram.validate_data", "api/generated/compas_ags.diagrams.FormDiagram.vertex_area", "api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute", "api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes", "api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates", "api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature", "api/generated/compas_ags.diagrams.FormDiagram.vertex_degree", "api/generated/compas_ags.diagrams.FormDiagram.vertex_edges", "api/generated/compas_ags.diagrams.FormDiagram.vertex_faces", "api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey", "api/generated/compas_ags.diagrams.FormDiagram.vertex_index", "api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian", "api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree", "api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors", "api/generated/compas_ags.diagrams.FormDiagram.vertex_normal", "api/generated/compas_ags.diagrams.FormDiagram.vertex_point", "api/generated/compas_ags.diagrams.FormDiagram.vertex_sample", "api/generated/compas_ags.diagrams.FormDiagram.vertices", "api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute", "api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes", "api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries", "api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary", "api/generated/compas_ags.diagrams.FormDiagram.vertices_points", "api/generated/compas_ags.diagrams.FormDiagram.vertices_where", "api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate", "api/generated/compas_ags.diagrams.FormDiagram.weld", "api/generated/compas_ags.diagrams.FormDiagram.xy", "api/generated/compas_ags.diagrams.FormGraph", "api/generated/compas_ags.diagrams.FormGraph.ToString", "api/generated/compas_ags.diagrams.FormGraph.aabb", "api/generated/compas_ags.diagrams.FormGraph.add_edge", "api/generated/compas_ags.diagrams.FormGraph.add_node", "api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix", "api/generated/compas_ags.diagrams.FormGraph.clear", "api/generated/compas_ags.diagrams.FormGraph.complement", "api/generated/compas_ags.diagrams.FormGraph.compute_aabb", "api/generated/compas_ags.diagrams.FormGraph.compute_obb", "api/generated/compas_ags.diagrams.FormGraph.connected_edges", "api/generated/compas_ags.diagrams.FormGraph.connected_nodes", "api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix", "api/generated/compas_ags.diagrams.FormGraph.copy", "api/generated/compas_ags.diagrams.FormGraph.count_crossings", "api/generated/compas_ags.diagrams.FormGraph.degree", "api/generated/compas_ags.diagrams.FormGraph.degree_in", "api/generated/compas_ags.diagrams.FormGraph.degree_matrix", "api/generated/compas_ags.diagrams.FormGraph.degree_out", "api/generated/compas_ags.diagrams.FormGraph.delete_edge", "api/generated/compas_ags.diagrams.FormGraph.delete_node", "api/generated/compas_ags.diagrams.FormGraph.edge_attribute", "api/generated/compas_ags.diagrams.FormGraph.edge_attributes", "api/generated/compas_ags.diagrams.FormGraph.edge_coordinates", "api/generated/compas_ags.diagrams.FormGraph.edge_direction", "api/generated/compas_ags.diagrams.FormGraph.edge_end", "api/generated/compas_ags.diagrams.FormGraph.edge_index", "api/generated/compas_ags.diagrams.FormGraph.edge_length", "api/generated/compas_ags.diagrams.FormGraph.edge_line", "api/generated/compas_ags.diagrams.FormGraph.edge_midpoint", "api/generated/compas_ags.diagrams.FormGraph.edge_point", "api/generated/compas_ags.diagrams.FormGraph.edge_sample", "api/generated/compas_ags.diagrams.FormGraph.edge_start", "api/generated/compas_ags.diagrams.FormGraph.edge_vector", "api/generated/compas_ags.diagrams.FormGraph.edges", "api/generated/compas_ags.diagrams.FormGraph.edges_attribute", "api/generated/compas_ags.diagrams.FormGraph.edges_attributes", "api/generated/compas_ags.diagrams.FormGraph.edges_where", "api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate", "api/generated/compas_ags.diagrams.FormGraph.embed", "api/generated/compas_ags.diagrams.FormGraph.embed_in_plane", "api/generated/compas_ags.diagrams.FormGraph.exploded", "api/generated/compas_ags.diagrams.FormGraph.find_crossings", "api/generated/compas_ags.diagrams.FormGraph.find_cycles", "api/generated/compas_ags.diagrams.FormGraph.from_edges", "api/generated/compas_ags.diagrams.FormGraph.from_json", "api/generated/compas_ags.diagrams.FormGraph.from_jsonstring", "api/generated/compas_ags.diagrams.FormGraph.from_lines", "api/generated/compas_ags.diagrams.FormGraph.from_networkx", "api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges", "api/generated/compas_ags.diagrams.FormGraph.from_obj", "api/generated/compas_ags.diagrams.FormGraph.from_pointcloud", "api/generated/compas_ags.diagrams.FormGraph.gkey_node", "api/generated/compas_ags.diagrams.FormGraph.has_edge", "api/generated/compas_ags.diagrams.FormGraph.has_node", "api/generated/compas_ags.diagrams.FormGraph.index_edge", "api/generated/compas_ags.diagrams.FormGraph.index_node", "api/generated/compas_ags.diagrams.FormGraph.is_2d", "api/generated/compas_ags.diagrams.FormGraph.is_connected", "api/generated/compas_ags.diagrams.FormGraph.is_crossed", "api/generated/compas_ags.diagrams.FormGraph.is_leaf", "api/generated/compas_ags.diagrams.FormGraph.is_node_connected", "api/generated/compas_ags.diagrams.FormGraph.is_planar", "api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding", "api/generated/compas_ags.diagrams.FormGraph.is_xy", "api/generated/compas_ags.diagrams.FormGraph.join_edges", "api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix", "api/generated/compas_ags.diagrams.FormGraph.leaves", "api/generated/compas_ags.diagrams.FormGraph.neighborhood", "api/generated/compas_ags.diagrams.FormGraph.neighbors", "api/generated/compas_ags.diagrams.FormGraph.neighbors_in", "api/generated/compas_ags.diagrams.FormGraph.neighbors_out", "api/generated/compas_ags.diagrams.FormGraph.node_attribute", "api/generated/compas_ags.diagrams.FormGraph.node_attributes", "api/generated/compas_ags.diagrams.FormGraph.node_coordinates", "api/generated/compas_ags.diagrams.FormGraph.node_edges", "api/generated/compas_ags.diagrams.FormGraph.node_gkey", "api/generated/compas_ags.diagrams.FormGraph.node_index", "api/generated/compas_ags.diagrams.FormGraph.node_laplacian", "api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid", "api/generated/compas_ags.diagrams.FormGraph.node_point", "api/generated/compas_ags.diagrams.FormGraph.node_sample", "api/generated/compas_ags.diagrams.FormGraph.nodes", "api/generated/compas_ags.diagrams.FormGraph.nodes_attribute", "api/generated/compas_ags.diagrams.FormGraph.nodes_attributes", "api/generated/compas_ags.diagrams.FormGraph.nodes_where", "api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate", "api/generated/compas_ags.diagrams.FormGraph.number_of_edges", "api/generated/compas_ags.diagrams.FormGraph.number_of_nodes", "api/generated/compas_ags.diagrams.FormGraph.obb", "api/generated/compas_ags.diagrams.FormGraph.rotate", "api/generated/compas_ags.diagrams.FormGraph.rotated", "api/generated/compas_ags.diagrams.FormGraph.scale", "api/generated/compas_ags.diagrams.FormGraph.scaled", "api/generated/compas_ags.diagrams.FormGraph.sha256", "api/generated/compas_ags.diagrams.FormGraph.shortest_path", "api/generated/compas_ags.diagrams.FormGraph.smooth", "api/generated/compas_ags.diagrams.FormGraph.split_edge", "api/generated/compas_ags.diagrams.FormGraph.summary", "api/generated/compas_ags.diagrams.FormGraph.to_json", "api/generated/compas_ags.diagrams.FormGraph.to_jsonstring", "api/generated/compas_ags.diagrams.FormGraph.to_lines", "api/generated/compas_ags.diagrams.FormGraph.to_networkx", "api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges", "api/generated/compas_ags.diagrams.FormGraph.to_obj", "api/generated/compas_ags.diagrams.FormGraph.to_points", "api/generated/compas_ags.diagrams.FormGraph.transform", "api/generated/compas_ags.diagrams.FormGraph.transform_numpy", "api/generated/compas_ags.diagrams.FormGraph.transformed", "api/generated/compas_ags.diagrams.FormGraph.transformed_numpy", "api/generated/compas_ags.diagrams.FormGraph.translate", "api/generated/compas_ags.diagrams.FormGraph.translated", "api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute", "api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute", "api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes", "api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes", "api/generated/compas_ags.diagrams.FormGraph.validate_data", "api/generated/compas_ags.exceptions.SolutionError", "examples", "examples/00_basic", "examples/01_rtl", "examples/02_lpopt", "examples/03_fink", "index", "installation", "license", "publications", "publications/ags", "publications/bi-ags", "publications/interactive-ags", "publications/loadpath"], "filenames": ["api.rst", "api/compas_ags.rst", "api/compas_ags.ags.rst", "api/compas_ags.diagrams.rst", "api/compas_ags.exceptions.rst", "api/generated/compas_ags.ags.compute_external_work.rst", "api/generated/compas_ags.ags.compute_internal_work.rst", "api/generated/compas_ags.ags.compute_internal_work_compression.rst", "api/generated/compas_ags.ags.compute_internal_work_tension.rst", "api/generated/compas_ags.ags.compute_loadpath.rst", "api/generated/compas_ags.ags.force_update_from_form.rst", "api/generated/compas_ags.ags.form_count_dof.rst", "api/generated/compas_ags.ags.form_identify_dof.rst", "api/generated/compas_ags.ags.form_update_from_force.rst", "api/generated/compas_ags.ags.form_update_q_from_qind.rst", "api/generated/compas_ags.ags.optimise_loadpath.rst", "api/generated/compas_ags.ags.update_primal_from_dual.rst", "api/generated/compas_ags.ags.update_q_from_qind.rst", "api/generated/compas_ags.diagrams.Diagram.rst", "api/generated/compas_ags.diagrams.Diagram.ToString.rst", "api/generated/compas_ags.diagrams.Diagram.aabb.rst", "api/generated/compas_ags.diagrams.Diagram.add_face.rst", "api/generated/compas_ags.diagrams.Diagram.add_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.rst", "api/generated/compas_ags.diagrams.Diagram.area.rst", "api/generated/compas_ags.diagrams.Diagram.centroid.rst", "api/generated/compas_ags.diagrams.Diagram.clear.rst", "api/generated/compas_ags.diagrams.Diagram.collapse_edge.rst", "api/generated/compas_ags.diagrams.Diagram.compute_aabb.rst", "api/generated/compas_ags.diagrams.Diagram.compute_obb.rst", "api/generated/compas_ags.diagrams.Diagram.connected_faces.rst", "api/generated/compas_ags.diagrams.Diagram.connected_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.rst", "api/generated/compas_ags.diagrams.Diagram.copy.rst", "api/generated/compas_ags.diagrams.Diagram.cull_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.degree_matrix.rst", "api/generated/compas_ags.diagrams.Diagram.delete_face.rst", "api/generated/compas_ags.diagrams.Diagram.delete_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.edge_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.edge_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.edge_coordinates.rst", "api/generated/compas_ags.diagrams.Diagram.edge_direction.rst", "api/generated/compas_ags.diagrams.Diagram.edge_end.rst", "api/generated/compas_ags.diagrams.Diagram.edge_faces.rst", "api/generated/compas_ags.diagrams.Diagram.edge_index.rst", "api/generated/compas_ags.diagrams.Diagram.edge_length.rst", "api/generated/compas_ags.diagrams.Diagram.edge_line.rst", "api/generated/compas_ags.diagrams.Diagram.edge_loop.rst", "api/generated/compas_ags.diagrams.Diagram.edge_midpoint.rst", "api/generated/compas_ags.diagrams.Diagram.edge_point.rst", "api/generated/compas_ags.diagrams.Diagram.edge_sample.rst", "api/generated/compas_ags.diagrams.Diagram.edge_start.rst", "api/generated/compas_ags.diagrams.Diagram.edge_strip.rst", "api/generated/compas_ags.diagrams.Diagram.edge_vector.rst", "api/generated/compas_ags.diagrams.Diagram.edges.rst", "api/generated/compas_ags.diagrams.Diagram.edges_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.edges_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.edges_on_boundaries.rst", "api/generated/compas_ags.diagrams.Diagram.edges_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.edges_where.rst", "api/generated/compas_ags.diagrams.Diagram.edges_where_predicate.rst", "api/generated/compas_ags.diagrams.Diagram.euler.rst", "api/generated/compas_ags.diagrams.Diagram.exploded.rst", "api/generated/compas_ags.diagrams.Diagram.face_adjacency_halfedge.rst", "api/generated/compas_ags.diagrams.Diagram.face_adjacency_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.face_area.rst", "api/generated/compas_ags.diagrams.Diagram.face_aspect_ratio.rst", "api/generated/compas_ags.diagrams.Diagram.face_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.face_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.face_center.rst", "api/generated/compas_ags.diagrams.Diagram.face_centroid.rst", "api/generated/compas_ags.diagrams.Diagram.face_circle.rst", "api/generated/compas_ags.diagrams.Diagram.face_coordinates.rst", "api/generated/compas_ags.diagrams.Diagram.face_corners.rst", "api/generated/compas_ags.diagrams.Diagram.face_curvature.rst", "api/generated/compas_ags.diagrams.Diagram.face_degree.rst", "api/generated/compas_ags.diagrams.Diagram.face_flatness.rst", "api/generated/compas_ags.diagrams.Diagram.face_frame.rst", "api/generated/compas_ags.diagrams.Diagram.face_halfedges.rst", "api/generated/compas_ags.diagrams.Diagram.face_matrix.rst", "api/generated/compas_ags.diagrams.Diagram.face_max_degree.rst", "api/generated/compas_ags.diagrams.Diagram.face_min_degree.rst", "api/generated/compas_ags.diagrams.Diagram.face_neighborhood.rst", "api/generated/compas_ags.diagrams.Diagram.face_neighbors.rst", "api/generated/compas_ags.diagrams.Diagram.face_normal.rst", "api/generated/compas_ags.diagrams.Diagram.face_plane.rst", "api/generated/compas_ags.diagrams.Diagram.face_points.rst", "api/generated/compas_ags.diagrams.Diagram.face_polygon.rst", "api/generated/compas_ags.diagrams.Diagram.face_sample.rst", "api/generated/compas_ags.diagrams.Diagram.face_skewness.rst", "api/generated/compas_ags.diagrams.Diagram.face_vertex_after.rst", "api/generated/compas_ags.diagrams.Diagram.face_vertex_ancestor.rst", "api/generated/compas_ags.diagrams.Diagram.face_vertex_before.rst", "api/generated/compas_ags.diagrams.Diagram.face_vertex_descendant.rst", "api/generated/compas_ags.diagrams.Diagram.face_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.faces.rst", "api/generated/compas_ags.diagrams.Diagram.faces_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.faces_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.faces_on_boundaries.rst", "api/generated/compas_ags.diagrams.Diagram.faces_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.faces_where.rst", "api/generated/compas_ags.diagrams.Diagram.faces_where_predicate.rst", "api/generated/compas_ags.diagrams.Diagram.flip_cycles.rst", "api/generated/compas_ags.diagrams.Diagram.from_json.rst", "api/generated/compas_ags.diagrams.Diagram.from_jsonstring.rst", "api/generated/compas_ags.diagrams.Diagram.from_lines.rst", "api/generated/compas_ags.diagrams.Diagram.from_meshgrid.rst", "api/generated/compas_ags.diagrams.Diagram.from_obj.rst", "api/generated/compas_ags.diagrams.Diagram.from_off.rst", "api/generated/compas_ags.diagrams.Diagram.from_ply.rst", "api/generated/compas_ags.diagrams.Diagram.from_points.rst", "api/generated/compas_ags.diagrams.Diagram.from_polygons.rst", "api/generated/compas_ags.diagrams.Diagram.from_polyhedron.rst", "api/generated/compas_ags.diagrams.Diagram.from_polylines.rst", "api/generated/compas_ags.diagrams.Diagram.from_shape.rst", "api/generated/compas_ags.diagrams.Diagram.from_stl.rst", "api/generated/compas_ags.diagrams.Diagram.from_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.Diagram.gkey_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_after.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_before.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_face.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_loop.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_strip.rst", "api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.rst", "api/generated/compas_ags.diagrams.Diagram.has_edge.rst", "api/generated/compas_ags.diagrams.Diagram.has_face.rst", "api/generated/compas_ags.diagrams.Diagram.has_halfedge.rst", "api/generated/compas_ags.diagrams.Diagram.has_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.index_edge.rst", "api/generated/compas_ags.diagrams.Diagram.index_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.insert_vertex.rst", "api/generated/compas_ags.diagrams.Diagram.is_closed.rst", "api/generated/compas_ags.diagrams.Diagram.is_connected.rst", "api/generated/compas_ags.diagrams.Diagram.is_edge_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.is_empty.rst", "api/generated/compas_ags.diagrams.Diagram.is_face_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.is_manifold.rst", "api/generated/compas_ags.diagrams.Diagram.is_orientable.rst", "api/generated/compas_ags.diagrams.Diagram.is_quadmesh.rst", "api/generated/compas_ags.diagrams.Diagram.is_regular.rst", "api/generated/compas_ags.diagrams.Diagram.is_trimesh.rst", "api/generated/compas_ags.diagrams.Diagram.is_valid.rst", "api/generated/compas_ags.diagrams.Diagram.is_vertex_connected.rst", "api/generated/compas_ags.diagrams.Diagram.is_vertex_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.join.rst", "api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.rst", "api/generated/compas_ags.diagrams.Diagram.merge_faces.rst", "api/generated/compas_ags.diagrams.Diagram.normal.rst", "api/generated/compas_ags.diagrams.Diagram.number_of_edges.rst", "api/generated/compas_ags.diagrams.Diagram.number_of_faces.rst", "api/generated/compas_ags.diagrams.Diagram.number_of_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.obb.rst", "api/generated/compas_ags.diagrams.Diagram.offset.rst", "api/generated/compas_ags.diagrams.Diagram.quads_to_triangles.rst", "api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.remove_unused_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.rotate.rst", "api/generated/compas_ags.diagrams.Diagram.rotated.rst", "api/generated/compas_ags.diagrams.Diagram.scale.rst", "api/generated/compas_ags.diagrams.Diagram.scaled.rst", "api/generated/compas_ags.diagrams.Diagram.set_vertex_point.rst", "api/generated/compas_ags.diagrams.Diagram.sha256.rst", "api/generated/compas_ags.diagrams.Diagram.slice.rst", "api/generated/compas_ags.diagrams.Diagram.smooth_area.rst", "api/generated/compas_ags.diagrams.Diagram.smooth_centroid.rst", "api/generated/compas_ags.diagrams.Diagram.split_edge.rst", "api/generated/compas_ags.diagrams.Diagram.split_face.rst", "api/generated/compas_ags.diagrams.Diagram.split_strip.rst", "api/generated/compas_ags.diagrams.Diagram.subdivided.rst", "api/generated/compas_ags.diagrams.Diagram.summary.rst", "api/generated/compas_ags.diagrams.Diagram.thickened.rst", "api/generated/compas_ags.diagrams.Diagram.to_json.rst", "api/generated/compas_ags.diagrams.Diagram.to_jsonstring.rst", "api/generated/compas_ags.diagrams.Diagram.to_lines.rst", "api/generated/compas_ags.diagrams.Diagram.to_obj.rst", "api/generated/compas_ags.diagrams.Diagram.to_off.rst", "api/generated/compas_ags.diagrams.Diagram.to_ply.rst", "api/generated/compas_ags.diagrams.Diagram.to_points.rst", "api/generated/compas_ags.diagrams.Diagram.to_polygons.rst", "api/generated/compas_ags.diagrams.Diagram.to_polylines.rst", "api/generated/compas_ags.diagrams.Diagram.to_stl.rst", "api/generated/compas_ags.diagrams.Diagram.to_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.Diagram.transform.rst", "api/generated/compas_ags.diagrams.Diagram.transform_numpy.rst", "api/generated/compas_ags.diagrams.Diagram.transformed.rst", "api/generated/compas_ags.diagrams.Diagram.transformed_numpy.rst", "api/generated/compas_ags.diagrams.Diagram.translate.rst", "api/generated/compas_ags.diagrams.Diagram.translated.rst", "api/generated/compas_ags.diagrams.Diagram.unify_cycles.rst", "api/generated/compas_ags.diagrams.Diagram.unset_edge_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.unset_face_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.unset_vertex_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.unweld_edges.rst", "api/generated/compas_ags.diagrams.Diagram.unweld_vertices.rst", "api/generated/compas_ags.diagrams.Diagram.update_default_edge_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.update_default_face_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.update_default_vertex_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.validate_data.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_area.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_coordinates.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_curvature.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_degree.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_edges.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_faces.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_gkey.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_index.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_laplacian.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_max_degree.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_min_degree.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_neighborhood_centroid.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_neighbors.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_normal.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_point.rst", "api/generated/compas_ags.diagrams.Diagram.vertex_sample.rst", "api/generated/compas_ags.diagrams.Diagram.vertices.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_attribute.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_attributes.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_on_boundaries.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_on_boundary.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_points.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_where.rst", "api/generated/compas_ags.diagrams.Diagram.vertices_where_predicate.rst", "api/generated/compas_ags.diagrams.Diagram.weld.rst", "api/generated/compas_ags.diagrams.ForceDiagram.rst", "api/generated/compas_ags.diagrams.ForceDiagram.ToString.rst", "api/generated/compas_ags.diagrams.ForceDiagram.aabb.rst", "api/generated/compas_ags.diagrams.ForceDiagram.add_face.rst", "api/generated/compas_ags.diagrams.ForceDiagram.add_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.rst", "api/generated/compas_ags.diagrams.ForceDiagram.anchor.rst", "api/generated/compas_ags.diagrams.ForceDiagram.area.rst", "api/generated/compas_ags.diagrams.ForceDiagram.centroid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.clear.rst", "api/generated/compas_ags.diagrams.ForceDiagram.collapse_edge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.rst", "api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.rst", "api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.rst", "api/generated/compas_ags.diagrams.ForceDiagram.constraints_from_dual.rst", "api/generated/compas_ags.diagrams.ForceDiagram.copy.rst", "api/generated/compas_ags.diagrams.ForceDiagram.cull_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.rst", "api/generated/compas_ags.diagrams.ForceDiagram.delete_face.rst", "api/generated/compas_ags.diagrams.ForceDiagram.delete_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation.rst", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_force.rst", "api/generated/compas_ags.diagrams.ForceDiagram.dual_edge_targetforce.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_coordinates.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_direction.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_end.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_index.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_length.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_line.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_loop.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_midpoint.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_point.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_sample.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_start.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_strip.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edge_vector.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundaries.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where_dual.rst", "api/generated/compas_ags.diagrams.ForceDiagram.edges_where_predicate.rst", "api/generated/compas_ags.diagrams.ForceDiagram.euler.rst", "api/generated/compas_ags.diagrams.ForceDiagram.exploded.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_adjacency_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_area.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_aspect_ratio.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_center.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_centroid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_circle.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_coordinates.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_corners.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_curvature.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_flatness.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_frame.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_halfedges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_max_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_min_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_neighborhood.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_neighbors.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_normal.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_plane.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_points.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_sample.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_skewness.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_after.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_ancestor.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_before.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertex_descendant.rst", "api/generated/compas_ags.diagrams.ForceDiagram.face_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundaries.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_where.rst", "api/generated/compas_ags.diagrams.ForceDiagram.faces_where_predicate.rst", "api/generated/compas_ags.diagrams.ForceDiagram.fixed.rst", "api/generated/compas_ags.diagrams.ForceDiagram.flip_cycles.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_formdiagram.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_json.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_jsonstring.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_lines.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_meshgrid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_obj.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_off.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_ply.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_points.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_polygons.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_polyhedron.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_polylines.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_shape.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_stl.rst", "api/generated/compas_ags.diagrams.ForceDiagram.from_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.gkey_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_after.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_before.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_face.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip.rst", "api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.has_edge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.has_face.rst", "api/generated/compas_ags.diagrams.ForceDiagram.has_halfedge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.has_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.index_edge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.index_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.insert_vertex.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_closed.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_connected.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_external.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_ind.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_load.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_edge_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_empty.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_face_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_manifold.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_orientable.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_quadmesh.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_regular.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_trimesh.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_valid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_connected.rst", "api/generated/compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.join.rst", "api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.rst", "api/generated/compas_ags.diagrams.ForceDiagram.merge_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.normal.rst", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_edges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.number_of_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.obb.rst", "api/generated/compas_ags.diagrams.ForceDiagram.offset.rst", "api/generated/compas_ags.diagrams.ForceDiagram.ordered_edges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.quads_to_triangles.rst", "api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.remove_unused_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.rotate.rst", "api/generated/compas_ags.diagrams.ForceDiagram.rotated.rst", "api/generated/compas_ags.diagrams.ForceDiagram.scale.rst", "api/generated/compas_ags.diagrams.ForceDiagram.scaled.rst", "api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.rst", "api/generated/compas_ags.diagrams.ForceDiagram.sha256.rst", "api/generated/compas_ags.diagrams.ForceDiagram.slice.rst", "api/generated/compas_ags.diagrams.ForceDiagram.smooth_area.rst", "api/generated/compas_ags.diagrams.ForceDiagram.smooth_centroid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.split_edge.rst", "api/generated/compas_ags.diagrams.ForceDiagram.split_face.rst", "api/generated/compas_ags.diagrams.ForceDiagram.split_strip.rst", "api/generated/compas_ags.diagrams.ForceDiagram.subdivided.rst", "api/generated/compas_ags.diagrams.ForceDiagram.summary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.thickened.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_json.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_jsonstring.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_lines.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_obj.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_off.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_ply.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_points.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_polygons.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_polylines.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_stl.rst", "api/generated/compas_ags.diagrams.ForceDiagram.to_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.transform.rst", "api/generated/compas_ags.diagrams.ForceDiagram.transform_numpy.rst", "api/generated/compas_ags.diagrams.ForceDiagram.transformed.rst", "api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.rst", "api/generated/compas_ags.diagrams.ForceDiagram.translate.rst", "api/generated/compas_ags.diagrams.ForceDiagram.translated.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unify_cycles.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unset_edge_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unset_face_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unset_vertex_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_edge_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_face_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.validate_data.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_area.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_coordinates.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_curvature.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_edges.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_faces.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_gkey.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_index.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_laplacian.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_max_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_min_degree.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_neighbors.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_normal.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertex_sample.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_attribute.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_attributes.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundaries.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_on_boundary.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_where.rst", "api/generated/compas_ags.diagrams.ForceDiagram.vertices_where_predicate.rst", "api/generated/compas_ags.diagrams.ForceDiagram.weld.rst", "api/generated/compas_ags.diagrams.ForceDiagram.xy.rst", "api/generated/compas_ags.diagrams.FormDiagram.rst", "api/generated/compas_ags.diagrams.FormDiagram.ToString.rst", "api/generated/compas_ags.diagrams.FormDiagram.aabb.rst", "api/generated/compas_ags.diagrams.FormDiagram.add_face.rst", "api/generated/compas_ags.diagrams.FormDiagram.add_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.rst", "api/generated/compas_ags.diagrams.FormDiagram.area.rst", "api/generated/compas_ags.diagrams.FormDiagram.centroid.rst", "api/generated/compas_ags.diagrams.FormDiagram.clear.rst", "api/generated/compas_ags.diagrams.FormDiagram.collapse_edge.rst", "api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.rst", "api/generated/compas_ags.diagrams.FormDiagram.compute_obb.rst", "api/generated/compas_ags.diagrams.FormDiagram.connected_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.rst", "api/generated/compas_ags.diagrams.FormDiagram.constrained.rst", "api/generated/compas_ags.diagrams.FormDiagram.constraints.rst", "api/generated/compas_ags.diagrams.FormDiagram.copy.rst", "api/generated/compas_ags.diagrams.FormDiagram.cull_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.rst", "api/generated/compas_ags.diagrams.FormDiagram.delete_face.rst", "api/generated/compas_ags.diagrams.FormDiagram.delete_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_coordinates.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_direction.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_end.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_force.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_forcedensity.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_index.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_length.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_line.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_loop.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_midpoint.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_point.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_sample.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_start.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_strip.rst", "api/generated/compas_ags.diagrams.FormDiagram.edge_vector.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundaries.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_where.rst", "api/generated/compas_ags.diagrams.FormDiagram.edges_where_predicate.rst", "api/generated/compas_ags.diagrams.FormDiagram.euler.rst", "api/generated/compas_ags.diagrams.FormDiagram.exploded.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_halfedge.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_adjacency_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_area.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_aspect_ratio.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_center.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_centroid.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_circle.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_coordinates.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_corners.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_curvature.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_flatness.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_frame.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_halfedges.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_matrix.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_max_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_min_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_neighborhood.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_neighbors.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_normal.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_plane.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_points.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_polygon.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_sample.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_skewness.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_after.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_ancestor.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_before.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_vertex_descendant.rst", "api/generated/compas_ags.diagrams.FormDiagram.face_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundaries.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_where.rst", "api/generated/compas_ags.diagrams.FormDiagram.faces_where_predicate.rst", "api/generated/compas_ags.diagrams.FormDiagram.fixed.rst", "api/generated/compas_ags.diagrams.FormDiagram.flip_cycles.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_graph.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_json.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_jsonstring.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_lines.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_meshgrid.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_obj.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_off.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_ply.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_points.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_polygons.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_polyhedron.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_polylines.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_shape.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_stl.rst", "api/generated/compas_ags.diagrams.FormDiagram.from_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.gkey_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_after.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_before.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_face.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip.rst", "api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.has_edge.rst", "api/generated/compas_ags.diagrams.FormDiagram.has_face.rst", "api/generated/compas_ags.diagrams.FormDiagram.has_halfedge.rst", "api/generated/compas_ags.diagrams.FormDiagram.has_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.identify_constraints.rst", "api/generated/compas_ags.diagrams.FormDiagram.ind.rst", "api/generated/compas_ags.diagrams.FormDiagram.index_edge.rst", "api/generated/compas_ags.diagrams.FormDiagram.index_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.insert_vertex.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_closed.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_connected.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_edge_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_empty.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_face_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_manifold.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_orientable.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_quadmesh.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_regular.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_trimesh.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_valid.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_vertex_connected.rst", "api/generated/compas_ags.diagrams.FormDiagram.is_vertex_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.join.rst", "api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.rst", "api/generated/compas_ags.diagrams.FormDiagram.leaf_edges.rst", "api/generated/compas_ags.diagrams.FormDiagram.leaves.rst", "api/generated/compas_ags.diagrams.FormDiagram.merge_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.normal.rst", "api/generated/compas_ags.diagrams.FormDiagram.number_of_edges.rst", "api/generated/compas_ags.diagrams.FormDiagram.number_of_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.number_of_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.obb.rst", "api/generated/compas_ags.diagrams.FormDiagram.offset.rst", "api/generated/compas_ags.diagrams.FormDiagram.q.rst", "api/generated/compas_ags.diagrams.FormDiagram.quads_to_triangles.rst", "api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.remove_unused_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.rotate.rst", "api/generated/compas_ags.diagrams.FormDiagram.rotated.rst", "api/generated/compas_ags.diagrams.FormDiagram.scale.rst", "api/generated/compas_ags.diagrams.FormDiagram.scaled.rst", "api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.rst", "api/generated/compas_ags.diagrams.FormDiagram.sha256.rst", "api/generated/compas_ags.diagrams.FormDiagram.slice.rst", "api/generated/compas_ags.diagrams.FormDiagram.smooth_area.rst", "api/generated/compas_ags.diagrams.FormDiagram.smooth_centroid.rst", "api/generated/compas_ags.diagrams.FormDiagram.split_edge.rst", "api/generated/compas_ags.diagrams.FormDiagram.split_face.rst", "api/generated/compas_ags.diagrams.FormDiagram.split_strip.rst", "api/generated/compas_ags.diagrams.FormDiagram.subdivided.rst", "api/generated/compas_ags.diagrams.FormDiagram.summary.rst", "api/generated/compas_ags.diagrams.FormDiagram.thickened.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_json.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_jsonstring.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_lines.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_obj.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_off.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_ply.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_points.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_polygons.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_polylines.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_stl.rst", "api/generated/compas_ags.diagrams.FormDiagram.to_vertices_and_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.transform.rst", "api/generated/compas_ags.diagrams.FormDiagram.transform_numpy.rst", "api/generated/compas_ags.diagrams.FormDiagram.transformed.rst", "api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.rst", "api/generated/compas_ags.diagrams.FormDiagram.translate.rst", "api/generated/compas_ags.diagrams.FormDiagram.translated.rst", "api/generated/compas_ags.diagrams.FormDiagram.unify_cycles.rst", "api/generated/compas_ags.diagrams.FormDiagram.unset_edge_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.unset_face_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.unset_vertex_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.rst", "api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.update_default_edge_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.update_default_face_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.update_default_vertex_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.validate_data.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_area.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_coordinates.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_curvature.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_edges.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_faces.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_gkey.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_index.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_laplacian.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_max_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_min_degree.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_neighbors.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_normal.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_point.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertex_sample.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_attribute.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_attributes.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundaries.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_on_boundary.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_points.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_where.rst", "api/generated/compas_ags.diagrams.FormDiagram.vertices_where_predicate.rst", "api/generated/compas_ags.diagrams.FormDiagram.weld.rst", "api/generated/compas_ags.diagrams.FormDiagram.xy.rst", "api/generated/compas_ags.diagrams.FormGraph.rst", "api/generated/compas_ags.diagrams.FormGraph.ToString.rst", "api/generated/compas_ags.diagrams.FormGraph.aabb.rst", "api/generated/compas_ags.diagrams.FormGraph.add_edge.rst", "api/generated/compas_ags.diagrams.FormGraph.add_node.rst", "api/generated/compas_ags.diagrams.FormGraph.adjacency_matrix.rst", "api/generated/compas_ags.diagrams.FormGraph.clear.rst", "api/generated/compas_ags.diagrams.FormGraph.complement.rst", "api/generated/compas_ags.diagrams.FormGraph.compute_aabb.rst", "api/generated/compas_ags.diagrams.FormGraph.compute_obb.rst", "api/generated/compas_ags.diagrams.FormGraph.connected_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.connected_nodes.rst", "api/generated/compas_ags.diagrams.FormGraph.connectivity_matrix.rst", "api/generated/compas_ags.diagrams.FormGraph.copy.rst", "api/generated/compas_ags.diagrams.FormGraph.count_crossings.rst", "api/generated/compas_ags.diagrams.FormGraph.degree.rst", "api/generated/compas_ags.diagrams.FormGraph.degree_in.rst", "api/generated/compas_ags.diagrams.FormGraph.degree_matrix.rst", "api/generated/compas_ags.diagrams.FormGraph.degree_out.rst", "api/generated/compas_ags.diagrams.FormGraph.delete_edge.rst", "api/generated/compas_ags.diagrams.FormGraph.delete_node.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_coordinates.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_direction.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_end.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_index.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_length.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_line.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_midpoint.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_point.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_sample.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_start.rst", "api/generated/compas_ags.diagrams.FormGraph.edge_vector.rst", "api/generated/compas_ags.diagrams.FormGraph.edges.rst", "api/generated/compas_ags.diagrams.FormGraph.edges_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.edges_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.edges_where.rst", "api/generated/compas_ags.diagrams.FormGraph.edges_where_predicate.rst", "api/generated/compas_ags.diagrams.FormGraph.embed.rst", "api/generated/compas_ags.diagrams.FormGraph.embed_in_plane.rst", "api/generated/compas_ags.diagrams.FormGraph.exploded.rst", "api/generated/compas_ags.diagrams.FormGraph.find_crossings.rst", "api/generated/compas_ags.diagrams.FormGraph.find_cycles.rst", "api/generated/compas_ags.diagrams.FormGraph.from_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.from_json.rst", "api/generated/compas_ags.diagrams.FormGraph.from_jsonstring.rst", "api/generated/compas_ags.diagrams.FormGraph.from_lines.rst", "api/generated/compas_ags.diagrams.FormGraph.from_networkx.rst", "api/generated/compas_ags.diagrams.FormGraph.from_nodes_and_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.from_obj.rst", "api/generated/compas_ags.diagrams.FormGraph.from_pointcloud.rst", "api/generated/compas_ags.diagrams.FormGraph.gkey_node.rst", "api/generated/compas_ags.diagrams.FormGraph.has_edge.rst", "api/generated/compas_ags.diagrams.FormGraph.has_node.rst", "api/generated/compas_ags.diagrams.FormGraph.index_edge.rst", "api/generated/compas_ags.diagrams.FormGraph.index_node.rst", "api/generated/compas_ags.diagrams.FormGraph.is_2d.rst", "api/generated/compas_ags.diagrams.FormGraph.is_connected.rst", "api/generated/compas_ags.diagrams.FormGraph.is_crossed.rst", "api/generated/compas_ags.diagrams.FormGraph.is_leaf.rst", "api/generated/compas_ags.diagrams.FormGraph.is_node_connected.rst", "api/generated/compas_ags.diagrams.FormGraph.is_planar.rst", "api/generated/compas_ags.diagrams.FormGraph.is_planar_embedding.rst", "api/generated/compas_ags.diagrams.FormGraph.is_xy.rst", "api/generated/compas_ags.diagrams.FormGraph.join_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.laplacian_matrix.rst", "api/generated/compas_ags.diagrams.FormGraph.leaves.rst", "api/generated/compas_ags.diagrams.FormGraph.neighborhood.rst", "api/generated/compas_ags.diagrams.FormGraph.neighbors.rst", "api/generated/compas_ags.diagrams.FormGraph.neighbors_in.rst", "api/generated/compas_ags.diagrams.FormGraph.neighbors_out.rst", "api/generated/compas_ags.diagrams.FormGraph.node_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.node_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.node_coordinates.rst", "api/generated/compas_ags.diagrams.FormGraph.node_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.node_gkey.rst", "api/generated/compas_ags.diagrams.FormGraph.node_index.rst", "api/generated/compas_ags.diagrams.FormGraph.node_laplacian.rst", "api/generated/compas_ags.diagrams.FormGraph.node_neighborhood_centroid.rst", "api/generated/compas_ags.diagrams.FormGraph.node_point.rst", "api/generated/compas_ags.diagrams.FormGraph.node_sample.rst", "api/generated/compas_ags.diagrams.FormGraph.nodes.rst", "api/generated/compas_ags.diagrams.FormGraph.nodes_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.nodes_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.nodes_where.rst", "api/generated/compas_ags.diagrams.FormGraph.nodes_where_predicate.rst", "api/generated/compas_ags.diagrams.FormGraph.number_of_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.number_of_nodes.rst", "api/generated/compas_ags.diagrams.FormGraph.obb.rst", "api/generated/compas_ags.diagrams.FormGraph.rotate.rst", "api/generated/compas_ags.diagrams.FormGraph.rotated.rst", "api/generated/compas_ags.diagrams.FormGraph.scale.rst", "api/generated/compas_ags.diagrams.FormGraph.scaled.rst", "api/generated/compas_ags.diagrams.FormGraph.sha256.rst", "api/generated/compas_ags.diagrams.FormGraph.shortest_path.rst", "api/generated/compas_ags.diagrams.FormGraph.smooth.rst", "api/generated/compas_ags.diagrams.FormGraph.split_edge.rst", "api/generated/compas_ags.diagrams.FormGraph.summary.rst", "api/generated/compas_ags.diagrams.FormGraph.to_json.rst", "api/generated/compas_ags.diagrams.FormGraph.to_jsonstring.rst", "api/generated/compas_ags.diagrams.FormGraph.to_lines.rst", "api/generated/compas_ags.diagrams.FormGraph.to_networkx.rst", "api/generated/compas_ags.diagrams.FormGraph.to_nodes_and_edges.rst", "api/generated/compas_ags.diagrams.FormGraph.to_obj.rst", "api/generated/compas_ags.diagrams.FormGraph.to_points.rst", "api/generated/compas_ags.diagrams.FormGraph.transform.rst", "api/generated/compas_ags.diagrams.FormGraph.transform_numpy.rst", "api/generated/compas_ags.diagrams.FormGraph.transformed.rst", "api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.rst", "api/generated/compas_ags.diagrams.FormGraph.translate.rst", "api/generated/compas_ags.diagrams.FormGraph.translated.rst", "api/generated/compas_ags.diagrams.FormGraph.unset_edge_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.unset_node_attribute.rst", "api/generated/compas_ags.diagrams.FormGraph.update_default_edge_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.update_default_node_attributes.rst", "api/generated/compas_ags.diagrams.FormGraph.validate_data.rst", "api/generated/compas_ags.exceptions.SolutionError.rst", "examples.rst", "examples/00_basic.rst", "examples/01_rtl.rst", "examples/02_lpopt.rst", "examples/03_fink.rst", "index.rst", "installation.rst", "license.rst", "publications.rst", "publications/ags.rst", "publications/bi-ags.rst", "publications/interactive-ags.rst", "publications/loadpath.rst"], "titles": ["API Reference", "compas_ags", "compas_ags.ags", "compas_ags.diagrams", "compas_ags.exceptions", "compute_external_work", "compute_internal_work", "compute_internal_work_compression", "compute_internal_work_tension", "compute_loadpath", "force_update_from_form", "form_count_dof", "form_identify_dof", "form_update_from_force", "form_update_q_from_qind", "optimise_loadpath", "update_primal_from_dual", "update_q_from_qind", "Diagram", "Diagram.ToString", "Diagram.aabb", "Diagram.add_face", "Diagram.add_vertex", "Diagram.adjacency_matrix", "Diagram.area", "Diagram.centroid", "Diagram.clear", "Diagram.collapse_edge", "Diagram.compute_aabb", "Diagram.compute_obb", "Diagram.connected_faces", "Diagram.connected_vertices", "Diagram.connectivity_matrix", "Diagram.copy", "Diagram.cull_vertices", "Diagram.degree_matrix", "Diagram.delete_face", "Diagram.delete_vertex", "Diagram.edge_attribute", "Diagram.edge_attributes", "Diagram.edge_coordinates", "Diagram.edge_direction", "Diagram.edge_end", "Diagram.edge_faces", "Diagram.edge_index", "Diagram.edge_length", "Diagram.edge_line", "Diagram.edge_loop", "Diagram.edge_midpoint", "Diagram.edge_point", "Diagram.edge_sample", "Diagram.edge_start", "Diagram.edge_strip", "Diagram.edge_vector", "Diagram.edges", "Diagram.edges_attribute", "Diagram.edges_attributes", "Diagram.edges_on_boundaries", "Diagram.edges_on_boundary", "Diagram.edges_where", "Diagram.edges_where_predicate", "Diagram.euler", "Diagram.exploded", "Diagram.face_adjacency_halfedge", "Diagram.face_adjacency_vertices", "Diagram.face_area", "Diagram.face_aspect_ratio", "Diagram.face_attribute", "Diagram.face_attributes", "Diagram.face_center", "Diagram.face_centroid", "Diagram.face_circle", "Diagram.face_coordinates", "Diagram.face_corners", "Diagram.face_curvature", "Diagram.face_degree", "Diagram.face_flatness", "Diagram.face_frame", "Diagram.face_halfedges", "Diagram.face_matrix", "Diagram.face_max_degree", "Diagram.face_min_degree", "Diagram.face_neighborhood", "Diagram.face_neighbors", "Diagram.face_normal", "Diagram.face_plane", "Diagram.face_points", "Diagram.face_polygon", "Diagram.face_sample", "Diagram.face_skewness", "Diagram.face_vertex_after", "Diagram.face_vertex_ancestor", "Diagram.face_vertex_before", "Diagram.face_vertex_descendant", "Diagram.face_vertices", "Diagram.faces", "Diagram.faces_attribute", "Diagram.faces_attributes", "Diagram.faces_on_boundaries", "Diagram.faces_on_boundary", "Diagram.faces_where", "Diagram.faces_where_predicate", "Diagram.flip_cycles", "Diagram.from_json", "Diagram.from_jsonstring", "Diagram.from_lines", "Diagram.from_meshgrid", "Diagram.from_obj", "Diagram.from_off", "Diagram.from_ply", "Diagram.from_points", "Diagram.from_polygons", "Diagram.from_polyhedron", "Diagram.from_polylines", "Diagram.from_shape", "Diagram.from_stl", "Diagram.from_vertices_and_faces", "Diagram.gkey_vertex", "Diagram.halfedge_after", "Diagram.halfedge_before", "Diagram.halfedge_face", "Diagram.halfedge_loop", "Diagram.halfedge_loop_vertices", "Diagram.halfedge_strip", "Diagram.halfedge_strip_faces", "Diagram.has_edge", "Diagram.has_face", "Diagram.has_halfedge", "Diagram.has_vertex", "Diagram.index_edge", "Diagram.index_vertex", "Diagram.insert_vertex", "Diagram.is_closed", "Diagram.is_connected", "Diagram.is_edge_on_boundary", "Diagram.is_empty", "Diagram.is_face_on_boundary", "Diagram.is_manifold", "Diagram.is_orientable", "Diagram.is_quadmesh", "Diagram.is_regular", "Diagram.is_trimesh", "Diagram.is_valid", "Diagram.is_vertex_connected", "Diagram.is_vertex_on_boundary", "Diagram.join", "Diagram.laplacian_matrix", "Diagram.merge_faces", "Diagram.normal", "Diagram.number_of_edges", "Diagram.number_of_faces", "Diagram.number_of_vertices", "Diagram.obb", "Diagram.offset", "Diagram.quads_to_triangles", "Diagram.remove_duplicate_vertices", "Diagram.remove_unused_vertices", "Diagram.rotate", "Diagram.rotated", "Diagram.scale", "Diagram.scaled", "Diagram.set_vertex_point", "Diagram.sha256", "Diagram.slice", "Diagram.smooth_area", "Diagram.smooth_centroid", "Diagram.split_edge", "Diagram.split_face", "Diagram.split_strip", "Diagram.subdivided", "Diagram.summary", "Diagram.thickened", "Diagram.to_json", "Diagram.to_jsonstring", "Diagram.to_lines", "Diagram.to_obj", "Diagram.to_off", "Diagram.to_ply", "Diagram.to_points", "Diagram.to_polygons", "Diagram.to_polylines", "Diagram.to_stl", "Diagram.to_vertices_and_faces", "Diagram.transform", "Diagram.transform_numpy", "Diagram.transformed", "Diagram.transformed_numpy", "Diagram.translate", "Diagram.translated", "Diagram.unify_cycles", "Diagram.unset_edge_attribute", "Diagram.unset_face_attribute", "Diagram.unset_vertex_attribute", "Diagram.unweld_edges", "Diagram.unweld_vertices", "Diagram.update_default_edge_attributes", "Diagram.update_default_face_attributes", "Diagram.update_default_vertex_attributes", "Diagram.validate_data", "Diagram.vertex_area", "Diagram.vertex_attribute", "Diagram.vertex_attributes", "Diagram.vertex_coordinates", "Diagram.vertex_curvature", "Diagram.vertex_degree", "Diagram.vertex_edges", "Diagram.vertex_faces", "Diagram.vertex_gkey", "Diagram.vertex_index", "Diagram.vertex_laplacian", "Diagram.vertex_max_degree", "Diagram.vertex_min_degree", "Diagram.vertex_neighborhood", "Diagram.vertex_neighborhood_centroid", "Diagram.vertex_neighbors", "Diagram.vertex_normal", "Diagram.vertex_point", "Diagram.vertex_sample", "Diagram.vertices", "Diagram.vertices_attribute", "Diagram.vertices_attributes", "Diagram.vertices_on_boundaries", "Diagram.vertices_on_boundary", "Diagram.vertices_points", "Diagram.vertices_where", "Diagram.vertices_where_predicate", "Diagram.weld", "ForceDiagram", "ForceDiagram.ToString", "ForceDiagram.aabb", "ForceDiagram.add_face", "ForceDiagram.add_vertex", "ForceDiagram.adjacency_matrix", "ForceDiagram.anchor", "ForceDiagram.area", "ForceDiagram.centroid", "ForceDiagram.clear", "ForceDiagram.collapse_edge", "ForceDiagram.compute_aabb", "ForceDiagram.compute_obb", "ForceDiagram.connected_faces", "ForceDiagram.connected_vertices", "ForceDiagram.connectivity_matrix", "ForceDiagram.constraints_from_dual", "ForceDiagram.copy", "ForceDiagram.cull_vertices", "ForceDiagram.degree_matrix", "ForceDiagram.delete_face", "ForceDiagram.delete_vertex", "ForceDiagram.dual_edge", "ForceDiagram.dual_edge_angledeviation", "ForceDiagram.dual_edge_force", "ForceDiagram.dual_edge_targetforce", "ForceDiagram.edge_attribute", "ForceDiagram.edge_attributes", "ForceDiagram.edge_coordinates", "ForceDiagram.edge_direction", "ForceDiagram.edge_end", "ForceDiagram.edge_faces", "ForceDiagram.edge_index", "ForceDiagram.edge_length", "ForceDiagram.edge_line", "ForceDiagram.edge_loop", "ForceDiagram.edge_midpoint", "ForceDiagram.edge_point", "ForceDiagram.edge_sample", "ForceDiagram.edge_start", "ForceDiagram.edge_strip", "ForceDiagram.edge_vector", "ForceDiagram.edges", "ForceDiagram.edges_attribute", "ForceDiagram.edges_attributes", "ForceDiagram.edges_on_boundaries", "ForceDiagram.edges_on_boundary", "ForceDiagram.edges_where", "ForceDiagram.edges_where_dual", "ForceDiagram.edges_where_predicate", "ForceDiagram.euler", "ForceDiagram.exploded", "ForceDiagram.face_adjacency_halfedge", "ForceDiagram.face_adjacency_vertices", "ForceDiagram.face_area", "ForceDiagram.face_aspect_ratio", "ForceDiagram.face_attribute", "ForceDiagram.face_attributes", "ForceDiagram.face_center", "ForceDiagram.face_centroid", "ForceDiagram.face_circle", "ForceDiagram.face_coordinates", "ForceDiagram.face_corners", "ForceDiagram.face_curvature", "ForceDiagram.face_degree", "ForceDiagram.face_flatness", "ForceDiagram.face_frame", "ForceDiagram.face_halfedges", "ForceDiagram.face_matrix", "ForceDiagram.face_max_degree", "ForceDiagram.face_min_degree", "ForceDiagram.face_neighborhood", "ForceDiagram.face_neighbors", "ForceDiagram.face_normal", "ForceDiagram.face_plane", "ForceDiagram.face_points", "ForceDiagram.face_polygon", "ForceDiagram.face_sample", "ForceDiagram.face_skewness", "ForceDiagram.face_vertex_after", "ForceDiagram.face_vertex_ancestor", "ForceDiagram.face_vertex_before", "ForceDiagram.face_vertex_descendant", "ForceDiagram.face_vertices", "ForceDiagram.faces", "ForceDiagram.faces_attribute", "ForceDiagram.faces_attributes", "ForceDiagram.faces_on_boundaries", "ForceDiagram.faces_on_boundary", "ForceDiagram.faces_where", "ForceDiagram.faces_where_predicate", "ForceDiagram.fixed", "ForceDiagram.flip_cycles", "ForceDiagram.from_formdiagram", "ForceDiagram.from_json", "ForceDiagram.from_jsonstring", "ForceDiagram.from_lines", "ForceDiagram.from_meshgrid", "ForceDiagram.from_obj", "ForceDiagram.from_off", "ForceDiagram.from_ply", "ForceDiagram.from_points", "ForceDiagram.from_polygons", "ForceDiagram.from_polyhedron", "ForceDiagram.from_polylines", "ForceDiagram.from_shape", "ForceDiagram.from_stl", "ForceDiagram.from_vertices_and_faces", "ForceDiagram.gkey_vertex", "ForceDiagram.halfedge_after", "ForceDiagram.halfedge_before", "ForceDiagram.halfedge_face", "ForceDiagram.halfedge_loop", "ForceDiagram.halfedge_loop_vertices", "ForceDiagram.halfedge_strip", "ForceDiagram.halfedge_strip_faces", "ForceDiagram.has_edge", "ForceDiagram.has_face", "ForceDiagram.has_halfedge", "ForceDiagram.has_vertex", "ForceDiagram.index_edge", "ForceDiagram.index_vertex", "ForceDiagram.insert_vertex", "ForceDiagram.is_closed", "ForceDiagram.is_connected", "ForceDiagram.is_dual_edge_external", "ForceDiagram.is_dual_edge_ind", "ForceDiagram.is_dual_edge_load", "ForceDiagram.is_dual_edge_reaction", "ForceDiagram.is_edge_on_boundary", "ForceDiagram.is_empty", "ForceDiagram.is_face_on_boundary", "ForceDiagram.is_manifold", "ForceDiagram.is_orientable", "ForceDiagram.is_quadmesh", "ForceDiagram.is_regular", "ForceDiagram.is_trimesh", "ForceDiagram.is_valid", "ForceDiagram.is_vertex_connected", "ForceDiagram.is_vertex_on_boundary", "ForceDiagram.join", "ForceDiagram.laplacian_matrix", "ForceDiagram.merge_faces", "ForceDiagram.normal", "ForceDiagram.number_of_edges", "ForceDiagram.number_of_faces", "ForceDiagram.number_of_vertices", "ForceDiagram.obb", "ForceDiagram.offset", "ForceDiagram.ordered_edges", "ForceDiagram.quads_to_triangles", "ForceDiagram.remove_duplicate_vertices", "ForceDiagram.remove_unused_vertices", "ForceDiagram.rotate", "ForceDiagram.rotated", "ForceDiagram.scale", "ForceDiagram.scaled", "ForceDiagram.set_vertex_point", "ForceDiagram.sha256", "ForceDiagram.slice", "ForceDiagram.smooth_area", "ForceDiagram.smooth_centroid", "ForceDiagram.split_edge", "ForceDiagram.split_face", "ForceDiagram.split_strip", "ForceDiagram.subdivided", "ForceDiagram.summary", "ForceDiagram.thickened", "ForceDiagram.to_json", "ForceDiagram.to_jsonstring", "ForceDiagram.to_lines", "ForceDiagram.to_obj", "ForceDiagram.to_off", "ForceDiagram.to_ply", "ForceDiagram.to_points", "ForceDiagram.to_polygons", "ForceDiagram.to_polylines", "ForceDiagram.to_stl", "ForceDiagram.to_vertices_and_faces", "ForceDiagram.transform", "ForceDiagram.transform_numpy", "ForceDiagram.transformed", "ForceDiagram.transformed_numpy", "ForceDiagram.translate", "ForceDiagram.translated", "ForceDiagram.unify_cycles", "ForceDiagram.unset_edge_attribute", "ForceDiagram.unset_face_attribute", "ForceDiagram.unset_vertex_attribute", "ForceDiagram.unweld_edges", "ForceDiagram.unweld_vertices", "ForceDiagram.update_default_edge_attributes", "ForceDiagram.update_default_face_attributes", "ForceDiagram.update_default_vertex_attributes", "ForceDiagram.validate_data", "ForceDiagram.vertex_area", "ForceDiagram.vertex_attribute", "ForceDiagram.vertex_attributes", "ForceDiagram.vertex_coordinates", "ForceDiagram.vertex_curvature", "ForceDiagram.vertex_degree", "ForceDiagram.vertex_edges", "ForceDiagram.vertex_faces", "ForceDiagram.vertex_gkey", "ForceDiagram.vertex_index", "ForceDiagram.vertex_laplacian", "ForceDiagram.vertex_max_degree", "ForceDiagram.vertex_min_degree", "ForceDiagram.vertex_neighborhood", "ForceDiagram.vertex_neighborhood_centroid", "ForceDiagram.vertex_neighbors", "ForceDiagram.vertex_normal", "ForceDiagram.vertex_point", "ForceDiagram.vertex_sample", "ForceDiagram.vertices", "ForceDiagram.vertices_attribute", "ForceDiagram.vertices_attributes", "ForceDiagram.vertices_on_boundaries", "ForceDiagram.vertices_on_boundary", "ForceDiagram.vertices_points", "ForceDiagram.vertices_where", "ForceDiagram.vertices_where_predicate", "ForceDiagram.weld", "ForceDiagram.xy", "FormDiagram", "FormDiagram.ToString", "FormDiagram.aabb", "FormDiagram.add_face", "FormDiagram.add_vertex", "FormDiagram.adjacency_matrix", "FormDiagram.area", "FormDiagram.centroid", "FormDiagram.clear", "FormDiagram.collapse_edge", "FormDiagram.compute_aabb", "FormDiagram.compute_obb", "FormDiagram.connected_faces", "FormDiagram.connected_vertices", "FormDiagram.connectivity_matrix", "FormDiagram.constrained", "FormDiagram.constraints", "FormDiagram.copy", "FormDiagram.cull_vertices", "FormDiagram.degree_matrix", "FormDiagram.delete_face", "FormDiagram.delete_vertex", "FormDiagram.edge_attribute", "FormDiagram.edge_attributes", "FormDiagram.edge_coordinates", "FormDiagram.edge_direction", "FormDiagram.edge_end", "FormDiagram.edge_faces", "FormDiagram.edge_force", "FormDiagram.edge_forcedensity", "FormDiagram.edge_index", "FormDiagram.edge_length", "FormDiagram.edge_line", "FormDiagram.edge_loop", "FormDiagram.edge_midpoint", "FormDiagram.edge_point", "FormDiagram.edge_sample", "FormDiagram.edge_start", "FormDiagram.edge_strip", "FormDiagram.edge_vector", "FormDiagram.edges", "FormDiagram.edges_attribute", "FormDiagram.edges_attributes", "FormDiagram.edges_on_boundaries", "FormDiagram.edges_on_boundary", "FormDiagram.edges_where", "FormDiagram.edges_where_predicate", "FormDiagram.euler", "FormDiagram.exploded", "FormDiagram.face_adjacency_halfedge", "FormDiagram.face_adjacency_vertices", "FormDiagram.face_area", "FormDiagram.face_aspect_ratio", "FormDiagram.face_attribute", "FormDiagram.face_attributes", "FormDiagram.face_center", "FormDiagram.face_centroid", "FormDiagram.face_circle", "FormDiagram.face_coordinates", "FormDiagram.face_corners", "FormDiagram.face_curvature", "FormDiagram.face_degree", "FormDiagram.face_flatness", "FormDiagram.face_frame", "FormDiagram.face_halfedges", "FormDiagram.face_matrix", "FormDiagram.face_max_degree", "FormDiagram.face_min_degree", "FormDiagram.face_neighborhood", "FormDiagram.face_neighbors", "FormDiagram.face_normal", "FormDiagram.face_plane", "FormDiagram.face_points", "FormDiagram.face_polygon", "FormDiagram.face_sample", "FormDiagram.face_skewness", "FormDiagram.face_vertex_after", "FormDiagram.face_vertex_ancestor", "FormDiagram.face_vertex_before", "FormDiagram.face_vertex_descendant", "FormDiagram.face_vertices", "FormDiagram.faces", "FormDiagram.faces_attribute", "FormDiagram.faces_attributes", "FormDiagram.faces_on_boundaries", "FormDiagram.faces_on_boundary", "FormDiagram.faces_where", "FormDiagram.faces_where_predicate", "FormDiagram.fixed", "FormDiagram.flip_cycles", "FormDiagram.from_graph", "FormDiagram.from_json", "FormDiagram.from_jsonstring", "FormDiagram.from_lines", "FormDiagram.from_meshgrid", "FormDiagram.from_obj", "FormDiagram.from_off", "FormDiagram.from_ply", "FormDiagram.from_points", "FormDiagram.from_polygons", "FormDiagram.from_polyhedron", "FormDiagram.from_polylines", "FormDiagram.from_shape", "FormDiagram.from_stl", "FormDiagram.from_vertices_and_faces", "FormDiagram.gkey_vertex", "FormDiagram.halfedge_after", "FormDiagram.halfedge_before", "FormDiagram.halfedge_face", "FormDiagram.halfedge_loop", "FormDiagram.halfedge_loop_vertices", "FormDiagram.halfedge_strip", "FormDiagram.halfedge_strip_faces", "FormDiagram.has_edge", "FormDiagram.has_face", "FormDiagram.has_halfedge", "FormDiagram.has_vertex", "FormDiagram.identify_constraints", "FormDiagram.ind", "FormDiagram.index_edge", "FormDiagram.index_vertex", "FormDiagram.insert_vertex", "FormDiagram.is_closed", "FormDiagram.is_connected", "FormDiagram.is_edge_on_boundary", "FormDiagram.is_empty", "FormDiagram.is_face_on_boundary", "FormDiagram.is_manifold", "FormDiagram.is_orientable", "FormDiagram.is_quadmesh", "FormDiagram.is_regular", "FormDiagram.is_trimesh", "FormDiagram.is_valid", "FormDiagram.is_vertex_connected", "FormDiagram.is_vertex_on_boundary", "FormDiagram.join", "FormDiagram.laplacian_matrix", "FormDiagram.leaf_edges", "FormDiagram.leaves", "FormDiagram.merge_faces", "FormDiagram.normal", "FormDiagram.number_of_edges", "FormDiagram.number_of_faces", "FormDiagram.number_of_vertices", "FormDiagram.obb", "FormDiagram.offset", "FormDiagram.q", "FormDiagram.quads_to_triangles", "FormDiagram.remove_duplicate_vertices", "FormDiagram.remove_unused_vertices", "FormDiagram.rotate", "FormDiagram.rotated", "FormDiagram.scale", "FormDiagram.scaled", "FormDiagram.set_vertex_point", "FormDiagram.sha256", "FormDiagram.slice", "FormDiagram.smooth_area", "FormDiagram.smooth_centroid", "FormDiagram.split_edge", "FormDiagram.split_face", "FormDiagram.split_strip", "FormDiagram.subdivided", "FormDiagram.summary", "FormDiagram.thickened", "FormDiagram.to_json", "FormDiagram.to_jsonstring", "FormDiagram.to_lines", "FormDiagram.to_obj", "FormDiagram.to_off", "FormDiagram.to_ply", "FormDiagram.to_points", "FormDiagram.to_polygons", "FormDiagram.to_polylines", "FormDiagram.to_stl", "FormDiagram.to_vertices_and_faces", "FormDiagram.transform", "FormDiagram.transform_numpy", "FormDiagram.transformed", "FormDiagram.transformed_numpy", "FormDiagram.translate", "FormDiagram.translated", "FormDiagram.unify_cycles", "FormDiagram.unset_edge_attribute", "FormDiagram.unset_face_attribute", "FormDiagram.unset_vertex_attribute", "FormDiagram.unweld_edges", "FormDiagram.unweld_vertices", "FormDiagram.update_default_edge_attributes", "FormDiagram.update_default_face_attributes", "FormDiagram.update_default_vertex_attributes", "FormDiagram.validate_data", "FormDiagram.vertex_area", "FormDiagram.vertex_attribute", "FormDiagram.vertex_attributes", "FormDiagram.vertex_coordinates", "FormDiagram.vertex_curvature", "FormDiagram.vertex_degree", "FormDiagram.vertex_edges", "FormDiagram.vertex_faces", "FormDiagram.vertex_gkey", "FormDiagram.vertex_index", "FormDiagram.vertex_laplacian", "FormDiagram.vertex_max_degree", "FormDiagram.vertex_min_degree", "FormDiagram.vertex_neighborhood", "FormDiagram.vertex_neighborhood_centroid", "FormDiagram.vertex_neighbors", "FormDiagram.vertex_normal", "FormDiagram.vertex_point", "FormDiagram.vertex_sample", "FormDiagram.vertices", "FormDiagram.vertices_attribute", "FormDiagram.vertices_attributes", "FormDiagram.vertices_on_boundaries", "FormDiagram.vertices_on_boundary", "FormDiagram.vertices_points", "FormDiagram.vertices_where", "FormDiagram.vertices_where_predicate", "FormDiagram.weld", "FormDiagram.xy", "FormGraph", "FormGraph.ToString", "FormGraph.aabb", "FormGraph.add_edge", "FormGraph.add_node", "FormGraph.adjacency_matrix", "FormGraph.clear", "FormGraph.complement", "FormGraph.compute_aabb", "FormGraph.compute_obb", "FormGraph.connected_edges", "FormGraph.connected_nodes", "FormGraph.connectivity_matrix", "FormGraph.copy", "FormGraph.count_crossings", "FormGraph.degree", "FormGraph.degree_in", "FormGraph.degree_matrix", "FormGraph.degree_out", "FormGraph.delete_edge", "FormGraph.delete_node", "FormGraph.edge_attribute", "FormGraph.edge_attributes", "FormGraph.edge_coordinates", "FormGraph.edge_direction", "FormGraph.edge_end", "FormGraph.edge_index", "FormGraph.edge_length", "FormGraph.edge_line", "FormGraph.edge_midpoint", "FormGraph.edge_point", "FormGraph.edge_sample", "FormGraph.edge_start", "FormGraph.edge_vector", "FormGraph.edges", "FormGraph.edges_attribute", "FormGraph.edges_attributes", "FormGraph.edges_where", "FormGraph.edges_where_predicate", "FormGraph.embed", "FormGraph.embed_in_plane", "FormGraph.exploded", "FormGraph.find_crossings", "FormGraph.find_cycles", "FormGraph.from_edges", "FormGraph.from_json", "FormGraph.from_jsonstring", "FormGraph.from_lines", "FormGraph.from_networkx", "FormGraph.from_nodes_and_edges", "FormGraph.from_obj", "FormGraph.from_pointcloud", "FormGraph.gkey_node", "FormGraph.has_edge", "FormGraph.has_node", "FormGraph.index_edge", "FormGraph.index_node", "FormGraph.is_2d", "FormGraph.is_connected", "FormGraph.is_crossed", "FormGraph.is_leaf", "FormGraph.is_node_connected", "FormGraph.is_planar", "FormGraph.is_planar_embedding", "FormGraph.is_xy", "FormGraph.join_edges", "FormGraph.laplacian_matrix", "FormGraph.leaves", "FormGraph.neighborhood", "FormGraph.neighbors", "FormGraph.neighbors_in", "FormGraph.neighbors_out", "FormGraph.node_attribute", "FormGraph.node_attributes", "FormGraph.node_coordinates", "FormGraph.node_edges", "FormGraph.node_gkey", "FormGraph.node_index", "FormGraph.node_laplacian", "FormGraph.node_neighborhood_centroid", "FormGraph.node_point", "FormGraph.node_sample", "FormGraph.nodes", "FormGraph.nodes_attribute", "FormGraph.nodes_attributes", "FormGraph.nodes_where", "FormGraph.nodes_where_predicate", "FormGraph.number_of_edges", "FormGraph.number_of_nodes", "FormGraph.obb", "FormGraph.rotate", "FormGraph.rotated", "FormGraph.scale", "FormGraph.scaled", "FormGraph.sha256", "FormGraph.shortest_path", "FormGraph.smooth", "FormGraph.split_edge", "FormGraph.summary", "FormGraph.to_json", "FormGraph.to_jsonstring", "FormGraph.to_lines", "FormGraph.to_networkx", "FormGraph.to_nodes_and_edges", "FormGraph.to_obj", "FormGraph.to_points", "FormGraph.transform", "FormGraph.transform_numpy", "FormGraph.transformed", "FormGraph.transformed_numpy", "FormGraph.translate", "FormGraph.translated", "FormGraph.unset_edge_attribute", "FormGraph.unset_node_attribute", "FormGraph.update_default_edge_attributes", "FormGraph.update_default_node_attributes", "FormGraph.validate_data", "SolutionError", "Examples", "Basic example", "Updating the form diagram", "Optimise the load path", "Fink Truss", "Documentation of compas_ags", "Installation", "License", "Publications", "Algebraic Graph Statics", "Bi-directional Algebraic Graph Statics", "Interactive Graphic Statics", "Load-path optimisation of funicular networks"], "terms": {"compas_ag": [0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 227, 259, 320, 376, 451, 541, 672, 789, 791, 792, 793, 794, 796], "ag": [0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 227, 451, 491, 791, 792, 793, 795, 801], "diagram": [0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 227, 233, 243, 249, 250, 251, 252, 259, 275, 320, 352, 353, 354, 355, 376, 451, 541, 568, 588, 589, 672, 715, 790, 791, 793, 794, 795, 799, 800, 801], "except": [0, 1, 76, 79, 164, 165, 292, 295, 387, 388, 513, 516, 608, 609, 768, 769, 789, 795], "form": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 59, 63, 73, 100, 105, 137, 224, 243, 259, 274, 275, 279, 289, 316, 320, 323, 359, 376, 447, 451, 496, 500, 510, 537, 541, 544, 568, 578, 589, 668, 672, 709, 757, 789, 790, 791, 793, 794, 795, 799, 800, 801, 802], "forc": [5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 63, 227, 233, 243, 251, 252, 279, 320, 479, 500, 715, 789, 791, 792, 793, 795, 799, 800, 801, 802], "comput": [5, 6, 7, 8, 9, 13, 16, 23, 28, 29, 32, 35, 65, 69, 70, 72, 76, 79, 80, 81, 84, 86, 146, 162, 199, 209, 210, 211, 213, 232, 238, 239, 242, 246, 281, 285, 286, 288, 292, 295, 296, 297, 300, 302, 368, 385, 422, 432, 433, 434, 436, 456, 461, 462, 465, 470, 502, 506, 507, 509, 513, 516, 517, 518, 521, 523, 587, 606, 643, 653, 654, 655, 657, 680, 681, 711, 751, 759, 760, 766, 789, 794, 799, 800, 801], "extern": [5, 352, 568, 715, 791, 792, 795, 799], "work": [5, 6, 7, 8, 9, 801], "structur": [5, 6, 7, 8, 9, 18, 147, 185, 186, 227, 369, 408, 409, 451, 590, 629, 630, 715, 737, 779, 780, 781, 793, 795, 799, 801, 802], "The": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 27, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 114, 115, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 131, 134, 136, 137, 143, 144, 145, 146, 148, 153, 154, 155, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 176, 177, 178, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 198, 199, 200, 201, 202, 203, 204, 206, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 230, 231, 232, 234, 235, 237, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 312, 313, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 330, 332, 333, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 352, 353, 354, 355, 356, 358, 359, 365, 366, 367, 368, 370, 375, 377, 378, 380, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 417, 421, 422, 423, 424, 425, 426, 427, 429, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 447, 448, 449, 450, 454, 455, 456, 457, 458, 460, 465, 468, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 533, 534, 536, 537, 538, 540, 541, 542, 543, 544, 545, 546, 547, 548, 551, 553, 554, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 572, 575, 577, 578, 584, 585, 586, 587, 588, 589, 591, 596, 598, 599, 601, 602, 603, 604, 605, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 619, 620, 621, 622, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 638, 642, 643, 644, 645, 646, 647, 648, 650, 653, 654, 655, 656, 657, 658, 659, 660, 661, 663, 664, 665, 666, 667, 668, 669, 670, 675, 676, 679, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696, 697, 699, 700, 701, 702, 703, 704, 705, 707, 708, 709, 710, 715, 716, 717, 718, 722, 723, 725, 726, 732, 733, 737, 740, 741, 742, 743, 744, 745, 746, 747, 750, 751, 752, 753, 755, 756, 757, 758, 759, 760, 762, 763, 764, 765, 767, 768, 769, 770, 771, 772, 778, 779, 780, 781, 782, 783, 784, 785, 788, 794, 795, 796, 797, 799, 801, 802], "done": [5, 6, 7, 8, 9], "i": [5, 10, 11, 12, 13, 15, 16, 21, 22, 27, 37, 38, 39, 43, 49, 52, 54, 55, 56, 59, 60, 67, 68, 74, 76, 79, 84, 90, 91, 92, 93, 95, 96, 97, 100, 101, 102, 103, 104, 105, 107, 111, 113, 115, 117, 120, 126, 127, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 153, 154, 155, 163, 164, 165, 169, 171, 175, 181, 183, 184, 189, 194, 198, 200, 201, 207, 218, 219, 220, 221, 224, 225, 226, 230, 231, 237, 243, 248, 253, 254, 258, 259, 264, 267, 269, 270, 271, 274, 275, 276, 283, 284, 290, 292, 295, 300, 306, 307, 308, 309, 311, 312, 313, 316, 317, 319, 321, 322, 323, 325, 329, 331, 333, 335, 338, 344, 345, 346, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 375, 377, 378, 386, 387, 388, 392, 394, 398, 404, 406, 407, 412, 417, 421, 423, 424, 430, 441, 442, 443, 444, 447, 448, 449, 454, 455, 460, 472, 473, 474, 478, 479, 480, 486, 489, 491, 492, 493, 496, 497, 504, 505, 511, 513, 516, 521, 527, 528, 529, 530, 532, 533, 534, 537, 538, 540, 541, 542, 543, 544, 546, 550, 552, 554, 556, 559, 565, 566, 567, 568, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 596, 598, 599, 607, 608, 609, 613, 615, 619, 625, 627, 628, 633, 638, 642, 644, 645, 651, 662, 663, 664, 665, 668, 669, 670, 676, 679, 693, 694, 698, 702, 706, 707, 708, 709, 710, 712, 715, 717, 718, 719, 722, 724, 725, 726, 730, 732, 733, 734, 735, 736, 737, 738, 744, 745, 748, 754, 755, 756, 757, 758, 768, 769, 788, 791, 793, 794, 795, 797, 799, 800, 801], "equal": 5, "thi": [5, 12, 13, 16, 19, 33, 36, 37, 54, 76, 102, 103, 104, 105, 113, 125, 158, 160, 171, 175, 185, 186, 188, 198, 214, 228, 244, 247, 248, 269, 292, 319, 321, 322, 323, 331, 343, 381, 383, 394, 398, 408, 409, 411, 421, 437, 452, 468, 471, 472, 479, 480, 513, 540, 541, 542, 543, 544, 552, 564, 602, 604, 615, 619, 629, 630, 632, 642, 658, 673, 685, 686, 714, 715, 717, 718, 731, 763, 765, 780, 781, 783, 788, 797, 799, 801, 802], "sum": [5, 79, 295, 516, 794], "dot": [5, 79, 146, 295, 368, 516, 587, 738], "product": 5, "vector": [5, 12, 16, 41, 49, 53, 84, 157, 158, 187, 188, 209, 215, 256, 264, 268, 300, 380, 381, 410, 411, 432, 438, 476, 486, 490, 521, 601, 602, 631, 632, 653, 659, 696, 702, 705, 738, 750, 762, 763, 782, 783, 791, 792, 794], "defin": [5, 16, 74, 85, 111, 146, 164, 165, 167, 174, 179, 180, 290, 301, 329, 368, 387, 388, 390, 397, 402, 403, 511, 522, 550, 568, 587, 608, 609, 611, 618, 623, 624, 768, 773, 799, 802], "applic": [5, 36, 37, 247, 248, 471, 472, 715, 799, 800], "point": [5, 13, 16, 27, 40, 42, 49, 51, 69, 70, 86, 105, 110, 116, 142, 146, 157, 158, 161, 163, 174, 178, 179, 180, 213, 216, 223, 237, 255, 257, 264, 266, 285, 286, 302, 323, 328, 334, 364, 368, 380, 381, 384, 386, 397, 401, 402, 403, 436, 439, 446, 460, 475, 477, 486, 488, 506, 507, 523, 544, 549, 555, 583, 587, 601, 602, 605, 607, 618, 622, 623, 624, 657, 660, 667, 695, 697, 701, 702, 704, 712, 719, 721, 722, 723, 738, 751, 752, 762, 763, 773, 776, 794], "fix": [5, 13, 19, 27, 164, 165, 228, 237, 387, 388, 452, 460, 608, 609, 673, 711, 712, 768, 792, 793, 794], "arbitrari": 5, "paramet": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 27, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 131, 134, 136, 143, 144, 145, 146, 147, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 175, 176, 177, 181, 182, 183, 184, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 212, 213, 214, 215, 216, 217, 218, 219, 220, 223, 224, 225, 226, 230, 231, 232, 237, 242, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 274, 275, 276, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 349, 352, 353, 354, 355, 356, 358, 365, 366, 367, 368, 369, 375, 376, 377, 378, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 394, 395, 396, 398, 399, 400, 404, 405, 406, 407, 408, 409, 410, 411, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 435, 436, 437, 438, 439, 440, 441, 442, 443, 446, 447, 448, 449, 454, 455, 456, 460, 465, 468, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 496, 497, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 537, 538, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 572, 575, 577, 584, 585, 586, 587, 590, 596, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 615, 616, 617, 619, 620, 621, 625, 626, 627, 628, 629, 630, 631, 632, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 653, 656, 657, 658, 659, 660, 661, 662, 663, 664, 667, 668, 669, 670, 675, 676, 677, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 712, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 731, 732, 733, 734, 736, 737, 738, 740, 741, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752, 753, 754, 755, 756, 757, 758, 762, 763, 764, 765, 766, 767, 768, 769, 771, 772, 776, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 793], "formdiagram": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 259, 320, 376, 791, 792, 793, 794], "forcediagram": [5, 6, 7, 8, 9, 10, 13, 15, 791, 792, 793], "return": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 448, 449, 450, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 494, 495, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 533, 534, 535, 536, 538, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 663, 664, 665, 666, 667, 669, 670, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 707, 708, 710, 711, 712, 713, 714, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 755, 756, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 786, 787, 788], "float": [5, 6, 7, 8, 9, 24, 25, 27, 45, 48, 49, 65, 66, 72, 74, 76, 89, 105, 106, 110, 111, 113, 116, 131, 148, 153, 157, 158, 159, 160, 164, 165, 166, 171, 174, 178, 179, 180, 182, 199, 202, 203, 234, 235, 237, 250, 251, 252, 260, 263, 264, 281, 282, 288, 290, 292, 305, 323, 324, 328, 329, 331, 334, 349, 370, 375, 380, 381, 382, 383, 387, 388, 389, 394, 397, 401, 402, 403, 405, 422, 425, 426, 457, 458, 460, 479, 480, 482, 485, 486, 502, 503, 509, 511, 513, 526, 544, 545, 549, 550, 552, 555, 568, 572, 591, 596, 601, 602, 603, 604, 608, 609, 610, 615, 618, 622, 623, 624, 626, 643, 646, 647, 695, 699, 702, 719, 721, 746, 762, 763, 764, 765, 768, 769, 773, 775, 777], "exampl": [5, 6, 7, 8, 13, 14, 15, 16, 17, 22, 79, 145, 146, 147, 153, 155, 162, 163, 167, 171, 181, 183, 184, 214, 231, 275, 295, 367, 368, 369, 375, 378, 385, 386, 390, 394, 404, 406, 407, 437, 455, 516, 586, 587, 590, 596, 599, 606, 607, 611, 615, 625, 627, 628, 658, 675, 676, 679, 691, 692, 710, 715, 730, 758, 766, 795, 799, 800, 802], "intern": [6, 7, 8, 9, 15, 795, 801, 802], "compress": [7, 15, 791, 792, 802], "tensil": 8, "updat": [10, 13, 14, 16, 17, 21, 22, 195, 196, 197, 230, 231, 418, 419, 420, 454, 455, 479, 480, 639, 640, 641, 786, 787, 790, 791, 793, 795, 800, 801], "after": [10, 13, 16, 36, 37, 90, 93, 118, 145, 164, 165, 167, 247, 248, 306, 309, 336, 367, 387, 388, 390, 471, 472, 527, 530, 557, 586, 608, 609, 611, 768], "modifi": [10, 16, 17, 102, 145, 154, 155, 183, 184, 189, 226, 243, 319, 367, 377, 378, 406, 407, 412, 449, 540, 568, 586, 598, 599, 627, 628, 633, 670, 737, 793, 797], "densiti": [10, 13, 14, 17, 791, 792, 793, 802], "which": [10, 13, 16, 40, 59, 60, 63, 64, 72, 100, 101, 131, 169, 180, 202, 224, 225, 255, 274, 275, 276, 279, 280, 288, 316, 317, 349, 392, 403, 425, 447, 448, 475, 496, 497, 500, 501, 509, 537, 538, 568, 572, 613, 624, 646, 668, 669, 676, 695, 709, 710, 715, 757, 758, 799, 800, 801], "base": [10, 13, 15, 16, 18, 113, 157, 158, 203, 227, 331, 380, 381, 426, 451, 552, 568, 601, 602, 647, 672, 762, 763, 789, 795, 801], "count": [11, 75, 149, 150, 151, 204, 291, 371, 372, 373, 427, 512, 592, 593, 594, 648, 686], "number": [11, 12, 13, 15, 16, 50, 88, 106, 111, 112, 117, 140, 149, 150, 151, 155, 164, 165, 171, 207, 212, 217, 265, 304, 324, 329, 330, 335, 362, 371, 372, 373, 378, 387, 388, 394, 430, 435, 440, 487, 525, 545, 550, 551, 556, 581, 592, 593, 594, 599, 608, 609, 615, 651, 656, 661, 686, 687, 688, 690, 719, 723, 724, 748, 759, 760, 768, 799, 801, 802], "degre": [11, 35, 80, 81, 140, 146, 153, 204, 210, 211, 246, 296, 297, 362, 368, 375, 427, 433, 434, 470, 517, 518, 581, 587, 596, 648, 654, 655, 688, 689, 690, 723], "freedom": 11, "class": [11, 12, 13, 14, 18, 19, 79, 146, 227, 228, 295, 368, 451, 452, 516, 587, 672, 673], "k": [11, 12, 16], "int": [11, 12, 13, 16, 21, 22, 27, 30, 31, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 106, 111, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 134, 136, 143, 144, 145, 147, 149, 150, 151, 155, 161, 164, 165, 166, 167, 168, 182, 190, 191, 192, 193, 194, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 230, 231, 233, 237, 240, 241, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 324, 329, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 352, 353, 354, 355, 356, 358, 365, 366, 367, 369, 371, 372, 373, 378, 384, 387, 388, 389, 390, 391, 405, 413, 414, 415, 416, 417, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 454, 455, 460, 463, 464, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 494, 495, 496, 497, 498, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 545, 550, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 571, 572, 575, 577, 584, 585, 586, 590, 592, 593, 594, 599, 605, 608, 609, 610, 611, 612, 626, 634, 635, 636, 637, 638, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 676, 686, 687, 688, 690, 698, 703, 719, 723, 724, 727, 728, 740, 748, 749, 753, 759, 760, 768, 785], "dimens": [11, 12], "null": [11, 12], "space": [11, 12, 15], "nulliti": [11, 12], "equilibrium": [11, 12, 15, 17, 791, 793, 795, 799, 801], "matrix": [11, 12, 16, 17, 23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 677, 684, 689, 738, 799, 800], "m": [11, 12, 146, 368, 587, 801], "left": [11, 12, 792], "note": [11, 12, 13, 15, 16, 21, 22, 36, 37, 54, 63, 76, 79, 102, 107, 146, 153, 181, 190, 191, 192, 195, 196, 197, 212, 214, 230, 231, 247, 248, 269, 279, 292, 295, 319, 325, 368, 375, 404, 413, 414, 415, 418, 419, 420, 435, 437, 454, 455, 471, 472, 500, 513, 516, 540, 541, 546, 587, 596, 625, 634, 635, 636, 639, 640, 641, 656, 658, 676, 686, 714, 715, 730, 731, 732, 734, 737, 738, 784, 785, 799, 800, 801, 802], "mathbf": [11, 12, 13, 16, 146, 368, 587], "e": [11, 12, 16, 17, 138, 140, 146, 360, 362, 368, 579, 581, 587, 698, 794, 796], "begin": [11, 12, 79, 146, 295, 368, 516, 587], "bmatrix": [11, 12], "c": [11, 12, 738, 791, 792, 797, 801], "_": [11, 12, 16, 146, 368, 587], "t": [11, 12, 16, 27, 49, 142, 145, 146, 166, 183, 184, 214, 237, 264, 364, 367, 368, 389, 406, 407, 437, 460, 486, 541, 583, 586, 587, 610, 627, 628, 658, 702, 769, 799, 801, 802], "u": [11, 12, 54, 59, 60, 166, 167, 269, 274, 275, 276, 389, 390, 496, 497, 610, 611, 675, 679, 706, 709, 710, 767, 794], "v": [11, 12, 54, 59, 60, 146, 166, 167, 269, 274, 275, 276, 368, 389, 390, 496, 497, 587, 610, 611, 675, 679, 706, 709, 710, 767, 794], "end": [11, 12, 27, 40, 42, 79, 105, 146, 174, 214, 237, 255, 257, 295, 323, 368, 397, 437, 460, 475, 477, 516, 544, 587, 618, 658, 695, 697, 705, 719, 767, 773, 791, 792, 799, 800, 801], "identifi": [12, 22, 27, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 100, 101, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 134, 136, 143, 144, 147, 161, 166, 168, 190, 191, 192, 194, 199, 200, 201, 202, 204, 206, 208, 209, 212, 213, 214, 215, 216, 217, 218, 219, 220, 223, 224, 225, 231, 237, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 291, 292, 293, 294, 298, 299, 300, 301, 302, 303, 304, 306, 307, 308, 309, 310, 311, 312, 313, 316, 317, 318, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 348, 349, 352, 353, 354, 355, 356, 358, 365, 366, 369, 384, 389, 391, 413, 414, 415, 417, 422, 423, 424, 425, 427, 429, 431, 432, 435, 436, 437, 438, 439, 440, 441, 442, 443, 446, 447, 448, 455, 460, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 496, 497, 500, 501, 502, 504, 505, 506, 507, 508, 509, 510, 512, 513, 514, 515, 519, 520, 521, 522, 523, 524, 525, 527, 528, 529, 530, 531, 532, 533, 534, 537, 538, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 571, 572, 575, 577, 584, 585, 588, 589, 590, 605, 610, 612, 634, 635, 636, 638, 643, 644, 645, 646, 648, 650, 652, 653, 656, 657, 658, 659, 660, 661, 662, 663, 664, 667, 668, 669, 675, 676, 687, 688, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 714, 716, 724, 725, 726, 727, 732, 733, 737, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 767, 769, 784, 785, 794], "dof": 12, "independ": [12, 14, 17, 33, 244, 353, 468, 685, 791, 802], "state": 12, "self": [12, 19, 153, 228, 375, 452, 596, 673, 799], "stress": [12, 799], "size": [12, 50, 82, 88, 106, 167, 217, 265, 298, 304, 324, 390, 440, 487, 519, 525, 545, 611, 661, 703, 740, 753], "infenitesim": 12, "mechan": 12, "ind": [12, 17], "list": [12, 16, 17, 21, 23, 25, 27, 30, 31, 32, 35, 39, 47, 48, 50, 52, 55, 56, 57, 58, 62, 64, 68, 72, 73, 78, 79, 82, 83, 86, 88, 94, 96, 97, 98, 99, 105, 110, 111, 113, 116, 121, 122, 123, 124, 130, 131, 146, 147, 148, 155, 164, 165, 168, 174, 178, 179, 180, 182, 193, 194, 201, 202, 205, 206, 208, 212, 214, 217, 219, 220, 221, 222, 223, 230, 232, 235, 237, 240, 241, 242, 246, 254, 259, 262, 263, 265, 267, 270, 271, 272, 273, 278, 280, 284, 288, 289, 294, 295, 298, 299, 302, 304, 310, 312, 313, 314, 315, 318, 323, 328, 329, 331, 334, 339, 340, 341, 342, 348, 349, 368, 369, 370, 376, 378, 387, 388, 391, 397, 401, 402, 403, 405, 416, 417, 424, 425, 428, 429, 431, 435, 437, 440, 442, 443, 444, 445, 446, 450, 454, 456, 458, 460, 463, 464, 465, 470, 474, 479, 480, 484, 485, 487, 489, 492, 493, 494, 495, 499, 501, 505, 509, 510, 515, 516, 519, 520, 523, 525, 531, 533, 534, 535, 536, 544, 549, 550, 552, 555, 560, 561, 562, 563, 571, 572, 587, 588, 589, 590, 591, 599, 608, 609, 612, 618, 622, 623, 624, 626, 637, 638, 645, 646, 649, 650, 652, 656, 658, 661, 663, 664, 665, 666, 667, 677, 682, 683, 684, 689, 694, 695, 698, 703, 707, 708, 713, 714, 715, 716, 719, 721, 727, 728, 738, 739, 740, 741, 742, 743, 745, 746, 747, 749, 753, 755, 756, 767, 768, 773, 775, 777], "indic": [12, 17, 116, 130, 154, 182, 259, 334, 348, 377, 405, 555, 571, 598, 626, 728, 775, 792], "edg": [12, 13, 14, 15, 16, 17, 27, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 63, 66, 76, 83, 95, 118, 119, 120, 121, 122, 123, 124, 125, 132, 133, 134, 137, 140, 146, 147, 149, 154, 166, 167, 168, 190, 193, 195, 205, 218, 237, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, 274, 275, 276, 279, 282, 292, 299, 311, 336, 337, 338, 339, 340, 341, 342, 343, 350, 351, 352, 353, 354, 355, 356, 359, 362, 368, 369, 371, 376, 377, 389, 390, 391, 413, 416, 418, 428, 441, 460, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 492, 493, 494, 495, 496, 497, 500, 503, 513, 520, 532, 557, 558, 559, 560, 561, 562, 563, 564, 573, 574, 575, 578, 581, 587, 588, 589, 590, 592, 598, 610, 611, 612, 634, 637, 639, 649, 662, 675, 679, 682, 686, 691, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 707, 708, 709, 710, 714, 716, 721, 725, 727, 731, 734, 737, 747, 754, 757, 758, 759, 769, 775, 784, 786, 791, 792, 793, 794, 799, 802], "If": [12, 21, 22, 27, 38, 39, 43, 49, 52, 54, 55, 56, 59, 60, 67, 68, 76, 84, 90, 91, 92, 93, 95, 96, 97, 100, 101, 103, 104, 120, 131, 145, 153, 162, 163, 164, 165, 166, 167, 169, 171, 172, 173, 175, 181, 182, 190, 191, 192, 200, 201, 206, 214, 218, 219, 220, 224, 225, 230, 231, 237, 253, 254, 258, 259, 264, 267, 269, 270, 271, 274, 276, 283, 284, 292, 300, 306, 307, 308, 309, 311, 312, 313, 316, 317, 321, 322, 338, 349, 367, 375, 385, 386, 387, 388, 389, 390, 392, 394, 395, 396, 398, 404, 405, 413, 414, 415, 423, 424, 429, 437, 441, 442, 443, 447, 448, 454, 455, 460, 473, 474, 478, 479, 480, 486, 489, 491, 492, 493, 496, 497, 504, 505, 513, 521, 527, 528, 529, 530, 532, 533, 534, 537, 538, 542, 543, 559, 572, 586, 596, 606, 607, 608, 609, 610, 611, 613, 615, 616, 617, 619, 625, 626, 634, 635, 636, 644, 645, 650, 658, 662, 663, 664, 668, 669, 676, 693, 694, 702, 706, 707, 708, 709, 710, 712, 717, 718, 725, 734, 738, 744, 745, 754, 755, 756, 757, 758, 766, 768, 769, 771, 772, 784, 785], "0": [12, 22, 27, 49, 76, 79, 145, 146, 147, 153, 162, 163, 164, 165, 166, 167, 171, 183, 184, 231, 237, 243, 264, 292, 295, 367, 368, 369, 375, 385, 386, 387, 388, 389, 390, 394, 406, 407, 455, 460, 486, 513, 516, 568, 586, 587, 590, 596, 606, 607, 608, 609, 610, 611, 615, 627, 628, 676, 702, 766, 768, 769, 791, 792, 793, 794], "system": [12, 16, 791, 795, 799], "describ": [12, 105, 107, 108, 109, 115, 323, 325, 326, 327, 333, 544, 546, 547, 548, 554, 795, 802], "static": [12, 791, 798], "determin": [12, 27, 237, 460, 715, 791, 799, 800], "indetermin": [12, 799], "idepend": 12, "unstabl": 12, "basi": 12, "A": [12, 13, 21, 22, 27, 39, 50, 55, 56, 57, 59, 68, 76, 82, 85, 88, 96, 97, 100, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 130, 137, 138, 140, 142, 146, 147, 164, 165, 169, 174, 179, 180, 193, 194, 195, 196, 197, 201, 207, 208, 217, 219, 220, 221, 224, 230, 231, 237, 254, 265, 270, 271, 272, 274, 275, 284, 292, 298, 301, 304, 312, 313, 316, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 348, 359, 360, 362, 364, 368, 369, 387, 388, 392, 397, 402, 403, 416, 417, 418, 419, 420, 424, 430, 431, 440, 442, 443, 444, 447, 454, 455, 460, 474, 487, 492, 493, 494, 496, 505, 513, 519, 522, 525, 533, 534, 537, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 571, 578, 579, 581, 583, 587, 590, 608, 609, 613, 618, 623, 624, 637, 638, 639, 640, 641, 645, 651, 652, 661, 663, 664, 665, 668, 672, 675, 676, 686, 694, 698, 707, 708, 709, 712, 714, 719, 721, 722, 723, 724, 727, 728, 730, 731, 732, 734, 736, 737, 739, 740, 741, 742, 743, 745, 748, 749, 755, 756, 757, 767, 768, 773, 774, 775, 776, 777, 786, 787, 795, 797, 799, 800, 802], "set": [12, 17, 38, 39, 55, 56, 59, 60, 67, 68, 96, 97, 100, 101, 110, 113, 161, 190, 191, 192, 200, 201, 219, 220, 224, 225, 253, 254, 270, 271, 274, 275, 276, 283, 284, 312, 313, 316, 317, 328, 331, 384, 413, 414, 415, 423, 424, 442, 443, 447, 448, 473, 474, 479, 480, 492, 493, 496, 497, 504, 505, 533, 534, 537, 538, 549, 552, 605, 634, 635, 636, 644, 645, 663, 664, 668, 669, 693, 694, 703, 707, 708, 709, 710, 719, 744, 745, 753, 755, 756, 757, 758, 784, 785, 791, 792, 793, 800], "thei": [12, 54, 140, 269, 362, 581], "ar": [12, 13, 15, 16, 17, 19, 54, 63, 64, 107, 113, 137, 140, 142, 166, 167, 175, 180, 199, 212, 226, 228, 269, 279, 280, 325, 331, 359, 362, 364, 389, 390, 398, 403, 422, 435, 449, 452, 491, 500, 501, 546, 552, 578, 581, 583, 610, 611, 619, 624, 643, 656, 670, 673, 715, 737, 793, 796, 799, 800, 802], "linearli": 12, "everi": [12, 16, 164, 165, 387, 388, 608, 609, 730, 768], "linear": [12, 16, 800, 801], "combin": [12, 36, 37, 72, 202, 247, 248, 288, 425, 471, 472, 509, 646, 795], "kmax": [13, 16, 164, 165, 387, 388, 608, 609, 768, 792], "100": [13, 16, 164, 165, 387, 388, 608, 609, 768, 791, 792], "modif": [13, 801], "option": [13, 15, 16, 21, 22, 23, 27, 32, 33, 35, 38, 39, 40, 49, 50, 52, 54, 55, 56, 59, 60, 67, 68, 72, 76, 79, 82, 84, 88, 90, 91, 92, 93, 95, 96, 97, 100, 101, 105, 106, 107, 111, 114, 115, 117, 131, 145, 146, 153, 154, 155, 157, 158, 159, 160, 162, 164, 165, 166, 169, 171, 172, 173, 175, 181, 182, 194, 195, 196, 197, 200, 201, 202, 206, 207, 212, 214, 217, 218, 219, 220, 224, 225, 226, 230, 231, 232, 237, 242, 244, 246, 253, 254, 255, 259, 264, 265, 267, 269, 270, 271, 274, 275, 276, 283, 284, 288, 292, 295, 298, 300, 304, 306, 307, 308, 309, 311, 312, 313, 316, 317, 323, 324, 325, 329, 332, 333, 335, 349, 367, 368, 375, 377, 378, 380, 381, 382, 383, 385, 387, 388, 389, 392, 394, 395, 396, 398, 404, 405, 417, 418, 419, 420, 423, 424, 425, 429, 430, 435, 437, 440, 441, 442, 443, 447, 448, 449, 454, 455, 456, 460, 465, 468, 470, 473, 474, 475, 479, 480, 486, 487, 489, 491, 492, 493, 496, 497, 504, 505, 509, 513, 516, 519, 521, 525, 527, 528, 529, 530, 532, 533, 534, 537, 538, 544, 545, 546, 550, 553, 554, 556, 568, 572, 586, 587, 596, 598, 599, 601, 602, 603, 604, 606, 608, 609, 610, 613, 615, 616, 617, 619, 625, 626, 638, 639, 640, 641, 644, 645, 646, 650, 651, 656, 658, 661, 662, 663, 664, 668, 669, 670, 675, 676, 677, 684, 685, 689, 693, 694, 695, 702, 703, 706, 707, 708, 709, 710, 712, 715, 719, 722, 723, 724, 725, 738, 740, 744, 745, 746, 748, 753, 754, 755, 756, 757, 758, 762, 763, 764, 765, 766, 768, 769, 771, 772, 786, 787], "maximum": [13, 16, 66, 74, 76, 80, 89, 164, 165, 210, 282, 290, 292, 296, 305, 387, 388, 433, 503, 511, 513, 517, 526, 608, 609, 654, 768], "least": [13, 16, 143, 365, 584, 731], "squar": [13, 16], "iter": [13, 16, 54, 95, 164, 165, 218, 269, 311, 387, 388, 441, 491, 532, 608, 609, 662, 706, 754, 768, 801], "solv": [13, 16, 715, 800], "dualiti": [13, 63, 279, 500], "default": [13, 16, 19, 33, 38, 55, 56, 90, 91, 92, 93, 96, 97, 105, 106, 111, 117, 145, 155, 157, 158, 159, 160, 172, 173, 175, 181, 190, 191, 192, 194, 195, 196, 197, 207, 219, 226, 228, 244, 253, 270, 271, 275, 306, 307, 308, 309, 312, 313, 323, 324, 329, 335, 367, 378, 380, 381, 382, 383, 395, 396, 398, 404, 413, 414, 415, 417, 418, 419, 420, 430, 442, 449, 452, 468, 473, 492, 493, 527, 528, 529, 530, 533, 534, 544, 545, 550, 556, 568, 586, 599, 601, 602, 603, 604, 616, 617, 619, 625, 634, 635, 636, 638, 639, 640, 641, 651, 663, 670, 673, 676, 685, 719, 724, 737, 748, 762, 763, 764, 765, 771, 772, 784, 785, 786, 787], "valu": [13, 14, 17, 21, 22, 38, 39, 49, 55, 56, 59, 67, 68, 76, 96, 97, 100, 105, 106, 153, 166, 171, 181, 190, 191, 192, 195, 196, 197, 200, 201, 219, 220, 224, 226, 230, 231, 253, 254, 264, 270, 271, 274, 275, 283, 284, 292, 312, 313, 316, 323, 324, 375, 389, 394, 404, 413, 414, 415, 418, 419, 420, 423, 424, 442, 443, 447, 449, 454, 455, 473, 474, 479, 480, 486, 492, 493, 496, 504, 505, 513, 533, 534, 537, 544, 545, 568, 596, 610, 615, 625, 634, 635, 636, 639, 640, 641, 644, 645, 663, 664, 668, 670, 693, 694, 702, 707, 708, 709, 738, 744, 745, 755, 756, 757, 784, 785, 786, 787], "20": [13, 112, 330, 551], "geometri": [13, 16, 20, 28, 29, 41, 42, 46, 49, 51, 53, 69, 70, 71, 77, 84, 85, 86, 87, 114, 145, 152, 153, 157, 158, 160, 161, 163, 183, 184, 187, 188, 209, 213, 215, 216, 223, 229, 238, 239, 256, 257, 261, 264, 266, 268, 285, 286, 287, 293, 300, 301, 302, 303, 332, 367, 374, 375, 380, 381, 383, 384, 386, 406, 407, 410, 411, 432, 436, 438, 439, 446, 453, 461, 462, 476, 477, 483, 486, 488, 490, 506, 507, 508, 514, 521, 522, 523, 524, 553, 568, 586, 595, 596, 601, 602, 604, 605, 607, 627, 628, 631, 632, 653, 657, 659, 660, 667, 672, 674, 680, 681, 696, 697, 700, 701, 702, 704, 705, 711, 715, 723, 737, 750, 751, 752, 761, 762, 763, 765, 782, 783, 791, 792, 794, 801], "from": [13, 15, 16, 22, 34, 36, 37, 62, 63, 64, 74, 76, 79, 89, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 145, 146, 147, 153, 155, 156, 162, 163, 167, 171, 183, 184, 209, 231, 243, 245, 247, 248, 278, 279, 280, 290, 292, 295, 305, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 367, 368, 369, 375, 378, 379, 385, 386, 390, 394, 406, 407, 432, 455, 469, 471, 472, 499, 500, 501, 511, 513, 516, 526, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 586, 587, 590, 596, 599, 600, 606, 607, 611, 615, 627, 628, 653, 677, 679, 684, 689, 691, 692, 705, 716, 717, 718, 719, 720, 721, 722, 723, 730, 738, 750, 766, 767, 774, 791, 792, 793, 794, 796, 797, 799, 800, 801], "some": [13, 36, 37, 214, 247, 248, 437, 471, 472, 658], "constraint": [13, 16, 243, 568, 800, 801], "locat": [13, 16, 49, 264, 486, 701, 702], "sinc": [13, 15], "both": [13, 16, 153, 171, 375, 394, 596, 615, 795, 802], "reciproc": [13, 16, 795, 799, 801], "coordin": [13, 15, 16, 25, 40, 48, 72, 105, 110, 111, 113, 116, 131, 148, 174, 181, 182, 202, 235, 255, 263, 288, 323, 328, 329, 331, 334, 349, 370, 397, 404, 405, 425, 450, 458, 475, 485, 509, 544, 549, 550, 552, 555, 572, 591, 618, 625, 626, 646, 695, 719, 721, 736, 746, 773, 775, 777, 793], "each": [13, 16, 79, 111, 137, 164, 174, 179, 180, 219, 295, 329, 359, 387, 397, 402, 403, 442, 516, 550, 578, 608, 618, 623, 624, 663, 714, 715, 755, 773, 775], "vertex": [13, 16, 21, 22, 27, 36, 37, 38, 60, 73, 74, 79, 90, 91, 92, 93, 94, 113, 116, 128, 130, 131, 137, 143, 144, 146, 153, 161, 164, 165, 166, 167, 181, 182, 192, 193, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 212, 213, 214, 215, 216, 218, 219, 220, 221, 224, 225, 230, 231, 237, 247, 248, 253, 276, 289, 290, 295, 306, 307, 308, 309, 310, 331, 334, 346, 348, 349, 359, 365, 366, 368, 375, 384, 387, 388, 389, 390, 404, 405, 415, 416, 420, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 435, 436, 437, 438, 439, 441, 442, 443, 444, 447, 448, 454, 455, 460, 471, 472, 473, 497, 510, 511, 516, 527, 528, 529, 530, 531, 552, 555, 567, 571, 572, 578, 584, 585, 587, 596, 605, 608, 609, 610, 611, 625, 626, 636, 637, 641, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 656, 657, 658, 659, 660, 662, 663, 664, 665, 668, 669, 676, 698, 714, 715, 727, 791, 792, 793], "can": [13, 15, 16, 36, 37, 59, 79, 100, 153, 198, 224, 247, 248, 274, 275, 295, 316, 375, 421, 447, 471, 472, 479, 480, 496, 516, 537, 596, 642, 668, 709, 734, 757, 788, 796, 799, 801, 802], "express": [13, 797], "intersect": [13, 16, 153, 163, 375, 386, 596, 607], "three": [13, 799], "more": [13, 76, 292, 513, 738, 795], "line": [13, 16, 46, 105, 107, 115, 163, 174, 175, 226, 261, 323, 325, 333, 386, 397, 398, 449, 483, 544, 546, 554, 568, 607, 618, 619, 670, 672, 679, 700, 715, 719, 722, 730, 734, 773, 791, 792, 799], "parallel": [13, 16], "correspond": [13, 15, 16, 39, 52, 56, 63, 68, 97, 117, 120, 130, 142, 168, 195, 196, 197, 201, 207, 208, 220, 250, 251, 252, 254, 259, 267, 271, 275, 279, 284, 313, 335, 338, 348, 352, 353, 354, 355, 364, 376, 391, 418, 419, 420, 424, 430, 431, 443, 474, 489, 493, 500, 505, 534, 556, 559, 571, 583, 612, 639, 640, 641, 645, 651, 652, 664, 694, 698, 708, 724, 727, 745, 748, 749, 756], "essenti": [13, 715], "boil": 13, "down": 13, "follow": [13, 137, 140, 142, 146, 359, 362, 364, 368, 578, 581, 583, 587, 715, 797], "problem": [13, 15], "x": [13, 15, 22, 72, 106, 155, 159, 160, 202, 231, 288, 324, 378, 382, 383, 425, 455, 509, 545, 568, 599, 603, 604, 646, 764, 765, 792], "b": [13, 15, 145, 367, 586, 791, 792, 794], "coeffici": 13, "y": [13, 22, 72, 106, 155, 159, 160, 202, 231, 288, 324, 378, 382, 383, 425, 455, 509, 545, 568, 599, 603, 604, 646, 764, 765, 792], "vertic": [13, 15, 16, 21, 27, 31, 34, 36, 37, 54, 64, 72, 73, 74, 76, 79, 86, 94, 95, 106, 113, 116, 117, 122, 135, 140, 142, 145, 146, 151, 155, 156, 164, 165, 167, 168, 175, 178, 182, 194, 210, 211, 212, 214, 217, 219, 220, 221, 222, 223, 224, 225, 226, 230, 237, 241, 245, 247, 248, 269, 280, 288, 289, 290, 292, 295, 302, 310, 311, 318, 324, 331, 334, 335, 340, 357, 362, 364, 367, 368, 373, 378, 379, 387, 388, 390, 391, 398, 401, 405, 417, 433, 434, 435, 437, 440, 442, 443, 444, 445, 446, 447, 448, 449, 450, 454, 460, 464, 469, 471, 472, 479, 480, 491, 501, 509, 510, 511, 513, 516, 523, 531, 532, 545, 552, 555, 556, 561, 568, 576, 581, 583, 586, 587, 588, 589, 594, 599, 600, 608, 609, 611, 612, 619, 622, 626, 638, 654, 655, 656, 658, 661, 663, 664, 665, 666, 667, 668, 669, 670, 679, 715, 730, 736, 767, 777, 791, 792, 793], "fortran": 13, "order": [13, 54, 94, 111, 168, 206, 214, 259, 269, 310, 329, 376, 391, 429, 437, 531, 550, 612, 650, 658, 715], "first": [13, 27, 60, 63, 64, 105, 167, 221, 237, 276, 279, 280, 323, 390, 444, 460, 497, 500, 501, 544, 611, 665, 675], "all": [13, 26, 34, 39, 47, 52, 56, 57, 64, 68, 79, 80, 81, 97, 98, 102, 121, 122, 123, 124, 140, 142, 154, 155, 156, 175, 181, 194, 201, 205, 210, 211, 221, 236, 245, 254, 262, 267, 271, 272, 280, 284, 295, 296, 297, 313, 314, 319, 339, 340, 341, 342, 362, 364, 377, 378, 379, 398, 404, 417, 424, 428, 433, 434, 444, 459, 469, 474, 484, 489, 493, 494, 501, 505, 516, 517, 518, 534, 535, 540, 560, 561, 562, 563, 581, 583, 598, 599, 600, 619, 625, 638, 645, 649, 654, 655, 665, 678, 694, 708, 714, 729, 736, 739, 745, 778, 797], "depend": [14, 17, 802], "us": [14, 15, 16, 17, 19, 21, 22, 38, 39, 54, 55, 56, 60, 63, 67, 68, 79, 96, 97, 101, 105, 107, 113, 115, 131, 145, 162, 175, 183, 184, 185, 186, 187, 188, 198, 200, 201, 219, 220, 225, 226, 228, 230, 231, 253, 254, 269, 270, 271, 276, 279, 283, 284, 295, 312, 313, 317, 323, 325, 331, 333, 349, 367, 385, 398, 406, 407, 408, 409, 410, 411, 421, 423, 424, 442, 443, 448, 449, 452, 454, 455, 473, 474, 492, 493, 497, 500, 504, 505, 516, 533, 534, 538, 544, 546, 552, 554, 572, 586, 606, 619, 627, 628, 629, 630, 631, 632, 642, 644, 645, 663, 664, 669, 670, 673, 676, 693, 694, 707, 708, 710, 715, 722, 738, 744, 745, 755, 756, 758, 766, 767, 778, 779, 780, 781, 782, 783, 788, 789, 794, 797, 799, 800, 801, 802], "ones": 14, "store": [14, 54, 190, 191, 192, 269, 413, 414, 415, 479, 480, 634, 635, 636, 784, 785, 792], "attribut": [14, 18, 21, 22, 38, 39, 54, 55, 56, 59, 60, 67, 68, 95, 96, 97, 100, 101, 190, 191, 192, 195, 196, 197, 200, 201, 218, 219, 220, 224, 225, 230, 231, 253, 254, 269, 270, 271, 274, 275, 276, 283, 284, 311, 312, 313, 316, 317, 413, 414, 415, 418, 419, 420, 423, 424, 441, 442, 443, 447, 448, 454, 455, 473, 474, 491, 492, 493, 496, 497, 504, 505, 532, 533, 534, 537, 538, 634, 635, 636, 639, 640, 641, 644, 645, 662, 663, 664, 668, 669, 675, 676, 693, 694, 706, 707, 708, 709, 710, 737, 744, 745, 754, 755, 756, 757, 758, 784, 785, 786, 787], "algo": 15, "cobyla": 15, "optimis": [15, 790, 795, 798], "loadpath": [15, 793], "domain": [15, 793], "l": [15, 146, 368, 587, 738, 794], "bfg": 15, "slsq": 15, "mma": 15, "gmma": 15, "algorithm": [15, 63, 105, 162, 214, 279, 323, 385, 437, 500, 544, 606, 658, 686, 714, 715, 731, 766, 767, 799], "In": [15, 36, 37, 105, 153, 247, 248, 323, 375, 471, 472, 544, 596, 795], "mani": 15, "case": [15, 16, 36, 37, 79, 105, 146, 153, 175, 247, 248, 295, 323, 368, 375, 398, 471, 472, 516, 544, 587, 596, 619, 676, 802], "paramt": 15, "involv": [15, 27, 237, 460, 715], "gener": [15, 21, 22, 114, 153, 171, 230, 231, 332, 375, 394, 454, 455, 553, 596, 615, 676, 679, 799, 802], "new": [15, 16, 167, 390, 479, 480, 611, 716, 720, 737, 774], "solut": [15, 789, 793, 802], "smaller": [15, 541], "than": [15, 21, 22, 76, 162, 226, 230, 231, 292, 385, 449, 454, 455, 513, 606, 670, 766, 795, 801], "when": [15, 19, 38, 54, 67, 200, 228, 253, 269, 283, 423, 452, 473, 504, 644, 673, 693, 744], "element": 15, "directli": [15, 799, 800, 802], "For": [15, 16, 63, 181, 214, 279, 404, 437, 500, 625, 658, 715], "bridg": 15, "arch": 15, "onli": [15, 54, 76, 113, 137, 139, 141, 175, 181, 269, 292, 331, 359, 361, 363, 398, 404, 513, 552, 578, 580, 582, 589, 619, 625, 732, 737, 802], "segment": 15, "deck": 15, "hanger": 15, "connect": [15, 16, 19, 30, 31, 32, 62, 105, 107, 113, 115, 133, 143, 175, 205, 206, 226, 228, 240, 241, 242, 278, 323, 325, 331, 333, 351, 365, 398, 428, 429, 449, 452, 463, 464, 465, 499, 544, 546, 552, 554, 574, 584, 588, 589, 619, 649, 650, 670, 672, 673, 682, 683, 684, 713, 722, 723, 730, 733, 747, 793, 797], "them": [15, 54, 269, 730, 799], "ani": [15, 16, 21, 22, 39, 54, 55, 56, 59, 60, 68, 95, 96, 97, 100, 101, 114, 138, 155, 164, 165, 169, 195, 196, 197, 198, 201, 218, 219, 220, 224, 225, 230, 231, 254, 269, 270, 271, 274, 276, 284, 311, 312, 313, 316, 317, 332, 360, 378, 387, 388, 392, 418, 419, 420, 421, 424, 441, 442, 443, 447, 448, 454, 455, 474, 492, 493, 496, 497, 505, 532, 533, 534, 537, 538, 553, 579, 599, 608, 609, 613, 639, 640, 641, 642, 645, 662, 663, 664, 668, 669, 675, 676, 679, 694, 706, 707, 708, 709, 710, 715, 745, 754, 755, 756, 757, 758, 786, 787, 788, 797], "automat": [15, 21, 22, 54, 105, 230, 231, 269, 323, 454, 455, 491, 541, 544, 676, 801], "have": [15, 54, 105, 138, 140, 142, 153, 175, 214, 269, 323, 360, 362, 364, 375, 398, 437, 544, 579, 581, 583, 596, 619, 658, 799, 801], "horizont": [15, 568, 729], "although": 15, "brg": 15, "prefer": 15, "choic": 15, "should": [15, 16, 27, 40, 59, 60, 72, 100, 101, 110, 131, 154, 166, 169, 171, 202, 224, 225, 237, 255, 274, 275, 276, 288, 316, 317, 328, 349, 377, 389, 392, 394, 425, 447, 448, 460, 475, 496, 497, 509, 537, 538, 549, 572, 598, 610, 613, 615, 646, 668, 669, 695, 709, 710, 715, 757, 758], "tailor": 15, "doe": [15, 38, 39, 55, 56, 67, 68, 96, 97, 102, 120, 167, 190, 191, 192, 200, 201, 219, 220, 253, 254, 270, 271, 283, 284, 312, 313, 319, 338, 390, 413, 414, 415, 423, 424, 442, 443, 473, 474, 492, 493, 504, 505, 533, 534, 540, 559, 611, 634, 635, 636, 644, 645, 663, 664, 693, 694, 707, 708, 744, 745, 755, 756, 784, 785], "stabl": 15, "effici": [15, 795, 802], "implement": [15, 799, 800, 801], "main": 15, "given": [15, 47, 52, 90, 91, 92, 93, 118, 119, 121, 122, 123, 124, 168, 205, 226, 262, 267, 306, 307, 308, 309, 336, 337, 339, 340, 341, 342, 391, 428, 449, 479, 480, 484, 489, 527, 528, 529, 530, 557, 558, 560, 561, 562, 563, 612, 649, 670, 737, 793, 801, 802], "flip": [15, 102, 319, 540], "tension": [15, 791, 792], "vice": 15, "versa": 15, "parallelis": 15, "longer": [15, 793], "effect": 15, "xy": [16, 686, 714, 731, 736, 793, 794], "_xy": 16, "free": [16, 165, 388, 609, 768, 792, 797], "i_nbr": 16, "ij_": 16, "_c": 16, "line_constraint": 16, "none": [16, 17, 21, 22, 26, 27, 33, 34, 36, 37, 38, 39, 43, 55, 56, 59, 63, 64, 67, 68, 96, 97, 100, 102, 105, 106, 107, 109, 111, 115, 117, 120, 131, 142, 145, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 175, 176, 177, 181, 183, 184, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 200, 201, 207, 219, 220, 224, 226, 230, 231, 236, 237, 244, 245, 247, 248, 249, 253, 254, 258, 259, 270, 271, 274, 279, 280, 283, 284, 312, 313, 316, 319, 323, 324, 325, 327, 329, 333, 335, 338, 349, 364, 367, 377, 378, 379, 380, 381, 382, 383, 384, 386, 387, 388, 398, 399, 400, 404, 406, 407, 410, 412, 413, 414, 415, 416, 417, 418, 419, 420, 423, 424, 430, 442, 443, 447, 449, 454, 455, 459, 460, 468, 469, 471, 472, 473, 474, 478, 479, 480, 492, 493, 496, 500, 501, 504, 505, 533, 534, 537, 540, 544, 545, 546, 548, 550, 554, 556, 559, 568, 572, 583, 586, 598, 599, 600, 601, 602, 603, 604, 605, 607, 608, 609, 619, 620, 621, 625, 627, 628, 631, 633, 634, 635, 636, 637, 638, 639, 640, 641, 644, 645, 651, 663, 664, 668, 670, 675, 676, 678, 685, 691, 692, 693, 694, 707, 708, 709, 711, 712, 715, 719, 722, 724, 737, 744, 745, 748, 755, 756, 757, 762, 763, 764, 765, 767, 768, 776, 778, 779, 782, 784, 786, 787], "target_length": 16, "target_vector": 16, "leav": [16, 541, 568, 732, 794], "primal": 16, "dual": [16, 18, 214, 249, 250, 251, 252, 275, 352, 353, 354, 355, 437, 658, 715], "function": [16, 38, 39, 55, 56, 59, 60, 67, 68, 96, 97, 100, 101, 102, 163, 164, 165, 175, 200, 201, 219, 220, 224, 225, 253, 254, 270, 271, 274, 276, 283, 284, 312, 313, 316, 317, 319, 386, 387, 388, 398, 423, 424, 442, 443, 447, 448, 473, 474, 492, 493, 496, 497, 504, 505, 533, 534, 537, 538, 540, 607, 608, 609, 619, 644, 645, 663, 664, 668, 669, 693, 694, 707, 708, 709, 710, 744, 745, 755, 756, 758, 768, 802], "appli": [16, 715, 791, 793], "side": [16, 171, 394, 615], "arrai": [16, 17, 23, 32, 35, 79, 146, 208, 232, 242, 246, 295, 368, 431, 456, 465, 470, 516, 587, 652, 677, 684, 689, 698, 738, 749], "like": [16, 23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 722, 776], "neighbour": 16, "per": [16, 55, 56, 57, 96, 97, 98, 220, 221, 270, 271, 272, 312, 313, 314, 443, 444, 492, 493, 494, 533, 534, 535, 664, 665, 707, 708, 723, 756], "dict": [16, 21, 22, 39, 54, 56, 59, 60, 68, 95, 97, 100, 101, 114, 116, 117, 130, 142, 169, 190, 191, 192, 195, 196, 197, 201, 207, 208, 218, 220, 224, 225, 230, 231, 254, 259, 269, 271, 274, 275, 276, 284, 311, 313, 316, 317, 332, 334, 335, 348, 364, 392, 413, 414, 415, 418, 419, 420, 424, 430, 431, 441, 443, 447, 448, 454, 455, 474, 491, 493, 496, 497, 505, 532, 534, 537, 538, 553, 555, 556, 571, 583, 613, 634, 635, 636, 639, 640, 641, 645, 651, 652, 662, 664, 668, 669, 675, 676, 694, 698, 706, 708, 709, 710, 721, 724, 727, 728, 745, 748, 749, 754, 756, 757, 758, 784, 785, 786, 787], "index": [16, 90, 91, 92, 93, 130, 208, 306, 307, 308, 309, 348, 431, 479, 480, 527, 528, 529, 530, 571, 652, 698, 727, 728, 749], "pair": [16, 38, 39, 59, 68, 100, 105, 117, 130, 174, 195, 196, 197, 201, 207, 208, 224, 253, 254, 274, 275, 284, 316, 323, 335, 348, 397, 418, 419, 420, 424, 430, 431, 447, 473, 474, 491, 496, 505, 537, 544, 556, 571, 618, 639, 640, 641, 645, 651, 652, 668, 686, 691, 693, 694, 698, 709, 714, 716, 719, 724, 725, 727, 728, 731, 745, 748, 749, 757, 773, 775], "spars": [16, 17], "csr": [16, 17, 23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 677, 684, 689, 738], "format": [16, 23, 32, 35, 79, 146, 162, 170, 181, 232, 242, 246, 295, 368, 385, 393, 404, 456, 465, 470, 516, 587, 606, 614, 625, 677, 684, 689, 738, 766, 770], "node": [16, 214, 437, 658, 675, 676, 677, 683, 687, 688, 690, 691, 692, 693, 706, 709, 710, 716, 721, 723, 724, 725, 726, 728, 729, 732, 733, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 755, 756, 757, 758, 760, 767, 768, 769, 775, 778, 785, 787, 792, 793, 794], "an": [16, 21, 22, 27, 33, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 51, 53, 55, 56, 67, 96, 97, 103, 104, 107, 111, 134, 137, 153, 167, 172, 173, 175, 176, 181, 190, 198, 200, 214, 219, 220, 230, 231, 233, 237, 244, 253, 254, 255, 256, 257, 258, 260, 261, 263, 264, 266, 268, 270, 271, 283, 312, 313, 321, 322, 325, 329, 356, 359, 375, 390, 395, 396, 398, 399, 404, 413, 421, 423, 437, 442, 443, 454, 455, 460, 468, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 485, 486, 488, 490, 491, 492, 493, 504, 533, 534, 542, 543, 546, 550, 575, 578, 596, 611, 616, 617, 619, 620, 625, 634, 642, 644, 658, 663, 664, 675, 676, 685, 691, 693, 694, 695, 696, 697, 699, 700, 701, 702, 704, 705, 707, 708, 710, 715, 717, 718, 722, 734, 744, 755, 756, 771, 772, 776, 784, 788, 791, 792, 795, 797, 799, 800, 801], "consid": 16, "target": [16, 252], "length": [16, 45, 66, 74, 76, 166, 260, 282, 290, 292, 389, 482, 503, 511, 513, 610, 699, 769, 794], "empti": [16, 39, 56, 68, 97, 132, 133, 135, 201, 220, 254, 271, 284, 313, 350, 351, 357, 424, 443, 474, 493, 505, 534, 573, 574, 576, 645, 664, 694, 708, 745], "place": [16, 17, 19, 102, 145, 154, 155, 183, 184, 189, 226, 228, 243, 319, 367, 377, 378, 406, 407, 412, 449, 452, 540, 568, 586, 598, 599, 627, 628, 633, 670, 673, 737], "Or": 16, "geometr": [16, 105, 107, 115, 117, 175, 207, 226, 323, 325, 333, 335, 398, 430, 449, 544, 546, 554, 556, 619, 651, 670, 722, 724, 748, 795, 799, 800, 801], "becom": 16, "object": [16, 19, 21, 22, 33, 34, 36, 38, 55, 67, 96, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 153, 156, 164, 165, 169, 171, 172, 173, 176, 177, 194, 198, 200, 219, 228, 230, 231, 244, 245, 247, 253, 270, 283, 312, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 375, 379, 387, 388, 392, 394, 395, 396, 399, 400, 417, 421, 423, 442, 452, 454, 455, 468, 469, 471, 473, 492, 504, 533, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 596, 600, 608, 609, 613, 615, 616, 617, 620, 621, 638, 642, 644, 663, 673, 685, 686, 693, 712, 714, 715, 717, 718, 719, 721, 722, 723, 731, 734, 736, 768, 771, 772, 776, 788], "corrspond": 16, "while": 16, "impos": [16, 801], "satisfi": 16, "assum": [16, 686, 714, 731], "posit": [16, 153, 163, 166, 171, 375, 386, 389, 394, 596, 607, 610, 615, 769, 792], "interchag": 16, "taken": [16, 725], "p": [16, 799, 801, 802], "j": [16, 79, 146, 295, 368, 516, 587, 799, 800, 801], "direct": [16, 41, 49, 54, 102, 106, 121, 138, 153, 159, 160, 214, 256, 264, 269, 319, 324, 339, 360, 375, 382, 383, 437, 476, 486, 540, 545, 560, 579, 596, 603, 604, 658, 679, 696, 702, 715, 720, 725, 764, 765, 791, 792, 795, 798, 801], "n": [16, 90, 91, 92, 93, 146, 167, 306, 307, 308, 309, 368, 390, 527, 528, 529, 530, 587, 611, 753, 791, 792], "we": [16, 794, 799, 800], "write": [16, 175, 176, 177, 181, 398, 399, 400, 404, 619, 620, 621, 625, 776], "r": [16, 801], "q": [16, 17, 480, 793], "displaystyl": 16, "sum_": 16, "1": [16, 21, 22, 27, 49, 50, 63, 64, 79, 82, 88, 90, 91, 92, 93, 145, 146, 147, 153, 162, 163, 166, 167, 171, 183, 184, 203, 212, 217, 230, 231, 237, 264, 265, 279, 280, 295, 298, 304, 306, 307, 308, 309, 367, 368, 369, 375, 385, 386, 389, 390, 394, 406, 407, 426, 435, 440, 454, 455, 460, 486, 487, 500, 501, 516, 519, 525, 527, 528, 529, 530, 586, 587, 590, 596, 606, 607, 610, 611, 615, 627, 628, 647, 656, 661, 676, 679, 702, 703, 738, 740, 750, 753, 766, 769, 791, 792, 793, 794, 795, 802], "quad": [16, 139, 147, 154, 169, 361, 369, 377, 392, 580, 590, 598, 613], "equat": [16, 799, 800], "normal": [16, 84, 85, 153, 171, 215, 300, 301, 375, 394, 438, 521, 522, 596, 615, 659, 738], "dep": 17, "full": [17, 175, 398, 619], "mesh": [18, 20, 21, 22, 23, 24, 25, 26, 27, 32, 34, 35, 36, 37, 54, 57, 62, 66, 76, 79, 89, 95, 98, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 125, 126, 127, 128, 132, 133, 135, 137, 138, 139, 140, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 189, 193, 194, 203, 214, 218, 221, 226, 227, 229, 230, 231, 232, 234, 235, 236, 237, 242, 245, 246, 247, 248, 269, 272, 278, 282, 292, 295, 305, 311, 314, 319, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 343, 344, 345, 346, 350, 351, 357, 359, 360, 361, 362, 363, 364, 367, 368, 369, 370, 371, 372, 373, 374, 375, 377, 378, 379, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 412, 416, 417, 426, 437, 441, 444, 449, 451, 453, 454, 455, 456, 457, 458, 459, 460, 465, 469, 470, 471, 472, 491, 494, 499, 503, 513, 516, 526, 532, 535, 540, 541, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 564, 565, 566, 567, 573, 574, 576, 578, 579, 580, 581, 582, 583, 586, 587, 590, 591, 592, 593, 594, 595, 596, 598, 599, 600, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 633, 637, 638, 647, 658, 662, 665, 670, 766, 768], "basic": [18, 790, 795, 801], "data": [18, 26, 33, 54, 59, 60, 95, 100, 101, 103, 104, 107, 108, 109, 115, 147, 162, 172, 173, 175, 185, 186, 198, 218, 224, 225, 227, 236, 244, 269, 274, 275, 276, 311, 316, 317, 321, 322, 325, 326, 327, 333, 369, 385, 395, 396, 398, 408, 409, 421, 441, 447, 448, 451, 459, 468, 491, 496, 497, 532, 537, 538, 542, 543, 546, 547, 548, 554, 590, 606, 616, 617, 619, 629, 630, 642, 662, 668, 669, 678, 685, 706, 709, 710, 717, 718, 722, 737, 754, 757, 758, 766, 771, 772, 779, 780, 781, 788], "construct": [18, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 163, 198, 214, 259, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 376, 386, 421, 437, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 607, 642, 658, 677, 684, 689, 717, 718, 719, 721, 722, 723, 738, 788, 792, 794, 799, 801, 802], "method": [18, 19, 36, 37, 54, 76, 113, 125, 227, 228, 247, 248, 269, 292, 331, 343, 451, 452, 471, 472, 513, 552, 564, 672, 673, 795, 799, 800, 801], "inherit": [18, 227, 451, 672], "convert": [19, 111, 117, 154, 155, 172, 173, 178, 179, 180, 181, 207, 228, 329, 335, 377, 378, 395, 396, 401, 402, 403, 404, 430, 452, 541, 550, 556, 598, 599, 616, 617, 622, 623, 624, 625, 651, 673, 719, 724, 748, 771, 772], "instanc": [19, 27, 103, 104, 166, 167, 228, 237, 321, 322, 389, 390, 452, 460, 542, 543, 610, 611, 673, 716, 717, 718, 720, 774], "string": [19, 104, 111, 117, 155, 173, 207, 228, 322, 329, 335, 378, 396, 430, 452, 543, 550, 556, 599, 617, 651, 673, 718, 719, 722, 724, 748, 772, 776], "exist": [19, 38, 39, 55, 56, 67, 68, 79, 96, 97, 120, 125, 126, 142, 190, 191, 192, 200, 201, 219, 220, 228, 249, 253, 254, 270, 271, 283, 284, 295, 312, 313, 338, 343, 344, 364, 413, 414, 415, 423, 424, 442, 443, 452, 473, 474, 492, 493, 504, 505, 516, 533, 534, 559, 564, 565, 583, 634, 635, 636, 644, 645, 663, 664, 673, 693, 694, 707, 708, 730, 734, 744, 745, 755, 756, 767, 784, 785, 800], "net": [19, 228, 452, 673, 799], "compat": [19, 138, 228, 360, 452, 579, 673], "ironpython": [19, 228, 452, 673], "implicit": [19, 228, 452, 673], "convers": [19, 228, 452, 673], "usual": [19, 228, 452, 673], "take": [19, 60, 72, 101, 202, 225, 228, 276, 288, 317, 425, 448, 452, 497, 509, 538, 646, 669, 673, 710, 715, 758], "cpython": [19, 228, 452, 673], "kick": [19, 228, 452, 673], "its": [19, 27, 62, 83, 100, 101, 111, 146, 165, 166, 172, 173, 209, 224, 225, 228, 237, 278, 299, 316, 317, 329, 368, 388, 389, 395, 396, 432, 447, 448, 452, 460, 499, 520, 537, 538, 541, 550, 587, 609, 610, 616, 617, 653, 668, 669, 673, 675, 676, 706, 709, 710, 713, 750, 757, 758, 768, 769, 771, 772, 791, 793, 799, 801, 802], "print": [19, 170, 172, 173, 228, 393, 395, 396, 452, 614, 616, 617, 673, 771, 772], "gettyp": [19, 228, 452, 673], "fullnam": [19, 228, 452, 673], "similar": [19, 228, 452, 673], "overrid": [19, 228, 452, 673], "make": [19, 33, 76, 228, 244, 292, 452, 468, 513, 673, 685, 791, 793, 795], "rhino": [19, 228, 452, 673], "grasshopp": [19, 228, 452, 673], "displai": [19, 228, 452, 673, 791, 793], "proper": [19, 228, 452, 673], "represent": [19, 172, 173, 228, 395, 396, 452, 616, 617, 673, 771, 772, 801], "panel": [19, 228, 452, 673, 792], "other": [19, 113, 143, 145, 214, 228, 331, 365, 367, 437, 452, 552, 584, 586, 658, 673, 797, 801], "type": [19, 21, 33, 66, 79, 89, 103, 104, 146, 198, 228, 230, 244, 282, 295, 305, 321, 322, 368, 421, 452, 454, 468, 503, 516, 526, 542, 543, 587, 642, 673, 676, 685, 715, 717, 718, 788], "output": [19, 228, 452, 673, 793], "calcul": [20, 24, 25, 61, 148, 152, 229, 234, 235, 277, 370, 374, 453, 457, 458, 498, 591, 595, 674, 761, 799], "axi": [20, 28, 79, 157, 158, 229, 238, 295, 380, 381, 453, 461, 516, 601, 602, 674, 680, 762, 763], "align": [20, 28, 229, 238, 453, 461, 674, 680], "bound": [20, 28, 29, 152, 229, 238, 239, 374, 453, 461, 462, 595, 674, 680, 681, 761], "box": [20, 28, 29, 145, 152, 163, 229, 238, 239, 367, 374, 386, 453, 461, 462, 586, 595, 607, 674, 680, 681, 761, 791, 792], "compa": [20, 22, 27, 28, 29, 33, 41, 42, 46, 49, 51, 53, 62, 69, 70, 71, 77, 79, 84, 85, 86, 87, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 145, 146, 147, 152, 153, 155, 157, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 181, 183, 184, 187, 188, 193, 194, 209, 213, 215, 216, 223, 226, 229, 231, 237, 238, 239, 244, 256, 257, 261, 264, 266, 268, 278, 285, 286, 287, 293, 295, 300, 301, 302, 303, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 367, 368, 369, 374, 375, 378, 380, 381, 384, 385, 386, 387, 388, 389, 390, 391, 392, 394, 404, 406, 407, 410, 411, 416, 417, 432, 436, 438, 439, 446, 449, 453, 455, 460, 461, 462, 468, 476, 477, 483, 486, 488, 490, 499, 506, 507, 508, 514, 516, 521, 522, 523, 524, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 586, 587, 590, 595, 596, 599, 601, 602, 605, 606, 607, 608, 609, 610, 611, 612, 613, 615, 625, 627, 628, 631, 632, 637, 638, 653, 657, 659, 660, 667, 670, 674, 679, 680, 681, 685, 686, 696, 697, 700, 701, 702, 704, 705, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 730, 731, 734, 736, 737, 748, 750, 751, 752, 761, 762, 763, 766, 767, 782, 783, 791, 792, 794], "fkei": [21, 36, 65, 66, 69, 70, 72, 73, 74, 75, 76, 78, 79, 83, 84, 86, 89, 90, 91, 92, 93, 94, 95, 126, 131, 167, 194, 203, 230, 247, 281, 282, 285, 286, 288, 289, 290, 291, 292, 294, 295, 299, 300, 302, 305, 306, 307, 308, 309, 310, 311, 344, 349, 390, 417, 426, 454, 471, 502, 503, 506, 507, 509, 510, 511, 512, 513, 515, 516, 520, 521, 523, 526, 527, 528, 529, 530, 531, 532, 565, 572, 611, 638, 647], "attr_dict": [21, 22, 195, 196, 197, 230, 231, 418, 419, 420, 454, 455, 639, 640, 641, 675, 676, 786, 787], "kwattr": [21, 22, 195, 196, 197, 230, 231, 418, 419, 420, 454, 455, 639, 640, 641, 675, 676, 786, 787], "add": [21, 22, 145, 230, 231, 367, 454, 455, 586, 675, 676, 791, 792, 794], "face": [21, 30, 36, 43, 52, 54, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 112, 113, 116, 118, 119, 120, 124, 126, 131, 136, 137, 138, 140, 142, 145, 147, 150, 154, 155, 162, 164, 167, 168, 175, 181, 182, 191, 194, 196, 203, 206, 214, 215, 218, 230, 240, 247, 258, 267, 269, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 312, 313, 314, 315, 316, 317, 319, 323, 324, 325, 330, 331, 334, 336, 337, 338, 342, 344, 349, 358, 359, 360, 362, 364, 367, 369, 372, 377, 378, 385, 387, 390, 391, 398, 404, 405, 414, 417, 419, 426, 429, 437, 438, 441, 454, 463, 471, 478, 489, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 533, 534, 535, 536, 537, 538, 540, 541, 544, 545, 546, 551, 552, 555, 557, 558, 559, 563, 565, 572, 577, 578, 579, 581, 583, 586, 590, 593, 598, 599, 606, 608, 611, 612, 619, 625, 626, 635, 638, 640, 647, 650, 658, 659, 662, 715, 766], "kei": [21, 22, 37, 55, 56, 59, 66, 67, 68, 74, 82, 89, 90, 91, 92, 93, 96, 97, 100, 116, 117, 125, 127, 128, 131, 136, 143, 144, 155, 166, 167, 191, 192, 193, 195, 196, 197, 199, 200, 201, 202, 203, 204, 206, 207, 209, 212, 213, 214, 215, 216, 218, 219, 220, 221, 224, 230, 231, 248, 270, 271, 274, 275, 282, 283, 284, 290, 298, 305, 306, 307, 308, 309, 312, 313, 316, 334, 335, 343, 345, 346, 349, 358, 365, 366, 378, 389, 390, 414, 415, 416, 418, 419, 420, 422, 423, 424, 425, 426, 427, 429, 430, 432, 435, 436, 437, 438, 439, 441, 442, 443, 444, 447, 454, 455, 472, 492, 493, 496, 503, 504, 505, 511, 519, 526, 527, 528, 529, 530, 533, 534, 537, 555, 556, 564, 566, 567, 572, 577, 584, 585, 599, 610, 611, 635, 636, 637, 639, 640, 641, 643, 644, 645, 646, 647, 648, 650, 651, 653, 656, 657, 658, 659, 660, 662, 663, 664, 665, 668, 676, 687, 688, 690, 692, 693, 694, 707, 708, 709, 714, 721, 724, 726, 728, 732, 733, 737, 740, 741, 742, 743, 744, 745, 746, 747, 748, 750, 751, 754, 755, 756, 757, 769, 784, 785, 792, 793, 794], "str": [21, 22, 38, 39, 40, 54, 55, 56, 59, 60, 67, 68, 72, 95, 96, 97, 100, 101, 103, 104, 105, 107, 108, 109, 114, 115, 117, 162, 169, 170, 172, 173, 175, 176, 177, 181, 190, 191, 192, 195, 196, 197, 200, 201, 202, 207, 218, 219, 220, 224, 225, 230, 231, 253, 254, 255, 269, 270, 271, 274, 276, 283, 284, 288, 311, 312, 313, 316, 317, 321, 322, 323, 325, 326, 327, 332, 333, 335, 385, 392, 393, 395, 396, 398, 399, 400, 404, 413, 414, 415, 418, 419, 420, 423, 424, 425, 430, 441, 442, 443, 447, 448, 454, 455, 473, 474, 475, 492, 493, 496, 497, 504, 505, 509, 532, 533, 534, 537, 538, 542, 543, 544, 546, 547, 548, 553, 554, 556, 606, 613, 614, 616, 617, 619, 620, 621, 625, 634, 635, 636, 639, 640, 641, 644, 645, 646, 651, 662, 663, 664, 668, 669, 675, 676, 693, 694, 695, 706, 707, 708, 709, 710, 717, 718, 722, 724, 744, 745, 746, 748, 754, 755, 756, 757, 758, 766, 770, 771, 772, 784, 785, 786, 787, 793], "dictionari": [21, 22, 39, 68, 116, 117, 130, 195, 196, 197, 201, 207, 208, 230, 231, 254, 284, 334, 335, 348, 418, 419, 420, 424, 430, 431, 454, 455, 474, 505, 555, 556, 571, 639, 640, 641, 645, 651, 652, 675, 676, 694, 698, 721, 724, 727, 728, 745, 748, 749, 786, 787], "addit": [21, 22, 52, 54, 59, 60, 95, 100, 101, 131, 169, 218, 224, 225, 230, 231, 267, 269, 274, 276, 311, 316, 317, 349, 392, 441, 447, 448, 454, 455, 489, 496, 497, 532, 537, 538, 572, 613, 662, 668, 669, 675, 676, 706, 709, 710, 754, 757, 758, 786, 787, 800], "compil": [21, 22, 195, 196, 197, 230, 231, 418, 419, 420, 454, 455, 639, 640, 641, 675, 676, 786, 787], "remain": [21, 22, 36, 37, 54, 195, 196, 197, 230, 231, 247, 248, 269, 418, 419, 420, 454, 455, 471, 472, 639, 640, 641, 675, 676, 786, 787], "name": [21, 22, 38, 39, 55, 56, 59, 67, 68, 96, 97, 100, 190, 191, 192, 195, 196, 197, 200, 201, 219, 220, 224, 230, 231, 253, 254, 270, 271, 274, 275, 283, 284, 312, 313, 316, 413, 414, 415, 418, 419, 420, 423, 424, 442, 443, 447, 454, 455, 473, 474, 492, 493, 496, 504, 505, 533, 534, 537, 634, 635, 636, 639, 640, 641, 644, 645, 663, 664, 668, 675, 676, 693, 694, 707, 708, 709, 744, 745, 755, 756, 757, 784, 785, 786, 787, 791, 792], "argument": [21, 22, 59, 100, 114, 164, 165, 169, 195, 196, 197, 224, 230, 231, 274, 316, 332, 387, 388, 392, 418, 419, 420, 447, 454, 455, 496, 537, 553, 608, 609, 613, 639, 640, 641, 668, 675, 676, 709, 768, 786, 787], "rais": [21, 27, 38, 39, 55, 56, 67, 68, 76, 90, 91, 92, 93, 96, 97, 103, 104, 120, 164, 165, 166, 167, 169, 171, 190, 191, 192, 200, 201, 219, 220, 230, 237, 253, 254, 270, 271, 283, 284, 292, 306, 307, 308, 309, 312, 313, 321, 322, 338, 387, 388, 389, 390, 392, 394, 413, 414, 415, 423, 424, 442, 443, 454, 460, 473, 474, 492, 493, 504, 505, 513, 527, 528, 529, 530, 533, 534, 542, 543, 559, 608, 609, 610, 611, 613, 615, 634, 635, 636, 644, 645, 663, 664, 693, 694, 707, 708, 712, 717, 718, 734, 744, 745, 755, 756, 768, 769, 784, 785], "typeerror": [21, 103, 104, 230, 321, 322, 454, 542, 543, 717, 718], "provid": [21, 22, 39, 59, 68, 100, 164, 165, 220, 224, 230, 231, 254, 259, 274, 284, 316, 387, 388, 443, 447, 454, 455, 474, 480, 496, 505, 537, 608, 609, 664, 668, 676, 694, 709, 756, 768, 797, 799, 801], "unhash": [21, 230, 454], "add_vertex": [21, 36, 37, 155, 230, 247, 248, 378, 454, 471, 472, 599], "delete_fac": [21, 22, 37, 230, 231, 248, 454, 455, 472], "delete_vertex": [21, 22, 34, 36, 156, 230, 231, 245, 247, 379, 454, 455, 469, 471, 600], "one": [21, 22, 43, 63, 137, 143, 230, 231, 258, 279, 359, 365, 454, 455, 478, 480, 500, 578, 584, 589, 676, 731, 732, 791], "integ": [21, 22, 230, 231, 454, 455, 676], "increment": [21, 22, 230, 231, 454, 455, 676], "highest": [21, 22, 80, 210, 230, 231, 296, 433, 454, 455, 517, 654, 676], "so": [21, 22, 230, 231, 454, 455, 797], "far": [21, 22, 230, 231, 454, 455], "higher": [21, 22, 230, 231, 454, 455], "current": [21, 22, 33, 145, 230, 231, 244, 367, 454, 455, 468, 479, 480, 586, 685, 735, 738], "accordingli": [21, 22, 230, 231, 454, 455, 792], "add_fac": [22, 36, 37, 231, 247, 248, 455, 471, 472], "datastructur": [22, 27, 28, 29, 62, 79, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 145, 146, 147, 153, 155, 157, 159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 181, 183, 184, 185, 186, 187, 188, 193, 194, 231, 237, 238, 239, 278, 295, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 367, 368, 369, 375, 378, 380, 382, 385, 386, 387, 388, 389, 390, 391, 392, 394, 404, 406, 407, 408, 409, 410, 411, 416, 417, 455, 460, 461, 462, 499, 516, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 586, 587, 590, 596, 599, 601, 603, 606, 607, 608, 609, 610, 611, 612, 613, 615, 625, 627, 628, 629, 630, 631, 632, 637, 638, 677, 679, 680, 681, 684, 686, 689, 712, 713, 714, 715, 716, 719, 720, 721, 722, 723, 730, 731, 734, 736, 738, 762, 764, 766, 780, 781, 782, 783], "import": [22, 79, 145, 146, 147, 153, 155, 162, 163, 167, 171, 183, 184, 231, 295, 367, 368, 369, 375, 378, 385, 386, 390, 394, 406, 407, 455, 516, 586, 587, 590, 596, 599, 606, 607, 611, 615, 627, 628, 679, 730, 766, 791, 792, 793, 794], "z": [22, 72, 110, 155, 157, 158, 159, 160, 162, 202, 231, 288, 328, 378, 380, 381, 382, 383, 385, 425, 455, 509, 549, 599, 601, 602, 603, 604, 606, 646, 736, 762, 763, 764, 765, 766], "2": [22, 63, 64, 76, 101, 145, 147, 153, 163, 167, 171, 225, 231, 275, 279, 280, 292, 317, 367, 369, 375, 386, 390, 394, 448, 455, 500, 501, 513, 538, 586, 590, 596, 607, 611, 615, 669, 710, 758, 791, 793, 795], "rtype": [23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 677, 684, 689, 738], "adjac": [23, 43, 63, 64, 138, 232, 258, 279, 280, 360, 456, 478, 500, 501, 579, 677], "liter": [23, 32, 35, 79, 146, 169, 232, 242, 246, 295, 368, 392, 456, 465, 470, 516, 587, 613, 677, 684, 689, 738], "csc": [23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 677, 684, 689, 738], "coo": [23, 32, 35, 79, 146, 232, 242, 246, 295, 368, 456, 465, 470, 516, 587, 677, 684, 689, 738], "result": [23, 32, 35, 79, 125, 146, 163, 214, 232, 242, 246, 295, 343, 368, 386, 437, 456, 465, 470, 516, 564, 587, 607, 658, 677, 684, 689, 738, 792, 793, 794, 795], "total": [24, 234, 457], "5": [27, 49, 147, 155, 164, 165, 166, 237, 264, 369, 378, 387, 388, 389, 460, 486, 590, 599, 608, 609, 610, 702, 768, 769, 791, 792, 793, 794], "allow_boundari": [27, 166, 237, 389, 460, 610], "fals": [27, 52, 54, 59, 60, 95, 100, 101, 105, 125, 126, 127, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 154, 162, 166, 172, 173, 175, 181, 182, 206, 214, 218, 224, 225, 237, 267, 269, 274, 275, 276, 311, 316, 317, 323, 343, 344, 345, 346, 349, 350, 351, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 377, 385, 389, 395, 396, 398, 404, 405, 429, 437, 441, 447, 448, 460, 489, 491, 496, 497, 532, 537, 538, 544, 564, 565, 566, 567, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 598, 606, 610, 616, 617, 619, 625, 626, 650, 658, 662, 668, 669, 679, 706, 709, 710, 712, 725, 726, 730, 731, 732, 733, 734, 736, 738, 754, 757, 758, 766, 771, 772, 791, 792, 793], "collaps": [27, 237, 460], "second": [27, 60, 63, 64, 167, 237, 276, 279, 280, 390, 460, 497, 500, 501, 611, 675], "intermedi": [27, 237, 460], "tupl": [27, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 78, 95, 100, 101, 105, 118, 119, 120, 121, 122, 123, 124, 125, 127, 131, 134, 163, 166, 167, 168, 174, 190, 193, 205, 218, 224, 225, 237, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 279, 294, 311, 316, 317, 323, 336, 337, 338, 339, 340, 341, 342, 343, 345, 349, 352, 353, 354, 355, 356, 386, 389, 390, 391, 397, 413, 416, 428, 441, 447, 448, 460, 473, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 500, 515, 532, 537, 538, 544, 557, 558, 559, 560, 561, 562, 563, 564, 566, 572, 575, 607, 610, 611, 612, 618, 634, 637, 649, 662, 668, 669, 675, 682, 691, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 714, 716, 719, 721, 725, 727, 747, 754, 757, 758, 769, 773, 775, 784], "where": [27, 79, 194, 237, 295, 417, 460, 516, 638, 715, 800], "start": [27, 40, 47, 51, 52, 105, 118, 119, 121, 122, 123, 124, 174, 214, 237, 255, 262, 266, 267, 323, 336, 337, 339, 340, 341, 342, 397, 437, 460, 475, 484, 488, 489, 544, 557, 558, 560, 561, 562, 563, 618, 658, 695, 704, 705, 719, 767, 773, 791, 792], "between": [27, 66, 76, 79, 166, 167, 175, 237, 259, 282, 292, 295, 389, 390, 398, 460, 503, 513, 516, 610, 611, 619, 715, 723, 767, 795, 799, 801], "bool": [27, 52, 54, 59, 60, 84, 95, 100, 101, 105, 125, 126, 127, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 154, 162, 166, 171, 172, 173, 175, 181, 182, 206, 214, 218, 224, 225, 237, 267, 269, 274, 275, 276, 300, 311, 316, 317, 323, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 377, 385, 389, 394, 395, 396, 398, 404, 405, 429, 437, 441, 447, 448, 460, 489, 491, 496, 497, 521, 532, 537, 538, 544, 564, 565, 566, 567, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 598, 606, 610, 615, 616, 617, 619, 625, 626, 650, 658, 662, 668, 669, 706, 709, 710, 711, 712, 725, 726, 729, 730, 731, 732, 733, 734, 736, 738, 754, 757, 758, 766, 771, 772], "true": [27, 54, 59, 60, 79, 84, 95, 100, 101, 125, 126, 127, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 162, 163, 166, 171, 172, 173, 175, 181, 182, 206, 214, 218, 224, 225, 237, 269, 274, 275, 276, 295, 300, 311, 316, 317, 343, 344, 345, 346, 349, 350, 351, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 385, 386, 389, 394, 395, 396, 398, 404, 405, 429, 437, 441, 447, 448, 460, 491, 496, 497, 516, 521, 532, 537, 538, 564, 565, 566, 567, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 606, 607, 610, 615, 616, 617, 619, 625, 626, 650, 658, 662, 668, 669, 706, 709, 710, 711, 712, 725, 726, 730, 731, 732, 733, 734, 736, 738, 754, 757, 758, 766, 771, 772, 792, 793], "allow": [27, 76, 237, 292, 460, 513, 795, 800, 801, 802], "boundari": [27, 43, 57, 58, 98, 99, 113, 120, 134, 136, 144, 166, 214, 221, 222, 237, 258, 272, 273, 314, 315, 331, 338, 356, 358, 366, 389, 437, 444, 445, 460, 478, 494, 495, 535, 536, 552, 559, 575, 577, 585, 610, 658, 665, 666, 793, 802], "stai": [27, 237, 460], "valueerror": [27, 90, 91, 92, 93, 166, 167, 169, 171, 237, 306, 307, 308, 309, 389, 390, 392, 394, 460, 527, 528, 529, 530, 610, 611, 613, 615, 769], "part": [27, 62, 79, 90, 91, 92, 93, 126, 127, 237, 278, 295, 306, 307, 308, 309, 344, 345, 460, 499, 516, 527, 528, 529, 530, 565, 566, 769], "orient": [29, 63, 138, 152, 153, 239, 279, 360, 374, 375, 462, 500, 579, 595, 596, 681, 761], "find": [30, 31, 43, 47, 52, 57, 58, 63, 64, 98, 99, 102, 105, 118, 119, 120, 121, 122, 123, 124, 205, 221, 222, 240, 241, 249, 258, 262, 267, 272, 273, 279, 280, 314, 315, 319, 323, 336, 337, 338, 339, 340, 341, 342, 428, 444, 445, 463, 464, 478, 484, 489, 494, 495, 500, 501, 535, 536, 540, 541, 544, 557, 558, 559, 560, 561, 562, 563, 649, 665, 666, 715, 767, 794, 802], "group": [30, 31, 98, 240, 241, 314, 463, 464, 535, 682, 683, 797], "cl": [33, 244, 468, 685], "remov": [34, 36, 37, 113, 155, 156, 245, 247, 248, 331, 378, 379, 469, 471, 472, 552, 599, 600], "unus": [34, 156, 245, 379, 469, 600], "delet": [36, 37, 105, 247, 248, 323, 471, 472, 544, 691, 692], "disconnect": [36, 37, 247, 248, 471, 472], "To": [36, 37, 247, 248, 471, 472, 796], "well": [36, 37, 247, 248, 471, 472, 795, 801], "cull": [36, 37, 247, 248, 471, 472], "cull_vertic": [36, 37, 247, 248, 471, 472], "everyth": [37, 248, 472], "attach": [37, 248, 472], "get": [38, 39, 55, 56, 59, 60, 67, 68, 96, 97, 100, 101, 113, 155, 162, 167, 200, 201, 219, 220, 224, 225, 233, 253, 254, 270, 271, 274, 275, 276, 283, 284, 312, 313, 316, 317, 331, 378, 385, 390, 423, 424, 442, 443, 447, 448, 473, 474, 479, 480, 492, 493, 496, 497, 504, 505, 533, 534, 537, 538, 552, 599, 606, 611, 644, 645, 663, 664, 668, 669, 679, 682, 683, 693, 694, 703, 707, 708, 709, 710, 730, 744, 745, 753, 755, 756, 757, 758, 766, 791, 792, 794], "setter": [38, 39, 55, 56, 67, 68, 96, 97, 200, 201, 219, 220, 253, 254, 270, 271, 283, 284, 312, 313, 423, 424, 442, 443, 473, 474, 492, 493, 504, 505, 533, 534, 644, 645, 663, 664, 693, 694, 707, 708, 744, 745, 755, 756], "keyerror": [38, 39, 55, 56, 67, 68, 96, 97, 120, 190, 191, 192, 200, 201, 219, 220, 253, 254, 270, 271, 283, 284, 312, 313, 338, 413, 414, 415, 423, 424, 442, 443, 473, 474, 492, 493, 504, 505, 533, 534, 559, 634, 635, 636, 644, 645, 663, 664, 693, 694, 707, 708, 744, 745, 755, 756, 784, 785], "edges_attribut": [38, 39, 96, 97, 190, 219, 220, 253, 254, 312, 313, 413, 442, 443, 473, 474, 533, 534, 634, 663, 664, 693, 694, 744, 745, 755, 756], "unset_edge_attribut": [38, 191, 192, 253, 414, 415, 473, 635, 636, 693], "vertex_attribut": [38, 39, 55, 56, 67, 68, 162, 192, 219, 220, 253, 254, 270, 271, 283, 284, 385, 415, 442, 443, 473, 474, 492, 493, 504, 505, 606, 636, 663, 664, 766, 793], "face_attribut": [38, 39, 55, 56, 96, 97, 191, 200, 201, 253, 254, 270, 271, 312, 313, 414, 423, 424, 473, 474, 492, 493, 533, 534, 635, 644, 645], "multipl": [39, 55, 56, 68, 96, 97, 201, 219, 220, 223, 254, 270, 271, 284, 312, 313, 424, 442, 443, 446, 474, 492, 493, 505, 533, 534, 645, 663, 664, 667, 694, 707, 708, 745, 755, 756], "ax": [40, 72, 202, 255, 288, 425, 475, 509, 646, 695, 746], "xyz": [40, 48, 72, 79, 110, 111, 116, 131, 146, 155, 182, 202, 255, 263, 288, 295, 328, 329, 334, 349, 368, 378, 405, 425, 475, 485, 509, 516, 549, 550, 555, 572, 587, 599, 626, 646, 695, 738, 746, 775, 791, 792, 794], "along": [40, 49, 72, 166, 193, 202, 255, 264, 288, 389, 416, 425, 475, 486, 509, 610, 637, 646, 695, 702, 769], "includ": [40, 206, 212, 255, 429, 435, 475, 650, 656, 695, 792, 797], "two": [43, 63, 64, 137, 138, 147, 167, 258, 279, 280, 359, 360, 369, 390, 478, 500, 501, 578, 579, 590, 611, 712, 714, 730, 737, 767, 795, 801], "same": [47, 52, 118, 119, 121, 122, 123, 124, 140, 153, 168, 262, 267, 336, 337, 339, 340, 341, 342, 362, 375, 376, 391, 484, 489, 557, 558, 560, 561, 562, 563, 581, 596, 612, 679, 715, 793], "loop": [47, 121, 122, 169, 262, 339, 340, 392, 484, 560, 561, 613], "midpoint": [48, 263, 485, 701], "outsid": [49, 105, 120, 206, 264, 323, 338, 429, 486, 541, 544, 559, 650, 702, 715, 794], "rang": [49, 59, 100, 224, 264, 274, 275, 316, 447, 486, 496, 537, 668, 702, 709, 757, 769], "lie": [49, 264, 486, 702, 729], "random": [50, 88, 217, 265, 304, 440, 487, 525, 661, 703, 723, 753], "sampl": [50, 88, 107, 217, 265, 304, 325, 440, 487, 525, 546, 661, 703, 753], "vertex_sampl": [50, 88, 162, 265, 304, 385, 487, 525, 606, 766], "face_sampl": [50, 167, 217, 265, 390, 440, 487, 611, 661], "return_fac": [52, 267, 489], "strip": [52, 123, 124, 168, 267, 341, 342, 391, 489, 562, 563, 612], "over": [54, 63, 64, 95, 147, 218, 269, 279, 280, 311, 369, 441, 500, 501, 532, 590, 662, 706, 754, 801], "yield": [54, 59, 60, 95, 100, 101, 113, 218, 224, 225, 269, 274, 275, 276, 311, 316, 317, 331, 441, 447, 448, 491, 496, 497, 532, 537, 538, 552, 662, 668, 669, 706, 709, 710, 754, 757, 758], "next": [54, 59, 60, 90, 93, 95, 100, 101, 118, 218, 224, 225, 269, 274, 275, 276, 306, 309, 311, 316, 317, 336, 441, 447, 448, 496, 497, 527, 530, 532, 537, 538, 557, 662, 668, 669, 706, 709, 710, 754, 757, 758, 792], "vertices_wher": [54, 59, 60, 95, 100, 101, 218, 225, 269, 274, 276, 311, 316, 317, 441, 448, 496, 497, 532, 537, 538, 662, 669, 792], "edges_wher": [54, 60, 95, 100, 101, 218, 224, 225, 269, 276, 311, 316, 317, 441, 447, 448, 497, 532, 537, 538, 662, 668, 669, 706, 710, 754, 757, 758], "faces_wher": [54, 59, 60, 95, 101, 218, 224, 225, 269, 274, 276, 311, 317, 441, 447, 448, 496, 497, 532, 538, 662, 668, 669], "topolog": [54, 269], "mean": [54, 90, 91, 92, 93, 269, 306, 307, 308, 309, 527, 528, 529, 530], "creat": [54, 131, 167, 269, 349, 390, 572, 611, 677, 684, 689, 716, 720, 737, 738, 774, 793, 794], "ad": [54, 154, 269, 377, 598], "instead": [54, 269], "access": [54, 269], "unless": [54, 269], "were": [54, 269, 802], "explicitli": [54, 269], "add_edg": [54, 269, 676, 691], "come": [54, 269], "out": [54, 269, 797], "howev": [54, 269], "long": [54, 269, 802], "toplogi": [54, 269], "unchang": [54, 269], "consist": [54, 139, 141, 269, 361, 363, 580, 582, 679], "contain": [55, 56, 96, 97, 103, 104, 125, 220, 270, 271, 312, 313, 321, 322, 343, 443, 492, 493, 533, 534, 542, 543, 564, 664, 707, 708, 717, 718, 722, 725, 756, 795, 799], "request": [55, 56, 96, 97, 201, 270, 271, 312, 313, 424, 492, 493, 533, 534, 645, 707, 708, 745], "edge_attribut": [55, 56, 67, 68, 190, 200, 201, 270, 271, 283, 284, 413, 423, 424, 492, 493, 504, 505, 634, 644, 645, 707, 708, 744, 745, 755, 756, 784, 791, 792, 793], "custom": [56, 97, 271, 313, 493, 534], "longest": [58, 99, 222, 273, 315, 445, 495, 536, 666], "condit": [59, 60, 100, 101, 137, 140, 142, 224, 225, 274, 275, 276, 316, 317, 359, 362, 364, 447, 448, 496, 497, 537, 538, 578, 581, 583, 668, 669, 709, 710, 757, 758, 793, 797, 802], "kwarg": [59, 100, 114, 175, 176, 177, 181, 224, 274, 316, 332, 398, 399, 400, 404, 447, 496, 537, 553, 619, 620, 621, 625, 668, 709, 757], "certain": [59, 60, 100, 101, 117, 207, 224, 225, 274, 275, 276, 316, 317, 335, 430, 447, 448, 496, 497, 537, 538, 556, 651, 668, 669, 709, 710, 724, 748, 757, 758], "min": [59, 100, 224, 274, 275, 316, 447, 496, 537, 668, 709, 757], "max": [59, 100, 224, 274, 275, 316, 447, 496, 537, 668, 709, 757], "vertices_where_pred": [59, 60, 100, 101, 224, 274, 276, 316, 317, 447, 496, 497, 537, 538, 668], "edges_where_pred": [59, 100, 101, 224, 225, 274, 316, 317, 447, 448, 496, 537, 538, 668, 669, 706, 709, 754, 757, 758], "faces_where_pred": [59, 60, 100, 224, 225, 274, 276, 316, 447, 448, 496, 497, 537, 668, 669], "predic": [60, 101, 225, 276, 317, 448, 497, 538, 669, 710, 758], "lambda": [60, 101, 225, 276, 317, 448, 497, 538, 669, 710, 758], "callabl": [60, 101, 164, 165, 225, 276, 317, 387, 388, 448, 497, 538, 608, 609, 669, 710, 758, 768], "you": [60, 101, 225, 276, 317, 448, 497, 538, 669, 710, 758], "want": [60, 101, 225, 276, 317, 448, 497, 538, 669, 710, 758], "evalu": [60, 101, 225, 276, 317, 448, 497, 538, 669, 710, 758, 795], "3": [60, 147, 153, 171, 276, 369, 375, 394, 497, 590, 596, 615, 723, 791, 793, 794, 795], "ot": [60, 276, 497], "characterist": [61, 277, 498], "genu": [61, 277, 498], "compon": [62, 278, 499, 713, 746], "f1": [63, 64, 279, 280, 500, 501], "f2": [63, 64, 279, 280, 500, 501], "half": [63, 279, 500], "separ": [63, 64, 279, 280, 500, 501], "reli": [63, 214, 279, 437, 500, 658, 715, 801], "inform": [63, 279, 500, 716], "further": [63, 279, 500], "check": [63, 154, 279, 377, 500, 541, 598, 734], "relat": [63, 279, 500, 795, 799, 801], "requir": [63, 279, 500, 796, 800], "area": [65, 153, 164, 199, 281, 375, 387, 422, 502, 596, 608, 643], "aspect": [66, 282, 503], "ratio": [66, 76, 282, 292, 503, 513], "minimum": [66, 81, 211, 282, 297, 434, 503, 518, 655, 793], "refer": [66, 89, 146, 203, 259, 282, 305, 368, 426, 503, 526, 587, 647, 679, 795], "wikipedia": [66, 89, 282, 305, 503, 526], "avail": [66, 89, 107, 282, 305, 325, 503, 526, 546, 679, 796], "http": [66, 89, 282, 305, 503, 526, 679, 796], "en": [66, 89, 282, 305, 503, 526], "org": [66, 89, 282, 305, 503, 526], "wiki": [66, 89, 282, 305, 503, 526], "types_of_mesh": [66, 89, 282, 305, 503, 526], "faces_attribut": [67, 68, 191, 219, 220, 283, 284, 414, 442, 443, 504, 505, 635, 663, 664], "unset_face_attribut": [67, 190, 192, 283, 413, 415, 504, 634, 636], "center": [69, 285, 506], "mass": [69, 285, 506], "centroid": [70, 74, 79, 85, 146, 164, 165, 209, 213, 286, 290, 295, 301, 368, 387, 388, 432, 436, 507, 511, 516, 522, 587, 608, 609, 653, 657, 738, 750, 751, 768], "circl": [71, 287, 508, 791, 792], "triplet": [73, 289, 510], "corner": [73, 111, 169, 289, 329, 392, 510, 550, 613], "dimensionless": [74, 203, 290, 426, 511, 647], "curvatur": [74, 153, 203, 290, 375, 426, 511, 596, 647], "deviat": [74, 76, 89, 250, 290, 292, 305, 511, 513, 526], "best": [74, 154, 290, 377, 511, 598], "fit": [74, 290, 511, 797], "plane": [74, 85, 163, 290, 301, 386, 511, 522, 607, 686, 711, 712, 714, 729, 731, 734, 736, 791, 794], "divid": [74, 290, 511], "averag": [74, 76, 148, 215, 290, 292, 370, 438, 511, 513, 591, 659], "neighbor": [75, 83, 146, 165, 166, 167, 204, 209, 213, 214, 215, 291, 299, 368, 388, 389, 390, 427, 432, 436, 437, 438, 512, 520, 587, 609, 610, 611, 648, 653, 657, 658, 659, 687, 688, 690, 715, 732, 740, 742, 743, 751, 768, 794], "maxdev": [76, 292, 513], "02": [76, 292, 513], "flat": [76, 292, 513], "ha": [76, 103, 104, 132, 133, 135, 292, 321, 322, 350, 351, 357, 513, 542, 543, 573, 574, 576, 717, 718, 731, 732, 737, 794, 802], "4": [76, 112, 147, 183, 184, 292, 330, 369, 406, 407, 513, 551, 568, 590, 627, 628, 792, 793, 795], "sens": [76, 292, 513], "quadrilater": [76, 154, 292, 377, 513, 598], "distanc": [76, 153, 292, 375, 513, 596], "diagon": [76, 154, 292, 377, 513, 598, 738], "practic": [76, 292, 513, 801], "limit": [76, 292, 513, 797], "realt": [76, 292, 513], "manufactur": [76, 292, 513], "frame": [77, 169, 293, 392, 514, 613, 791, 799], "halfedg": [78, 118, 119, 120, 121, 122, 123, 124, 127, 142, 294, 336, 337, 338, 339, 340, 341, 342, 345, 364, 515, 557, 558, 559, 560, 561, 562, 563, 566, 583], "repres": [79, 113, 116, 178, 295, 331, 334, 401, 516, 552, 555, 622, 672, 714, 719, 775, 795], "relationship": [79, 295, 516, 801], "row": [79, 295, 516], "column": [79, 295, 516], "fill": [79, 295, 516], "zero": [79, 110, 295, 328, 516, 549, 736], "f_": [79, 295, 516], "ij": [79, 146, 295, 368, 516, 587], "text": [79, 146, 170, 295, 368, 393, 516, 587, 614, 794], "otherwis": [79, 125, 126, 127, 128, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 171, 181, 295, 343, 344, 345, 346, 350, 351, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 368, 394, 404, 479, 480, 491, 516, 564, 565, 566, 567, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 587, 615, 625, 712, 725, 730, 731, 734, 736, 797], "from_polyhedron": [79, 146, 183, 184, 295, 368, 406, 407, 516, 587, 627, 628], "6": [79, 112, 145, 146, 147, 183, 184, 295, 330, 367, 368, 369, 406, 407, 516, 551, 586, 587, 590, 627, 628, 792, 793, 794], "f": [79, 112, 295, 330, 516, 551, 791, 792], "numpi": [79, 146, 184, 295, 368, 407, 516, 587, 628], "ndarrai": [79, 146, 184, 295, 368, 407, 516, 587, 628], "allclos": [79, 295, 516], "asarrai": [79, 146, 295, 368, 516, 587], "vertices_attribut": [79, 96, 97, 146, 155, 192, 200, 201, 295, 312, 313, 368, 378, 415, 423, 424, 516, 533, 534, 587, 599, 636, 644, 645, 791, 792, 793], "c1": [79, 295, 516], "c2": [79, 295, 516], "face_centroid": [79, 295, 516], "lowest": [81, 211, 297, 434, 518, 655, 802], "ring": [82, 212, 298, 435, 519, 656, 740, 750], "neighborhood": [82, 212, 298, 435, 519, 656, 741, 750], "across": [83, 299, 520], "unit": [84, 300, 521], "polygon": [87, 89, 111, 179, 203, 303, 305, 329, 402, 426, 524, 526, 550, 623, 647, 791, 792], "edge_sampl": [88, 217, 304, 440, 525, 661, 753], "skew": [89, 305, 526], "absolut": [89, 305, 526], "angular": [89, 305, 526], "idefault_edge_attributesl": [89, 305, 526], "angl": [89, 154, 157, 158, 250, 305, 377, 380, 381, 526, 598, 601, 602, 762, 763], "th": [90, 91, 92, 93, 306, 307, 308, 309, 527, 528, 529, 530], "specifi": [90, 91, 92, 93, 131, 167, 306, 307, 308, 309, 349, 390, 527, 528, 529, 530, 572, 611, 675, 676, 702, 721], "specif": [90, 91, 92, 93, 113, 125, 131, 306, 307, 308, 309, 331, 343, 349, 527, 528, 529, 530, 552, 564, 572, 715, 725, 726, 733], "descend": [90, 93, 306, 309, 527, 530], "cycl": [90, 91, 92, 93, 102, 138, 189, 206, 214, 306, 307, 308, 309, 319, 360, 412, 429, 437, 527, 528, 529, 530, 540, 541, 579, 633, 650, 658], "befor": [91, 92, 119, 167, 307, 308, 337, 390, 528, 529, 558, 611], "ancestor": [91, 92, 307, 308, 528, 529], "previou": [91, 92, 119, 307, 308, 337, 528, 529, 558, 801], "attr": [95, 218, 311, 441, 532, 662, 706, 709, 710, 754], "sort": [98, 314, 535], "match": [100, 101, 224, 225, 316, 317, 447, 448, 537, 538, 668, 669, 757, 758], "care": [102, 319, 540], "about": [102, 175, 319, 398, 540, 619, 716], "being": [102, 319, 540], "unifi": [102, 138, 189, 319, 360, 412, 540, 579, 633, 799], "It": [102, 181, 319, 404, 540, 625, 715], "just": [102, 319, 540], "revers": [102, 319, 540], "whatev": [102, 319, 540], "classmethod": [103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 198, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 421, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 642, 716, 717, 718, 719, 720, 721, 722, 723, 788], "filepath": [103, 107, 108, 109, 115, 172, 175, 176, 177, 181, 321, 325, 326, 327, 333, 395, 398, 399, 400, 404, 542, 546, 547, 548, 554, 616, 619, 620, 621, 625, 717, 722, 771, 776], "json": [103, 104, 172, 173, 321, 322, 395, 396, 542, 543, 616, 617, 717, 718, 771, 772], "file": [103, 107, 108, 109, 115, 172, 175, 176, 177, 181, 321, 325, 326, 327, 333, 395, 398, 399, 400, 404, 542, 546, 547, 548, 554, 616, 619, 620, 621, 625, 717, 722, 771, 776, 797], "path": [103, 107, 108, 109, 115, 172, 175, 176, 177, 181, 321, 325, 326, 327, 333, 395, 398, 399, 400, 404, 542, 546, 547, 548, 554, 616, 619, 620, 621, 625, 717, 722, 730, 767, 771, 776, 790, 795, 798], "correct": [103, 104, 321, 322, 542, 543, 717, 718], "schema": [103, 104, 198, 321, 322, 421, 542, 543, 642, 717, 718, 788], "delete_boundary_fac": [105, 323, 544], "precis": [105, 107, 109, 111, 115, 117, 145, 155, 175, 181, 207, 226, 323, 325, 327, 329, 333, 335, 367, 378, 398, 404, 430, 449, 544, 546, 548, 550, 554, 556, 586, 599, 619, 625, 651, 670, 719, 722, 724, 748], "most": [105, 221, 323, 444, 544, 665], "expect": [105, 214, 323, 437, 544, 658], "therefor": [105, 146, 323, 368, 544, 587, 737, 738], "map": [105, 107, 115, 117, 130, 175, 207, 208, 226, 259, 323, 325, 333, 335, 348, 398, 430, 431, 449, 544, 546, 554, 556, 571, 619, 651, 652, 670, 698, 722, 724, 727, 728, 748, 749], "dx": [106, 324, 545, 791, 792], "nx": [106, 324, 545], "dy": [106, 324, 545], "ny": [106, 324, 545], "regular": [106, 140, 324, 362, 545, 581], "grid": [106, 324, 545], "obj": [107, 155, 162, 167, 175, 325, 378, 385, 390, 398, 546, 599, 606, 611, 619, 679, 693, 707, 722, 730, 744, 755, 766, 776, 791, 792, 794], "There": [107, 325, 546], "few": [107, 325, 546, 801], "test": [107, 325, 546], "debug": [107, 325, 546], "faces_big": [107, 325, 546], "faces_revers": [107, 325, 546], "hypar": [107, 325, 546], "quadmesh": [107, 325, 546], "off": [108, 176, 326, 399, 547, 620], "ply": [109, 177, 327, 400, 548, 621], "delaunai": [110, 328, 549], "triangul": [110, 182, 328, 405, 549, 626], "seri": [111, 329, 550], "tol": [111, 117, 145, 155, 207, 243, 329, 335, 367, 378, 430, 550, 556, 568, 586, 599, 651, 719, 724, 748], "platon": [112, 330, 551], "solid": [112, 330, 551], "8": [112, 145, 330, 367, 551, 586, 792, 793], "12": [112, 145, 330, 367, 551, 586, 793, 794], "boundary_polylin": [113, 331, 552], "other_polylin": [113, 331, 552], "polylin": [113, 180, 331, 403, 552, 624], "from_lin": [113, 331, 552, 721, 722, 723, 773], "extrem": [113, 331, 552], "discretis": [113, 331, 552], "curv": [113, 331, 552], "could": [113, 331, 552, 738, 794, 802], "overlap": [113, 331, 552], "wrong": [113, 331, 552], "shape": [114, 332, 553], "primit": [114, 332, 553], "input": [114, 168, 169, 332, 391, 392, 553, 612, 613, 715], "keyword": [114, 169, 332, 392, 553, 613], "pass": [114, 164, 165, 332, 387, 388, 553, 608, 609, 768], "to_vertices_and_fac": [114, 332, 553], "stl": [115, 181, 333, 404, 554, 625], "referenc": [116, 334, 555], "verifi": [125, 126, 127, 128, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 343, 344, 345, 346, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 564, 565, 566, 567, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 725, 726, 729, 730, 731, 732, 733, 735, 736], "mai": [125, 343, 564], "produc": [125, 214, 343, 437, 564, 658], "unexpect": [125, 343, 564], "vertex_index": [130, 348, 571], "return_fkei": [131, 349, 572], "insert": [131, 166, 167, 349, 389, 390, 572, 610, 611, 769], "newli": [131, 349, 572, 774], "close": [132, 137, 145, 350, 359, 367, 573, 578, 586], "nake": [132, 133, 350, 351, 573, 574], "is_valid": [132, 133, 135, 137, 138, 139, 140, 141, 350, 351, 357, 359, 360, 361, 362, 363, 573, 574, 576, 578, 579, 580, 581, 582], "is_regular": [132, 133, 135, 137, 138, 139, 141, 142, 350, 351, 357, 359, 360, 361, 363, 364, 573, 574, 576, 578, 579, 580, 582, 583], "is_manifold": [132, 133, 135, 138, 139, 140, 141, 142, 350, 351, 357, 360, 361, 362, 363, 364, 573, 574, 576, 579, 580, 581, 582, 583], "is_orient": [132, 133, 135, 137, 139, 140, 141, 142, 350, 351, 357, 359, 361, 362, 363, 364, 573, 574, 576, 578, 580, 581, 582, 583], "is_empti": [132, 133, 137, 138, 139, 140, 141, 142, 350, 351, 359, 360, 361, 362, 363, 364, 573, 574, 578, 579, 580, 581, 582, 583], "is_trimesh": [132, 133, 135, 137, 138, 139, 140, 142, 350, 351, 357, 359, 360, 361, 362, 364, 573, 574, 576, 578, 579, 580, 581, 583], "is_quadmesh": [132, 133, 135, 137, 138, 140, 141, 142, 350, 351, 357, 359, 360, 362, 363, 364, 573, 574, 576, 578, 579, 581, 582, 583], "is_clos": [135, 137, 138, 139, 140, 141, 142, 357, 359, 360, 361, 362, 363, 364, 576, 578, 579, 580, 581, 582, 583], "manifold": [137, 138, 359, 360, 578, 579], "fulfil": [137, 140, 142, 359, 362, 364, 578, 581, 583], "incid": [137, 140, 359, 362, 578, 581, 737], "open": [137, 359, 578], "fan": [137, 359, 578], "triangl": [141, 154, 181, 363, 377, 404, 582, 598, 625, 791], "valid": [142, 198, 364, 421, 583, 642, 788], "don": [142, 364, 583], "non": [142, 364, 583, 799, 800, 802], "entri": [142, 364, 583, 738], "weld": [145, 367, 586], "anoth": [145, 367, 586], "translat": [145, 157, 158, 159, 160, 367, 380, 381, 382, 383, 586, 601, 602, 603, 604, 762, 763, 764, 765, 791, 792], "from_width_height_depth": [145, 163, 367, 386, 586, 607], "from_vector": [145, 367, 586], "transform": [145, 157, 158, 159, 160, 184, 186, 187, 188, 367, 380, 381, 382, 383, 407, 409, 410, 411, 586, 601, 602, 603, 604, 628, 630, 631, 632, 762, 763, 764, 765, 779, 781, 782, 783], "from_shap": [145, 163, 367, 386, 586, 607], "number_of_vertic": [145, 149, 150, 155, 367, 371, 372, 378, 586, 592, 593, 599], "number_of_fac": [145, 149, 151, 167, 367, 371, 373, 390, 586, 592, 594, 611], "16": [145, 367, 586, 793], "laplacian": [146, 209, 368, 432, 587, 653, 738, 750], "time": [146, 368, 587, 799, 801], "uniform": [146, 368, 587], "frac": [146, 368, 587], "deg": [146, 368, 587], "nealen": [146, 368, 587], "igarashi": [146, 368, 587], "sorkin": [146, 368, 587], "o": [146, 368, 587, 801], "alexa": [146, 368, 587], "optim": [146, 368, 587, 793], "d": [146, 368, 587, 738, 791, 792, 801, 802], "merg": [147, 369, 590, 797], "share": [147, 175, 369, 398, 590, 619], "from_vertices_and_fac": [147, 153, 171, 369, 375, 394, 590, 596, 615], "subdivid": [147, 369, 590], "scheme": [147, 169, 369, 392, 590, 613, 799], "mesh_merge_fac": [147, 369, 590], "7": [147, 369, 590, 793, 794], "face_vertic": [147, 167, 369, 390, 590, 611], "number_of_edg": [150, 151, 372, 373, 593, 594, 760, 794], "neg": [153, 163, 375, 386, 596, 607], "opposit": [153, 214, 375, 437, 596, 658], "origin": [153, 157, 158, 163, 171, 214, 375, 380, 381, 386, 394, 437, 596, 601, 602, 607, 615, 658, 762, 763, 792], "high": [153, 375, 596, 802], "mesh_offset": [153, 375, 596], "distance_point_point": [153, 375, 596], "dist": [153, 375, 596], "0x109eaad60": [153, 171, 375, 394, 596, 615], "check_angl": [154, 377, 598], "flag": [154, 377, 598], "choos": [154, 377, 598, 791], "duplic": [155, 378, 599], "clean": [155, 378, 599], "up": [155, 207, 378, 430, 599, 651, 715, 748], "affect": [155, 378, 599], "from_obj": [155, 162, 167, 378, 385, 390, 599, 606, 611, 679, 719, 721, 723, 730, 766, 776, 791, 792, 794], "36": [155, 378, 599], "38": [155, 378, 599], "39": [155, 378, 599], "40": [155, 378, 599], "41": [155, 378, 599], "radian": [157, 158, 380, 381, 601, 602, 762, 763], "scale": [157, 158, 187, 188, 380, 381, 410, 411, 601, 602, 631, 632, 762, 763, 782, 783], "copi": [158, 160, 185, 186, 188, 381, 383, 408, 409, 411, 602, 604, 629, 630, 632, 763, 765, 780, 781, 783, 794, 797], "factor": [159, 160, 164, 165, 382, 383, 387, 388, 603, 604, 608, 609, 764, 765, 768], "rotat": [159, 160, 187, 188, 382, 383, 410, 411, 603, 604, 631, 632, 764, 765, 782, 783], "as_str": [162, 385, 606, 766], "hash": [162, 385, 606, 766], "comparison": [162, 385, 606, 766], "dure": [162, 385, 606, 766, 789], "version": [162, 385, 606, 766, 796], "control": [162, 385, 606, 766], "digest": [162, 385, 606, 766], "hexadecim": [162, 385, 606, 766], "rather": [162, 385, 606, 766, 801], "byte": [162, 385, 606, 766], "v1": [162, 385, 606, 766], "v2": [162, 385, 606, 766], "v3": [162, 385, 606, 766], "submesh": [163, 386, 607], "cut": [163, 386, 607], "do": [163, 386, 607, 797], "degener": [163, 386, 607], "mesh_slice_plan": [163, 386, 607], "len": [163, 386, 607, 794], "damp": [164, 165, 387, 388, 608, 609, 768], "callback": [164, 165, 387, 388, 608, 609, 768], "callback_arg": [164, 165, 387, 388, 608, 609, 768], "smooth": [164, 165, 387, 388, 608, 609], "move": [164, 165, 387, 388, 608, 609, 768], "barycent": [164, 387, 608], "surround": [164, 387, 608], "weight": [164, 215, 387, 438, 608, 659, 802], "user": [164, 165, 181, 387, 388, 404, 608, 609, 625, 768, 801], "execut": [164, 165, 387, 388, 608, 609, 768], "split": [166, 167, 168, 389, 390, 391, 541, 610, 611, 612, 769], "also": [166, 175, 389, 398, 610, 619], "belong": [167, 390, 611], "face_vertex_descend": [167, 390, 611], "25": [167, 390, 611, 791, 792], "mesh_split_fac": [167, 390, 611], "26": [167, 390, 611, 800], "srip": [168, 391, 612], "catmullclark": [169, 392, 613], "tri": [169, 392, 613], "doosabin": [169, 392, 613], "accord": [169, 392, 613], "support": [169, 181, 392, 404, 613, 625, 792], "thick": [171, 394, 615], "thicknen": [171, 394, 615], "pretti": [172, 173, 395, 396, 616, 617, 771, 772], "nativ": [172, 173, 395, 396, 616, 617, 771, 772], "save": [172, 173, 395, 396, 616, 617, 771, 772], "unweld": [175, 193, 194, 398, 416, 417, 619, 637, 638], "own": [175, 398, 619], "uniqu": [175, 398, 619], "collect": [178, 179, 180, 401, 402, 403, 622, 623, 624], "binari": [181, 404, 625], "round": [181, 404, 625], "written": [181, 404, 625, 799], "ascii": [181, 404, 625], "": [181, 198, 249, 250, 251, 252, 275, 352, 353, 354, 355, 404, 421, 625, 642, 788, 795, 800, 801, 802], "respons": [181, 404, 625], "quads_to_triangl": [181, 404, 625], "matrix_from_axis_and_angl": [183, 406, 627], "math": [183, 184, 406, 407, 627, 628], "pi": [183, 184, 406, 407, 627, 628], "matrix_from_axis_and_angle_numpi": [184, 407, 628], "root": [189, 412, 633, 767], "unset": [190, 191, 192, 413, 414, 415, 634, 635, 636, 784, 785], "unset_vertex_attribut": [190, 191, 200, 413, 414, 423, 634, 635, 644], "implicitli": [190, 191, 192, 413, 414, 415, 634, 635, 636, 784, 785], "back": [190, 191, 192, 413, 414, 415, 634, 635, 636, 784, 785, 799, 800, 801], "update_default_vertex_attribut": [195, 196, 418, 419, 639, 640], "update_default_face_attribut": [195, 197, 418, 420, 639, 641], "overwrit": [195, 196, 197, 418, 419, 420, 639, 640, 641], "update_default_edge_attribut": [196, 197, 419, 420, 640, 641, 787], "against": [198, 421, 642, 788], "raw": [198, 421, 642, 788], "__from_data__": [198, 421, 642, 788], "tributari": [199, 422, 643], "vkei": [203, 426, 647], "botsch": [203, 426, 647], "mario": [203, 426, 647], "et": [203, 426, 647], "al": [203, 426, 647], "process": [203, 426, 647, 795], "ak": [203, 426, 647], "peter": [203, 426, 647], "crc": [203, 426, 647], "press": [203, 426, 647], "2010": [203, 426, 647], "include_non": [206, 429, 650], "index_vertex": [208, 431, 652], "unord": [212, 435, 656], "li": [214, 437, 658, 686, 714, 731, 736], "alwai": [214, 437, 658, 715], "due": [214, 437, 658], "natur": [214, 259, 437, 658, 738, 795], "around": [214, 437, 658, 715, 799], "doesn": [214, 437, 541, 658], "convent": [214, 437, 658], "oposit": [214, 437, 658], "compar": [214, 437, 658], "closer": [226, 449, 670], "001": [243, 568, 791, 792], "reflect": 243, "coorespond": 249, "retriev": [250, 251, 252], "diagra": 259, "correpsond": 259, "compas_tna": 320, "mark": [352, 353, 354, 355], "load": [354, 568, 715, 790, 791, 792, 795, 798, 799], "reaction": [355, 715, 791, 792], "noth": [479, 480], "forcedens": 480, "discard": 491, "relev": [491, 799], "togeth": [491, 799], "graph": [541, 672, 674, 676, 677, 678, 679, 684, 686, 689, 691, 692, 706, 711, 712, 713, 714, 715, 716, 719, 720, 721, 722, 723, 725, 726, 729, 730, 731, 734, 735, 736, 737, 738, 739, 754, 759, 760, 761, 768, 769, 770, 773, 774, 775, 776, 777, 778, 791, 792, 793, 794, 795, 798, 801], "constructor": 541, "planar": [541, 715, 734, 735, 793, 794, 799], "embed": [541, 712, 715, 734, 735, 794], "tt": 541, "actual": 541, "formgraph": [541, 791, 792, 793, 794], "toler": [568, 724, 748], "lai": 568, "10e": 568, "leaf": [588, 732], "hashabl": [675, 676, 682, 683, 687, 688, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 712, 714, 716, 721, 724, 725, 726, 727, 728, 732, 733, 737, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 767, 769, 775, 784], "add_nod": [675, 692], "delete_edg": [675, 692], "delete_nod": [676, 691, 794], "array_lik": [677, 684, 689, 738], "g": 679, "h": 679, "whose": 679, "present": [679, 725, 726, 799, 800, 801, 802], "wolfram": 679, "mathworld": 679, "com": [679, 796], "graphcompl": 679, "html": 679, "has_edg": [679, 726], "connected_nod": 682, "connected_edg": 683, "cross": [686, 714, 731, 734, 791, 792, 794, 799], "degree_out": [687, 688], "degree_in": [687, 690], "numer": [688, 795], "incom": [688, 742], "outgo": [690, 743], "node_attribut": [693, 694, 707, 708, 755, 756, 785, 794], "nodes_attribut": [693, 694, 707, 708, 744, 745], "edge_point": [695, 697, 701, 704], "edge_start": [695, 697, 701, 702], "edge_end": [695, 701, 702, 704], "edge_midpoint": [695, 697, 702, 704], "edge_vector": [696, 699, 700], "edge_lin": [696, 699, 705, 791, 792], "edge_length": [696, 700, 705, 794], "uv": [698, 727], "index_edg": [698, 728], "node_index": [698, 728], "edge_direct": [699, 700, 705], "parametr": 702, "node_sampl": 703, "nodes_wher": [706, 709, 710, 754, 758], "nodes_where_pred": [706, 709, 710, 754, 757], "straightlin": 711, "emb": [712, 794], "wa": [712, 801], "success": 712, "importerror": [712, 734], "networkx": [712, 720, 734, 774], "instal": [712, 734, 795], "breakpoint": 715, "break": 715, "found": [715, 799], "wall": 715, "maze": 715, "repes": 715, "straight": [715, 734], "turn": 715, "primarili": 715, "from_networkx": [716, 774], "to_lin": [719, 775, 776, 777], "from_nodes_and_edg": [719, 722, 723, 775, 793], "from_pointcloud": [719, 721, 722, 777], "digraph": [720, 774], "to_networkx": 720, "from_edg": 720, "hshabl": 721, "to_nodes_and_edg": [721, 773, 776, 777], "url": 722, "to_obj": [722, 773, 775, 777], "cloud": 723, "pointcloud": 723, "to_point": [723, 773, 775, 776], "node_gkei": 724, "geometric_kei": [724, 748], "account": 725, "has_nod": 725, "edge_index": [727, 749], "index_nod": [727, 749], "is_node_connect": 732, "is_leaf": 733, "packag": 734, "drawn": 734, "without": [734, 794, 797], "shown": [734, 799], "furthermor": [734, 795], "join": 737, "incident": 737, "exactli": 737, "replac": 737, "transfer": 737, "By": [738, 802], "chang": [738, 792], "sign": 738, "dsiplac": 738, "wai": 738, "neighbors_out": [741, 742], "neighbors_in": [741, 743], "unset_node_attribut": 744, "node_point": [746, 750, 751], "node_laplacian": [746, 751, 752], "node_neighborhood_centroid": [746, 750, 752], "gkey_nod": 748, "node_coordin": [750, 751, 752], "number_of_nod": 759, "shortest": 767, "goal": 767, "topologi": [767, 802], "astar_shortest_path": 767, "update_default_node_attribut": 786, "throw": 789, "error": 789, "fink": [790, 795, 799], "truss": [790, 792, 793, 795, 799], "compas_view": [791, 792], "viewer": [791, 792, 793], "config": [791, 792], "color": [791, 792], "bounding_box": [791, 792], "graphstat": [791, 792, 793], "paper": [791, 792, 794, 799, 801, 802], "gs_form_forc": [791, 792], "from_graph": [791, 792, 793, 794], "from_formdiagram": [791, 792, 793], "magnitud": [791, 792], "thu": 791, "enough": 791, "edge_forc": [791, 792], "30": 791, "form_update_q_from_qind": [791, 792, 793], "force_update_from_form": [791, 792, 793], "loadcolor": [791, 792], "green": [791, 792], "darken": [791, 792], "50": [791, 792], "reactioncolor": [791, 792], "tensioncolor": [791, 792], "red": [791, 792], "lighten": [791, 792], "compressioncolor": [791, 792], "blue": [791, 792], "b1": [791, 792], "from_bounding_box": [791, 792], "b2": [791, 792], "xmin": [791, 792], "xmax": [791, 792], "els": [791, 792], "render": [791, 792], "view": [791, 792], "top": [791, 792, 793], "gridsiz": [791, 792], "scene": [791, 792], "show_fac": [791, 792], "show_lin": [791, 792], "from_point_and_radiu": [791, 792], "vertex_point": [791, 792], "to_polygon": [791, 792], "128": [791, 792], "facecolor": [791, 792], "white": [791, 792], "linecolor": [791, 792], "black": [791, 792], "w": [791, 792], "01": [791, 792], "ab": [791, 792, 794], "is_extern": [791, 792], "append": [791, 792, 794], "elif": [791, 792], "contrast": [791, 792], "show": [791, 792, 793, 794, 802], "singl": 792, "right": [792, 797], "is_fix": [792, 793], "10": [792, 793, 799, 800, 801, 802], "form_update_from_forc": 792, "movement": 792, "arrow": 792, "visual": [792, 794, 795], "9": [793, 794], "11": 793, "13": 793, "14": 793, "15": 793, "17": 793, "18": 793, "assign": [793, 802], "bottom": 793, "chord": 793, "is_ind": 793, "member": 793, "now": 793, "strut": 793, "is_param": 793, "distribut": [793, 797, 802], "overal": 793, "volumn": 793, "optimise_loadpath": 793, "delay_setup": 793, "figsiz": [793, 794], "draw_form": 793, "forcescal": 793, "vertexlabel": 793, "vertexs": 793, "draw_forc": 793, "normalize_vector": 794, "scale_vector": 794, "subtract_vector": 794, "sum_vector": 794, "assert": 794, "2d": 794, "is_2d": 794, "is_planar": 794, "is_cross": 794, "spring": 794, "layout": [794, 802], "final": [794, 799], "re": 794, "toward": 794, "noleav": 794, "continu": 794, "plotter": 794, "meshplott": 794, "draw_vertic": 794, "radiu": 794, "draw_edg": 794, "known": [795, 801], "analysi": [795, 799, 801, 802], "design": [795, 799, 800, 801], "dimension": [795, 799, 801], "cremona": 795, "extens": [795, 801], "maxwel": 795, "theori": [795, 799], "figur": 795, "graphicstat": 795, "configur": 795, "axial": 795, "intuit": 795, "behaviour": 795, "perform": [795, 801], "glanc": 795, "verif": 795, "transpar": 795, "arithmet": 795, "algebra": [795, 798, 801], "bi": [795, 798, 801], "funicular": [795, 798, 799], "network": [795, 798, 799], "introduct": 795, "api": 795, "public": 795, "interact": [795, 798, 799, 800], "licens": 795, "releas": 796, "pypi": 796, "pip": 796, "local": 796, "sourc": 796, "git": 796, "clone": 796, "github": 796, "blockresearchgroup": 796, "cd": 796, "dev": 796, "mit": 797, "copyright": 797, "2016": 797, "2018": [797, 802], "block": [797, 799, 801, 802], "research": 797, "permiss": 797, "herebi": 797, "grant": 797, "charg": 797, "person": 797, "obtain": 797, "softwar": 797, "associ": [797, 802], "document": 797, "deal": 797, "restrict": 797, "publish": [797, 801], "sublicens": 797, "sell": 797, "permit": 797, "whom": 797, "furnish": 797, "subject": [797, 802], "abov": 797, "notic": 797, "shall": 797, "substanti": 797, "portion": 797, "THE": 797, "AS": 797, "warranti": 797, "OF": 797, "kind": 797, "OR": 797, "impli": 797, "BUT": 797, "NOT": 797, "TO": 797, "merchant": 797, "FOR": 797, "particular": 797, "purpos": 797, "AND": 797, "noninfring": 797, "IN": 797, "NO": 797, "event": 797, "author": [797, 799, 800, 801, 802], "holder": 797, "BE": 797, "liabl": 797, "claim": 797, "damag": 797, "liabil": 797, "whether": 797, "action": [797, 802], "contract": 797, "tort": 797, "aris": 797, "WITH": 797, "graphic": [798, 799, 800], "under": 799, "articl": [799, 800, 802], "vanmele2014": 799, "van": [799, 801, 802], "mele": [799, 801, 802], "titl": [799, 800, 801, 802], "journal": [799, 800, 802], "aid": [799, 800], "year": [799, 800, 801, 802], "2014": 799, "volum": [799, 800, 801, 802], "53": [799, 802], "page": [799, 800, 801, 802], "104": 799, "116": 799, "month": [799, 801, 802], "doi": [799, 800, 801, 802], "1016": [799, 800], "cad": [799, 800, 801], "04": 799, "004": 799, "abstract": [799, 800, 801, 802], "procedur": 799, "approach": [799, 802], "theoret": 799, "properti": 799, "These": 799, "formul": [799, 801], "been": 799, "equival": 799, "signific": 799, "demonstr": [799, 800], "through": 799, "sever": [799, 800], "robust": [799, 800, 801], "real": [799, 801], "flexibl": 799, "tradit": [799, 801], "contribut": 799, "bring": 799, "concept": 799, "techniqu": 799, "framework": 799, "built": 799, "discuss": [799, 800], "differ": 799, "step": 799, "illustr": 799, "cannot": 799, "becaus": 799, "code": 799, "snippet": 799, "four": 799, "hing": 799, "bar": 799, "constrain": 799, "thrust": [799, 802], "pre": [799, 800], "briefli": 799, "alic201726": 800, "vedad": 800, "alic": 800, "daniel": 800, "\u00e5kesson": 800, "2017": 800, "93": 800, "37": 800, "issn": 800, "0010": 800, "4485": 800, "08": 800, "003": 800, "extend": 800, "manipul": 800, "newton": 800, "jacobian": 800, "deriv": [800, 802], "introduc": [800, 801], "improv": 800, "usabl": 800, "qualiti": 800, "emphas": 800, "inproceed": 801, "maiaavelino2021": 801, "maia": 801, "avelino": 801, "lee": 801, "teach": 801, "booktitl": 801, "proceed": 801, "fib": 801, "symposium": 801, "conceptu": 801, "2021": 801, "editor": 801, "fivet": 801, "acunto": 801, "fern\u00e1ndez": 801, "ruiz": 801, "ohlbrock": 801, "447": 801, "454": 801, "address": 801, "attisholz": 801, "areal": 801, "switzerland": 801, "septemb": 801, "35789": 801, "proc": 801, "0055": 801, "cdsymp": 801, "p054": 801, "integr": 801, "environ": 801, "discret": [801, 802], "analyt": 801, "formalis": 801, "19th": 801, "centuri": 801, "slowli": 801, "disappear": 801, "engin": 801, "20th": 801, "recent": 801, "develop": 801, "enabl": 801, "build": 801, "workflow": 801, "variou": 801, "either": 801, "solver": 801, "har": 801, "advantag": 801, "liew2018": 802, "liew": 802, "pagonaki": 802, "meccanica": 802, "279": 802, "294": 802, "1007": 802, "s11012": 802, "017": 802, "0714": 802, "vault": 802, "plan": 802, "gradient": 802, "hessian": 802, "routin": 802, "optimum": 802, "minimis": 802, "restraint": 802, "select": 802, "appropri": 802, "pattern": 802, "encourag": 802, "flow": 802, "avoid": 802, "orthogon": 802, "indeterminaci": 802, "investig": 802, "understand": 802, "within": 802}, "objects": {"compas_ags.ags": [[5, 0, 1, "", "compute_external_work"], [6, 0, 1, "", "compute_internal_work"], [7, 0, 1, "", "compute_internal_work_compression"], [8, 0, 1, "", "compute_internal_work_tension"], [9, 0, 1, "", "compute_loadpath"], [10, 0, 1, "", "force_update_from_form"], [11, 0, 1, "", "form_count_dof"], [12, 0, 1, "", "form_identify_dof"], [13, 0, 1, "", "form_update_from_force"], [14, 0, 1, "", "form_update_q_from_qind"], [15, 0, 1, "", "optimise_loadpath"], [16, 0, 1, "", "update_primal_from_dual"], [17, 0, 1, "", "update_q_from_qind"]], "compas_ags.diagrams": [[18, 1, 1, "", "Diagram"], [227, 1, 1, "", "ForceDiagram"], [451, 1, 1, "", "FormDiagram"], [672, 1, 1, "", "FormGraph"]], "compas_ags.diagrams.Diagram": [[19, 2, 1, "", "ToString"], [20, 2, 1, "", "aabb"], [21, 2, 1, "", "add_face"], [22, 2, 1, "", "add_vertex"], [23, 2, 1, "", "adjacency_matrix"], [24, 2, 1, "", "area"], [25, 2, 1, "", "centroid"], [26, 2, 1, "", "clear"], [27, 2, 1, "", "collapse_edge"], [28, 2, 1, "", "compute_aabb"], [29, 2, 1, "", "compute_obb"], [30, 2, 1, "", "connected_faces"], [31, 2, 1, "", "connected_vertices"], [32, 2, 1, "", "connectivity_matrix"], [33, 2, 1, "", "copy"], [34, 2, 1, "", "cull_vertices"], [35, 2, 1, "", "degree_matrix"], [36, 2, 1, "", "delete_face"], [37, 2, 1, "", "delete_vertex"], [38, 2, 1, "", "edge_attribute"], [39, 2, 1, "", "edge_attributes"], [40, 2, 1, "", "edge_coordinates"], [41, 2, 1, "", "edge_direction"], [42, 2, 1, "", "edge_end"], [43, 2, 1, "", "edge_faces"], [44, 2, 1, "", "edge_index"], [45, 2, 1, "", "edge_length"], [46, 2, 1, "", "edge_line"], [47, 2, 1, "", "edge_loop"], [48, 2, 1, "", "edge_midpoint"], [49, 2, 1, "", "edge_point"], [50, 2, 1, "", "edge_sample"], [51, 2, 1, "", "edge_start"], [52, 2, 1, "", "edge_strip"], [53, 2, 1, "", "edge_vector"], [54, 2, 1, "", "edges"], [55, 2, 1, "", "edges_attribute"], [56, 2, 1, "", "edges_attributes"], [57, 2, 1, "", "edges_on_boundaries"], [58, 2, 1, "", "edges_on_boundary"], [59, 2, 1, "", "edges_where"], [60, 2, 1, "", "edges_where_predicate"], [61, 2, 1, "", "euler"], [62, 2, 1, "", "exploded"], [63, 2, 1, "", "face_adjacency_halfedge"], [64, 2, 1, "", "face_adjacency_vertices"], [65, 2, 1, "", "face_area"], [66, 2, 1, "", "face_aspect_ratio"], [67, 2, 1, "", "face_attribute"], [68, 2, 1, "", "face_attributes"], [69, 2, 1, "", "face_center"], [70, 2, 1, "", "face_centroid"], [71, 2, 1, "", "face_circle"], [72, 2, 1, "", "face_coordinates"], [73, 2, 1, "", "face_corners"], [74, 2, 1, "", "face_curvature"], [75, 2, 1, "", "face_degree"], [76, 2, 1, "", "face_flatness"], [77, 2, 1, "", "face_frame"], [78, 2, 1, "", "face_halfedges"], [79, 2, 1, "", "face_matrix"], [80, 2, 1, "", "face_max_degree"], [81, 2, 1, "", "face_min_degree"], [82, 2, 1, "", "face_neighborhood"], [83, 2, 1, "", "face_neighbors"], [84, 2, 1, "", "face_normal"], [85, 2, 1, "", "face_plane"], [86, 2, 1, "", "face_points"], [87, 2, 1, "", "face_polygon"], [88, 2, 1, "", "face_sample"], [89, 2, 1, "", "face_skewness"], [90, 2, 1, "", "face_vertex_after"], [91, 2, 1, "", "face_vertex_ancestor"], [92, 2, 1, "", "face_vertex_before"], [93, 2, 1, "", "face_vertex_descendant"], [94, 2, 1, "", "face_vertices"], [95, 2, 1, "", "faces"], [96, 2, 1, "", "faces_attribute"], [97, 2, 1, "", "faces_attributes"], [98, 2, 1, "", "faces_on_boundaries"], [99, 2, 1, "", "faces_on_boundary"], [100, 2, 1, "", "faces_where"], [101, 2, 1, "", "faces_where_predicate"], [102, 2, 1, "", "flip_cycles"], [103, 2, 1, "", "from_json"], [104, 2, 1, "", "from_jsonstring"], [105, 2, 1, "", "from_lines"], [106, 2, 1, "", "from_meshgrid"], [107, 2, 1, "", "from_obj"], [108, 2, 1, "", "from_off"], [109, 2, 1, "", "from_ply"], [110, 2, 1, "", "from_points"], [111, 2, 1, "", "from_polygons"], [112, 2, 1, "", "from_polyhedron"], [113, 2, 1, "", "from_polylines"], [114, 2, 1, "", "from_shape"], [115, 2, 1, "", "from_stl"], [116, 2, 1, "", "from_vertices_and_faces"], [117, 2, 1, "", "gkey_vertex"], [118, 2, 1, "", "halfedge_after"], [119, 2, 1, "", "halfedge_before"], [120, 2, 1, "", "halfedge_face"], [121, 2, 1, "", "halfedge_loop"], [122, 2, 1, "", "halfedge_loop_vertices"], [123, 2, 1, "", "halfedge_strip"], [124, 2, 1, "", "halfedge_strip_faces"], [125, 2, 1, "", "has_edge"], [126, 2, 1, "", "has_face"], [127, 2, 1, "", "has_halfedge"], [128, 2, 1, "", "has_vertex"], [129, 2, 1, "", "index_edge"], [130, 2, 1, "", "index_vertex"], [131, 2, 1, "", "insert_vertex"], [132, 2, 1, "", "is_closed"], [133, 2, 1, "", "is_connected"], [134, 2, 1, "", "is_edge_on_boundary"], [135, 2, 1, "", "is_empty"], [136, 2, 1, "", "is_face_on_boundary"], [137, 2, 1, "", "is_manifold"], [138, 2, 1, "", "is_orientable"], [139, 2, 1, "", "is_quadmesh"], [140, 2, 1, "", "is_regular"], [141, 2, 1, "", "is_trimesh"], [142, 2, 1, "", "is_valid"], [143, 2, 1, "", "is_vertex_connected"], [144, 2, 1, "", "is_vertex_on_boundary"], [145, 2, 1, "", "join"], [146, 2, 1, "", "laplacian_matrix"], [147, 2, 1, "", "merge_faces"], [148, 2, 1, "", "normal"], [149, 2, 1, "", "number_of_edges"], [150, 2, 1, "", "number_of_faces"], [151, 2, 1, "", "number_of_vertices"], [152, 2, 1, "", "obb"], [153, 2, 1, "", "offset"], [154, 2, 1, "", "quads_to_triangles"], [155, 2, 1, "", "remove_duplicate_vertices"], [156, 2, 1, "", "remove_unused_vertices"], [157, 2, 1, "", "rotate"], [158, 2, 1, "", "rotated"], [159, 2, 1, "", "scale"], [160, 2, 1, "", "scaled"], [161, 2, 1, "", "set_vertex_point"], [162, 2, 1, "", "sha256"], [163, 2, 1, "", "slice"], [164, 2, 1, "", "smooth_area"], [165, 2, 1, "", "smooth_centroid"], [166, 2, 1, "", "split_edge"], [167, 2, 1, "", "split_face"], [168, 2, 1, "", "split_strip"], [169, 2, 1, "", "subdivided"], [170, 2, 1, "", "summary"], [171, 2, 1, "", "thickened"], [172, 2, 1, "", "to_json"], [173, 2, 1, "", "to_jsonstring"], [174, 2, 1, "", "to_lines"], [175, 2, 1, "", "to_obj"], [176, 2, 1, "", "to_off"], [177, 2, 1, "", "to_ply"], [178, 2, 1, "", "to_points"], [179, 2, 1, "", "to_polygons"], [180, 2, 1, "", "to_polylines"], [181, 2, 1, "", "to_stl"], [182, 2, 1, "", "to_vertices_and_faces"], [183, 2, 1, "", "transform"], [184, 2, 1, "", "transform_numpy"], [185, 2, 1, "", "transformed"], [186, 2, 1, "", "transformed_numpy"], [187, 2, 1, "", "translate"], [188, 2, 1, "", "translated"], [189, 2, 1, "", "unify_cycles"], [190, 2, 1, "", "unset_edge_attribute"], [191, 2, 1, "", "unset_face_attribute"], [192, 2, 1, "", "unset_vertex_attribute"], [193, 2, 1, "", "unweld_edges"], [194, 2, 1, "", "unweld_vertices"], [195, 2, 1, "", "update_default_edge_attributes"], [196, 2, 1, "", "update_default_face_attributes"], [197, 2, 1, "", "update_default_vertex_attributes"], [198, 2, 1, "", "validate_data"], [199, 2, 1, "", "vertex_area"], [200, 2, 1, "", "vertex_attribute"], [201, 2, 1, "", "vertex_attributes"], [202, 2, 1, "", "vertex_coordinates"], [203, 2, 1, "", "vertex_curvature"], [204, 2, 1, "", "vertex_degree"], [205, 2, 1, "", "vertex_edges"], [206, 2, 1, "", "vertex_faces"], [207, 2, 1, "", "vertex_gkey"], [208, 2, 1, "", "vertex_index"], [209, 2, 1, "", "vertex_laplacian"], [210, 2, 1, "", "vertex_max_degree"], [211, 2, 1, "", "vertex_min_degree"], [212, 2, 1, "", "vertex_neighborhood"], [213, 2, 1, "", "vertex_neighborhood_centroid"], [214, 2, 1, "", "vertex_neighbors"], [215, 2, 1, "", "vertex_normal"], [216, 2, 1, "", "vertex_point"], [217, 2, 1, "", "vertex_sample"], [218, 2, 1, "", "vertices"], [219, 2, 1, "", "vertices_attribute"], [220, 2, 1, "", "vertices_attributes"], [221, 2, 1, "", "vertices_on_boundaries"], [222, 2, 1, "", "vertices_on_boundary"], [223, 2, 1, "", "vertices_points"], [224, 2, 1, "", "vertices_where"], [225, 2, 1, "", "vertices_where_predicate"], [226, 2, 1, "", "weld"]], "compas_ags.diagrams.ForceDiagram": [[228, 2, 1, "", "ToString"], [229, 2, 1, "", "aabb"], [230, 2, 1, "", "add_face"], [231, 2, 1, "", "add_vertex"], [232, 2, 1, "", "adjacency_matrix"], [233, 2, 1, "", "anchor"], [234, 2, 1, "", "area"], [235, 2, 1, "", "centroid"], [236, 2, 1, "", "clear"], [237, 2, 1, "", "collapse_edge"], [238, 2, 1, "", "compute_aabb"], [239, 2, 1, "", "compute_obb"], [240, 2, 1, "", "connected_faces"], [241, 2, 1, "", "connected_vertices"], [242, 2, 1, "", "connectivity_matrix"], [243, 2, 1, "", "constraints_from_dual"], [244, 2, 1, "", "copy"], [245, 2, 1, "", "cull_vertices"], [246, 2, 1, "", "degree_matrix"], [247, 2, 1, "", "delete_face"], [248, 2, 1, "", "delete_vertex"], [249, 2, 1, "", "dual_edge"], [250, 2, 1, "", "dual_edge_angledeviation"], [251, 2, 1, "", "dual_edge_force"], [252, 2, 1, "", "dual_edge_targetforce"], [253, 2, 1, "", "edge_attribute"], [254, 2, 1, "", "edge_attributes"], [255, 2, 1, "", "edge_coordinates"], [256, 2, 1, "", "edge_direction"], [257, 2, 1, "", "edge_end"], [258, 2, 1, "", "edge_faces"], [259, 2, 1, "", "edge_index"], [260, 2, 1, "", "edge_length"], [261, 2, 1, "", "edge_line"], [262, 2, 1, "", "edge_loop"], [263, 2, 1, "", "edge_midpoint"], [264, 2, 1, "", "edge_point"], [265, 2, 1, "", "edge_sample"], [266, 2, 1, "", "edge_start"], [267, 2, 1, "", "edge_strip"], [268, 2, 1, "", "edge_vector"], [269, 2, 1, "", "edges"], [270, 2, 1, "", "edges_attribute"], [271, 2, 1, "", "edges_attributes"], [272, 2, 1, "", "edges_on_boundaries"], [273, 2, 1, "", "edges_on_boundary"], [274, 2, 1, "", "edges_where"], [275, 2, 1, "", "edges_where_dual"], [276, 2, 1, "", "edges_where_predicate"], [277, 2, 1, "", "euler"], [278, 2, 1, "", "exploded"], [279, 2, 1, "", "face_adjacency_halfedge"], [280, 2, 1, "", "face_adjacency_vertices"], [281, 2, 1, "", "face_area"], [282, 2, 1, "", "face_aspect_ratio"], [283, 2, 1, "", "face_attribute"], [284, 2, 1, "", "face_attributes"], [285, 2, 1, "", "face_center"], [286, 2, 1, "", "face_centroid"], [287, 2, 1, "", "face_circle"], [288, 2, 1, "", "face_coordinates"], [289, 2, 1, "", "face_corners"], [290, 2, 1, "", "face_curvature"], [291, 2, 1, "", "face_degree"], [292, 2, 1, "", "face_flatness"], [293, 2, 1, "", "face_frame"], [294, 2, 1, "", "face_halfedges"], [295, 2, 1, "", "face_matrix"], [296, 2, 1, "", "face_max_degree"], [297, 2, 1, "", "face_min_degree"], [298, 2, 1, "", "face_neighborhood"], [299, 2, 1, "", "face_neighbors"], [300, 2, 1, "", "face_normal"], [301, 2, 1, "", "face_plane"], [302, 2, 1, "", "face_points"], [303, 2, 1, "", "face_polygon"], [304, 2, 1, "", "face_sample"], [305, 2, 1, "", "face_skewness"], [306, 2, 1, "", "face_vertex_after"], [307, 2, 1, "", "face_vertex_ancestor"], [308, 2, 1, "", "face_vertex_before"], [309, 2, 1, "", "face_vertex_descendant"], [310, 2, 1, "", "face_vertices"], [311, 2, 1, "", "faces"], [312, 2, 1, "", "faces_attribute"], [313, 2, 1, "", "faces_attributes"], [314, 2, 1, "", "faces_on_boundaries"], [315, 2, 1, "", "faces_on_boundary"], [316, 2, 1, "", "faces_where"], [317, 2, 1, "", "faces_where_predicate"], [318, 2, 1, "", "fixed"], [319, 2, 1, "", "flip_cycles"], [320, 2, 1, "", "from_formdiagram"], [321, 2, 1, "", "from_json"], [322, 2, 1, "", "from_jsonstring"], [323, 2, 1, "", "from_lines"], [324, 2, 1, "", "from_meshgrid"], [325, 2, 1, "", "from_obj"], [326, 2, 1, "", "from_off"], [327, 2, 1, "", "from_ply"], [328, 2, 1, "", "from_points"], [329, 2, 1, "", "from_polygons"], [330, 2, 1, "", "from_polyhedron"], [331, 2, 1, "", "from_polylines"], [332, 2, 1, "", "from_shape"], [333, 2, 1, "", "from_stl"], [334, 2, 1, "", "from_vertices_and_faces"], [335, 2, 1, "", "gkey_vertex"], [336, 2, 1, "", "halfedge_after"], [337, 2, 1, "", "halfedge_before"], [338, 2, 1, "", "halfedge_face"], [339, 2, 1, "", "halfedge_loop"], [340, 2, 1, "", "halfedge_loop_vertices"], [341, 2, 1, "", "halfedge_strip"], [342, 2, 1, "", "halfedge_strip_faces"], [343, 2, 1, "", "has_edge"], [344, 2, 1, "", "has_face"], [345, 2, 1, "", "has_halfedge"], [346, 2, 1, "", "has_vertex"], [347, 2, 1, "", "index_edge"], [348, 2, 1, "", "index_vertex"], [349, 2, 1, "", "insert_vertex"], [350, 2, 1, "", "is_closed"], [351, 2, 1, "", "is_connected"], [352, 2, 1, "", "is_dual_edge_external"], [353, 2, 1, "", "is_dual_edge_ind"], [354, 2, 1, "", "is_dual_edge_load"], [355, 2, 1, "", "is_dual_edge_reaction"], [356, 2, 1, "", "is_edge_on_boundary"], [357, 2, 1, "", "is_empty"], [358, 2, 1, "", "is_face_on_boundary"], [359, 2, 1, "", "is_manifold"], [360, 2, 1, "", "is_orientable"], [361, 2, 1, "", "is_quadmesh"], [362, 2, 1, "", "is_regular"], [363, 2, 1, "", "is_trimesh"], [364, 2, 1, "", "is_valid"], [365, 2, 1, "", "is_vertex_connected"], [366, 2, 1, "", "is_vertex_on_boundary"], [367, 2, 1, "", "join"], [368, 2, 1, "", "laplacian_matrix"], [369, 2, 1, "", "merge_faces"], [370, 2, 1, "", "normal"], [371, 2, 1, "", "number_of_edges"], [372, 2, 1, "", "number_of_faces"], [373, 2, 1, "", "number_of_vertices"], [374, 2, 1, "", "obb"], [375, 2, 1, "", "offset"], [376, 2, 1, "", "ordered_edges"], [377, 2, 1, "", "quads_to_triangles"], [378, 2, 1, "", "remove_duplicate_vertices"], [379, 2, 1, "", "remove_unused_vertices"], [380, 2, 1, "", "rotate"], [381, 2, 1, "", "rotated"], [382, 2, 1, "", "scale"], [383, 2, 1, "", "scaled"], [384, 2, 1, "", "set_vertex_point"], [385, 2, 1, "", "sha256"], [386, 2, 1, "", "slice"], [387, 2, 1, "", "smooth_area"], [388, 2, 1, "", "smooth_centroid"], [389, 2, 1, "", "split_edge"], [390, 2, 1, "", "split_face"], [391, 2, 1, "", "split_strip"], [392, 2, 1, "", "subdivided"], [393, 2, 1, "", "summary"], [394, 2, 1, "", "thickened"], [395, 2, 1, "", "to_json"], [396, 2, 1, "", "to_jsonstring"], [397, 2, 1, "", "to_lines"], [398, 2, 1, "", "to_obj"], [399, 2, 1, "", "to_off"], [400, 2, 1, "", "to_ply"], [401, 2, 1, "", "to_points"], [402, 2, 1, "", "to_polygons"], [403, 2, 1, "", "to_polylines"], [404, 2, 1, "", "to_stl"], [405, 2, 1, "", "to_vertices_and_faces"], [406, 2, 1, "", "transform"], [407, 2, 1, "", "transform_numpy"], [408, 2, 1, "", "transformed"], [409, 2, 1, "", "transformed_numpy"], [410, 2, 1, "", "translate"], [411, 2, 1, "", "translated"], [412, 2, 1, "", "unify_cycles"], [413, 2, 1, "", "unset_edge_attribute"], [414, 2, 1, "", "unset_face_attribute"], [415, 2, 1, "", "unset_vertex_attribute"], [416, 2, 1, "", "unweld_edges"], [417, 2, 1, "", "unweld_vertices"], [418, 2, 1, "", "update_default_edge_attributes"], [419, 2, 1, "", "update_default_face_attributes"], [420, 2, 1, "", "update_default_vertex_attributes"], [421, 2, 1, "", "validate_data"], [422, 2, 1, "", "vertex_area"], [423, 2, 1, "", "vertex_attribute"], [424, 2, 1, "", "vertex_attributes"], [425, 2, 1, "", "vertex_coordinates"], [426, 2, 1, "", "vertex_curvature"], [427, 2, 1, "", "vertex_degree"], [428, 2, 1, "", "vertex_edges"], [429, 2, 1, "", "vertex_faces"], [430, 2, 1, "", "vertex_gkey"], [431, 2, 1, "", "vertex_index"], [432, 2, 1, "", "vertex_laplacian"], [433, 2, 1, "", "vertex_max_degree"], [434, 2, 1, "", "vertex_min_degree"], [435, 2, 1, "", "vertex_neighborhood"], [436, 2, 1, "", "vertex_neighborhood_centroid"], [437, 2, 1, "", "vertex_neighbors"], [438, 2, 1, "", "vertex_normal"], [439, 2, 1, "", "vertex_point"], [440, 2, 1, "", "vertex_sample"], [441, 2, 1, "", "vertices"], [442, 2, 1, "", "vertices_attribute"], [443, 2, 1, "", "vertices_attributes"], [444, 2, 1, "", "vertices_on_boundaries"], [445, 2, 1, "", "vertices_on_boundary"], [446, 2, 1, "", "vertices_points"], [447, 2, 1, "", "vertices_where"], [448, 2, 1, "", "vertices_where_predicate"], [449, 2, 1, "", "weld"], [450, 2, 1, "", "xy"]], "compas_ags.diagrams.FormDiagram": [[452, 2, 1, "", "ToString"], [453, 2, 1, "", "aabb"], [454, 2, 1, "", "add_face"], [455, 2, 1, "", "add_vertex"], [456, 2, 1, "", "adjacency_matrix"], [457, 2, 1, "", "area"], [458, 2, 1, "", "centroid"], [459, 2, 1, "", "clear"], [460, 2, 1, "", "collapse_edge"], [461, 2, 1, "", "compute_aabb"], [462, 2, 1, "", "compute_obb"], [463, 2, 1, "", "connected_faces"], [464, 2, 1, "", "connected_vertices"], [465, 2, 1, "", "connectivity_matrix"], [466, 2, 1, "", "constrained"], [467, 2, 1, "", "constraints"], [468, 2, 1, "", "copy"], [469, 2, 1, "", "cull_vertices"], [470, 2, 1, "", "degree_matrix"], [471, 2, 1, "", "delete_face"], [472, 2, 1, "", "delete_vertex"], [473, 2, 1, "", "edge_attribute"], [474, 2, 1, "", "edge_attributes"], [475, 2, 1, "", "edge_coordinates"], [476, 2, 1, "", "edge_direction"], [477, 2, 1, "", "edge_end"], [478, 2, 1, "", "edge_faces"], [479, 2, 1, "", "edge_force"], [480, 2, 1, "", "edge_forcedensity"], [481, 2, 1, "", "edge_index"], [482, 2, 1, "", "edge_length"], [483, 2, 1, "", "edge_line"], [484, 2, 1, "", "edge_loop"], [485, 2, 1, "", "edge_midpoint"], [486, 2, 1, "", "edge_point"], [487, 2, 1, "", "edge_sample"], [488, 2, 1, "", "edge_start"], [489, 2, 1, "", "edge_strip"], [490, 2, 1, "", "edge_vector"], [491, 2, 1, "", "edges"], [492, 2, 1, "", "edges_attribute"], [493, 2, 1, "", "edges_attributes"], [494, 2, 1, "", "edges_on_boundaries"], [495, 2, 1, "", "edges_on_boundary"], [496, 2, 1, "", "edges_where"], [497, 2, 1, "", "edges_where_predicate"], [498, 2, 1, "", "euler"], [499, 2, 1, "", "exploded"], [500, 2, 1, "", "face_adjacency_halfedge"], [501, 2, 1, "", "face_adjacency_vertices"], [502, 2, 1, "", "face_area"], [503, 2, 1, "", "face_aspect_ratio"], [504, 2, 1, "", "face_attribute"], [505, 2, 1, "", "face_attributes"], [506, 2, 1, "", "face_center"], [507, 2, 1, "", "face_centroid"], [508, 2, 1, "", "face_circle"], [509, 2, 1, "", "face_coordinates"], [510, 2, 1, "", "face_corners"], [511, 2, 1, "", "face_curvature"], [512, 2, 1, "", "face_degree"], [513, 2, 1, "", "face_flatness"], [514, 2, 1, "", "face_frame"], [515, 2, 1, "", "face_halfedges"], [516, 2, 1, "", "face_matrix"], [517, 2, 1, "", "face_max_degree"], [518, 2, 1, "", "face_min_degree"], [519, 2, 1, "", "face_neighborhood"], [520, 2, 1, "", "face_neighbors"], [521, 2, 1, "", "face_normal"], [522, 2, 1, "", "face_plane"], [523, 2, 1, "", "face_points"], [524, 2, 1, "", "face_polygon"], [525, 2, 1, "", "face_sample"], [526, 2, 1, "", "face_skewness"], [527, 2, 1, "", "face_vertex_after"], [528, 2, 1, "", "face_vertex_ancestor"], [529, 2, 1, "", "face_vertex_before"], [530, 2, 1, "", "face_vertex_descendant"], [531, 2, 1, "", "face_vertices"], [532, 2, 1, "", "faces"], [533, 2, 1, "", "faces_attribute"], [534, 2, 1, "", "faces_attributes"], [535, 2, 1, "", "faces_on_boundaries"], [536, 2, 1, "", "faces_on_boundary"], [537, 2, 1, "", "faces_where"], [538, 2, 1, "", "faces_where_predicate"], [539, 2, 1, "", "fixed"], [540, 2, 1, "", "flip_cycles"], [541, 2, 1, "", "from_graph"], [542, 2, 1, "", "from_json"], [543, 2, 1, "", "from_jsonstring"], [544, 2, 1, "", "from_lines"], [545, 2, 1, "", "from_meshgrid"], [546, 2, 1, "", "from_obj"], [547, 2, 1, "", "from_off"], [548, 2, 1, "", "from_ply"], [549, 2, 1, "", "from_points"], [550, 2, 1, "", "from_polygons"], [551, 2, 1, "", "from_polyhedron"], [552, 2, 1, "", "from_polylines"], [553, 2, 1, "", "from_shape"], [554, 2, 1, "", "from_stl"], [555, 2, 1, "", "from_vertices_and_faces"], [556, 2, 1, "", "gkey_vertex"], [557, 2, 1, "", "halfedge_after"], [558, 2, 1, "", "halfedge_before"], [559, 2, 1, "", "halfedge_face"], [560, 2, 1, "", "halfedge_loop"], [561, 2, 1, "", "halfedge_loop_vertices"], [562, 2, 1, "", "halfedge_strip"], [563, 2, 1, "", "halfedge_strip_faces"], [564, 2, 1, "", "has_edge"], [565, 2, 1, "", "has_face"], [566, 2, 1, "", "has_halfedge"], [567, 2, 1, "", "has_vertex"], [568, 2, 1, "", "identify_constraints"], [569, 2, 1, "", "ind"], [570, 2, 1, "", "index_edge"], [571, 2, 1, "", "index_vertex"], [572, 2, 1, "", "insert_vertex"], [573, 2, 1, "", "is_closed"], [574, 2, 1, "", "is_connected"], [575, 2, 1, "", "is_edge_on_boundary"], [576, 2, 1, "", "is_empty"], [577, 2, 1, "", "is_face_on_boundary"], [578, 2, 1, "", "is_manifold"], [579, 2, 1, "", "is_orientable"], [580, 2, 1, "", "is_quadmesh"], [581, 2, 1, "", "is_regular"], [582, 2, 1, "", "is_trimesh"], [583, 2, 1, "", "is_valid"], [584, 2, 1, "", "is_vertex_connected"], [585, 2, 1, "", "is_vertex_on_boundary"], [586, 2, 1, "", "join"], [587, 2, 1, "", "laplacian_matrix"], [588, 2, 1, "", "leaf_edges"], [589, 2, 1, "", "leaves"], [590, 2, 1, "", "merge_faces"], [591, 2, 1, "", "normal"], [592, 2, 1, "", "number_of_edges"], [593, 2, 1, "", "number_of_faces"], [594, 2, 1, "", "number_of_vertices"], [595, 2, 1, "", "obb"], [596, 2, 1, "", "offset"], [597, 2, 1, "", "q"], [598, 2, 1, "", "quads_to_triangles"], [599, 2, 1, "", "remove_duplicate_vertices"], [600, 2, 1, "", "remove_unused_vertices"], [601, 2, 1, "", "rotate"], [602, 2, 1, "", "rotated"], [603, 2, 1, "", "scale"], [604, 2, 1, "", "scaled"], [605, 2, 1, "", "set_vertex_point"], [606, 2, 1, "", "sha256"], [607, 2, 1, "", "slice"], [608, 2, 1, "", "smooth_area"], [609, 2, 1, "", "smooth_centroid"], [610, 2, 1, "", "split_edge"], [611, 2, 1, "", "split_face"], [612, 2, 1, "", "split_strip"], [613, 2, 1, "", "subdivided"], [614, 2, 1, "", "summary"], [615, 2, 1, "", "thickened"], [616, 2, 1, "", "to_json"], [617, 2, 1, "", "to_jsonstring"], [618, 2, 1, "", "to_lines"], [619, 2, 1, "", "to_obj"], [620, 2, 1, "", "to_off"], [621, 2, 1, "", "to_ply"], [622, 2, 1, "", "to_points"], [623, 2, 1, "", "to_polygons"], [624, 2, 1, "", "to_polylines"], [625, 2, 1, "", "to_stl"], [626, 2, 1, "", "to_vertices_and_faces"], [627, 2, 1, "", "transform"], [628, 2, 1, "", "transform_numpy"], [629, 2, 1, "", "transformed"], [630, 2, 1, "", "transformed_numpy"], [631, 2, 1, "", "translate"], [632, 2, 1, "", "translated"], [633, 2, 1, "", "unify_cycles"], [634, 2, 1, "", "unset_edge_attribute"], [635, 2, 1, "", "unset_face_attribute"], [636, 2, 1, "", "unset_vertex_attribute"], [637, 2, 1, "", "unweld_edges"], [638, 2, 1, "", "unweld_vertices"], [639, 2, 1, "", "update_default_edge_attributes"], [640, 2, 1, "", "update_default_face_attributes"], [641, 2, 1, "", "update_default_vertex_attributes"], [642, 2, 1, "", "validate_data"], [643, 2, 1, "", "vertex_area"], [644, 2, 1, "", "vertex_attribute"], [645, 2, 1, "", "vertex_attributes"], [646, 2, 1, "", "vertex_coordinates"], [647, 2, 1, "", "vertex_curvature"], [648, 2, 1, "", "vertex_degree"], [649, 2, 1, "", "vertex_edges"], [650, 2, 1, "", "vertex_faces"], [651, 2, 1, "", "vertex_gkey"], [652, 2, 1, "", "vertex_index"], [653, 2, 1, "", "vertex_laplacian"], [654, 2, 1, "", "vertex_max_degree"], [655, 2, 1, "", "vertex_min_degree"], [656, 2, 1, "", "vertex_neighborhood"], [657, 2, 1, "", "vertex_neighborhood_centroid"], [658, 2, 1, "", "vertex_neighbors"], [659, 2, 1, "", "vertex_normal"], [660, 2, 1, "", "vertex_point"], [661, 2, 1, "", "vertex_sample"], [662, 2, 1, "", "vertices"], [663, 2, 1, "", "vertices_attribute"], [664, 2, 1, "", "vertices_attributes"], [665, 2, 1, "", "vertices_on_boundaries"], [666, 2, 1, "", "vertices_on_boundary"], [667, 2, 1, "", "vertices_points"], [668, 2, 1, "", "vertices_where"], [669, 2, 1, "", "vertices_where_predicate"], [670, 2, 1, "", "weld"], [671, 2, 1, "", "xy"]], "compas_ags.diagrams.FormGraph": [[673, 2, 1, "", "ToString"], [674, 2, 1, "", "aabb"], [675, 2, 1, "", "add_edge"], [676, 2, 1, "", "add_node"], [677, 2, 1, "", "adjacency_matrix"], [678, 2, 1, "", "clear"], [679, 2, 1, "", "complement"], [680, 2, 1, "", "compute_aabb"], [681, 2, 1, "", "compute_obb"], [682, 2, 1, "", "connected_edges"], [683, 2, 1, "", "connected_nodes"], [684, 2, 1, "", "connectivity_matrix"], [685, 2, 1, "", "copy"], [686, 2, 1, "", "count_crossings"], [687, 2, 1, "", "degree"], [688, 2, 1, "", "degree_in"], [689, 2, 1, "", "degree_matrix"], [690, 2, 1, "", "degree_out"], [691, 2, 1, "", "delete_edge"], [692, 2, 1, "", "delete_node"], [693, 2, 1, "", "edge_attribute"], [694, 2, 1, "", "edge_attributes"], [695, 2, 1, "", "edge_coordinates"], [696, 2, 1, "", "edge_direction"], [697, 2, 1, "", "edge_end"], [698, 2, 1, "", "edge_index"], [699, 2, 1, "", "edge_length"], [700, 2, 1, "", "edge_line"], [701, 2, 1, "", "edge_midpoint"], [702, 2, 1, "", "edge_point"], [703, 2, 1, "", "edge_sample"], [704, 2, 1, "", "edge_start"], [705, 2, 1, "", "edge_vector"], [706, 2, 1, "", "edges"], [707, 2, 1, "", "edges_attribute"], [708, 2, 1, "", "edges_attributes"], [709, 2, 1, "", "edges_where"], [710, 2, 1, "", "edges_where_predicate"], [711, 2, 1, "", "embed"], [712, 2, 1, "", "embed_in_plane"], [713, 2, 1, "", "exploded"], [714, 2, 1, "", "find_crossings"], [715, 2, 1, "", "find_cycles"], [716, 2, 1, "", "from_edges"], [717, 2, 1, "", "from_json"], [718, 2, 1, "", "from_jsonstring"], [719, 2, 1, "", "from_lines"], [720, 2, 1, "", "from_networkx"], [721, 2, 1, "", "from_nodes_and_edges"], [722, 2, 1, "", "from_obj"], [723, 2, 1, "", "from_pointcloud"], [724, 2, 1, "", "gkey_node"], [725, 2, 1, "", "has_edge"], [726, 2, 1, "", "has_node"], [727, 2, 1, "", "index_edge"], [728, 2, 1, "", "index_node"], [729, 2, 1, "", "is_2d"], [730, 2, 1, "", "is_connected"], [731, 2, 1, "", "is_crossed"], [732, 2, 1, "", "is_leaf"], [733, 2, 1, "", "is_node_connected"], [734, 2, 1, "", "is_planar"], [735, 2, 1, "", "is_planar_embedding"], [736, 2, 1, "", "is_xy"], [737, 2, 1, "", "join_edges"], [738, 2, 1, "", "laplacian_matrix"], [739, 2, 1, "", "leaves"], [740, 2, 1, "", "neighborhood"], [741, 2, 1, "", "neighbors"], [742, 2, 1, "", "neighbors_in"], [743, 2, 1, "", "neighbors_out"], [744, 2, 1, "", "node_attribute"], [745, 2, 1, "", "node_attributes"], [746, 2, 1, "", "node_coordinates"], [747, 2, 1, "", "node_edges"], [748, 2, 1, "", "node_gkey"], [749, 2, 1, "", "node_index"], [750, 2, 1, "", "node_laplacian"], [751, 2, 1, "", "node_neighborhood_centroid"], [752, 2, 1, "", "node_point"], [753, 2, 1, "", "node_sample"], [754, 2, 1, "", "nodes"], [755, 2, 1, "", "nodes_attribute"], [756, 2, 1, "", "nodes_attributes"], [757, 2, 1, "", "nodes_where"], [758, 2, 1, "", "nodes_where_predicate"], [759, 2, 1, "", "number_of_edges"], [760, 2, 1, "", "number_of_nodes"], [761, 2, 1, "", "obb"], [762, 2, 1, "", "rotate"], [763, 2, 1, "", "rotated"], [764, 2, 1, "", "scale"], [765, 2, 1, "", "scaled"], [766, 2, 1, "", "sha256"], [767, 2, 1, "", "shortest_path"], [768, 2, 1, "", "smooth"], [769, 2, 1, "", "split_edge"], [770, 2, 1, "", "summary"], [771, 2, 1, "", "to_json"], [772, 2, 1, "", "to_jsonstring"], [773, 2, 1, "", "to_lines"], [774, 2, 1, "", "to_networkx"], [775, 2, 1, "", "to_nodes_and_edges"], [776, 2, 1, "", "to_obj"], [777, 2, 1, "", "to_points"], [778, 2, 1, "", "transform"], [779, 2, 1, "", "transform_numpy"], [780, 2, 1, "", "transformed"], [781, 2, 1, "", "transformed_numpy"], [782, 2, 1, "", "translate"], [783, 2, 1, "", "translated"], [784, 2, 1, "", "unset_edge_attribute"], [785, 2, 1, "", "unset_node_attribute"], [786, 2, 1, "", "update_default_edge_attributes"], [787, 2, 1, "", "update_default_node_attributes"], [788, 2, 1, "", "validate_data"]], "compas_ags.exceptions": [[789, 3, 1, "", "SolutionError"]]}, "objtypes": {"0": "py:function", "1": "py:class", "2": "py:method", "3": "py:exception"}, "objnames": {"0": ["py", "function", "Python function"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"]}, "titleterms": {"api": 0, "refer": 0, "compas_ag": [1, 2, 3, 4, 795], "ag": 2, "core": 2, "graph": [2, 3, 799, 800], "static": [2, 795, 799, 800, 801], "load": [2, 793, 802], "path": [2, 793, 802], "diagram": [3, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 792], "except": 4, "class": 4, "compute_external_work": 5, "compute_internal_work": 6, "compute_internal_work_compress": 7, "compute_internal_work_tens": 8, "compute_loadpath": 9, "force_update_from_form": 10, "form_count_dof": 11, "form_identify_dof": 12, "form_update_from_forc": 13, "form_update_q_from_qind": 14, "optimise_loadpath": 15, "update_primal_from_du": 16, "update_q_from_qind": 17, "tostr": [19, 228, 452, 673], "aabb": [20, 229, 453, 674], "add_fac": [21, 230, 454], "add_vertex": [22, 231, 455], "adjacency_matrix": [23, 232, 456, 677], "area": [24, 234, 457], "centroid": [25, 235, 458], "clear": [26, 236, 459, 678], "collapse_edg": [27, 237, 460], "compute_aabb": [28, 238, 461, 680], "compute_obb": [29, 239, 462, 681], "connected_fac": [30, 240, 463], "connected_vertic": [31, 241, 464], "connectivity_matrix": [32, 242, 465, 684], "copi": [33, 244, 468, 685], "cull_vertic": [34, 245, 469], "degree_matrix": [35, 246, 470, 689], "delete_fac": [36, 247, 471], "delete_vertex": [37, 248, 472], "edge_attribut": [38, 39, 253, 254, 473, 474, 693, 694], "edge_coordin": [40, 255, 475, 695], "edge_direct": [41, 256, 476, 696], "edge_end": [42, 257, 477, 697], "edge_fac": [43, 258, 478], "edge_index": [44, 259, 481, 698], "edge_length": [45, 260, 482, 699], "edge_lin": [46, 261, 483, 700], "edge_loop": [47, 262, 484], "edge_midpoint": [48, 263, 485, 701], "edge_point": [49, 264, 486, 702], "edge_sampl": [50, 265, 487, 703], "edge_start": [51, 266, 488, 704], "edge_strip": [52, 267, 489], "edge_vector": [53, 268, 490, 705], "edg": [54, 269, 491, 706], "edges_attribut": [55, 56, 270, 271, 492, 493, 707, 708], "edges_on_boundari": [57, 58, 272, 273, 494, 495], "edges_wher": [59, 274, 496, 709], "edges_where_pred": [60, 276, 497, 710], "euler": [61, 277, 498], "explod": [62, 278, 499, 713], "face_adjacency_halfedg": [63, 279, 500], "face_adjacency_vertic": [64, 280, 501], "face_area": [65, 281, 502], "face_aspect_ratio": [66, 282, 503], "face_attribut": [67, 68, 283, 284, 504, 505], "face_cent": [69, 285, 506], "face_centroid": [70, 286, 507], "face_circl": [71, 287, 508], "face_coordin": [72, 288, 509], "face_corn": [73, 289, 510], "face_curvatur": [74, 290, 511], "face_degre": [75, 291, 512], "face_flat": [76, 292, 513], "face_fram": [77, 293, 514], "face_halfedg": [78, 294, 515], "face_matrix": [79, 295, 516], "face_max_degre": [80, 296, 517], "face_min_degre": [81, 297, 518], "face_neighborhood": [82, 298, 519], "face_neighbor": [83, 299, 520], "face_norm": [84, 300, 521], "face_plan": [85, 301, 522], "face_point": [86, 302, 523], "face_polygon": [87, 303, 524], "face_sampl": [88, 304, 525], "face_skew": [89, 305, 526], "face_vertex_aft": [90, 306, 527], "face_vertex_ancestor": [91, 307, 528], "face_vertex_befor": [92, 308, 529], "face_vertex_descend": [93, 309, 530], "face_vertic": [94, 310, 531], "face": [95, 311, 532], "faces_attribut": [96, 97, 312, 313, 533, 534], "faces_on_boundari": [98, 99, 314, 315, 535, 536], "faces_wher": [100, 316, 537], "faces_where_pred": [101, 317, 538], "flip_cycl": [102, 319, 540], "from_json": [103, 321, 542, 717], "from_jsonstr": [104, 322, 543, 718], "from_lin": [105, 323, 544, 719], "from_meshgrid": [106, 324, 545], "from_obj": [107, 325, 546, 722], "from_off": [108, 326, 547], "from_pli": [109, 327, 548], "from_point": [110, 328, 549], "from_polygon": [111, 329, 550], "from_polyhedron": [112, 330, 551], "from_polylin": [113, 331, 552], "from_shap": [114, 332, 553], "from_stl": [115, 333, 554], "from_vertices_and_fac": [116, 334, 555], "gkey_vertex": [117, 335, 556], "halfedge_aft": [118, 336, 557], "halfedge_befor": [119, 337, 558], "halfedge_fac": [120, 338, 559], "halfedge_loop": [121, 339, 560], "halfedge_loop_vertic": [122, 340, 561], "halfedge_strip": [123, 341, 562], "halfedge_strip_fac": [124, 342, 563], "has_edg": [125, 343, 564, 725], "has_fac": [126, 344, 565], "has_halfedg": [127, 345, 566], "has_vertex": [128, 346, 567], "index_edg": [129, 347, 570, 727], "index_vertex": [130, 348, 571], "insert_vertex": [131, 349, 572], "is_clos": [132, 350, 573], "is_connect": [133, 351, 574, 730], "is_edge_on_boundari": [134, 356, 575], "is_empti": [135, 357, 576], "is_face_on_boundari": [136, 358, 577], "is_manifold": [137, 359, 578], "is_orient": [138, 360, 579], "is_quadmesh": [139, 361, 580], "is_regular": [140, 362, 581], "is_trimesh": [141, 363, 582], "is_valid": [142, 364, 583], "is_vertex_connect": [143, 365, 584], "is_vertex_on_boundari": [144, 366, 585], "join": [145, 367, 586], "laplacian_matrix": [146, 368, 587, 738], "merge_fac": [147, 369, 590], "normal": [148, 370, 591], "number_of_edg": [149, 371, 592, 759], "number_of_fac": [150, 372, 593], "number_of_vertic": [151, 373, 594], "obb": [152, 374, 595, 761], "offset": [153, 375, 596], "quads_to_triangl": [154, 377, 598], "remove_duplicate_vertic": [155, 378, 599], "remove_unused_vertic": [156, 379, 600], "rotat": [157, 158, 380, 381, 601, 602, 762, 763], "scale": [159, 160, 382, 383, 603, 604, 764, 765], "set_vertex_point": [161, 384, 605], "sha256": [162, 385, 606, 766], "slice": [163, 386, 607], "smooth_area": [164, 387, 608], "smooth_centroid": [165, 388, 609], "split_edg": [166, 389, 610, 769], "split_fac": [167, 390, 611], "split_strip": [168, 391, 612], "subdivid": [169, 392, 613], "summari": [170, 393, 614, 770], "thicken": [171, 394, 615], "to_json": [172, 395, 616, 771], "to_jsonstr": [173, 396, 617, 772], "to_lin": [174, 397, 618, 773], "to_obj": [175, 398, 619, 776], "to_off": [176, 399, 620], "to_pli": [177, 400, 621], "to_point": [178, 401, 622, 777], "to_polygon": [179, 402, 623], "to_polylin": [180, 403, 624], "to_stl": [181, 404, 625], "to_vertices_and_fac": [182, 405, 626], "transform": [183, 185, 406, 408, 627, 629, 778, 780], "transform_numpi": [184, 407, 628, 779], "transformed_numpi": [186, 409, 630, 781], "translat": [187, 188, 410, 411, 631, 632, 782, 783], "unify_cycl": [189, 412, 633], "unset_edge_attribut": [190, 413, 634, 784], "unset_face_attribut": [191, 414, 635], "unset_vertex_attribut": [192, 415, 636], "unweld_edg": [193, 416, 637], "unweld_vertic": [194, 417, 638], "update_default_edge_attribut": [195, 418, 639, 786], "update_default_face_attribut": [196, 419, 640], "update_default_vertex_attribut": [197, 420, 641], "validate_data": [198, 421, 642, 788], "vertex_area": [199, 422, 643], "vertex_attribut": [200, 201, 423, 424, 644, 645], "vertex_coordin": [202, 425, 646], "vertex_curvatur": [203, 426, 647], "vertex_degre": [204, 427, 648], "vertex_edg": [205, 428, 649], "vertex_fac": [206, 429, 650], "vertex_gkei": [207, 430, 651], "vertex_index": [208, 431, 652], "vertex_laplacian": [209, 432, 653], "vertex_max_degre": [210, 433, 654], "vertex_min_degre": [211, 434, 655], "vertex_neighborhood": [212, 435, 656], "vertex_neighborhood_centroid": [213, 436, 657], "vertex_neighbor": [214, 437, 658], "vertex_norm": [215, 438, 659], "vertex_point": [216, 439, 660], "vertex_sampl": [217, 440, 661], "vertic": [218, 441, 662], "vertices_attribut": [219, 220, 442, 443, 663, 664], "vertices_on_boundari": [221, 222, 444, 445, 665, 666], "vertices_point": [223, 446, 667], "vertices_wher": [224, 447, 668], "vertices_where_pred": [225, 448, 669], "weld": [226, 449, 670], "forcediagram": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450], "anchor": 233, "constraints_from_du": 243, "dual_edg": 249, "dual_edge_angledevi": 250, "dual_edge_forc": 251, "dual_edge_targetforc": 252, "edges_where_du": 275, "fix": [318, 539], "from_formdiagram": 320, "is_dual_edge_extern": 352, "is_dual_edge_ind": 353, "is_dual_edge_load": 354, "is_dual_edge_react": 355, "ordered_edg": 376, "xy": [450, 671], "formdiagram": [451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671], "constrain": 466, "constraint": 467, "edge_forc": 479, "edge_forcedens": 480, "from_graph": 541, "identify_constraint": 568, "ind": 569, "leaf_edg": 588, "leav": [589, 739], "q": 597, "formgraph": [672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788], "add_edg": 675, "add_nod": 676, "complement": 679, "connected_edg": 682, "connected_nod": 683, "count_cross": 686, "degre": 687, "degree_in": 688, "degree_out": 690, "delete_edg": 691, "delete_nod": 692, "emb": 711, "embed_in_plan": 712, "find_cross": 714, "find_cycl": 715, "from_edg": 716, "from_networkx": 720, "from_nodes_and_edg": 721, "from_pointcloud": 723, "gkey_nod": 724, "has_nod": 726, "index_nod": 728, "is_2d": 729, "is_cross": 731, "is_leaf": 732, "is_node_connect": 733, "is_planar": 734, "is_planar_embed": 735, "is_xi": 736, "join_edg": 737, "neighborhood": 740, "neighbor": 741, "neighbors_in": 742, "neighbors_out": 743, "node_attribut": [744, 745], "node_coordin": 746, "node_edg": 747, "node_gkei": 748, "node_index": 749, "node_laplacian": 750, "node_neighborhood_centroid": 751, "node_point": 752, "node_sampl": 753, "node": 754, "nodes_attribut": [755, 756], "nodes_wher": 757, "nodes_where_pred": 758, "number_of_nod": 760, "shortest_path": 767, "smooth": 768, "to_networkx": 774, "to_nodes_and_edg": 775, "unset_node_attribut": 785, "update_default_node_attribut": 787, "solutionerror": 789, "exampl": [790, 791], "basic": 791, "updat": 792, "form": 792, "optimis": [793, 802], "fink": 794, "truss": 794, "document": 795, "graphic": [795, 801], "implement": 795, "tabl": 795, "content": 795, "instal": 796, "stabl": 796, "latest": 796, "develop": 796, "licens": 797, "public": 798, "algebra": [799, 800], "bi": 800, "direct": 800, "interact": 801, "funicular": 802, "network": 802}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"API Reference": [[0, "api-reference"]], "compas_ags": [[1, "compas-ags"]], "compas_ags.ags": [[2, "compas-ags-ags"]], "Core": [[2, "core"]], "Graph Statics": [[2, "graph-statics"]], "Load Path": [[2, "load-path"]], "compas_ags.diagrams": [[3, "compas-ags-diagrams"]], "Graphs": [[3, "graphs"]], "Diagrams": [[3, "diagrams"]], "compas_ags.exceptions": [[4, "compas-ags-exceptions"]], "Classes": [[4, "classes"]], "compute_external_work": [[5, "compute-external-work"]], "compute_internal_work": [[6, "compute-internal-work"]], "compute_internal_work_compression": [[7, "compute-internal-work-compression"]], "compute_internal_work_tension": [[8, "compute-internal-work-tension"]], "compute_loadpath": [[9, "compute-loadpath"]], "force_update_from_form": [[10, "force-update-from-form"]], "form_count_dof": [[11, "form-count-dof"]], "form_identify_dof": [[12, "form-identify-dof"]], "form_update_from_force": [[13, "form-update-from-force"]], "form_update_q_from_qind": [[14, "form-update-q-from-qind"]], "optimise_loadpath": [[15, "optimise-loadpath"]], "update_primal_from_dual": [[16, "update-primal-from-dual"]], "update_q_from_qind": [[17, "update-q-from-qind"]], "Diagram": [[18, "diagram"]], "Diagram.ToString": [[19, "diagram-tostring"]], "Diagram.aabb": [[20, "diagram-aabb"]], "Diagram.add_face": [[21, "diagram-add-face"]], "Diagram.add_vertex": [[22, "diagram-add-vertex"]], "Diagram.adjacency_matrix": [[23, "diagram-adjacency-matrix"]], "Diagram.area": [[24, "diagram-area"]], "Diagram.centroid": [[25, "diagram-centroid"]], "Diagram.clear": [[26, "diagram-clear"]], "Diagram.collapse_edge": [[27, "diagram-collapse-edge"]], "Diagram.compute_aabb": [[28, "diagram-compute-aabb"]], "Diagram.compute_obb": [[29, "diagram-compute-obb"]], "Diagram.connected_faces": [[30, "diagram-connected-faces"]], "Diagram.connected_vertices": [[31, "diagram-connected-vertices"]], "Diagram.connectivity_matrix": [[32, "diagram-connectivity-matrix"]], "Diagram.copy": [[33, "diagram-copy"]], "Diagram.cull_vertices": [[34, "diagram-cull-vertices"]], "Diagram.degree_matrix": [[35, "diagram-degree-matrix"]], "Diagram.delete_face": [[36, "diagram-delete-face"]], "Diagram.delete_vertex": [[37, "diagram-delete-vertex"]], "Diagram.edge_attribute": [[38, "diagram-edge-attribute"]], "Diagram.edge_attributes": [[39, "diagram-edge-attributes"]], "Diagram.edge_coordinates": [[40, "diagram-edge-coordinates"]], "Diagram.edge_direction": [[41, "diagram-edge-direction"]], "Diagram.edge_end": [[42, "diagram-edge-end"]], "Diagram.edge_faces": [[43, "diagram-edge-faces"]], "Diagram.edge_index": [[44, "diagram-edge-index"]], "Diagram.edge_length": [[45, "diagram-edge-length"]], "Diagram.edge_line": [[46, "diagram-edge-line"]], "Diagram.edge_loop": [[47, "diagram-edge-loop"]], "Diagram.edge_midpoint": [[48, "diagram-edge-midpoint"]], "Diagram.edge_point": [[49, "diagram-edge-point"]], "Diagram.edge_sample": [[50, "diagram-edge-sample"]], "Diagram.edge_start": [[51, "diagram-edge-start"]], "Diagram.edge_strip": [[52, "diagram-edge-strip"]], "Diagram.edge_vector": [[53, "diagram-edge-vector"]], "Diagram.edges": [[54, "diagram-edges"]], "Diagram.edges_attribute": [[55, "diagram-edges-attribute"]], "Diagram.edges_attributes": [[56, "diagram-edges-attributes"]], "Diagram.edges_on_boundaries": [[57, "diagram-edges-on-boundaries"]], "Diagram.edges_on_boundary": [[58, "diagram-edges-on-boundary"]], "Diagram.edges_where": [[59, "diagram-edges-where"]], "Diagram.edges_where_predicate": [[60, "diagram-edges-where-predicate"]], "Diagram.euler": [[61, "diagram-euler"]], "Diagram.exploded": [[62, "diagram-exploded"]], "Diagram.face_adjacency_halfedge": [[63, "diagram-face-adjacency-halfedge"]], "Diagram.face_adjacency_vertices": [[64, "diagram-face-adjacency-vertices"]], "Diagram.face_area": [[65, "diagram-face-area"]], "Diagram.face_aspect_ratio": [[66, "diagram-face-aspect-ratio"]], "Diagram.face_attribute": [[67, "diagram-face-attribute"]], "Diagram.face_attributes": [[68, "diagram-face-attributes"]], "Diagram.face_center": [[69, "diagram-face-center"]], "Diagram.face_centroid": [[70, "diagram-face-centroid"]], "Diagram.face_circle": [[71, "diagram-face-circle"]], "Diagram.face_coordinates": [[72, "diagram-face-coordinates"]], "Diagram.face_corners": [[73, "diagram-face-corners"]], "Diagram.face_curvature": [[74, "diagram-face-curvature"]], "Diagram.face_degree": [[75, "diagram-face-degree"]], "Diagram.face_flatness": [[76, "diagram-face-flatness"]], "Diagram.face_frame": [[77, "diagram-face-frame"]], "Diagram.face_halfedges": [[78, "diagram-face-halfedges"]], "Diagram.face_matrix": [[79, "diagram-face-matrix"]], "Diagram.face_max_degree": [[80, "diagram-face-max-degree"]], "Diagram.face_min_degree": [[81, "diagram-face-min-degree"]], "Diagram.face_neighborhood": [[82, "diagram-face-neighborhood"]], "Diagram.face_neighbors": [[83, "diagram-face-neighbors"]], "Diagram.face_normal": [[84, "diagram-face-normal"]], "Diagram.face_plane": [[85, "diagram-face-plane"]], "Diagram.face_points": [[86, "diagram-face-points"]], "Diagram.face_polygon": [[87, "diagram-face-polygon"]], "Diagram.face_sample": [[88, "diagram-face-sample"]], "Diagram.face_skewness": [[89, "diagram-face-skewness"]], "Diagram.face_vertex_after": [[90, "diagram-face-vertex-after"]], "Diagram.face_vertex_ancestor": [[91, "diagram-face-vertex-ancestor"]], "Diagram.face_vertex_before": [[92, "diagram-face-vertex-before"]], "Diagram.face_vertex_descendant": [[93, "diagram-face-vertex-descendant"]], "Diagram.face_vertices": [[94, "diagram-face-vertices"]], "Diagram.faces": [[95, "diagram-faces"]], "Diagram.faces_attribute": [[96, "diagram-faces-attribute"]], "Diagram.faces_attributes": [[97, "diagram-faces-attributes"]], "Diagram.faces_on_boundaries": [[98, "diagram-faces-on-boundaries"]], "Diagram.faces_on_boundary": [[99, "diagram-faces-on-boundary"]], "Diagram.faces_where": [[100, "diagram-faces-where"]], "Diagram.faces_where_predicate": [[101, "diagram-faces-where-predicate"]], "Diagram.flip_cycles": [[102, "diagram-flip-cycles"]], "Diagram.from_json": [[103, "diagram-from-json"]], "Diagram.from_jsonstring": [[104, "diagram-from-jsonstring"]], "Diagram.from_lines": [[105, "diagram-from-lines"]], "Diagram.from_meshgrid": [[106, "diagram-from-meshgrid"]], "Diagram.from_obj": [[107, "diagram-from-obj"]], "Diagram.from_off": [[108, "diagram-from-off"]], "Diagram.from_ply": [[109, "diagram-from-ply"]], "Diagram.from_points": [[110, "diagram-from-points"]], "Diagram.from_polygons": [[111, "diagram-from-polygons"]], "Diagram.from_polyhedron": [[112, "diagram-from-polyhedron"]], "Diagram.from_polylines": [[113, "diagram-from-polylines"]], "Diagram.from_shape": [[114, "diagram-from-shape"]], "Diagram.from_stl": [[115, "diagram-from-stl"]], "Diagram.from_vertices_and_faces": [[116, "diagram-from-vertices-and-faces"]], "Diagram.gkey_vertex": [[117, "diagram-gkey-vertex"]], "Diagram.halfedge_after": [[118, "diagram-halfedge-after"]], "Diagram.halfedge_before": [[119, "diagram-halfedge-before"]], "Diagram.halfedge_face": [[120, "diagram-halfedge-face"]], "Diagram.halfedge_loop": [[121, "diagram-halfedge-loop"]], "Diagram.halfedge_loop_vertices": [[122, "diagram-halfedge-loop-vertices"]], "Diagram.halfedge_strip": [[123, "diagram-halfedge-strip"]], "Diagram.halfedge_strip_faces": [[124, "diagram-halfedge-strip-faces"]], "Diagram.has_edge": [[125, "diagram-has-edge"]], "Diagram.has_face": [[126, "diagram-has-face"]], "Diagram.has_halfedge": [[127, "diagram-has-halfedge"]], "Diagram.has_vertex": [[128, "diagram-has-vertex"]], "Diagram.index_edge": [[129, "diagram-index-edge"]], "Diagram.index_vertex": [[130, "diagram-index-vertex"]], "Diagram.insert_vertex": [[131, "diagram-insert-vertex"]], "Diagram.is_closed": [[132, "diagram-is-closed"]], "Diagram.is_connected": [[133, "diagram-is-connected"]], "Diagram.is_edge_on_boundary": [[134, "diagram-is-edge-on-boundary"]], "Diagram.is_empty": [[135, "diagram-is-empty"]], "Diagram.is_face_on_boundary": [[136, "diagram-is-face-on-boundary"]], "Diagram.is_manifold": [[137, "diagram-is-manifold"]], "Diagram.is_orientable": [[138, "diagram-is-orientable"]], "Diagram.is_quadmesh": [[139, "diagram-is-quadmesh"]], "Diagram.is_regular": [[140, "diagram-is-regular"]], "Diagram.is_trimesh": [[141, "diagram-is-trimesh"]], "Diagram.is_valid": [[142, "diagram-is-valid"]], "Diagram.is_vertex_connected": [[143, "diagram-is-vertex-connected"]], "Diagram.is_vertex_on_boundary": [[144, "diagram-is-vertex-on-boundary"]], "Diagram.join": [[145, "diagram-join"]], "Diagram.laplacian_matrix": [[146, "diagram-laplacian-matrix"]], "Diagram.merge_faces": [[147, "diagram-merge-faces"]], "Diagram.normal": [[148, "diagram-normal"]], "Diagram.number_of_edges": [[149, "diagram-number-of-edges"]], "Diagram.number_of_faces": [[150, "diagram-number-of-faces"]], "Diagram.number_of_vertices": [[151, "diagram-number-of-vertices"]], "Diagram.obb": [[152, "diagram-obb"]], "Diagram.offset": [[153, "diagram-offset"]], "Diagram.quads_to_triangles": [[154, "diagram-quads-to-triangles"]], "Diagram.remove_duplicate_vertices": [[155, "diagram-remove-duplicate-vertices"]], "Diagram.remove_unused_vertices": [[156, "diagram-remove-unused-vertices"]], "Diagram.rotate": [[157, "diagram-rotate"]], "Diagram.rotated": [[158, "diagram-rotated"]], "Diagram.scale": [[159, "diagram-scale"]], "Diagram.scaled": [[160, "diagram-scaled"]], "Diagram.set_vertex_point": [[161, "diagram-set-vertex-point"]], "Diagram.sha256": [[162, "diagram-sha256"]], "Diagram.slice": [[163, "diagram-slice"]], "Diagram.smooth_area": [[164, "diagram-smooth-area"]], "Diagram.smooth_centroid": [[165, "diagram-smooth-centroid"]], "Diagram.split_edge": [[166, "diagram-split-edge"]], "Diagram.split_face": [[167, "diagram-split-face"]], "Diagram.split_strip": [[168, "diagram-split-strip"]], "Diagram.subdivided": [[169, "diagram-subdivided"]], "Diagram.summary": [[170, "diagram-summary"]], "Diagram.thickened": [[171, "diagram-thickened"]], "Diagram.to_json": [[172, "diagram-to-json"]], "Diagram.to_jsonstring": [[173, "diagram-to-jsonstring"]], "Diagram.to_lines": [[174, "diagram-to-lines"]], "Diagram.to_obj": [[175, "diagram-to-obj"]], "Diagram.to_off": [[176, "diagram-to-off"]], "Diagram.to_ply": [[177, "diagram-to-ply"]], "Diagram.to_points": [[178, "diagram-to-points"]], "Diagram.to_polygons": [[179, "diagram-to-polygons"]], "Diagram.to_polylines": [[180, "diagram-to-polylines"]], "Diagram.to_stl": [[181, "diagram-to-stl"]], "Diagram.to_vertices_and_faces": [[182, "diagram-to-vertices-and-faces"]], "Diagram.transform": [[183, "diagram-transform"]], "Diagram.transform_numpy": [[184, "diagram-transform-numpy"]], "Diagram.transformed": [[185, "diagram-transformed"]], "Diagram.transformed_numpy": [[186, "diagram-transformed-numpy"]], "Diagram.translate": [[187, "diagram-translate"]], "Diagram.translated": [[188, "diagram-translated"]], "Diagram.unify_cycles": [[189, "diagram-unify-cycles"]], "Diagram.unset_edge_attribute": [[190, "diagram-unset-edge-attribute"]], "Diagram.unset_face_attribute": [[191, "diagram-unset-face-attribute"]], "Diagram.unset_vertex_attribute": [[192, "diagram-unset-vertex-attribute"]], "Diagram.unweld_edges": [[193, "diagram-unweld-edges"]], "Diagram.unweld_vertices": [[194, "diagram-unweld-vertices"]], "Diagram.update_default_edge_attributes": [[195, "diagram-update-default-edge-attributes"]], "Diagram.update_default_face_attributes": [[196, "diagram-update-default-face-attributes"]], "Diagram.update_default_vertex_attributes": [[197, "diagram-update-default-vertex-attributes"]], "Diagram.validate_data": [[198, "diagram-validate-data"]], "Diagram.vertex_area": [[199, "diagram-vertex-area"]], "Diagram.vertex_attribute": [[200, "diagram-vertex-attribute"]], "Diagram.vertex_attributes": [[201, "diagram-vertex-attributes"]], "Diagram.vertex_coordinates": [[202, "diagram-vertex-coordinates"]], "Diagram.vertex_curvature": [[203, "diagram-vertex-curvature"]], "Diagram.vertex_degree": [[204, "diagram-vertex-degree"]], "Diagram.vertex_edges": [[205, "diagram-vertex-edges"]], "Diagram.vertex_faces": [[206, "diagram-vertex-faces"]], "Diagram.vertex_gkey": [[207, "diagram-vertex-gkey"]], "Diagram.vertex_index": [[208, "diagram-vertex-index"]], "Diagram.vertex_laplacian": [[209, "diagram-vertex-laplacian"]], "Diagram.vertex_max_degree": [[210, "diagram-vertex-max-degree"]], "Diagram.vertex_min_degree": [[211, "diagram-vertex-min-degree"]], "Diagram.vertex_neighborhood": [[212, "diagram-vertex-neighborhood"]], "Diagram.vertex_neighborhood_centroid": [[213, "diagram-vertex-neighborhood-centroid"]], "Diagram.vertex_neighbors": [[214, "diagram-vertex-neighbors"]], "Diagram.vertex_normal": [[215, "diagram-vertex-normal"]], "Diagram.vertex_point": [[216, "diagram-vertex-point"]], "Diagram.vertex_sample": [[217, "diagram-vertex-sample"]], "Diagram.vertices": [[218, "diagram-vertices"]], "Diagram.vertices_attribute": [[219, "diagram-vertices-attribute"]], "Diagram.vertices_attributes": [[220, "diagram-vertices-attributes"]], "Diagram.vertices_on_boundaries": [[221, "diagram-vertices-on-boundaries"]], "Diagram.vertices_on_boundary": [[222, "diagram-vertices-on-boundary"]], "Diagram.vertices_points": [[223, "diagram-vertices-points"]], "Diagram.vertices_where": [[224, "diagram-vertices-where"]], "Diagram.vertices_where_predicate": [[225, "diagram-vertices-where-predicate"]], "Diagram.weld": [[226, "diagram-weld"]], "ForceDiagram": [[227, "forcediagram"]], "ForceDiagram.ToString": [[228, "forcediagram-tostring"]], "ForceDiagram.aabb": [[229, "forcediagram-aabb"]], "ForceDiagram.add_face": [[230, "forcediagram-add-face"]], "ForceDiagram.add_vertex": [[231, "forcediagram-add-vertex"]], "ForceDiagram.adjacency_matrix": [[232, "forcediagram-adjacency-matrix"]], "ForceDiagram.anchor": [[233, "forcediagram-anchor"]], "ForceDiagram.area": [[234, "forcediagram-area"]], "ForceDiagram.centroid": [[235, "forcediagram-centroid"]], "ForceDiagram.clear": [[236, "forcediagram-clear"]], "ForceDiagram.collapse_edge": [[237, "forcediagram-collapse-edge"]], "ForceDiagram.compute_aabb": [[238, "forcediagram-compute-aabb"]], "ForceDiagram.compute_obb": [[239, "forcediagram-compute-obb"]], "ForceDiagram.connected_faces": [[240, "forcediagram-connected-faces"]], "ForceDiagram.connected_vertices": [[241, "forcediagram-connected-vertices"]], "ForceDiagram.connectivity_matrix": [[242, "forcediagram-connectivity-matrix"]], "ForceDiagram.constraints_from_dual": [[243, "forcediagram-constraints-from-dual"]], "ForceDiagram.copy": [[244, "forcediagram-copy"]], "ForceDiagram.cull_vertices": [[245, "forcediagram-cull-vertices"]], "ForceDiagram.degree_matrix": [[246, "forcediagram-degree-matrix"]], "ForceDiagram.delete_face": [[247, "forcediagram-delete-face"]], "ForceDiagram.delete_vertex": [[248, "forcediagram-delete-vertex"]], "ForceDiagram.dual_edge": [[249, "forcediagram-dual-edge"]], "ForceDiagram.dual_edge_angledeviation": [[250, "forcediagram-dual-edge-angledeviation"]], "ForceDiagram.dual_edge_force": [[251, "forcediagram-dual-edge-force"]], "ForceDiagram.dual_edge_targetforce": [[252, "forcediagram-dual-edge-targetforce"]], "ForceDiagram.edge_attribute": [[253, "forcediagram-edge-attribute"]], "ForceDiagram.edge_attributes": [[254, "forcediagram-edge-attributes"]], "ForceDiagram.edge_coordinates": [[255, "forcediagram-edge-coordinates"]], "ForceDiagram.edge_direction": [[256, "forcediagram-edge-direction"]], "ForceDiagram.edge_end": [[257, "forcediagram-edge-end"]], "ForceDiagram.edge_faces": [[258, "forcediagram-edge-faces"]], "ForceDiagram.edge_index": [[259, "forcediagram-edge-index"]], "ForceDiagram.edge_length": [[260, "forcediagram-edge-length"]], "ForceDiagram.edge_line": [[261, "forcediagram-edge-line"]], "ForceDiagram.edge_loop": [[262, "forcediagram-edge-loop"]], "ForceDiagram.edge_midpoint": [[263, "forcediagram-edge-midpoint"]], "ForceDiagram.edge_point": [[264, "forcediagram-edge-point"]], "ForceDiagram.edge_sample": [[265, "forcediagram-edge-sample"]], "ForceDiagram.edge_start": [[266, "forcediagram-edge-start"]], "ForceDiagram.edge_strip": [[267, "forcediagram-edge-strip"]], "ForceDiagram.edge_vector": [[268, "forcediagram-edge-vector"]], "ForceDiagram.edges": [[269, "forcediagram-edges"]], "ForceDiagram.edges_attribute": [[270, "forcediagram-edges-attribute"]], "ForceDiagram.edges_attributes": [[271, "forcediagram-edges-attributes"]], "ForceDiagram.edges_on_boundaries": [[272, "forcediagram-edges-on-boundaries"]], "ForceDiagram.edges_on_boundary": [[273, "forcediagram-edges-on-boundary"]], "ForceDiagram.edges_where": [[274, "forcediagram-edges-where"]], "ForceDiagram.edges_where_dual": [[275, "forcediagram-edges-where-dual"]], "ForceDiagram.edges_where_predicate": [[276, "forcediagram-edges-where-predicate"]], "ForceDiagram.euler": [[277, "forcediagram-euler"]], "ForceDiagram.exploded": [[278, "forcediagram-exploded"]], "ForceDiagram.face_adjacency_halfedge": [[279, "forcediagram-face-adjacency-halfedge"]], "ForceDiagram.face_adjacency_vertices": [[280, "forcediagram-face-adjacency-vertices"]], "ForceDiagram.face_area": [[281, "forcediagram-face-area"]], "ForceDiagram.face_aspect_ratio": [[282, "forcediagram-face-aspect-ratio"]], "ForceDiagram.face_attribute": [[283, "forcediagram-face-attribute"]], "ForceDiagram.face_attributes": [[284, "forcediagram-face-attributes"]], "ForceDiagram.face_center": [[285, "forcediagram-face-center"]], "ForceDiagram.face_centroid": [[286, "forcediagram-face-centroid"]], "ForceDiagram.face_circle": [[287, "forcediagram-face-circle"]], "ForceDiagram.face_coordinates": [[288, "forcediagram-face-coordinates"]], "ForceDiagram.face_corners": [[289, "forcediagram-face-corners"]], "ForceDiagram.face_curvature": [[290, "forcediagram-face-curvature"]], "ForceDiagram.face_degree": [[291, "forcediagram-face-degree"]], "ForceDiagram.face_flatness": [[292, "forcediagram-face-flatness"]], "ForceDiagram.face_frame": [[293, "forcediagram-face-frame"]], "ForceDiagram.face_halfedges": [[294, "forcediagram-face-halfedges"]], "ForceDiagram.face_matrix": [[295, "forcediagram-face-matrix"]], "ForceDiagram.face_max_degree": [[296, "forcediagram-face-max-degree"]], "ForceDiagram.face_min_degree": [[297, "forcediagram-face-min-degree"]], "ForceDiagram.face_neighborhood": [[298, "forcediagram-face-neighborhood"]], "ForceDiagram.face_neighbors": [[299, "forcediagram-face-neighbors"]], "ForceDiagram.face_normal": [[300, "forcediagram-face-normal"]], "ForceDiagram.face_plane": [[301, "forcediagram-face-plane"]], "ForceDiagram.face_points": [[302, "forcediagram-face-points"]], "ForceDiagram.face_polygon": [[303, "forcediagram-face-polygon"]], "ForceDiagram.face_sample": [[304, "forcediagram-face-sample"]], "ForceDiagram.face_skewness": [[305, "forcediagram-face-skewness"]], "ForceDiagram.face_vertex_after": [[306, "forcediagram-face-vertex-after"]], "ForceDiagram.face_vertex_ancestor": [[307, "forcediagram-face-vertex-ancestor"]], "ForceDiagram.face_vertex_before": [[308, "forcediagram-face-vertex-before"]], "ForceDiagram.face_vertex_descendant": [[309, "forcediagram-face-vertex-descendant"]], "ForceDiagram.face_vertices": [[310, "forcediagram-face-vertices"]], "ForceDiagram.faces": [[311, "forcediagram-faces"]], "ForceDiagram.faces_attribute": [[312, "forcediagram-faces-attribute"]], "ForceDiagram.faces_attributes": [[313, "forcediagram-faces-attributes"]], "ForceDiagram.faces_on_boundaries": [[314, "forcediagram-faces-on-boundaries"]], "ForceDiagram.faces_on_boundary": [[315, "forcediagram-faces-on-boundary"]], "ForceDiagram.faces_where": [[316, "forcediagram-faces-where"]], "ForceDiagram.faces_where_predicate": [[317, "forcediagram-faces-where-predicate"]], "ForceDiagram.fixed": [[318, "forcediagram-fixed"]], "ForceDiagram.flip_cycles": [[319, "forcediagram-flip-cycles"]], "ForceDiagram.from_formdiagram": [[320, "forcediagram-from-formdiagram"]], "ForceDiagram.from_json": [[321, "forcediagram-from-json"]], "ForceDiagram.from_jsonstring": [[322, "forcediagram-from-jsonstring"]], "ForceDiagram.from_lines": [[323, "forcediagram-from-lines"]], "ForceDiagram.from_meshgrid": [[324, "forcediagram-from-meshgrid"]], "ForceDiagram.from_obj": [[325, "forcediagram-from-obj"]], "ForceDiagram.from_off": [[326, "forcediagram-from-off"]], "ForceDiagram.from_ply": [[327, "forcediagram-from-ply"]], "ForceDiagram.from_points": [[328, "forcediagram-from-points"]], "ForceDiagram.from_polygons": [[329, "forcediagram-from-polygons"]], "ForceDiagram.from_polyhedron": [[330, "forcediagram-from-polyhedron"]], "ForceDiagram.from_polylines": [[331, "forcediagram-from-polylines"]], "ForceDiagram.from_shape": [[332, "forcediagram-from-shape"]], "ForceDiagram.from_stl": [[333, "forcediagram-from-stl"]], "ForceDiagram.from_vertices_and_faces": [[334, "forcediagram-from-vertices-and-faces"]], "ForceDiagram.gkey_vertex": [[335, "forcediagram-gkey-vertex"]], "ForceDiagram.halfedge_after": [[336, "forcediagram-halfedge-after"]], "ForceDiagram.halfedge_before": [[337, "forcediagram-halfedge-before"]], "ForceDiagram.halfedge_face": [[338, "forcediagram-halfedge-face"]], "ForceDiagram.halfedge_loop": [[339, "forcediagram-halfedge-loop"]], "ForceDiagram.halfedge_loop_vertices": [[340, "forcediagram-halfedge-loop-vertices"]], "ForceDiagram.halfedge_strip": [[341, "forcediagram-halfedge-strip"]], "ForceDiagram.halfedge_strip_faces": [[342, "forcediagram-halfedge-strip-faces"]], "ForceDiagram.has_edge": [[343, "forcediagram-has-edge"]], "ForceDiagram.has_face": [[344, "forcediagram-has-face"]], "ForceDiagram.has_halfedge": [[345, "forcediagram-has-halfedge"]], "ForceDiagram.has_vertex": [[346, "forcediagram-has-vertex"]], "ForceDiagram.index_edge": [[347, "forcediagram-index-edge"]], "ForceDiagram.index_vertex": [[348, "forcediagram-index-vertex"]], "ForceDiagram.insert_vertex": [[349, "forcediagram-insert-vertex"]], "ForceDiagram.is_closed": [[350, "forcediagram-is-closed"]], "ForceDiagram.is_connected": [[351, "forcediagram-is-connected"]], "ForceDiagram.is_dual_edge_external": [[352, "forcediagram-is-dual-edge-external"]], "ForceDiagram.is_dual_edge_ind": [[353, "forcediagram-is-dual-edge-ind"]], "ForceDiagram.is_dual_edge_load": [[354, "forcediagram-is-dual-edge-load"]], "ForceDiagram.is_dual_edge_reaction": [[355, "forcediagram-is-dual-edge-reaction"]], "ForceDiagram.is_edge_on_boundary": [[356, "forcediagram-is-edge-on-boundary"]], "ForceDiagram.is_empty": [[357, "forcediagram-is-empty"]], "ForceDiagram.is_face_on_boundary": [[358, "forcediagram-is-face-on-boundary"]], "ForceDiagram.is_manifold": [[359, "forcediagram-is-manifold"]], "ForceDiagram.is_orientable": [[360, "forcediagram-is-orientable"]], "ForceDiagram.is_quadmesh": [[361, "forcediagram-is-quadmesh"]], "ForceDiagram.is_regular": [[362, "forcediagram-is-regular"]], "ForceDiagram.is_trimesh": [[363, "forcediagram-is-trimesh"]], "ForceDiagram.is_valid": [[364, "forcediagram-is-valid"]], "ForceDiagram.is_vertex_connected": [[365, "forcediagram-is-vertex-connected"]], "ForceDiagram.is_vertex_on_boundary": [[366, "forcediagram-is-vertex-on-boundary"]], "ForceDiagram.join": [[367, "forcediagram-join"]], "ForceDiagram.laplacian_matrix": [[368, "forcediagram-laplacian-matrix"]], "ForceDiagram.merge_faces": [[369, "forcediagram-merge-faces"]], "ForceDiagram.normal": [[370, "forcediagram-normal"]], "ForceDiagram.number_of_edges": [[371, "forcediagram-number-of-edges"]], "ForceDiagram.number_of_faces": [[372, "forcediagram-number-of-faces"]], "ForceDiagram.number_of_vertices": [[373, "forcediagram-number-of-vertices"]], "ForceDiagram.obb": [[374, "forcediagram-obb"]], "ForceDiagram.offset": [[375, "forcediagram-offset"]], "ForceDiagram.ordered_edges": [[376, "forcediagram-ordered-edges"]], "ForceDiagram.quads_to_triangles": [[377, "forcediagram-quads-to-triangles"]], "ForceDiagram.remove_duplicate_vertices": [[378, "forcediagram-remove-duplicate-vertices"]], "ForceDiagram.remove_unused_vertices": [[379, "forcediagram-remove-unused-vertices"]], "ForceDiagram.rotate": [[380, "forcediagram-rotate"]], "ForceDiagram.rotated": [[381, "forcediagram-rotated"]], "ForceDiagram.scale": [[382, "forcediagram-scale"]], "ForceDiagram.scaled": [[383, "forcediagram-scaled"]], "ForceDiagram.set_vertex_point": [[384, "forcediagram-set-vertex-point"]], "ForceDiagram.sha256": [[385, "forcediagram-sha256"]], "ForceDiagram.slice": [[386, "forcediagram-slice"]], "ForceDiagram.smooth_area": [[387, "forcediagram-smooth-area"]], "ForceDiagram.smooth_centroid": [[388, "forcediagram-smooth-centroid"]], "ForceDiagram.split_edge": [[389, "forcediagram-split-edge"]], "ForceDiagram.split_face": [[390, "forcediagram-split-face"]], "ForceDiagram.split_strip": [[391, "forcediagram-split-strip"]], "ForceDiagram.subdivided": [[392, "forcediagram-subdivided"]], "ForceDiagram.summary": [[393, "forcediagram-summary"]], "ForceDiagram.thickened": [[394, "forcediagram-thickened"]], "ForceDiagram.to_json": [[395, "forcediagram-to-json"]], "ForceDiagram.to_jsonstring": [[396, "forcediagram-to-jsonstring"]], "ForceDiagram.to_lines": [[397, "forcediagram-to-lines"]], "ForceDiagram.to_obj": [[398, "forcediagram-to-obj"]], "ForceDiagram.to_off": [[399, "forcediagram-to-off"]], "ForceDiagram.to_ply": [[400, "forcediagram-to-ply"]], "ForceDiagram.to_points": [[401, "forcediagram-to-points"]], "ForceDiagram.to_polygons": [[402, "forcediagram-to-polygons"]], "ForceDiagram.to_polylines": [[403, "forcediagram-to-polylines"]], "ForceDiagram.to_stl": [[404, "forcediagram-to-stl"]], "ForceDiagram.to_vertices_and_faces": [[405, "forcediagram-to-vertices-and-faces"]], "ForceDiagram.transform": [[406, "forcediagram-transform"]], "ForceDiagram.transform_numpy": [[407, "forcediagram-transform-numpy"]], "ForceDiagram.transformed": [[408, "forcediagram-transformed"]], "ForceDiagram.transformed_numpy": [[409, "forcediagram-transformed-numpy"]], "ForceDiagram.translate": [[410, "forcediagram-translate"]], "ForceDiagram.translated": [[411, "forcediagram-translated"]], "ForceDiagram.unify_cycles": [[412, "forcediagram-unify-cycles"]], "ForceDiagram.unset_edge_attribute": [[413, "forcediagram-unset-edge-attribute"]], "ForceDiagram.unset_face_attribute": [[414, "forcediagram-unset-face-attribute"]], "ForceDiagram.unset_vertex_attribute": [[415, "forcediagram-unset-vertex-attribute"]], "ForceDiagram.unweld_edges": [[416, "forcediagram-unweld-edges"]], "ForceDiagram.unweld_vertices": [[417, "forcediagram-unweld-vertices"]], "ForceDiagram.update_default_edge_attributes": [[418, "forcediagram-update-default-edge-attributes"]], "ForceDiagram.update_default_face_attributes": [[419, "forcediagram-update-default-face-attributes"]], "ForceDiagram.update_default_vertex_attributes": [[420, "forcediagram-update-default-vertex-attributes"]], "ForceDiagram.validate_data": [[421, "forcediagram-validate-data"]], "ForceDiagram.vertex_area": [[422, "forcediagram-vertex-area"]], "ForceDiagram.vertex_attribute": [[423, "forcediagram-vertex-attribute"]], "ForceDiagram.vertex_attributes": [[424, "forcediagram-vertex-attributes"]], "ForceDiagram.vertex_coordinates": [[425, "forcediagram-vertex-coordinates"]], "ForceDiagram.vertex_curvature": [[426, "forcediagram-vertex-curvature"]], "ForceDiagram.vertex_degree": [[427, "forcediagram-vertex-degree"]], "ForceDiagram.vertex_edges": [[428, "forcediagram-vertex-edges"]], "ForceDiagram.vertex_faces": [[429, "forcediagram-vertex-faces"]], "ForceDiagram.vertex_gkey": [[430, "forcediagram-vertex-gkey"]], "ForceDiagram.vertex_index": [[431, "forcediagram-vertex-index"]], "ForceDiagram.vertex_laplacian": [[432, "forcediagram-vertex-laplacian"]], "ForceDiagram.vertex_max_degree": [[433, "forcediagram-vertex-max-degree"]], "ForceDiagram.vertex_min_degree": [[434, "forcediagram-vertex-min-degree"]], "ForceDiagram.vertex_neighborhood": [[435, "forcediagram-vertex-neighborhood"]], "ForceDiagram.vertex_neighborhood_centroid": [[436, "forcediagram-vertex-neighborhood-centroid"]], "ForceDiagram.vertex_neighbors": [[437, "forcediagram-vertex-neighbors"]], "ForceDiagram.vertex_normal": [[438, "forcediagram-vertex-normal"]], "ForceDiagram.vertex_point": [[439, "forcediagram-vertex-point"]], "ForceDiagram.vertex_sample": [[440, "forcediagram-vertex-sample"]], "ForceDiagram.vertices": [[441, "forcediagram-vertices"]], "ForceDiagram.vertices_attribute": [[442, "forcediagram-vertices-attribute"]], "ForceDiagram.vertices_attributes": [[443, "forcediagram-vertices-attributes"]], "ForceDiagram.vertices_on_boundaries": [[444, "forcediagram-vertices-on-boundaries"]], "ForceDiagram.vertices_on_boundary": [[445, "forcediagram-vertices-on-boundary"]], "ForceDiagram.vertices_points": [[446, "forcediagram-vertices-points"]], "ForceDiagram.vertices_where": [[447, "forcediagram-vertices-where"]], "ForceDiagram.vertices_where_predicate": [[448, "forcediagram-vertices-where-predicate"]], "ForceDiagram.weld": [[449, "forcediagram-weld"]], "ForceDiagram.xy": [[450, "forcediagram-xy"]], "FormDiagram": [[451, "formdiagram"]], "FormDiagram.ToString": [[452, "formdiagram-tostring"]], "FormDiagram.aabb": [[453, "formdiagram-aabb"]], "FormDiagram.add_face": [[454, "formdiagram-add-face"]], "FormDiagram.add_vertex": [[455, "formdiagram-add-vertex"]], "FormDiagram.adjacency_matrix": [[456, "formdiagram-adjacency-matrix"]], "FormDiagram.area": [[457, "formdiagram-area"]], "FormDiagram.centroid": [[458, "formdiagram-centroid"]], "FormDiagram.clear": [[459, "formdiagram-clear"]], "FormDiagram.collapse_edge": [[460, "formdiagram-collapse-edge"]], "FormDiagram.compute_aabb": [[461, "formdiagram-compute-aabb"]], "FormDiagram.compute_obb": [[462, "formdiagram-compute-obb"]], "FormDiagram.connected_faces": [[463, "formdiagram-connected-faces"]], "FormDiagram.connected_vertices": [[464, "formdiagram-connected-vertices"]], "FormDiagram.connectivity_matrix": [[465, "formdiagram-connectivity-matrix"]], "FormDiagram.constrained": [[466, "formdiagram-constrained"]], "FormDiagram.constraints": [[467, "formdiagram-constraints"]], "FormDiagram.copy": [[468, "formdiagram-copy"]], "FormDiagram.cull_vertices": [[469, "formdiagram-cull-vertices"]], "FormDiagram.degree_matrix": [[470, "formdiagram-degree-matrix"]], "FormDiagram.delete_face": [[471, "formdiagram-delete-face"]], "FormDiagram.delete_vertex": [[472, "formdiagram-delete-vertex"]], "FormDiagram.edge_attribute": [[473, "formdiagram-edge-attribute"]], "FormDiagram.edge_attributes": [[474, "formdiagram-edge-attributes"]], "FormDiagram.edge_coordinates": [[475, "formdiagram-edge-coordinates"]], "FormDiagram.edge_direction": [[476, "formdiagram-edge-direction"]], "FormDiagram.edge_end": [[477, "formdiagram-edge-end"]], "FormDiagram.edge_faces": [[478, "formdiagram-edge-faces"]], "FormDiagram.edge_force": [[479, "formdiagram-edge-force"]], "FormDiagram.edge_forcedensity": [[480, "formdiagram-edge-forcedensity"]], "FormDiagram.edge_index": [[481, "formdiagram-edge-index"]], "FormDiagram.edge_length": [[482, "formdiagram-edge-length"]], "FormDiagram.edge_line": [[483, "formdiagram-edge-line"]], "FormDiagram.edge_loop": [[484, "formdiagram-edge-loop"]], "FormDiagram.edge_midpoint": [[485, "formdiagram-edge-midpoint"]], "FormDiagram.edge_point": [[486, "formdiagram-edge-point"]], "FormDiagram.edge_sample": [[487, "formdiagram-edge-sample"]], "FormDiagram.edge_start": [[488, "formdiagram-edge-start"]], "FormDiagram.edge_strip": [[489, "formdiagram-edge-strip"]], "FormDiagram.edge_vector": [[490, "formdiagram-edge-vector"]], "FormDiagram.edges": [[491, "formdiagram-edges"]], "FormDiagram.edges_attribute": [[492, "formdiagram-edges-attribute"]], "FormDiagram.edges_attributes": [[493, "formdiagram-edges-attributes"]], "FormDiagram.edges_on_boundaries": [[494, "formdiagram-edges-on-boundaries"]], "FormDiagram.edges_on_boundary": [[495, "formdiagram-edges-on-boundary"]], "FormDiagram.edges_where": [[496, "formdiagram-edges-where"]], "FormDiagram.edges_where_predicate": [[497, "formdiagram-edges-where-predicate"]], "FormDiagram.euler": [[498, "formdiagram-euler"]], "FormDiagram.exploded": [[499, "formdiagram-exploded"]], "FormDiagram.face_adjacency_halfedge": [[500, "formdiagram-face-adjacency-halfedge"]], "FormDiagram.face_adjacency_vertices": [[501, "formdiagram-face-adjacency-vertices"]], "FormDiagram.face_area": [[502, "formdiagram-face-area"]], "FormDiagram.face_aspect_ratio": [[503, "formdiagram-face-aspect-ratio"]], "FormDiagram.face_attribute": [[504, "formdiagram-face-attribute"]], "FormDiagram.face_attributes": [[505, "formdiagram-face-attributes"]], "FormDiagram.face_center": [[506, "formdiagram-face-center"]], "FormDiagram.face_centroid": [[507, "formdiagram-face-centroid"]], "FormDiagram.face_circle": [[508, "formdiagram-face-circle"]], "FormDiagram.face_coordinates": [[509, "formdiagram-face-coordinates"]], "FormDiagram.face_corners": [[510, "formdiagram-face-corners"]], "FormDiagram.face_curvature": [[511, "formdiagram-face-curvature"]], "FormDiagram.face_degree": [[512, "formdiagram-face-degree"]], "FormDiagram.face_flatness": [[513, "formdiagram-face-flatness"]], "FormDiagram.face_frame": [[514, "formdiagram-face-frame"]], "FormDiagram.face_halfedges": [[515, "formdiagram-face-halfedges"]], "FormDiagram.face_matrix": [[516, "formdiagram-face-matrix"]], "FormDiagram.face_max_degree": [[517, "formdiagram-face-max-degree"]], "FormDiagram.face_min_degree": [[518, "formdiagram-face-min-degree"]], "FormDiagram.face_neighborhood": [[519, "formdiagram-face-neighborhood"]], "FormDiagram.face_neighbors": [[520, "formdiagram-face-neighbors"]], "FormDiagram.face_normal": [[521, "formdiagram-face-normal"]], "FormDiagram.face_plane": [[522, "formdiagram-face-plane"]], "FormDiagram.face_points": [[523, "formdiagram-face-points"]], "FormDiagram.face_polygon": [[524, "formdiagram-face-polygon"]], "FormDiagram.face_sample": [[525, "formdiagram-face-sample"]], "FormDiagram.face_skewness": [[526, "formdiagram-face-skewness"]], "FormDiagram.face_vertex_after": [[527, "formdiagram-face-vertex-after"]], "FormDiagram.face_vertex_ancestor": [[528, "formdiagram-face-vertex-ancestor"]], "FormDiagram.face_vertex_before": [[529, "formdiagram-face-vertex-before"]], "FormDiagram.face_vertex_descendant": [[530, "formdiagram-face-vertex-descendant"]], "FormDiagram.face_vertices": [[531, "formdiagram-face-vertices"]], "FormDiagram.faces": [[532, "formdiagram-faces"]], "FormDiagram.faces_attribute": [[533, "formdiagram-faces-attribute"]], "FormDiagram.faces_attributes": [[534, "formdiagram-faces-attributes"]], "FormDiagram.faces_on_boundaries": [[535, "formdiagram-faces-on-boundaries"]], "FormDiagram.faces_on_boundary": [[536, "formdiagram-faces-on-boundary"]], "FormDiagram.faces_where": [[537, "formdiagram-faces-where"]], "FormDiagram.faces_where_predicate": [[538, "formdiagram-faces-where-predicate"]], "FormDiagram.fixed": [[539, "formdiagram-fixed"]], "FormDiagram.flip_cycles": [[540, "formdiagram-flip-cycles"]], "FormDiagram.from_graph": [[541, "formdiagram-from-graph"]], "FormDiagram.from_json": [[542, "formdiagram-from-json"]], "FormDiagram.from_jsonstring": [[543, "formdiagram-from-jsonstring"]], "FormDiagram.from_lines": [[544, "formdiagram-from-lines"]], "FormDiagram.from_meshgrid": [[545, "formdiagram-from-meshgrid"]], "FormDiagram.from_obj": [[546, "formdiagram-from-obj"]], "FormDiagram.from_off": [[547, "formdiagram-from-off"]], "FormDiagram.from_ply": [[548, "formdiagram-from-ply"]], "FormDiagram.from_points": [[549, "formdiagram-from-points"]], "FormDiagram.from_polygons": [[550, "formdiagram-from-polygons"]], "FormDiagram.from_polyhedron": [[551, "formdiagram-from-polyhedron"]], "FormDiagram.from_polylines": [[552, "formdiagram-from-polylines"]], "FormDiagram.from_shape": [[553, "formdiagram-from-shape"]], "FormDiagram.from_stl": [[554, "formdiagram-from-stl"]], "FormDiagram.from_vertices_and_faces": [[555, "formdiagram-from-vertices-and-faces"]], "FormDiagram.gkey_vertex": [[556, "formdiagram-gkey-vertex"]], "FormDiagram.halfedge_after": [[557, "formdiagram-halfedge-after"]], "FormDiagram.halfedge_before": [[558, "formdiagram-halfedge-before"]], "FormDiagram.halfedge_face": [[559, "formdiagram-halfedge-face"]], "FormDiagram.halfedge_loop": [[560, "formdiagram-halfedge-loop"]], "FormDiagram.halfedge_loop_vertices": [[561, "formdiagram-halfedge-loop-vertices"]], "FormDiagram.halfedge_strip": [[562, "formdiagram-halfedge-strip"]], "FormDiagram.halfedge_strip_faces": [[563, "formdiagram-halfedge-strip-faces"]], "FormDiagram.has_edge": [[564, "formdiagram-has-edge"]], "FormDiagram.has_face": [[565, "formdiagram-has-face"]], "FormDiagram.has_halfedge": [[566, "formdiagram-has-halfedge"]], "FormDiagram.has_vertex": [[567, "formdiagram-has-vertex"]], "FormDiagram.identify_constraints": [[568, "formdiagram-identify-constraints"]], "FormDiagram.ind": [[569, "formdiagram-ind"]], "FormDiagram.index_edge": [[570, "formdiagram-index-edge"]], "FormDiagram.index_vertex": [[571, "formdiagram-index-vertex"]], "FormDiagram.insert_vertex": [[572, "formdiagram-insert-vertex"]], "FormDiagram.is_closed": [[573, "formdiagram-is-closed"]], "FormDiagram.is_connected": [[574, "formdiagram-is-connected"]], "FormDiagram.is_edge_on_boundary": [[575, "formdiagram-is-edge-on-boundary"]], "FormDiagram.is_empty": [[576, "formdiagram-is-empty"]], "FormDiagram.is_face_on_boundary": [[577, "formdiagram-is-face-on-boundary"]], "FormDiagram.is_manifold": [[578, "formdiagram-is-manifold"]], "FormDiagram.is_orientable": [[579, "formdiagram-is-orientable"]], "FormDiagram.is_quadmesh": [[580, "formdiagram-is-quadmesh"]], "FormDiagram.is_regular": [[581, "formdiagram-is-regular"]], "FormDiagram.is_trimesh": [[582, "formdiagram-is-trimesh"]], "FormDiagram.is_valid": [[583, "formdiagram-is-valid"]], "FormDiagram.is_vertex_connected": [[584, "formdiagram-is-vertex-connected"]], "FormDiagram.is_vertex_on_boundary": [[585, "formdiagram-is-vertex-on-boundary"]], "FormDiagram.join": [[586, "formdiagram-join"]], "FormDiagram.laplacian_matrix": [[587, "formdiagram-laplacian-matrix"]], "FormDiagram.leaf_edges": [[588, "formdiagram-leaf-edges"]], "FormDiagram.leaves": [[589, "formdiagram-leaves"]], "FormDiagram.merge_faces": [[590, "formdiagram-merge-faces"]], "FormDiagram.normal": [[591, "formdiagram-normal"]], "FormDiagram.number_of_edges": [[592, "formdiagram-number-of-edges"]], "FormDiagram.number_of_faces": [[593, "formdiagram-number-of-faces"]], "FormDiagram.number_of_vertices": [[594, "formdiagram-number-of-vertices"]], "FormDiagram.obb": [[595, "formdiagram-obb"]], "FormDiagram.offset": [[596, "formdiagram-offset"]], "FormDiagram.q": [[597, "formdiagram-q"]], "FormDiagram.quads_to_triangles": [[598, "formdiagram-quads-to-triangles"]], "FormDiagram.remove_duplicate_vertices": [[599, "formdiagram-remove-duplicate-vertices"]], "FormDiagram.remove_unused_vertices": [[600, "formdiagram-remove-unused-vertices"]], "FormDiagram.rotate": [[601, "formdiagram-rotate"]], "FormDiagram.rotated": [[602, "formdiagram-rotated"]], "FormDiagram.scale": [[603, "formdiagram-scale"]], "FormDiagram.scaled": [[604, "formdiagram-scaled"]], "FormDiagram.set_vertex_point": [[605, "formdiagram-set-vertex-point"]], "FormDiagram.sha256": [[606, "formdiagram-sha256"]], "FormDiagram.slice": [[607, "formdiagram-slice"]], "FormDiagram.smooth_area": [[608, "formdiagram-smooth-area"]], "FormDiagram.smooth_centroid": [[609, "formdiagram-smooth-centroid"]], "FormDiagram.split_edge": [[610, "formdiagram-split-edge"]], "FormDiagram.split_face": [[611, "formdiagram-split-face"]], "FormDiagram.split_strip": [[612, "formdiagram-split-strip"]], "FormDiagram.subdivided": [[613, "formdiagram-subdivided"]], "FormDiagram.summary": [[614, "formdiagram-summary"]], "FormDiagram.thickened": [[615, "formdiagram-thickened"]], "FormDiagram.to_json": [[616, "formdiagram-to-json"]], "FormDiagram.to_jsonstring": [[617, "formdiagram-to-jsonstring"]], "FormDiagram.to_lines": [[618, "formdiagram-to-lines"]], "FormDiagram.to_obj": [[619, "formdiagram-to-obj"]], "FormDiagram.to_off": [[620, "formdiagram-to-off"]], "FormDiagram.to_ply": [[621, "formdiagram-to-ply"]], "FormDiagram.to_points": [[622, "formdiagram-to-points"]], "FormDiagram.to_polygons": [[623, "formdiagram-to-polygons"]], "FormDiagram.to_polylines": [[624, "formdiagram-to-polylines"]], "FormDiagram.to_stl": [[625, "formdiagram-to-stl"]], "FormDiagram.to_vertices_and_faces": [[626, "formdiagram-to-vertices-and-faces"]], "FormDiagram.transform": [[627, "formdiagram-transform"]], "FormDiagram.transform_numpy": [[628, "formdiagram-transform-numpy"]], "FormDiagram.transformed": [[629, "formdiagram-transformed"]], "FormDiagram.transformed_numpy": [[630, "formdiagram-transformed-numpy"]], "FormDiagram.translate": [[631, "formdiagram-translate"]], "FormDiagram.translated": [[632, "formdiagram-translated"]], "FormDiagram.unify_cycles": [[633, "formdiagram-unify-cycles"]], "FormDiagram.unset_edge_attribute": [[634, "formdiagram-unset-edge-attribute"]], "FormDiagram.unset_face_attribute": [[635, "formdiagram-unset-face-attribute"]], "FormDiagram.unset_vertex_attribute": [[636, "formdiagram-unset-vertex-attribute"]], "FormDiagram.unweld_edges": [[637, "formdiagram-unweld-edges"]], "FormDiagram.unweld_vertices": [[638, "formdiagram-unweld-vertices"]], "FormDiagram.update_default_edge_attributes": [[639, "formdiagram-update-default-edge-attributes"]], "FormDiagram.update_default_face_attributes": [[640, "formdiagram-update-default-face-attributes"]], "FormDiagram.update_default_vertex_attributes": [[641, "formdiagram-update-default-vertex-attributes"]], "FormDiagram.validate_data": [[642, "formdiagram-validate-data"]], "FormDiagram.vertex_area": [[643, "formdiagram-vertex-area"]], "FormDiagram.vertex_attribute": [[644, "formdiagram-vertex-attribute"]], "FormDiagram.vertex_attributes": [[645, "formdiagram-vertex-attributes"]], "FormDiagram.vertex_coordinates": [[646, "formdiagram-vertex-coordinates"]], "FormDiagram.vertex_curvature": [[647, "formdiagram-vertex-curvature"]], "FormDiagram.vertex_degree": [[648, "formdiagram-vertex-degree"]], "FormDiagram.vertex_edges": [[649, "formdiagram-vertex-edges"]], "FormDiagram.vertex_faces": [[650, "formdiagram-vertex-faces"]], "FormDiagram.vertex_gkey": [[651, "formdiagram-vertex-gkey"]], "FormDiagram.vertex_index": [[652, "formdiagram-vertex-index"]], "FormDiagram.vertex_laplacian": [[653, "formdiagram-vertex-laplacian"]], "FormDiagram.vertex_max_degree": [[654, "formdiagram-vertex-max-degree"]], "FormDiagram.vertex_min_degree": [[655, "formdiagram-vertex-min-degree"]], "FormDiagram.vertex_neighborhood": [[656, "formdiagram-vertex-neighborhood"]], "FormDiagram.vertex_neighborhood_centroid": [[657, "formdiagram-vertex-neighborhood-centroid"]], "FormDiagram.vertex_neighbors": [[658, "formdiagram-vertex-neighbors"]], "FormDiagram.vertex_normal": [[659, "formdiagram-vertex-normal"]], "FormDiagram.vertex_point": [[660, "formdiagram-vertex-point"]], "FormDiagram.vertex_sample": [[661, "formdiagram-vertex-sample"]], "FormDiagram.vertices": [[662, "formdiagram-vertices"]], "FormDiagram.vertices_attribute": [[663, "formdiagram-vertices-attribute"]], "FormDiagram.vertices_attributes": [[664, "formdiagram-vertices-attributes"]], "FormDiagram.vertices_on_boundaries": [[665, "formdiagram-vertices-on-boundaries"]], "FormDiagram.vertices_on_boundary": [[666, "formdiagram-vertices-on-boundary"]], "FormDiagram.vertices_points": [[667, "formdiagram-vertices-points"]], "FormDiagram.vertices_where": [[668, "formdiagram-vertices-where"]], "FormDiagram.vertices_where_predicate": [[669, "formdiagram-vertices-where-predicate"]], "FormDiagram.weld": [[670, "formdiagram-weld"]], "FormDiagram.xy": [[671, "formdiagram-xy"]], "FormGraph": [[672, "formgraph"]], "FormGraph.ToString": [[673, "formgraph-tostring"]], "FormGraph.aabb": [[674, "formgraph-aabb"]], "FormGraph.add_edge": [[675, "formgraph-add-edge"]], "FormGraph.add_node": [[676, "formgraph-add-node"]], "FormGraph.adjacency_matrix": [[677, "formgraph-adjacency-matrix"]], "FormGraph.clear": [[678, "formgraph-clear"]], "FormGraph.complement": [[679, "formgraph-complement"]], "FormGraph.compute_aabb": [[680, "formgraph-compute-aabb"]], "FormGraph.compute_obb": [[681, "formgraph-compute-obb"]], "FormGraph.connected_edges": [[682, "formgraph-connected-edges"]], "FormGraph.connected_nodes": [[683, "formgraph-connected-nodes"]], "FormGraph.connectivity_matrix": [[684, "formgraph-connectivity-matrix"]], "FormGraph.copy": [[685, "formgraph-copy"]], "FormGraph.count_crossings": [[686, "formgraph-count-crossings"]], "FormGraph.degree": [[687, "formgraph-degree"]], "FormGraph.degree_in": [[688, "formgraph-degree-in"]], "FormGraph.degree_matrix": [[689, "formgraph-degree-matrix"]], "FormGraph.degree_out": [[690, "formgraph-degree-out"]], "FormGraph.delete_edge": [[691, "formgraph-delete-edge"]], "FormGraph.delete_node": [[692, "formgraph-delete-node"]], "FormGraph.edge_attribute": [[693, "formgraph-edge-attribute"]], "FormGraph.edge_attributes": [[694, "formgraph-edge-attributes"]], "FormGraph.edge_coordinates": [[695, "formgraph-edge-coordinates"]], "FormGraph.edge_direction": [[696, "formgraph-edge-direction"]], "FormGraph.edge_end": [[697, "formgraph-edge-end"]], "FormGraph.edge_index": [[698, "formgraph-edge-index"]], "FormGraph.edge_length": [[699, "formgraph-edge-length"]], "FormGraph.edge_line": [[700, "formgraph-edge-line"]], "FormGraph.edge_midpoint": [[701, "formgraph-edge-midpoint"]], "FormGraph.edge_point": [[702, "formgraph-edge-point"]], "FormGraph.edge_sample": [[703, "formgraph-edge-sample"]], "FormGraph.edge_start": [[704, "formgraph-edge-start"]], "FormGraph.edge_vector": [[705, "formgraph-edge-vector"]], "FormGraph.edges": [[706, "formgraph-edges"]], "FormGraph.edges_attribute": [[707, "formgraph-edges-attribute"]], "FormGraph.edges_attributes": [[708, "formgraph-edges-attributes"]], "FormGraph.edges_where": [[709, "formgraph-edges-where"]], "FormGraph.edges_where_predicate": [[710, "formgraph-edges-where-predicate"]], "FormGraph.embed": [[711, "formgraph-embed"]], "FormGraph.embed_in_plane": [[712, "formgraph-embed-in-plane"]], "FormGraph.exploded": [[713, "formgraph-exploded"]], "FormGraph.find_crossings": [[714, "formgraph-find-crossings"]], "FormGraph.find_cycles": [[715, "formgraph-find-cycles"]], "FormGraph.from_edges": [[716, "formgraph-from-edges"]], "FormGraph.from_json": [[717, "formgraph-from-json"]], "FormGraph.from_jsonstring": [[718, "formgraph-from-jsonstring"]], "FormGraph.from_lines": [[719, "formgraph-from-lines"]], "FormGraph.from_networkx": [[720, "formgraph-from-networkx"]], "FormGraph.from_nodes_and_edges": [[721, "formgraph-from-nodes-and-edges"]], "FormGraph.from_obj": [[722, "formgraph-from-obj"]], "FormGraph.from_pointcloud": [[723, "formgraph-from-pointcloud"]], "FormGraph.gkey_node": [[724, "formgraph-gkey-node"]], "FormGraph.has_edge": [[725, "formgraph-has-edge"]], "FormGraph.has_node": [[726, "formgraph-has-node"]], "FormGraph.index_edge": [[727, "formgraph-index-edge"]], "FormGraph.index_node": [[728, "formgraph-index-node"]], "FormGraph.is_2d": [[729, "formgraph-is-2d"]], "FormGraph.is_connected": [[730, "formgraph-is-connected"]], "FormGraph.is_crossed": [[731, "formgraph-is-crossed"]], "FormGraph.is_leaf": [[732, "formgraph-is-leaf"]], "FormGraph.is_node_connected": [[733, "formgraph-is-node-connected"]], "FormGraph.is_planar": [[734, "formgraph-is-planar"]], "FormGraph.is_planar_embedding": [[735, "formgraph-is-planar-embedding"]], "FormGraph.is_xy": [[736, "formgraph-is-xy"]], "FormGraph.join_edges": [[737, "formgraph-join-edges"]], "FormGraph.laplacian_matrix": [[738, "formgraph-laplacian-matrix"]], "FormGraph.leaves": [[739, "formgraph-leaves"]], "FormGraph.neighborhood": [[740, "formgraph-neighborhood"]], "FormGraph.neighbors": [[741, "formgraph-neighbors"]], "FormGraph.neighbors_in": [[742, "formgraph-neighbors-in"]], "FormGraph.neighbors_out": [[743, "formgraph-neighbors-out"]], "FormGraph.node_attribute": [[744, "formgraph-node-attribute"]], "FormGraph.node_attributes": [[745, "formgraph-node-attributes"]], "FormGraph.node_coordinates": [[746, "formgraph-node-coordinates"]], "FormGraph.node_edges": [[747, "formgraph-node-edges"]], "FormGraph.node_gkey": [[748, "formgraph-node-gkey"]], "FormGraph.node_index": [[749, "formgraph-node-index"]], "FormGraph.node_laplacian": [[750, "formgraph-node-laplacian"]], "FormGraph.node_neighborhood_centroid": [[751, "formgraph-node-neighborhood-centroid"]], "FormGraph.node_point": [[752, "formgraph-node-point"]], "FormGraph.node_sample": [[753, "formgraph-node-sample"]], "FormGraph.nodes": [[754, "formgraph-nodes"]], "FormGraph.nodes_attribute": [[755, "formgraph-nodes-attribute"]], "FormGraph.nodes_attributes": [[756, "formgraph-nodes-attributes"]], "FormGraph.nodes_where": [[757, "formgraph-nodes-where"]], "FormGraph.nodes_where_predicate": [[758, "formgraph-nodes-where-predicate"]], "FormGraph.number_of_edges": [[759, "formgraph-number-of-edges"]], "FormGraph.number_of_nodes": [[760, "formgraph-number-of-nodes"]], "FormGraph.obb": [[761, "formgraph-obb"]], "FormGraph.rotate": [[762, "formgraph-rotate"]], "FormGraph.rotated": [[763, "formgraph-rotated"]], "FormGraph.scale": [[764, "formgraph-scale"]], "FormGraph.scaled": [[765, "formgraph-scaled"]], "FormGraph.sha256": [[766, "formgraph-sha256"]], "FormGraph.shortest_path": [[767, "formgraph-shortest-path"]], "FormGraph.smooth": [[768, "formgraph-smooth"]], "FormGraph.split_edge": [[769, "formgraph-split-edge"]], "FormGraph.summary": [[770, "formgraph-summary"]], "FormGraph.to_json": [[771, "formgraph-to-json"]], "FormGraph.to_jsonstring": [[772, "formgraph-to-jsonstring"]], "FormGraph.to_lines": [[773, "formgraph-to-lines"]], "FormGraph.to_networkx": [[774, "formgraph-to-networkx"]], "FormGraph.to_nodes_and_edges": [[775, "formgraph-to-nodes-and-edges"]], "FormGraph.to_obj": [[776, "formgraph-to-obj"]], "FormGraph.to_points": [[777, "formgraph-to-points"]], "FormGraph.transform": [[778, "formgraph-transform"]], "FormGraph.transform_numpy": [[779, "formgraph-transform-numpy"]], "FormGraph.transformed": [[780, "formgraph-transformed"]], "FormGraph.transformed_numpy": [[781, "formgraph-transformed-numpy"]], "FormGraph.translate": [[782, "formgraph-translate"]], "FormGraph.translated": [[783, "formgraph-translated"]], "FormGraph.unset_edge_attribute": [[784, "formgraph-unset-edge-attribute"]], "FormGraph.unset_node_attribute": [[785, "formgraph-unset-node-attribute"]], "FormGraph.update_default_edge_attributes": [[786, "formgraph-update-default-edge-attributes"]], "FormGraph.update_default_node_attributes": [[787, "formgraph-update-default-node-attributes"]], "FormGraph.validate_data": [[788, "formgraph-validate-data"]], "SolutionError": [[789, "solutionerror"]], "Examples": [[790, "examples"]], "Basic example": [[791, "basic-example"]], "Updating the form diagram": [[792, "updating-the-form-diagram"]], "Optimise the load path": [[793, "optimise-the-load-path"]], "Fink Truss": [[794, "fink-truss"]], "Documentation of compas_ags": [[795, "documentation-of-compas-ags"]], "Graphic Statics": [[795, "graphic-statics"]], "Implementations": [[795, "implementations"]], "Table of Contents": [[795, "table-of-contents"]], "Installation": [[796, "installation"]], "Stable": [[796, "stable"]], "Latest": [[796, "latest"]], "Development": [[796, "development"]], "License": [[797, "license"]], "Publications": [[798, "publications"]], "Algebraic Graph Statics": [[799, "algebraic-graph-statics"]], "Bi-directional Algebraic Graph Statics": [[800, "bi-directional-algebraic-graph-statics"]], "Interactive Graphic Statics": [[801, "interactive-graphic-statics"]], "Load-path optimisation of funicular networks": [[802, "load-path-optimisation-of-funicular-networks"]]}, "indexentries": {"compute_external_work() (in module compas_ags.ags)": [[5, "compas_ags.ags.compute_external_work"]], "compute_internal_work() (in module compas_ags.ags)": [[6, "compas_ags.ags.compute_internal_work"]], "compute_internal_work_compression() (in module compas_ags.ags)": [[7, "compas_ags.ags.compute_internal_work_compression"]], "compute_internal_work_tension() (in module compas_ags.ags)": [[8, "compas_ags.ags.compute_internal_work_tension"]], "compute_loadpath() (in module compas_ags.ags)": [[9, "compas_ags.ags.compute_loadpath"]], "force_update_from_form() (in module compas_ags.ags)": [[10, "compas_ags.ags.force_update_from_form"]], "form_count_dof() (in module compas_ags.ags)": [[11, "compas_ags.ags.form_count_dof"]], "form_identify_dof() (in module compas_ags.ags)": [[12, "compas_ags.ags.form_identify_dof"]], "form_update_from_force() (in module compas_ags.ags)": [[13, "compas_ags.ags.form_update_from_force"]], "form_update_q_from_qind() (in module compas_ags.ags)": [[14, "compas_ags.ags.form_update_q_from_qind"]], "optimise_loadpath() (in module compas_ags.ags)": [[15, "compas_ags.ags.optimise_loadpath"]], "update_primal_from_dual() (in module compas_ags.ags)": [[16, "compas_ags.ags.update_primal_from_dual"]], "update_q_from_qind() (in module compas_ags.ags)": [[17, "compas_ags.ags.update_q_from_qind"]], "diagram (class in compas_ags.diagrams)": [[18, "compas_ags.diagrams.Diagram"]], "tostring() (compas_ags.diagrams.diagram method)": [[19, "compas_ags.diagrams.Diagram.ToString"]], "aabb() (compas_ags.diagrams.diagram method)": [[20, "compas_ags.diagrams.Diagram.aabb"]], "add_face() (compas_ags.diagrams.diagram method)": [[21, "compas_ags.diagrams.Diagram.add_face"]], "add_vertex() (compas_ags.diagrams.diagram method)": [[22, "compas_ags.diagrams.Diagram.add_vertex"]], "adjacency_matrix() (compas_ags.diagrams.diagram method)": [[23, "compas_ags.diagrams.Diagram.adjacency_matrix"]], "area() (compas_ags.diagrams.diagram method)": [[24, "compas_ags.diagrams.Diagram.area"]], "centroid() (compas_ags.diagrams.diagram method)": [[25, "compas_ags.diagrams.Diagram.centroid"]], "clear() (compas_ags.diagrams.diagram method)": [[26, "compas_ags.diagrams.Diagram.clear"]], "collapse_edge() (compas_ags.diagrams.diagram method)": [[27, "compas_ags.diagrams.Diagram.collapse_edge"]], "compute_aabb() (compas_ags.diagrams.diagram method)": [[28, "compas_ags.diagrams.Diagram.compute_aabb"]], "compute_obb() (compas_ags.diagrams.diagram method)": [[29, "compas_ags.diagrams.Diagram.compute_obb"]], "connected_faces() (compas_ags.diagrams.diagram method)": [[30, "compas_ags.diagrams.Diagram.connected_faces"]], "connected_vertices() (compas_ags.diagrams.diagram method)": [[31, "compas_ags.diagrams.Diagram.connected_vertices"]], "connectivity_matrix() (compas_ags.diagrams.diagram method)": [[32, "compas_ags.diagrams.Diagram.connectivity_matrix"]], "copy() (compas_ags.diagrams.diagram method)": [[33, "compas_ags.diagrams.Diagram.copy"]], "cull_vertices() (compas_ags.diagrams.diagram method)": [[34, "compas_ags.diagrams.Diagram.cull_vertices"]], "degree_matrix() (compas_ags.diagrams.diagram method)": [[35, "compas_ags.diagrams.Diagram.degree_matrix"]], "delete_face() (compas_ags.diagrams.diagram method)": [[36, "compas_ags.diagrams.Diagram.delete_face"]], "delete_vertex() (compas_ags.diagrams.diagram method)": [[37, "compas_ags.diagrams.Diagram.delete_vertex"]], "edge_attribute() (compas_ags.diagrams.diagram method)": [[38, "compas_ags.diagrams.Diagram.edge_attribute"]], "edge_attributes() (compas_ags.diagrams.diagram method)": [[39, "compas_ags.diagrams.Diagram.edge_attributes"]], "edge_coordinates() (compas_ags.diagrams.diagram method)": [[40, "compas_ags.diagrams.Diagram.edge_coordinates"]], "edge_direction() (compas_ags.diagrams.diagram method)": [[41, "compas_ags.diagrams.Diagram.edge_direction"]], "edge_end() (compas_ags.diagrams.diagram method)": [[42, "compas_ags.diagrams.Diagram.edge_end"]], "edge_faces() (compas_ags.diagrams.diagram method)": [[43, "compas_ags.diagrams.Diagram.edge_faces"]], "edge_index() (compas_ags.diagrams.diagram method)": [[44, "compas_ags.diagrams.Diagram.edge_index"]], "edge_length() (compas_ags.diagrams.diagram method)": [[45, "compas_ags.diagrams.Diagram.edge_length"]], "edge_line() (compas_ags.diagrams.diagram method)": [[46, "compas_ags.diagrams.Diagram.edge_line"]], "edge_loop() (compas_ags.diagrams.diagram method)": [[47, "compas_ags.diagrams.Diagram.edge_loop"]], "edge_midpoint() (compas_ags.diagrams.diagram method)": [[48, "compas_ags.diagrams.Diagram.edge_midpoint"]], "edge_point() (compas_ags.diagrams.diagram method)": [[49, "compas_ags.diagrams.Diagram.edge_point"]], "edge_sample() (compas_ags.diagrams.diagram method)": [[50, "compas_ags.diagrams.Diagram.edge_sample"]], "edge_start() (compas_ags.diagrams.diagram method)": [[51, "compas_ags.diagrams.Diagram.edge_start"]], "edge_strip() (compas_ags.diagrams.diagram method)": [[52, "compas_ags.diagrams.Diagram.edge_strip"]], "edge_vector() (compas_ags.diagrams.diagram method)": [[53, "compas_ags.diagrams.Diagram.edge_vector"]], "edges() (compas_ags.diagrams.diagram method)": [[54, "compas_ags.diagrams.Diagram.edges"]], "edges_attribute() (compas_ags.diagrams.diagram method)": [[55, "compas_ags.diagrams.Diagram.edges_attribute"]], "edges_attributes() (compas_ags.diagrams.diagram method)": [[56, "compas_ags.diagrams.Diagram.edges_attributes"]], "edges_on_boundaries() (compas_ags.diagrams.diagram method)": [[57, "compas_ags.diagrams.Diagram.edges_on_boundaries"]], "edges_on_boundary() (compas_ags.diagrams.diagram method)": [[58, "compas_ags.diagrams.Diagram.edges_on_boundary"]], "edges_where() (compas_ags.diagrams.diagram method)": [[59, "compas_ags.diagrams.Diagram.edges_where"]], "edges_where_predicate() (compas_ags.diagrams.diagram method)": [[60, "compas_ags.diagrams.Diagram.edges_where_predicate"]], "euler() (compas_ags.diagrams.diagram method)": [[61, "compas_ags.diagrams.Diagram.euler"]], "exploded() (compas_ags.diagrams.diagram method)": [[62, "compas_ags.diagrams.Diagram.exploded"]], "face_adjacency_halfedge() (compas_ags.diagrams.diagram method)": [[63, "compas_ags.diagrams.Diagram.face_adjacency_halfedge"]], "face_adjacency_vertices() (compas_ags.diagrams.diagram method)": [[64, "compas_ags.diagrams.Diagram.face_adjacency_vertices"]], "face_area() (compas_ags.diagrams.diagram method)": [[65, "compas_ags.diagrams.Diagram.face_area"]], "face_aspect_ratio() (compas_ags.diagrams.diagram method)": [[66, "compas_ags.diagrams.Diagram.face_aspect_ratio"]], "face_attribute() (compas_ags.diagrams.diagram method)": [[67, "compas_ags.diagrams.Diagram.face_attribute"]], "face_attributes() (compas_ags.diagrams.diagram method)": [[68, "compas_ags.diagrams.Diagram.face_attributes"]], "face_center() (compas_ags.diagrams.diagram method)": [[69, "compas_ags.diagrams.Diagram.face_center"]], "face_centroid() (compas_ags.diagrams.diagram method)": [[70, "compas_ags.diagrams.Diagram.face_centroid"]], "face_circle() (compas_ags.diagrams.diagram method)": [[71, "compas_ags.diagrams.Diagram.face_circle"]], "face_coordinates() (compas_ags.diagrams.diagram method)": [[72, "compas_ags.diagrams.Diagram.face_coordinates"]], "face_corners() (compas_ags.diagrams.diagram method)": [[73, "compas_ags.diagrams.Diagram.face_corners"]], "face_curvature() (compas_ags.diagrams.diagram method)": [[74, "compas_ags.diagrams.Diagram.face_curvature"]], "face_degree() (compas_ags.diagrams.diagram method)": [[75, "compas_ags.diagrams.Diagram.face_degree"]], "face_flatness() (compas_ags.diagrams.diagram method)": [[76, "compas_ags.diagrams.Diagram.face_flatness"]], "face_frame() (compas_ags.diagrams.diagram method)": [[77, "compas_ags.diagrams.Diagram.face_frame"]], "face_halfedges() (compas_ags.diagrams.diagram method)": [[78, "compas_ags.diagrams.Diagram.face_halfedges"]], "face_matrix() (compas_ags.diagrams.diagram method)": [[79, "compas_ags.diagrams.Diagram.face_matrix"]], "face_max_degree() (compas_ags.diagrams.diagram method)": [[80, "compas_ags.diagrams.Diagram.face_max_degree"]], "face_min_degree() (compas_ags.diagrams.diagram method)": [[81, "compas_ags.diagrams.Diagram.face_min_degree"]], "face_neighborhood() (compas_ags.diagrams.diagram method)": [[82, "compas_ags.diagrams.Diagram.face_neighborhood"]], "face_neighbors() (compas_ags.diagrams.diagram method)": [[83, "compas_ags.diagrams.Diagram.face_neighbors"]], "face_normal() (compas_ags.diagrams.diagram method)": [[84, "compas_ags.diagrams.Diagram.face_normal"]], "face_plane() (compas_ags.diagrams.diagram method)": [[85, "compas_ags.diagrams.Diagram.face_plane"]], "face_points() (compas_ags.diagrams.diagram method)": [[86, "compas_ags.diagrams.Diagram.face_points"]], "face_polygon() (compas_ags.diagrams.diagram method)": [[87, "compas_ags.diagrams.Diagram.face_polygon"]], "face_sample() (compas_ags.diagrams.diagram method)": [[88, "compas_ags.diagrams.Diagram.face_sample"]], "face_skewness() (compas_ags.diagrams.diagram method)": [[89, "compas_ags.diagrams.Diagram.face_skewness"]], "face_vertex_after() (compas_ags.diagrams.diagram method)": [[90, "compas_ags.diagrams.Diagram.face_vertex_after"]], "face_vertex_ancestor() (compas_ags.diagrams.diagram method)": [[91, "compas_ags.diagrams.Diagram.face_vertex_ancestor"]], "face_vertex_before() (compas_ags.diagrams.diagram method)": [[92, "compas_ags.diagrams.Diagram.face_vertex_before"]], "face_vertex_descendant() (compas_ags.diagrams.diagram method)": [[93, "compas_ags.diagrams.Diagram.face_vertex_descendant"]], "face_vertices() (compas_ags.diagrams.diagram method)": [[94, "compas_ags.diagrams.Diagram.face_vertices"]], "faces() (compas_ags.diagrams.diagram method)": [[95, "compas_ags.diagrams.Diagram.faces"]], "faces_attribute() (compas_ags.diagrams.diagram method)": [[96, "compas_ags.diagrams.Diagram.faces_attribute"]], "faces_attributes() (compas_ags.diagrams.diagram method)": [[97, "compas_ags.diagrams.Diagram.faces_attributes"]], "faces_on_boundaries() (compas_ags.diagrams.diagram method)": [[98, "compas_ags.diagrams.Diagram.faces_on_boundaries"]], "faces_on_boundary() (compas_ags.diagrams.diagram method)": [[99, "compas_ags.diagrams.Diagram.faces_on_boundary"]], "faces_where() (compas_ags.diagrams.diagram method)": [[100, "compas_ags.diagrams.Diagram.faces_where"]], "faces_where_predicate() (compas_ags.diagrams.diagram method)": [[101, "compas_ags.diagrams.Diagram.faces_where_predicate"]], "flip_cycles() (compas_ags.diagrams.diagram method)": [[102, "compas_ags.diagrams.Diagram.flip_cycles"]], "from_json() (compas_ags.diagrams.diagram class method)": [[103, "compas_ags.diagrams.Diagram.from_json"]], "from_jsonstring() (compas_ags.diagrams.diagram class method)": [[104, "compas_ags.diagrams.Diagram.from_jsonstring"]], "from_lines() (compas_ags.diagrams.diagram class method)": [[105, "compas_ags.diagrams.Diagram.from_lines"]], "from_meshgrid() (compas_ags.diagrams.diagram class method)": [[106, "compas_ags.diagrams.Diagram.from_meshgrid"]], "from_obj() (compas_ags.diagrams.diagram class method)": [[107, "compas_ags.diagrams.Diagram.from_obj"]], "from_off() (compas_ags.diagrams.diagram class method)": [[108, "compas_ags.diagrams.Diagram.from_off"]], "from_ply() (compas_ags.diagrams.diagram class method)": [[109, "compas_ags.diagrams.Diagram.from_ply"]], "from_points() (compas_ags.diagrams.diagram class method)": [[110, "compas_ags.diagrams.Diagram.from_points"]], "from_polygons() (compas_ags.diagrams.diagram class method)": [[111, "compas_ags.diagrams.Diagram.from_polygons"]], "from_polyhedron() (compas_ags.diagrams.diagram class method)": [[112, "compas_ags.diagrams.Diagram.from_polyhedron"]], "from_polylines() (compas_ags.diagrams.diagram class method)": [[113, "compas_ags.diagrams.Diagram.from_polylines"]], "from_shape() (compas_ags.diagrams.diagram class method)": [[114, "compas_ags.diagrams.Diagram.from_shape"]], "from_stl() (compas_ags.diagrams.diagram class method)": [[115, "compas_ags.diagrams.Diagram.from_stl"]], "from_vertices_and_faces() (compas_ags.diagrams.diagram class method)": [[116, "compas_ags.diagrams.Diagram.from_vertices_and_faces"]], "gkey_vertex() (compas_ags.diagrams.diagram method)": [[117, "compas_ags.diagrams.Diagram.gkey_vertex"]], "halfedge_after() (compas_ags.diagrams.diagram method)": [[118, "compas_ags.diagrams.Diagram.halfedge_after"]], "halfedge_before() (compas_ags.diagrams.diagram method)": [[119, "compas_ags.diagrams.Diagram.halfedge_before"]], "halfedge_face() (compas_ags.diagrams.diagram method)": [[120, "compas_ags.diagrams.Diagram.halfedge_face"]], "halfedge_loop() (compas_ags.diagrams.diagram method)": [[121, "compas_ags.diagrams.Diagram.halfedge_loop"]], "halfedge_loop_vertices() (compas_ags.diagrams.diagram method)": [[122, "compas_ags.diagrams.Diagram.halfedge_loop_vertices"]], "halfedge_strip() (compas_ags.diagrams.diagram method)": [[123, "compas_ags.diagrams.Diagram.halfedge_strip"]], "halfedge_strip_faces() (compas_ags.diagrams.diagram method)": [[124, "compas_ags.diagrams.Diagram.halfedge_strip_faces"]], "has_edge() (compas_ags.diagrams.diagram method)": [[125, "compas_ags.diagrams.Diagram.has_edge"]], "has_face() (compas_ags.diagrams.diagram method)": [[126, "compas_ags.diagrams.Diagram.has_face"]], "has_halfedge() (compas_ags.diagrams.diagram method)": [[127, "compas_ags.diagrams.Diagram.has_halfedge"]], "has_vertex() (compas_ags.diagrams.diagram method)": [[128, "compas_ags.diagrams.Diagram.has_vertex"]], "index_edge() (compas_ags.diagrams.diagram method)": [[129, "compas_ags.diagrams.Diagram.index_edge"]], "index_vertex() (compas_ags.diagrams.diagram method)": [[130, "compas_ags.diagrams.Diagram.index_vertex"]], "insert_vertex() (compas_ags.diagrams.diagram method)": [[131, "compas_ags.diagrams.Diagram.insert_vertex"]], "is_closed() (compas_ags.diagrams.diagram method)": [[132, "compas_ags.diagrams.Diagram.is_closed"]], "is_connected() (compas_ags.diagrams.diagram method)": [[133, "compas_ags.diagrams.Diagram.is_connected"]], "is_edge_on_boundary() (compas_ags.diagrams.diagram method)": [[134, "compas_ags.diagrams.Diagram.is_edge_on_boundary"]], "is_empty() (compas_ags.diagrams.diagram method)": [[135, "compas_ags.diagrams.Diagram.is_empty"]], "is_face_on_boundary() (compas_ags.diagrams.diagram method)": [[136, "compas_ags.diagrams.Diagram.is_face_on_boundary"]], "is_manifold() (compas_ags.diagrams.diagram method)": [[137, "compas_ags.diagrams.Diagram.is_manifold"]], "is_orientable() (compas_ags.diagrams.diagram method)": [[138, "compas_ags.diagrams.Diagram.is_orientable"]], "is_quadmesh() (compas_ags.diagrams.diagram method)": [[139, "compas_ags.diagrams.Diagram.is_quadmesh"]], "is_regular() (compas_ags.diagrams.diagram method)": [[140, "compas_ags.diagrams.Diagram.is_regular"]], "is_trimesh() (compas_ags.diagrams.diagram method)": [[141, "compas_ags.diagrams.Diagram.is_trimesh"]], "is_valid() (compas_ags.diagrams.diagram method)": [[142, "compas_ags.diagrams.Diagram.is_valid"]], "is_vertex_connected() (compas_ags.diagrams.diagram method)": [[143, "compas_ags.diagrams.Diagram.is_vertex_connected"]], "is_vertex_on_boundary() (compas_ags.diagrams.diagram method)": [[144, "compas_ags.diagrams.Diagram.is_vertex_on_boundary"]], "join() (compas_ags.diagrams.diagram method)": [[145, "compas_ags.diagrams.Diagram.join"]], "laplacian_matrix() (compas_ags.diagrams.diagram method)": [[146, "compas_ags.diagrams.Diagram.laplacian_matrix"]], "merge_faces() (compas_ags.diagrams.diagram method)": [[147, "compas_ags.diagrams.Diagram.merge_faces"]], "normal() (compas_ags.diagrams.diagram method)": [[148, "compas_ags.diagrams.Diagram.normal"]], "number_of_edges() (compas_ags.diagrams.diagram method)": [[149, "compas_ags.diagrams.Diagram.number_of_edges"]], "number_of_faces() (compas_ags.diagrams.diagram method)": [[150, "compas_ags.diagrams.Diagram.number_of_faces"]], "number_of_vertices() (compas_ags.diagrams.diagram method)": [[151, "compas_ags.diagrams.Diagram.number_of_vertices"]], "obb() (compas_ags.diagrams.diagram method)": [[152, "compas_ags.diagrams.Diagram.obb"]], "offset() (compas_ags.diagrams.diagram method)": [[153, "compas_ags.diagrams.Diagram.offset"]], "quads_to_triangles() (compas_ags.diagrams.diagram method)": [[154, "compas_ags.diagrams.Diagram.quads_to_triangles"]], "remove_duplicate_vertices() (compas_ags.diagrams.diagram method)": [[155, "compas_ags.diagrams.Diagram.remove_duplicate_vertices"]], "remove_unused_vertices() (compas_ags.diagrams.diagram method)": [[156, "compas_ags.diagrams.Diagram.remove_unused_vertices"]], "rotate() (compas_ags.diagrams.diagram method)": [[157, "compas_ags.diagrams.Diagram.rotate"]], "rotated() (compas_ags.diagrams.diagram method)": [[158, "compas_ags.diagrams.Diagram.rotated"]], "scale() (compas_ags.diagrams.diagram method)": [[159, "compas_ags.diagrams.Diagram.scale"]], "scaled() (compas_ags.diagrams.diagram method)": [[160, "compas_ags.diagrams.Diagram.scaled"]], "set_vertex_point() (compas_ags.diagrams.diagram method)": [[161, "compas_ags.diagrams.Diagram.set_vertex_point"]], "sha256() (compas_ags.diagrams.diagram method)": [[162, "compas_ags.diagrams.Diagram.sha256"]], "slice() (compas_ags.diagrams.diagram method)": [[163, "compas_ags.diagrams.Diagram.slice"]], "smooth_area() (compas_ags.diagrams.diagram method)": [[164, "compas_ags.diagrams.Diagram.smooth_area"]], "smooth_centroid() (compas_ags.diagrams.diagram method)": [[165, "compas_ags.diagrams.Diagram.smooth_centroid"]], "split_edge() (compas_ags.diagrams.diagram method)": [[166, "compas_ags.diagrams.Diagram.split_edge"]], "split_face() (compas_ags.diagrams.diagram method)": [[167, "compas_ags.diagrams.Diagram.split_face"]], "split_strip() (compas_ags.diagrams.diagram method)": [[168, "compas_ags.diagrams.Diagram.split_strip"]], "subdivided() (compas_ags.diagrams.diagram method)": [[169, "compas_ags.diagrams.Diagram.subdivided"]], "summary() (compas_ags.diagrams.diagram method)": [[170, "compas_ags.diagrams.Diagram.summary"]], "thickened() (compas_ags.diagrams.diagram method)": [[171, "compas_ags.diagrams.Diagram.thickened"]], "to_json() (compas_ags.diagrams.diagram method)": [[172, "compas_ags.diagrams.Diagram.to_json"]], "to_jsonstring() (compas_ags.diagrams.diagram method)": [[173, "compas_ags.diagrams.Diagram.to_jsonstring"]], "to_lines() (compas_ags.diagrams.diagram method)": [[174, "compas_ags.diagrams.Diagram.to_lines"]], "to_obj() (compas_ags.diagrams.diagram method)": [[175, "compas_ags.diagrams.Diagram.to_obj"]], "to_off() (compas_ags.diagrams.diagram method)": [[176, "compas_ags.diagrams.Diagram.to_off"]], "to_ply() (compas_ags.diagrams.diagram method)": [[177, "compas_ags.diagrams.Diagram.to_ply"]], "to_points() (compas_ags.diagrams.diagram method)": [[178, "compas_ags.diagrams.Diagram.to_points"]], "to_polygons() (compas_ags.diagrams.diagram method)": [[179, "compas_ags.diagrams.Diagram.to_polygons"]], "to_polylines() (compas_ags.diagrams.diagram method)": [[180, "compas_ags.diagrams.Diagram.to_polylines"]], "to_stl() (compas_ags.diagrams.diagram method)": [[181, "compas_ags.diagrams.Diagram.to_stl"]], "to_vertices_and_faces() (compas_ags.diagrams.diagram method)": [[182, "compas_ags.diagrams.Diagram.to_vertices_and_faces"]], "transform() (compas_ags.diagrams.diagram method)": [[183, "compas_ags.diagrams.Diagram.transform"]], "transform_numpy() (compas_ags.diagrams.diagram method)": [[184, "compas_ags.diagrams.Diagram.transform_numpy"]], "transformed() (compas_ags.diagrams.diagram method)": [[185, "compas_ags.diagrams.Diagram.transformed"]], "transformed_numpy() (compas_ags.diagrams.diagram method)": [[186, "compas_ags.diagrams.Diagram.transformed_numpy"]], "translate() (compas_ags.diagrams.diagram method)": [[187, "compas_ags.diagrams.Diagram.translate"]], "translated() (compas_ags.diagrams.diagram method)": [[188, "compas_ags.diagrams.Diagram.translated"]], "unify_cycles() (compas_ags.diagrams.diagram method)": [[189, "compas_ags.diagrams.Diagram.unify_cycles"]], "unset_edge_attribute() (compas_ags.diagrams.diagram method)": [[190, "compas_ags.diagrams.Diagram.unset_edge_attribute"]], "unset_face_attribute() (compas_ags.diagrams.diagram method)": [[191, "compas_ags.diagrams.Diagram.unset_face_attribute"]], "unset_vertex_attribute() (compas_ags.diagrams.diagram method)": [[192, "compas_ags.diagrams.Diagram.unset_vertex_attribute"]], "unweld_edges() (compas_ags.diagrams.diagram method)": [[193, "compas_ags.diagrams.Diagram.unweld_edges"]], "unweld_vertices() (compas_ags.diagrams.diagram method)": [[194, "compas_ags.diagrams.Diagram.unweld_vertices"]], "update_default_edge_attributes() (compas_ags.diagrams.diagram method)": [[195, "compas_ags.diagrams.Diagram.update_default_edge_attributes"]], "update_default_face_attributes() (compas_ags.diagrams.diagram method)": [[196, "compas_ags.diagrams.Diagram.update_default_face_attributes"]], "update_default_vertex_attributes() (compas_ags.diagrams.diagram method)": [[197, "compas_ags.diagrams.Diagram.update_default_vertex_attributes"]], "validate_data() (compas_ags.diagrams.diagram class method)": [[198, "compas_ags.diagrams.Diagram.validate_data"]], "vertex_area() (compas_ags.diagrams.diagram method)": [[199, "compas_ags.diagrams.Diagram.vertex_area"]], "vertex_attribute() (compas_ags.diagrams.diagram method)": [[200, "compas_ags.diagrams.Diagram.vertex_attribute"]], "vertex_attributes() (compas_ags.diagrams.diagram method)": [[201, "compas_ags.diagrams.Diagram.vertex_attributes"]], "vertex_coordinates() (compas_ags.diagrams.diagram method)": [[202, "compas_ags.diagrams.Diagram.vertex_coordinates"]], "vertex_curvature() (compas_ags.diagrams.diagram method)": [[203, "compas_ags.diagrams.Diagram.vertex_curvature"]], "vertex_degree() (compas_ags.diagrams.diagram method)": [[204, "compas_ags.diagrams.Diagram.vertex_degree"]], "vertex_edges() (compas_ags.diagrams.diagram method)": [[205, "compas_ags.diagrams.Diagram.vertex_edges"]], "vertex_faces() (compas_ags.diagrams.diagram method)": [[206, "compas_ags.diagrams.Diagram.vertex_faces"]], "vertex_gkey() (compas_ags.diagrams.diagram method)": [[207, "compas_ags.diagrams.Diagram.vertex_gkey"]], "vertex_index() (compas_ags.diagrams.diagram method)": [[208, "compas_ags.diagrams.Diagram.vertex_index"]], "vertex_laplacian() (compas_ags.diagrams.diagram method)": [[209, "compas_ags.diagrams.Diagram.vertex_laplacian"]], "vertex_max_degree() (compas_ags.diagrams.diagram method)": [[210, "compas_ags.diagrams.Diagram.vertex_max_degree"]], "vertex_min_degree() (compas_ags.diagrams.diagram method)": [[211, "compas_ags.diagrams.Diagram.vertex_min_degree"]], "vertex_neighborhood() (compas_ags.diagrams.diagram method)": [[212, "compas_ags.diagrams.Diagram.vertex_neighborhood"]], "vertex_neighborhood_centroid() (compas_ags.diagrams.diagram method)": [[213, "compas_ags.diagrams.Diagram.vertex_neighborhood_centroid"]], "vertex_neighbors() (compas_ags.diagrams.diagram method)": [[214, "compas_ags.diagrams.Diagram.vertex_neighbors"]], "vertex_normal() (compas_ags.diagrams.diagram method)": [[215, "compas_ags.diagrams.Diagram.vertex_normal"]], "vertex_point() (compas_ags.diagrams.diagram method)": [[216, "compas_ags.diagrams.Diagram.vertex_point"]], "vertex_sample() (compas_ags.diagrams.diagram method)": [[217, "compas_ags.diagrams.Diagram.vertex_sample"]], "vertices() (compas_ags.diagrams.diagram method)": [[218, "compas_ags.diagrams.Diagram.vertices"]], "vertices_attribute() (compas_ags.diagrams.diagram method)": [[219, "compas_ags.diagrams.Diagram.vertices_attribute"]], "vertices_attributes() (compas_ags.diagrams.diagram method)": [[220, "compas_ags.diagrams.Diagram.vertices_attributes"]], "vertices_on_boundaries() (compas_ags.diagrams.diagram method)": [[221, "compas_ags.diagrams.Diagram.vertices_on_boundaries"]], "vertices_on_boundary() (compas_ags.diagrams.diagram method)": [[222, "compas_ags.diagrams.Diagram.vertices_on_boundary"]], "vertices_points() (compas_ags.diagrams.diagram method)": [[223, "compas_ags.diagrams.Diagram.vertices_points"]], "vertices_where() (compas_ags.diagrams.diagram method)": [[224, "compas_ags.diagrams.Diagram.vertices_where"]], "vertices_where_predicate() (compas_ags.diagrams.diagram method)": [[225, "compas_ags.diagrams.Diagram.vertices_where_predicate"]], "weld() (compas_ags.diagrams.diagram method)": [[226, "compas_ags.diagrams.Diagram.weld"]], "forcediagram (class in compas_ags.diagrams)": [[227, "compas_ags.diagrams.ForceDiagram"]], "tostring() (compas_ags.diagrams.forcediagram method)": [[228, "compas_ags.diagrams.ForceDiagram.ToString"]], "aabb() (compas_ags.diagrams.forcediagram method)": [[229, "compas_ags.diagrams.ForceDiagram.aabb"]], "add_face() (compas_ags.diagrams.forcediagram method)": [[230, "compas_ags.diagrams.ForceDiagram.add_face"]], "add_vertex() (compas_ags.diagrams.forcediagram method)": [[231, "compas_ags.diagrams.ForceDiagram.add_vertex"]], "adjacency_matrix() (compas_ags.diagrams.forcediagram method)": [[232, "compas_ags.diagrams.ForceDiagram.adjacency_matrix"]], "anchor() (compas_ags.diagrams.forcediagram method)": [[233, "compas_ags.diagrams.ForceDiagram.anchor"]], "area() (compas_ags.diagrams.forcediagram method)": [[234, "compas_ags.diagrams.ForceDiagram.area"]], "centroid() (compas_ags.diagrams.forcediagram method)": [[235, "compas_ags.diagrams.ForceDiagram.centroid"]], "clear() (compas_ags.diagrams.forcediagram method)": [[236, "compas_ags.diagrams.ForceDiagram.clear"]], "collapse_edge() (compas_ags.diagrams.forcediagram method)": [[237, "compas_ags.diagrams.ForceDiagram.collapse_edge"]], "compute_aabb() (compas_ags.diagrams.forcediagram method)": [[238, "compas_ags.diagrams.ForceDiagram.compute_aabb"]], "compute_obb() (compas_ags.diagrams.forcediagram method)": [[239, "compas_ags.diagrams.ForceDiagram.compute_obb"]], "connected_faces() (compas_ags.diagrams.forcediagram method)": [[240, "compas_ags.diagrams.ForceDiagram.connected_faces"]], "connected_vertices() (compas_ags.diagrams.forcediagram method)": [[241, "compas_ags.diagrams.ForceDiagram.connected_vertices"]], "connectivity_matrix() (compas_ags.diagrams.forcediagram method)": [[242, "compas_ags.diagrams.ForceDiagram.connectivity_matrix"]], "constraints_from_dual() (compas_ags.diagrams.forcediagram method)": [[243, "compas_ags.diagrams.ForceDiagram.constraints_from_dual"]], "copy() (compas_ags.diagrams.forcediagram method)": [[244, "compas_ags.diagrams.ForceDiagram.copy"]], "cull_vertices() (compas_ags.diagrams.forcediagram method)": [[245, "compas_ags.diagrams.ForceDiagram.cull_vertices"]], "degree_matrix() (compas_ags.diagrams.forcediagram method)": [[246, "compas_ags.diagrams.ForceDiagram.degree_matrix"]], "delete_face() (compas_ags.diagrams.forcediagram method)": [[247, "compas_ags.diagrams.ForceDiagram.delete_face"]], "delete_vertex() (compas_ags.diagrams.forcediagram method)": [[248, "compas_ags.diagrams.ForceDiagram.delete_vertex"]], "dual_edge() (compas_ags.diagrams.forcediagram method)": [[249, "compas_ags.diagrams.ForceDiagram.dual_edge"]], "dual_edge_angledeviation() (compas_ags.diagrams.forcediagram method)": [[250, "compas_ags.diagrams.ForceDiagram.dual_edge_angledeviation"]], "dual_edge_force() (compas_ags.diagrams.forcediagram method)": [[251, "compas_ags.diagrams.ForceDiagram.dual_edge_force"]], "dual_edge_targetforce() (compas_ags.diagrams.forcediagram method)": [[252, "compas_ags.diagrams.ForceDiagram.dual_edge_targetforce"]], "edge_attribute() (compas_ags.diagrams.forcediagram method)": [[253, "compas_ags.diagrams.ForceDiagram.edge_attribute"]], "edge_attributes() (compas_ags.diagrams.forcediagram method)": [[254, "compas_ags.diagrams.ForceDiagram.edge_attributes"]], "edge_coordinates() (compas_ags.diagrams.forcediagram method)": [[255, "compas_ags.diagrams.ForceDiagram.edge_coordinates"]], "edge_direction() (compas_ags.diagrams.forcediagram method)": [[256, "compas_ags.diagrams.ForceDiagram.edge_direction"]], "edge_end() (compas_ags.diagrams.forcediagram method)": [[257, "compas_ags.diagrams.ForceDiagram.edge_end"]], "edge_faces() (compas_ags.diagrams.forcediagram method)": [[258, "compas_ags.diagrams.ForceDiagram.edge_faces"]], "edge_index() (compas_ags.diagrams.forcediagram method)": [[259, "compas_ags.diagrams.ForceDiagram.edge_index"]], "edge_length() (compas_ags.diagrams.forcediagram method)": [[260, "compas_ags.diagrams.ForceDiagram.edge_length"]], "edge_line() (compas_ags.diagrams.forcediagram method)": [[261, "compas_ags.diagrams.ForceDiagram.edge_line"]], "edge_loop() (compas_ags.diagrams.forcediagram method)": [[262, "compas_ags.diagrams.ForceDiagram.edge_loop"]], "edge_midpoint() (compas_ags.diagrams.forcediagram method)": [[263, "compas_ags.diagrams.ForceDiagram.edge_midpoint"]], "edge_point() (compas_ags.diagrams.forcediagram method)": [[264, "compas_ags.diagrams.ForceDiagram.edge_point"]], "edge_sample() (compas_ags.diagrams.forcediagram method)": [[265, "compas_ags.diagrams.ForceDiagram.edge_sample"]], "edge_start() (compas_ags.diagrams.forcediagram method)": [[266, "compas_ags.diagrams.ForceDiagram.edge_start"]], "edge_strip() (compas_ags.diagrams.forcediagram method)": [[267, "compas_ags.diagrams.ForceDiagram.edge_strip"]], "edge_vector() (compas_ags.diagrams.forcediagram method)": [[268, "compas_ags.diagrams.ForceDiagram.edge_vector"]], "edges() (compas_ags.diagrams.forcediagram method)": [[269, "compas_ags.diagrams.ForceDiagram.edges"]], "edges_attribute() (compas_ags.diagrams.forcediagram method)": [[270, "compas_ags.diagrams.ForceDiagram.edges_attribute"]], "edges_attributes() (compas_ags.diagrams.forcediagram method)": [[271, "compas_ags.diagrams.ForceDiagram.edges_attributes"]], "edges_on_boundaries() (compas_ags.diagrams.forcediagram method)": [[272, "compas_ags.diagrams.ForceDiagram.edges_on_boundaries"]], "edges_on_boundary() (compas_ags.diagrams.forcediagram method)": [[273, "compas_ags.diagrams.ForceDiagram.edges_on_boundary"]], "edges_where() (compas_ags.diagrams.forcediagram method)": [[274, "compas_ags.diagrams.ForceDiagram.edges_where"]], "edges_where_dual() (compas_ags.diagrams.forcediagram method)": [[275, "compas_ags.diagrams.ForceDiagram.edges_where_dual"]], "edges_where_predicate() (compas_ags.diagrams.forcediagram method)": [[276, "compas_ags.diagrams.ForceDiagram.edges_where_predicate"]], "euler() (compas_ags.diagrams.forcediagram method)": [[277, "compas_ags.diagrams.ForceDiagram.euler"]], "exploded() (compas_ags.diagrams.forcediagram method)": [[278, "compas_ags.diagrams.ForceDiagram.exploded"]], "face_adjacency_halfedge() (compas_ags.diagrams.forcediagram method)": [[279, "compas_ags.diagrams.ForceDiagram.face_adjacency_halfedge"]], "face_adjacency_vertices() (compas_ags.diagrams.forcediagram method)": [[280, "compas_ags.diagrams.ForceDiagram.face_adjacency_vertices"]], "face_area() (compas_ags.diagrams.forcediagram method)": [[281, "compas_ags.diagrams.ForceDiagram.face_area"]], "face_aspect_ratio() (compas_ags.diagrams.forcediagram method)": [[282, "compas_ags.diagrams.ForceDiagram.face_aspect_ratio"]], "face_attribute() (compas_ags.diagrams.forcediagram method)": [[283, "compas_ags.diagrams.ForceDiagram.face_attribute"]], "face_attributes() (compas_ags.diagrams.forcediagram method)": [[284, "compas_ags.diagrams.ForceDiagram.face_attributes"]], "face_center() (compas_ags.diagrams.forcediagram method)": [[285, "compas_ags.diagrams.ForceDiagram.face_center"]], "face_centroid() (compas_ags.diagrams.forcediagram method)": [[286, "compas_ags.diagrams.ForceDiagram.face_centroid"]], "face_circle() (compas_ags.diagrams.forcediagram method)": [[287, "compas_ags.diagrams.ForceDiagram.face_circle"]], "face_coordinates() (compas_ags.diagrams.forcediagram method)": [[288, "compas_ags.diagrams.ForceDiagram.face_coordinates"]], "face_corners() (compas_ags.diagrams.forcediagram method)": [[289, "compas_ags.diagrams.ForceDiagram.face_corners"]], "face_curvature() (compas_ags.diagrams.forcediagram method)": [[290, "compas_ags.diagrams.ForceDiagram.face_curvature"]], "face_degree() (compas_ags.diagrams.forcediagram method)": [[291, "compas_ags.diagrams.ForceDiagram.face_degree"]], "face_flatness() (compas_ags.diagrams.forcediagram method)": [[292, "compas_ags.diagrams.ForceDiagram.face_flatness"]], "face_frame() (compas_ags.diagrams.forcediagram method)": [[293, "compas_ags.diagrams.ForceDiagram.face_frame"]], "face_halfedges() (compas_ags.diagrams.forcediagram method)": [[294, "compas_ags.diagrams.ForceDiagram.face_halfedges"]], "face_matrix() (compas_ags.diagrams.forcediagram method)": [[295, "compas_ags.diagrams.ForceDiagram.face_matrix"]], "face_max_degree() (compas_ags.diagrams.forcediagram method)": [[296, "compas_ags.diagrams.ForceDiagram.face_max_degree"]], "face_min_degree() (compas_ags.diagrams.forcediagram method)": [[297, "compas_ags.diagrams.ForceDiagram.face_min_degree"]], "face_neighborhood() (compas_ags.diagrams.forcediagram method)": [[298, "compas_ags.diagrams.ForceDiagram.face_neighborhood"]], "face_neighbors() (compas_ags.diagrams.forcediagram method)": [[299, "compas_ags.diagrams.ForceDiagram.face_neighbors"]], "face_normal() (compas_ags.diagrams.forcediagram method)": [[300, "compas_ags.diagrams.ForceDiagram.face_normal"]], "face_plane() (compas_ags.diagrams.forcediagram method)": [[301, "compas_ags.diagrams.ForceDiagram.face_plane"]], "face_points() (compas_ags.diagrams.forcediagram method)": [[302, "compas_ags.diagrams.ForceDiagram.face_points"]], "face_polygon() (compas_ags.diagrams.forcediagram method)": [[303, "compas_ags.diagrams.ForceDiagram.face_polygon"]], "face_sample() (compas_ags.diagrams.forcediagram method)": [[304, "compas_ags.diagrams.ForceDiagram.face_sample"]], "face_skewness() (compas_ags.diagrams.forcediagram method)": [[305, "compas_ags.diagrams.ForceDiagram.face_skewness"]], "face_vertex_after() (compas_ags.diagrams.forcediagram method)": [[306, "compas_ags.diagrams.ForceDiagram.face_vertex_after"]], "face_vertex_ancestor() (compas_ags.diagrams.forcediagram method)": [[307, "compas_ags.diagrams.ForceDiagram.face_vertex_ancestor"]], "face_vertex_before() (compas_ags.diagrams.forcediagram method)": [[308, "compas_ags.diagrams.ForceDiagram.face_vertex_before"]], "face_vertex_descendant() (compas_ags.diagrams.forcediagram method)": [[309, "compas_ags.diagrams.ForceDiagram.face_vertex_descendant"]], "face_vertices() (compas_ags.diagrams.forcediagram method)": [[310, "compas_ags.diagrams.ForceDiagram.face_vertices"]], "faces() (compas_ags.diagrams.forcediagram method)": [[311, "compas_ags.diagrams.ForceDiagram.faces"]], "faces_attribute() (compas_ags.diagrams.forcediagram method)": [[312, "compas_ags.diagrams.ForceDiagram.faces_attribute"]], "faces_attributes() (compas_ags.diagrams.forcediagram method)": [[313, "compas_ags.diagrams.ForceDiagram.faces_attributes"]], "faces_on_boundaries() (compas_ags.diagrams.forcediagram method)": [[314, "compas_ags.diagrams.ForceDiagram.faces_on_boundaries"]], "faces_on_boundary() (compas_ags.diagrams.forcediagram method)": [[315, "compas_ags.diagrams.ForceDiagram.faces_on_boundary"]], "faces_where() (compas_ags.diagrams.forcediagram method)": [[316, "compas_ags.diagrams.ForceDiagram.faces_where"]], "faces_where_predicate() (compas_ags.diagrams.forcediagram method)": [[317, "compas_ags.diagrams.ForceDiagram.faces_where_predicate"]], "fixed() (compas_ags.diagrams.forcediagram method)": [[318, "compas_ags.diagrams.ForceDiagram.fixed"]], "flip_cycles() (compas_ags.diagrams.forcediagram method)": [[319, "compas_ags.diagrams.ForceDiagram.flip_cycles"]], "from_formdiagram() (compas_ags.diagrams.forcediagram class method)": [[320, "compas_ags.diagrams.ForceDiagram.from_formdiagram"]], "from_json() (compas_ags.diagrams.forcediagram class method)": [[321, "compas_ags.diagrams.ForceDiagram.from_json"]], "from_jsonstring() (compas_ags.diagrams.forcediagram class method)": [[322, "compas_ags.diagrams.ForceDiagram.from_jsonstring"]], "from_lines() (compas_ags.diagrams.forcediagram class method)": [[323, "compas_ags.diagrams.ForceDiagram.from_lines"]], "from_meshgrid() (compas_ags.diagrams.forcediagram class method)": [[324, "compas_ags.diagrams.ForceDiagram.from_meshgrid"]], "from_obj() (compas_ags.diagrams.forcediagram class method)": [[325, "compas_ags.diagrams.ForceDiagram.from_obj"]], "from_off() (compas_ags.diagrams.forcediagram class method)": [[326, "compas_ags.diagrams.ForceDiagram.from_off"]], "from_ply() (compas_ags.diagrams.forcediagram class method)": [[327, "compas_ags.diagrams.ForceDiagram.from_ply"]], "from_points() (compas_ags.diagrams.forcediagram class method)": [[328, "compas_ags.diagrams.ForceDiagram.from_points"]], "from_polygons() (compas_ags.diagrams.forcediagram class method)": [[329, "compas_ags.diagrams.ForceDiagram.from_polygons"]], "from_polyhedron() (compas_ags.diagrams.forcediagram class method)": [[330, "compas_ags.diagrams.ForceDiagram.from_polyhedron"]], "from_polylines() (compas_ags.diagrams.forcediagram class method)": [[331, "compas_ags.diagrams.ForceDiagram.from_polylines"]], "from_shape() (compas_ags.diagrams.forcediagram class method)": [[332, "compas_ags.diagrams.ForceDiagram.from_shape"]], "from_stl() (compas_ags.diagrams.forcediagram class method)": [[333, "compas_ags.diagrams.ForceDiagram.from_stl"]], "from_vertices_and_faces() (compas_ags.diagrams.forcediagram class method)": [[334, "compas_ags.diagrams.ForceDiagram.from_vertices_and_faces"]], "gkey_vertex() (compas_ags.diagrams.forcediagram method)": [[335, "compas_ags.diagrams.ForceDiagram.gkey_vertex"]], "halfedge_after() (compas_ags.diagrams.forcediagram method)": [[336, "compas_ags.diagrams.ForceDiagram.halfedge_after"]], "halfedge_before() (compas_ags.diagrams.forcediagram method)": [[337, "compas_ags.diagrams.ForceDiagram.halfedge_before"]], "halfedge_face() (compas_ags.diagrams.forcediagram method)": [[338, "compas_ags.diagrams.ForceDiagram.halfedge_face"]], "halfedge_loop() (compas_ags.diagrams.forcediagram method)": [[339, "compas_ags.diagrams.ForceDiagram.halfedge_loop"]], "halfedge_loop_vertices() (compas_ags.diagrams.forcediagram method)": [[340, "compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices"]], "halfedge_strip() (compas_ags.diagrams.forcediagram method)": [[341, "compas_ags.diagrams.ForceDiagram.halfedge_strip"]], "halfedge_strip_faces() (compas_ags.diagrams.forcediagram method)": [[342, "compas_ags.diagrams.ForceDiagram.halfedge_strip_faces"]], "has_edge() (compas_ags.diagrams.forcediagram method)": [[343, "compas_ags.diagrams.ForceDiagram.has_edge"]], "has_face() (compas_ags.diagrams.forcediagram method)": [[344, "compas_ags.diagrams.ForceDiagram.has_face"]], "has_halfedge() (compas_ags.diagrams.forcediagram method)": [[345, "compas_ags.diagrams.ForceDiagram.has_halfedge"]], "has_vertex() (compas_ags.diagrams.forcediagram method)": [[346, "compas_ags.diagrams.ForceDiagram.has_vertex"]], "index_edge() (compas_ags.diagrams.forcediagram method)": [[347, "compas_ags.diagrams.ForceDiagram.index_edge"]], "index_vertex() (compas_ags.diagrams.forcediagram method)": [[348, "compas_ags.diagrams.ForceDiagram.index_vertex"]], "insert_vertex() (compas_ags.diagrams.forcediagram method)": [[349, "compas_ags.diagrams.ForceDiagram.insert_vertex"]], "is_closed() (compas_ags.diagrams.forcediagram method)": [[350, "compas_ags.diagrams.ForceDiagram.is_closed"]], "is_connected() (compas_ags.diagrams.forcediagram method)": [[351, "compas_ags.diagrams.ForceDiagram.is_connected"]], "is_dual_edge_external() (compas_ags.diagrams.forcediagram method)": [[352, "compas_ags.diagrams.ForceDiagram.is_dual_edge_external"]], "is_dual_edge_ind() (compas_ags.diagrams.forcediagram method)": [[353, "compas_ags.diagrams.ForceDiagram.is_dual_edge_ind"]], "is_dual_edge_load() (compas_ags.diagrams.forcediagram method)": [[354, "compas_ags.diagrams.ForceDiagram.is_dual_edge_load"]], "is_dual_edge_reaction() (compas_ags.diagrams.forcediagram method)": [[355, "compas_ags.diagrams.ForceDiagram.is_dual_edge_reaction"]], "is_edge_on_boundary() (compas_ags.diagrams.forcediagram method)": [[356, "compas_ags.diagrams.ForceDiagram.is_edge_on_boundary"]], "is_empty() (compas_ags.diagrams.forcediagram method)": [[357, "compas_ags.diagrams.ForceDiagram.is_empty"]], "is_face_on_boundary() (compas_ags.diagrams.forcediagram method)": [[358, "compas_ags.diagrams.ForceDiagram.is_face_on_boundary"]], "is_manifold() (compas_ags.diagrams.forcediagram method)": [[359, "compas_ags.diagrams.ForceDiagram.is_manifold"]], "is_orientable() (compas_ags.diagrams.forcediagram method)": [[360, "compas_ags.diagrams.ForceDiagram.is_orientable"]], "is_quadmesh() (compas_ags.diagrams.forcediagram method)": [[361, "compas_ags.diagrams.ForceDiagram.is_quadmesh"]], "is_regular() (compas_ags.diagrams.forcediagram method)": [[362, "compas_ags.diagrams.ForceDiagram.is_regular"]], "is_trimesh() (compas_ags.diagrams.forcediagram method)": [[363, "compas_ags.diagrams.ForceDiagram.is_trimesh"]], "is_valid() (compas_ags.diagrams.forcediagram method)": [[364, "compas_ags.diagrams.ForceDiagram.is_valid"]], "is_vertex_connected() (compas_ags.diagrams.forcediagram method)": [[365, "compas_ags.diagrams.ForceDiagram.is_vertex_connected"]], "is_vertex_on_boundary() (compas_ags.diagrams.forcediagram method)": [[366, "compas_ags.diagrams.ForceDiagram.is_vertex_on_boundary"]], "join() (compas_ags.diagrams.forcediagram method)": [[367, "compas_ags.diagrams.ForceDiagram.join"]], "laplacian_matrix() (compas_ags.diagrams.forcediagram method)": [[368, "compas_ags.diagrams.ForceDiagram.laplacian_matrix"]], "merge_faces() (compas_ags.diagrams.forcediagram method)": [[369, "compas_ags.diagrams.ForceDiagram.merge_faces"]], "normal() (compas_ags.diagrams.forcediagram method)": [[370, "compas_ags.diagrams.ForceDiagram.normal"]], "number_of_edges() (compas_ags.diagrams.forcediagram method)": [[371, "compas_ags.diagrams.ForceDiagram.number_of_edges"]], "number_of_faces() (compas_ags.diagrams.forcediagram method)": [[372, "compas_ags.diagrams.ForceDiagram.number_of_faces"]], "number_of_vertices() (compas_ags.diagrams.forcediagram method)": [[373, "compas_ags.diagrams.ForceDiagram.number_of_vertices"]], "obb() (compas_ags.diagrams.forcediagram method)": [[374, "compas_ags.diagrams.ForceDiagram.obb"]], "offset() (compas_ags.diagrams.forcediagram method)": [[375, "compas_ags.diagrams.ForceDiagram.offset"]], "ordered_edges() (compas_ags.diagrams.forcediagram method)": [[376, "compas_ags.diagrams.ForceDiagram.ordered_edges"]], "quads_to_triangles() (compas_ags.diagrams.forcediagram method)": [[377, "compas_ags.diagrams.ForceDiagram.quads_to_triangles"]], "remove_duplicate_vertices() (compas_ags.diagrams.forcediagram method)": [[378, "compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices"]], "remove_unused_vertices() (compas_ags.diagrams.forcediagram method)": [[379, "compas_ags.diagrams.ForceDiagram.remove_unused_vertices"]], "rotate() (compas_ags.diagrams.forcediagram method)": [[380, "compas_ags.diagrams.ForceDiagram.rotate"]], "rotated() (compas_ags.diagrams.forcediagram method)": [[381, "compas_ags.diagrams.ForceDiagram.rotated"]], "scale() (compas_ags.diagrams.forcediagram method)": [[382, "compas_ags.diagrams.ForceDiagram.scale"]], "scaled() (compas_ags.diagrams.forcediagram method)": [[383, "compas_ags.diagrams.ForceDiagram.scaled"]], "set_vertex_point() (compas_ags.diagrams.forcediagram method)": [[384, "compas_ags.diagrams.ForceDiagram.set_vertex_point"]], "sha256() (compas_ags.diagrams.forcediagram method)": [[385, "compas_ags.diagrams.ForceDiagram.sha256"]], "slice() (compas_ags.diagrams.forcediagram method)": [[386, "compas_ags.diagrams.ForceDiagram.slice"]], "smooth_area() (compas_ags.diagrams.forcediagram method)": [[387, "compas_ags.diagrams.ForceDiagram.smooth_area"]], "smooth_centroid() (compas_ags.diagrams.forcediagram method)": [[388, "compas_ags.diagrams.ForceDiagram.smooth_centroid"]], "split_edge() (compas_ags.diagrams.forcediagram method)": [[389, "compas_ags.diagrams.ForceDiagram.split_edge"]], "split_face() (compas_ags.diagrams.forcediagram method)": [[390, "compas_ags.diagrams.ForceDiagram.split_face"]], "split_strip() (compas_ags.diagrams.forcediagram method)": [[391, "compas_ags.diagrams.ForceDiagram.split_strip"]], "subdivided() (compas_ags.diagrams.forcediagram method)": [[392, "compas_ags.diagrams.ForceDiagram.subdivided"]], "summary() (compas_ags.diagrams.forcediagram method)": [[393, "compas_ags.diagrams.ForceDiagram.summary"]], "thickened() (compas_ags.diagrams.forcediagram method)": [[394, "compas_ags.diagrams.ForceDiagram.thickened"]], "to_json() (compas_ags.diagrams.forcediagram method)": [[395, "compas_ags.diagrams.ForceDiagram.to_json"]], "to_jsonstring() (compas_ags.diagrams.forcediagram method)": [[396, "compas_ags.diagrams.ForceDiagram.to_jsonstring"]], "to_lines() (compas_ags.diagrams.forcediagram method)": [[397, "compas_ags.diagrams.ForceDiagram.to_lines"]], "to_obj() (compas_ags.diagrams.forcediagram method)": [[398, "compas_ags.diagrams.ForceDiagram.to_obj"]], "to_off() (compas_ags.diagrams.forcediagram method)": [[399, "compas_ags.diagrams.ForceDiagram.to_off"]], "to_ply() (compas_ags.diagrams.forcediagram method)": [[400, "compas_ags.diagrams.ForceDiagram.to_ply"]], "to_points() (compas_ags.diagrams.forcediagram method)": [[401, "compas_ags.diagrams.ForceDiagram.to_points"]], "to_polygons() (compas_ags.diagrams.forcediagram method)": [[402, "compas_ags.diagrams.ForceDiagram.to_polygons"]], "to_polylines() (compas_ags.diagrams.forcediagram method)": [[403, "compas_ags.diagrams.ForceDiagram.to_polylines"]], "to_stl() (compas_ags.diagrams.forcediagram method)": [[404, "compas_ags.diagrams.ForceDiagram.to_stl"]], "to_vertices_and_faces() (compas_ags.diagrams.forcediagram method)": [[405, "compas_ags.diagrams.ForceDiagram.to_vertices_and_faces"]], "transform() (compas_ags.diagrams.forcediagram method)": [[406, "compas_ags.diagrams.ForceDiagram.transform"]], "transform_numpy() (compas_ags.diagrams.forcediagram method)": [[407, "compas_ags.diagrams.ForceDiagram.transform_numpy"]], "transformed() (compas_ags.diagrams.forcediagram method)": [[408, "compas_ags.diagrams.ForceDiagram.transformed"]], "transformed_numpy() (compas_ags.diagrams.forcediagram method)": [[409, "compas_ags.diagrams.ForceDiagram.transformed_numpy"]], "translate() (compas_ags.diagrams.forcediagram method)": [[410, "compas_ags.diagrams.ForceDiagram.translate"]], "translated() (compas_ags.diagrams.forcediagram method)": [[411, "compas_ags.diagrams.ForceDiagram.translated"]], "unify_cycles() (compas_ags.diagrams.forcediagram method)": [[412, "compas_ags.diagrams.ForceDiagram.unify_cycles"]], "unset_edge_attribute() (compas_ags.diagrams.forcediagram method)": [[413, "compas_ags.diagrams.ForceDiagram.unset_edge_attribute"]], "unset_face_attribute() (compas_ags.diagrams.forcediagram method)": [[414, "compas_ags.diagrams.ForceDiagram.unset_face_attribute"]], "unset_vertex_attribute() (compas_ags.diagrams.forcediagram method)": [[415, "compas_ags.diagrams.ForceDiagram.unset_vertex_attribute"]], "unweld_edges() (compas_ags.diagrams.forcediagram method)": [[416, "compas_ags.diagrams.ForceDiagram.unweld_edges"]], "unweld_vertices() (compas_ags.diagrams.forcediagram method)": [[417, "compas_ags.diagrams.ForceDiagram.unweld_vertices"]], "update_default_edge_attributes() (compas_ags.diagrams.forcediagram method)": [[418, "compas_ags.diagrams.ForceDiagram.update_default_edge_attributes"]], "update_default_face_attributes() (compas_ags.diagrams.forcediagram method)": [[419, "compas_ags.diagrams.ForceDiagram.update_default_face_attributes"]], "update_default_vertex_attributes() (compas_ags.diagrams.forcediagram method)": [[420, "compas_ags.diagrams.ForceDiagram.update_default_vertex_attributes"]], "validate_data() (compas_ags.diagrams.forcediagram class method)": [[421, "compas_ags.diagrams.ForceDiagram.validate_data"]], "vertex_area() (compas_ags.diagrams.forcediagram method)": [[422, "compas_ags.diagrams.ForceDiagram.vertex_area"]], "vertex_attribute() (compas_ags.diagrams.forcediagram method)": [[423, "compas_ags.diagrams.ForceDiagram.vertex_attribute"]], "vertex_attributes() (compas_ags.diagrams.forcediagram method)": [[424, "compas_ags.diagrams.ForceDiagram.vertex_attributes"]], "vertex_coordinates() (compas_ags.diagrams.forcediagram method)": [[425, "compas_ags.diagrams.ForceDiagram.vertex_coordinates"]], "vertex_curvature() (compas_ags.diagrams.forcediagram method)": [[426, "compas_ags.diagrams.ForceDiagram.vertex_curvature"]], "vertex_degree() (compas_ags.diagrams.forcediagram method)": [[427, "compas_ags.diagrams.ForceDiagram.vertex_degree"]], "vertex_edges() (compas_ags.diagrams.forcediagram method)": [[428, "compas_ags.diagrams.ForceDiagram.vertex_edges"]], "vertex_faces() (compas_ags.diagrams.forcediagram method)": [[429, "compas_ags.diagrams.ForceDiagram.vertex_faces"]], "vertex_gkey() (compas_ags.diagrams.forcediagram method)": [[430, "compas_ags.diagrams.ForceDiagram.vertex_gkey"]], "vertex_index() (compas_ags.diagrams.forcediagram method)": [[431, "compas_ags.diagrams.ForceDiagram.vertex_index"]], "vertex_laplacian() (compas_ags.diagrams.forcediagram method)": [[432, "compas_ags.diagrams.ForceDiagram.vertex_laplacian"]], "vertex_max_degree() (compas_ags.diagrams.forcediagram method)": [[433, "compas_ags.diagrams.ForceDiagram.vertex_max_degree"]], "vertex_min_degree() (compas_ags.diagrams.forcediagram method)": [[434, "compas_ags.diagrams.ForceDiagram.vertex_min_degree"]], "vertex_neighborhood() (compas_ags.diagrams.forcediagram method)": [[435, "compas_ags.diagrams.ForceDiagram.vertex_neighborhood"]], "vertex_neighborhood_centroid() (compas_ags.diagrams.forcediagram method)": [[436, "compas_ags.diagrams.ForceDiagram.vertex_neighborhood_centroid"]], "vertex_neighbors() (compas_ags.diagrams.forcediagram method)": [[437, "compas_ags.diagrams.ForceDiagram.vertex_neighbors"]], "vertex_normal() (compas_ags.diagrams.forcediagram method)": [[438, "compas_ags.diagrams.ForceDiagram.vertex_normal"]], "vertex_point() (compas_ags.diagrams.forcediagram method)": [[439, "compas_ags.diagrams.ForceDiagram.vertex_point"]], "vertex_sample() (compas_ags.diagrams.forcediagram method)": [[440, "compas_ags.diagrams.ForceDiagram.vertex_sample"]], "vertices() (compas_ags.diagrams.forcediagram method)": [[441, "compas_ags.diagrams.ForceDiagram.vertices"]], "vertices_attribute() (compas_ags.diagrams.forcediagram method)": [[442, "compas_ags.diagrams.ForceDiagram.vertices_attribute"]], "vertices_attributes() (compas_ags.diagrams.forcediagram method)": [[443, "compas_ags.diagrams.ForceDiagram.vertices_attributes"]], "vertices_on_boundaries() (compas_ags.diagrams.forcediagram method)": [[444, "compas_ags.diagrams.ForceDiagram.vertices_on_boundaries"]], "vertices_on_boundary() (compas_ags.diagrams.forcediagram method)": [[445, "compas_ags.diagrams.ForceDiagram.vertices_on_boundary"]], "vertices_points() (compas_ags.diagrams.forcediagram method)": [[446, "compas_ags.diagrams.ForceDiagram.vertices_points"]], "vertices_where() (compas_ags.diagrams.forcediagram method)": [[447, "compas_ags.diagrams.ForceDiagram.vertices_where"]], "vertices_where_predicate() (compas_ags.diagrams.forcediagram method)": [[448, "compas_ags.diagrams.ForceDiagram.vertices_where_predicate"]], "weld() (compas_ags.diagrams.forcediagram method)": [[449, "compas_ags.diagrams.ForceDiagram.weld"]], "xy() (compas_ags.diagrams.forcediagram method)": [[450, "compas_ags.diagrams.ForceDiagram.xy"]], "formdiagram (class in compas_ags.diagrams)": [[451, "compas_ags.diagrams.FormDiagram"]], "tostring() (compas_ags.diagrams.formdiagram method)": [[452, "compas_ags.diagrams.FormDiagram.ToString"]], "aabb() (compas_ags.diagrams.formdiagram method)": [[453, "compas_ags.diagrams.FormDiagram.aabb"]], "add_face() (compas_ags.diagrams.formdiagram method)": [[454, "compas_ags.diagrams.FormDiagram.add_face"]], "add_vertex() (compas_ags.diagrams.formdiagram method)": [[455, "compas_ags.diagrams.FormDiagram.add_vertex"]], "adjacency_matrix() (compas_ags.diagrams.formdiagram method)": [[456, "compas_ags.diagrams.FormDiagram.adjacency_matrix"]], "area() (compas_ags.diagrams.formdiagram method)": [[457, "compas_ags.diagrams.FormDiagram.area"]], "centroid() (compas_ags.diagrams.formdiagram method)": [[458, "compas_ags.diagrams.FormDiagram.centroid"]], "clear() (compas_ags.diagrams.formdiagram method)": [[459, "compas_ags.diagrams.FormDiagram.clear"]], "collapse_edge() (compas_ags.diagrams.formdiagram method)": [[460, "compas_ags.diagrams.FormDiagram.collapse_edge"]], "compute_aabb() (compas_ags.diagrams.formdiagram method)": [[461, "compas_ags.diagrams.FormDiagram.compute_aabb"]], "compute_obb() (compas_ags.diagrams.formdiagram method)": [[462, "compas_ags.diagrams.FormDiagram.compute_obb"]], "connected_faces() (compas_ags.diagrams.formdiagram method)": [[463, "compas_ags.diagrams.FormDiagram.connected_faces"]], "connected_vertices() (compas_ags.diagrams.formdiagram method)": [[464, "compas_ags.diagrams.FormDiagram.connected_vertices"]], "connectivity_matrix() (compas_ags.diagrams.formdiagram method)": [[465, "compas_ags.diagrams.FormDiagram.connectivity_matrix"]], "constrained() (compas_ags.diagrams.formdiagram method)": [[466, "compas_ags.diagrams.FormDiagram.constrained"]], "constraints() (compas_ags.diagrams.formdiagram method)": [[467, "compas_ags.diagrams.FormDiagram.constraints"]], "copy() (compas_ags.diagrams.formdiagram method)": [[468, "compas_ags.diagrams.FormDiagram.copy"]], "cull_vertices() (compas_ags.diagrams.formdiagram method)": [[469, "compas_ags.diagrams.FormDiagram.cull_vertices"]], "degree_matrix() (compas_ags.diagrams.formdiagram method)": [[470, "compas_ags.diagrams.FormDiagram.degree_matrix"]], "delete_face() (compas_ags.diagrams.formdiagram method)": [[471, "compas_ags.diagrams.FormDiagram.delete_face"]], "delete_vertex() (compas_ags.diagrams.formdiagram method)": [[472, "compas_ags.diagrams.FormDiagram.delete_vertex"]], "edge_attribute() (compas_ags.diagrams.formdiagram method)": [[473, "compas_ags.diagrams.FormDiagram.edge_attribute"]], "edge_attributes() (compas_ags.diagrams.formdiagram method)": [[474, "compas_ags.diagrams.FormDiagram.edge_attributes"]], "edge_coordinates() (compas_ags.diagrams.formdiagram method)": [[475, "compas_ags.diagrams.FormDiagram.edge_coordinates"]], "edge_direction() (compas_ags.diagrams.formdiagram method)": [[476, "compas_ags.diagrams.FormDiagram.edge_direction"]], "edge_end() (compas_ags.diagrams.formdiagram method)": [[477, "compas_ags.diagrams.FormDiagram.edge_end"]], "edge_faces() (compas_ags.diagrams.formdiagram method)": [[478, "compas_ags.diagrams.FormDiagram.edge_faces"]], "edge_force() (compas_ags.diagrams.formdiagram method)": [[479, "compas_ags.diagrams.FormDiagram.edge_force"]], "edge_forcedensity() (compas_ags.diagrams.formdiagram method)": [[480, "compas_ags.diagrams.FormDiagram.edge_forcedensity"]], "edge_index() (compas_ags.diagrams.formdiagram method)": [[481, "compas_ags.diagrams.FormDiagram.edge_index"]], "edge_length() (compas_ags.diagrams.formdiagram method)": [[482, "compas_ags.diagrams.FormDiagram.edge_length"]], "edge_line() (compas_ags.diagrams.formdiagram method)": [[483, "compas_ags.diagrams.FormDiagram.edge_line"]], "edge_loop() (compas_ags.diagrams.formdiagram method)": [[484, "compas_ags.diagrams.FormDiagram.edge_loop"]], "edge_midpoint() (compas_ags.diagrams.formdiagram method)": [[485, "compas_ags.diagrams.FormDiagram.edge_midpoint"]], "edge_point() (compas_ags.diagrams.formdiagram method)": [[486, "compas_ags.diagrams.FormDiagram.edge_point"]], "edge_sample() (compas_ags.diagrams.formdiagram method)": [[487, "compas_ags.diagrams.FormDiagram.edge_sample"]], "edge_start() (compas_ags.diagrams.formdiagram method)": [[488, "compas_ags.diagrams.FormDiagram.edge_start"]], "edge_strip() (compas_ags.diagrams.formdiagram method)": [[489, "compas_ags.diagrams.FormDiagram.edge_strip"]], "edge_vector() (compas_ags.diagrams.formdiagram method)": [[490, "compas_ags.diagrams.FormDiagram.edge_vector"]], "edges() (compas_ags.diagrams.formdiagram method)": [[491, "compas_ags.diagrams.FormDiagram.edges"]], "edges_attribute() (compas_ags.diagrams.formdiagram method)": [[492, "compas_ags.diagrams.FormDiagram.edges_attribute"]], "edges_attributes() (compas_ags.diagrams.formdiagram method)": [[493, "compas_ags.diagrams.FormDiagram.edges_attributes"]], "edges_on_boundaries() (compas_ags.diagrams.formdiagram method)": [[494, "compas_ags.diagrams.FormDiagram.edges_on_boundaries"]], "edges_on_boundary() (compas_ags.diagrams.formdiagram method)": [[495, "compas_ags.diagrams.FormDiagram.edges_on_boundary"]], "edges_where() (compas_ags.diagrams.formdiagram method)": [[496, "compas_ags.diagrams.FormDiagram.edges_where"]], "edges_where_predicate() (compas_ags.diagrams.formdiagram method)": [[497, "compas_ags.diagrams.FormDiagram.edges_where_predicate"]], "euler() (compas_ags.diagrams.formdiagram method)": [[498, "compas_ags.diagrams.FormDiagram.euler"]], "exploded() (compas_ags.diagrams.formdiagram method)": [[499, "compas_ags.diagrams.FormDiagram.exploded"]], "face_adjacency_halfedge() (compas_ags.diagrams.formdiagram method)": [[500, "compas_ags.diagrams.FormDiagram.face_adjacency_halfedge"]], "face_adjacency_vertices() (compas_ags.diagrams.formdiagram method)": [[501, "compas_ags.diagrams.FormDiagram.face_adjacency_vertices"]], "face_area() (compas_ags.diagrams.formdiagram method)": [[502, "compas_ags.diagrams.FormDiagram.face_area"]], "face_aspect_ratio() (compas_ags.diagrams.formdiagram method)": [[503, "compas_ags.diagrams.FormDiagram.face_aspect_ratio"]], "face_attribute() (compas_ags.diagrams.formdiagram method)": [[504, "compas_ags.diagrams.FormDiagram.face_attribute"]], "face_attributes() (compas_ags.diagrams.formdiagram method)": [[505, "compas_ags.diagrams.FormDiagram.face_attributes"]], "face_center() (compas_ags.diagrams.formdiagram method)": [[506, "compas_ags.diagrams.FormDiagram.face_center"]], "face_centroid() (compas_ags.diagrams.formdiagram method)": [[507, "compas_ags.diagrams.FormDiagram.face_centroid"]], "face_circle() (compas_ags.diagrams.formdiagram method)": [[508, "compas_ags.diagrams.FormDiagram.face_circle"]], "face_coordinates() (compas_ags.diagrams.formdiagram method)": [[509, "compas_ags.diagrams.FormDiagram.face_coordinates"]], "face_corners() (compas_ags.diagrams.formdiagram method)": [[510, "compas_ags.diagrams.FormDiagram.face_corners"]], "face_curvature() (compas_ags.diagrams.formdiagram method)": [[511, "compas_ags.diagrams.FormDiagram.face_curvature"]], "face_degree() (compas_ags.diagrams.formdiagram method)": [[512, "compas_ags.diagrams.FormDiagram.face_degree"]], "face_flatness() (compas_ags.diagrams.formdiagram method)": [[513, "compas_ags.diagrams.FormDiagram.face_flatness"]], "face_frame() (compas_ags.diagrams.formdiagram method)": [[514, "compas_ags.diagrams.FormDiagram.face_frame"]], "face_halfedges() (compas_ags.diagrams.formdiagram method)": [[515, "compas_ags.diagrams.FormDiagram.face_halfedges"]], "face_matrix() (compas_ags.diagrams.formdiagram method)": [[516, "compas_ags.diagrams.FormDiagram.face_matrix"]], "face_max_degree() (compas_ags.diagrams.formdiagram method)": [[517, "compas_ags.diagrams.FormDiagram.face_max_degree"]], "face_min_degree() (compas_ags.diagrams.formdiagram method)": [[518, "compas_ags.diagrams.FormDiagram.face_min_degree"]], "face_neighborhood() (compas_ags.diagrams.formdiagram method)": [[519, "compas_ags.diagrams.FormDiagram.face_neighborhood"]], "face_neighbors() (compas_ags.diagrams.formdiagram method)": [[520, "compas_ags.diagrams.FormDiagram.face_neighbors"]], "face_normal() (compas_ags.diagrams.formdiagram method)": [[521, "compas_ags.diagrams.FormDiagram.face_normal"]], "face_plane() (compas_ags.diagrams.formdiagram method)": [[522, "compas_ags.diagrams.FormDiagram.face_plane"]], "face_points() (compas_ags.diagrams.formdiagram method)": [[523, "compas_ags.diagrams.FormDiagram.face_points"]], "face_polygon() (compas_ags.diagrams.formdiagram method)": [[524, "compas_ags.diagrams.FormDiagram.face_polygon"]], "face_sample() (compas_ags.diagrams.formdiagram method)": [[525, "compas_ags.diagrams.FormDiagram.face_sample"]], "face_skewness() (compas_ags.diagrams.formdiagram method)": [[526, "compas_ags.diagrams.FormDiagram.face_skewness"]], "face_vertex_after() (compas_ags.diagrams.formdiagram method)": [[527, "compas_ags.diagrams.FormDiagram.face_vertex_after"]], "face_vertex_ancestor() (compas_ags.diagrams.formdiagram method)": [[528, "compas_ags.diagrams.FormDiagram.face_vertex_ancestor"]], "face_vertex_before() (compas_ags.diagrams.formdiagram method)": [[529, "compas_ags.diagrams.FormDiagram.face_vertex_before"]], "face_vertex_descendant() (compas_ags.diagrams.formdiagram method)": [[530, "compas_ags.diagrams.FormDiagram.face_vertex_descendant"]], "face_vertices() (compas_ags.diagrams.formdiagram method)": [[531, "compas_ags.diagrams.FormDiagram.face_vertices"]], "faces() (compas_ags.diagrams.formdiagram method)": [[532, "compas_ags.diagrams.FormDiagram.faces"]], "faces_attribute() (compas_ags.diagrams.formdiagram method)": [[533, "compas_ags.diagrams.FormDiagram.faces_attribute"]], "faces_attributes() (compas_ags.diagrams.formdiagram method)": [[534, "compas_ags.diagrams.FormDiagram.faces_attributes"]], "faces_on_boundaries() (compas_ags.diagrams.formdiagram method)": [[535, "compas_ags.diagrams.FormDiagram.faces_on_boundaries"]], "faces_on_boundary() (compas_ags.diagrams.formdiagram method)": [[536, "compas_ags.diagrams.FormDiagram.faces_on_boundary"]], "faces_where() (compas_ags.diagrams.formdiagram method)": [[537, "compas_ags.diagrams.FormDiagram.faces_where"]], "faces_where_predicate() (compas_ags.diagrams.formdiagram method)": [[538, "compas_ags.diagrams.FormDiagram.faces_where_predicate"]], "fixed() (compas_ags.diagrams.formdiagram method)": [[539, "compas_ags.diagrams.FormDiagram.fixed"]], "flip_cycles() (compas_ags.diagrams.formdiagram method)": [[540, "compas_ags.diagrams.FormDiagram.flip_cycles"]], "from_graph() (compas_ags.diagrams.formdiagram class method)": [[541, "compas_ags.diagrams.FormDiagram.from_graph"]], "from_json() (compas_ags.diagrams.formdiagram class method)": [[542, "compas_ags.diagrams.FormDiagram.from_json"]], "from_jsonstring() (compas_ags.diagrams.formdiagram class method)": [[543, "compas_ags.diagrams.FormDiagram.from_jsonstring"]], "from_lines() (compas_ags.diagrams.formdiagram class method)": [[544, "compas_ags.diagrams.FormDiagram.from_lines"]], "from_meshgrid() (compas_ags.diagrams.formdiagram class method)": [[545, "compas_ags.diagrams.FormDiagram.from_meshgrid"]], "from_obj() (compas_ags.diagrams.formdiagram class method)": [[546, "compas_ags.diagrams.FormDiagram.from_obj"]], "from_off() (compas_ags.diagrams.formdiagram class method)": [[547, "compas_ags.diagrams.FormDiagram.from_off"]], "from_ply() (compas_ags.diagrams.formdiagram class method)": [[548, "compas_ags.diagrams.FormDiagram.from_ply"]], "from_points() (compas_ags.diagrams.formdiagram class method)": [[549, "compas_ags.diagrams.FormDiagram.from_points"]], "from_polygons() (compas_ags.diagrams.formdiagram class method)": [[550, "compas_ags.diagrams.FormDiagram.from_polygons"]], "from_polyhedron() (compas_ags.diagrams.formdiagram class method)": [[551, "compas_ags.diagrams.FormDiagram.from_polyhedron"]], "from_polylines() (compas_ags.diagrams.formdiagram class method)": [[552, "compas_ags.diagrams.FormDiagram.from_polylines"]], "from_shape() (compas_ags.diagrams.formdiagram class method)": [[553, "compas_ags.diagrams.FormDiagram.from_shape"]], "from_stl() (compas_ags.diagrams.formdiagram class method)": [[554, "compas_ags.diagrams.FormDiagram.from_stl"]], "from_vertices_and_faces() (compas_ags.diagrams.formdiagram class method)": [[555, "compas_ags.diagrams.FormDiagram.from_vertices_and_faces"]], "gkey_vertex() (compas_ags.diagrams.formdiagram method)": [[556, "compas_ags.diagrams.FormDiagram.gkey_vertex"]], "halfedge_after() (compas_ags.diagrams.formdiagram method)": [[557, "compas_ags.diagrams.FormDiagram.halfedge_after"]], "halfedge_before() (compas_ags.diagrams.formdiagram method)": [[558, "compas_ags.diagrams.FormDiagram.halfedge_before"]], "halfedge_face() (compas_ags.diagrams.formdiagram method)": [[559, "compas_ags.diagrams.FormDiagram.halfedge_face"]], "halfedge_loop() (compas_ags.diagrams.formdiagram method)": [[560, "compas_ags.diagrams.FormDiagram.halfedge_loop"]], "halfedge_loop_vertices() (compas_ags.diagrams.formdiagram method)": [[561, "compas_ags.diagrams.FormDiagram.halfedge_loop_vertices"]], "halfedge_strip() (compas_ags.diagrams.formdiagram method)": [[562, "compas_ags.diagrams.FormDiagram.halfedge_strip"]], "halfedge_strip_faces() (compas_ags.diagrams.formdiagram method)": [[563, "compas_ags.diagrams.FormDiagram.halfedge_strip_faces"]], "has_edge() (compas_ags.diagrams.formdiagram method)": [[564, "compas_ags.diagrams.FormDiagram.has_edge"]], "has_face() (compas_ags.diagrams.formdiagram method)": [[565, "compas_ags.diagrams.FormDiagram.has_face"]], "has_halfedge() (compas_ags.diagrams.formdiagram method)": [[566, "compas_ags.diagrams.FormDiagram.has_halfedge"]], "has_vertex() (compas_ags.diagrams.formdiagram method)": [[567, "compas_ags.diagrams.FormDiagram.has_vertex"]], "identify_constraints() (compas_ags.diagrams.formdiagram method)": [[568, "compas_ags.diagrams.FormDiagram.identify_constraints"]], "ind() (compas_ags.diagrams.formdiagram method)": [[569, "compas_ags.diagrams.FormDiagram.ind"]], "index_edge() (compas_ags.diagrams.formdiagram method)": [[570, "compas_ags.diagrams.FormDiagram.index_edge"]], "index_vertex() (compas_ags.diagrams.formdiagram method)": [[571, "compas_ags.diagrams.FormDiagram.index_vertex"]], "insert_vertex() (compas_ags.diagrams.formdiagram method)": [[572, "compas_ags.diagrams.FormDiagram.insert_vertex"]], "is_closed() (compas_ags.diagrams.formdiagram method)": [[573, "compas_ags.diagrams.FormDiagram.is_closed"]], "is_connected() (compas_ags.diagrams.formdiagram method)": [[574, "compas_ags.diagrams.FormDiagram.is_connected"]], "is_edge_on_boundary() (compas_ags.diagrams.formdiagram method)": [[575, "compas_ags.diagrams.FormDiagram.is_edge_on_boundary"]], "is_empty() (compas_ags.diagrams.formdiagram method)": [[576, "compas_ags.diagrams.FormDiagram.is_empty"]], "is_face_on_boundary() (compas_ags.diagrams.formdiagram method)": [[577, "compas_ags.diagrams.FormDiagram.is_face_on_boundary"]], "is_manifold() (compas_ags.diagrams.formdiagram method)": [[578, "compas_ags.diagrams.FormDiagram.is_manifold"]], "is_orientable() (compas_ags.diagrams.formdiagram method)": [[579, "compas_ags.diagrams.FormDiagram.is_orientable"]], "is_quadmesh() (compas_ags.diagrams.formdiagram method)": [[580, "compas_ags.diagrams.FormDiagram.is_quadmesh"]], "is_regular() (compas_ags.diagrams.formdiagram method)": [[581, "compas_ags.diagrams.FormDiagram.is_regular"]], "is_trimesh() (compas_ags.diagrams.formdiagram method)": [[582, "compas_ags.diagrams.FormDiagram.is_trimesh"]], "is_valid() (compas_ags.diagrams.formdiagram method)": [[583, "compas_ags.diagrams.FormDiagram.is_valid"]], "is_vertex_connected() (compas_ags.diagrams.formdiagram method)": [[584, "compas_ags.diagrams.FormDiagram.is_vertex_connected"]], "is_vertex_on_boundary() (compas_ags.diagrams.formdiagram method)": [[585, "compas_ags.diagrams.FormDiagram.is_vertex_on_boundary"]], "join() (compas_ags.diagrams.formdiagram method)": [[586, "compas_ags.diagrams.FormDiagram.join"]], "laplacian_matrix() (compas_ags.diagrams.formdiagram method)": [[587, "compas_ags.diagrams.FormDiagram.laplacian_matrix"]], "leaf_edges() (compas_ags.diagrams.formdiagram method)": [[588, "compas_ags.diagrams.FormDiagram.leaf_edges"]], "leaves() (compas_ags.diagrams.formdiagram method)": [[589, "compas_ags.diagrams.FormDiagram.leaves"]], "merge_faces() (compas_ags.diagrams.formdiagram method)": [[590, "compas_ags.diagrams.FormDiagram.merge_faces"]], "normal() (compas_ags.diagrams.formdiagram method)": [[591, "compas_ags.diagrams.FormDiagram.normal"]], "number_of_edges() (compas_ags.diagrams.formdiagram method)": [[592, "compas_ags.diagrams.FormDiagram.number_of_edges"]], "number_of_faces() (compas_ags.diagrams.formdiagram method)": [[593, "compas_ags.diagrams.FormDiagram.number_of_faces"]], "number_of_vertices() (compas_ags.diagrams.formdiagram method)": [[594, "compas_ags.diagrams.FormDiagram.number_of_vertices"]], "obb() (compas_ags.diagrams.formdiagram method)": [[595, "compas_ags.diagrams.FormDiagram.obb"]], "offset() (compas_ags.diagrams.formdiagram method)": [[596, "compas_ags.diagrams.FormDiagram.offset"]], "q() (compas_ags.diagrams.formdiagram method)": [[597, "compas_ags.diagrams.FormDiagram.q"]], "quads_to_triangles() (compas_ags.diagrams.formdiagram method)": [[598, "compas_ags.diagrams.FormDiagram.quads_to_triangles"]], "remove_duplicate_vertices() (compas_ags.diagrams.formdiagram method)": [[599, "compas_ags.diagrams.FormDiagram.remove_duplicate_vertices"]], "remove_unused_vertices() (compas_ags.diagrams.formdiagram method)": [[600, "compas_ags.diagrams.FormDiagram.remove_unused_vertices"]], "rotate() (compas_ags.diagrams.formdiagram method)": [[601, "compas_ags.diagrams.FormDiagram.rotate"]], "rotated() (compas_ags.diagrams.formdiagram method)": [[602, "compas_ags.diagrams.FormDiagram.rotated"]], "scale() (compas_ags.diagrams.formdiagram method)": [[603, "compas_ags.diagrams.FormDiagram.scale"]], "scaled() (compas_ags.diagrams.formdiagram method)": [[604, "compas_ags.diagrams.FormDiagram.scaled"]], "set_vertex_point() (compas_ags.diagrams.formdiagram method)": [[605, "compas_ags.diagrams.FormDiagram.set_vertex_point"]], "sha256() (compas_ags.diagrams.formdiagram method)": [[606, "compas_ags.diagrams.FormDiagram.sha256"]], "slice() (compas_ags.diagrams.formdiagram method)": [[607, "compas_ags.diagrams.FormDiagram.slice"]], "smooth_area() (compas_ags.diagrams.formdiagram method)": [[608, "compas_ags.diagrams.FormDiagram.smooth_area"]], "smooth_centroid() (compas_ags.diagrams.formdiagram method)": [[609, "compas_ags.diagrams.FormDiagram.smooth_centroid"]], "split_edge() (compas_ags.diagrams.formdiagram method)": [[610, "compas_ags.diagrams.FormDiagram.split_edge"]], "split_face() (compas_ags.diagrams.formdiagram method)": [[611, "compas_ags.diagrams.FormDiagram.split_face"]], "split_strip() (compas_ags.diagrams.formdiagram method)": [[612, "compas_ags.diagrams.FormDiagram.split_strip"]], "subdivided() (compas_ags.diagrams.formdiagram method)": [[613, "compas_ags.diagrams.FormDiagram.subdivided"]], "summary() (compas_ags.diagrams.formdiagram method)": [[614, "compas_ags.diagrams.FormDiagram.summary"]], "thickened() (compas_ags.diagrams.formdiagram method)": [[615, "compas_ags.diagrams.FormDiagram.thickened"]], "to_json() (compas_ags.diagrams.formdiagram method)": [[616, "compas_ags.diagrams.FormDiagram.to_json"]], "to_jsonstring() (compas_ags.diagrams.formdiagram method)": [[617, "compas_ags.diagrams.FormDiagram.to_jsonstring"]], "to_lines() (compas_ags.diagrams.formdiagram method)": [[618, "compas_ags.diagrams.FormDiagram.to_lines"]], "to_obj() (compas_ags.diagrams.formdiagram method)": [[619, "compas_ags.diagrams.FormDiagram.to_obj"]], "to_off() (compas_ags.diagrams.formdiagram method)": [[620, "compas_ags.diagrams.FormDiagram.to_off"]], "to_ply() (compas_ags.diagrams.formdiagram method)": [[621, "compas_ags.diagrams.FormDiagram.to_ply"]], "to_points() (compas_ags.diagrams.formdiagram method)": [[622, "compas_ags.diagrams.FormDiagram.to_points"]], "to_polygons() (compas_ags.diagrams.formdiagram method)": [[623, "compas_ags.diagrams.FormDiagram.to_polygons"]], "to_polylines() (compas_ags.diagrams.formdiagram method)": [[624, "compas_ags.diagrams.FormDiagram.to_polylines"]], "to_stl() (compas_ags.diagrams.formdiagram method)": [[625, "compas_ags.diagrams.FormDiagram.to_stl"]], "to_vertices_and_faces() (compas_ags.diagrams.formdiagram method)": [[626, "compas_ags.diagrams.FormDiagram.to_vertices_and_faces"]], "transform() (compas_ags.diagrams.formdiagram method)": [[627, "compas_ags.diagrams.FormDiagram.transform"]], "transform_numpy() (compas_ags.diagrams.formdiagram method)": [[628, "compas_ags.diagrams.FormDiagram.transform_numpy"]], "transformed() (compas_ags.diagrams.formdiagram method)": [[629, "compas_ags.diagrams.FormDiagram.transformed"]], "transformed_numpy() (compas_ags.diagrams.formdiagram method)": [[630, "compas_ags.diagrams.FormDiagram.transformed_numpy"]], "translate() (compas_ags.diagrams.formdiagram method)": [[631, "compas_ags.diagrams.FormDiagram.translate"]], "translated() (compas_ags.diagrams.formdiagram method)": [[632, "compas_ags.diagrams.FormDiagram.translated"]], "unify_cycles() (compas_ags.diagrams.formdiagram method)": [[633, "compas_ags.diagrams.FormDiagram.unify_cycles"]], "unset_edge_attribute() (compas_ags.diagrams.formdiagram method)": [[634, "compas_ags.diagrams.FormDiagram.unset_edge_attribute"]], "unset_face_attribute() (compas_ags.diagrams.formdiagram method)": [[635, "compas_ags.diagrams.FormDiagram.unset_face_attribute"]], "unset_vertex_attribute() (compas_ags.diagrams.formdiagram method)": [[636, "compas_ags.diagrams.FormDiagram.unset_vertex_attribute"]], "unweld_edges() (compas_ags.diagrams.formdiagram method)": [[637, "compas_ags.diagrams.FormDiagram.unweld_edges"]], "unweld_vertices() (compas_ags.diagrams.formdiagram method)": [[638, "compas_ags.diagrams.FormDiagram.unweld_vertices"]], "update_default_edge_attributes() (compas_ags.diagrams.formdiagram method)": [[639, "compas_ags.diagrams.FormDiagram.update_default_edge_attributes"]], "update_default_face_attributes() (compas_ags.diagrams.formdiagram method)": [[640, "compas_ags.diagrams.FormDiagram.update_default_face_attributes"]], "update_default_vertex_attributes() (compas_ags.diagrams.formdiagram method)": [[641, "compas_ags.diagrams.FormDiagram.update_default_vertex_attributes"]], "validate_data() (compas_ags.diagrams.formdiagram class method)": [[642, "compas_ags.diagrams.FormDiagram.validate_data"]], "vertex_area() (compas_ags.diagrams.formdiagram method)": [[643, "compas_ags.diagrams.FormDiagram.vertex_area"]], "vertex_attribute() (compas_ags.diagrams.formdiagram method)": [[644, "compas_ags.diagrams.FormDiagram.vertex_attribute"]], "vertex_attributes() (compas_ags.diagrams.formdiagram method)": [[645, "compas_ags.diagrams.FormDiagram.vertex_attributes"]], "vertex_coordinates() (compas_ags.diagrams.formdiagram method)": [[646, "compas_ags.diagrams.FormDiagram.vertex_coordinates"]], "vertex_curvature() (compas_ags.diagrams.formdiagram method)": [[647, "compas_ags.diagrams.FormDiagram.vertex_curvature"]], "vertex_degree() (compas_ags.diagrams.formdiagram method)": [[648, "compas_ags.diagrams.FormDiagram.vertex_degree"]], "vertex_edges() (compas_ags.diagrams.formdiagram method)": [[649, "compas_ags.diagrams.FormDiagram.vertex_edges"]], "vertex_faces() (compas_ags.diagrams.formdiagram method)": [[650, "compas_ags.diagrams.FormDiagram.vertex_faces"]], "vertex_gkey() (compas_ags.diagrams.formdiagram method)": [[651, "compas_ags.diagrams.FormDiagram.vertex_gkey"]], "vertex_index() (compas_ags.diagrams.formdiagram method)": [[652, "compas_ags.diagrams.FormDiagram.vertex_index"]], "vertex_laplacian() (compas_ags.diagrams.formdiagram method)": [[653, "compas_ags.diagrams.FormDiagram.vertex_laplacian"]], "vertex_max_degree() (compas_ags.diagrams.formdiagram method)": [[654, "compas_ags.diagrams.FormDiagram.vertex_max_degree"]], "vertex_min_degree() (compas_ags.diagrams.formdiagram method)": [[655, "compas_ags.diagrams.FormDiagram.vertex_min_degree"]], "vertex_neighborhood() (compas_ags.diagrams.formdiagram method)": [[656, "compas_ags.diagrams.FormDiagram.vertex_neighborhood"]], "vertex_neighborhood_centroid() (compas_ags.diagrams.formdiagram method)": [[657, "compas_ags.diagrams.FormDiagram.vertex_neighborhood_centroid"]], "vertex_neighbors() (compas_ags.diagrams.formdiagram method)": [[658, "compas_ags.diagrams.FormDiagram.vertex_neighbors"]], "vertex_normal() (compas_ags.diagrams.formdiagram method)": [[659, "compas_ags.diagrams.FormDiagram.vertex_normal"]], "vertex_point() (compas_ags.diagrams.formdiagram method)": [[660, "compas_ags.diagrams.FormDiagram.vertex_point"]], "vertex_sample() (compas_ags.diagrams.formdiagram method)": [[661, "compas_ags.diagrams.FormDiagram.vertex_sample"]], "vertices() (compas_ags.diagrams.formdiagram method)": [[662, "compas_ags.diagrams.FormDiagram.vertices"]], "vertices_attribute() (compas_ags.diagrams.formdiagram method)": [[663, "compas_ags.diagrams.FormDiagram.vertices_attribute"]], "vertices_attributes() (compas_ags.diagrams.formdiagram method)": [[664, "compas_ags.diagrams.FormDiagram.vertices_attributes"]], "vertices_on_boundaries() (compas_ags.diagrams.formdiagram method)": [[665, "compas_ags.diagrams.FormDiagram.vertices_on_boundaries"]], "vertices_on_boundary() (compas_ags.diagrams.formdiagram method)": [[666, "compas_ags.diagrams.FormDiagram.vertices_on_boundary"]], "vertices_points() (compas_ags.diagrams.formdiagram method)": [[667, "compas_ags.diagrams.FormDiagram.vertices_points"]], "vertices_where() (compas_ags.diagrams.formdiagram method)": [[668, "compas_ags.diagrams.FormDiagram.vertices_where"]], "vertices_where_predicate() (compas_ags.diagrams.formdiagram method)": [[669, "compas_ags.diagrams.FormDiagram.vertices_where_predicate"]], "weld() (compas_ags.diagrams.formdiagram method)": [[670, "compas_ags.diagrams.FormDiagram.weld"]], "xy() (compas_ags.diagrams.formdiagram method)": [[671, "compas_ags.diagrams.FormDiagram.xy"]], "formgraph (class in compas_ags.diagrams)": [[672, "compas_ags.diagrams.FormGraph"]], "tostring() (compas_ags.diagrams.formgraph method)": [[673, "compas_ags.diagrams.FormGraph.ToString"]], "aabb() (compas_ags.diagrams.formgraph method)": [[674, "compas_ags.diagrams.FormGraph.aabb"]], "add_edge() (compas_ags.diagrams.formgraph method)": [[675, "compas_ags.diagrams.FormGraph.add_edge"]], "add_node() (compas_ags.diagrams.formgraph method)": [[676, "compas_ags.diagrams.FormGraph.add_node"]], "adjacency_matrix() (compas_ags.diagrams.formgraph method)": [[677, "compas_ags.diagrams.FormGraph.adjacency_matrix"]], "clear() (compas_ags.diagrams.formgraph method)": [[678, "compas_ags.diagrams.FormGraph.clear"]], "complement() (compas_ags.diagrams.formgraph method)": [[679, "compas_ags.diagrams.FormGraph.complement"]], "compute_aabb() (compas_ags.diagrams.formgraph method)": [[680, "compas_ags.diagrams.FormGraph.compute_aabb"]], "compute_obb() (compas_ags.diagrams.formgraph method)": [[681, "compas_ags.diagrams.FormGraph.compute_obb"]], "connected_edges() (compas_ags.diagrams.formgraph method)": [[682, "compas_ags.diagrams.FormGraph.connected_edges"]], "connected_nodes() (compas_ags.diagrams.formgraph method)": [[683, "compas_ags.diagrams.FormGraph.connected_nodes"]], "connectivity_matrix() (compas_ags.diagrams.formgraph method)": [[684, "compas_ags.diagrams.FormGraph.connectivity_matrix"]], "copy() (compas_ags.diagrams.formgraph method)": [[685, "compas_ags.diagrams.FormGraph.copy"]], "count_crossings() (compas_ags.diagrams.formgraph method)": [[686, "compas_ags.diagrams.FormGraph.count_crossings"]], "degree() (compas_ags.diagrams.formgraph method)": [[687, "compas_ags.diagrams.FormGraph.degree"]], "degree_in() (compas_ags.diagrams.formgraph method)": [[688, "compas_ags.diagrams.FormGraph.degree_in"]], "degree_matrix() (compas_ags.diagrams.formgraph method)": [[689, "compas_ags.diagrams.FormGraph.degree_matrix"]], "degree_out() (compas_ags.diagrams.formgraph method)": [[690, "compas_ags.diagrams.FormGraph.degree_out"]], "delete_edge() (compas_ags.diagrams.formgraph method)": [[691, "compas_ags.diagrams.FormGraph.delete_edge"]], "delete_node() (compas_ags.diagrams.formgraph method)": [[692, "compas_ags.diagrams.FormGraph.delete_node"]], "edge_attribute() (compas_ags.diagrams.formgraph method)": [[693, "compas_ags.diagrams.FormGraph.edge_attribute"]], "edge_attributes() (compas_ags.diagrams.formgraph method)": [[694, "compas_ags.diagrams.FormGraph.edge_attributes"]], "edge_coordinates() (compas_ags.diagrams.formgraph method)": [[695, "compas_ags.diagrams.FormGraph.edge_coordinates"]], "edge_direction() (compas_ags.diagrams.formgraph method)": [[696, "compas_ags.diagrams.FormGraph.edge_direction"]], "edge_end() (compas_ags.diagrams.formgraph method)": [[697, "compas_ags.diagrams.FormGraph.edge_end"]], "edge_index() (compas_ags.diagrams.formgraph method)": [[698, "compas_ags.diagrams.FormGraph.edge_index"]], "edge_length() (compas_ags.diagrams.formgraph method)": [[699, "compas_ags.diagrams.FormGraph.edge_length"]], "edge_line() (compas_ags.diagrams.formgraph method)": [[700, "compas_ags.diagrams.FormGraph.edge_line"]], "edge_midpoint() (compas_ags.diagrams.formgraph method)": [[701, "compas_ags.diagrams.FormGraph.edge_midpoint"]], "edge_point() (compas_ags.diagrams.formgraph method)": [[702, "compas_ags.diagrams.FormGraph.edge_point"]], "edge_sample() (compas_ags.diagrams.formgraph method)": [[703, "compas_ags.diagrams.FormGraph.edge_sample"]], "edge_start() (compas_ags.diagrams.formgraph method)": [[704, "compas_ags.diagrams.FormGraph.edge_start"]], "edge_vector() (compas_ags.diagrams.formgraph method)": [[705, "compas_ags.diagrams.FormGraph.edge_vector"]], "edges() (compas_ags.diagrams.formgraph method)": [[706, "compas_ags.diagrams.FormGraph.edges"]], "edges_attribute() (compas_ags.diagrams.formgraph method)": [[707, "compas_ags.diagrams.FormGraph.edges_attribute"]], "edges_attributes() (compas_ags.diagrams.formgraph method)": [[708, "compas_ags.diagrams.FormGraph.edges_attributes"]], "edges_where() (compas_ags.diagrams.formgraph method)": [[709, "compas_ags.diagrams.FormGraph.edges_where"]], "edges_where_predicate() (compas_ags.diagrams.formgraph method)": [[710, "compas_ags.diagrams.FormGraph.edges_where_predicate"]], "embed() (compas_ags.diagrams.formgraph method)": [[711, "compas_ags.diagrams.FormGraph.embed"]], "embed_in_plane() (compas_ags.diagrams.formgraph method)": [[712, "compas_ags.diagrams.FormGraph.embed_in_plane"]], "exploded() (compas_ags.diagrams.formgraph method)": [[713, "compas_ags.diagrams.FormGraph.exploded"]], "find_crossings() (compas_ags.diagrams.formgraph method)": [[714, "compas_ags.diagrams.FormGraph.find_crossings"]], "find_cycles() (compas_ags.diagrams.formgraph method)": [[715, "compas_ags.diagrams.FormGraph.find_cycles"]], "from_edges() (compas_ags.diagrams.formgraph class method)": [[716, "compas_ags.diagrams.FormGraph.from_edges"]], "from_json() (compas_ags.diagrams.formgraph class method)": [[717, "compas_ags.diagrams.FormGraph.from_json"]], "from_jsonstring() (compas_ags.diagrams.formgraph class method)": [[718, "compas_ags.diagrams.FormGraph.from_jsonstring"]], "from_lines() (compas_ags.diagrams.formgraph class method)": [[719, "compas_ags.diagrams.FormGraph.from_lines"]], "from_networkx() (compas_ags.diagrams.formgraph class method)": [[720, "compas_ags.diagrams.FormGraph.from_networkx"]], "from_nodes_and_edges() (compas_ags.diagrams.formgraph class method)": [[721, "compas_ags.diagrams.FormGraph.from_nodes_and_edges"]], "from_obj() (compas_ags.diagrams.formgraph class method)": [[722, "compas_ags.diagrams.FormGraph.from_obj"]], "from_pointcloud() (compas_ags.diagrams.formgraph class method)": [[723, "compas_ags.diagrams.FormGraph.from_pointcloud"]], "gkey_node() (compas_ags.diagrams.formgraph method)": [[724, "compas_ags.diagrams.FormGraph.gkey_node"]], "has_edge() (compas_ags.diagrams.formgraph method)": [[725, "compas_ags.diagrams.FormGraph.has_edge"]], "has_node() (compas_ags.diagrams.formgraph method)": [[726, "compas_ags.diagrams.FormGraph.has_node"]], "index_edge() (compas_ags.diagrams.formgraph method)": [[727, "compas_ags.diagrams.FormGraph.index_edge"]], "index_node() (compas_ags.diagrams.formgraph method)": [[728, "compas_ags.diagrams.FormGraph.index_node"]], "is_2d() (compas_ags.diagrams.formgraph method)": [[729, "compas_ags.diagrams.FormGraph.is_2d"]], "is_connected() (compas_ags.diagrams.formgraph method)": [[730, "compas_ags.diagrams.FormGraph.is_connected"]], "is_crossed() (compas_ags.diagrams.formgraph method)": [[731, "compas_ags.diagrams.FormGraph.is_crossed"]], "is_leaf() (compas_ags.diagrams.formgraph method)": [[732, "compas_ags.diagrams.FormGraph.is_leaf"]], "is_node_connected() (compas_ags.diagrams.formgraph method)": [[733, "compas_ags.diagrams.FormGraph.is_node_connected"]], "is_planar() (compas_ags.diagrams.formgraph method)": [[734, "compas_ags.diagrams.FormGraph.is_planar"]], "is_planar_embedding() (compas_ags.diagrams.formgraph method)": [[735, "compas_ags.diagrams.FormGraph.is_planar_embedding"]], "is_xy() (compas_ags.diagrams.formgraph method)": [[736, "compas_ags.diagrams.FormGraph.is_xy"]], "join_edges() (compas_ags.diagrams.formgraph method)": [[737, "compas_ags.diagrams.FormGraph.join_edges"]], "laplacian_matrix() (compas_ags.diagrams.formgraph method)": [[738, "compas_ags.diagrams.FormGraph.laplacian_matrix"]], "leaves() (compas_ags.diagrams.formgraph method)": [[739, "compas_ags.diagrams.FormGraph.leaves"]], "neighborhood() (compas_ags.diagrams.formgraph method)": [[740, "compas_ags.diagrams.FormGraph.neighborhood"]], "neighbors() (compas_ags.diagrams.formgraph method)": [[741, "compas_ags.diagrams.FormGraph.neighbors"]], "neighbors_in() (compas_ags.diagrams.formgraph method)": [[742, "compas_ags.diagrams.FormGraph.neighbors_in"]], "neighbors_out() (compas_ags.diagrams.formgraph method)": [[743, "compas_ags.diagrams.FormGraph.neighbors_out"]], "node_attribute() (compas_ags.diagrams.formgraph method)": [[744, "compas_ags.diagrams.FormGraph.node_attribute"]], "node_attributes() (compas_ags.diagrams.formgraph method)": [[745, "compas_ags.diagrams.FormGraph.node_attributes"]], "node_coordinates() (compas_ags.diagrams.formgraph method)": [[746, "compas_ags.diagrams.FormGraph.node_coordinates"]], "node_edges() (compas_ags.diagrams.formgraph method)": [[747, "compas_ags.diagrams.FormGraph.node_edges"]], "node_gkey() (compas_ags.diagrams.formgraph method)": [[748, "compas_ags.diagrams.FormGraph.node_gkey"]], "node_index() (compas_ags.diagrams.formgraph method)": [[749, "compas_ags.diagrams.FormGraph.node_index"]], "node_laplacian() (compas_ags.diagrams.formgraph method)": [[750, "compas_ags.diagrams.FormGraph.node_laplacian"]], "node_neighborhood_centroid() (compas_ags.diagrams.formgraph method)": [[751, "compas_ags.diagrams.FormGraph.node_neighborhood_centroid"]], "node_point() (compas_ags.diagrams.formgraph method)": [[752, "compas_ags.diagrams.FormGraph.node_point"]], "node_sample() (compas_ags.diagrams.formgraph method)": [[753, "compas_ags.diagrams.FormGraph.node_sample"]], "nodes() (compas_ags.diagrams.formgraph method)": [[754, "compas_ags.diagrams.FormGraph.nodes"]], "nodes_attribute() (compas_ags.diagrams.formgraph method)": [[755, "compas_ags.diagrams.FormGraph.nodes_attribute"]], "nodes_attributes() (compas_ags.diagrams.formgraph method)": [[756, "compas_ags.diagrams.FormGraph.nodes_attributes"]], "nodes_where() (compas_ags.diagrams.formgraph method)": [[757, "compas_ags.diagrams.FormGraph.nodes_where"]], "nodes_where_predicate() (compas_ags.diagrams.formgraph method)": [[758, "compas_ags.diagrams.FormGraph.nodes_where_predicate"]], "number_of_edges() (compas_ags.diagrams.formgraph method)": [[759, "compas_ags.diagrams.FormGraph.number_of_edges"]], "number_of_nodes() (compas_ags.diagrams.formgraph method)": [[760, "compas_ags.diagrams.FormGraph.number_of_nodes"]], "obb() (compas_ags.diagrams.formgraph method)": [[761, "compas_ags.diagrams.FormGraph.obb"]], "rotate() (compas_ags.diagrams.formgraph method)": [[762, "compas_ags.diagrams.FormGraph.rotate"]], "rotated() (compas_ags.diagrams.formgraph method)": [[763, "compas_ags.diagrams.FormGraph.rotated"]], "scale() (compas_ags.diagrams.formgraph method)": [[764, "compas_ags.diagrams.FormGraph.scale"]], "scaled() (compas_ags.diagrams.formgraph method)": [[765, "compas_ags.diagrams.FormGraph.scaled"]], "sha256() (compas_ags.diagrams.formgraph method)": [[766, "compas_ags.diagrams.FormGraph.sha256"]], "shortest_path() (compas_ags.diagrams.formgraph method)": [[767, "compas_ags.diagrams.FormGraph.shortest_path"]], "smooth() (compas_ags.diagrams.formgraph method)": [[768, "compas_ags.diagrams.FormGraph.smooth"]], "split_edge() (compas_ags.diagrams.formgraph method)": [[769, "compas_ags.diagrams.FormGraph.split_edge"]], "summary() (compas_ags.diagrams.formgraph method)": [[770, "compas_ags.diagrams.FormGraph.summary"]], "to_json() (compas_ags.diagrams.formgraph method)": [[771, "compas_ags.diagrams.FormGraph.to_json"]], "to_jsonstring() (compas_ags.diagrams.formgraph method)": [[772, "compas_ags.diagrams.FormGraph.to_jsonstring"]], "to_lines() (compas_ags.diagrams.formgraph method)": [[773, "compas_ags.diagrams.FormGraph.to_lines"]], "to_networkx() (compas_ags.diagrams.formgraph method)": [[774, "compas_ags.diagrams.FormGraph.to_networkx"]], "to_nodes_and_edges() (compas_ags.diagrams.formgraph method)": [[775, "compas_ags.diagrams.FormGraph.to_nodes_and_edges"]], "to_obj() (compas_ags.diagrams.formgraph method)": [[776, "compas_ags.diagrams.FormGraph.to_obj"]], "to_points() (compas_ags.diagrams.formgraph method)": [[777, "compas_ags.diagrams.FormGraph.to_points"]], "transform() (compas_ags.diagrams.formgraph method)": [[778, "compas_ags.diagrams.FormGraph.transform"]], "transform_numpy() (compas_ags.diagrams.formgraph method)": [[779, "compas_ags.diagrams.FormGraph.transform_numpy"]], "transformed() (compas_ags.diagrams.formgraph method)": [[780, "compas_ags.diagrams.FormGraph.transformed"]], "transformed_numpy() (compas_ags.diagrams.formgraph method)": [[781, "compas_ags.diagrams.FormGraph.transformed_numpy"]], "translate() (compas_ags.diagrams.formgraph method)": [[782, "compas_ags.diagrams.FormGraph.translate"]], "translated() (compas_ags.diagrams.formgraph method)": [[783, "compas_ags.diagrams.FormGraph.translated"]], "unset_edge_attribute() (compas_ags.diagrams.formgraph method)": [[784, "compas_ags.diagrams.FormGraph.unset_edge_attribute"]], "unset_node_attribute() (compas_ags.diagrams.formgraph method)": [[785, "compas_ags.diagrams.FormGraph.unset_node_attribute"]], "update_default_edge_attributes() (compas_ags.diagrams.formgraph method)": [[786, "compas_ags.diagrams.FormGraph.update_default_edge_attributes"]], "update_default_node_attributes() (compas_ags.diagrams.formgraph method)": [[787, "compas_ags.diagrams.FormGraph.update_default_node_attributes"]], "validate_data() (compas_ags.diagrams.formgraph class method)": [[788, "compas_ags.diagrams.FormGraph.validate_data"]], "solutionerror": [[789, "compas_ags.exceptions.SolutionError"]]}}) \ No newline at end of file