From fb8466b6379e8f0eae8936c0d1228b7e9d918754 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 11:13:10 +0000 Subject: [PATCH] Deploy to GitHub pages --- latest/.buildinfo | 2 +- latest/.doctrees/api.doctree | Bin 2703 -> 2706 bytes latest/.doctrees/api/compas_ags.ags.doctree | Bin 24672 -> 22575 bytes .../.doctrees/api/compas_ags.diagrams.doctree | Bin 10536 -> 9240 bytes latest/.doctrees/api/compas_ags.doctree | Bin 3556 -> 2786 bytes .../api/compas_ags.exceptions.doctree | Bin 0 -> 4856 bytes ...mpas_ags.ags.compute_external_work.doctree | Bin 7831 -> 8160 bytes ...mpas_ags.ags.compute_internal_work.doctree | Bin 7291 -> 7585 bytes ....compute_internal_work_compression.doctree | Bin 7558 -> 7863 bytes ....ags.compute_internal_work_tension.doctree | Bin 7482 -> 7787 bytes .../compas_ags.ags.compute_loadpath.doctree | Bin 6909 -> 7231 bytes ...pas_ags.ags.force_update_from_form.doctree | Bin 8104 -> 8675 bytes .../compas_ags.ags.form_count_dof.doctree | Bin 8839 -> 8383 bytes .../compas_ags.ags.form_identify_dof.doctree | Bin 12212 -> 11457 bytes ...pas_ags.ags.form_update_from_force.doctree | Bin 13906 -> 13474 bytes ...as_ags.ags.form_update_q_from_qind.doctree | Bin 7189 -> 7385 bytes .../compas_ags.ags.optimise_loadpath.doctree | Bin 13205 -> 12952 bytes ...as_ags.ags.update_primal_from_dual.doctree | Bin 23604 -> 24833 bytes .../compas_ags.ags.update_q_from_qind.doctree | Bin 8973 -> 9537 bytes ...mpas_ags.diagrams.Diagram.ToString.doctree | Bin 5195 -> 5338 bytes .../compas_ags.diagrams.Diagram.aabb.doctree | Bin 0 -> 5480 bytes ...mpas_ags.diagrams.Diagram.add_face.doctree | Bin 10489 -> 13506 bytes ...as_ags.diagrams.Diagram.add_vertex.doctree | Bin 10153 -> 13082 bytes ....diagrams.Diagram.adjacency_matrix.doctree | Bin 0 -> 7082 bytes .../compas_ags.diagrams.Diagram.area.doctree | Bin 4607 -> 5054 bytes ...mpas_ags.diagrams.Diagram.centroid.doctree | Bin 4737 -> 5246 bytes .../compas_ags.diagrams.Diagram.clear.doctree | Bin 4591 -> 4984 bytes ...ags.diagrams.Diagram.collapse_edge.doctree | Bin 13547 -> 13740 bytes ..._ags.diagrams.Diagram.compute_aabb.doctree | Bin 0 -> 5658 bytes ...s_ags.diagrams.Diagram.compute_obb.doctree | Bin 0 -> 5634 bytes ...s.diagrams.Diagram.connected_faces.doctree | Bin 0 -> 5331 bytes ...iagrams.Diagram.connected_vertices.doctree | Bin 0 -> 5394 bytes ...agrams.Diagram.connectivity_matrix.doctree | Bin 0 -> 7145 bytes .../compas_ags.diagrams.Diagram.copy.doctree | Bin 6633 -> 7827 bytes ...ags.diagrams.Diagram.cull_vertices.doctree | Bin 4777 -> 6035 bytes ...ags.diagrams.Diagram.degree_matrix.doctree | Bin 0 -> 7019 bytes ...s_ags.diagrams.Diagram.delete_face.doctree | Bin 6637 -> 9161 bytes ...ags.diagrams.Diagram.delete_vertex.doctree | Bin 6732 -> 9247 bytes .../compas_ags.diagrams.Diagram.doctree | Bin 265145 -> 252562 bytes ...gs.diagrams.Diagram.edge_attribute.doctree | Bin 8939 -> 13940 bytes ...s.diagrams.Diagram.edge_attributes.doctree | Bin 9799 -> 14417 bytes ....diagrams.Diagram.edge_coordinates.doctree | Bin 8663 -> 8231 bytes ...gs.diagrams.Diagram.edge_direction.doctree | Bin 6632 -> 7046 bytes ...mpas_ags.diagrams.Diagram.edge_end.doctree | Bin 0 -> 6897 bytes ...as_ags.diagrams.Diagram.edge_faces.doctree | Bin 6823 -> 6824 bytes ...as_ags.diagrams.Diagram.edge_index.doctree | Bin 3985 -> 4039 bytes ...s_ags.diagrams.Diagram.edge_length.doctree | Bin 6529 -> 6459 bytes ...pas_ags.diagrams.Diagram.edge_line.doctree | Bin 0 -> 6884 bytes ...pas_ags.diagrams.Diagram.edge_loop.doctree | Bin 5859 -> 6655 bytes ...ags.diagrams.Diagram.edge_midpoint.doctree | Bin 6639 -> 6569 bytes ...as_ags.diagrams.Diagram.edge_point.doctree | Bin 8381 -> 9000 bytes ...s_ags.diagrams.Diagram.edge_sample.doctree | Bin 6121 -> 8249 bytes ...as_ags.diagrams.Diagram.edge_start.doctree | Bin 0 -> 6941 bytes ...as_ags.diagrams.Diagram.edge_strip.doctree | Bin 8054 -> 9061 bytes ...s_ags.diagrams.Diagram.edge_vector.doctree | Bin 6547 -> 6819 bytes .../compas_ags.diagrams.Diagram.edges.doctree | Bin 8998 -> 12297 bytes ...s.diagrams.Diagram.edges_attribute.doctree | Bin 9329 -> 13629 bytes ....diagrams.Diagram.edges_attributes.doctree | Bin 10594 -> 15250 bytes ...agrams.Diagram.edges_on_boundaries.doctree | Bin 4968 -> 5481 bytes ...diagrams.Diagram.edges_on_boundary.doctree | Bin 4918 -> 5435 bytes ...s_ags.diagrams.Diagram.edges_where.doctree | Bin 10142 -> 14147 bytes ...rams.Diagram.edges_where_predicate.doctree | Bin 9081 -> 12769 bytes .../compas_ags.diagrams.Diagram.euler.doctree | Bin 4698 -> 5956 bytes ...mpas_ags.diagrams.Diagram.exploded.doctree | Bin 0 -> 5921 bytes ...ms.Diagram.face_adjacency_halfedge.doctree | Bin 7574 -> 8393 bytes ...ms.Diagram.face_adjacency_vertices.doctree | Bin 7014 -> 7839 bytes ...pas_ags.diagrams.Diagram.face_area.doctree | Bin 5606 -> 6369 bytes ...diagrams.Diagram.face_aspect_ratio.doctree | Bin 6709 -> 7636 bytes ...gs.diagrams.Diagram.face_attribute.doctree | Bin 8693 -> 13652 bytes ...s.diagrams.Diagram.face_attributes.doctree | Bin 9740 -> 14357 bytes ...s_ags.diagrams.Diagram.face_center.doctree | Bin 5740 -> 6963 bytes ...ags.diagrams.Diagram.face_centroid.doctree | Bin 5746 -> 6959 bytes ...s_ags.diagrams.Diagram.face_circle.doctree | Bin 0 -> 6846 bytes ....diagrams.Diagram.face_coordinates.doctree | Bin 7393 -> 8169 bytes ..._ags.diagrams.Diagram.face_corners.doctree | Bin 5855 -> 6666 bytes ...gs.diagrams.Diagram.face_curvature.doctree | Bin 6125 -> 6882 bytes ...s_ags.diagrams.Diagram.face_degree.doctree | Bin 5642 -> 6337 bytes ...ags.diagrams.Diagram.face_flatness.doctree | Bin 7999 -> 9519 bytes ...as_ags.diagrams.Diagram.face_frame.doctree | Bin 0 -> 6819 bytes ...gs.diagrams.Diagram.face_halfedges.doctree | Bin 5757 -> 6498 bytes ...s_ags.diagrams.Diagram.face_matrix.doctree | Bin 0 -> 9476 bytes ...s.diagrams.Diagram.face_max_degree.doctree | Bin 4846 -> 5275 bytes ...s.diagrams.Diagram.face_min_degree.doctree | Bin 4844 -> 5271 bytes ...diagrams.Diagram.face_neighborhood.doctree | Bin 7129 -> 7820 bytes ...gs.diagrams.Diagram.face_neighbors.doctree | Bin 5803 -> 6566 bytes ...s_ags.diagrams.Diagram.face_normal.doctree | Bin 7068 -> 8103 bytes ...as_ags.diagrams.Diagram.face_plane.doctree | Bin 6379 -> 6897 bytes ...s_ags.diagrams.Diagram.face_points.doctree | Bin 0 -> 7096 bytes ..._ags.diagrams.Diagram.face_polygon.doctree | Bin 0 -> 6873 bytes ...s_ags.diagrams.Diagram.face_sample.doctree | Bin 6085 -> 8201 bytes ...ags.diagrams.Diagram.face_skewness.doctree | Bin 6633 -> 7590 bytes ...diagrams.Diagram.face_vertex_after.doctree | Bin 8938 -> 10002 bytes ...grams.Diagram.face_vertex_ancestor.doctree | Bin 8985 -> 10051 bytes ...iagrams.Diagram.face_vertex_before.doctree | Bin 8959 -> 10025 bytes ...ams.Diagram.face_vertex_descendant.doctree | Bin 9003 -> 10067 bytes ...ags.diagrams.Diagram.face_vertices.doctree | Bin 5710 -> 6445 bytes .../compas_ags.diagrams.Diagram.faces.doctree | Bin 6765 -> 10391 bytes ...s.diagrams.Diagram.faces_attribute.doctree | Bin 9269 -> 13586 bytes ....diagrams.Diagram.faces_attributes.doctree | Bin 10534 -> 15217 bytes ...agrams.Diagram.faces_on_boundaries.doctree | Bin 4970 -> 5509 bytes ...diagrams.Diagram.faces_on_boundary.doctree | Bin 4882 -> 5387 bytes ...s_ags.diagrams.Diagram.faces_where.doctree | Bin 10046 -> 14051 bytes ...rams.Diagram.faces_where_predicate.doctree | Bin 8767 -> 12457 bytes ...s_ags.diagrams.Diagram.flip_cycles.doctree | Bin 6328 -> 5699 bytes ...pas_ags.diagrams.Diagram.from_json.doctree | Bin 6829 -> 8721 bytes ...s.diagrams.Diagram.from_jsonstring.doctree | Bin 6685 -> 8777 bytes ...as_ags.diagrams.Diagram.from_lines.doctree | Bin 10834 -> 11727 bytes ...ags.diagrams.Diagram.from_meshgrid.doctree | Bin 10124 -> 11335 bytes ...mpas_ags.diagrams.Diagram.from_obj.doctree | Bin 9591 -> 10373 bytes ...mpas_ags.diagrams.Diagram.from_off.doctree | Bin 6501 -> 7262 bytes ...mpas_ags.diagrams.Diagram.from_ply.doctree | Bin 7043 -> 7837 bytes ...s_ags.diagrams.Diagram.from_points.doctree | Bin 7493 -> 7514 bytes ...ags.diagrams.Diagram.from_polygons.doctree | Bin 9037 -> 9590 bytes ...s.diagrams.Diagram.from_polyhedron.doctree | Bin 6564 -> 7310 bytes ...gs.diagrams.Diagram.from_polylines.doctree | Bin 8813 -> 9726 bytes ...as_ags.diagrams.Diagram.from_shape.doctree | Bin 8759 -> 9635 bytes ...mpas_ags.diagrams.Diagram.from_stl.doctree | Bin 7893 -> 8643 bytes ...ms.Diagram.from_vertices_and_faces.doctree | Bin 9043 -> 9799 bytes ...s_ags.diagrams.Diagram.gkey_vertex.doctree | Bin 7253 -> 7918 bytes ...gs.diagrams.Diagram.halfedge_after.doctree | Bin 6743 -> 6638 bytes ...s.diagrams.Diagram.halfedge_before.doctree | Bin 6768 -> 6671 bytes ...ags.diagrams.Diagram.halfedge_face.doctree | Bin 7613 -> 7680 bytes ...ags.diagrams.Diagram.halfedge_loop.doctree | Bin 5987 -> 6783 bytes ...ams.Diagram.halfedge_loop_vertices.doctree | Bin 0 -> 7440 bytes ...gs.diagrams.Diagram.halfedge_strip.doctree | Bin 5954 -> 6760 bytes ...grams.Diagram.halfedge_strip_faces.doctree | Bin 0 -> 6820 bytes ...mpas_ags.diagrams.Diagram.has_edge.doctree | Bin 6015 -> 6760 bytes ...mpas_ags.diagrams.Diagram.has_face.doctree | Bin 5692 -> 6458 bytes ..._ags.diagrams.Diagram.has_halfedge.doctree | Bin 5845 -> 6648 bytes ...as_ags.diagrams.Diagram.has_vertex.doctree | Bin 5733 -> 6520 bytes ...as_ags.diagrams.Diagram.index_edge.doctree | Bin 3985 -> 4039 bytes ..._ags.diagrams.Diagram.index_vertex.doctree | Bin 5102 -> 6259 bytes ...ags.diagrams.Diagram.insert_vertex.doctree | Bin 10349 -> 11813 bytes ...pas_ags.diagrams.Diagram.is_closed.doctree | Bin 4843 -> 8721 bytes ..._ags.diagrams.Diagram.is_connected.doctree | Bin 7197 -> 8775 bytes ...agrams.Diagram.is_edge_on_boundary.doctree | Bin 6827 -> 6723 bytes ...mpas_ags.diagrams.Diagram.is_empty.doctree | Bin 4786 -> 8629 bytes ...agrams.Diagram.is_face_on_boundary.doctree | Bin 5866 -> 6659 bytes ...s_ags.diagrams.Diagram.is_manifold.doctree | Bin 5769 -> 9627 bytes ...ags.diagrams.Diagram.is_orientable.doctree | Bin 5236 -> 9045 bytes ...s_ags.diagrams.Diagram.is_quadmesh.doctree | Bin 4861 -> 8691 bytes ...as_ags.diagrams.Diagram.is_regular.doctree | Bin 5812 -> 9673 bytes ...as_ags.diagrams.Diagram.is_trimesh.doctree | Bin 4862 -> 8705 bytes ...mpas_ags.diagrams.Diagram.is_valid.doctree | Bin 6128 -> 9995 bytes ...agrams.Diagram.is_vertex_connected.doctree | Bin 5918 -> 6761 bytes ...rams.Diagram.is_vertex_on_boundary.doctree | Bin 5910 -> 6709 bytes .../compas_ags.diagrams.Diagram.join.doctree | Bin 7281 -> 11416 bytes ....diagrams.Diagram.laplacian_matrix.doctree | Bin 0 -> 13166 bytes ...s_ags.diagrams.Diagram.merge_faces.doctree | Bin 7730 -> 8537 bytes ...compas_ags.diagrams.Diagram.normal.doctree | Bin 4715 -> 5220 bytes ...s.diagrams.Diagram.number_of_edges.doctree | Bin 4766 -> 6701 bytes ...s.diagrams.Diagram.number_of_faces.doctree | Bin 4766 -> 6701 bytes ...iagrams.Diagram.number_of_vertices.doctree | Bin 4817 -> 6740 bytes .../compas_ags.diagrams.Diagram.obb.doctree | Bin 0 -> 5456 bytes ...compas_ags.diagrams.Diagram.offset.doctree | Bin 0 -> 9018 bytes ...iagrams.Diagram.quads_to_triangles.doctree | Bin 7769 -> 7342 bytes ....Diagram.remove_duplicate_vertices.doctree | Bin 0 -> 8808 bytes ...ams.Diagram.remove_unused_vertices.doctree | Bin 4894 -> 6163 bytes ...compas_ags.diagrams.Diagram.rotate.doctree | Bin 0 -> 12755 bytes ...ompas_ags.diagrams.Diagram.rotated.doctree | Bin 0 -> 13254 bytes .../compas_ags.diagrams.Diagram.scale.doctree | Bin 0 -> 11973 bytes ...compas_ags.diagrams.Diagram.scaled.doctree | Bin 0 -> 12468 bytes ....diagrams.Diagram.set_vertex_point.doctree | Bin 0 -> 7800 bytes ...compas_ags.diagrams.Diagram.sha256.doctree | Bin 6874 -> 7672 bytes .../compas_ags.diagrams.Diagram.slice.doctree | Bin 0 -> 10528 bytes ...s_ags.diagrams.Diagram.smooth_area.doctree | Bin 12471 -> 14198 bytes ...s.diagrams.Diagram.smooth_centroid.doctree | Bin 12457 -> 14184 bytes ...as_ags.diagrams.Diagram.split_edge.doctree | Bin 10885 -> 11532 bytes ...as_ags.diagrams.Diagram.split_face.doctree | Bin 10306 -> 12002 bytes ...s_ags.diagrams.Diagram.split_strip.doctree | Bin 7027 -> 7949 bytes ...as_ags.diagrams.Diagram.subdivided.doctree | Bin 0 -> 10988 bytes ...ompas_ags.diagrams.Diagram.summary.doctree | Bin 4718 -> 5159 bytes ...pas_ags.diagrams.Diagram.thickened.doctree | Bin 0 -> 10789 bytes ...ompas_ags.diagrams.Diagram.to_json.doctree | Bin 7247 -> 7113 bytes ...ags.diagrams.Diagram.to_jsonstring.doctree | Bin 6182 -> 7013 bytes ...mpas_ags.diagrams.Diagram.to_lines.doctree | Bin 4951 -> 5534 bytes ...compas_ags.diagrams.Diagram.to_obj.doctree | Bin 9239 -> 10016 bytes ...compas_ags.diagrams.Diagram.to_off.doctree | Bin 5849 -> 6602 bytes ...compas_ags.diagrams.Diagram.to_ply.doctree | Bin 5847 -> 6600 bytes ...pas_ags.diagrams.Diagram.to_points.doctree | Bin 4824 -> 5365 bytes ...s_ags.diagrams.Diagram.to_polygons.doctree | Bin 4882 -> 5435 bytes ..._ags.diagrams.Diagram.to_polylines.doctree | Bin 4921 -> 5496 bytes ...compas_ags.diagrams.Diagram.to_stl.doctree | Bin 10322 -> 11010 bytes ...rams.Diagram.to_vertices_and_faces.doctree | Bin 7106 -> 7624 bytes ...pas_ags.diagrams.Diagram.transform.doctree | Bin 8121 -> 7593 bytes ...s.diagrams.Diagram.transform_numpy.doctree | Bin 3720 -> 7720 bytes ...s_ags.diagrams.Diagram.transformed.doctree | Bin 8579 -> 7174 bytes ...diagrams.Diagram.transformed_numpy.doctree | Bin 0 -> 7272 bytes ...pas_ags.diagrams.Diagram.translate.doctree | Bin 0 -> 9516 bytes ...as_ags.diagrams.Diagram.translated.doctree | Bin 0 -> 10012 bytes ..._ags.diagrams.Diagram.unify_cycles.doctree | Bin 8354 -> 5759 bytes ...grams.Diagram.unset_edge_attribute.doctree | Bin 7887 -> 12230 bytes ...grams.Diagram.unset_face_attribute.doctree | Bin 7826 -> 12168 bytes ...ams.Diagram.unset_vertex_attribute.doctree | Bin 7878 -> 12278 bytes ..._ags.diagrams.Diagram.unweld_edges.doctree | Bin 0 -> 7508 bytes ...s.diagrams.Diagram.unweld_vertices.doctree | Bin 0 -> 9283 bytes ...ram.update_default_edge_attributes.doctree | Bin 8093 -> 10582 bytes ...ram.update_default_face_attributes.doctree | Bin 8093 -> 10582 bytes ...m.update_default_vertex_attributes.doctree | Bin 8127 -> 10608 bytes ...ags.diagrams.Diagram.validate_data.doctree | Bin 5415 -> 7151 bytes ...s_ags.diagrams.Diagram.vertex_area.doctree | Bin 5651 -> 6409 bytes ....diagrams.Diagram.vertex_attribute.doctree | Bin 8734 -> 13752 bytes ...diagrams.Diagram.vertex_attributes.doctree | Bin 9916 -> 14714 bytes ...iagrams.Diagram.vertex_coordinates.doctree | Bin 7336 -> 8071 bytes ....diagrams.Diagram.vertex_curvature.doctree | Bin 6900 -> 7836 bytes ...ags.diagrams.Diagram.vertex_degree.doctree | Bin 5715 -> 6445 bytes ..._ags.diagrams.Diagram.vertex_edges.doctree | Bin 5612 -> 6284 bytes ..._ags.diagrams.Diagram.vertex_faces.doctree | Bin 8447 -> 9386 bytes ...s_ags.diagrams.Diagram.vertex_gkey.doctree | Bin 7260 -> 7925 bytes ..._ags.diagrams.Diagram.vertex_index.doctree | Bin 5134 -> 6265 bytes ....diagrams.Diagram.vertex_laplacian.doctree | Bin 5820 -> 7034 bytes ...diagrams.Diagram.vertex_max_degree.doctree | Bin 4914 -> 5375 bytes ...diagrams.Diagram.vertex_min_degree.doctree | Bin 4912 -> 5371 bytes ...agrams.Diagram.vertex_neighborhood.doctree | Bin 7563 -> 8254 bytes ...agram.vertex_neighborhood_centroid.doctree | Bin 5974 -> 7255 bytes ....diagrams.Diagram.vertex_neighbors.doctree | Bin 8473 -> 9403 bytes ...ags.diagrams.Diagram.vertex_normal.doctree | Bin 5863 -> 7048 bytes ..._ags.diagrams.Diagram.vertex_point.doctree | Bin 0 -> 6903 bytes ...ags.diagrams.Diagram.vertex_sample.doctree | Bin 6136 -> 8251 bytes ...mpas_ags.diagrams.Diagram.vertices.doctree | Bin 6837 -> 10455 bytes ...iagrams.Diagram.vertices_attribute.doctree | Bin 9292 -> 13603 bytes ...agrams.Diagram.vertices_attributes.doctree | Bin 10362 -> 15234 bytes ...ams.Diagram.vertices_on_boundaries.doctree | Bin 4995 -> 5732 bytes ...grams.Diagram.vertices_on_boundary.doctree | Bin 4939 -> 5450 bytes ...s.diagrams.Diagram.vertices_points.doctree | Bin 0 -> 7184 bytes ...gs.diagrams.Diagram.vertices_where.doctree | Bin 10133 -> 14135 bytes ...s.Diagram.vertices_where_predicate.doctree | Bin 9121 -> 12541 bytes .../compas_ags.diagrams.Diagram.weld.doctree | Bin 0 -> 7619 bytes ...ags.diagrams.ForceDiagram.ToString.doctree | Bin 5265 -> 5408 bytes ...pas_ags.diagrams.ForceDiagram.aabb.doctree | Bin 0 -> 5560 bytes ...ags.diagrams.ForceDiagram.add_face.doctree | Bin 10564 -> 13586 bytes ...s.diagrams.ForceDiagram.add_vertex.doctree | Bin 10223 -> 13162 bytes ...rams.ForceDiagram.adjacency_matrix.doctree | Bin 0 -> 7152 bytes ...s_ags.diagrams.ForceDiagram.anchor.doctree | Bin 4869 -> 5057 bytes ...pas_ags.diagrams.ForceDiagram.area.doctree | Bin 4677 -> 5124 bytes ...ags.diagrams.ForceDiagram.centroid.doctree | Bin 4807 -> 5316 bytes ...as_ags.diagrams.ForceDiagram.clear.doctree | Bin 4661 -> 5054 bytes ...iagrams.ForceDiagram.collapse_edge.doctree | Bin 13627 -> 13820 bytes ...diagrams.ForceDiagram.compute_aabb.doctree | Bin 0 -> 5738 bytes ....diagrams.ForceDiagram.compute_obb.doctree | Bin 0 -> 5714 bytes ...grams.ForceDiagram.connected_faces.doctree | Bin 0 -> 5401 bytes ...ms.ForceDiagram.connected_vertices.doctree | Bin 0 -> 5464 bytes ...s.ForceDiagram.connectivity_matrix.doctree | Bin 0 -> 7215 bytes ...ForceDiagram.constraints_from_dual.doctree | Bin 5752 -> 5981 bytes ...pas_ags.diagrams.ForceDiagram.copy.doctree | Bin 6713 -> 7907 bytes ...iagrams.ForceDiagram.cull_vertices.doctree | Bin 4847 -> 6115 bytes ...iagrams.ForceDiagram.degree_matrix.doctree | Bin 0 -> 7089 bytes ....diagrams.ForceDiagram.delete_face.doctree | Bin 6717 -> 9241 bytes ...iagrams.ForceDiagram.delete_vertex.doctree | Bin 6812 -> 9327 bytes .../compas_ags.diagrams.ForceDiagram.doctree | Bin 289892 -> 275441 bytes ...gs.diagrams.ForceDiagram.dual_edge.doctree | Bin 6064 -> 6637 bytes ...ceDiagram.dual_edge_angledeviation.doctree | Bin 6182 -> 6647 bytes ...grams.ForceDiagram.dual_edge_force.doctree | Bin 6018 -> 6492 bytes ...ForceDiagram.dual_edge_targetforce.doctree | Bin 6128 -> 6596 bytes ...agrams.ForceDiagram.edge_attribute.doctree | Bin 9014 -> 14020 bytes ...grams.ForceDiagram.edge_attributes.doctree | Bin 9874 -> 14497 bytes ...rams.ForceDiagram.edge_coordinates.doctree | Bin 8733 -> 8301 bytes ...agrams.ForceDiagram.edge_direction.doctree | Bin 6702 -> 7126 bytes ...ags.diagrams.ForceDiagram.edge_end.doctree | Bin 0 -> 6977 bytes ...s.diagrams.ForceDiagram.edge_faces.doctree | Bin 6893 -> 6894 bytes ...s.diagrams.ForceDiagram.edge_index.doctree | Bin 7310 -> 8356 bytes ....diagrams.ForceDiagram.edge_length.doctree | Bin 6599 -> 6529 bytes ...gs.diagrams.ForceDiagram.edge_line.doctree | Bin 0 -> 6964 bytes ...gs.diagrams.ForceDiagram.edge_loop.doctree | Bin 5929 -> 6725 bytes ...iagrams.ForceDiagram.edge_midpoint.doctree | Bin 6709 -> 6639 bytes ...s.diagrams.ForceDiagram.edge_point.doctree | Bin 8451 -> 9080 bytes ....diagrams.ForceDiagram.edge_sample.doctree | Bin 6191 -> 8329 bytes ...s.diagrams.ForceDiagram.edge_start.doctree | Bin 0 -> 7021 bytes ...s.diagrams.ForceDiagram.edge_strip.doctree | Bin 8124 -> 9131 bytes ....diagrams.ForceDiagram.edge_vector.doctree | Bin 6617 -> 6899 bytes ...as_ags.diagrams.ForceDiagram.edges.doctree | Bin 9078 -> 12377 bytes ...grams.ForceDiagram.edges_attribute.doctree | Bin 9404 -> 13709 bytes ...rams.ForceDiagram.edges_attributes.doctree | Bin 10669 -> 15330 bytes ...s.ForceDiagram.edges_on_boundaries.doctree | Bin 5038 -> 5551 bytes ...ams.ForceDiagram.edges_on_boundary.doctree | Bin 4988 -> 5505 bytes ....diagrams.ForceDiagram.edges_where.doctree | Bin 10212 -> 14227 bytes ...rams.ForceDiagram.edges_where_dual.doctree | Bin 9394 -> 9851 bytes ...ForceDiagram.edges_where_predicate.doctree | Bin 9151 -> 12849 bytes ...as_ags.diagrams.ForceDiagram.euler.doctree | Bin 4768 -> 6036 bytes ...ags.diagrams.ForceDiagram.exploded.doctree | Bin 0 -> 6001 bytes ...rceDiagram.face_adjacency_halfedge.doctree | Bin 7644 -> 8463 bytes ...rceDiagram.face_adjacency_vertices.doctree | Bin 7084 -> 7909 bytes ...gs.diagrams.ForceDiagram.face_area.doctree | Bin 5676 -> 6439 bytes ...ams.ForceDiagram.face_aspect_ratio.doctree | Bin 6779 -> 7706 bytes ...agrams.ForceDiagram.face_attribute.doctree | Bin 8768 -> 13732 bytes ...grams.ForceDiagram.face_attributes.doctree | Bin 9815 -> 14437 bytes ....diagrams.ForceDiagram.face_center.doctree | Bin 5810 -> 7043 bytes ...iagrams.ForceDiagram.face_centroid.doctree | Bin 5816 -> 7039 bytes ....diagrams.ForceDiagram.face_circle.doctree | Bin 0 -> 6926 bytes ...rams.ForceDiagram.face_coordinates.doctree | Bin 7463 -> 8239 bytes ...diagrams.ForceDiagram.face_corners.doctree | Bin 5925 -> 6736 bytes ...agrams.ForceDiagram.face_curvature.doctree | Bin 6195 -> 6952 bytes ....diagrams.ForceDiagram.face_degree.doctree | Bin 5712 -> 6407 bytes ...iagrams.ForceDiagram.face_flatness.doctree | Bin 8069 -> 9589 bytes ...s.diagrams.ForceDiagram.face_frame.doctree | Bin 0 -> 6899 bytes ...agrams.ForceDiagram.face_halfedges.doctree | Bin 5827 -> 6568 bytes ....diagrams.ForceDiagram.face_matrix.doctree | Bin 0 -> 9551 bytes ...grams.ForceDiagram.face_max_degree.doctree | Bin 4916 -> 5345 bytes ...grams.ForceDiagram.face_min_degree.doctree | Bin 4914 -> 5341 bytes ...ams.ForceDiagram.face_neighborhood.doctree | Bin 7199 -> 7890 bytes ...agrams.ForceDiagram.face_neighbors.doctree | Bin 5873 -> 6636 bytes ....diagrams.ForceDiagram.face_normal.doctree | Bin 7138 -> 8183 bytes ...s.diagrams.ForceDiagram.face_plane.doctree | Bin 6449 -> 6977 bytes ....diagrams.ForceDiagram.face_points.doctree | Bin 0 -> 7176 bytes ...diagrams.ForceDiagram.face_polygon.doctree | Bin 0 -> 6953 bytes ....diagrams.ForceDiagram.face_sample.doctree | Bin 6155 -> 8281 bytes ...iagrams.ForceDiagram.face_skewness.doctree | Bin 6703 -> 7660 bytes ...ams.ForceDiagram.face_vertex_after.doctree | Bin 9013 -> 10072 bytes ....ForceDiagram.face_vertex_ancestor.doctree | Bin 9060 -> 10121 bytes ...ms.ForceDiagram.face_vertex_before.doctree | Bin 9034 -> 10095 bytes ...orceDiagram.face_vertex_descendant.doctree | Bin 9078 -> 10137 bytes ...iagrams.ForceDiagram.face_vertices.doctree | Bin 5780 -> 6515 bytes ...as_ags.diagrams.ForceDiagram.faces.doctree | Bin 6835 -> 10471 bytes ...grams.ForceDiagram.faces_attribute.doctree | Bin 9344 -> 13666 bytes ...rams.ForceDiagram.faces_attributes.doctree | Bin 10609 -> 15297 bytes ...s.ForceDiagram.faces_on_boundaries.doctree | Bin 5040 -> 5579 bytes ...ams.ForceDiagram.faces_on_boundary.doctree | Bin 4952 -> 5457 bytes ....diagrams.ForceDiagram.faces_where.doctree | Bin 10116 -> 14131 bytes ...ForceDiagram.faces_where_predicate.doctree | Bin 8837 -> 12537 bytes ...as_ags.diagrams.ForceDiagram.fixed.doctree | Bin 4862 -> 5052 bytes ....diagrams.ForceDiagram.flip_cycles.doctree | Bin 6408 -> 5769 bytes ...rams.ForceDiagram.from_formdiagram.doctree | Bin 7197 -> 7876 bytes ...gs.diagrams.ForceDiagram.from_json.doctree | Bin 6909 -> 8801 bytes ...grams.ForceDiagram.from_jsonstring.doctree | Bin 6765 -> 8857 bytes ...s.diagrams.ForceDiagram.from_lines.doctree | Bin 10914 -> 11807 bytes ...iagrams.ForceDiagram.from_meshgrid.doctree | Bin 10204 -> 11415 bytes ...ags.diagrams.ForceDiagram.from_obj.doctree | Bin 9671 -> 10453 bytes ...ags.diagrams.ForceDiagram.from_off.doctree | Bin 6581 -> 7342 bytes ...ags.diagrams.ForceDiagram.from_ply.doctree | Bin 7123 -> 7917 bytes ....diagrams.ForceDiagram.from_points.doctree | Bin 7573 -> 7594 bytes ...iagrams.ForceDiagram.from_polygons.doctree | Bin 9117 -> 9670 bytes ...grams.ForceDiagram.from_polyhedron.doctree | Bin 6644 -> 7390 bytes ...agrams.ForceDiagram.from_polylines.doctree | Bin 8893 -> 9806 bytes ...s.diagrams.ForceDiagram.from_shape.doctree | Bin 8839 -> 9715 bytes ...ags.diagrams.ForceDiagram.from_stl.doctree | Bin 7973 -> 8723 bytes ...rceDiagram.from_vertices_and_faces.doctree | Bin 9123 -> 9879 bytes ....diagrams.ForceDiagram.gkey_vertex.doctree | Bin 7333 -> 7998 bytes ...agrams.ForceDiagram.halfedge_after.doctree | Bin 6813 -> 6708 bytes ...grams.ForceDiagram.halfedge_before.doctree | Bin 6838 -> 6741 bytes ...iagrams.ForceDiagram.halfedge_face.doctree | Bin 7688 -> 7750 bytes ...iagrams.ForceDiagram.halfedge_loop.doctree | Bin 6057 -> 6853 bytes ...orceDiagram.halfedge_loop_vertices.doctree | Bin 0 -> 7510 bytes ...agrams.ForceDiagram.halfedge_strip.doctree | Bin 6024 -> 6830 bytes ....ForceDiagram.halfedge_strip_faces.doctree | Bin 0 -> 6890 bytes ...ags.diagrams.ForceDiagram.has_edge.doctree | Bin 6085 -> 6830 bytes ...ags.diagrams.ForceDiagram.has_face.doctree | Bin 5762 -> 6528 bytes ...diagrams.ForceDiagram.has_halfedge.doctree | Bin 5915 -> 6718 bytes ...s.diagrams.ForceDiagram.has_vertex.doctree | Bin 5803 -> 6590 bytes ...s.diagrams.ForceDiagram.index_edge.doctree | Bin 3828 -> 4109 bytes ...diagrams.ForceDiagram.index_vertex.doctree | Bin 4934 -> 6339 bytes ...iagrams.ForceDiagram.insert_vertex.doctree | Bin 10419 -> 11883 bytes ...gs.diagrams.ForceDiagram.is_closed.doctree | Bin 4913 -> 8801 bytes ...diagrams.ForceDiagram.is_connected.doctree | Bin 7277 -> 8855 bytes ...ForceDiagram.is_dual_edge_external.doctree | Bin 6127 -> 6596 bytes ...rams.ForceDiagram.is_dual_edge_ind.doctree | Bin 6053 -> 6527 bytes ...ams.ForceDiagram.is_dual_edge_load.doctree | Bin 6055 -> 6528 bytes ...ForceDiagram.is_dual_edge_reaction.doctree | Bin 6127 -> 6596 bytes ...s.ForceDiagram.is_edge_on_boundary.doctree | Bin 6897 -> 6793 bytes ...ags.diagrams.ForceDiagram.is_empty.doctree | Bin 4856 -> 8709 bytes ...s.ForceDiagram.is_face_on_boundary.doctree | Bin 5936 -> 6729 bytes ....diagrams.ForceDiagram.is_manifold.doctree | Bin 5839 -> 9707 bytes ...iagrams.ForceDiagram.is_orientable.doctree | Bin 5306 -> 9125 bytes ....diagrams.ForceDiagram.is_quadmesh.doctree | Bin 4931 -> 8771 bytes ...s.diagrams.ForceDiagram.is_regular.doctree | Bin 5882 -> 9753 bytes ...s.diagrams.ForceDiagram.is_trimesh.doctree | Bin 4932 -> 8785 bytes ...ags.diagrams.ForceDiagram.is_valid.doctree | Bin 6198 -> 10075 bytes ...s.ForceDiagram.is_vertex_connected.doctree | Bin 5988 -> 6831 bytes ...ForceDiagram.is_vertex_on_boundary.doctree | Bin 5980 -> 6779 bytes ...pas_ags.diagrams.ForceDiagram.join.doctree | Bin 7361 -> 11496 bytes ...rams.ForceDiagram.laplacian_matrix.doctree | Bin 0 -> 13241 bytes ....diagrams.ForceDiagram.merge_faces.doctree | Bin 7810 -> 8617 bytes ...s_ags.diagrams.ForceDiagram.normal.doctree | Bin 4785 -> 5290 bytes ...grams.ForceDiagram.number_of_edges.doctree | Bin 4836 -> 6781 bytes ...grams.ForceDiagram.number_of_faces.doctree | Bin 4836 -> 6781 bytes ...ms.ForceDiagram.number_of_vertices.doctree | Bin 4887 -> 6820 bytes ...mpas_ags.diagrams.ForceDiagram.obb.doctree | Bin 0 -> 5536 bytes ...s_ags.diagrams.ForceDiagram.offset.doctree | Bin 0 -> 9098 bytes ...iagrams.ForceDiagram.ordered_edges.doctree | Bin 6328 -> 6975 bytes ...ms.ForceDiagram.quads_to_triangles.doctree | Bin 7849 -> 7412 bytes ...eDiagram.remove_duplicate_vertices.doctree | Bin 0 -> 8888 bytes ...orceDiagram.remove_unused_vertices.doctree | Bin 4964 -> 6243 bytes ...s_ags.diagrams.ForceDiagram.rotate.doctree | Bin 0 -> 12835 bytes ..._ags.diagrams.ForceDiagram.rotated.doctree | Bin 0 -> 13334 bytes ...as_ags.diagrams.ForceDiagram.scale.doctree | Bin 0 -> 12053 bytes ...s_ags.diagrams.ForceDiagram.scaled.doctree | Bin 0 -> 12548 bytes ...rams.ForceDiagram.set_vertex_point.doctree | Bin 0 -> 7880 bytes ...s_ags.diagrams.ForceDiagram.sha256.doctree | Bin 6944 -> 7742 bytes ...as_ags.diagrams.ForceDiagram.slice.doctree | Bin 0 -> 10608 bytes ....diagrams.ForceDiagram.smooth_area.doctree | Bin 12551 -> 14278 bytes ...grams.ForceDiagram.smooth_centroid.doctree | Bin 12537 -> 14264 bytes ...s.diagrams.ForceDiagram.split_edge.doctree | Bin 10965 -> 11612 bytes ...s.diagrams.ForceDiagram.split_face.doctree | Bin 10386 -> 12082 bytes ....diagrams.ForceDiagram.split_strip.doctree | Bin 7107 -> 8029 bytes ...s.diagrams.ForceDiagram.subdivided.doctree | Bin 0 -> 11068 bytes ..._ags.diagrams.ForceDiagram.summary.doctree | Bin 4788 -> 5229 bytes ...gs.diagrams.ForceDiagram.thickened.doctree | Bin 0 -> 10869 bytes ..._ags.diagrams.ForceDiagram.to_json.doctree | Bin 7317 -> 7183 bytes ...iagrams.ForceDiagram.to_jsonstring.doctree | Bin 6252 -> 7083 bytes ...ags.diagrams.ForceDiagram.to_lines.doctree | Bin 5021 -> 5604 bytes ...s_ags.diagrams.ForceDiagram.to_obj.doctree | Bin 9309 -> 10086 bytes ...s_ags.diagrams.ForceDiagram.to_off.doctree | Bin 5919 -> 6672 bytes ...s_ags.diagrams.ForceDiagram.to_ply.doctree | Bin 5917 -> 6670 bytes ...gs.diagrams.ForceDiagram.to_points.doctree | Bin 4894 -> 5435 bytes ....diagrams.ForceDiagram.to_polygons.doctree | Bin 4952 -> 5505 bytes ...diagrams.ForceDiagram.to_polylines.doctree | Bin 4991 -> 5566 bytes ...s_ags.diagrams.ForceDiagram.to_stl.doctree | Bin 10402 -> 11090 bytes ...ForceDiagram.to_vertices_and_faces.doctree | Bin 7176 -> 7694 bytes ...gs.diagrams.ForceDiagram.transform.doctree | Bin 8201 -> 7673 bytes ...grams.ForceDiagram.transform_numpy.doctree | Bin 3785 -> 7800 bytes ....diagrams.ForceDiagram.transformed.doctree | Bin 8659 -> 7254 bytes ...ams.ForceDiagram.transformed_numpy.doctree | Bin 0 -> 7352 bytes ...gs.diagrams.ForceDiagram.translate.doctree | Bin 0 -> 9596 bytes ...s.diagrams.ForceDiagram.translated.doctree | Bin 0 -> 10092 bytes ...diagrams.ForceDiagram.unify_cycles.doctree | Bin 8434 -> 5829 bytes ....ForceDiagram.unset_edge_attribute.doctree | Bin 7962 -> 12310 bytes ....ForceDiagram.unset_face_attribute.doctree | Bin 7901 -> 12248 bytes ...orceDiagram.unset_vertex_attribute.doctree | Bin 7953 -> 12358 bytes ...diagrams.ForceDiagram.unweld_edges.doctree | Bin 0 -> 7588 bytes ...grams.ForceDiagram.unweld_vertices.doctree | Bin 0 -> 9363 bytes ...ram.update_default_edge_attributes.doctree | Bin 8163 -> 10662 bytes ...ram.update_default_face_attributes.doctree | Bin 8163 -> 10662 bytes ...m.update_default_vertex_attributes.doctree | Bin 8197 -> 10688 bytes ...iagrams.ForceDiagram.validate_data.doctree | Bin 5490 -> 7221 bytes ....diagrams.ForceDiagram.vertex_area.doctree | Bin 5721 -> 6479 bytes ...rams.ForceDiagram.vertex_attribute.doctree | Bin 8809 -> 13832 bytes ...ams.ForceDiagram.vertex_attributes.doctree | Bin 9991 -> 14794 bytes ...ms.ForceDiagram.vertex_coordinates.doctree | Bin 7406 -> 8141 bytes ...rams.ForceDiagram.vertex_curvature.doctree | Bin 6975 -> 7911 bytes ...iagrams.ForceDiagram.vertex_degree.doctree | Bin 5785 -> 6515 bytes ...diagrams.ForceDiagram.vertex_edges.doctree | Bin 5682 -> 6354 bytes ...diagrams.ForceDiagram.vertex_faces.doctree | Bin 8517 -> 9456 bytes ....diagrams.ForceDiagram.vertex_gkey.doctree | Bin 7340 -> 8005 bytes ...diagrams.ForceDiagram.vertex_index.doctree | Bin 4966 -> 6345 bytes ...rams.ForceDiagram.vertex_laplacian.doctree | Bin 5890 -> 7114 bytes ...ams.ForceDiagram.vertex_max_degree.doctree | Bin 4984 -> 5445 bytes ...ams.ForceDiagram.vertex_min_degree.doctree | Bin 4982 -> 5441 bytes ...s.ForceDiagram.vertex_neighborhood.doctree | Bin 7633 -> 8324 bytes ...agram.vertex_neighborhood_centroid.doctree | Bin 6044 -> 7335 bytes ...rams.ForceDiagram.vertex_neighbors.doctree | Bin 8543 -> 9473 bytes ...iagrams.ForceDiagram.vertex_normal.doctree | Bin 5933 -> 7128 bytes ...diagrams.ForceDiagram.vertex_point.doctree | Bin 0 -> 6983 bytes ...iagrams.ForceDiagram.vertex_sample.doctree | Bin 6206 -> 8331 bytes ...ags.diagrams.ForceDiagram.vertices.doctree | Bin 6907 -> 10535 bytes ...ms.ForceDiagram.vertices_attribute.doctree | Bin 9367 -> 13683 bytes ...s.ForceDiagram.vertices_attributes.doctree | Bin 10437 -> 15314 bytes ...orceDiagram.vertices_on_boundaries.doctree | Bin 5065 -> 5802 bytes ....ForceDiagram.vertices_on_boundary.doctree | Bin 5009 -> 5520 bytes ...grams.ForceDiagram.vertices_points.doctree | Bin 0 -> 7264 bytes ...agrams.ForceDiagram.vertices_where.doctree | Bin 10203 -> 14215 bytes ...ceDiagram.vertices_where_predicate.doctree | Bin 9191 -> 12621 bytes ...pas_ags.diagrams.ForceDiagram.weld.doctree | Bin 0 -> 7699 bytes ...ompas_ags.diagrams.ForceDiagram.xy.doctree | Bin 4808 -> 5001 bytes ..._ags.diagrams.FormDiagram.ToString.doctree | Bin 5251 -> 5394 bytes ...mpas_ags.diagrams.FormDiagram.aabb.doctree | Bin 0 -> 5544 bytes ..._ags.diagrams.FormDiagram.add_face.doctree | Bin 10549 -> 13570 bytes ...gs.diagrams.FormDiagram.add_vertex.doctree | Bin 10209 -> 13146 bytes ...grams.FormDiagram.adjacency_matrix.doctree | Bin 0 -> 7138 bytes ...mpas_ags.diagrams.FormDiagram.area.doctree | Bin 4663 -> 5110 bytes ..._ags.diagrams.FormDiagram.centroid.doctree | Bin 4793 -> 5302 bytes ...pas_ags.diagrams.FormDiagram.clear.doctree | Bin 4647 -> 5040 bytes ...diagrams.FormDiagram.collapse_edge.doctree | Bin 13611 -> 13804 bytes ....diagrams.FormDiagram.compute_aabb.doctree | Bin 0 -> 5722 bytes ...s.diagrams.FormDiagram.compute_obb.doctree | Bin 0 -> 5698 bytes ...agrams.FormDiagram.connected_faces.doctree | Bin 0 -> 5387 bytes ...ams.FormDiagram.connected_vertices.doctree | Bin 0 -> 5450 bytes ...ms.FormDiagram.connectivity_matrix.doctree | Bin 0 -> 7201 bytes ...s.diagrams.FormDiagram.constrained.doctree | Bin 4076 -> 4132 bytes ...s.diagrams.FormDiagram.constraints.doctree | Bin 4076 -> 4132 bytes ...mpas_ags.diagrams.FormDiagram.copy.doctree | Bin 6697 -> 7891 bytes ...diagrams.FormDiagram.cull_vertices.doctree | Bin 4833 -> 6099 bytes ...diagrams.FormDiagram.degree_matrix.doctree | Bin 0 -> 7075 bytes ...s.diagrams.FormDiagram.delete_face.doctree | Bin 6701 -> 9225 bytes ...diagrams.FormDiagram.delete_vertex.doctree | Bin 6796 -> 9311 bytes .../compas_ags.diagrams.FormDiagram.doctree | Bin 282194 -> 267626 bytes ...iagrams.FormDiagram.edge_attribute.doctree | Bin 8999 -> 14004 bytes ...agrams.FormDiagram.edge_attributes.doctree | Bin 9859 -> 14481 bytes ...grams.FormDiagram.edge_coordinates.doctree | Bin 8719 -> 8287 bytes ...iagrams.FormDiagram.edge_direction.doctree | Bin 6688 -> 7110 bytes ..._ags.diagrams.FormDiagram.edge_end.doctree | Bin 0 -> 6961 bytes ...gs.diagrams.FormDiagram.edge_faces.doctree | Bin 6879 -> 6880 bytes ...gs.diagrams.FormDiagram.edge_force.doctree | Bin 8025 -> 8551 bytes ...rams.FormDiagram.edge_forcedensity.doctree | Bin 8257 -> 8790 bytes ...gs.diagrams.FormDiagram.edge_index.doctree | Bin 3814 -> 4095 bytes ...s.diagrams.FormDiagram.edge_length.doctree | Bin 6585 -> 6515 bytes ...ags.diagrams.FormDiagram.edge_line.doctree | Bin 0 -> 6948 bytes ...ags.diagrams.FormDiagram.edge_loop.doctree | Bin 5915 -> 6711 bytes ...diagrams.FormDiagram.edge_midpoint.doctree | Bin 6695 -> 6625 bytes ...gs.diagrams.FormDiagram.edge_point.doctree | Bin 8437 -> 9064 bytes ...s.diagrams.FormDiagram.edge_sample.doctree | Bin 6177 -> 8313 bytes ...gs.diagrams.FormDiagram.edge_start.doctree | Bin 0 -> 7005 bytes ...gs.diagrams.FormDiagram.edge_strip.doctree | Bin 8110 -> 9117 bytes ...s.diagrams.FormDiagram.edge_vector.doctree | Bin 6603 -> 6883 bytes ...pas_ags.diagrams.FormDiagram.edges.doctree | Bin 7222 -> 7888 bytes ...agrams.FormDiagram.edges_attribute.doctree | Bin 9389 -> 13693 bytes ...grams.FormDiagram.edges_attributes.doctree | Bin 10654 -> 15314 bytes ...ms.FormDiagram.edges_on_boundaries.doctree | Bin 5024 -> 5537 bytes ...rams.FormDiagram.edges_on_boundary.doctree | Bin 4974 -> 5491 bytes ...s.diagrams.FormDiagram.edges_where.doctree | Bin 10198 -> 14211 bytes ....FormDiagram.edges_where_predicate.doctree | Bin 9137 -> 12833 bytes ...pas_ags.diagrams.FormDiagram.euler.doctree | Bin 4754 -> 6020 bytes ..._ags.diagrams.FormDiagram.exploded.doctree | Bin 0 -> 5985 bytes ...ormDiagram.face_adjacency_halfedge.doctree | Bin 7630 -> 8449 bytes ...ormDiagram.face_adjacency_vertices.doctree | Bin 7070 -> 7895 bytes ...ags.diagrams.FormDiagram.face_area.doctree | Bin 5662 -> 6425 bytes ...rams.FormDiagram.face_aspect_ratio.doctree | Bin 6765 -> 7692 bytes ...iagrams.FormDiagram.face_attribute.doctree | Bin 8753 -> 13716 bytes ...agrams.FormDiagram.face_attributes.doctree | Bin 9800 -> 14421 bytes ...s.diagrams.FormDiagram.face_center.doctree | Bin 5796 -> 7027 bytes ...diagrams.FormDiagram.face_centroid.doctree | Bin 5802 -> 7023 bytes ...s.diagrams.FormDiagram.face_circle.doctree | Bin 0 -> 6910 bytes ...grams.FormDiagram.face_coordinates.doctree | Bin 7449 -> 8225 bytes ....diagrams.FormDiagram.face_corners.doctree | Bin 5911 -> 6722 bytes ...iagrams.FormDiagram.face_curvature.doctree | Bin 6181 -> 6938 bytes ...s.diagrams.FormDiagram.face_degree.doctree | Bin 5698 -> 6393 bytes ...diagrams.FormDiagram.face_flatness.doctree | Bin 8055 -> 9575 bytes ...gs.diagrams.FormDiagram.face_frame.doctree | Bin 0 -> 6883 bytes ...iagrams.FormDiagram.face_halfedges.doctree | Bin 5813 -> 6554 bytes ...s.diagrams.FormDiagram.face_matrix.doctree | Bin 0 -> 9536 bytes ...agrams.FormDiagram.face_max_degree.doctree | Bin 4902 -> 5331 bytes ...agrams.FormDiagram.face_min_degree.doctree | Bin 4900 -> 5327 bytes ...rams.FormDiagram.face_neighborhood.doctree | Bin 7185 -> 7876 bytes ...iagrams.FormDiagram.face_neighbors.doctree | Bin 5859 -> 6622 bytes ...s.diagrams.FormDiagram.face_normal.doctree | Bin 7124 -> 8167 bytes ...gs.diagrams.FormDiagram.face_plane.doctree | Bin 6435 -> 6961 bytes ...s.diagrams.FormDiagram.face_points.doctree | Bin 0 -> 7160 bytes ....diagrams.FormDiagram.face_polygon.doctree | Bin 0 -> 6937 bytes ...s.diagrams.FormDiagram.face_sample.doctree | Bin 6141 -> 8265 bytes ...diagrams.FormDiagram.face_skewness.doctree | Bin 6689 -> 7646 bytes ...rams.FormDiagram.face_vertex_after.doctree | Bin 8998 -> 10058 bytes ...s.FormDiagram.face_vertex_ancestor.doctree | Bin 9045 -> 10107 bytes ...ams.FormDiagram.face_vertex_before.doctree | Bin 9019 -> 10081 bytes ...FormDiagram.face_vertex_descendant.doctree | Bin 9063 -> 10123 bytes ...diagrams.FormDiagram.face_vertices.doctree | Bin 5766 -> 6501 bytes ...pas_ags.diagrams.FormDiagram.faces.doctree | Bin 6821 -> 10455 bytes ...agrams.FormDiagram.faces_attribute.doctree | Bin 9329 -> 13650 bytes ...grams.FormDiagram.faces_attributes.doctree | Bin 10594 -> 15281 bytes ...ms.FormDiagram.faces_on_boundaries.doctree | Bin 5026 -> 5565 bytes ...rams.FormDiagram.faces_on_boundary.doctree | Bin 4938 -> 5443 bytes ...s.diagrams.FormDiagram.faces_where.doctree | Bin 10102 -> 14115 bytes ....FormDiagram.faces_where_predicate.doctree | Bin 8823 -> 12521 bytes ...pas_ags.diagrams.FormDiagram.fixed.doctree | Bin 3986 -> 4042 bytes ...s.diagrams.FormDiagram.flip_cycles.doctree | Bin 6392 -> 5755 bytes ...gs.diagrams.FormDiagram.from_graph.doctree | Bin 7430 -> 8203 bytes ...ags.diagrams.FormDiagram.from_json.doctree | Bin 6893 -> 8785 bytes ...agrams.FormDiagram.from_jsonstring.doctree | Bin 6749 -> 8841 bytes ...gs.diagrams.FormDiagram.from_lines.doctree | Bin 10898 -> 11791 bytes ...diagrams.FormDiagram.from_meshgrid.doctree | Bin 10188 -> 11399 bytes ..._ags.diagrams.FormDiagram.from_obj.doctree | Bin 9655 -> 10437 bytes ..._ags.diagrams.FormDiagram.from_off.doctree | Bin 6565 -> 7326 bytes ..._ags.diagrams.FormDiagram.from_ply.doctree | Bin 7107 -> 7901 bytes ...s.diagrams.FormDiagram.from_points.doctree | Bin 7557 -> 7578 bytes ...diagrams.FormDiagram.from_polygons.doctree | Bin 9101 -> 9654 bytes ...agrams.FormDiagram.from_polyhedron.doctree | Bin 6628 -> 7374 bytes ...iagrams.FormDiagram.from_polylines.doctree | Bin 8877 -> 9790 bytes ...gs.diagrams.FormDiagram.from_shape.doctree | Bin 8823 -> 9699 bytes ..._ags.diagrams.FormDiagram.from_stl.doctree | Bin 7957 -> 8707 bytes ...ormDiagram.from_vertices_and_faces.doctree | Bin 9107 -> 9863 bytes ...s.diagrams.FormDiagram.gkey_vertex.doctree | Bin 7317 -> 7982 bytes ...iagrams.FormDiagram.halfedge_after.doctree | Bin 6799 -> 6694 bytes ...agrams.FormDiagram.halfedge_before.doctree | Bin 6824 -> 6727 bytes ...diagrams.FormDiagram.halfedge_face.doctree | Bin 7673 -> 7736 bytes ...diagrams.FormDiagram.halfedge_loop.doctree | Bin 6043 -> 6839 bytes ...FormDiagram.halfedge_loop_vertices.doctree | Bin 0 -> 7496 bytes ...iagrams.FormDiagram.halfedge_strip.doctree | Bin 6010 -> 6816 bytes ...s.FormDiagram.halfedge_strip_faces.doctree | Bin 0 -> 6876 bytes ..._ags.diagrams.FormDiagram.has_edge.doctree | Bin 6071 -> 6816 bytes ..._ags.diagrams.FormDiagram.has_face.doctree | Bin 5748 -> 6514 bytes ....diagrams.FormDiagram.has_halfedge.doctree | Bin 5901 -> 6704 bytes ...gs.diagrams.FormDiagram.has_vertex.doctree | Bin 5789 -> 6576 bytes ...s.FormDiagram.identify_constraints.doctree | Bin 7009 -> 7640 bytes ...ompas_ags.diagrams.FormDiagram.ind.doctree | Bin 3956 -> 4012 bytes ...gs.diagrams.FormDiagram.index_edge.doctree | Bin 3814 -> 4095 bytes ....diagrams.FormDiagram.index_vertex.doctree | Bin 4920 -> 6323 bytes ...diagrams.FormDiagram.insert_vertex.doctree | Bin 10405 -> 11869 bytes ...ags.diagrams.FormDiagram.is_closed.doctree | Bin 4899 -> 8785 bytes ....diagrams.FormDiagram.is_connected.doctree | Bin 7261 -> 8839 bytes ...ms.FormDiagram.is_edge_on_boundary.doctree | Bin 6883 -> 6779 bytes ..._ags.diagrams.FormDiagram.is_empty.doctree | Bin 4842 -> 8693 bytes ...ms.FormDiagram.is_face_on_boundary.doctree | Bin 5922 -> 6715 bytes ...s.diagrams.FormDiagram.is_manifold.doctree | Bin 5825 -> 9691 bytes ...diagrams.FormDiagram.is_orientable.doctree | Bin 5292 -> 9109 bytes ...s.diagrams.FormDiagram.is_quadmesh.doctree | Bin 4917 -> 8755 bytes ...gs.diagrams.FormDiagram.is_regular.doctree | Bin 5868 -> 9737 bytes ...gs.diagrams.FormDiagram.is_trimesh.doctree | Bin 4918 -> 8769 bytes ..._ags.diagrams.FormDiagram.is_valid.doctree | Bin 6184 -> 10059 bytes ...ms.FormDiagram.is_vertex_connected.doctree | Bin 5974 -> 6817 bytes ....FormDiagram.is_vertex_on_boundary.doctree | Bin 5966 -> 6765 bytes ...mpas_ags.diagrams.FormDiagram.join.doctree | Bin 7345 -> 11480 bytes ...grams.FormDiagram.laplacian_matrix.doctree | Bin 0 -> 13226 bytes ...gs.diagrams.FormDiagram.leaf_edges.doctree | Bin 5058 -> 5300 bytes ...as_ags.diagrams.FormDiagram.leaves.doctree | Bin 5012 -> 5312 bytes ...s.diagrams.FormDiagram.merge_faces.doctree | Bin 7794 -> 8601 bytes ...as_ags.diagrams.FormDiagram.normal.doctree | Bin 4771 -> 5276 bytes ...agrams.FormDiagram.number_of_edges.doctree | Bin 4822 -> 6765 bytes ...agrams.FormDiagram.number_of_faces.doctree | Bin 4822 -> 6765 bytes ...ams.FormDiagram.number_of_vertices.doctree | Bin 4873 -> 6804 bytes ...ompas_ags.diagrams.FormDiagram.obb.doctree | Bin 0 -> 5520 bytes ...as_ags.diagrams.FormDiagram.offset.doctree | Bin 0 -> 9082 bytes .../compas_ags.diagrams.FormDiagram.q.doctree | Bin 3924 -> 3980 bytes ...ams.FormDiagram.quads_to_triangles.doctree | Bin 7833 -> 7398 bytes ...mDiagram.remove_duplicate_vertices.doctree | Bin 0 -> 8872 bytes ...FormDiagram.remove_unused_vertices.doctree | Bin 4950 -> 6227 bytes ...as_ags.diagrams.FormDiagram.rotate.doctree | Bin 0 -> 12819 bytes ...s_ags.diagrams.FormDiagram.rotated.doctree | Bin 0 -> 13318 bytes ...pas_ags.diagrams.FormDiagram.scale.doctree | Bin 0 -> 12037 bytes ...as_ags.diagrams.FormDiagram.scaled.doctree | Bin 0 -> 12532 bytes ...grams.FormDiagram.set_vertex_point.doctree | Bin 0 -> 7864 bytes ...as_ags.diagrams.FormDiagram.sha256.doctree | Bin 6930 -> 7728 bytes ...pas_ags.diagrams.FormDiagram.slice.doctree | Bin 0 -> 10592 bytes ...s.diagrams.FormDiagram.smooth_area.doctree | Bin 12535 -> 14262 bytes ...agrams.FormDiagram.smooth_centroid.doctree | Bin 12521 -> 14248 bytes ...gs.diagrams.FormDiagram.split_edge.doctree | Bin 10949 -> 11596 bytes ...gs.diagrams.FormDiagram.split_face.doctree | Bin 10370 -> 12066 bytes ...s.diagrams.FormDiagram.split_strip.doctree | Bin 7091 -> 8013 bytes ...gs.diagrams.FormDiagram.subdivided.doctree | Bin 0 -> 11052 bytes ...s_ags.diagrams.FormDiagram.summary.doctree | Bin 4774 -> 5215 bytes ...ags.diagrams.FormDiagram.thickened.doctree | Bin 0 -> 10853 bytes ...s_ags.diagrams.FormDiagram.to_json.doctree | Bin 7303 -> 7169 bytes ...diagrams.FormDiagram.to_jsonstring.doctree | Bin 6238 -> 7069 bytes ..._ags.diagrams.FormDiagram.to_lines.doctree | Bin 5007 -> 5590 bytes ...as_ags.diagrams.FormDiagram.to_obj.doctree | Bin 9295 -> 10072 bytes ...as_ags.diagrams.FormDiagram.to_off.doctree | Bin 5905 -> 6658 bytes ...as_ags.diagrams.FormDiagram.to_ply.doctree | Bin 5903 -> 6656 bytes ...ags.diagrams.FormDiagram.to_points.doctree | Bin 4880 -> 5421 bytes ...s.diagrams.FormDiagram.to_polygons.doctree | Bin 4938 -> 5491 bytes ....diagrams.FormDiagram.to_polylines.doctree | Bin 4977 -> 5552 bytes ...as_ags.diagrams.FormDiagram.to_stl.doctree | Bin 10386 -> 11074 bytes ....FormDiagram.to_vertices_and_faces.doctree | Bin 7162 -> 7680 bytes ...ags.diagrams.FormDiagram.transform.doctree | Bin 8185 -> 7657 bytes ...agrams.FormDiagram.transform_numpy.doctree | Bin 3772 -> 7784 bytes ...s.diagrams.FormDiagram.transformed.doctree | Bin 8643 -> 7238 bytes ...rams.FormDiagram.transformed_numpy.doctree | Bin 0 -> 7336 bytes ...ags.diagrams.FormDiagram.translate.doctree | Bin 0 -> 9580 bytes ...gs.diagrams.FormDiagram.translated.doctree | Bin 0 -> 10076 bytes ....diagrams.FormDiagram.unify_cycles.doctree | Bin 8418 -> 5815 bytes ...s.FormDiagram.unset_edge_attribute.doctree | Bin 7947 -> 12294 bytes ...s.FormDiagram.unset_face_attribute.doctree | Bin 7886 -> 12232 bytes ...FormDiagram.unset_vertex_attribute.doctree | Bin 7938 -> 12342 bytes ....diagrams.FormDiagram.unweld_edges.doctree | Bin 0 -> 7572 bytes ...agrams.FormDiagram.unweld_vertices.doctree | Bin 0 -> 9347 bytes ...ram.update_default_edge_attributes.doctree | Bin 8149 -> 10646 bytes ...ram.update_default_face_attributes.doctree | Bin 8149 -> 10646 bytes ...m.update_default_vertex_attributes.doctree | Bin 8183 -> 10672 bytes ...diagrams.FormDiagram.validate_data.doctree | Bin 5475 -> 7207 bytes ...s.diagrams.FormDiagram.vertex_area.doctree | Bin 5707 -> 6465 bytes ...grams.FormDiagram.vertex_attribute.doctree | Bin 8794 -> 13816 bytes ...rams.FormDiagram.vertex_attributes.doctree | Bin 9976 -> 14778 bytes ...ams.FormDiagram.vertex_coordinates.doctree | Bin 7392 -> 8127 bytes ...grams.FormDiagram.vertex_curvature.doctree | Bin 6960 -> 7896 bytes ...diagrams.FormDiagram.vertex_degree.doctree | Bin 5771 -> 6501 bytes ....diagrams.FormDiagram.vertex_edges.doctree | Bin 5668 -> 6340 bytes ....diagrams.FormDiagram.vertex_faces.doctree | Bin 8503 -> 9442 bytes ...s.diagrams.FormDiagram.vertex_gkey.doctree | Bin 7324 -> 7989 bytes ....diagrams.FormDiagram.vertex_index.doctree | Bin 4952 -> 6329 bytes ...grams.FormDiagram.vertex_laplacian.doctree | Bin 5876 -> 7098 bytes ...rams.FormDiagram.vertex_max_degree.doctree | Bin 4970 -> 5431 bytes ...rams.FormDiagram.vertex_min_degree.doctree | Bin 4968 -> 5427 bytes ...ms.FormDiagram.vertex_neighborhood.doctree | Bin 7619 -> 8310 bytes ...agram.vertex_neighborhood_centroid.doctree | Bin 6030 -> 7319 bytes ...grams.FormDiagram.vertex_neighbors.doctree | Bin 8529 -> 9459 bytes ...diagrams.FormDiagram.vertex_normal.doctree | Bin 5919 -> 7112 bytes ....diagrams.FormDiagram.vertex_point.doctree | Bin 0 -> 6967 bytes ...diagrams.FormDiagram.vertex_sample.doctree | Bin 6192 -> 8315 bytes ..._ags.diagrams.FormDiagram.vertices.doctree | Bin 6893 -> 10519 bytes ...ams.FormDiagram.vertices_attribute.doctree | Bin 9352 -> 13667 bytes ...ms.FormDiagram.vertices_attributes.doctree | Bin 10422 -> 15298 bytes ...FormDiagram.vertices_on_boundaries.doctree | Bin 5051 -> 5788 bytes ...s.FormDiagram.vertices_on_boundary.doctree | Bin 4995 -> 5506 bytes ...agrams.FormDiagram.vertices_points.doctree | Bin 0 -> 7248 bytes ...iagrams.FormDiagram.vertices_where.doctree | Bin 10189 -> 14199 bytes ...rmDiagram.vertices_where_predicate.doctree | Bin 9177 -> 12605 bytes ...mpas_ags.diagrams.FormDiagram.weld.doctree | Bin 0 -> 7683 bytes ...compas_ags.diagrams.FormDiagram.xy.doctree | Bin 3941 -> 3997 bytes ...as_ags.diagrams.FormGraph.ToString.doctree | Bin 5223 -> 5366 bytes ...compas_ags.diagrams.FormGraph.aabb.doctree | Bin 0 -> 5524 bytes ...as_ags.diagrams.FormGraph.add_edge.doctree | Bin 9401 -> 12113 bytes ...as_ags.diagrams.FormGraph.add_node.doctree | Bin 9858 -> 12312 bytes ...iagrams.FormGraph.adjacency_matrix.doctree | Bin 7286 -> 7188 bytes ...ompas_ags.diagrams.FormGraph.clear.doctree | Bin 4595 -> 5024 bytes ..._ags.diagrams.FormGraph.complement.doctree | Bin 9317 -> 9001 bytes ...gs.diagrams.FormGraph.compute_aabb.doctree | Bin 0 -> 5690 bytes ...ags.diagrams.FormGraph.compute_obb.doctree | Bin 0 -> 5666 bytes ...diagrams.FormGraph.connected_edges.doctree | Bin 5865 -> 6197 bytes ...diagrams.FormGraph.connected_nodes.doctree | Bin 0 -> 6129 bytes ...rams.FormGraph.connectivity_matrix.doctree | Bin 7708 -> 7241 bytes ...compas_ags.diagrams.FormGraph.copy.doctree | Bin 6665 -> 7859 bytes ...diagrams.FormGraph.count_crossings.doctree | Bin 6409 -> 7250 bytes ...mpas_ags.diagrams.FormGraph.degree.doctree | Bin 5662 -> 7739 bytes ...s_ags.diagrams.FormGraph.degree_in.doctree | Bin 5741 -> 7823 bytes ...s.diagrams.FormGraph.degree_matrix.doctree | Bin 7239 -> 7115 bytes ..._ags.diagrams.FormGraph.degree_out.doctree | Bin 5758 -> 7835 bytes ...ags.diagrams.FormGraph.delete_edge.doctree | Bin 6834 -> 8284 bytes ...ags.diagrams.FormGraph.delete_node.doctree | Bin 5862 -> 8084 bytes .../compas_ags.diagrams.FormGraph.doctree | Bin 168497 -> 144114 bytes ....diagrams.FormGraph.edge_attribute.doctree | Bin 8879 -> 14601 bytes ...diagrams.FormGraph.edge_attributes.doctree | Bin 9830 -> 15158 bytes ...iagrams.FormGraph.edge_coordinates.doctree | Bin 8749 -> 10506 bytes ....diagrams.FormGraph.edge_direction.doctree | Bin 6721 -> 8739 bytes ...as_ags.diagrams.FormGraph.edge_end.doctree | Bin 0 -> 8608 bytes ..._ags.diagrams.FormGraph.edge_index.doctree | Bin 0 -> 7107 bytes ...ags.diagrams.FormGraph.edge_length.doctree | Bin 6618 -> 8271 bytes ...s_ags.diagrams.FormGraph.edge_line.doctree | Bin 0 -> 8607 bytes ...s.diagrams.FormGraph.edge_midpoint.doctree | Bin 6728 -> 8684 bytes ..._ags.diagrams.FormGraph.edge_point.doctree | Bin 8467 -> 10666 bytes ...ags.diagrams.FormGraph.edge_sample.doctree | Bin 6141 -> 7862 bytes ..._ags.diagrams.FormGraph.edge_start.doctree | Bin 0 -> 8640 bytes ...ags.diagrams.FormGraph.edge_vector.doctree | Bin 6636 -> 8673 bytes ...ompas_ags.diagrams.FormGraph.edges.doctree | Bin 7062 -> 10887 bytes ...diagrams.FormGraph.edges_attribute.doctree | Bin 9238 -> 14304 bytes ...iagrams.FormGraph.edges_attributes.doctree | Bin 10283 -> 15677 bytes ...ags.diagrams.FormGraph.edges_where.doctree | Bin 10316 -> 14229 bytes ...ms.FormGraph.edges_where_predicate.doctree | Bin 9374 -> 12966 bytes ...ompas_ags.diagrams.FormGraph.embed.doctree | Bin 5806 -> 6035 bytes ....diagrams.FormGraph.embed_in_plane.doctree | Bin 9328 -> 9082 bytes ...as_ags.diagrams.FormGraph.exploded.doctree | Bin 0 -> 5736 bytes ....diagrams.FormGraph.find_crossings.doctree | Bin 6625 -> 7616 bytes ...ags.diagrams.FormGraph.find_cycles.doctree | Bin 8963 -> 9515 bytes ..._ags.diagrams.FormGraph.from_edges.doctree | Bin 6693 -> 8252 bytes ...s_ags.diagrams.FormGraph.from_json.doctree | Bin 6861 -> 8753 bytes ...diagrams.FormGraph.from_jsonstring.doctree | Bin 6717 -> 8809 bytes ..._ags.diagrams.FormGraph.from_lines.doctree | Bin 8224 -> 11850 bytes ...s.diagrams.FormGraph.from_networkx.doctree | Bin 6642 -> 8822 bytes ...ams.FormGraph.from_nodes_and_edges.doctree | Bin 7921 -> 11121 bytes ...as_ags.diagrams.FormGraph.from_obj.doctree | Bin 8229 -> 12037 bytes ...diagrams.FormGraph.from_pointcloud.doctree | Bin 8230 -> 11578 bytes ...s_ags.diagrams.FormGraph.gkey_node.doctree | Bin 6527 -> 9490 bytes ...as_ags.diagrams.FormGraph.has_edge.doctree | Bin 8051 -> 9027 bytes ...as_ags.diagrams.FormGraph.has_node.doctree | Bin 5673 -> 7265 bytes ..._ags.diagrams.FormGraph.index_edge.doctree | Bin 0 -> 7005 bytes ..._ags.diagrams.FormGraph.index_node.doctree | Bin 0 -> 6935 bytes ...ompas_ags.diagrams.FormGraph.is_2d.doctree | Bin 4842 -> 5040 bytes ...gs.diagrams.FormGraph.is_connected.doctree | Bin 7103 -> 6277 bytes ..._ags.diagrams.FormGraph.is_crossed.doctree | Bin 4932 -> 7318 bytes ...pas_ags.diagrams.FormGraph.is_leaf.doctree | Bin 6048 -> 8316 bytes ...agrams.FormGraph.is_node_connected.doctree | Bin 5782 -> 7384 bytes ...s_ags.diagrams.FormGraph.is_planar.doctree | Bin 4874 -> 8331 bytes ...rams.FormGraph.is_planar_embedding.doctree | Bin 4533 -> 4439 bytes ...ompas_ags.diagrams.FormGraph.is_xy.doctree | Bin 5936 -> 6884 bytes ..._ags.diagrams.FormGraph.join_edges.doctree | Bin 0 -> 8377 bytes ...iagrams.FormGraph.laplacian_matrix.doctree | Bin 9950 -> 9732 bytes ...mpas_ags.diagrams.FormGraph.leaves.doctree | Bin 4744 -> 5232 bytes ...gs.diagrams.FormGraph.neighborhood.doctree | Bin 7087 -> 8697 bytes ...s_ags.diagrams.FormGraph.neighbors.doctree | Bin 5702 -> 8457 bytes ...gs.diagrams.FormGraph.neighbors_in.doctree | Bin 5765 -> 7861 bytes ...s.diagrams.FormGraph.neighbors_out.doctree | Bin 5780 -> 7871 bytes ....diagrams.FormGraph.node_attribute.doctree | Bin 8689 -> 14375 bytes ...diagrams.FormGraph.node_attributes.doctree | Bin 9888 -> 15355 bytes ...iagrams.FormGraph.node_coordinates.doctree | Bin 7232 -> 9800 bytes ..._ags.diagrams.FormGraph.node_edges.doctree | Bin 0 -> 6600 bytes ...s_ags.diagrams.FormGraph.node_gkey.doctree | Bin 6536 -> 9477 bytes ..._ags.diagrams.FormGraph.node_index.doctree | Bin 4023 -> 6905 bytes ....diagrams.FormGraph.node_laplacian.doctree | Bin 5864 -> 8811 bytes ...rmGraph.node_neighborhood_centroid.doctree | Bin 6008 -> 8906 bytes ..._ags.diagrams.FormGraph.node_point.doctree | Bin 0 -> 8684 bytes ...ags.diagrams.FormGraph.node_sample.doctree | Bin 6092 -> 7782 bytes ...ompas_ags.diagrams.FormGraph.nodes.doctree | Bin 6806 -> 10591 bytes ...diagrams.FormGraph.nodes_attribute.doctree | Bin 9107 -> 14144 bytes ...iagrams.FormGraph.nodes_attributes.doctree | Bin 10310 -> 15833 bytes ...ags.diagrams.FormGraph.nodes_where.doctree | Bin 9346 -> 13026 bytes ...ms.FormGraph.nodes_where_predicate.doctree | Bin 9062 -> 12622 bytes ...diagrams.FormGraph.number_of_edges.doctree | Bin 4848 -> 6204 bytes ...diagrams.FormGraph.number_of_nodes.doctree | Bin 4848 -> 6204 bytes .../compas_ags.diagrams.FormGraph.obb.doctree | Bin 0 -> 5500 bytes ...mpas_ags.diagrams.FormGraph.rotate.doctree | Bin 0 -> 12787 bytes ...pas_ags.diagrams.FormGraph.rotated.doctree | Bin 0 -> 13286 bytes ...ompas_ags.diagrams.FormGraph.scale.doctree | Bin 0 -> 12005 bytes ...mpas_ags.diagrams.FormGraph.scaled.doctree | Bin 0 -> 12500 bytes ...mpas_ags.diagrams.FormGraph.sha256.doctree | Bin 6902 -> 7700 bytes ...s.diagrams.FormGraph.shortest_path.doctree | Bin 7872 -> 8746 bytes ...mpas_ags.diagrams.FormGraph.smooth.doctree | Bin 11978 -> 13479 bytes ..._ags.diagrams.FormGraph.split_edge.doctree | Bin 9777 -> 9487 bytes ...pas_ags.diagrams.FormGraph.summary.doctree | Bin 4710 -> 5181 bytes ...pas_ags.diagrams.FormGraph.to_json.doctree | Bin 7275 -> 7141 bytes ...s.diagrams.FormGraph.to_jsonstring.doctree | Bin 6210 -> 7041 bytes ...as_ags.diagrams.FormGraph.to_lines.doctree | Bin 5015 -> 7923 bytes ...ags.diagrams.FormGraph.to_networkx.doctree | Bin 4871 -> 6250 bytes ...grams.FormGraph.to_nodes_and_edges.doctree | Bin 5936 -> 8674 bytes ...mpas_ags.diagrams.FormGraph.to_obj.doctree | Bin 5531 -> 8621 bytes ...s_ags.diagrams.FormGraph.to_points.doctree | Bin 4892 -> 7790 bytes ...s_ags.diagrams.FormGraph.transform.doctree | Bin 7660 -> 6973 bytes ...diagrams.FormGraph.transform_numpy.doctree | Bin 0 -> 7125 bytes ...ags.diagrams.FormGraph.transformed.doctree | Bin 8382 -> 7206 bytes ...agrams.FormGraph.transformed_numpy.doctree | Bin 0 -> 7304 bytes ...s_ags.diagrams.FormGraph.translate.doctree | Bin 0 -> 9548 bytes ..._ags.diagrams.FormGraph.translated.doctree | Bin 0 -> 10044 bytes ...ams.FormGraph.unset_edge_attribute.doctree | Bin 7918 -> 9539 bytes ...ams.FormGraph.unset_node_attribute.doctree | Bin 7430 -> 8831 bytes ...aph.update_default_edge_attributes.doctree | Bin 7816 -> 9565 bytes ...aph.update_default_node_attributes.doctree | Bin 7816 -> 9565 bytes ...s.diagrams.FormGraph.validate_data.doctree | Bin 5445 -> 7179 bytes ...ompas_ags.exceptions.SolutionError.doctree | Bin 0 -> 5056 bytes latest/.doctrees/environment.pickle | Bin 2220583 -> 13428064 bytes latest/.doctrees/examples.doctree | Bin 2770 -> 2773 bytes latest/.doctrees/examples/00_basic.doctree | Bin 6773 -> 9895 bytes latest/.doctrees/examples/01_rtl.doctree | Bin 11411 -> 13055 bytes latest/.doctrees/examples/02_lpopt.doctree | Bin 10645 -> 10659 bytes latest/.doctrees/examples/03_fink.doctree | Bin 9253 -> 9179 bytes latest/.doctrees/index.doctree | Bin 6253 -> 6565 bytes latest/.doctrees/installation.doctree | Bin 0 -> 4697 bytes latest/.doctrees/license.doctree | Bin 4696 -> 4694 bytes latest/.doctrees/publications.doctree | Bin 2813 -> 2816 bytes latest/.doctrees/publications/ags.doctree | Bin 7855 -> 7825 bytes latest/.doctrees/publications/bi-ags.doctree | Bin 4915 -> 4905 bytes .../publications/interactive-ags.doctree | Bin 7204 -> 7194 bytes .../.doctrees/publications/loadpath.doctree | Bin 6151 -> 6141 bytes latest/_images/AGS_intro.png | Bin 0 -> 60523 bytes latest/_sphinx_design_static/design-tabs.js | 101 + ...n.5ea377869091fd0449014c60fc090103.min.css | 1 + latest/_static/basic.css | 57 +- latest/_static/check-solid.svg | 4 + latest/_static/clipboard.min.js | 7 + latest/_static/compas.ico | Bin 0 -> 5148 bytes latest/_static/compas_icon.png | Bin 0 -> 2780 bytes latest/_static/compas_icon_white.png | Bin 0 -> 5093 bytes latest/_static/compas_icon_white_48.png | Bin 0 -> 25528 bytes latest/_static/compas_icon_white_96.png | Bin 0 -> 52767 bytes latest/_static/compas_white.ico | Bin 0 -> 4856 bytes latest/_static/copy-button.svg | 5 + latest/_static/copybutton.css | 94 + latest/_static/copybutton.js | 248 ++ latest/_static/copybutton_funcs.js | 73 + latest/_static/css/_color.scss | 322 ++ latest/_static/css/compas.css | 520 +-- latest/_static/design-tabs.js | 101 + latest/_static/doctools.js | 420 +-- latest/_static/documentation_options.js | 4 +- latest/_static/language_data.js | 102 +- latest/_static/pygments.css | 235 +- latest/_static/scripts/bootstrap.js | 3 + .../_static/scripts/bootstrap.js.LICENSE.txt | 5 + latest/_static/scripts/bootstrap.js.map | 1 + latest/_static/scripts/pydata-sphinx-theme.js | 2 + .../scripts/pydata-sphinx-theme.js.map | 1 + latest/_static/searchtools.js | 823 ++--- ...n.5ea377869091fd0449014c60fc090103.min.css | 1 + latest/_static/styles/bootstrap.css | 6 + latest/_static/styles/pydata-sphinx-theme.css | 1 + latest/_static/styles/theme.css | 2 + latest/_static/tabs.css | 110 + latest/_static/tabs.js | 30 + latest/_static/togglebutton.css | 160 + latest/_static/togglebutton.js | 187 + .../vendor/fontawesome/6.1.2/LICENSE.txt | 165 + .../vendor/fontawesome/6.1.2/css/all.min.css | 5 + .../6.1.2/webfonts/fa-brands-400.ttf | Bin 0 -> 181264 bytes .../6.1.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 105112 bytes .../6.1.2/webfonts/fa-regular-400.ttf | Bin 0 -> 60236 bytes .../6.1.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 24028 bytes .../6.1.2/webfonts/fa-solid-900.ttf | Bin 0 -> 389948 bytes .../6.1.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 154840 bytes .../6.1.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10084 bytes .../6.1.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4776 bytes latest/_static/webpack-macros.html | 30 + latest/api.html | 826 +++-- latest/api/compas_ags.ags.html | 907 +++-- latest/api/compas_ags.diagrams.html | 881 +++-- latest/api/compas_ags.exceptions.html | 649 ++++ latest/api/compas_ags.html | 825 +++-- .../compas_ags.ags.compute_external_work.html | 890 +++-- .../compas_ags.ags.compute_internal_work.html | 890 +++-- ...ags.compute_internal_work_compression.html | 890 +++-- ...ags.ags.compute_internal_work_tension.html | 890 +++-- .../compas_ags.ags.compute_loadpath.html | 882 +++-- ...compas_ags.ags.force_update_from_form.html | 882 +++-- .../compas_ags.ags.form_count_dof.html | 896 +++-- .../compas_ags.ags.form_identify_dof.html | 899 +++-- ...compas_ags.ags.form_update_from_force.html | 904 +++-- ...ompas_ags.ags.form_update_q_from_qind.html | 885 +++-- .../compas_ags.ags.optimise_loadpath.html | 895 +++-- ...ompas_ags.ags.update_primal_from_dual.html | 927 +++-- .../compas_ags.ags.update_q_from_qind.html | 896 +++-- .../compas_ags.diagrams.Diagram.ToString.html | 868 +++-- .../compas_ags.diagrams.Diagram.aabb.html | 657 ++++ .../compas_ags.diagrams.Diagram.add_face.html | 898 +++-- ...ompas_ags.diagrams.Diagram.add_vertex.html | 897 +++-- ...ags.diagrams.Diagram.adjacency_matrix.html | 664 ++++ .../compas_ags.diagrams.Diagram.area.html | 873 +++-- .../compas_ags.diagrams.Diagram.centroid.html | 873 +++-- .../compas_ags.diagrams.Diagram.clear.html | 872 +++-- ...as_ags.diagrams.Diagram.collapse_edge.html | 907 +++-- ...pas_ags.diagrams.Diagram.compute_aabb.html | 657 ++++ ...mpas_ags.diagrams.Diagram.compute_obb.html | 657 ++++ ..._ags.diagrams.Diagram.connected_faces.html | 658 ++++ ...s.diagrams.Diagram.connected_vertices.html | 658 ++++ ....diagrams.Diagram.connectivity_matrix.html | 664 ++++ .../compas_ags.diagrams.Diagram.copy.html | 880 +++-- ...as_ags.diagrams.Diagram.cull_vertices.html | 878 +++-- ...as_ags.diagrams.Diagram.degree_matrix.html | 664 ++++ ...mpas_ags.diagrams.Diagram.delete_face.html | 884 +++-- ...as_ags.diagrams.Diagram.delete_vertex.html | 884 +++-- ...s_ags.diagrams.Diagram.edge_attribute.html | 902 +++-- ..._ags.diagrams.Diagram.edge_attributes.html | 899 +++-- ...ags.diagrams.Diagram.edge_coordinates.html | 891 +++-- ...s_ags.diagrams.Diagram.edge_direction.html | 883 +++-- .../compas_ags.diagrams.Diagram.edge_end.html | 664 ++++ ...ompas_ags.diagrams.Diagram.edge_faces.html | 883 +++-- ...ompas_ags.diagrams.Diagram.edge_index.html | 858 +++-- ...mpas_ags.diagrams.Diagram.edge_length.html | 883 +++-- ...compas_ags.diagrams.Diagram.edge_line.html | 664 ++++ ...compas_ags.diagrams.Diagram.edge_loop.html | 878 +++-- ...as_ags.diagrams.Diagram.edge_midpoint.html | 885 +++-- ...ompas_ags.diagrams.Diagram.edge_point.html | 890 +++-- ...mpas_ags.diagrams.Diagram.edge_sample.html | 884 +++-- ...ompas_ags.diagrams.Diagram.edge_start.html | 664 ++++ ...ompas_ags.diagrams.Diagram.edge_strip.html | 883 +++-- ...mpas_ags.diagrams.Diagram.edge_vector.html | 882 +++-- .../compas_ags.diagrams.Diagram.edges.html | 889 +++-- ..._ags.diagrams.Diagram.edges_attribute.html | 901 +++-- ...ags.diagrams.Diagram.edges_attributes.html | 903 +++-- ....diagrams.Diagram.edges_on_boundaries.html | 873 +++-- ...gs.diagrams.Diagram.edges_on_boundary.html | 873 +++-- ...mpas_ags.diagrams.Diagram.edges_where.html | 895 +++-- ...iagrams.Diagram.edges_where_predicate.html | 892 +++-- .../compas_ags.diagrams.Diagram.euler.html | 879 +++-- .../compas_ags.diagrams.Diagram.exploded.html | 658 ++++ ...grams.Diagram.face_adjacency_halfedge.html | 883 +++-- ...grams.Diagram.face_adjacency_vertices.html | 883 +++-- ...compas_ags.diagrams.Diagram.face_area.html | 878 +++-- ...gs.diagrams.Diagram.face_aspect_ratio.html | 878 +++-- ...s_ags.diagrams.Diagram.face_attribute.html | 900 +++-- ..._ags.diagrams.Diagram.face_attributes.html | 899 +++-- ...mpas_ags.diagrams.Diagram.face_center.html | 880 +++-- ...as_ags.diagrams.Diagram.face_centroid.html | 880 +++-- ...mpas_ags.diagrams.Diagram.face_circle.html | 664 ++++ ...ags.diagrams.Diagram.face_coordinates.html | 885 +++-- ...pas_ags.diagrams.Diagram.face_corners.html | 878 +++-- ...s_ags.diagrams.Diagram.face_curvature.html | 878 +++-- ...mpas_ags.diagrams.Diagram.face_degree.html | 878 +++-- ...as_ags.diagrams.Diagram.face_flatness.html | 897 +++-- ...ompas_ags.diagrams.Diagram.face_frame.html | 664 ++++ ...s_ags.diagrams.Diagram.face_halfedges.html | 878 +++-- ...mpas_ags.diagrams.Diagram.face_matrix.html | 695 ++++ ..._ags.diagrams.Diagram.face_max_degree.html | 873 +++-- ..._ags.diagrams.Diagram.face_min_degree.html | 873 +++-- ...gs.diagrams.Diagram.face_neighborhood.html | 883 +++-- ...s_ags.diagrams.Diagram.face_neighbors.html | 878 +++-- ...mpas_ags.diagrams.Diagram.face_normal.html | 882 +++-- ...ompas_ags.diagrams.Diagram.face_plane.html | 882 +++-- ...mpas_ags.diagrams.Diagram.face_points.html | 664 ++++ ...pas_ags.diagrams.Diagram.face_polygon.html | 664 ++++ ...mpas_ags.diagrams.Diagram.face_sample.html | 884 +++-- ...as_ags.diagrams.Diagram.face_skewness.html | 880 +++-- ...gs.diagrams.Diagram.face_vertex_after.html | 893 +++-- ...diagrams.Diagram.face_vertex_ancestor.html | 893 +++-- ...s.diagrams.Diagram.face_vertex_before.html | 893 +++-- ...agrams.Diagram.face_vertex_descendant.html | 893 +++-- ...as_ags.diagrams.Diagram.face_vertices.html | 878 +++-- .../compas_ags.diagrams.Diagram.faces.html | 885 +++-- ..._ags.diagrams.Diagram.faces_attribute.html | 901 +++-- ...ags.diagrams.Diagram.faces_attributes.html | 903 +++-- ....diagrams.Diagram.faces_on_boundaries.html | 873 +++-- ...gs.diagrams.Diagram.faces_on_boundary.html | 873 +++-- ...mpas_ags.diagrams.Diagram.faces_where.html | 895 +++-- ...iagrams.Diagram.faces_where_predicate.html | 892 +++-- ...mpas_ags.diagrams.Diagram.flip_cycles.html | 876 +++-- ...compas_ags.diagrams.Diagram.from_json.html | 886 +++-- ..._ags.diagrams.Diagram.from_jsonstring.html | 886 +++-- ...ompas_ags.diagrams.Diagram.from_lines.html | 890 +++-- ...as_ags.diagrams.Diagram.from_meshgrid.html | 895 +++-- .../compas_ags.diagrams.Diagram.from_obj.html | 883 +++-- .../compas_ags.diagrams.Diagram.from_off.html | 878 +++-- .../compas_ags.diagrams.Diagram.from_ply.html | 878 +++-- ...mpas_ags.diagrams.Diagram.from_points.html | 880 +++-- ...as_ags.diagrams.Diagram.from_polygons.html | 887 +++-- ..._ags.diagrams.Diagram.from_polyhedron.html | 878 +++-- ...s_ags.diagrams.Diagram.from_polylines.html | 883 +++-- ...ompas_ags.diagrams.Diagram.from_shape.html | 885 +++-- .../compas_ags.diagrams.Diagram.from_stl.html | 883 +++-- ...grams.Diagram.from_vertices_and_faces.html | 887 +++-- ...mpas_ags.diagrams.Diagram.gkey_vertex.html | 880 +++-- ...s_ags.diagrams.Diagram.halfedge_after.html | 883 +++-- ..._ags.diagrams.Diagram.halfedge_before.html | 883 +++-- ...as_ags.diagrams.Diagram.halfedge_face.html | 888 +++-- ...as_ags.diagrams.Diagram.halfedge_loop.html | 878 +++-- ...agrams.Diagram.halfedge_loop_vertices.html | 662 ++++ ...s_ags.diagrams.Diagram.halfedge_strip.html | 878 +++-- ...diagrams.Diagram.halfedge_strip_faces.html | 664 ++++ .../compas_ags.diagrams.Diagram.has_edge.html | 886 +++-- .../compas_ags.diagrams.Diagram.has_face.html | 878 +++-- ...pas_ags.diagrams.Diagram.has_halfedge.html | 878 +++-- ...ompas_ags.diagrams.Diagram.has_vertex.html | 878 +++-- .../compas_ags.diagrams.Diagram.html | 1483 +++++--- ...ompas_ags.diagrams.Diagram.index_edge.html | 858 +++-- ...pas_ags.diagrams.Diagram.index_vertex.html | 881 +++-- ...as_ags.diagrams.Diagram.insert_vertex.html | 889 +++-- ...compas_ags.diagrams.Diagram.is_closed.html | 879 +++-- ...pas_ags.diagrams.Diagram.is_connected.html | 899 +++-- ....diagrams.Diagram.is_edge_on_boundary.html | 883 +++-- .../compas_ags.diagrams.Diagram.is_empty.html | 879 +++-- ....diagrams.Diagram.is_face_on_boundary.html | 878 +++-- ...mpas_ags.diagrams.Diagram.is_manifold.html | 879 +++-- ...as_ags.diagrams.Diagram.is_orientable.html | 879 +++-- ...mpas_ags.diagrams.Diagram.is_quadmesh.html | 879 +++-- ...ompas_ags.diagrams.Diagram.is_regular.html | 879 +++-- ...ompas_ags.diagrams.Diagram.is_trimesh.html | 879 +++-- .../compas_ags.diagrams.Diagram.is_valid.html | 879 +++-- ....diagrams.Diagram.is_vertex_connected.html | 878 +++-- ...iagrams.Diagram.is_vertex_on_boundary.html | 878 +++-- .../compas_ags.diagrams.Diagram.join.html | 892 +++-- ...ags.diagrams.Diagram.laplacian_matrix.html | 700 ++++ ...mpas_ags.diagrams.Diagram.merge_faces.html | 890 +++-- .../compas_ags.diagrams.Diagram.normal.html | 873 +++-- ..._ags.diagrams.Diagram.number_of_edges.html | 879 +++-- ..._ags.diagrams.Diagram.number_of_faces.html | 879 +++-- ...s.diagrams.Diagram.number_of_vertices.html | 879 +++-- .../compas_ags.diagrams.Diagram.obb.html | 657 ++++ .../compas_ags.diagrams.Diagram.offset.html | 677 ++++ ...s.diagrams.Diagram.quads_to_triangles.html | 883 +++-- ...ams.Diagram.remove_duplicate_vertices.html | 683 ++++ ...agrams.Diagram.remove_unused_vertices.html | 878 +++-- .../compas_ags.diagrams.Diagram.rotate.html | 678 ++++ .../compas_ags.diagrams.Diagram.rotated.html | 679 ++++ .../compas_ags.diagrams.Diagram.scale.html | 678 ++++ .../compas_ags.diagrams.Diagram.scaled.html | 679 ++++ ...ags.diagrams.Diagram.set_vertex_point.html | 665 ++++ .../compas_ags.diagrams.Diagram.sha256.html | 885 +++-- .../compas_ags.diagrams.Diagram.slice.html | 681 ++++ ...mpas_ags.diagrams.Diagram.smooth_area.html | 901 +++-- ..._ags.diagrams.Diagram.smooth_centroid.html | 901 +++-- ...ompas_ags.diagrams.Diagram.split_edge.html | 901 +++-- ...ompas_ags.diagrams.Diagram.split_face.html | 902 +++-- ...mpas_ags.diagrams.Diagram.split_strip.html | 885 +++-- ...ompas_ags.diagrams.Diagram.subdivided.html | 674 ++++ .../compas_ags.diagrams.Diagram.summary.html | 873 +++-- ...compas_ags.diagrams.Diagram.thickened.html | 681 ++++ .../compas_ags.diagrams.Diagram.to_json.html | 882 +++-- ...as_ags.diagrams.Diagram.to_jsonstring.html | 881 +++-- .../compas_ags.diagrams.Diagram.to_lines.html | 873 +++-- .../compas_ags.diagrams.Diagram.to_obj.html | 887 +++-- .../compas_ags.diagrams.Diagram.to_off.html | 877 +++-- .../compas_ags.diagrams.Diagram.to_ply.html | 877 +++-- ...compas_ags.diagrams.Diagram.to_points.html | 873 +++-- ...mpas_ags.diagrams.Diagram.to_polygons.html | 873 +++-- ...pas_ags.diagrams.Diagram.to_polylines.html | 873 +++-- .../compas_ags.diagrams.Diagram.to_stl.html | 891 +++-- ...iagrams.Diagram.to_vertices_and_faces.html | 884 +++-- ...compas_ags.diagrams.Diagram.transform.html | 894 +++-- ..._ags.diagrams.Diagram.transform_numpy.html | 850 +++-- ...mpas_ags.diagrams.Diagram.transformed.html | 893 +++-- ...gs.diagrams.Diagram.transformed_numpy.html | 664 ++++ ...compas_ags.diagrams.Diagram.translate.html | 672 ++++ ...ompas_ags.diagrams.Diagram.translated.html | 673 ++++ ...pas_ags.diagrams.Diagram.unify_cycles.html | 884 +++-- ...diagrams.Diagram.unset_edge_attribute.html | 895 +++-- ...diagrams.Diagram.unset_face_attribute.html | 895 +++-- ...agrams.Diagram.unset_vertex_attribute.html | 895 +++-- ...pas_ags.diagrams.Diagram.unweld_edges.html | 665 ++++ ..._ags.diagrams.Diagram.unweld_vertices.html | 669 ++++ ...iagram.update_default_edge_attributes.html | 889 +++-- ...iagram.update_default_face_attributes.html | 889 +++-- ...gram.update_default_vertex_attributes.html | 889 +++-- ...as_ags.diagrams.Diagram.validate_data.html | 882 +++-- ...mpas_ags.diagrams.Diagram.vertex_area.html | 878 +++-- ...ags.diagrams.Diagram.vertex_attribute.html | 900 +++-- ...gs.diagrams.Diagram.vertex_attributes.html | 899 +++-- ...s.diagrams.Diagram.vertex_coordinates.html | 885 +++-- ...ags.diagrams.Diagram.vertex_curvature.html | 878 +++-- ...as_ags.diagrams.Diagram.vertex_degree.html | 878 +++-- ...pas_ags.diagrams.Diagram.vertex_edges.html | 876 +++-- ...pas_ags.diagrams.Diagram.vertex_faces.html | 886 +++-- ...mpas_ags.diagrams.Diagram.vertex_gkey.html | 880 +++-- ...pas_ags.diagrams.Diagram.vertex_index.html | 881 +++-- ...ags.diagrams.Diagram.vertex_laplacian.html | 878 +++-- ...gs.diagrams.Diagram.vertex_max_degree.html | 873 +++-- ...gs.diagrams.Diagram.vertex_min_degree.html | 873 +++-- ....diagrams.Diagram.vertex_neighborhood.html | 883 +++-- ....Diagram.vertex_neighborhood_centroid.html | 878 +++-- ...ags.diagrams.Diagram.vertex_neighbors.html | 883 +++-- ...as_ags.diagrams.Diagram.vertex_normal.html | 878 +++-- ...pas_ags.diagrams.Diagram.vertex_point.html | 664 ++++ ...as_ags.diagrams.Diagram.vertex_sample.html | 884 +++-- .../compas_ags.diagrams.Diagram.vertices.html | 885 +++-- ...s.diagrams.Diagram.vertices_attribute.html | 901 +++-- ....diagrams.Diagram.vertices_attributes.html | 899 +++-- ...agrams.Diagram.vertices_on_boundaries.html | 874 +++-- ...diagrams.Diagram.vertices_on_boundary.html | 873 +++-- ..._ags.diagrams.Diagram.vertices_points.html | 664 ++++ ...s_ags.diagrams.Diagram.vertices_where.html | 895 +++-- ...rams.Diagram.vertices_where_predicate.html | 894 +++-- .../compas_ags.diagrams.Diagram.weld.html | 665 ++++ ...as_ags.diagrams.ForceDiagram.ToString.html | 868 +++-- ...compas_ags.diagrams.ForceDiagram.aabb.html | 657 ++++ ...as_ags.diagrams.ForceDiagram.add_face.html | 898 +++-- ..._ags.diagrams.ForceDiagram.add_vertex.html | 897 +++-- ...iagrams.ForceDiagram.adjacency_matrix.html | 664 ++++ ...mpas_ags.diagrams.ForceDiagram.anchor.html | 872 +++-- ...compas_ags.diagrams.ForceDiagram.area.html | 873 +++-- ...as_ags.diagrams.ForceDiagram.centroid.html | 873 +++-- ...ompas_ags.diagrams.ForceDiagram.clear.html | 872 +++-- ...s.diagrams.ForceDiagram.collapse_edge.html | 907 +++-- ...gs.diagrams.ForceDiagram.compute_aabb.html | 657 ++++ ...ags.diagrams.ForceDiagram.compute_obb.html | 657 ++++ ...diagrams.ForceDiagram.connected_faces.html | 658 ++++ ...grams.ForceDiagram.connected_vertices.html | 658 ++++ ...rams.ForceDiagram.connectivity_matrix.html | 664 ++++ ...ms.ForceDiagram.constraints_from_dual.html | 872 +++-- ...compas_ags.diagrams.ForceDiagram.copy.html | 880 +++-- ...s.diagrams.ForceDiagram.cull_vertices.html | 878 +++-- ...s.diagrams.ForceDiagram.degree_matrix.html | 664 ++++ ...ags.diagrams.ForceDiagram.delete_face.html | 884 +++-- ...s.diagrams.ForceDiagram.delete_vertex.html | 884 +++-- ...s_ags.diagrams.ForceDiagram.dual_edge.html | 880 +++-- ...ForceDiagram.dual_edge_angledeviation.html | 879 +++-- ...diagrams.ForceDiagram.dual_edge_force.html | 879 +++-- ...ms.ForceDiagram.dual_edge_targetforce.html | 879 +++-- ....diagrams.ForceDiagram.edge_attribute.html | 902 +++-- ...diagrams.ForceDiagram.edge_attributes.html | 899 +++-- ...iagrams.ForceDiagram.edge_coordinates.html | 891 +++-- ....diagrams.ForceDiagram.edge_direction.html | 883 +++-- ...as_ags.diagrams.ForceDiagram.edge_end.html | 664 ++++ ..._ags.diagrams.ForceDiagram.edge_faces.html | 883 +++-- ..._ags.diagrams.ForceDiagram.edge_index.html | 882 +++-- ...ags.diagrams.ForceDiagram.edge_length.html | 883 +++-- ...s_ags.diagrams.ForceDiagram.edge_line.html | 664 ++++ ...s_ags.diagrams.ForceDiagram.edge_loop.html | 878 +++-- ...s.diagrams.ForceDiagram.edge_midpoint.html | 885 +++-- ..._ags.diagrams.ForceDiagram.edge_point.html | 890 +++-- ...ags.diagrams.ForceDiagram.edge_sample.html | 884 +++-- ..._ags.diagrams.ForceDiagram.edge_start.html | 664 ++++ ..._ags.diagrams.ForceDiagram.edge_strip.html | 883 +++-- ...ags.diagrams.ForceDiagram.edge_vector.html | 882 +++-- ...ompas_ags.diagrams.ForceDiagram.edges.html | 889 +++-- ...diagrams.ForceDiagram.edges_attribute.html | 901 +++-- ...iagrams.ForceDiagram.edges_attributes.html | 903 +++-- ...rams.ForceDiagram.edges_on_boundaries.html | 873 +++-- ...agrams.ForceDiagram.edges_on_boundary.html | 873 +++-- ...ags.diagrams.ForceDiagram.edges_where.html | 895 +++-- ...iagrams.ForceDiagram.edges_where_dual.html | 893 +++-- ...ms.ForceDiagram.edges_where_predicate.html | 892 +++-- ...ompas_ags.diagrams.ForceDiagram.euler.html | 879 +++-- ...as_ags.diagrams.ForceDiagram.exploded.html | 658 ++++ ....ForceDiagram.face_adjacency_halfedge.html | 883 +++-- ....ForceDiagram.face_adjacency_vertices.html | 883 +++-- ...s_ags.diagrams.ForceDiagram.face_area.html | 878 +++-- ...agrams.ForceDiagram.face_aspect_ratio.html | 878 +++-- ....diagrams.ForceDiagram.face_attribute.html | 900 +++-- ...diagrams.ForceDiagram.face_attributes.html | 899 +++-- ...ags.diagrams.ForceDiagram.face_center.html | 880 +++-- ...s.diagrams.ForceDiagram.face_centroid.html | 880 +++-- ...ags.diagrams.ForceDiagram.face_circle.html | 664 ++++ ...iagrams.ForceDiagram.face_coordinates.html | 885 +++-- ...gs.diagrams.ForceDiagram.face_corners.html | 878 +++-- ....diagrams.ForceDiagram.face_curvature.html | 878 +++-- ...ags.diagrams.ForceDiagram.face_degree.html | 878 +++-- ...s.diagrams.ForceDiagram.face_flatness.html | 897 +++-- ..._ags.diagrams.ForceDiagram.face_frame.html | 664 ++++ ....diagrams.ForceDiagram.face_halfedges.html | 878 +++-- ...ags.diagrams.ForceDiagram.face_matrix.html | 695 ++++ ...diagrams.ForceDiagram.face_max_degree.html | 873 +++-- ...diagrams.ForceDiagram.face_min_degree.html | 873 +++-- ...agrams.ForceDiagram.face_neighborhood.html | 883 +++-- ....diagrams.ForceDiagram.face_neighbors.html | 878 +++-- ...ags.diagrams.ForceDiagram.face_normal.html | 882 +++-- ..._ags.diagrams.ForceDiagram.face_plane.html | 882 +++-- ...ags.diagrams.ForceDiagram.face_points.html | 664 ++++ ...gs.diagrams.ForceDiagram.face_polygon.html | 664 ++++ ...ags.diagrams.ForceDiagram.face_sample.html | 884 +++-- ...s.diagrams.ForceDiagram.face_skewness.html | 880 +++-- ...agrams.ForceDiagram.face_vertex_after.html | 893 +++-- ...ams.ForceDiagram.face_vertex_ancestor.html | 893 +++-- ...grams.ForceDiagram.face_vertex_before.html | 893 +++-- ...s.ForceDiagram.face_vertex_descendant.html | 893 +++-- ...s.diagrams.ForceDiagram.face_vertices.html | 878 +++-- ...ompas_ags.diagrams.ForceDiagram.faces.html | 885 +++-- ...diagrams.ForceDiagram.faces_attribute.html | 901 +++-- ...iagrams.ForceDiagram.faces_attributes.html | 903 +++-- ...rams.ForceDiagram.faces_on_boundaries.html | 873 +++-- ...agrams.ForceDiagram.faces_on_boundary.html | 873 +++-- ...ags.diagrams.ForceDiagram.faces_where.html | 895 +++-- ...ms.ForceDiagram.faces_where_predicate.html | 892 +++-- ...ompas_ags.diagrams.ForceDiagram.fixed.html | 872 +++-- ...ags.diagrams.ForceDiagram.flip_cycles.html | 876 +++-- ...iagrams.ForceDiagram.from_formdiagram.html | 881 +++-- ...s_ags.diagrams.ForceDiagram.from_json.html | 886 +++-- ...diagrams.ForceDiagram.from_jsonstring.html | 886 +++-- ..._ags.diagrams.ForceDiagram.from_lines.html | 890 +++-- ...s.diagrams.ForceDiagram.from_meshgrid.html | 895 +++-- ...as_ags.diagrams.ForceDiagram.from_obj.html | 883 +++-- ...as_ags.diagrams.ForceDiagram.from_off.html | 878 +++-- ...as_ags.diagrams.ForceDiagram.from_ply.html | 878 +++-- ...ags.diagrams.ForceDiagram.from_points.html | 880 +++-- ...s.diagrams.ForceDiagram.from_polygons.html | 887 +++-- ...diagrams.ForceDiagram.from_polyhedron.html | 878 +++-- ....diagrams.ForceDiagram.from_polylines.html | 883 +++-- ..._ags.diagrams.ForceDiagram.from_shape.html | 885 +++-- ...as_ags.diagrams.ForceDiagram.from_stl.html | 883 +++-- ....ForceDiagram.from_vertices_and_faces.html | 887 +++-- ...ags.diagrams.ForceDiagram.gkey_vertex.html | 880 +++-- ....diagrams.ForceDiagram.halfedge_after.html | 883 +++-- ...diagrams.ForceDiagram.halfedge_before.html | 883 +++-- ...s.diagrams.ForceDiagram.halfedge_face.html | 888 +++-- ...s.diagrams.ForceDiagram.halfedge_loop.html | 878 +++-- ...s.ForceDiagram.halfedge_loop_vertices.html | 662 ++++ ....diagrams.ForceDiagram.halfedge_strip.html | 878 +++-- ...ams.ForceDiagram.halfedge_strip_faces.html | 664 ++++ ...as_ags.diagrams.ForceDiagram.has_edge.html | 886 +++-- ...as_ags.diagrams.ForceDiagram.has_face.html | 878 +++-- ...gs.diagrams.ForceDiagram.has_halfedge.html | 878 +++-- ..._ags.diagrams.ForceDiagram.has_vertex.html | 878 +++-- .../compas_ags.diagrams.ForceDiagram.html | 1550 +++++---- ..._ags.diagrams.ForceDiagram.index_edge.html | 858 +++-- ...gs.diagrams.ForceDiagram.index_vertex.html | 881 +++-- ...s.diagrams.ForceDiagram.insert_vertex.html | 889 +++-- ...s_ags.diagrams.ForceDiagram.is_closed.html | 879 +++-- ...gs.diagrams.ForceDiagram.is_connected.html | 899 +++-- ...ms.ForceDiagram.is_dual_edge_external.html | 879 +++-- ...iagrams.ForceDiagram.is_dual_edge_ind.html | 879 +++-- ...agrams.ForceDiagram.is_dual_edge_load.html | 879 +++-- ...ms.ForceDiagram.is_dual_edge_reaction.html | 879 +++-- ...rams.ForceDiagram.is_edge_on_boundary.html | 883 +++-- ...as_ags.diagrams.ForceDiagram.is_empty.html | 879 +++-- ...rams.ForceDiagram.is_face_on_boundary.html | 878 +++-- ...ags.diagrams.ForceDiagram.is_manifold.html | 879 +++-- ...s.diagrams.ForceDiagram.is_orientable.html | 879 +++-- ...ags.diagrams.ForceDiagram.is_quadmesh.html | 879 +++-- ..._ags.diagrams.ForceDiagram.is_regular.html | 879 +++-- ..._ags.diagrams.ForceDiagram.is_trimesh.html | 879 +++-- ...as_ags.diagrams.ForceDiagram.is_valid.html | 879 +++-- ...rams.ForceDiagram.is_vertex_connected.html | 878 +++-- ...ms.ForceDiagram.is_vertex_on_boundary.html | 878 +++-- ...compas_ags.diagrams.ForceDiagram.join.html | 892 +++-- ...iagrams.ForceDiagram.laplacian_matrix.html | 700 ++++ ...ags.diagrams.ForceDiagram.merge_faces.html | 890 +++-- ...mpas_ags.diagrams.ForceDiagram.normal.html | 873 +++-- ...diagrams.ForceDiagram.number_of_edges.html | 879 +++-- ...diagrams.ForceDiagram.number_of_faces.html | 879 +++-- ...grams.ForceDiagram.number_of_vertices.html | 879 +++-- .../compas_ags.diagrams.ForceDiagram.obb.html | 657 ++++ ...mpas_ags.diagrams.ForceDiagram.offset.html | 677 ++++ ...s.diagrams.ForceDiagram.ordered_edges.html | 880 +++-- ...grams.ForceDiagram.quads_to_triangles.html | 883 +++-- ...orceDiagram.remove_duplicate_vertices.html | 683 ++++ ...s.ForceDiagram.remove_unused_vertices.html | 878 +++-- ...mpas_ags.diagrams.ForceDiagram.rotate.html | 678 ++++ ...pas_ags.diagrams.ForceDiagram.rotated.html | 679 ++++ ...ompas_ags.diagrams.ForceDiagram.scale.html | 678 ++++ ...mpas_ags.diagrams.ForceDiagram.scaled.html | 679 ++++ ...iagrams.ForceDiagram.set_vertex_point.html | 665 ++++ ...mpas_ags.diagrams.ForceDiagram.sha256.html | 885 +++-- ...ompas_ags.diagrams.ForceDiagram.slice.html | 681 ++++ ...ags.diagrams.ForceDiagram.smooth_area.html | 901 +++-- ...diagrams.ForceDiagram.smooth_centroid.html | 901 +++-- ..._ags.diagrams.ForceDiagram.split_edge.html | 901 +++-- ..._ags.diagrams.ForceDiagram.split_face.html | 902 +++-- ...ags.diagrams.ForceDiagram.split_strip.html | 885 +++-- ..._ags.diagrams.ForceDiagram.subdivided.html | 674 ++++ ...pas_ags.diagrams.ForceDiagram.summary.html | 873 +++-- ...s_ags.diagrams.ForceDiagram.thickened.html | 681 ++++ ...pas_ags.diagrams.ForceDiagram.to_json.html | 882 +++-- ...s.diagrams.ForceDiagram.to_jsonstring.html | 881 +++-- ...as_ags.diagrams.ForceDiagram.to_lines.html | 873 +++-- ...mpas_ags.diagrams.ForceDiagram.to_obj.html | 887 +++-- ...mpas_ags.diagrams.ForceDiagram.to_off.html | 877 +++-- ...mpas_ags.diagrams.ForceDiagram.to_ply.html | 877 +++-- ...s_ags.diagrams.ForceDiagram.to_points.html | 873 +++-- ...ags.diagrams.ForceDiagram.to_polygons.html | 873 +++-- ...gs.diagrams.ForceDiagram.to_polylines.html | 873 +++-- ...mpas_ags.diagrams.ForceDiagram.to_stl.html | 891 +++-- ...ms.ForceDiagram.to_vertices_and_faces.html | 884 +++-- ...s_ags.diagrams.ForceDiagram.transform.html | 894 +++-- ...diagrams.ForceDiagram.transform_numpy.html | 850 +++-- ...ags.diagrams.ForceDiagram.transformed.html | 893 +++-- ...agrams.ForceDiagram.transformed_numpy.html | 664 ++++ ...s_ags.diagrams.ForceDiagram.translate.html | 672 ++++ ..._ags.diagrams.ForceDiagram.translated.html | 673 ++++ ...gs.diagrams.ForceDiagram.unify_cycles.html | 884 +++-- ...ams.ForceDiagram.unset_edge_attribute.html | 895 +++-- ...ams.ForceDiagram.unset_face_attribute.html | 895 +++-- ...s.ForceDiagram.unset_vertex_attribute.html | 895 +++-- ...gs.diagrams.ForceDiagram.unweld_edges.html | 665 ++++ ...diagrams.ForceDiagram.unweld_vertices.html | 669 ++++ ...iagram.update_default_edge_attributes.html | 889 +++-- ...iagram.update_default_face_attributes.html | 889 +++-- ...gram.update_default_vertex_attributes.html | 889 +++-- ...s.diagrams.ForceDiagram.validate_data.html | 882 +++-- ...ags.diagrams.ForceDiagram.vertex_area.html | 878 +++-- ...iagrams.ForceDiagram.vertex_attribute.html | 900 +++-- ...agrams.ForceDiagram.vertex_attributes.html | 899 +++-- ...grams.ForceDiagram.vertex_coordinates.html | 885 +++-- ...iagrams.ForceDiagram.vertex_curvature.html | 878 +++-- ...s.diagrams.ForceDiagram.vertex_degree.html | 878 +++-- ...gs.diagrams.ForceDiagram.vertex_edges.html | 876 +++-- ...gs.diagrams.ForceDiagram.vertex_faces.html | 886 +++-- ...ags.diagrams.ForceDiagram.vertex_gkey.html | 880 +++-- ...gs.diagrams.ForceDiagram.vertex_index.html | 881 +++-- ...iagrams.ForceDiagram.vertex_laplacian.html | 878 +++-- ...agrams.ForceDiagram.vertex_max_degree.html | 873 +++-- ...agrams.ForceDiagram.vertex_min_degree.html | 873 +++-- ...rams.ForceDiagram.vertex_neighborhood.html | 883 +++-- ...eDiagram.vertex_neighborhood_centroid.html | 878 +++-- ...iagrams.ForceDiagram.vertex_neighbors.html | 883 +++-- ...s.diagrams.ForceDiagram.vertex_normal.html | 878 +++-- ...gs.diagrams.ForceDiagram.vertex_point.html | 664 ++++ ...s.diagrams.ForceDiagram.vertex_sample.html | 884 +++-- ...as_ags.diagrams.ForceDiagram.vertices.html | 885 +++-- ...grams.ForceDiagram.vertices_attribute.html | 901 +++-- ...rams.ForceDiagram.vertices_attributes.html | 899 +++-- ...s.ForceDiagram.vertices_on_boundaries.html | 874 +++-- ...ams.ForceDiagram.vertices_on_boundary.html | 873 +++-- ...diagrams.ForceDiagram.vertices_points.html | 664 ++++ ....diagrams.ForceDiagram.vertices_where.html | 895 +++-- ...ForceDiagram.vertices_where_predicate.html | 894 +++-- ...compas_ags.diagrams.ForceDiagram.weld.html | 665 ++++ .../compas_ags.diagrams.ForceDiagram.xy.html | 872 +++-- ...pas_ags.diagrams.FormDiagram.ToString.html | 868 +++-- .../compas_ags.diagrams.FormDiagram.aabb.html | 657 ++++ ...pas_ags.diagrams.FormDiagram.add_face.html | 898 +++-- ...s_ags.diagrams.FormDiagram.add_vertex.html | 897 +++-- ...diagrams.FormDiagram.adjacency_matrix.html | 664 ++++ .../compas_ags.diagrams.FormDiagram.area.html | 873 +++-- ...pas_ags.diagrams.FormDiagram.centroid.html | 873 +++-- ...compas_ags.diagrams.FormDiagram.clear.html | 872 +++-- ...gs.diagrams.FormDiagram.collapse_edge.html | 907 +++-- ...ags.diagrams.FormDiagram.compute_aabb.html | 657 ++++ ..._ags.diagrams.FormDiagram.compute_obb.html | 657 ++++ ....diagrams.FormDiagram.connected_faces.html | 658 ++++ ...agrams.FormDiagram.connected_vertices.html | 658 ++++ ...grams.FormDiagram.connectivity_matrix.html | 664 ++++ ..._ags.diagrams.FormDiagram.constrained.html | 858 +++-- ..._ags.diagrams.FormDiagram.constraints.html | 858 +++-- .../compas_ags.diagrams.FormDiagram.copy.html | 880 +++-- ...gs.diagrams.FormDiagram.cull_vertices.html | 878 +++-- ...gs.diagrams.FormDiagram.degree_matrix.html | 664 ++++ ..._ags.diagrams.FormDiagram.delete_face.html | 884 +++-- ...gs.diagrams.FormDiagram.delete_vertex.html | 884 +++-- ...s.diagrams.FormDiagram.edge_attribute.html | 902 +++-- ....diagrams.FormDiagram.edge_attributes.html | 899 +++-- ...diagrams.FormDiagram.edge_coordinates.html | 891 +++-- ...s.diagrams.FormDiagram.edge_direction.html | 883 +++-- ...pas_ags.diagrams.FormDiagram.edge_end.html | 664 ++++ ...s_ags.diagrams.FormDiagram.edge_faces.html | 883 +++-- ...s_ags.diagrams.FormDiagram.edge_force.html | 889 +++-- ...iagrams.FormDiagram.edge_forcedensity.html | 889 +++-- ...s_ags.diagrams.FormDiagram.edge_index.html | 858 +++-- ..._ags.diagrams.FormDiagram.edge_length.html | 883 +++-- ...as_ags.diagrams.FormDiagram.edge_line.html | 664 ++++ ...as_ags.diagrams.FormDiagram.edge_loop.html | 878 +++-- ...gs.diagrams.FormDiagram.edge_midpoint.html | 885 +++-- ...s_ags.diagrams.FormDiagram.edge_point.html | 890 +++-- ..._ags.diagrams.FormDiagram.edge_sample.html | 884 +++-- ...s_ags.diagrams.FormDiagram.edge_start.html | 664 ++++ ...s_ags.diagrams.FormDiagram.edge_strip.html | 883 +++-- ..._ags.diagrams.FormDiagram.edge_vector.html | 882 +++-- ...compas_ags.diagrams.FormDiagram.edges.html | 880 +++-- ....diagrams.FormDiagram.edges_attribute.html | 901 +++-- ...diagrams.FormDiagram.edges_attributes.html | 903 +++-- ...grams.FormDiagram.edges_on_boundaries.html | 873 +++-- ...iagrams.FormDiagram.edges_on_boundary.html | 873 +++-- ..._ags.diagrams.FormDiagram.edges_where.html | 895 +++-- ...ams.FormDiagram.edges_where_predicate.html | 892 +++-- ...compas_ags.diagrams.FormDiagram.euler.html | 879 +++-- ...pas_ags.diagrams.FormDiagram.exploded.html | 658 ++++ ...s.FormDiagram.face_adjacency_halfedge.html | 883 +++-- ...s.FormDiagram.face_adjacency_vertices.html | 883 +++-- ...as_ags.diagrams.FormDiagram.face_area.html | 878 +++-- ...iagrams.FormDiagram.face_aspect_ratio.html | 878 +++-- ...s.diagrams.FormDiagram.face_attribute.html | 900 +++-- ....diagrams.FormDiagram.face_attributes.html | 899 +++-- ..._ags.diagrams.FormDiagram.face_center.html | 880 +++-- ...gs.diagrams.FormDiagram.face_centroid.html | 880 +++-- ..._ags.diagrams.FormDiagram.face_circle.html | 664 ++++ ...diagrams.FormDiagram.face_coordinates.html | 885 +++-- ...ags.diagrams.FormDiagram.face_corners.html | 878 +++-- ...s.diagrams.FormDiagram.face_curvature.html | 878 +++-- ..._ags.diagrams.FormDiagram.face_degree.html | 878 +++-- ...gs.diagrams.FormDiagram.face_flatness.html | 897 +++-- ...s_ags.diagrams.FormDiagram.face_frame.html | 664 ++++ ...s.diagrams.FormDiagram.face_halfedges.html | 878 +++-- ..._ags.diagrams.FormDiagram.face_matrix.html | 695 ++++ ....diagrams.FormDiagram.face_max_degree.html | 873 +++-- ....diagrams.FormDiagram.face_min_degree.html | 873 +++-- ...iagrams.FormDiagram.face_neighborhood.html | 883 +++-- ...s.diagrams.FormDiagram.face_neighbors.html | 878 +++-- ..._ags.diagrams.FormDiagram.face_normal.html | 882 +++-- ...s_ags.diagrams.FormDiagram.face_plane.html | 882 +++-- ..._ags.diagrams.FormDiagram.face_points.html | 664 ++++ ...ags.diagrams.FormDiagram.face_polygon.html | 664 ++++ ..._ags.diagrams.FormDiagram.face_sample.html | 884 +++-- ...gs.diagrams.FormDiagram.face_skewness.html | 880 +++-- ...iagrams.FormDiagram.face_vertex_after.html | 893 +++-- ...rams.FormDiagram.face_vertex_ancestor.html | 893 +++-- ...agrams.FormDiagram.face_vertex_before.html | 893 +++-- ...ms.FormDiagram.face_vertex_descendant.html | 893 +++-- ...gs.diagrams.FormDiagram.face_vertices.html | 878 +++-- ...compas_ags.diagrams.FormDiagram.faces.html | 885 +++-- ....diagrams.FormDiagram.faces_attribute.html | 901 +++-- ...diagrams.FormDiagram.faces_attributes.html | 903 +++-- ...grams.FormDiagram.faces_on_boundaries.html | 873 +++-- ...iagrams.FormDiagram.faces_on_boundary.html | 873 +++-- ..._ags.diagrams.FormDiagram.faces_where.html | 895 +++-- ...ams.FormDiagram.faces_where_predicate.html | 892 +++-- ...compas_ags.diagrams.FormDiagram.fixed.html | 858 +++-- ..._ags.diagrams.FormDiagram.flip_cycles.html | 876 +++-- ...s_ags.diagrams.FormDiagram.from_graph.html | 880 +++-- ...as_ags.diagrams.FormDiagram.from_json.html | 886 +++-- ....diagrams.FormDiagram.from_jsonstring.html | 886 +++-- ...s_ags.diagrams.FormDiagram.from_lines.html | 890 +++-- ...gs.diagrams.FormDiagram.from_meshgrid.html | 895 +++-- ...pas_ags.diagrams.FormDiagram.from_obj.html | 883 +++-- ...pas_ags.diagrams.FormDiagram.from_off.html | 878 +++-- ...pas_ags.diagrams.FormDiagram.from_ply.html | 878 +++-- ..._ags.diagrams.FormDiagram.from_points.html | 880 +++-- ...gs.diagrams.FormDiagram.from_polygons.html | 887 +++-- ....diagrams.FormDiagram.from_polyhedron.html | 878 +++-- ...s.diagrams.FormDiagram.from_polylines.html | 883 +++-- ...s_ags.diagrams.FormDiagram.from_shape.html | 885 +++-- ...pas_ags.diagrams.FormDiagram.from_stl.html | 883 +++-- ...s.FormDiagram.from_vertices_and_faces.html | 887 +++-- ..._ags.diagrams.FormDiagram.gkey_vertex.html | 880 +++-- ...s.diagrams.FormDiagram.halfedge_after.html | 883 +++-- ....diagrams.FormDiagram.halfedge_before.html | 883 +++-- ...gs.diagrams.FormDiagram.halfedge_face.html | 888 +++-- ...gs.diagrams.FormDiagram.halfedge_loop.html | 878 +++-- ...ms.FormDiagram.halfedge_loop_vertices.html | 662 ++++ ...s.diagrams.FormDiagram.halfedge_strip.html | 878 +++-- ...rams.FormDiagram.halfedge_strip_faces.html | 664 ++++ ...pas_ags.diagrams.FormDiagram.has_edge.html | 886 +++-- ...pas_ags.diagrams.FormDiagram.has_face.html | 878 +++-- ...ags.diagrams.FormDiagram.has_halfedge.html | 878 +++-- ...s_ags.diagrams.FormDiagram.has_vertex.html | 878 +++-- .../compas_ags.diagrams.FormDiagram.html | 1535 +++++---- ...rams.FormDiagram.identify_constraints.html | 880 +++-- .../compas_ags.diagrams.FormDiagram.ind.html | 858 +++-- ...s_ags.diagrams.FormDiagram.index_edge.html | 858 +++-- ...ags.diagrams.FormDiagram.index_vertex.html | 881 +++-- ...gs.diagrams.FormDiagram.insert_vertex.html | 889 +++-- ...as_ags.diagrams.FormDiagram.is_closed.html | 879 +++-- ...ags.diagrams.FormDiagram.is_connected.html | 899 +++-- ...grams.FormDiagram.is_edge_on_boundary.html | 883 +++-- ...pas_ags.diagrams.FormDiagram.is_empty.html | 879 +++-- ...grams.FormDiagram.is_face_on_boundary.html | 878 +++-- ..._ags.diagrams.FormDiagram.is_manifold.html | 879 +++-- ...gs.diagrams.FormDiagram.is_orientable.html | 879 +++-- ..._ags.diagrams.FormDiagram.is_quadmesh.html | 879 +++-- ...s_ags.diagrams.FormDiagram.is_regular.html | 879 +++-- ...s_ags.diagrams.FormDiagram.is_trimesh.html | 879 +++-- ...pas_ags.diagrams.FormDiagram.is_valid.html | 879 +++-- ...grams.FormDiagram.is_vertex_connected.html | 878 +++-- ...ams.FormDiagram.is_vertex_on_boundary.html | 878 +++-- .../compas_ags.diagrams.FormDiagram.join.html | 892 +++-- ...diagrams.FormDiagram.laplacian_matrix.html | 700 ++++ ...s_ags.diagrams.FormDiagram.leaf_edges.html | 873 +++-- ...ompas_ags.diagrams.FormDiagram.leaves.html | 873 +++-- ..._ags.diagrams.FormDiagram.merge_faces.html | 890 +++-- ...ompas_ags.diagrams.FormDiagram.normal.html | 873 +++-- ....diagrams.FormDiagram.number_of_edges.html | 879 +++-- ....diagrams.FormDiagram.number_of_faces.html | 879 +++-- ...agrams.FormDiagram.number_of_vertices.html | 879 +++-- .../compas_ags.diagrams.FormDiagram.obb.html | 657 ++++ ...ompas_ags.diagrams.FormDiagram.offset.html | 677 ++++ .../compas_ags.diagrams.FormDiagram.q.html | 858 +++-- ...agrams.FormDiagram.quads_to_triangles.html | 883 +++-- ...FormDiagram.remove_duplicate_vertices.html | 683 ++++ ...ms.FormDiagram.remove_unused_vertices.html | 878 +++-- ...ompas_ags.diagrams.FormDiagram.rotate.html | 678 ++++ ...mpas_ags.diagrams.FormDiagram.rotated.html | 679 ++++ ...compas_ags.diagrams.FormDiagram.scale.html | 678 ++++ ...ompas_ags.diagrams.FormDiagram.scaled.html | 679 ++++ ...diagrams.FormDiagram.set_vertex_point.html | 665 ++++ ...ompas_ags.diagrams.FormDiagram.sha256.html | 885 +++-- ...compas_ags.diagrams.FormDiagram.slice.html | 681 ++++ ..._ags.diagrams.FormDiagram.smooth_area.html | 901 +++-- ....diagrams.FormDiagram.smooth_centroid.html | 901 +++-- ...s_ags.diagrams.FormDiagram.split_edge.html | 901 +++-- ...s_ags.diagrams.FormDiagram.split_face.html | 902 +++-- ..._ags.diagrams.FormDiagram.split_strip.html | 885 +++-- ...s_ags.diagrams.FormDiagram.subdivided.html | 674 ++++ ...mpas_ags.diagrams.FormDiagram.summary.html | 873 +++-- ...as_ags.diagrams.FormDiagram.thickened.html | 681 ++++ ...mpas_ags.diagrams.FormDiagram.to_json.html | 882 +++-- ...gs.diagrams.FormDiagram.to_jsonstring.html | 881 +++-- ...pas_ags.diagrams.FormDiagram.to_lines.html | 873 +++-- ...ompas_ags.diagrams.FormDiagram.to_obj.html | 887 +++-- ...ompas_ags.diagrams.FormDiagram.to_off.html | 877 +++-- ...ompas_ags.diagrams.FormDiagram.to_ply.html | 877 +++-- ...as_ags.diagrams.FormDiagram.to_points.html | 873 +++-- ..._ags.diagrams.FormDiagram.to_polygons.html | 873 +++-- ...ags.diagrams.FormDiagram.to_polylines.html | 873 +++-- ...ompas_ags.diagrams.FormDiagram.to_stl.html | 891 +++-- ...ams.FormDiagram.to_vertices_and_faces.html | 884 +++-- ...as_ags.diagrams.FormDiagram.transform.html | 894 +++-- ....diagrams.FormDiagram.transform_numpy.html | 850 +++-- ..._ags.diagrams.FormDiagram.transformed.html | 893 +++-- ...iagrams.FormDiagram.transformed_numpy.html | 664 ++++ ...as_ags.diagrams.FormDiagram.translate.html | 672 ++++ ...s_ags.diagrams.FormDiagram.translated.html | 673 ++++ ...ags.diagrams.FormDiagram.unify_cycles.html | 884 +++-- ...rams.FormDiagram.unset_edge_attribute.html | 895 +++-- ...rams.FormDiagram.unset_face_attribute.html | 895 +++-- ...ms.FormDiagram.unset_vertex_attribute.html | 895 +++-- ...ags.diagrams.FormDiagram.unweld_edges.html | 665 ++++ ....diagrams.FormDiagram.unweld_vertices.html | 669 ++++ ...iagram.update_default_edge_attributes.html | 889 +++-- ...iagram.update_default_face_attributes.html | 889 +++-- ...gram.update_default_vertex_attributes.html | 889 +++-- ...gs.diagrams.FormDiagram.validate_data.html | 882 +++-- ..._ags.diagrams.FormDiagram.vertex_area.html | 878 +++-- ...diagrams.FormDiagram.vertex_attribute.html | 900 +++-- ...iagrams.FormDiagram.vertex_attributes.html | 899 +++-- ...agrams.FormDiagram.vertex_coordinates.html | 885 +++-- ...diagrams.FormDiagram.vertex_curvature.html | 878 +++-- ...gs.diagrams.FormDiagram.vertex_degree.html | 878 +++-- ...ags.diagrams.FormDiagram.vertex_edges.html | 876 +++-- ...ags.diagrams.FormDiagram.vertex_faces.html | 886 +++-- ..._ags.diagrams.FormDiagram.vertex_gkey.html | 880 +++-- ...ags.diagrams.FormDiagram.vertex_index.html | 881 +++-- ...diagrams.FormDiagram.vertex_laplacian.html | 878 +++-- ...iagrams.FormDiagram.vertex_max_degree.html | 873 +++-- ...iagrams.FormDiagram.vertex_min_degree.html | 873 +++-- ...grams.FormDiagram.vertex_neighborhood.html | 883 +++-- ...mDiagram.vertex_neighborhood_centroid.html | 878 +++-- ...diagrams.FormDiagram.vertex_neighbors.html | 883 +++-- ...gs.diagrams.FormDiagram.vertex_normal.html | 878 +++-- ...ags.diagrams.FormDiagram.vertex_point.html | 664 ++++ ...gs.diagrams.FormDiagram.vertex_sample.html | 884 +++-- ...pas_ags.diagrams.FormDiagram.vertices.html | 885 +++-- ...agrams.FormDiagram.vertices_attribute.html | 901 +++-- ...grams.FormDiagram.vertices_attributes.html | 899 +++-- ...ms.FormDiagram.vertices_on_boundaries.html | 874 +++-- ...rams.FormDiagram.vertices_on_boundary.html | 873 +++-- ....diagrams.FormDiagram.vertices_points.html | 664 ++++ ...s.diagrams.FormDiagram.vertices_where.html | 895 +++-- ....FormDiagram.vertices_where_predicate.html | 894 +++-- .../compas_ags.diagrams.FormDiagram.weld.html | 665 ++++ .../compas_ags.diagrams.FormDiagram.xy.html | 858 +++-- ...ompas_ags.diagrams.FormGraph.ToString.html | 868 +++-- .../compas_ags.diagrams.FormGraph.aabb.html | 657 ++++ ...ompas_ags.diagrams.FormGraph.add_edge.html | 900 +++-- ...ompas_ags.diagrams.FormGraph.add_node.html | 899 +++-- ...s.diagrams.FormGraph.adjacency_matrix.html | 883 +++-- .../compas_ags.diagrams.FormGraph.clear.html | 872 +++-- ...pas_ags.diagrams.FormGraph.complement.html | 903 +++-- ...s_ags.diagrams.FormGraph.compute_aabb.html | 657 ++++ ...as_ags.diagrams.FormGraph.compute_obb.html | 657 ++++ ...gs.diagrams.FormGraph.connected_edges.html | 881 +++-- ...gs.diagrams.FormGraph.connected_nodes.html | 663 ++++ ...iagrams.FormGraph.connectivity_matrix.html | 883 +++-- .../compas_ags.diagrams.FormGraph.copy.html | 880 +++-- ...gs.diagrams.FormGraph.count_crossings.html | 884 +++-- .../compas_ags.diagrams.FormGraph.degree.html | 884 +++-- ...mpas_ags.diagrams.FormGraph.degree_in.html | 884 +++-- ..._ags.diagrams.FormGraph.degree_matrix.html | 883 +++-- ...pas_ags.diagrams.FormGraph.degree_out.html | 884 +++-- ...as_ags.diagrams.FormGraph.delete_edge.html | 895 +++-- ...as_ags.diagrams.FormGraph.delete_node.html | 888 +++-- ...ags.diagrams.FormGraph.edge_attribute.html | 899 +++-- ...gs.diagrams.FormGraph.edge_attributes.html | 898 +++-- ...s.diagrams.FormGraph.edge_coordinates.html | 897 +++-- ...ags.diagrams.FormGraph.edge_direction.html | 889 +++-- ...ompas_ags.diagrams.FormGraph.edge_end.html | 670 ++++ ...pas_ags.diagrams.FormGraph.edge_index.html | 666 ++++ ...as_ags.diagrams.FormGraph.edge_length.html | 889 +++-- ...mpas_ags.diagrams.FormGraph.edge_line.html | 670 ++++ ..._ags.diagrams.FormGraph.edge_midpoint.html | 889 +++-- ...pas_ags.diagrams.FormGraph.edge_point.html | 896 +++-- ...as_ags.diagrams.FormGraph.edge_sample.html | 884 +++-- ...pas_ags.diagrams.FormGraph.edge_start.html | 670 ++++ ...as_ags.diagrams.FormGraph.edge_vector.html | 889 +++-- .../compas_ags.diagrams.FormGraph.edges.html | 887 +++-- ...gs.diagrams.FormGraph.edges_attribute.html | 898 +++-- ...s.diagrams.FormGraph.edges_attributes.html | 898 +++-- ...as_ags.diagrams.FormGraph.edges_where.html | 895 +++-- ...grams.FormGraph.edges_where_predicate.html | 896 +++-- .../compas_ags.diagrams.FormGraph.embed.html | 872 +++-- ...ags.diagrams.FormGraph.embed_in_plane.html | 895 +++-- ...ompas_ags.diagrams.FormGraph.exploded.html | 657 ++++ ...ags.diagrams.FormGraph.find_crossings.html | 884 +++-- ...as_ags.diagrams.FormGraph.find_cycles.html | 896 +++-- ...pas_ags.diagrams.FormGraph.from_edges.html | 883 +++-- ...mpas_ags.diagrams.FormGraph.from_json.html | 886 +++-- ...gs.diagrams.FormGraph.from_jsonstring.html | 886 +++-- ...pas_ags.diagrams.FormGraph.from_lines.html | 893 +++-- ..._ags.diagrams.FormGraph.from_networkx.html | 884 +++-- ...agrams.FormGraph.from_nodes_and_edges.html | 891 +++-- ...ompas_ags.diagrams.FormGraph.from_obj.html | 893 +++-- ...gs.diagrams.FormGraph.from_pointcloud.html | 894 +++-- ...mpas_ags.diagrams.FormGraph.gkey_node.html | 888 +++-- ...ompas_ags.diagrams.FormGraph.has_edge.html | 894 +++-- ...ompas_ags.diagrams.FormGraph.has_node.html | 886 +++-- .../compas_ags.diagrams.FormGraph.html | 1332 ++++--- ...pas_ags.diagrams.FormGraph.index_edge.html | 666 ++++ ...pas_ags.diagrams.FormGraph.index_node.html | 665 ++++ .../compas_ags.diagrams.FormGraph.is_2d.html | 872 +++-- ...s_ags.diagrams.FormGraph.is_connected.html | 893 +++-- ...pas_ags.diagrams.FormGraph.is_crossed.html | 882 +++-- ...compas_ags.diagrams.FormGraph.is_leaf.html | 885 +++-- ....diagrams.FormGraph.is_node_connected.html | 884 +++-- ...mpas_ags.diagrams.FormGraph.is_planar.html | 891 +++-- ...iagrams.FormGraph.is_planar_embedding.html | 860 +++-- .../compas_ags.diagrams.FormGraph.is_xy.html | 882 +++-- ...pas_ags.diagrams.FormGraph.join_edges.html | 670 ++++ ...s.diagrams.FormGraph.laplacian_matrix.html | 886 +++-- .../compas_ags.diagrams.FormGraph.leaves.html | 873 +++-- ...s_ags.diagrams.FormGraph.neighborhood.html | 889 +++-- ...mpas_ags.diagrams.FormGraph.neighbors.html | 885 +++-- ...s_ags.diagrams.FormGraph.neighbors_in.html | 884 +++-- ..._ags.diagrams.FormGraph.neighbors_out.html | 884 +++-- ...ags.diagrams.FormGraph.node_attribute.html | 899 +++-- ...gs.diagrams.FormGraph.node_attributes.html | 898 +++-- ...s.diagrams.FormGraph.node_coordinates.html | 889 +++-- ...pas_ags.diagrams.FormGraph.node_edges.html | 664 ++++ ...mpas_ags.diagrams.FormGraph.node_gkey.html | 888 +++-- ...pas_ags.diagrams.FormGraph.node_index.html | 874 +++-- ...ags.diagrams.FormGraph.node_laplacian.html | 884 +++-- ....FormGraph.node_neighborhood_centroid.html | 886 +++-- ...pas_ags.diagrams.FormGraph.node_point.html | 670 ++++ ...as_ags.diagrams.FormGraph.node_sample.html | 884 +++-- .../compas_ags.diagrams.FormGraph.nodes.html | 887 +++-- ...gs.diagrams.FormGraph.nodes_attribute.html | 898 +++-- ...s.diagrams.FormGraph.nodes_attributes.html | 898 +++-- ...as_ags.diagrams.FormGraph.nodes_where.html | 892 +++-- ...grams.FormGraph.nodes_where_predicate.html | 896 +++-- ...gs.diagrams.FormGraph.number_of_edges.html | 879 +++-- ...gs.diagrams.FormGraph.number_of_nodes.html | 879 +++-- .../compas_ags.diagrams.FormGraph.obb.html | 657 ++++ .../compas_ags.diagrams.FormGraph.rotate.html | 678 ++++ ...compas_ags.diagrams.FormGraph.rotated.html | 679 ++++ .../compas_ags.diagrams.FormGraph.scale.html | 678 ++++ .../compas_ags.diagrams.FormGraph.scaled.html | 679 ++++ .../compas_ags.diagrams.FormGraph.sha256.html | 885 +++-- ..._ags.diagrams.FormGraph.shortest_path.html | 894 +++-- .../compas_ags.diagrams.FormGraph.smooth.html | 901 +++-- ...pas_ags.diagrams.FormGraph.split_edge.html | 896 +++-- ...compas_ags.diagrams.FormGraph.summary.html | 873 +++-- ...compas_ags.diagrams.FormGraph.to_json.html | 882 +++-- ..._ags.diagrams.FormGraph.to_jsonstring.html | 881 +++-- ...ompas_ags.diagrams.FormGraph.to_lines.html | 880 +++-- ...as_ags.diagrams.FormGraph.to_networkx.html | 879 +++-- ...diagrams.FormGraph.to_nodes_and_edges.html | 886 +++-- .../compas_ags.diagrams.FormGraph.to_obj.html | 886 +++-- ...mpas_ags.diagrams.FormGraph.to_points.html | 880 +++-- ...mpas_ags.diagrams.FormGraph.transform.html | 886 +++-- ...gs.diagrams.FormGraph.transform_numpy.html | 663 ++++ ...as_ags.diagrams.FormGraph.transformed.html | 888 +++-- ....diagrams.FormGraph.transformed_numpy.html | 664 ++++ ...mpas_ags.diagrams.FormGraph.translate.html | 672 ++++ ...pas_ags.diagrams.FormGraph.translated.html | 673 ++++ ...agrams.FormGraph.unset_edge_attribute.html | 893 +++-- ...agrams.FormGraph.unset_node_attribute.html | 889 +++-- ...mGraph.update_default_edge_attributes.html | 888 +++-- ...mGraph.update_default_node_attributes.html | 888 +++-- ..._ags.diagrams.FormGraph.validate_data.html | 882 +++-- .../compas_ags.exceptions.SolutionError.html | 651 ++++ latest/examples.html | 822 +++-- latest/examples/00_basic.html | 923 +++-- latest/examples/01_rtl.html | 958 ++++-- latest/examples/02_lpopt.html | 861 +++-- latest/examples/03_fink.html | 865 +++-- latest/genindex.html | 3046 +++++++++++++++-- latest/index.html | 828 +++-- latest/installation.html | 660 ++++ latest/license.html | 831 +++-- latest/objects.inv | Bin 1196 -> 16200 bytes latest/publications.html | 822 +++-- latest/publications/ags.html | 839 +++-- latest/publications/bi-ags.html | 839 +++-- latest/publications/interactive-ags.html | 839 +++-- latest/publications/loadpath.html | 839 +++-- latest/search.html | 813 +++-- latest/searchindex.js | 2 +- 1660 files changed, 506512 insertions(+), 182161 deletions(-) create mode 100644 latest/.doctrees/api/compas_ags.exceptions.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.compute_obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connected_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.degree_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_end.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_line.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.edge_start.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.exploded.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_circle.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_frame.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.face_polygon.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.offset.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.rotated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scale.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.scaled.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.slice.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.subdivided.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.thickened.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.translated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_edges.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.vertices_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.Diagram.weld.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.exploded.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.offset.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.rotated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scale.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.scaled.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.slice.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.thickened.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.translated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.ForceDiagram.weld.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_end.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_line.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.edge_start.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.exploded.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_circle.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_frame.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.offset.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.rotated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scale.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.scaled.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.slice.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.subdivided.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.thickened.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.translated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.weld.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.compute_obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_end.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_index.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_line.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.edge_start.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.exploded.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_edge.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.index_node.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.join_edges.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_edges.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.node_point.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.obb.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.rotated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scale.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.scaled.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translate.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.translated.doctree create mode 100644 latest/.doctrees/api/generated/compas_ags.exceptions.SolutionError.doctree create mode 100644 latest/.doctrees/installation.doctree create mode 100644 latest/_images/AGS_intro.png create mode 100644 latest/_sphinx_design_static/design-tabs.js create mode 100644 latest/_sphinx_design_static/sphinx-design.5ea377869091fd0449014c60fc090103.min.css create mode 100644 latest/_static/check-solid.svg create mode 100644 latest/_static/clipboard.min.js create mode 100644 latest/_static/compas.ico create mode 100644 latest/_static/compas_icon.png create mode 100644 latest/_static/compas_icon_white.png create mode 100644 latest/_static/compas_icon_white_48.png create mode 100644 latest/_static/compas_icon_white_96.png create mode 100644 latest/_static/compas_white.ico create mode 100644 latest/_static/copy-button.svg create mode 100644 latest/_static/copybutton.css create mode 100644 latest/_static/copybutton.js create mode 100644 latest/_static/copybutton_funcs.js create mode 100644 latest/_static/css/_color.scss create mode 100644 latest/_static/design-tabs.js create mode 100644 latest/_static/scripts/bootstrap.js create mode 100644 latest/_static/scripts/bootstrap.js.LICENSE.txt create mode 100644 latest/_static/scripts/bootstrap.js.map create mode 100644 latest/_static/scripts/pydata-sphinx-theme.js create mode 100644 latest/_static/scripts/pydata-sphinx-theme.js.map create mode 100644 latest/_static/sphinx-design.5ea377869091fd0449014c60fc090103.min.css create mode 100644 latest/_static/styles/bootstrap.css create mode 100644 latest/_static/styles/pydata-sphinx-theme.css create mode 100644 latest/_static/styles/theme.css create mode 100644 latest/_static/tabs.css create mode 100644 latest/_static/tabs.js create mode 100644 latest/_static/togglebutton.css create mode 100644 latest/_static/togglebutton.js create mode 100644 latest/_static/vendor/fontawesome/6.1.2/LICENSE.txt create mode 100644 latest/_static/vendor/fontawesome/6.1.2/css/all.min.css create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.ttf create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2 create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.ttf create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2 create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.ttf create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2 create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.ttf create mode 100644 latest/_static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.woff2 create mode 100644 latest/_static/webpack-macros.html create mode 100644 latest/api/compas_ags.exceptions.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.adjacency_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.compute_aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.compute_obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.connected_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.connected_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.connectivity_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.degree_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.edge_end.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.edge_line.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.edge_start.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.exploded.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.face_circle.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.face_frame.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.face_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.face_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.face_polygon.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.halfedge_loop_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.halfedge_strip_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.laplacian_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.offset.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.remove_duplicate_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.rotate.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.rotated.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.scale.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.scaled.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.set_vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.slice.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.subdivided.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.thickened.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.transformed_numpy.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.translate.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.translated.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.unweld_edges.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.unweld_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.vertices_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.Diagram.weld.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.adjacency_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.compute_obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.connected_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.connectivity_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.degree_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_end.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_line.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.edge_start.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.exploded.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.face_circle.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.face_frame.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.face_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.face_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.face_polygon.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_loop_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.halfedge_strip_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.laplacian_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.offset.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.remove_duplicate_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.rotate.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.rotated.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.scale.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.scaled.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.set_vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.slice.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.subdivided.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.thickened.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.transformed_numpy.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.translate.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.translated.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_edges.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.unweld_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.vertices_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.ForceDiagram.weld.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.adjacency_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.compute_aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.compute_obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.connected_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.connected_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.connectivity_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.degree_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.edge_end.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.edge_line.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.edge_start.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.exploded.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.face_circle.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.face_frame.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.face_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.face_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.face_polygon.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_loop_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.halfedge_strip_faces.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.laplacian_matrix.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.offset.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.remove_duplicate_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.rotate.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.rotated.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.scale.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.scaled.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.set_vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.slice.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.subdivided.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.thickened.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.transformed_numpy.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.translate.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.translated.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_edges.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.unweld_vertices.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.vertex_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.vertices_points.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormDiagram.weld.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.compute_aabb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.compute_obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.connected_nodes.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.edge_end.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.edge_index.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.edge_line.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.edge_start.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.exploded.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.index_edge.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.index_node.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.join_edges.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.node_edges.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.node_point.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.obb.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.rotate.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.rotated.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.scale.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.scaled.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.transform_numpy.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.transformed_numpy.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.translate.html create mode 100644 latest/api/generated/compas_ags.diagrams.FormGraph.translated.html create mode 100644 latest/api/generated/compas_ags.exceptions.SolutionError.html create mode 100644 latest/installation.html 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 8b601fdac3511c64095891af6f1a00034135ff32..4f0cb6ebdd4b6f7e27dc86a69f1e45792c56342d 100644 GIT binary patch delta 50 zcmeAdog~WAz&f>kBFnyw$GX|Ycr$Yo(^KPf@)J`s^U|mEu;gUsWlx!$z;TJObF(pL G3?l&Hh!VK~ delta 48 zcmbOv+Aqq|z&f>MBFjFO4Au_#ssI20 diff --git a/latest/.doctrees/api/compas_ags.ags.doctree b/latest/.doctrees/api/compas_ags.ags.doctree index 7446d94d0ba87ca518a198832e37891d38d1547c..49846de2f0f9c560033feb8ae8f7f1a78221fb0f 100644 GIT binary patch literal 22575 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 diff --git a/latest/.doctrees/api/compas_ags.diagrams.doctree b/latest/.doctrees/api/compas_ags.diagrams.doctree index aef6f408efc2bee4b40cb77ae11b310c330ed535..9afb3426ab322ae5788d64ec6e0c7b87d4901c67 100644 GIT binary patch literal 9240 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 literal 10536 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 C2(iil diff --git a/latest/.doctrees/api/compas_ags.exceptions.doctree b/latest/.doctrees/api/compas_ags.exceptions.doctree new file mode 100644 index 0000000000000000000000000000000000000000..db15bdd72d45ac98b103813cc60293f7651a1ada GIT binary patch literal 4856 zcmcIo>y9Hw6`tL>c?gSn@+jA?CP2B zuBNJb$0i!C3EDv=gp}qNZ^0uV@i;sHL z?|Vz`W4CoG!erECL6FFR>)fsf($8X^nEdnn-mmk^{LnTPyU;RIKF{qEG<*?8f#OO2 zIJaA*Zo)`+%kd4(eG|%LGF+^RHPLvSABv`3HKB=kt;^o>Wt=kYv7zqrk}QBx+#d5>r?1R07+0yIiz$+5WU$`UVSo zqgYr^+@bA@Z(`5lF8uonzOUl@I==U?AMq`>kE23e+{ffiOul4y4C`kRQ=Ts)Pp90k zMX(6&LZf!Y>D!$T-~Z&nZpN0{FiZ9$B>IKFd{!~ zQKTQk^&cR*A61$3yg=3rd{8$)Ro$1t_?d-boy%~}Gjaz6s8;o*Lz*aMHdHJXwSo5G zNjg4}{j-ygXX4O#Yg$?L(wR|u`0H&6FnrLgS54#Ptcj`#()kMY9owhAS4; zEDKu}W_xB)`LsO$xVStI?TTBdy_t@4yOxfR;DemcSM47V%imvD+I9`w1>EHJ8w>F! z2hNjH%)%rWf3^*@%s2(+FVm!U18qJ^qtFjc{?v6}FqPz2wu#upGRROhi-6j$L&w2u z-gEO9riR?)_LZ*?KnE31fvo>$h&a6gKYogu*cWTl@O)Yi4_^p$R1&`t2jVY4O|tXL z>*7Jmmr(jSCi}%)0sgjX+wZ*?klB9$hNkZLTiqSkA136E)6yM({fh3m-oYdIEPI|M z4J9DkVoP>~;4?qHNnv;&+V9Pqw6|&pLMM{Ruz+bcUwMx(`iJwQ>q@pcilY;qG9pjw zsp6WeC){Q9yBJ%YwQv&-DDeZkU7Of5sMv~yRcAjytO2=Eyw0PZ2i}`u;zwD)2VqpO zng@gfLk@<*3=bACkXgiHwn3;JIs?74_Kl^b-{s7%$7~dUw~73nf8%3UhLP-}${Rj& zWDbul5Xk9Jc>Qb%gR%X8UFSOS5Ajcm&==46X&TxoXJZwesf%jNrUfe{L#vog%}hx{ zk3d6@YBY3ebOBFgb@D`0EZ4{rnA_q4nNU-4pEh~JZuyxa66;MU>t-b>sHgWbpWd)-V*5!Jdn4jHIV4*eDUyOI#&n6$F!pjG;SqNd?;L-Q}YYUILTKbfvUvR|DS9hL~=PP9-|x zVVAQQlBQ88KiUq?t*tNt3-fs5OCka|^)fR!`p%IK@qBx>({psr6D$cLuHa!>s*h7^ zTV`g~%Br)H+k?5DITL3+B);7$>`vEEjlMnGF*n%m&>l1#CE%jSK}tJf$uMI>4vzC5nv*leGXL-vInfnn=-IswZR) zP+cJZWAK@GcV4$!DNj8jIjBP4ISgzuMZRP0R2KH@!kAQ_93MlhyXn{nnRKNZ9)tFf zrdt3sJ;P&!$2i32>Cvliya|79sewOdo+MNAuT|zzri@bdoU3lg&A`opf zl4}=DFOohh4~qj|fRy_Pd{J-kvU4FupW}vd<=z6gt9^+BSI8dehsgjrPyxdpL50rx zb9!M+$s0*lR3lx}&vWEV+~)yGc#I_o4yJeoY6-1#kAt8_9$r}BETzl(Q@dNfazL_1 zg96a5>@rWD&~@Lg7jT05MJk41|0oWFOCIr0ch%p;qL5m~UGI=)xZGdnc5g;nya0e0 z)&`RXv1)pE0C|Ii#q;6WJrw!bYxHxMe(vBWvrW<5xRSd8V$*4h zqs+GJA$4=K!Mt7mQyLW#s@zJi*i2ng=;3V!QXuZ*?mnaXwK?HLyE&uQtY&rg_h#$^ zgq0!Gzcp{G>{+rc;EFFZLJiy@K)fQjAN7ettnqd!{~R9tEdLQ|1eZTl8{WKVWJNLI h1YTyu8xye$>_*9NkVr#%ebWjE0ZXu;BRT7L{{uE|Q?>vA literal 0 HcmV?d00001 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 57694e076b3f5f61043db6e7985a7bc7d1fe02ee..a6f13391060cb729f0b41410156ebebcf0537147 100644 GIT binary patch literal 8160 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 literal 7831 zcmd^ETW=gm6&~BMXU5mWAtrzmny~DSt;~2AAy`G)fLM0-AzBNqB6uL7>FKVS>T%z; zyV|jlfb7Fc8&PlD`@j!C;s+ok9{3Lk2@tPH2!!AXt+cGfV`5JEy8nKVJMm-fXFVawAK)9~})G&x>M@Wrgf`v73i162<$)&O5~qik|GI&Z8{O zQJDBEdA`g`FzM*a?y`Gc4UM|M~_=T0>6bAJcr-& z`1SDHB`e{m)K|9k;2%F4Bf|2FWgMGJ^>(bDA6a4S> z?g2*>dy4(CsjkJAbfYS(dPp&}Seu8wMwd5Ktt#GZztO14YQ5f9G5{C*!2U9YZ9{IJ9x}7^_QJd9s~-X+#@8t#&1$~+?&JtU#AGGDy)m78%M%C%$TQ82iDs1_g#oo@Hz!I^tP8n4(n&vL61j`22eU3S^)3Q7ySI`76 z7FLpCJ9kA^(bQb)5V4KZ%yJ@cnK-Ml2e?JdBh`qknVlpFeAl6Kqm{&dBxo8`ANfaM zb<&|PQYSsu?`psQpIJS{&YyvuKV2L<3z$}6rz@97J_|g1X8SPC>gv6b8Piwg)Y&a! z`J2_AlvSx=lBW98nd3j_*Z*H&|G30|3%OnEK8(F%LqX~8TD!YIRJglq^>$y!!#8|N z@Njp>>h}R=g}2c1G;Ih+ZxBz-JMO)UDD?=0^CeHR>mpp6xf`z7v{R=6m z7pwDpvOU*oRd=Z+6rwm9o5DMl@XGzC?9-FalMHpUIPJV=ZosHJlg|iXU z7m-`11EV;_C}T65xdNH>xs92hR?a&6U_*Yru64bpSSO#tpSqa8q@s9nOx7@wFJ4rF z3Po>n%T%LV3#kHC9=q!Bs}R{_$VK7w9cA`eaH6-S$jMhsz19gt(>$$|TQ#ZE2rC`a z8G%m^O$nn~$LkFk8MR=#iUicA1;%6n9A?cqACNkj`EBKUoZF?t z+T<$vM4u@Lvm57FYK^9#6z9XU*P&eaXeyU~NP$G<_-6(0Y8Ux;MUd^c7>-j>y=T

uU?Nr4GL7T2zH3a*(vZ`O%nCVw|@2l3Z zx?0k~rQ)CM3C}bTovL?9>o3Fd1zlHoUw1*zF1U67m-lJz9B!$3N}Xc6?hCJ06x|<| zos0>Ab|PBqR}ePcD<9$HhHI%;$fa*NK@KF=4V;aA*)99Gxb|b1`sIg)c8zn zIGOtY8AN_YQ&_+h#eU=qZdYAxtXNJc+uZwdHDyVh;!w;ESy0@Ym&@D<>fxfi!j63S zN}&6hRZM8-cx;%DvE2G2Cyn4MaHPx$LFwY&=Q1*?cu%hT5k3vrEJBY2T!rlBV$^@R zuUZP*&6hSy(>S#`?vVjY;b&46-3GZ4=b|ZPQAsJ}jhQzyA||gBnAf%3sSefb?dFS_ z$?`JUkik(LE(%nKbS-eAaqf&6JWf5Id3;fkS5xN3sb_mE0Y0z{b=LRg68ab;bWY$A z-?PzL#m$&nA?r>qVtY!G^XTQEi}q}RRr9t)fW{KxS=TUZj@2@r=%ofxfk2$ zitAyZvxe8-4q=35KgMF=JvqwJF zV5IF9Jz){_i>U>G2$M7qAz#6#r+Ns8UZJc4a-uPS82F(tiZ?I6AlDO?*l-F%F1pHL zt3(+((4CS)Ugtt2*`2*TkTbOT1&^aaoR0Sjd5t)g0^qc9T|;<;YGAXZ|AiO71b?ol zBX>qTQKsUbuf!u+9fIruO9ws^Bee$7evgYVz+zqD43R~i;KjX;ya7yxcAcKJ0k-a; zKarQS<48D1HuuLozz_Jn6wswlu4bWwM0-0&UT1LBRW;T_8+(jXy7q?4aVf{%lj?kf zmz4`K`yfw>C+Y*9`YKn}fhRyu?E29N7^n)vCY6dTA2#_`SvX{#?T3JH21%FoI1|TM zn=|wupU7)2j#URX!|o8+_+Wu=0`x)bJ$a@4ObC<)BVEs)$ORT1(kC_9(RBog3k+hj z@R1e5)?H17m@Ci*m=Y+bzzcdx^yN)%HmKB|P-I9O)dT8s()T&Aw~45qCl-=>as&Tm zvP)#zuZT&#*w6SaeEw4Ju~EIk-^k^f88#(u&Giv{(g#au3T0=-r}Z`|nh*F#n8RTl z)JRaQpO_)m+}(!6ZndhKwAql4LYoSz?AK;xm2X;d8MVWWbE*u5TybOcG}H!<{iFSA zNq--Hc(-^9d4Pr~G74_ZRLr6JW?e!Wr7 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 f071ffa429320594c8d7ab3bb4669815c9d42eff..568fc1f5f9f735a9b985103c5a765e0709709447 100644 GIT binary patch literal 7585 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 BPCWns literal 7482 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 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 17001ac7d9a6aa325cdeac5bed98e81577eabc5e..411e6df5b136059ab1e6694228f178dab99cd681 100644 GIT binary patch literal 7231 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 XJj;!3!pxAu*RrYDrFB7HRl5HLO^JEG literal 6909 zcmc&(TaO$^72ezI?CgE*coV_e9wG>{BhPFi@qjEv2qm%vCM$>{p6s-0x@)F-wx_$( zUG3eKFocIlSyXRs1mYJU@xTK=1R({)GXzBn2nc@wzEjorz1aJNrSVQxovJ$LJKs4~ zb>_p?&;RqKIsH#<#i4NhlOb~)KX7=Qsud@&lNtAA`Yhf5Y5FwnsZPX>;~+|$588NlWq>S7Vbc{7Ri>?zB5^dXKag0uUZ~1IyzO6V(ST;t?K8pC5 zWD?buY(hh+*b;kUUECIn;*NU%Km;>>5GB6Pql4ohIyx{Ak-62cP&7VZp?fglkYtiO zmC-7c1uVlThLLw4E+iu{r&_M>@RN!!jGIIkE*Gx?@~`6a8a_RI`eYz5id=10574;& z1g=zr%wfeYz5Q;_^}DmcNj%;ybtjefQ+2oAll!}vo{Hr|nX*LO6T=dgLva`2L+d4w z)IO(l43!lA{OnJ1Yg_0B)a`r=Z?d z=LhN#va29mAqWkAE41x-=)@!Om~gU6oW%RNsyDQ%h<$iK^2l=$9TlgqRX9>m#E`6* zQT@t2qDD1LUKhUqmlW~W;(3~y!X^^EE$&cY zJe#6nR)R_(uK4)LxOyz63iAVvikizpT#-0)vgjeI-tIIaq#{H@qd6MpMoTFAV;D5C~!_I3M#wb?e{4a_WRvl z{{g(0vb#pwX^ldWWl-yv_3oHos_w&C4mqvW{9CfyG>2j$en6wOq+( zRTT%hwH|OW(^84&Em>l?%>f$T;;yL^mQ**dT@oHz;j>V%*o~|DZPa{{E4fy2RJk_YVy69T>Dp`P`tpAF zFCRWT@Ah&NwRGGx3 zvdLGen(xzTKWz~vCZ`f-=byio_%G$*WOVr^6bPS}i;B<4i%1)P&$*o+A^*-hRQp|y z!`LqljG|p<*{`nSL4gBf`U_(pT`Z8frgLcKn;I=d882^)@wkw=2kVyxC-8Z9bgHit zjk`myPRw>+FVoK%+0xCDB$|r9y^bN%jEcW$OhVuciq!T(>K16Kd)G5_Z`$1aYWIHv z=zk4$uex#*O~57XqUY0TPki<~p}&Ec`eGyQoV&SRkgIo)b&LU@Yj z?l|#HIjM2Sb%Ggl{dD?Q*s0pM2g}otr_)cVsUL%tcH0k3t>cWW{+3Q_RB$<`XkMHc z;A*cw*|T+!zkBie%52F+n?xEM1Ws<8FeRyOXNrA2KgN<)(PvZXK#lRyV?<2n`1X zq*$_9h{l@P2G=V82+h^3nM5918#1shs$1l2-;F&Z`Y72l~m( zI-y%%ik?lXE`%1Kr7B~LCBJNXxW{#mb?i!E<<&Iom`%vaYlmt*;$aZs+Q*-8FMYV6 zRt58lW=rkx6Bk%X)Pdq$2#;NdkCF+t+dO8G53C>&aW+FwM@A^FkWuN!YSZ;mfV8-e z7bK)o)k)-d@XdjKb?wy$EgnTdWC`Xw9*=-Csfq`g+6od`U!|p2N!9JfNMniV%L`!e zrdhYtA)mchA81Tg+hjuwpadZDbiruDWBw#z6Ar}bMZAEzt-2X;JBS?1;UV~eZK$kw zsFv~68{=^aL|n&0rD^P*&}(s%B{HzeF13J{E@~XfEVK&Z0a)FU=R#U=OZNa>KPLB= zU17`sT6mDaJyO^6csTgl z>)!yLo6*>AEKfb<@~`E~BUl+x_J~JAm&>u<17Uw4C$L?A3=ZUp;RdA&6sYQQ>wGrij^)lk;TS7z zn|3TuvA5u;&YY=RHWKua#c?Ef7V5Vsky0W4W3`k07y*`gW0TL$)FStvP$^%nm^^~O z1qX3LxQGgAnVOF-$oKN~-3)4fr)-)NBga;{~2)jD18@kfSM8_3b4l7=TQAdkwR+SYel#A;hO8)Ug98fg9-f#v+7Wm L%MyaQ1`q!S#mWL~ 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 d1e95a81ce44fb9172f59ee126e5c97f25e914c5..2cf5958c9cf213b9ba318f2c9315f0be124e46dd 100644 GIT binary patch literal 8675 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 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 886abe32e316a9053c4448cbe45f4845833a160d..50b350faf5053ac05aa2e0d4831ba689e703f2fa 100644 GIT binary patch literal 11457 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 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 4a6f5cfbc440263595456e3dbade114e91e262aa..bafe29e12154e7d798211b961dda062f2b30f021 100644 GIT binary patch literal 13474 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 JgVS#3{{TD{mp%Xh literal 13906 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 literal 7189 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 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 d2faec05623d3d16c16283741a97560ff3ab210a..f6e4bb741b8a7288f41e2644bec97a14b97addfc 100644 GIT binary patch literal 12952 zcmeHOTaO$^72f;qjQ8SoY$sr^X@e54m)%(i5eZfjVmon&9B&{AAyMqKd%A0;ySJyi z)0e#@F(eX!EEM9wjQ|NAc*qL~MZ86d5aJIYBm@!SEcvU*m?uB(ox8NL>o2~mT1?0L3DTog1z1ieLhSO))seVu4)JlzHP}{3kW$9xXRs^tEX4OY{Jj@{&*ATR+98A# zSYls`kd5VbaSnX z@I3~M>ATooM9(bssG$Y1MsZNV$jUBZEOxx0x2)h_oh>Vx)Ab%Xclnu1FFk$n+<5^X znsHjpNXVvx%Ft|%^SSD_S`u(4ceke?!#=Lc6PEkXDq>#bN5J)p4;a!qe1?`4coOfd zatw{Fo^v7eHBzN13<+7V!4i_zQ&{DR6i2rXilZ>lOTbwrlx14f^0zM#%y8;%SMfUa zlgsIL371edEKaK-Bv=>U{2n7nV^8uudI}NV93;Xi5}}me6fL@2bmq(Eb&}I7g`CVA zIj6@2r?3S$f`|o<1!XCn_^12hC5MXyU_M28_!teBC>fIHOF&iYf+>-mSqGZl4B#b2;FM%|Kk2vNKgOulz$CVwM*1+b><|4H zW@Y=19-!>1-`HSXGFlornmyL#DN zkZgkO$4I^c5Yjj3o*R`TopPwsAWP5tJ~ zP)5b@dYa|7l;_b>&@}g;Q4r9Gfx71fh6Q)X^0_ux5LtThp3ZF%qrKdZeX^O%;ckx( z4-NH4eA(6k$@VZ&FYy1qZyW)V{+%MJ!J8e6Ifh#EIHizR^p`MHbfrVAN;^(p&PLX7r2{hYZvBntPJ*&g&ds|+CXF6dv+%;U21^vb0xPd>MD>D;n%?zyL*`v(19 zyLOR&o}}Mf%L?hb=W0&QNvixBHH&aCup+b9YD)Pv_#BL<u2{0wJ2`cFPM@i4a)Tf(iSHL!JC(dGcSy503k!IZ;4} z+R7?evgEZd2vWgEh+ilR7aW?pHQ^5Wh zgX(~#w(>-S#Zv|BGywBMF{gb4Ke>3O0n*%BWhkgN7CZTMje)^CNnuK><}kH;rN#Gx z=CR$Ul5w?HSHar{hvKaYP7==h7=J);N;wXeeifXwz+T{dWohZ-x&e~cKo_uBg){7{ zTyifoS3Al0RzE`Qe;i86DVF~(L|Zk!)OM#>M%u~#tC+KjK^HmX>>18DdnCt<=aOqKzN74a*0y;djiJ3ATw_iRKtQ&&fi#5AI?3Mt?;2kVWQVI+Ab2fJqY3^($u)uL@ z5#LnyJ$TG4Y8v9&3#B$b`7A?X&&^}n{JoI<1Ba4*8qj``2IX8~6ZT4Z*|#W4y`WqW z@yUgorFi6KJ$z(FJ*350omB?sexlFlvL|iIKLUXEmr6`!@~JrK2L~`(g7+>aQyW(C z*CO9l;X4c7Z%T5QwF$XiNl~xW#7{X?pSk!3?W$WyeU~CCeta*1N>yv{Ne7{GpgE-h z_DeLm{F><#0N$uAU&ZYr9}_(A5r3O@fr7JdflA)mmGkRU}8 z{BVhQFF`kqg06U*>PG(_7za=K~qf*(N(+wvVtx1wZ65Nv9Ji^m4?vT5$a{D}4; z1(~dgX(KJ@vMAvd5z(%`NxRBXejFR5)7npCtMLzwdPz{CG;Fz*n4hBeNmpq6ZvVy3Kd)-I1bi`OwCm`P3D%e+st898j!8o#F}{q z5Q)72d46X*&qM$3ZlE~Xdk%H7)z5*?W`|rm*%yBR++Fbkg>7j)-@y$w9YcPZfWy@k z0MO_%WfOT!ywM#AE{j8v-VAgTkZ_fD{?W^fro4ghTxVNMwzYED+XJi-Ug^+d2P{6H)Zpw{RCQ=NhuQxN?;I7^^1cLxqm%xiF7?%o0 z9frCbEyGl*u;%~uU8mnWN+hBg8Jl~N}+@IeGDDEub&RS2OYfVM5Y&aO@YXzOV2*JR9qgA zDI~Ro-gOu>!%%e7!`<7mg1bJ%dsajgiyD?Fj){t$$|+Z(A0^|Si^I-huu+_RX_7~4lMD`;9wusJW$;6}>KA_r zT>T$K8mhBCsVFK8OC2tQqs6LoUoH#_P&NsCSBfT4hI8udSyDV)*ONBEZ6bK{w~=yC z&YsPnH;_g$3UIv$aE1Gq0@*JJEXvF2BCvdDp8(qY7q;@4{J7YoqC=E($fQdrc4cj6 zCF#N^r2R^459{+u)O(0zi0#v>DCa7@Pr9D0UEJZ*=_3qQu#MEnoa?0(8DZLluQu~h z!5I}at1}c9CjMjD%0TK!rRdvowbkP->Y` zpM)2KN2@k#PgdSTP-tmd#@G0TTsC4%=W(a&?3^ zO%26L>FYS3XImCz1sX-QGhB*+EnrmpS4^+j#TFA z9%Unuf{UZh%0nxn$mn#nQ-!zo0u`Z*fzKGonOH^r5ufwos5;BIm?hy0wVv7(_PYe+ zSvhaPLpJ(!wWBteAEiBn5R?fKIim7&#zCAFYh4D38^{`tpq857g|8WmI@NF43(l0Ym17bW+}u~izYr|0aP;vY>b)%4}uj9Stw5v&WRRC*A40T zizYv0vEiwxPzBXdWG}stspXLZB|0k5tk9woI?SaS@Y#q(u#uF@$xI>4Wj>9~girzD z)j>X!lBpfb!RAnwe3G8923AAUY@+kCJOg z&+%EG`Kk!fATc2@q^y159lVor@O#WC^1}KmjiL0h}42Av*Q9d^I!_libN^{FhgDbE&NY`N-GssiDt~!$zLe% zPi6lgpQJ|lY<~wjZoh$lLf)Wea#=(qI(9bS502Zd{{W8e*0=xw literal 13205 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 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 3c4bd647cda8ceec304156ff3485fde961950de3..4bf54aaae1f59f1f9216e124b38c4f5f14f6e40a 100644 GIT binary patch literal 24833 zcmeHPZ;T|zRo}bYzjJqce{63O&g=A%INsgtAKTaozW5BnIm`CihdCeNz-RaN%+zdm zZ%_AJchB9fj)g!7_)sGto)C#B5{YC92?_YXClo0X`4EAGgn%!|A_yTAAtD7S0wci( zey{#?clGx4PS2feiNw-*r>m>#y?XEWURAxWdY_&8;(u*T@c)uiQO|b#-F2(o_JcNy z2FYwYX!X0yj|XoJmVafiKUhlULhDu(^urb#BonC7vK_A-GJo*;AepD?vExPSvi(fN zTCo%OX>)tZp0;ORA1v8($yDsb9?QK-ex%=PTQR$C_Clv?dDqQO7<8|j?Y`v=s1+Jb zUS+$)jjB5#>rU{x6Qb_t2ZGn>o(0b0fqf>KGt;5i$C7C|g3HOI=lE=Jx!<&sh84%5 z)9l9>IgRv~(~f9VGcC`GA{65Hly7y#ui19LmpwGC)=tPeRHvWJ#MU;w8rY}obM^`Q zLHn4!n6M2y=(3Hl@B1v=xD|vu8?B(*vm(>lj`BajXtZJVoQ-XUnvh33_jVnX*M*qm z$oatexYxr7V|{4zXuoMsBvX#xX1h7@3d!3a#@Ouh5avhl?_vCV1pk(4oDfy$@X;+n zLXN);?IceOA-1$^EIGc>4cdK=8QDmP!R0~nF}-9M%L9A*ay+p5_Q&nDOjeiehoBLR zVG<~89T>tA-ptb*Gjbs4xF2dL`psb+@9wP{CjGAyGPY_srr!)B{B=z{na{2ogaxw| z_)#2Mjvq%CF9$we#a6h@V$);(c5Fu%Uwb_*x(Rp(p(yg0b(4voJ6&t{;$x3Ky3A2a z?4IE4l3@`plrh;;$*F>z1kM)@mP<@SNSgvsLP(aT&!yxzM6%Wc>WNNrlE`xS@@J;$ zdv3SuU5I)XS@JBJL@d0?2BeA?K;@Ez?d?%v8-=YLPB#RoL$==AyFiErwES%&=oFx` z-U?7>h{g!aM>r7XxcrL3`@qn48D=7)zM8yzTxFzNxn9ecSvfy;Tq-;UF&p7+iaL(*I zrF^|L9$%B>UW$z63KtUbkg@hBwORY4@mQM{KCj4}R=kj?$Be;m)n@RU<1si%&bY{4 zt`M^0H8R%zsWxlxjK|th^VuR}X%VadZ!@Oet z_#z#Id+Nx@(c=k?#n4w2BGBypuU{QE`A@8OaYS2ONmINKMWu zx^n=p&zE#LKRZd&xS}T>GLny0lf(?#vHD(Y-n6_v)5$0IMg3kc2xBwqT48*nAJEeA z4&0i%p67~<;oQy~Sacjv>bzb>4X{|84fVy!p_V&A_c=7`H{FNuC-t&Jw0Ette|H71 zi+)zAPg2>)Q#tw?CUG&5)6Z-iooYItD$+SzPlEj2=qXzX4%L&aqQ<23q>8ig{c`2_ zhUn=w8jYx@->U4tQcse~XnOi`HJvf^B*>4Wr@3@_en3Cd;+4{idd&3kXO-g^qK`iv zT_1l@*?*-zB$d(h@i*0U#?Xf#KaM_T)gI}9Iwt9jQigcQRPk?>Ll~lpe;r*F?^gC- zsR~I&Q^hfC0@YCX?`$MfN2_L6cMN3+21ZuK;T3xaH#NCNPg@j0K$rw`{2*!2Rw-z@ z*boo&ZRWHH5gt&;X6}=0Fv2G-}Cq$!)_)GGY(oN_9k&OaFKXpvabLx8AsFJCV`p z`#fZ3SiPRNXT*Wg3}V}e9IU4ht5|32h7%ht%Qu<~q*$A(2zhXtognP0E)nPmy1aCo zA@&r9dx~Y$YO#jmI0z4R(qbd_qN=S+p#M-{hlo8BSmq5rS?LY(`(avLK1sC~llMC` za}?|D$0g%1vALwtahTUO3vrHI#FxL%8CUj7HZ8^(8n39}Nu>N}z9XjFVUZeHfi6Ij-eT}_i~J0b0#MyR#tZRR#uD)h82d^-kRs^u!e#EuKj$OSGdW- z*l7*(66=k|$_fG) zMhHBH5i`0L0)x9~WVE7?TA_fGzsh|rV&(9LH=TG-)s#M$JFwJ}NSMVfZaTPCBk0jb z2+NZ~@yUy)L0;}?9pOjGn{#3D?-%R5{-?zT(134-)7{#l&E(b=aeT{mS~grUhT#W1 zc&zsu3OexIA#3xo>pQk#9A4$|W<$oCjSU%qCh6qx#31abj78S%L0qKHRmCDkOI$>l z3#^!!6^x`L@R@|OevnnUJ2`|^Sxe0>_kuOmWeICyy*`vB=up&9?CA6JxFVB%mheLh zR?ZDfrvSE>tzD|F&kyd&52S>o9-vjCXLBFIhID%5XNksjrQ$YqZJF7yx6~n z_EjNJlF=VzGU_+0^}0hyh zGBRm?3w84#uEvhEhHs)#(Hf{M-%+*HbZa;XJbr`s>HaSMq*5E%0=``!UOftF0Yovi z0Qajo!eyxcu`!gTFh5q?Oh@0VH98&fB--zy{fLMcTBz2Yj(8$ahWJN{%ful|#4PK$nPWNL}hdsFO;i6aWw38#^Y19c+|m2Liq$2O7+O3`xWx514bfH2F9OQSvh1MQoRQ$ z11UBFs?Rc*7GDFX2flW?uhkN!gzC?63F>PRDjOH7_d#f{@;-H_-bYZSg{1n6MW@0^ z>AMUhVS$}$bxR-<52FKlu~K7-&qHcu9DlAB$2zP@fS=_8tRAO?wUBikSQCLVSU(O3 zYFp#Ox5Z^hhDR0Ml;K!^N$ytvEbhKtOL7v!U*+P`F-&FSVt4@(`U>w;$M7UY3=|l| zL#Feu7YJ5sPok8ljE>UthiXJIH$u&f^S`dexsFy6)n9Q@RgYJqRYW`QN!Dbs$sOxIq38g!diZrw-(E6;Uh& zp~^ZLc%~6x%(GVw0||TLX>{1H)zYHkzhyw|1j@|e z%cBJnU&2XIJ=lk@HA8}k_bh-|W>)u?@mpqO!z;q%s*V9YRZET10H5T#(+!Zy@(8b1 zm%bNWgt{K%ed-1{PphCT=B6-PEY3jrN`Z-y%#0|HZf5cO0S=*ZsPe-2)N@B{tb&*j z@|*E^=+eu@p^{k@4p)LNp03&{^iwTv`p5!B6LH%0C6CvSvR90u8gIJ)c@S*8!P%(h zSWd?Rn$-mK4LSk3%>R6CW##aX1hqa8=oM8MT>QvJ;=7KriHzRRfDe8aVYuK zBd5nN)xwZ;KyOJ5t6=sK%F^=ZW&@4ru><#fNeQ?=u&f z%l}3#iR*sAfZD&#)n2V9=?4Tt>i7Y|Rhb|7LTXSIU*M#k)u%G~X;glF8{6(xcf~JV z)pnnk;hNBmmdeI8+GPm;BfQVMG}@mk zFi{OLX|zOnbfb0OJEbd&eJ@F7=K5+aS?cDx1ckoB6 z-BEqABWI`jsg5Q68!_UzqW?03(_g~eil?FbwL~h7?FN^lZfsOGuCd|XuG{5(>c)0b zI}M|-S18TkkrY^{Rf{tv%>+LOt**pC^!^;%ka>YpJQ#H z9dA#jHT=Z85%qCenjb(WVssHEy$3^Qx7Br;hCHro`EBif3{KtSstv9KcpmfUU^CK= zSpJ@oj!*j@<8*rgU5*L-22sHVl592{h>=EYjBMqh$m%z2%Ht4aQctW;Sd zoeE+Wj7-jPG9FmKJ}g<9aoe!yMgU#e0DNVtCW1GW36sP<3A%wHZbvxrx^ap6msPTt zqB44J;xYufjd>U8`$l?+gj|~Bj*Kj}c9@?Twe&;!9XaZoz5@|cbm&&yT2p5BgDry$ zV%P2hVwWl)_Re!~?-tx2P-0xb^&I=c)^+;R?A-3{Z>c*bG(iw-m=(oq(TzU5b)*4{ zP_weR(%@J@D+jk4#SI~@;T3nqXw!8E;HSAajG(n|-gfu5;MP-+HV8--<}FNUG#>$9 zl$5E+sxMlCFyNR%*{3Xy}M%U{xaOvJgQJ(Ae&+lpw^95_noLQ0G>P>+@U%se0GrH1A7Hc*!P447z{-a7Y zSN09{v$t_zdO$F5_!4KIK3vHdr0Z|*OtiZARNYpH4k5Y;R3^v3P0`^$~%n0nf) z{Qs%V}8D6-O|<@WOb(TGwg|L4e1cK-!c#{lM49V7XDbn-mkL`Ogc>xvWaKC^JG z7#ijqPn88B3cQ$fp&`xJyc{ z;0lc5>b`n+WqIp7U=r|8;LVOJVT<#ypyb8y6PWb;*1x?>c5L?ONTQhg4hA z^0IGI|VAnW*Uh!2~C*}9~5`ObBO2y=J z!5Qsmg*<%q7zfy2#8ra7}QL%pg1!@AcTg-J(aH zqBHkA<73N0DRA#3C*)7caJz@+Q+|NWDJ6o5WD)L{+RyNaB4zBA5!-Clp;Cz=wJK#M zUZcb+YqT4MCgrtaRpmfhUR04Oc8Lh?7$Y4p4_(@;B3bWnmysqawpXd`5#-S6BY%vK zjB_Fd^X24(DxqBz76P*oi(_oFk-hm0a3In#gIyYJ8%u}JP#(M7djHhrWKJd;Mv6W> zPzL5GhK1qbxFCbe=l%{J8}hLq(vssOCFG&R$MhEDri3Vyvz;J_eT39-H zc$&KuWE-Glo|3}$kZ_m7IzpG{L<#d40X;HlWn!xI%b+M5$b8Hge8_nIJr5g6Z?JhZ zY1kHW^~uMnfhjW5Xqvn5u`x$ZuIXgn>c@eZ6(vU*%=`>1=sNM><2eu_A#ARL#P5 zhs7OE17^Qr$6XJ^=3=V}D{5nbzd4&M0+U@cHP3VarpN+)CpjJM`LVTY+Q|9h;UDlj z=}{Vo_&E$-XassSgN4T{+$uZ{Nq!jSUtZ*l=UqBIa2M;NkF;Bv2v|<&Dm2{lnjeF**1Lihap96G;Ouq!sij?mS42w*q|A;lVphBQwv+^0y#|&kwG^ u9C)fA6Jm`306{SIBwF$Dw3zGgxZ}6Hew#3}P1*Y!ZE|+fFNlx)>;DIk6pJ_j literal 23604 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 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 79b6c7cacb755eeaeac4ba8cc26907375de6ce40..9ed67268d450ea17c422f9940c12e4ab9a8cee28 100644 GIT binary patch literal 9537 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 K>KD{|UiZJ~q9x}5 literal 8973 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 P1M0WQaNYbvD3}odQY)!9 delta 357 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 literal 0 HcmV?d00001 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 f768fa1442167df8715b94cae13629def421c660..244a39107711a36c2c821a98cf226ab1b9899911 100644 GIT binary patch literal 13506 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 delta 2583 zcmb7GU2GIp6z0zU)7{b^wk)0g>{6iHb(ca~loBYZDFs2QErjsb)?s(ryTi7->`tWx z+k(N^>I9WDL=F1j3-}_@G)9OLBH@V#5j8QssO1HD(Zoa|BqpAFXJ?txS~bmf=HC0w z`M&erbMDOb{Iz4a^2!J5L&cEoK(+#@zPA>1I( zLRWbu9I$Qk?VuvIw|NW&?8Ob=6s=IK8ok8bWv4;e0n={T%)t|sqb z5OLXS5?zJP)#IN33PUQK>uC~^b#xx!r6 zEkIqRb96z>vz%OnZJrgx4YxftHS@+*>}1g*3_T7PJP}gCfb-j=*x~5XTHh=hM(j6d zj-tqXUEt2e7oQ_7@L=&4UpuX)y|iX0!Sy!ST6C7|WGs*omy|q%`Ns&V8iIFDLJ;nigoM)sX8h4oi{&=da+1L9$`#RZ8 zlzeA~tjOnF2)UZ)45T;&56g>$Yje`JW7?ndv||gT{nElUvpYB|W$nbm@Lg_h6Emd8 z-$EXm>PHjvnvu6=v*|2L z?nqUW(?|{u1Vz#CfiBXDQ+Ui|rBq)|&8CM2u*spUdadv-Ps{x_qZAb#1=jXzo~+!T zNDoTMAzc$PqqzrP3|_c@4t{=EykjfYiiDZ!Hgd*l=<5YTk8?w9 zXed@xUHN`iK%&yYF8OVO@%oLz4?JD*dxP4#jIRYR*3gb=d-x3^+%<5P1I%X$$8kS3 z>?gt>9A|yElrkJVUt1q(=Nf2RUI2eD4Ih?iE&F;1;denDJGCyM6zGozL+nO#rLl~e zvx?V-Lw7>X#mzBXj5hnW@Mt3Svi5+x(fY-jGa;)|GNnsU9BanUG5lzm?u-3Jgr{xO ty^VKlja3**3E;n+<{6R(Wfm}p-!KYWn99)*3gYV+brbEFPB-l)e*>-MBfbCt 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 b9f0c15c8c2a1707bb39c351dacaf96721b1d67d..f4fff07818d5ef49a999d0c49f26827aaa9790b6 100644 GIT binary patch literal 13082 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 Co0*3I 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 0000000000000000000000000000000000000000..d1a80a0df4907c304dc8811052be3d32d046c685 GIT binary patch literal 7082 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 delta 339 zcmdm|{$H83fpzK^!HukI85vnNZ)V)g$T)X$Cz~Rp#pE??^_w|a>Y0!Q7#Sz)uy0|E zo&1npezF9oprue+PJUvEg08MYNJgqcVo_?M-jodX*eMzroIM<=xdj=C#hJxZCQs39 zoKg!EWbI+s0_)J4yoN)P@$}?CPA$um8PXX?Gh{NDGi3cTOM620*At6c`kKk>5LU%b}5(O9WFzZNMniA=0v({m zk|EXuVyI27V&h_b1~pZf3v47O(8$M=``Hv&AA$^@Y|p8{dm72Q6CgRpW0Mm&z4;-I zU<0aKks*`843e3Aj#DrV=pOdu{M_8syb>hG^hhfzDijpuC#Mz{r=}<*RVw6_<`z_@ zdADnf!+48NMzDWE{jkj|1~WMC+sJb_JGCL=l{rZhu4O9ChYbjKu+JD{$W0J(kg zUrslbEJL7d4|{%6R!L<+>Xa-a5SJq*wKy5UpB%@PI{7S@2{2vsv&n3h{}RP zCkt}OPoBXk$ZwL9SzHpGmXn`Y604xAJK2##ZSr|eR&|XG&K{1`+=7h6;>_YHlc#7l zPN|)uk-^%-tA(UPYqA=rJmcxfg3MBr7qAIPp3IQWIGQ1o!JHxMmm%j@nv@~dqoweu zVKUg|6=1e5w;&@}e)4Z_H|dOjJ?!~O zStXSPsZ%ok_i&`77AHeFlT&$8xq8@AQcDsubEYItKE-3g$O1G%X0tT!Uq(jL&650& rnbr6i85pv-fkbf+XI^4%DoArN&`Vh$iO%8-MWFApxHl^a$1nl_-Z60w 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 8db410706dda902a292098672c78a0c4b1c85b12..c3fda42afe2dc76e5cbe089cc3d0d20e01c09cf6 100644 GIT binary patch delta 701 zcmaE_{6mekfpu!G@J7}RjEqd1w=r&GWSl=amsyd?&}4Eyvjt~vYH@}>h?snXS)C8W z&;t{`K-OkSmL?`V$|X^i>m}!;CKgS}kn?7m9L&Cjap`0Z4*B{X3BUZjR4xS|(9`2W z22(QFW2a5Z?r6jcoMLi2h{p3Ur3C7El|1(KVZs6jXynutn@?wT;#!{dcL^Gr_ z&Xy(twQ?b>MzRp@GWO*B+}zZ>lF0`dwII_A;QzB#=mktY3zlAJA>jVZqcRt*EF_ zP?VpXT3no(qL5UnkXM>pP??gSte~g}31%_;YFej&LOeq{OO%m;p?Gp3mo&&Pf*`*@ z?F5I41kfjGDp@)}MLq2KNm(V81*ucAbU|E>l+@y61b^}+&ZNn9T!z3zSHLC7#F(_X si{~-3nhj8CmL8biK#^j64 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 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 0000000000000000000000000000000000000000..2d2a73999bc2c465c57e91774d790cc54a51d190 GIT binary patch literal 5658 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 DiyUVg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6abcb81320cc4f57c1f284ede9d755bcf61c7347 GIT binary patch literal 5331 zcmdT|-EJgD753Vm8PE7<*502i*>y4&3bB>-OcquFEl~st0U;|EiV!!6X==J_rrPfA zYPza-?F%HhSP@Hgfk+3Q00csj5Kn-(K#>p^h$lcuJO|&Y>YnKtuf5A9Bh6^4`c&09 z-}%m|bNZ)^Pd~r8U_Yj-QV}MneHH|X47e)HN+A6_=7}yoDfWI={G`}5?TkH9GS7To zm<34qB8-BJC&f`=Hb`8Dk?NQ0TZ;QSl*wedXo#k09TmHxZ5le%5wATmcfJ*}amM1l zFOvi-dGL`pVm>sXHCVFzeSS*1JVSD!lzdt^J)0?mR=NHvNR`tJ7R1H`f4#pgk3<%Vo_5%lx>R-Ug z8Q;$o41VQcF&~Nr(+HD*pVsho(2G}Lpx6PPU&Qw{d|$_RkBkLgS!hk%1x#TwhI`Cg z6KA+XcK3R_Q{^w{)QhNUHX_)adXI4&AyrCRHlce^%G5)4`%IPW?w*$l3` zW)(W^r=TG1Y}V-@%OyMJGq|@;$)Vp5WU9d<1yX1! zBcJ(#559K>w3ESC`VZdhKX^Deee2;M3WtN#PSfl_g_`eU^Ak4a71ss<(@g0s_X#vL z0I!Ap>8EFph=brkGVaMy&-t)FE8i!1_wzpen_~!3@S62o+u}P9Zuf#bMfYuUVSWnr zkFJ7xg`jpguh4-PAr>Esj|k5nPVp2+6D_x_mdF=ymF8I#B8qBUSS$%MF(53-PD5rVa3C@3?^qsW>6QbpT& zgiXiO()VDaMlyX`TYUlapBG4&B-V;qjHmGa>BZswBb5CNbomVe zZvix!C_I$GSxqhTb+X_?`x7Sm=%~}f=R22@qEr7=l|nb*qc91n__!31n{zTAGG$y> z;$G>97zdTRq z&k*`7A6|XzAIf8!5dNJD#;c9_Ed*`UitVz(X`|4T@l2r&uiV|)>7|)O{i}G;8=m!& zJWkJWJ@08TVL@F1ae0Fs-+|mzIqRM~&oloQSYR_hU?}g@S-f`5 zVtQ7XrYj8RZ@WOoEKG{y2RPcaa3kuolo!WerlGyfYvWcTT}^v#*2=$BvYr*^rklv} zx>4m6(dHdXN2RutD74!3G#NI`CO-{^O2 zj>kmm4Y%)9hidh`*#~or&2_Rt0Vn~8BHJviM=TlVsOy1vfQoSuZMeCSabISE7x0v$ z0Ze@A=nhR2G#{bz1R`PJq01PBr-f*m4VG)^O{dIa2vV&FNHyMscmUQ;;5z16!XnzR zYiEFNqR9QzsZ{YikRF;ENL}ZrsZ`vnue2=jwf8tgZ(=Fh^@32bVMK=wY~t9V}lhr1ytx=B$5<|JbfF$&{Q z7w=zx-E5>h^#BS-EYb@HFp*}447yWrm^(u2R6QCDFs;xgQQOs**?3TxTO?@}fTV{S z0`Aeam*eUFYi~XTo*UW7pWB{hrrUq1+MYTsqU;IJ`XSdNdj`UOAaoqzu(oDHL{Xqc zaj;^x!O7U0gy+Nn&$W~1=DIpdG&}V~I2IAU;O}xIiTZ0QMmOO7I7eJ70CmHT-O!7q z&q`>weSuOPFJm$nZ$Q~Xh}9=~iquPQeeA28G7p@CJ<<=85japKhAm1JDj&|tg)xyg zlFUUTy^uL6z?pc+1BCDyR1lnN9CFKt)QQJ&SwtQhc66=uTIOT3S-xTdS)-9lYv*Q( zCy(jHj#+W(1n~zRA%qpZIX5|xZqMx4u1>X!wr2K6zRffx_*?UPl}{E- z2PwptIVFg~tokyFfHZ8tHPU*woc{zkJS{#zIH3DOU;$P|ZzaePTa!#OGrc;Qwmw`9 W6F?&xg(}0}+B~6@iuop=d3%Lfq_zrlz}Qs_pKs zrmH%!FOc9OVlCALVte5UKuE9>;t3EJXeGo2;t3EE&%t-9`ftXL6D}EPMpIR%s?Pc9 zJEzX6pLRa!?kw1k*;J_rlanC}f_jM?fdb;R{Wzl_7?2Df1=uk(zHDqpoD`eA*#Y0~v z31;%(L+>fibm&7Fnub|R-{&W!&IQ5?jqvlrX}g><=%x#?WqMw1jJRr+OB)W&QWPe< zILyb)^qJOKIL>rV81cpoMwZVYaxTXg~5qdhMtpZPP<;W5X*7TP_A0rzy;;9hm>pYtw*PR!`wSU*Lixyb33y=rU@l~uB9kWtRcSO9=>L|$uMIXD9 zc8anYfcMQR)H+B(M_Spe(?*t8w#{b_pm!2S4^_&@$yP8$@$4xt2#)V!mv>7({b3|i z4NfT#L`xa@%olw0y;ESGjJ`6w|JLySgVD)XAB>`KJW6dh^^R1i`2iL`W>a4AZWJ)h zl+JRWa8o02T-cvsdis#~2tp*&ft(E7Ne*Y_ha~TQ-lKo#sX}zTVo$GUA)d!~`=Tl2 z@;A&yLk;FXx(xFb!rTGALff9lT6`crBw&Bo04tuj_dzP!n1BA;2xo(7Ci7G|K9+aIpt>rCm5aWLXhWo5znDnvBPEMIK{Wrr z^S(vE|H~5op6O3Q9tGYUqsyBCm$Myi;ojWaUM+hpI#l| zKSJ40!JFT}6&JvlTH&z_PFrf3M`XbV_9smAlPCQFKHs^F9sTyFN-H)4J_(bMl9d-? z^4gq?hd3Iyb$K|i%m1hcWkpK}Gc${B&MjJz`&@s6^FLo5=YNzK?*Q+=JDeLUTeg+N z_?627aUbqpYFnk`OQaf=|MTi9!}%;NdQkb_NZXn?I+w?gr~b>?)e5#32>q=E!e=jA z@vm6%FE11NGlV|P$Cq#W`*Pc52>;GG=HE>; z)~t9i7@rQ3JWfw>ix2kps*|}?#+{3}eRS)}!h*U4;_`kwx(T^PIeR=eUuOO2lyRvsV74 z6!)|^GnI#TLhBHd_aZUrs@Kd5iggX-of>_twuMJ;tvD#WTxo3`o$ zhO3VK;-1UdU(ABKZV~rr?iI7)=NVNvUR}?uRXwh*F)NB|joc08+!j?pwmzF=_TCME z?hja$Bh{}X`R1YNm34>A3N(=Eaiv+DqOt0>L5NI_(d?JaJd4m;r=)=DAR5JX9S5k{ zo=B+^sd;Pg@fEX9#UYsKolGP`9(pz?%S^qJ(F#l6c0D}e#Bt?43$^g7Y79G;6Uy@J z(5z)Vm6`S;{**_><3-aKEUKFwv&BzBV5LzVs7k0~IsqT&Q*5{KjAaS1f<(qyjGms( zkcE>`#Ybi%OwwF?Jn>}!Dda)9o*aDbz@}|?W(Pfxs9!io)c!Da;Y_MEQujw+2AxO0zAmDg4@c^vt zzy-~-ghjOArtJZ`iK63gx>CjSKzgWvAa#wOq*8IOJ=3zp*WS|*g^Z=>rWb^YjUzIo z)UsPSgt%wcV2pwbF#8k%)|6u2B#dm4Yi`g#Y=Sz=W&o(suv&m4U&V6=4%{_C(Jk^S zFejOUh*21ax_Ix}n`R^BsRvLve32e2z(nd9Gw4pvVQvboQ}u8(LbpOqMK#(`X46q& zc1Y4H07(xi1&&AC!jGp1Z@l#Ycy449e{Ol|X_o(DwLFz&MA>7W4MVOcb`QAyNa#4i zWNWIFedUwk~wdrmz?7QoQcOgfD4~O1;M$-CObZ)jy;YmBl1w)qr|26oR7>_`9cM< zMiUp-&dgPwJf#;Qv*N-D{1;Tj4HCjRw5M4%<*1Yp<+q>|sHG8AkvJlAqK6~1J=05x zvhBudle)1?E`;YLhRWCzZa*u$HR9mm!5ws+RFC z%dPt%I6(Sf3)e$VTFE)R+dWPW*5I_`v5aa$Skc$!I&10P%!<8gS37BYW_`rlOjCg0 znP00MSulNs5MSmLAPTeU%P0cUumRUd_nor;W8m<-cpvV7!Vr!HSQR~C&_Qh1kz}TO dweGfOxEdyYln2C_Db4B!6zs~l;4-k`e*vyB4QK!W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..77db2420f23bb3622d10dee1c8343394a98a7ade GIT binary patch literal 7145 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 literal 0 HcmV?d00001 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 8017da15b04e40eb274d9d0c26396cabfac4f550..1d1cdf1bc2c4350584309a3694b4a46478950ea4 100644 GIT binary patch delta 1573 zcmah}NoW&M7|tY_B$K4g(wZ(w>%>+X)5RpU2UF`(gyL3_3Q|gGCdq`CM>aC)p@%{} zR4NS8^2T$~dqIiNLlHsrRy=s{Ac7!@dT_aVDEPn3BpF++IlPzu|G$6#=6xL{6YL6m zf35d1yTvfZYL(exm=#hq1&z^D)eX}Nb3-B)~)JCxyd&oWHqL66fNn zoFGZ@1bM{;%yypV$#<^b3^z}NmPp2~AnUw>IN6mJGucA6k}Vb%a#^XO5aq;eWmyR! z7Fje*`##JV%YXQd9^yyd+sDmajKM${Q#V=WTs^o0 zB;?0!a4ja04_Q_fwN%iNb@$K>?4gJr^a=G|;Q-m9B01S!n?^R170dd%+1jXTqX;3N ztclI2F_Lo(a$SvCK5z^Vo~0@1?0m92Rm_(JX(TOFgprGIC{5Q%fI;N}!Z`;V=c$h$ zpP{;_EkJHLrKkr*)c!F7fW<2LQWSoM%$dg5j7rdk2-?~wAfsd zu0?H!Z|XahXJ8vMFk99PSyaJqv$I%&ShY!SxxKAwK{hD4MAcE-Q4SZhoaCGPSUYxT zskK4dG?)`xRG3jykY6oPh9!fom&^~TO5J7KINqc@wm>0pMpSHfiL_``yZ}6 z2OpS>pT$?{KbJFDXUsDy17iZRr7ULB#gu|)K_zoFDKBIT3f=`Go%G=a(4&_)0T&kN zk%WWnIXl{P9P5Ua?od6fbWH!XP{TGDU=>BU>Z>?FpFS8>zfI#m6-LaTX*{~uCUaUL z+D9!-gE`v=m_w63(O?bcJZktE;2$71!SA?BrHTXj(H9gzCi2tGlQEAc1I)JqP4Z$v z|8&XzV304Biz!i(#5A8=;tPxU(h>}i4+hnz&v!UR{gNTQ-)JyMq`>*fy2W|~cYz2+ zyrxBH{Ozd~llDvnV_=l6#U!r46RhA-D%#Sbl&Z^Q*OMZry%Bh{VXM_U-aW>MjMdfl l52k@hK;v_8NHSLt@*?$-;3dY?a92V>c$C3jz1KO%{08n)(|P~^ delta 847 zcma))%WD%s9LGD^&1>^$nxskdYLcefyh>BVQVJEsDwaY)@K##fJY+H?*^o^{3u*;D zh%1P{_0K3MIZ3^E5Im^#qNmbBMNotydR6c@d6)xH1!E?JmI>mF%n>wb6D{@mF$~oEX69&Iy#xmXQ z5re0rQF!OJLd|i8%)_pum73&Igl^KwH8MO#aWflJ>dmrJlPjs%(GGO1A3EnDVzG{P z#-(8@(8xNST!*?h>ZI?n&L^xRU>yUtO2Dz#1bJ7Q2=LIgD$3oFI@TYLSzKF#)@Yp( zc;pF78SVo~$Iik_^8~ydlVIOt3?x|;qyI4fi-kXXVn}1xdD(wM*+vQBhm0)8zaox! zAI-HM8p*wkie_z;t`?Q5T(0TtE^?aluyefZE4G3gJI|L3ko5!;J$~G`0ev@k6mseO z$|UDDWaOvE=IjRyz?l$Sh$%f_X0ioU@05vtr6Ky6gN4;`H#EEv@cS;t_prWZR`RTg z4^(F__|Z}G#)bPTjpN%!y}cOOAin`^@B2Og 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 12805e4f2bc42539b60cc9e2b481bee86a2bb40e..d4079dee15de092d385e4876a5c158c584e78bdb 100644 GIT binary patch delta 1333 zcmb7E&1(}u6wl_Po1|ZGr6~oWALmjJwY_<3iJR=Sv&(*j>_!_A@mh@b)qG?Op&-$7@zE^MC1i@cB5Do-kkM0CA{)ub!O<*dbBMXo7 z58V}qJNQq|`7ChPp_r_p;Aj7Tr6dGDJrQ4De~$a-eU$=^km!nnG&x@|agA03T^9AwyP-)%;o+tu)Y62Lzw5zA+kTRhG1KmwUL<4IN}h*r^)o7!(0Pk`qCv zJn@&RjEJS`7;l{+JP4yQ4DZM?tKd;}lw&5;EYFIG$yU+=q-3+m$RvFvOs+E$aU8m& z7)+glFd~A(u9grZL8m5Z1qWIyX-ZMC*_N|@M=Bfe8!1(1bW^TqFgzP13|3K-EDH#E zC(kW!OXXE$Gt%DF7UvgNhd4o3=Qt3(;u1{{)Mt%5`@sq0_Oq^lr`<9AAq?}e3d2~b zH@(bOm@F^D8Ln7;xOk<67ZlzHqt`Vqn`$@w!H_-SLxxj}xPKAgj_YtFk;$Y>WwVGZ z3(4t1HEmS%QWbVFoypWs%|ByY`2eyCKo;#16P$LOp9T-pIajGl!J$kO(YXQjF~kzl zEU1nc>NYpSGO~(iHoY5F>7VE{TrMDPZLal15cX@c?MH#3T?kiqI2?%>5(o*3T5!jx Sd|}JN8MtoLo!UazlJFPZti+}O delta 416 zcmbQNzfzU8fpzLUp^2;=jG~hpdBi3z6@V}{o@HWWWZ8Uy@f;)L;mPxv6&WoiyR%ye zW+djMrKY5(>cbe5JJ{8wU>rR-!vm;}EsU{~`#9vS zGT1WMW2a`mBe6KMc*^7{a20G?ASGIpZ8#+u zPfs>vmYU4ZF2H&+LptLqlqbY2opETgBbUPDHZFA_dj*(%hf9z#b@F~L*~x7DZqgaQ zdf4-mvPvoofVTba;Ydj>PKI(O7w~6s^{}O+mLz88Oi7%4i{Fxw1!#oKW&?r0jEshx u^@JWXt8p_jFl4auX1Z#EZ;VFUnPwTn0a 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 0000000000000000000000000000000000000000..5808c48ef951a96a36bee00a1cfac12579dec34f GIT binary patch literal 7019 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 l07%Q6wYqEcI?=-nVbyTvDY0Bv7OpZ z+E_U3u z+nG@cWC$PZlC6IOzC`uM132}Y?XYkZ)_1d<6l#Bj9GM~8$fGqVGR|I?G~p?5>0%Gt zJEW6fE3tWZw}%+sCtxOzGacs4blv)^_LqdSY|^pca~J6$?0Q)|6!SRal4x4vH zq_@`%IaD9AA(o+4@0bW+=h&&1i^3wi!zphXibPV6DYKD?JR+yFMVBng?6@;@*r|Gx zN-CXA7t^`y#8kR~;to8cJ*kC>MC^v@?Q47{(nTd>aa6ahfoIoT0k2C>S{SodRPq_N z?CfIKox6o!k)Hn-i16o`N#ZB=QySk8CfJ|8$moxt$Ra4x0xmbf#i_ayQ}IF}ok}Zt z>$c56g;$1O)!(Z~)XNUK2S=z!Xlg{Di$PzX~kr&27p0#i%#FK54MVQGeB%9E(B*0*ZLwTd!FQjVB~f|C`PY*;AtB)Wet z^sgT5f}YnwEn@du(qtsHLFyW4zvaIy#8ixHVfsF7YgW73_V<-~ z%IJc{i@HT4Nq*H`tE;*UYycOyH3Aa7hRm0|vY84OTHwCuQSFfXWGZ43N zoz-Zk$dbP8Wx4_ea+ZDte{>ZeH_+2n+jDKkx;8hsp7n0AX&7Hab)V;vuUk`RbanlW z)n%7`?P1Hw?*pnB9j~K-sHKkPME1LHuxwtB;K`dbXpM)zdXxgepgf(=C6q!zNy?M6 za&{&&Jqz_N2ZOu~!iBq@55K7(kV_CqVKPqo@M9$i IJ0BAM0W8c zcXPRHin~rM(5EZnbGv0~l-N_^rML_*qA!7QHh1dHPr|}0@+geL{_s|&U{ApmC=4$ zEa{wX`I?-9KwoN>UDVNqQKMuKhoaOU3&v!SH6BhCAX8=O#S(*RvJf`1dCcn?kIUm+ zo&Z#AH)Un7z;Uaf^~_-QN1UP)5+)C)Oo4&BrX!>Z)=WEkTqGwaJ)9gA_aUQ)>QyD1 zb6~q7!(vL_uS}Ap7Zk6MQJu=s8V~J73a=tJv`3*)FN!w9+d>PZH^U_{xD#gcEA{Wu zauIk?RKdMK$xASj@8qAOHLn$}7B}KOt>t-3dlkH_5O!ri`3uQlNtBo)8e3}SP-eEl zk5W4{nM-t+2~?C-;nA(-mBWnLZ5UUvLJ3r{4PIM}@ZH?1nMaMGZTSC;(GyI83#$o@Es9?wN%tK1xMvS`f;?+13?4xbT IixnryA1?=mKmY&$ 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 4c8119c1173315cbb69c66d1ec37d8c3e7bb1087..3925efce3cffed723c214deac8e53b09ae7f7e27 100644 GIT binary patch delta 2744 zcma)8O>7%g5Y9T@*xq>Kjhk4ZiJf(t5Z9z`K}D+43RQv@s#1#rH)0aU-thd0?a1p? z36!QBkcza2mbY90QK=Us1hmCSRrxDz1>(>m%85!7?XJBxPJ|EZ zw{K>?nfYek?7Ot}_#@(B@zuW3W8x7d@=ziBOeI@P<+XXOs!bhxW1w}fCWTAUX~54XMXR)@*Xlsc99{{NutJEY|0z=+`E+>@@@+hHJxn62m8k}-h+!2 zf9%68znBqbIL2XdtnVo@wMgzEPdA`QhMg6U3WvB#zN=q62(l%%Um22#t$hG?D!9|{ z>?}0df7|t%aDwT+-SUGZN-`w2R{;4=_J!}d@B!c^#rM|?d8|2Po1WYj zxRdOf|BP^fnE^GtC7FCyTTUj`NwrX_N~)@|fE3F}Ch=uV5->t}ZLUx%R14+O^n5|D zn#|nzqWOZEAR_6qb^2O#rVCZA=u$K$nw>C7if*txB*2BYs#TiQeYQFqm$nOkVAhe} zA?)84XGw%~y<}ScVS_!|o!s;b5Oo1E^MlGAPze}PZa%B)g}H)OaYxY!39_%Hh=+!l zphVd@e`u1*LPrN0B8X+&NXBJs=UQ`eH=>Zlh?hk8BGz3GijLUWiVT%<0;9t$B##7W z)b_@vWmUf2kdq&=C)lZ8uW*a4bng=}A(36_-XrXH@K!F9L7GMY3$_Eoy3lV2?nZXtp@CuY;)OAgaY# z8iPN_y51bVT)9}(fcdLJQn8z!KF@ieOUO#lW`(0P5rfbbJ~o9+;esEzh#|Xz zPi!iMSD%6A9PciSrY`Y~VhwOY2=MD@-@ z3Ot;GHj}5`nY}GD=Sd7NULQILfT)Vonuv<6iJN@xyo0T*(6?dFHDH(_PkNuTSlDi%^dlrQLBPiv!4Qnv*im>CMQKgyoS3K-mXw++3u70&IwLn ziR5=7xSbZcaQ`~rI~l(MScb1WORLKZnn}OGSASm9bIv;(3U3WQz-81060y6a_Eq TBo5JYIiT(!yJ~+9JR$rGFHmXv delta 1118 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 literal 265145 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 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 c47f76f00bd54a86de4fe485140dccf86c67ed50..ac8729aa78572aad35f7b8fb525eacf58fa8b6f3 100644 GIT binary patch literal 13940 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 F`WuOXGPM8z 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 b3dae8f601e0e8c8a9d987a11fac3b69e3137dc9..a33db5ac67fc9d8f0bc66eed99039bd92cfa6bb1 100644 GIT binary patch delta 2019 zcmaJ?-HRJl6wgg|l1Z|=Nn`gTU)!5qTe8W1N~LS7OYsY9rBLZZ*LJD-nB68d}LP0I~CIRtH5dVV(`&6~)L$PS_Nf1}O_s(SJrj5zN%$#%2J?D3S z=XXzTK6T@?^oI0d3hzp9kH()?3!9BXWkD%#DwlUZN%wj@Uwt1#$lJMzGH8f}z(3ya z(3kM7FXLT4-ns2tbKI-al4J+erRf;|vPfXvBIBm*{#1GezVJVWK8EwY1pMuvKmf78 zNpyqTn}IRubCM(g?Z6524fpK@R-~`FFDn0qZgu2f7J11%zV`k|#7}-FX|oFjZu{Pq zyfpeZNQK`-A-Eo%kI2a5AxTYQuQb_*pTl_VgItcCBbUP`vC*t=DOt5@%whVN4PpAb zKoqQ&m8zj`s7eFZHn2fGY|BC@l*<)fRdl{rHyU%eRyWjIwXnr@!t29Nh9hNVL#?XJ z3;A%Ob=bA9Y^l0&MKzR)1=eiaddkMlBu&YW%Z~X7&Jqrt%9y|y2O)3 z?qjzrhX?#_o#z>l)^j!xmY;Qvf}u5B9)%jj&n5Q90h`GIly&P5jG3xqd9_o{< zOMl-r_fp+sY&b;Z(NV5VGF^pa!4^>`hUiN}!_4vnTdMq(eKcBhg0#dquy jjnyvFhi(R|g^I#<=yXauaFga3+g&pxiR%EeNt7#^D8cv-I)vAX1M%C1oY_NN>79Xlv zhKmKl)dj%Ql=#(Qd7NiRoBL?LXFGc*<2fo==WObJb5RE+`C+I?OZ$vEhR>@5$znzCIx4;813$a*nhhqS? zr+VgifHZv+W)r*59d;O$7z2ES+*}!~y$`X815|vQB9jx4$Ip6EiKfIFE?JH^|BL9s z6I~%!SsQ&q(y&)Z{F)z;y3$4bmwaokeEWOY%0T%%j`WDPIzYT25pRWxcW4XoUQyKt zdHM;*(?0K6FF&yEpx9LvR--AH6XG1cMM*x_)vz;ILmK{X4Wp|6;6Xi>Mc=yG#d?@e zIogpUc?@+1Xu}h2u2XF!R~vXU{>Y=2;GA09LaN=;_u~Duo3z)CQ>Cy%aGb-|G&3peABp$*#hTz8hOGYox!n4TO_{CHoLU;YZ6C?`+V8f9~V zjyZU7bS&)*w`PObY%(0~&&ZYN^7ud>cHV!Wo>V=xstd1q;Rl?fBu6A+=g8;!Z9Xv9 z{SnU!9vi1QSc?_t6p5w?9Gg{nHbf}FUA_)BXIzSdkyv4;e{_gsdlDSn*q$qPw|ECb z^i!Skb=ReudzI)SfO0&O$A6G*#D9`Y zzfURmC~cSwbx3uRILTfT1dh~l^u$O*>_wk}U&UQ;b8JF+ zpFmn-V-cHYnwpI-(pRaX8E`%Y-uWi^H$q=^?xcPX l?72kBuuU$86{?q)G+JzsKMhPjd|>EV^3#Fs&UcyD(LZ0kpq>B# 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 35df0018d5932383b785327ca447ace5045013a9..9e6d5ce9303bd5599a81a180313c1c06c4f67edb 100644 GIT binary patch delta 1857 zcmah~--{bn6wV}>B$IVF$+nH!+1<=Ux@O~Ua8YQ9K8X}W2(1>Mx@;%OP40}zWSE&? zgGgGm;=+Bf-s_7XtbMUBQZ>>)pha*CTYuoI`cQ>hi|#`y6%jmlCbP+QWp^OSz2}}e z=R4o|&du#--aRUw6F+=Yz9_yo_2`Sb*0i;D3DukE^u>?lotDrS*QNv^JosLag(!ES zTj8t1W%_AE4KF`C*oeF;NZibDe1*|@aZdETj*IzeZ{;1}Eb+~*_&Pl>ahQH5CMbzIdLoe)zr?d72u?R5YhoD7_zFEFy(4@ZI7ypeyMbr%HM%J&{pX5B z4xm_6%8J{yTBx9#?xF%;3rPi@Qy3|F9ht7)(2=cl8j1@R{z@t7gOfP?>jgGhI`E+sRPfi`4dpQ9vcfds=$y!Tu9FL#z z?5T(73|hI%zMa8H(bVKpe^LmAcyOM`PcY(cEWwc4K|nQ;_h2bVzNe25L@Z$0$ODqa zDGY)NiZycd^K_m*osNg`oewg~T=q7^UYdnJ^ zP|`+#*{`91Z_;FHQ8>wyzJNiXMul_W=MKROKL;<6SIQpSu+?KEVfB_g z_87uPU@D)4&%z4p;-?J9)0|;Jk8=|w2FU828Y9Q(`@*q4Ba&xmYr4sdbKpwiU~qdD zVnp;Kk_oV&vsO#5=`LII9Ny4u6PA+IE4MrKZVRrtOB{qx6eIEB<>|+FHM@yiw!1dj zZ>@*Zc#6}mYeg7*&99RB;Qxfk~4X?AtUA|4!ky9J)>D7!$OVec`3^P76xG?>%AgF`4 n58jH*{{z0p1Nd@?WNI*xpbZE90t|kz=3o_Y7!L;IvD3nTpXG*H delta 1558 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 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 58273feb5ce3435cce0a021e6e296230ef686845..87f16e9afd9e34e72e0a6ee8b136ac62ab14fc33 100644 GIT binary patch delta 289 zcmbOze_WoWfpzMhi7cJQ!Y-MK=|zdTdZ{VtsWI`Hc`2zCQ!?0Nr(|&Uu!N*mluVgC zr3Xb3!^VAVjEqd1k23l)Pu6DVo-E9kJaL04e-BrDNq%yCL1Ix!@sy0#$?a^VDV#m* z$@#gtsd*q{G#jVXPSMClM*LCWR&F1h|Y*9&Ct%63KX0)xtVzqqwr)!4jERE*o4WF?8hg+VmAXi pT9HGNiSg-XYpw^(BKtG;6!&oECFZ7uKT)2gfpu!zM3zoQp~;LaBE0OeQ!+SvSVB@ON~TPn+{h|6@%Vp6md(c*eVNsJ zgo_I@GV?0*fRcJ;nW^Q;`6;PWdiY_?_{6;AjQpa>ml(B0Ig3)$N)n6GQ%k1wsKn>y zro>Ds{F4I;7N zhr(>^8`py1GE|MYaUodLTF@>E3W6S&((tC`33VTjI6{^aM?%c8M2{AD4>`M-=rBl^ zsUsMhB-|A8H6@PN~+t4-$-_n;KVYx4JR*< zAGN}*UK_IYYlP8TyxuWPT_C(+GRDFbp{h^vrjekGCeva}CR2)|p1yIH`O)wB#lTiQ z`flu%h@OitdwM6$dHPI;(M}CXYe>Vl>aN}@fe0N##xxuP!ATHYhzmjZF{beCZ|IW4Wg zZken+a delta 1552 zcmb7E&ubG=5bjHMlWdxr#-g>RiQ5)yy0#*U=tb}cdQk9G@M6`(tV~~HTg`5)V6g>7 z15ZI`r64E@{s#dM_2NYZ_0WT&C}LZvdi0_qA~P7K%5M>;{!F$Oq@|4v1yzNy<^X$3to;jt4|;$ zY8S=n;6;U89%FyxJp155v<0%wLkeDFOw-RDHgvK)am7o5>urs4qT%zNb(T<**VfJpl5toX@+(P zLh1md4-h~T5%a_-WQ&7EUll@ix%1KmiAZ0NHNJ$qdFq#hojv;e1pbwBUo3ecyb?8< zNN0Er>HR^veBfHF>s*5y7k=0|&gj*nMD+f@T8n&&_5bX=Wo(06euhW=*+~cL6^|Hy zoAW)gl$s8QJsozE@eevkvtI|EUYbO9u9xH&_7D2f?DW`QOr!sieP09nxR*{#xToRb z+ll+eI`?uY+tMOb?RG~n!=2pkb+zCtO|TyMEQip}nK%(kbr!uzP_*@Hu)Eg*Kc$Vah;7+QM8Ol#9?o3z^SV-nAZLKLG)6^yL5m 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 0000000000000000000000000000000000000000..69f926c97817cbec289f73827b6a3fc5c7a3f9f0 GIT binary patch literal 6884 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 Nrev4q1^rg+{1+tE6-xjB literal 0 HcmV?d00001 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 3ae6e3e246e42c23ff4eebc4d540f6f33f2ebe32..25d347cc4ac959122d35caf98371d88a14187109 100644 GIT binary patch delta 1161 zcmaJ=O=uHA7|rCT$tKyP6%#3GlS#2!Lld=HP@&+VAW~W^^kz%Q&!)3Ok`37eTC^Gu zqQwQZv)&btqD6BQQ3}?RC&82T5(V|39*SNR{bqO5rag2I!@QmMzIosKc3a7RCtMBJ zz0KacuA3wK#^ua>HB(AS`FUwJT~w5cPTX@k5j5wFv{2KTuI=F1p1yD*WN)sab%Y+W zWk=k8{3LtiI3<)Ml^o>@JLWkY;G2}OOv0`?>b&jPgWkWBZn&|`L?`U5;rS37Pb9d< zL;|0|wR)u}U6jkUVGPTh7h}vW3&S}<3+APQT$XFHQcf3TmHR((O<&T7h>LVtjqTsX zNy{~<)IrqF?r{}c5)#oN9#2iG?ofH!D)w6#L%&$ip9pV~2>Dshk}&DIuA4sK1sn4v zPJbu;WQ{~8JV5yd6hZUmiWyav3$j%0bQ9dwEqme}u+!j*IE<-?Y&NdvwagmZy+I8& z>F-4cndlqz7`=xz4pMeHup%bApKUv!F(}0DyJG_Fw@R`*A{M`FQ^;pH$Ed|BzG>uQ zYrgYn8mdI!k_esR8nYc6*!b9vT$^F9{2`|?pR4{<%G>#v-`S@&*BZ~)Hr6h1E%LI4 zKN;)Pc@5zZ`LV?eai(C_3u^}Q>sxtK3N{b4yMA8~L! z8w~UmVEpc!QYuO1&QDg0#N)V9RdSN5N_m`J#N~RavY1zLI392JyC=s?0j^&KFDiTB zjyau6V~cwto^&_Z4|f$P2tLrAPsvN(B{+>Q!34Mo$a^{3cCJ z4w7jnILmSK9M?^I9!URI$T~zP7${7Ob}Q9-y}=-Pf#8z=U20y}MOD|ejNWWDs`PSY zwRv3QM^VpextxZNLg{>v^~dUFZ?iR)0ogwFAG9pa1PkN~F3Xd+u0$_>hB)+EC5YK> zEyM1x-&(u|he3kG0wfpsZNT=^S_2HLVliY+L-j9rsDzHV;m1H;-F4)-@lPET&X3~P zP{0j6+zRUWMDfcK2YtYfqTx5;sr=RkuS-`9lgg}p$T#t z*AI;Q#6}i@;w4`k=OW5ze=iyM?)W^Y3mnn$W+dyG8&cM|KXX>H2WGpwd1#6J0-+)RDF6Tf 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 ca4889ce3fa021cedbf1fc29acd72eaae55bda9a..3b2acc5da71f348fc717741d06e14c563472b791 100644 GIT binary patch delta 1503 zcmah}OK1~O6z!y$Br_(asWsH5NhZ-s8vCJE5GsmAH=+en-7_ZSVXF# zVCjI!9XEo4Zp4KYjkpyRzhD&vcPjosyU;Ggm4f$WGRf3JoyFwc-#h1>cP2mjZ}i(w zvKOyhuure_@01cpiivEGm_8zoT)5P>IMZ| zxTax`{Ru}aI&qHb5M)EF(YTe3Hdj`a0`Y4`dYm1H9qu+b?U-e*!A7U<4DS=wQZWZ_ zoe|5r4SHQXa|bSSarQO|Y8K3Mtc?W7EVOcGn3uGHdx7zD5+o1c6({W75|2|t@whM` zsHMV$7?W~pmw>NMUchHR5d|qN=2R&oiA5ow5me03ksjV4%W2-Un2~alD&=!*2-gZhP(Yw87-k;nvJw#OjiijjaEMGjO64?4#@t{jGK z?zOI9l^*!qg6C_!OuoRNJM18zko$XM`4*SYY2W&%)jk$8k4QUd#DhIEnHwjGkvZ^q zyX?bN=x+3+JVe0^1`Rm!&K%JOseukDxb~br)+VS7KlWILNT8b6-7)7$w?ts$`&Tm`IHce)SR?jkKrU_GmGa^k_i%~ zA2{qgyC9W1Hs8CuMcAAnNiH8oJV= zlB&jV&zE(Qj!|7(orYUX3k)}h7#rHJy{t9=VQjyd@=VLe#`SM-P=1XsMdNabtVqWd U{M(UfVOk*(Bq+ZwL+c3h7h$>j8UO$Q delta 1551 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 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 a8bd0dc9338fd2a9a10c08c3c9a20062151fd5da..9f027165f77afbb91b4b653c930f3af3b1541b4f 100644 GIT binary patch delta 2272 zcma)7U1%It6yDkF-|SDeX_ECPyUA>%WV0q4Qxl9qO0`PSVxL4QwWO2Xo7}nX>`rzj zniXVYp~c8m(L16d`X=~RBu{DOaX5d*(U2ds*h18bGs|%*88+BsS_&J-(Jn|A*vut7WfL7?6 z?-G&}-uzy=CP`n3PkM^s=^1gQXHM3MNvH5fjL2iXc&Io(FT!c_M8t^fqdpQ;cjD=W zGkhv6R^(p`C(C71dy|yQ%DkdAtO=!QSX#58){}~&h}V+Ss?4)BvZOUMlrPjZ6XPF$ z+kVR~(I}01i4E+~SxakcBF)j*McZ`^GVwxs;uz~gjRL(*hfgIyGvjK?JXx))rl~Dyq~(tz6Ub6rP8Fr2 z=;^7)Tu*3^aNrFvwzKkKcuC*bB7u)X3gfa{b3IRKvMqd)t?dj{ae2Z<4x z9ryf+-+M;~SjuzjWs&gIqAZ4|_4F%JRQ!^DUa}B!l>QBwu56nCH%x+SH=<)=Ju?__ zYWQhpxRP}LoCsOmr|71_(moNNM_VZ=KFbvHe!~(w>{lB^wQkbR?W5k5^d6Eq<10!( zgt`HS5aQE5`&}d!z~N|w=6FGz=`BfL2D!@s%I9Dn;BI3Vcj)YrroP}{8U=MUhDatz__CauBDnW{AgEVSdV|ih%MV9<|o*CQ| z&FyZP$LlcJEw%15VYiW1TyQy_4bW2>x3}l@E>yJec!@_Gk34L&Z5}t;lSr#g=n=3V zga7e!_9}gp{pFVGPq%jY6puliwPw}kv*KN8wqtYI5$LMcu-QML#^WHc+6J+C#KGh# z5Rf&au2nV5-f-T(p|%=ul#TYh-mIZ3aC5c=1mtaR7v54^%fzyICXf}z*I|EP zfNl>x2tD;1TyaD3@Py(^8pYUMv~ZdZpN1K@1%mFF_V3X=Zr9xLsjsjO0npUN{;WVGLu?ZAyD3Ps(>9?VBnJ;3DvgK*L8Xue*_zeaWs@xI7E}=8 zK~Pvwc_S$FVD5s4y(kLeMbLw{_9R6Lf+C0quK{P9W|1QFGV|Wdd*9FFy*~4!9vlRp z>}DPZ?}HhdiIGs76441875u3AdhG*n7T=Mh{Gzm%I8TiR_EW2uU@ zp1mOTOS0Y1q`ET7zywqvJfNNq)5Io|2$K~!NpV=PA9|g=NLvjlw;?(l`-OPF_qMpJ;)+y zvvQ_fNAN3N$el7Y%Wm15Y>ut{k+GxQ-k;V|qBQTVKvgfZPG5Nj|F;FhATD$3z60sN z!J5bV??BSd?AXduqKei$8v?VD*DoK)kDz6EmzWjEPm(9!VJH;fX>tbMM2he-)2uvX zcuuIlq1(4imFkbYbh@Kj*Csh+vwG4II;yQ`235$3Hg!@RP`DIqWs4{PU&VsElN}-M p19G=>d;HvUhM{kZ;p)t5aQ7 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 BG+_V$ delta 1308 zcma)*%TE(g6o-46meTSn1q$@VPz1`@)<+B>hJqj%2ug^uFp*lObl`TJK4hkel91rS z1d~~)XN((+ZcJQ&M7wZB!oo!V0(FBi8a5^xSMEr>x39EF0-O6hzw`L+xqFxX4jNVs zPj0n8GOV4kj>h=KB|aVyqKiUUR+eHZ4I4umHmUj<;f|t#rk2^f*{MWGpZS1x5qbwN znGVzsADR9J%u5T@$Em^sO!^*sVG}4W#);h+vC9nVqlTkBa7AHpQSeZfvU?K2W%Hir z6~}TM&4c4uFQ=qal5iuIP<$*ILR>HF_rr8`x0hNi2}*h?5nkZu1vzUSNhT#9n@lOO zWP+D+#_QF?#_C8~k^}|9W_zDWipfeirU-FDruUww|}NCIdtA>4LeoPMB^p1RWxq%}qQ(ra~2J z_}Cza&K7G|Zyry@!oFpI@rr(US|3E17I7udDS9|3dR)p$94<}P!X0>HSh0A}GWFY% zhg0+$%)((I*f4^kMI?HHWUhdOAxI!$ZFi}axfan>#A#`KQgqWaTzDV5Cm9&Bh7beK ztXI(%{IQ<1Y~(IOc`H{J=J0DX(joqiV## zdh<2(o|bbuU(U_}9;C6V=%dppC2ziiz}zy6zEElNC#rFXw;bTIP0p= z=~QDfA}V)Nf+o7@wkj&f^Z7lDIYhHs85I;hCTTouIr@+uZr3?870!KxX5PAgFx>&7 g5;-!+swu(81*(c1TL1t6 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 6a8a294b107822ecc0d66e15feb6c27d43f747f6..2844870347534c9763349535f14741aea4a51fee 100644 GIT binary patch delta 1896 zcmah~O=ufO6xJ$U{n?3P*5y+Z(^X7fu zeD9kvJN?bFyeWVF#gWhCPtMG~s;f;~ZC8-iMCYsTpt@_?9*(bjI7uhYp$*q#9^I7{ zxpqAvNzwjIX-1mh+t_yW2kBe3lqg0|ondbzK4xbpZY24ND8we^yzD2Ql;>x}$VbRf zKm4|Qk?l+!VOH#lbeZMjcckxGHCdLw!#NtN`;i>QS$viKn)pE4;t9Q3QvBh*mR;^!3)%_}tCf-7UIt+DGFni+rck&#IUbj+P9(FuVf+g!6F3s9$gCVB#$&8p;IGy_z5~Q=yj6DLA5s9jL)*W(qVX9<4N)r zua_lXa&u1&%q?o{@;5JB=TI`(n^gHI0qzzK<%!dQ!Bc_3d9-%}W>>l0ac&Lg*MQd7 zAzCzBEGm|5){)~NO{sMiqtmv!pu18m4lnFpIsSzO9$Qe>sj0ZYANL}3^(cIgvF&t< zpYqV)lmQoUrRO+9=?askUsLYEb{aQpM0Awg=hK9SocdtSn$s8AZ__JM6fX8$|D~D# sBx$Z+ncdlU{0ZceM;x9e4Ha%7c*24IF@!H%a&QqCkw^WN7tTxn19#n*?*IS* delta 1636 zcmb7^(MwZN9LGJ|?zX#4w279^&7+cSSB)U7UWzPADDX+>p|m!=ay(9F+r3L6(Ls^I zEs%3V2!f*iff)4QQ!f=%4?fh3A*o^Y&}&76(C=)!+nI^v!|v|+-QVy0e&_T3{mzpv zc2t^`?$6aPNOP!$U9;6zy82Bb8;(A8QZpI5?%dC&9j=At-^h`DgZ#*$ci=Qzvpq*o z*`mD}oyacPFCY)Mngn9QtWpZukj{=sEk2~@Y^2Tr!;m!EMQ%hg=Cm0ml7aI6WcnWq zc&E+VX5KMC7TJW!R-+ST|-3NV`%1LAS! zAc6uidnDJM>D*H>`Q6`IyHN+Ks9^g%fhH-pO-YOrUh3sOd0bV5%CI5<>V!W%2D;gB zSn%a$(n#zi*h@ma;2;}rb!>t}QzI$i6o!;zXQi_PNMVyEA>mmX+?KESG zctPx*N2vsz$qETwv_tVW_N=;PhF0WuCR=)pB6zi+7#(}pt4P#n|KH$a&>J}bVd@dH zgA&j!78A{EKPuj{Jod7U=V! zGWsxH^dzV66X^57tPdH^e8-yxQgYM#r=%G91yhXOKlmW(F_q2wf^BQU=T&}EfUs_9 zND5Q(g?;mNIE>PPs%K!D={y)9ydV03v-?>dMoMb7@$tJn98W~GerwRv>Y$cL;^Aas z4C`1+;IyS<8RAMsh%KV_HV9UM)ZN9kkk#sgRMk_G(d@q36gT!|RfrY2OAe&9>@keV7StXalC z>M@){sumrIn^E@Ne;hgZC7V56vxSg1d#d)cy=@c1=sG-7hCCh}Q+aR-E_TX4%%?~* N-0^fh+f#o9{RKEm7s>zt 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 4b90844182c0e93ade569ae9cea690d8642506b6..29926676523f8f8fa9112a82e19f645cd582919a 100644 GIT binary patch delta 3597 zcmb7HZERCz6yCkv?e|^ReY9*{*)5-Cb{)gPMk6?!V-RGC;g^B2cI%yQuj@K?J9G+E zOf(r>V!~Tu;zxxTk;ETJ7A5hQQ;G4Pfe3#znIwqD*@5gWhGgHsC*T_2V#Z-K!sFk}5_&x4GpgIW|w8Ajiv4WQ@*o zSC}(k(m~_)X6_U`dxh?|Cz!WkuZO#!u0OZ;GnZilqulflR1 z(-}Emq{VG#i>HfG!V$Y}(^6qGp2>?@lc6%%)s;@=Q(axcV*%-)`+!f27KL#2d2udF zeV%q&?-^j)=<|FmECrdmIueqa;cI?^1c?33qLu>e(bv4OrzJmHgvoti=mJY#vveu$ z$?23VXQndZoH?HcD{H#!*}&|;SbL=HS}a6BK!^t@Wqu|Uo&H_pIFu3KGD07@xq1@N z7dfwo83y3)M$k)5&k5;01K=RO;2hM0(G~xO7RjT>)JZsXt9m>BbHjUtLwX!_@gqzg zFnhx%$_{Wa5(CTCWNy;S{6M{`=TH1D9&{BBP6I zavi}KH~pDE(O!0oN=;^?0W_k=e9ti#@F;hhMQH)ni(m{{?lbv3c7(I^gNBpMaC|mM zwpfl5I$Rn^Bsy-l&gZF5SbPI1Vhn3|Szrt(o{ z5?L`%63LU|Ts|`?%E_3Z?@Xm|iP{PAxVyq^{AD7}iDhH8wJSCYNfkoh)q!eB9kpt` zp(0*6lAcyPt|C>a-)VMht3pR}qL%`joCagM90+gpuyCR{YXXYfco5xY(%#2XCitv} zN4t>Zf-fALbUJu|ZHLhxOu(dk5ZqWWoQp8BB?nq-9oGh4Hdx~5P}rEctZ>_`l;nhs z)fVC{a%jibU^0;U(Opa3G1ZKsSrXrkiHA9<4b14~pkPqgiEE95t3}!ZE5$V@PNj3% zRA#0q4I!!SC#4vo-;%oFON!%14_b1n3e`E%U;L3ibK4>HM^K^F+s>spCUe=WIFqN# zOjomh6G_K0Zb&)`U*^VmgpE-!4=F@{sG(b?#gMra;7}@xGg+--tp!`X#0C@Df~8~r zH?Ur~7L^0lv#la`fvwwO=-p^ko0fw`_p>#0Kdqf8mTooO&#Sr@YUtiz4Om$KA<$w0 z@T(L#Zr3jIW}Utv${rjpRmgvYC|a%ahAo&{h<{vz_?5MZUtg2B#}w^9vewT+p0M__ zLDf7P%S?NWzL&l;Q8n3GsD59A>aDe@-chOUuA#BV6s$(sI)#mhD_MrrVq9Ta8yE!SGNmqpf31Yd7MUZ+C26dM(h| zC|M`5jjjYb+1&_SZQ=sVS`*iX6L)V7Rh+4GdK`|74!sVt_2 zi3MS1K0CXR&P@uDh+4&PyRB)Xy-h*RGQ^iBQlt~#;v;bLZX7GB%2{s!i+VkD#VhbX zKyrhc9`GaO)AmH<9AGJq+=P^0m=%lCd0aZvqC9D=sXf%^-K+Y9h?j&%=}2f3oe%ZG z&o;ONm%a)8&9GnDmc9=EYU_Cy+@*IgJ;gPXg4ZJemEp&Rgbx;F5`m1>=YaGS8D6>* HIl}x4Fv&m$ delta 1554 zcmah}UuauZ7|%J$O>&doHvN-yE@^YKBujFebqaGUb*8JXX`O2YMX+Gn-889Z*R*L# z#@2_?iTE%GQv9xnFq9$=d|2lem@f)_5~RM2s&&X79O#Q84ty2-&Pi@MqvFF&&iVfQ zzVG)t=X_VsUC&Baq<4eSThgb5IN%Pc)7ouVb4SPsTyu|fGrhD}EWB1cYAxWtI}x!q z!>z>>#!X<{Fb}SnV9*c9S=fjLA!g4iXIPMBS%}%$!2hEkY=O2G7CQJG6GRuVtBzRT zt1Nec4YB!sbT$W{I5x>Th8%>V;-i2NDJz&%+DB(;3GTuQ6umFoHOvR=|s>X9QVeC3&X++?nt$@Wrjn3v5YlWL2a zR?w@urm6p#Gzm|7pQarIB5GRo5Sxt!4JZCx$g@C=s!8)Lvw_CV@KOA5x39fEBsvaJ zRUq^awjoTX)CX69cQ*-V6fbeY=iYQDv$)x@8ifrd3MV_$5@&0NrOrt@$$=eLd53RV28}yw9L93-9$j+r!fuw|0gN&S2Xs@N3TyeX}ie zx;IN^|1ODy7%y{4ytW1)=MS5`s{Bh+1qrtL((-Nto@L;t@F=}0fDhadDXir~L1pZI zuU=GRlzzd3h5{}1J$UOxs0jJ`P>%R^+WLlv{usOv>x5{apY9P@iiPP993}*7fu#Fh zqs4Er-!N>4WVjm`qdyZ^4&r(AD|pMN`=f(;p)k)Mw~0^A*ySmWOqwe&sHo5zRxNgZC4ok#P*IxypH?y0%g@ zjc54QT_{!-tUdgZIHrt=oFMDqXmBhU^VFP$VpTt1GIe+*`2@~x998w}$v+9bMC%`G q59~)@L?~khe=0S3Szju0zzPl(gFCKPSOf_PKcb#w+4`N~m&jka(Bmcm 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 43ff8ec69fafebf97700c35e5d5f21545d00293f..0e77be6523953483163c9dbecf96e9fb01716e72 100644 GIT binary patch literal 13629 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 A4gdfE delta 1988 zcmbuAacCP=9LMu6xuj{*F3Ct5k~Dcqn6mf5H$M2qFj;{A+&<@edI;^u0@(rZt7B|J-|b z?|pyo_xrrx?{^y)w&&P2_S#EBSJ^8l2){5vxM8zj-EzS<-Jx6eScGi#AJLx(eF?|i zadZM+ai8#tyj&2LmW7d>3B2b{g?3)Dt;uP!Z<_3b@7(_Sy6rQ^|F(h<{OZ1+e#Bvp zEAcCW%5gZ&$wgH=t7^*pFfLcLV!6c2+z`%WFhsqPr!an2DDYKT!$lR(luJUko667g zaWBq@FDlHDSd7V`$x2 zHPRxhKmWMCKRGTvgDjT+AcVIMO`>%`?#!!~i3Kq%T_QtuQ4Ht|P8)9+4PP3c#fWGX z`)9=H4B6n+yM&dB$g4%Q-DiJC$nd5og|5+K`e5HNqeFOm4d@MIV9ndjTtbiy48zU7 zUb~gJa{T#3%O zp5wUA37H7(1(Q2yV`P`ZZGQ&+PTf4&WbmLf1N!-3262v72IAnOz!<|a@Tq4w(9DvS zy|@`RshdboTT(vQ4c%lo@(sThn>~S2PV5mZzC)-I;Nau(WkT=Y}yg+A_NG3$P$C(1wL;+WLg>)KC zP_Wr?fbU;r8?&#&?*y93v*-3lIBJ7L{z2pvGix4;n~~?}$?f$P&;yM^c|R6GIrum_ z%j8W(n5SFAQU}E<^#QhGF5mt|X%W7SWtggI!QasWJb|y1gED~(DMr>7mQFKfDH2%B z1Ov#QaJ@)LhNU?Q!;_eXpRfnM@2hhAbQU-{kcB^DS?BFWn04w!)T28Up|Dh5;fp0hXDT(|)BdActs)q@ zRk)Zp%yo@dmIcj_J||M$MFeU^$QKL6ym19yOCLE#lj2sx>=qf!w#S;3+mei~wBH0g z92iAgZCpOt<+5pV>DuA4;U9q4lYKB1h{D6sBrDw|w&2JZj?;abJXY@3?Ms5j7iEKoAI7GT4Sw@S>LcTi5Od60&mP~lrVd#x7Rf~(s_vw@M&&B` VeMofSEme$@KM7f{PfVUge*@weU4j4r 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 23e6523e069cb314510a5dba9238997178343b51..ff6b50fdaa6091050a0eec6ee06e92540bb02354 100644 GIT binary patch delta 668 zcmaKqO>5LZ7{_4!>QjgvWUObfa1L#GBMM3-mm4Yt^4?T+w$(c z*&X>Y{E{Z+MluT zSNbmHGtZC&W%U5yh4jk9bTeIKa&HTx}VBfv4)y&CkqW zd(2#$Wjg!VZ}SE`(#$Ebu@j3g|0x?>bD_lM5^*r$w}#O-L7dn=$1voUeKXYL~YU@5Wnw* z13Tyt%Q_w7-2d-9O2zP)?p{EJLIm4bud=(W(PvlPd7j}OUI-6oPUnSh_=Hz4xpiJm zl%Va#gOH}~brGsIjXI+ku9ZWDU0zQU-G*aXhhf>^zhDbjGkN?ELfx!5c~q?3;;rrq d-=akGTOJjFh?{an;Yq|S{`mBe6KMc*^7{aCNd;Acc%tlYevSGoGGoz^)~AGDAA!XogG%bB3&6hMZq% zQifQMlER~g$snWTL|dmo>_Aa8c_X(1$5f!kL#0WHlLJ{LC$HevW|PiX0ptGT7M;AA zTW<0N9yjTXe?9E^Nm(V81*uaq{`YXCq!uSbIg_n;3%GjNQc_D2GjpaSPF}@p&%y#V zV>27yUq(jL%`5_snbr6i85pv-fkbf+XI^4%DoB4Z(C=9wiO%8-MPM*wac|}oiD3i) D{BU}2 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 0611ed439aa01adeea63a896180d707ae731a979..20dabebbf8119214948dfb7658f3f29604e259f8 100644 GIT binary patch delta 729 zcmdm{wp)v}fpw~Z=tR~IVQH7l#Pp)XT)otk^wi>*`24(>iSwk;gc*Rs3>!}hFfuZ2 zzQuTpk#Y58Gj>HLLzBr7?7f>)SS~Uli}WxuO@7M0g>mWRSse1xJ)Sw4#U;@tr3E>u z(V2NAItoA{HkM04L1FSrPUU(oWH2RzJ$6b4XAgf$YFcJqW=Up#UOY(ql*v;x8>iGx z(a2!UV1ud=K~oc-S(2KIq_D>oyTu_HsS04vD&(grluX{iDPoK41TL@}G=Pp^DM>9t zF;En%fs<`GH5o5YW@p!uy_g}Ju{1-@TQoyD<7{aX& ziVT?y=E;FvhG{^H*^~2gb5rw>L#{_!QBk3wC_g#1xHvUMA*oU!uQa!yG9^D*K~WJB z@?!Yav`zsY zeo|IRWkKqcEF%z?BPF#s8Nr{-$elO2lG_%Ta0J<9Hecrc%gC6%`6BOQW;I8k@+>5S*vp7Q$m?*OBHs2DAVFUn#(C%vh delta 328 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 z z(^e8&rX(J2KesJP^R8Drbryzxs9T0-x-5j8iBweW@l`*Gt61g*mXxp8dTJ<~9Wv$> ziMOO7AAP;rQ5(!J5)TmsWkE!)s7GIRQ7Dw4bQ}^lvCEsqXCM4Z$Oe9B>L#NNGp3=h z33ho4ZZSj!A|zs)lmUnKermP&ijl;=UN-Sr8%DKkBG%}I;X$yX0VmijM6DDdToo;l zt{0K|%cdY=iRtU8n+McIY&ZRg>FP*fB?Ht5+bDk*Cc3Jdc4YKjVkDz-A$JICi(ddU z5nR9!->$%FGBAB;yI>ApdX1hi399o61{x-8CRDzJ?_-KrnCK<)Dp-y;f+4#07#rbN zFFwIn0v41fki-nm8v@unXea034_k2@M7Mf9G)Jh!r^^1WAC7t{zeYw4q-k1!1ji)fjlr=rceWbex7-E>4PG^D8mW-7p91uVZ%9MT^?Zw!?^^aU|KPvD$E8&JM`TVzg%e*^?TF| zY{TM(j%(=aB(yJ3qkMKAgO59Zj9(FNQ!}M40umjEk#z%K{)m1gqmNiGC45=cozUylgph%sP=HAJ(!h6JNE$Ll8d-QTYyUFj@Wu46;SMMVhGU^DGNKP($b&Bzk)+bR eR5S}6F4^9|O-!N z7Lq$IG|_~_5TY(j8j%=X7+1Q|H46-GNQ^NqTo7a8d()3CU}{X0zW46C=iGbly>H%5 zJ?u5i8Sa8_(Qq4;z%W&6H4Un~MbYxj=FQF1@cjd1y#&&S1Y&*e`ZLA2nrXs7(P=n9f=YPD>5~7eLW3xg@@pIK?nRSIO!pn5G%8q z_edln?(#0QpSI-^w*mZ{m}RHOL^c_TBT$jL)uSb{gXjuyPi zLt&Yl#HFmcp-!Hh3|l*?X#|axb(f-;f_DlcUS>vkyF$@^ zbzY5U6gTrOUdLDT@a`V$U{TE6WRz#6u#}#;b!Sb1E%H*gv=EM)J3_pwp*QD%RD87{ zBNni9vr&h$;Sns+UTAk1px9=o$Fg_h-2RMW2+JfUF1=s40?%yq)Dtb0?u6Qvz10$P zx>{i#8&dVPGCL*#7D~O;>kN%4;_igTA$uRSf;3@9EbLK+u;Phq^HaS?pM@--7PAH- z%C{X&)MqWhwuJJHy_FO5-<6j$WULVbTV-|Bj|{;nzT*kOi;kA`rf$Two3QrvKiZed zz14~_{v=cdG3pFoE3hPo3Zb1W?k+M0gKC2P*6RUBt^N_^5OY zo?u}BU!+?0l!1@Vpq{}G912`V;Eub^nlUHJZjWQu%(gdc9Jx&VCEJxCq0CR4+jf#r zbz;a{aYEWVGHWy5IYy^>w!)^n8}$?aqCS$jQ%Ly-;F~J|4=VGDi7BHO7vW`PEgB;* za}owlx&yVsFx_IXV45HxPZi)oAs--L6;wF)Aqy;cPC$fq!;6Nqo_m;8F-1lM`C61y zh5O`a4sp_G@(kX9kgFI&oXmzrl?5em6zO5H$QAn(_=TtsRBWShQ|Eh(fx^E$`(3 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 63b4584ffe8517d45abbfeec17f9ccc70bb07159..dbcf3e72f22db132991987be105fb6e881c905b6 100644 GIT binary patch literal 12769 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 delta 1278 zcmbu8O-vI(6vsQ;7P>7T<*Q&@$}UCdt}S4q20so0(V!rKM74`{sX?9BY%oB#XGoA;3) zC#^Hq2XX(L^)5WNwN&Bq3mT?X%USW7q5(Xzu}d3vge>V#=qEy}@WITY9-u8fHCT|x z#pormEB6DZEgkOMq%;3BKy)XF4(6z)^h3+K^}n;2eS-+v9b0W<$YkOfo=;v8qp^sf zh&;~(_=q6OLRc1gjtPYrIPPqt7zVyqvT(Ix95yOgR*#7aieSjYiG&V}i0cXuC#KF1hAl&!RWoB~xUIZ^YT95iO0gPcrY9m9ws>^@Dbbpp< zfrYet)QCACb;7S&H@tS&p_p#`Ocsi0`1k{gzFZ7N>MJ(t%`{;FSgF8e2m(7xJYr-)JS;U0p=Ww!?b)kd zC0>j+vKcphYMd!*rd0$V_Y9$RJ%E0ryY@(AO>+0u>2W)dzD2O&=F#U8E#v7Y?>pBy zG)eH(DA(4MNw)yA4Soo@9EgTl?=gs0H$y)+z_w5(lUkk#OUm`6s7Z`IwME5LBsYh7 zPO+O=uHA6z=Ayn@xYMwVI?!cd_vYP3}Wm%>_V##FO|1d0GVOSyqMYO7!nyXbzdP7W14!7); zvgWuenu`oZ+4LQDlVx#~jB_&jGnQCrXUYOq#6@-oGz?Hb&j|7McbU(U!XN41P?F}P z!TI+%jkiJZ08Zg|)jaUTTN2t5<8Dv!W>ZK4L?o#di$w4U;l{Y|JzyQ`_c|zYj#7Qfx~chqjM3DmV~StBcfG1$xCAhPeAS| z_)cG8ReW5}@mwkWIQ;k*l!%jV&{M1w7@;?XnKecv&o)%eWcpbE5)mA3%|eVsJXX>J z4s_irYX!|^>t6htYMZc?tlGR$DZ(r>e3!()DwI{n0ZHdIwPdS?Pw%RB3Av0!y@EVt z(_C2^5AcB+28k0*iRqJ#LF0bK^W(3L>kb+u5wTD)3}m`=S2#u=M#KUAGN(-Gms(6Q zm?V#Z57WWMFmc*U3)Hg*cCu-YuIWcSB7C3E6;3bV%u+S4FN3oof}|8hw(Lp)ISwky z`I>B24XXyXDl1Ck9qo(pI|_+!0j-l)@fd%z3Uux$Jt6h;f(``*HFS7yFU>2VpQQ`q z`UadNVkNJ8z0xRsS=%Ec^p^g}CYf delta 424 zcmX@2cT0t}fpx0C&_>n`jEpRsw=r&GWZX1)KAR$=#pDUh7J?axIccdW>8biK#^j64 z>QXR{9-QF;RObp*x0#J)1`}ZuRN)%o444UesiiroMN=~5ycs7uvu|OHo&1AcezG;E zAiF|lUWtOP?qmfHDU~T1?6FfcGB|rUQgaJ35{om7r%axr**K*ZD9GBwss&W4HTfck zIOFNb1#DW9Co`loj%LVYFlWg6WytxJCS{2A$SFK(m<%#ZY)b1Ch)xtmlRt1OFixFp z$K}l|ov~u_d3J@#JGcZVf8vyze4NisI^$mtdwx<@No7Iml#Ks994V>A$xzN@L;fVL z9=4R!lEloMDT$LO^BXd<01c4Y{E+`IBcti&`+|>|)%Y117_zv5L~##iUSe)4NOLjJ W16d%6&f*M3pkK1MH@^^#VFUmuxRfmb 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 0000000000000000000000000000000000000000..5406ac80793ba5392f913e8f48373290dd11a5fc GIT binary patch literal 5921 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 literal 0 HcmV?d00001 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 ae9f21f19d884f199dd5bb996bd15e31e6319461..6046082c2c232a80f475783d337524d32c73754c 100644 GIT binary patch delta 1971 zcmb7FU1%It6waO9+5gS{G?~QgZg(~|O|nh1NsP6`B9U54X${mysWt05*`4j(A^X#v zjW)Ki78I-uN;s>&Dv0>tgJBNCO3n4@D64MT=;`b7%HvW(xrqc4qFm z=X~d!@0@e*M^AqLH2)U=;Wy$2|L%#zGX?2vRVq&ArL4S^k#Y*YOWC!h43$>$a_+2L zr_OYpx;6Wve7;tPx@Ixy>6r9v-VzAm;5YIUS%CL!Uy|eSdw2*=+K>8=(Fi?4qtr%Y z+9qsq32u58?r{g*MOmdO_JAqdXfOMi)F00=(MkRSc~!@_$B*>AOqW*aKKe=ril#wy zY>+o~m79)!{vz(32PqWYLz~*Kp`^OHOkW?rTwkw`QC{QnGe%15u-7?EK1Sonz!iy( zV3wo!A5Yhr8wLdo%5Q-JDG=>%Nh+35ZaF_ASK$rU8UJA#qiMSPIKlmSxa+z`Zo&tB zN&bibnSGS!5aBx9c7IK_VZ$SaXfm0fPA0`Uu~4dcL{Wr_cR1|vpm?TBJOG#cyZmk~ zkdyO;QlVBTmtfL6lG+|MP-p)7L*(NZ-QJbK#_prAEJcqy& zA&Mnyhxr7;V@HVI$2;y=Kg?jiC_PQzMoRR->as#m)b=xFDG@pous-44V~W$P#n{9` z8gwguxa}V&OJ-6}qjoo`rx~g9W>URK>Y}cx>@~yhK%~mNOf`vQwg!>P0h9ehcl%%5`&1h z-9;k9XCw}Ek;r^+8M<*dMIx1N+p9lu#fW2ejA!^cVD~e2{mAznc2+lcT(0ZJ$-MxZ z;W;kE!8zZ=V1Q#oPMcf$j6{(88;$8*X9yQ(O8YLg$0yoS)ko8rEfzW?QYnl~U6yEk9fV#X+B~e4{SODcrZ z3*(zNvcyZ}e&1Z;Syb1YTF Nd59iq9FCqM{{eIHW~~4K delta 1506 zcmb`HOK1~O6oz{)SR>g|x$N>Z&0Ukky< z1+8a%Ac_jQb0Y;^xM&w56&2jM5J40-f*^{z(4yzgWYQ?rm5Y$M=bZV^{l9zeJWgF) zEFKdtoQVvJCoRzx;Hi!JsI5z*4rbk^3>7rcm=T5#R@>e8A|Y1zNM2ajL-=8jlXi$Y z+PyTL>rt|Ml{WJMb~~EG=AyOqum``y z*A8n5Dl$vYTuodTECuPIt6a~7RX>PyMFyUaX%wR636n5o$^ANY!z-(8*H*YGv2EXyj zQxk=1B^4EL$<P_TZzx3BA5T zuhB~S5cXr9G?U_n2!q7n<)`roR)WZVnEfhZZ`SlvN7p-kg>O zsdhPjXA%2IPwfOD$&qaMt}QhDN3p2qPzrRPy}30*aE IAi924LlJ4X~Z8fx%9x`d>|4bO% zdEQRmdOw75ES4FL#rR2H%Ben{=gC$eQt$JDc;twv#G zH`r*EsR>CHvruf`ntol6Vy8A}i9)smLbtC>CQ8w$V!@*AGPHH_z(0Y48^L&c0NHG~ zP4>WVWdU>8bxSu~gN%F(^pDCes?mXWpfC?;+6_&w=1VOm6-CNOV!@n{1F9wYU^D6k z_mLjMJvE{}AOsj5)&z!RnQcJ=BpxAm{Z0p`(Rn|bBtvYRePs%K0(=nO)lRm8jDPIV zFZpQ525gleMxyv&WkE(Ds-YUPkcTK7V6X3t%5Jk3MFi(#FqG@a`?@|fXCgHN%124f zP*PDdDL;^!E^Eri&E9Kt6mZE^=ukz2jyw+2GLc9nzkt{1b55&C$d{lW-L&wb;nt|> z5kAy&l@Dv;1N!)YZftlN=TBJtpq8*8k3wSPWs00y)2evA?0aRM{_ZrP2w5U1@ zhds|<<1giNV!6fdvvCGmohPr^-cvsFXO!`)YL8v?`dSZY`45+5lbsqdd#Uuc^~l(x zcBCbI47~xut)}Mf07fsM8fc3eLY5UP#xPaWfWLl$AX&885+6={+~FohhR(;O-nj<4qOxc-a~ zg?-JPUy#+}lBmmlbm>WpN~*dh-3_a5+%vChUFr2FUF2m$2eQ+SDmfYt5V~AK+$Trx i1lY-AFesWgm&}UPT7hRwrWOruu7n$uvDANDHlCz#XDLn{!kqT9*2SpG;1*PD;Z8mIU_2Oms&6{t2eBaD_IQro< zzs#=|`tI}h#QyQJI)6>A=3yhy(@O)>HWe-Il6J$i!M65!;WHQ5_{bB&)xVIhggk|x zLYj;~QXC0WwKAub=Cz~l0j`RfKG(=M50i+SK%7&qzRH!j|4+lw)CB^M#I0ymkricb zSW)DxQeH5XK{=O$7r{7$4oT6V<2>H#9FnABty0m{5yPUP}+IuPYu4#h$XmX0C zrVt=nf>vFks!=w)rFn;o?aU@-`H+|=Nk6L;*OM)kGK2EFWoU5kkUT}Dn$$2x_a|IkZGH2GR54+0DbPODix2**M_FdGV!3D#u6m1FE+ zIoP#V4n5`V<)0#4-X}scf7TUYpu?lsSW^KG6&Pg-2(ALq*_}vP{=J2;Euz>pdW8O> zN%|U>3>Bk4fJ9|@+?gXj_|$oxSXeq2-N8&Ntp6mPMj)H^cj)ix?Ve}LRKSr<%eUmI z#RUyFQigowV!k2LK9Uio6|OYK4(pLF*o*|pI-{C)=e^dV8SdB>Hh8Cmm-HGVEz)P$ z=L3vkB!q8`rjfMFZzH!icp8SyP!e{#C(|zxX9X6Ex_NU+v-MZZ6iS*g>)J3EyB@Us zCCyaJ6Y%Xd{jDftQa(n?+g9) I@nnJg28HoHmMs%^9;Z6}p#Og|)2K|Bb8A|ez7!Am7>l38cRZnk8%&``t{ z6|C+-ne{GsEK)URg%+%TK%p1Esfv0~52BX}zRBjRR@}q#-pqTy_j|wh=HuYIlr$^d zUE6g>x^Zy(ab3MwP>m5y&64r7S|F-RThF^xcAC$UY1`$lvnj^+=t(m|O{HbDg3x_F z?~ga7MoSC+7yg>Z7yQ>y6CVk@+;Je8)Gm=?GKr61J#Q-*W1f~{ol3PxdyZ&&Ubl5K z&yNKnqfocAew3cjEjz8-!~h=q=iJL~f=bTdU!eSg9Buay6N0x*3I@L=@8+}eVf2$9 zRg#e(G)liuWoU%9Tz5SjINuX&uVF5f=ZY3?qpT1W%ze0GGNlCKA2Qe8A;(O}!y)!c@zX zz-KAJV&d4;uno4@ff1$g^ZI>XO{Oj7-S}MforDLr6=>f-krMPE zI*4u>Wg4)b%CKIc1E|*5wY35is7|AclMqHTn`8_F%CtytkdbNpZD>zNRYp-L>xJL| zD9O?lM|uU$7{m_n-e8NYfXL5ijQYh8cp|(_gC%LrnubAOBN`Sn8js`2f|(_jMRGV( z#Q7;>vY0coI3BNZ{cnu7QBZslm{|O_)ZfJ(fC&T^1%b*yV`U=e!YAL+~7z0f5RqZQ3uEG9 Q-lB1MY;3i3vvVB%0X?N+P5=M^ delta 603 zcmZuuOKTHR6wb}eB$;ViQ`$z`ro$ayB)8VuLZL3ig$og(AavoP4{n z)I~sXK+3spUFg0-=O3sQH~xXP3K~%S4YuN)+Jr9LT+ZuzoO`}a{TMekjhFjFTgFr5 ziGe;yE=n*1eO_$%5^*^(w6*((=-~(Qk&xH;Tyw~5xUKDLodmbF7EY%Q2Cp$zdLSB% z(L5{Hd{&?n6X=*1?6B}eHf0`+VDkSXIovaEkYBiDjNr|5=GIRbh4%UiWP>=(%a;5H zS2f6i24izz&#A5%q(pTMxL5Wh%C3fSERJujY#fd{l$qaMN~b`-Z=y1m!%B}8hc@1~ zn7IRE@DA*|8jh#$5e=K^JNiWui**PFKf|c&sDheXRC6(9;42>X4$s=9N}c;^S2_=Z z@`r-cdWrffF7Z`yRYo70hr_PFBs&H$eAPRwUq2;rNqKZ(ttd#4tgpC!V@*i68l|bC@K#T9 ze4i;>L82&pUam-vSNdm&j+5zJ__+UwkT>C@fwp$JsbFqHJzikecvVDTPaW5d8qYj% N)ScZ%*gCsF{sPB|!KwfN 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 0abb2af4a585267fd292f75e6b172b1a659431f1..065e802f21a43aa854ebf66f1a332534fe030d8c 100644 GIT binary patch delta 1440 zcmaJ>O=uHA6wV|~n{3>qDQ&8zKbyADnzqqm1+fT91(AxhAogITY?Fzz)BKT5ph2X1 z5Ea%#nbo7gEeR44K_@jAbmG>0 zF&tM?N=`|q#uJK~)0w{Ss(xATB2H3mV(PbH#+4jSRsgl;ZRPs@QL77zRpoGY3(;i} z*`RO~{bE;zaNs8ik{|gA5+K#rbfXn`!3M-|?*?fmFG$Of3n1SB;?{&{LRM8JuHbBC zLk=*_HiUqk`q=wjJ;PK)HXA2#0fV^dse)))E?Ohd#4S#Yp#?ON9rrZaX&Y$wvhTGn z7c@j$p#+=pw7O}tS&Y4_mBjUmp4T8Rp%r$^GlHD#v*#2V;S$qtfqsUQ40|@{aJk$< zM?8_1H&O#i2#Ql6#Yei!9BHWppK7f&RbDr0 zpd{A{1mi}~?ko+IWBqgHSOqu$uSgSd@V9JH97eNHt*3!L1P0tXpVjK zG4us8`wnQ;Ssc%26`igFBu~2OstM&GoPG^ODz({Ralh9%9(%y%OF$Wi?S(;m&N}@A zEzfvRMj4Jk%%)YPQ;7mwL*3I=cq)_CHD^N3;VGRL7VSXVv>xQ6D19R}(R4D2Qej}t5=j&G-or3_T$KXfR b+$lMUIYou*jq=1zm4x7?gM4vu_j&Xenxx=? delta 799 zcmaiy&1(~35XSR%v-xiGWzwek=*C7&wkC=+pvK}w5D|)pdJrwTNjFT^+N8+_8qtt~ zMTPZHXGKIP2!i0Hl%O{+LJtaxhf+aoEao7d`~z&jcQ+)87cVc&%rnpYhIzL#FDKas z`;Z@9W$z9IPGiI$@PK(%1*>A55tn2YRi&HW_+%o)*ldv&AusSX6D7x*yUZP9FTh>q zK8{$wT-eX^`Dv6}4+ZbGYS>MOb}icYt4ED8OHmj%MKg)i>}axNi;QaL_UA zfHs7Hf$%g$rg6;2;hNWCVW{+LH7nq;QWA4AR~F<#F{P8mVXwctnb*ZUo*W90Qam!&AO9 z(YG|On2T9Su9ZYpdZ&e!IkA%K#rWJ;vMHuHQ5FjGs({1(DPqJmd#JhS?+{{W7Dw95 k!Oyf$+NMuMu`USLMXkF+|DmK6?o}X4za*_UYoSZzH{f#wY5)KL 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 7898bb8a64a8ddd82aa177ca1e0aad724d360801..7b6f65be1a1be0df59b1c7108e14bf3e302517d8 100644 GIT binary patch literal 13652 zcmdU0&5s;M6<_bi?9SNU4?Er%)|-qSlB_qoGchD!OoD(ALNK;M6mcO*yJxy)yL)@O zhyJj45ugA1x>29GVf<=*@k{X+ z;x%6P^;>}#`CS(C2~c!R%Q1ZB#xKNtp2$PX30lec*?@IJ%X72g=8Rc0XJ3fd%sQV5 zt!!vgb8D41KE;g)F8a7%}}E+aXbkgcAzkS7Rw1fQ{7gY78Bm3BApg%8d1u;zXEyB~iK z;_o8q3Um3E&~Ob_vfM5BhCfQ4$a$^?~|z6XQAmC7h}F&K_$GK&l#Jw>tU=% z=0oOYZnW#>J#Y;anFbKM`}9~t&ph>Lfdz|)kzWAP=5Q0OZL{5tCOK%Mc~f^H_V{(r zWfuj!XvPy_MuI>2FonE1!{^fZBoddEh6Hht{Hk=flw2=ZdW|24oSOq+l4j;7iID)8 zxMu}V)OY&Mm0$qFBfKyqVE#=OlYO2BmnRcY{j}{3LI5iONFy!Vl|V|CgC(M+xFzzW$WCg0Y#SPH(jp@(`9`can*8MFa(Q~cK&>|P;I z0vYaB)9W>*TU$l?7SYT9uF+KyGla=w!j*Ml-m-1y%j6X6%e>s2+xbS7o#)8T(#Uhf zZohra&zR4XF<;D$X}*xjcuL5K>;XT8%y%pVl>&q_LlKk#NJ26jt&W_+NQs^a>3%}4 zRyIaXwamqJuJ#uXR+}GlV_n4%>Gyf)w}b3f0HR8i8sa7heK_cr%6RYPE&WOG=M3cK*#$S#t~HxFjUk9qsO^#+_k?CQK`xngBfP&Z9!DrF;Ya!$Xi;DkKW(<3L;q-6?@ z;HQIVF!20P3;Mbrem3$#WdA*a&TpkKY*gqRPB_4fN#;s}O&Ro_v_vv%zwj!b|CfH?+{}YKYk|h|RZ^ z!Q~9}wHSK|qLmY#9X{dOMUkqXFju9bQ2ayWAps@1z;rz~RQFWsrl?NI1ACx>set_E2=nD zJ;9NlFs8AB7e>z}qce&c)c4#il|z9B8gnak10SPg`>F6S$9gT58fjX>l;KZ`6Uua4Cby< z*veqBYZ#O59PS$CrBt-xow=;hShC6trJBjd_^Pc2X*kF=j5^hR_yCa>{BT(?uph%u zrtx|yz{mgx1eb)O{SkHeTsl1I{P@A00I1xpM^i{08GkM5VN1we5?jBnHD!`Tq6wiabuHsm$SPMUd9B*@mIC)C-uF_v7}T$FgC9 z(?1Hs6*DQd-7Ze&VXL>qoJE{2me;uyANxCURQ#(X$Vdn#?xQ1krNT|Ah?O+CwDrlN z*{Y>2VwlWU!}t*~EG;|^hKYg1aP_G7lJ!>XcMBI*Yw)lnrTx@lS$>5`vn)RY24|^7 zY~$^7xJ>g|vNyEPD{XxCS%z~IH`@$m_qpvak7fI0C-^80%A|r4_9c~VM?$vw`6fLs z9UWPxQG2&LBC{GS@j{Kb`R8ECjBpnvFc^U0%BJyq(NBbf9rFMVIS z^)D~|pp~Cm*qyQLQcMY_VHZuy5wJ(k49kXeDmuM3H*-JOJtRBoJ*A(Q-Q1O`dS{BQ))BxDGBa`InYq4!Q#ZWK@Uf*Tu6r2{Y9($|Rxb_6%Xs@ZBal7W$n zG^rKmEz>Y#OL;?9?!C$UknJeE6AlN(+gkBK@|vPSKFRH=){O{CtkP?e*-ry zgyEBeU7QdPb~gz##q(u43Yex@R_qDG*Lpu$_Tpb*(Vo6aBYz-^FDeZ|0KIa2#6C;cnmIH%%Yv{uT>kzEH9p zol)EWK@8{1#|5bUZxPjaSex8vDyF4o)wK41(U5L|x$0Ck$|S^Rpjb+3x5&DRFBS5F zFCQklgMDc)lC?(jcij1>7jC%p1-=isx2BP0R#LQWG-=7qI zjG=c9(YuCeI|Qchg3IDVge6QAVM?REAw~^>sr@o*{e$S_=qU3PdgzITo<^CmMV-Sp4H5MyYqmCAZlhf7fi;^QH`*Bc6LJvdXN`kBX`}yHGOc&{W^h1!? zghKm~n6?6mr^>Swuy{WWKN>7vIK;FSSZrhHonvvatmzOmuE9n393tp`G}5Sdicv?4 z#-~P*B*}@A{WxeOp(PrtMA2rb?J$%@2yuq+;OY5F_^_Up8b(?j?RklIFEwxC15~Sc=u2@fhr~==Cw~# zDQ%EHvoBod^`wFswQ{&YxhM-ly+6RsamfZHAnrD98_8|tJGeVZyWrz%p z$$+HL`#L}2Gf@=hu$#<@uTJuYsiS}{xt-xlI5LH;Lev}wdFzb9I?)#9o2Tb-g&K3a9vzV23?K@7o0m65;oG@lr^e{)Rx@?iaF`D}lc=bP z;|pFC7H63ev&4M0)Ki+mew`paFXzo=NJpP5c9aJ5MbaUFp-h;_fljDnc64_uLM1UQ zZs2|r-vRK`KI?kEp&5*hfxw2U%CGYpf}@A}K3K#uG}JZstR2*T^LafAJuPqIlNLaA z(m=-1GT_0mq5(B6%tzG`O}HRhU|lyL_vcN6fJKIFMf{(#?Uhf1#a2~l^dC55LiqaHP{L)9Fwt0$&i?V6~s>%#Fe-e6^6LQro<10-Jh z>_mJ^lH`FspvUW4ZVwnp6T>M=6+zS~(OG>0ujA=58tI#m?HHKpcbI_?-h~Jz!vWeJ zKhp)(w#KkjI2t|?K%G3j(0Q3JCEvIJtWHm+wLLz?+?(`m37?bc1n~4mDNu2?{?|XryCZIN^c19-dN@th10 zg7mIZV@6#s%vevkib1Ce^CRE-Atm@T<++lc3En^o>3R_*h?pPmdX582!=_k9W}isf zUxgjM8b6D0K$$H93uX=II|z#4Q&}b{G#}5Jg%6KgZr6zn!ps(pY8aI4lDt4`aMWr2 E4_Fyv(EtDd delta 1723 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 delta 786 zcma))&ubGw6vs2!Y&V-tAu(;VG>IE3ZL%5_A=-jB4?CH@8`9AZ)=`F%hlb6$z(}7BY$;RM z_=0BnFxTgm_D%-N{;#0{_MTEeM10F-&%t7HhM!P~Z;T-!XQS^qqs{#Qwv$PC9m~P1 zBbQZ+H+hn?WYTsEGt&;jXdSz?{TPy|<(M~8$5b~gro-*j1r*`1Gk!Orf7Y 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 0c572757e92b94ed83f34290cd5bf41c4903540f..3dac08120b99b826a51548776993672397a3b961 100644 GIT binary patch delta 1659 zcmb7EO^6&t6rP@)*`A(XgS(@f`PmwYx;sfW3cxo98+Jos}k3MPs!A`%e6S6$uN*_cEen3<~gUVZO- z^}biXA2|P5{#5?$eT}pEGu8T2roQg$_R>H%@bRk2Y<*f*lB8Z zDjs#aXc+-c5h27r(weUnIZ;n=qS0C(4@}1lP1ji+nnB1JUp&oU=L;lHrjwYNTVhtt z5Ze=hbpI_`*vDF9pG>g;IdUQPcf}Xdc=na{xbi2vpmytjkOtX~dZbRK-{6t~7}!>& z`|PizMLr|#7YYz^9YQo(G=_Q*m;)30lRT!NL|Is!#_O9%R!zxdAkQMQDzFkj0#t(S zlm}p}T%J=JPyx!3Iu(m%bqD4F33ITL60+un`Ngod;+G-8O?MS(*L(rbD4{z(P)7jfz6W{4yB%qpPinLZpdnM}Wgngox4=>PM zoRnt05vK)jbTGblj>&^CB@e@Q@dS^^ek%~?8!4;8cqZ zwr)DyIt5`=1w%OUFsFG5N=snDC%vI*m?7Vc176d82bP*QTDIMOG{l^|FL=nS<5W!^ z6p0_|{yGl%zsqgKvWS^Ff~l0$95A*dV{~6SOu{$-W7MO z%e^N~Ur>{gr~vG{GS_@98HprMJQeq(Qz7yjG7uH6!e%wul)iHz!W-caW6k%#V z7tKo??8C~Q0XzmOG~EWtPiTTRIvwQsu7QI9_fclTmdEl zL&XNWlvnS!F2fdhoR=bsUx8-I=j+Nd=x6X#)$Lhv%dKC;w$R6ck?h$MRa+IRqO*Or zrOdD^)i%7nq6beNM1)|ax0=HynK-*9+0fk_awsMT zA%z8r-}(m>Jt}l>9tBT&5Zhz*&>qBNz1E_$Nn01Bm*JcF-uJ%u9`o+{ugl^{eDNqV z6(=YS_ZKqL*U5PS&je|@eSie-3;K%C8`zOlbOZiK6R#%hhtF4To8A7vrr2f_cg&_{ z>t+v|ZCH`;>CFx4L68a|n8bF{RYKa2>5vdyBzn&#C0s6J*q2qzywccRcZ*DPDyM+5 zP>tV0KS7bn>JOG>dxHkcIAL6LpStr|{>GMAgym{1U*lcbiP3JKX_jue;GQfHXS-b{ z)m=^y;X(oohd#e@aKf*a@a_nFk=aB5wg+$HMBZdM_JQT^MPQs*MiJOb+!ZdOP>6Gs zpBO5yIH1k}A+F~8u>cmGtqwTu=$5_O?wFcg_Y+y+NjFV%t)=%gn_4{VS@=!bv)4?$ zb!8^K$bKIaI%i3Mfy|xdGR~R6>p$(r&ACES;VzA9zQ|x`8K*FF{J#hoCl>`D?|ThnMH>;0~X0B(q`I!#;J5u78cSsMS2W zgPiIrPP9dBP4BoGE7V;l-Gb$XG(1n`kN_yTqQ79XO&41)ze 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 0000000000000000000000000000000000000000..0a9886c1b2c3b8ab669dd707be9bfcc2ba8d7109 GIT binary patch literal 6846 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 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 d6762a60dcfe3178cc172fe2f57b7ebaa19936bc..2086f3cff0980690a42cae509af16514090fd548 100644 GIT binary patch delta 1225 zcmaJ>O=uHA6wcnOwQXullWsiNc8e{A3e}4ULajwXC@3@~O*Ru}*Y0k~CeSDa ze-KpmBD0>ndy`V*ML`h7KRk#OJgGfYK|QDk@g(Y-WH+1k&>V(&Z@&57_r5oqjr}(! z0v7|f{v~b(t{vz-D(BCZ^Xh0RFQIHs(#sku8x{`ETbMQdvuL?u5zE{H^Q=AQ7{*(F z&AeflJLI-6;~k$Mk9?D?iVQqP7t-M$jM2?#V>to4`jr2vZwI)r72Xi!>PgRd$*a)& z?h#QeokKNI6b=cpR^bFeAP?Aq)2zuCQAyV1imYq7McJUThc8(x)({Th4!fV8ZJ3-~ zL24V&9Nb1v9e@hNk--Nf<9=X>2};~>|0C<&v-mgXIN08u%kqjv`Oan0c7NG zB*FBNNO*Us(P!MGK_;N=Z8C_R_gp#308K9N{d^UVC@Gt{T0mqinu>mLf%r2;v4Fyx zP<(?%GiOn-EON(K;oq%gF4B;QGD{SkEV{2Q+HCM5%>2oHPz)7V9$!bAK(=+hY zd&DU^7Qk_{6^#%r%K0zY3@vk`z_3h{VAL+xT${DwZ>QrgttQ#nh;6ZwvlDbO_yZuQ zyY^&yUfMQuFpFonAN%YBl8kkg;C%%pT~!f0CimH!$xKFAD(ez53{(^fH9@PYOSPgd z37L%J&W@O-U!Y_alo%w>CkOBx&eG=YLI$L)QYp5yen-;r*p%=b&ds1+P%5=0WGOFb z7%Cz|vSYFqTO@=0B>ayo@Ch&Tr+&U`)3@&(;FNV(43pLJDxzouzG8(QTsLqAK4@jV Jex*0d{0G(ZlX3t6 delta 787 zcmah{OKTHR6wd9;*t{4s?HII8!UU`)V^dL7(yd^9LBMqlGEHv087E22#6=d>x)4+b zF`O&75riV{#CA5ilZqljapTfg6%>C%EqJEsj1dGkm-G0}_kHJZZy)(wkQSwT?~^_0 zCQ;!jQF}{DKUjV{M2P6Fk#~eVhX+EI6yb$XRG4AaX!RmJ=m$W={bPPI6$GaccLH(l zG4ZAFe}>6mFbI5xshUxt7b>lGleTTnGG_@q3V+x&sq3{%w5#h{POmpRdR{9OG>Asi z8guj4`2x=|$vN;((EV5n&P0pkC-lTIcqk`kf3R`(?aCZWIzw8H-{Adutg#dmSh~bA zCG19=Fm22;!>-#LcpxHe>2o$*=13r*nE{4PUqjglG}3wP>mq3IES8NANTsf+=-tf0(^;|7Wa}+$mdbl*tnU+0^-Vu3!$-3a5c6^E?ITEGmG-&ty8SaGt)Wt zE3g^UgTC&YjRd7Xmd)t_wKTdmk9ul@he$dz{SDUT^6u=?xy@6-I{u5*fIroYXADIm4|vv(ufY+-!JhxJvEHb`IYaOL2BoX~(Er++Y)B z?xO|r=*smd0c#O@-6nEvudMNsghhzeT4n<*tfHqMUSB+YKXfPx+r zBP$waz4#C4O*F?=&|aiR(c(cpw0P7*6|@H{zR6~j6veshyf@$b-uJ$l{W`UN*muMC z@cnSpcPBD*Ld#yRX7$NpHm_!ykK)@io@dJugt*olw2IIZ`j}U^1JkV)ev9u$bcJsK z!U()Z$V-n2AL*HpFm_bdN~R#gx`<8-cLHxX@l1xA!`Z7Ec zBx9Y9^g%=xfAk>uJDkgCgD!E zVscvOUyiJAF19noPdB!voLaghCXV;lIk%p|TV15DjdaKCL_IIBGNA{tdo2kNY=Yog zj*P>{W%fC9BFL#E(TP$frEJ$?s(VcX7`T_j2QkB3G*AylNO~LC)3XQcbVa z3+245D6R?r#W>c0kQX4tps&L51ipkbH9STZAp<&|G98^89ck;i7(FGwgG0+-&JnX- zQEjry!azYa@|~D2MoWG?I%``}p?P1TGqEJ%z?($tZfpy20@rHnSmy^mLmgS83(`)J RZ5sww;Flz8t)`Sge*ljXY_0$R delta 693 zcmah{&ubGw6wYL`*(6O@0(x6Ou^u}urRB30CQ zsI@qk^2R^FgLtlc^X5rV@KQYK!RD$t^dO!@XE#k!y?7bs{rcYbeZ0<@ZdGlo&pSuA z)u+V3uW@7hrQZAOe2fti^LNQ7LSEr}%_Qfrt8MvnF;6+1AjH3$ct?nW7gAs5j$2ma zwzFium3cUdiZP-f=m6fTK0Iep#FFzI!L$Q(?90{K}e%*tw#C!Ccvu-&FBPz-jdA*mh%gDaBZ5P^;0i?LHv zEJ-4f!H#U1cG~#2g5e14)w60}1R>u=TJj z1~)@F5<8z6SQqvMLe$ri>P6f;azgzUkj81fsN`T5s~L(Lx{kNf1-w2!L+?pouB|RI zZ+*=X?0yg?>W;f~5aXNimd@jK$FrNu!iHi^aHEcU@d><~Es&V>Y0`g`{Y9cX#D6%^ kQBFRS5NuOEE>E`X6(<04<$9KH#Hj1CH}X=akT6%pNo zpppmO#XmuO(kTUDPwK!aIG+Z-s1uojicBBGCk5};WJ?Dw50~8UzWeU`ec$Egk!StP zRp!p)mfOtrfy5~}KdI-{tdtkQM6L)XbpUJ_Ja0qRqQ}9UX(QXJL-`&(2~m{4`jT3u zsJmz>DERva(A(f3s{#WaBf|pS6C>~J)-ZyZ84q0esnSPuBk7R zk)}W;li^SBa>)$yJdY$ceU7!_MIgx~*_5?XZdx{o=EL*$WxE$Lu)%32u?v%vO`v*! zR?jYaG|6_by~G9+=qh@}wxOr&AoUx~Gi_*-iK2%=y7?DO!Jp*AYdck_>e3!2#S1%0`oPobvfx_Uuw@e+6j*z$67_L zTr#s^?^9F$$;CSfes$+oitOKOZ*Ls_*hX)=tLze)bOUO|VkNv-E-0M@gI!H{_+2Bz z=vMRqeW{+s@sYz6b7Td(6W#Gqkrue_M%O=bj_81hg`o{x$axCPdt4Y@;12Gu*%rpx zKZorw;7J3W;r2=RE(JwRRdMj%iKmt7b<+Itj<)5n#c=++r^%k+7-qk z7O^S=ePFs;l>7J->sTZ@oH*OPdSY zeqvDdUhFRw`9nZ4pzE5BE;Ke(mm60Chu+|#vW5r4VoP}yko^Y!krlFV!+-+*rTZjwnS+a!%{iUt~} z2SH^$lsBF|c=7CBym}DCAK)J#3g#eQ3VIVQ`ZhL84uW2W_vU@y_rCXLo-f>=6Su{O zzs7gOyJQrug~x}b70whlvP5sSIKcIx3Ft(mop;|!#Ct{F5b_M3NGXzs*HT_*R;@zI zYxH8fmlIXqg!!n}vdMIO%0>^A1ll(VhJ}WD>q9XUP|sSIsM**%a$;7Fpa48)<%r z|Doa?n`Qz_EVASxRuxyK^(M2Ns>6W?`eLs!Xa4%)u7EBE6!v`m*pEOzkug4P13H|9 ztpjS9b)l)6u&T+TfS8Z)RXYO3s7VBP5WPr_!h)6^d&{Qm6bXe`g00}-A++)Vc83oZ zbnJ!m8cU2CrH#!-E7x<8W=7Nd)Fk9%=ZzYITxp|dx7tn0?Yf`JW$Kjnb9fY6SKXm9 zZCTYCw?NfTlL)S4+FRB42zl%+k9LJ)9i-W9JRDbPSas@?9eiusFWhrj3ZLC>dvs!% F{01LS`St(+ 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 6efb095878af65a30dc4c600ed440a56ea4cc75b..8c00cc796f7671c41186ef4170df76d33a2c1c90 100644 GIT binary patch delta 2037 zcmb7FO>7%Q6!xs`_}@%*PLXaMb&}_l-T%8{SLN%h7{Wt(rkfDKCV^v%y?Wm(Q2jIk8i& z)MPVHYb&N&tI8GOwHkUf7Avu`T2;|{rlK1BhCf*t>9v_>RFmmV-kf=%d9k@q@iu1r zQu2o*=~%F-_?BQh(D0b7uJgt47{4#PKnnc3=slS^;&LfzZ5AG9mzAV4@M689o4~8lg+N<3Eyu4#Gwyxbz3?oMb*E|<1ahxx7f`i%r)nWk?Kz9X5hsUOU+?+T zu_^K<;>X(>VU(qjc9Oq6lpzbiY|#UP;L8L2uUHT!uSXP2cGW2gV%VZYEm6=1MQNKo z{t3*J*2XZ7e>Hf3c=^E4aq!VcAhLEh@p;rB5o1mMgMZWrndo z2tP3k+HQxtGJsv}?MKQ&_?PHiIJ{cU5#R6%XZ|Zp$?r%p+Q*|PFK2SX$RO3qCU z9G6vt8FqGi+5I%;kVf9tIxqdV*7rYlzR1LBA@n{{rY1@b2NqRigX*<91B+ax^Yk36 zn`)6^A9mJ-TA>U6e}Mb?6X>AW1v@O=nh%Sboy{8sVGlv=cJt)v9kH;p?9jW*;G}4N ztaGC5g8U~Wer0&lK2ng4-TkoDeI)saa0;})n?+pBc(7~E-iH(5>4Je!GKyPlydLrJ zRD6W5CQgyp_?L-e(ncSHaR|9Azz1K!AxJB~U^ISsd@6oWdRJ&RaGZA;DB~q8tH77uGDKVCk89g delta 1146 zcma)*OHUI~6vw&K4z#5$6zK!n(kb=P4y7o%uwnqw1rgJzaU~KQ=+xV>FP(vii3u!B zFqvS;8CNchE?g0jbZune&PO1A03(ST6Hz|^#CvZG7NQB8xw-c||G#r)`QqDtewKf7 zDzwPYJKPtt(yhBvK9P|o<;AD%aNgow`N$z;F0Y|42)%^YrZ74UE7tk)sJWM~eLx7# z*uHrmi-IU-Zp$;GC`83{QpB&Rl>)#SVZMr_V_U_>#m_xz_$*txmmqZ~tZbuer{%Owz8 zamO#k$sPNZ7&)dUut(>FsPWLKWUM^n05;)Z3U{Q4gH^Z4`4X1YtXf-{XSyKa@Nz>e zuXk`?-f&FVm<6gj06!fz6oXIpI2?Cbc@rsr1o~YObAoz{U8BJ zi-8-)jHuELk){(IW{sw*0Mh>kK%Z*?DCfw-4oux8?jIOzH$}MnEVHMIU^jC=LqNuv zwAUa`?}9KB5H~3Z3k5+g0<5)$!g_sW_J)o`V+waE9n>1cTexF{vTLUy(Clk~->x2H zf^f@KZkcv)vU#cEIYvCmbd@%Ei zTGRYHrZibqx=PE{Zi`26VN>5*=Q^=Vm?vN=P7>0lC> zVVw_@KLocBCv)ZZp$*f~0TQS5k&mid3sPRD(JJ|06>4~-;xPGjmA>-l$PM%d#`av< 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 0000000000000000000000000000000000000000..c5e566dfdc44bac604bc498d95f26144ca8d87da GIT binary patch literal 6819 zcmdT}&5I;S74PZps_Lr#n(moxR%d#)THW31ak^>;2a#qGaoq(Owpo|Oi#z6IWkywG zbyjAY5jj&0D(hi!8{)Ppco9UrilF`l%7QMaAYRpj3Vxw`5D~oidlC6n)t~FlhVIFT zc=6(W{N9TfZ{DbVpN~q|Yi#>e^>K zdl=i}?!b1~>(&6DEG2SKFTTbmB*rw+Tt@U}YNV@2He``0-%w4f5S}lndM5LMTJ*hu zr3XphRxMk~*y|?}x{_`So-0U?hU42pU=rW807B@mB{zx6LEm-`V>Y0bL^Y&6q@|Rv z^Ba7H-{cE?Td^Jw$E+78LBQhP<1jw#IpH|6g=G&#^%H`Mo*j9;Ap@l?nOj-yy2dD? zTeXhSyBiDWdh7mt(&uxk<^?XBR19it&7Xp9dN#Q?6y0l$R{LekD275yPK+K&Y{xY%$-?3kg1*UkMh0JPzU@L+yMm^0XpY| z{2i>U(TXKJSXn0V6lk72X_gLYu&a?nn^*K^LN&Q4M>4OerF^Ra*;ZvD0~Cb3Z@g)Q zw5N>OQOgi%F9PI8peVLGFt7SW}yJ)~>B8DTVKr zs!o-*eR!U2m&mrpuuF8zNt^O7@Yl(JUn~vC9~81}YT1ww;2X(e-$SfaoWDpy8pr4O zDrnE7(;g-qTC+M=*lj5@DE0j6*?OugL26flLJEBu3QdrqrqEU;$~Auk!uT?T(Mc1r zlKb;ES8D7duVirrpbrw?H$L3VgRKG% z)v{#hSg^YkDgRDoV-+u7Pm#=t&M>-ul2K<@2ht0C+xQ>Keu_-4F>1o!2?JTZ$f`F{ zlN^tWC*oDdUw@6Ww!VWXMC>-n-OV$_>5HYue{{CTt9~SB{{UCT|4rD>!?fSeOxr|M zd(3yOnb4|S@p`>t)N(1?IvYlHD|3|^|*7-b*NT_%t7PzSGtO=ed6@-s`vWa<6HGCwZ z*!E9d-cnDTYMiumNOG=2I%-j$t>&X6s&|j}Ol>e#PY{p=vAHpd@XvY3Q*~&9nl)AT z{+EXmDhR!QYo@72ME7+h1|CYT!Mgqiysz z8tMmKW!wlt)4VuVE7>RYCXNt$>p_^+?joC_p!lQ)DD_%0OP7+VP1kfx_9$oXnJ$uk z;1G0+)#`iJ&RZhHn!LSW@Xzm<=E~XSMbTK|cWCbwwdN!-wV`ivUvZBTBU9skZ4T?A!~vN8k-|hebTsLO*HXO;TQ0 zYjz?-tDI8v9zeC~BEeV%@L*UyfdZSwf$bB+bv*;?27=sQPDO$xZfK!>1*)sKAVa~d z>Q0RkM_P|ObfGjv*Dco*cHbvOGASE*K=3muz{NkmoKCL42PQ`Ai6^)n0MYlxxVm4y`m9=uSY*+Cj#xyRh2*G-BH$ge zQ*fv!xs;LE@AWV(&=8{rTQ`h{JzU>JsRaO~h1VL~BjJuE%C>}jTC z|4h!FdTIpOL%bV3CI|Wqgnf_8v5&)=((WUQT*=e>OKKaK99u3@tx&?98;=4#yMQf#XfQ!OGf%*nOBp zNVwF+*RA<14;%wMq2mPuU?5Kno0KX<(x0L8#spqJv`sWptNkzqX2yNyB7~110%xd@ zj!`0k>d<1iB76(2S@b8V;r^D|$o|U!VD$$ktsScc7CfSsy;?Hq1n~Pe09MUp% zmj=!TgaWiAvMS!>c;-=OUu{m!QqMt8gWI4OP=QJPe~>q5(tMBpgX?PaZ~PIeNz-&` z5s_Xv7JLWIb-j+O=z0EPqE@Tk)9hAJPim+WV$2K$X-;S4uFe=bgaN!g?uUK>2u*r@ zX0o7ePH}AJr|M0cQ~Z%{V@V1AiCJFR%A9H;g*ahC2_jX?PU!ovG;E4%r13&F|2FLK yX8J0^0Sz<+7R)NB|4b3QS!9x_>E&Wt`*7I{96xahGeg?daw*wmdBMCJyZ;3cH2zlr literal 0 HcmV?d00001 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 35b03e61872b12fe03e7a3ac6a14754116dfcf93..2fa6f04d28eb53715cb9575ba41c7672532a6064 100644 GIT binary patch delta 1215 zcmaJ=O=uHA6wV~ONp_n}S~O|Wr0s4|+D2Qcco4PdK@cex#6vGFA=ykiJ2pwlCSs@s zdk_@%Qf9q~7jGg+(cs04Q1I_&DfZ+~u@zLL^&p-sIFsx)n+n~-?wdE?``-7yncX@1 zp3ap zp^lER7dhka53*pm{<=h?+7)izvk$zl6<+V1Lg|?t%uYkyL_K3}vgrRn9tomwO4bTx zQI=)0AoNZMMkot&T0tvo#X@RE)5|6?2N%qFa{%$ki+oci5{!d;Fe$AJ^A4cVpG@Yi z!fG-pH|WU=q4SVvvho31&y``R1@E`&hja!%kPzfm0hs$@_Ed2g8w zB{V^vOUa=v)Qy(uG=2*CK_P-6sxxU_*K!&xIrVtxjATKK@HhlqE}MR|f{tK`CRjP6 zYEU$Xb5K~b*K9A0PC8S9Ly>wAB|k-h$9)cRroH`XQy}hToA3BUfOYM*x)RVPOW&F( z^p!zaEx$okeYRI*yln{Z??s97rUmTA!vW62bI>M)2jc17x2y^wr-3r8pMdwpL z476!ut@*y&YvVMl1tQrFM0=fe_9<@fBEt+x<^qEpZk5K3*as9tah#)@l??8oAG`EF zQ=_z9j9l|2c|5m=Yu8JOa$RSe)TmI?%Q`=^v)#6nHB~JjbJR~A#VKdvBTX>#SXsv# z%R-U*{t_jShh@n#sUt`4l}|0^^RVFj8;rQ3$g`!Q3UwW3#Qw>X0gHBfXzA%1FLn>g239tku>OwZ93-T+vY50m6T&~VS6TfCle-`ShwI*Z1 zf)5>@GL1- zFJZa!L>eSpZ+Sv^f1A7~MpdI-zo!7L=HM6N{YF4Y(T`i{;3MyWS&n(6$h&ly7 zcbm3o76kA3KcFc*5G#`J*b%kTH%LNvV+~|)OwH0ebg;{MkOB^r6-ckJY1E6Db^{Ej z>QJO30io|;AS-(uv$Kz(7w}6zM*K=n-D#tW?RaJkx_CdP;k$T5;27ZZW>m$Si2~v9 zY2qS3PeP$!`Oq6kS{YV=0y;ZDh&lO$_QdSm$y(KMOYTOaW|o+0US&bo`Qs4Nv1sDNXpzXv*J}dW1aodk4GRVv7-2O%@z4S~qMnpmErDTfyL-0~z-7R?`n3 HzD#}rzgGCU 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 0000000000000000000000000000000000000000..88924a5a9ba16e49d123db923fd39caae44e495f GIT binary patch literal 9476 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 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 d4b3b2eb9652b392d22a2f7562022b7174972994..9139d174eb38dd928261d0889e7d3327987bfe23 100644 GIT binary patch delta 801 zcmaE(I$e{sfpuz+$VAqT$v2sJ*<#{zGxK65&XW+9bjeIiFG|eSOG`{nWdI2?Y&_1x z$jG$$3gZ<<#+8#-GAl9}noK^;Y{8kETAZN|A|}sgSLXvU^uUBKNaz8(=;kbzlT0LO z5n*JS{FQwR5iIOI8d)HCx+xD*r=CO_m5uIEAqQ!?0Nr(|&U@Ta7vW#(m;Waj6^ z=VTU_Oqo1IvvEr86pakl3^u455i~XNnI);YND6zDLDqz1q$=d(m!}q&D5RvO7p11^ zA=}3_#S~t3^{Mn4C#!s zrAa_DxDZa7ypKc1N(j?-n2Fe=5EeWGS-?9LY5^zEg2$5^ITSb^Laa)i{DDzYurxzE z<1~^RPJom!9-F+E)0-dSGB%*{6&W%a%pjS`+FXKZKu5AC=jZ080{w;v(;jI>MTLT* z{N&W);?xv{q)LUn(%gc|l>B4`MMap4@v4D1JwrN6ijje#c(MSyw0uT%Mhwu2SrR}I zpgSgk+yQm1L}?P(3zNgRyi~FbfeL!q^OLelDhpDlWEp|D94V>A$q4@B-CQ}74Y{p> z>8O!IW^*U^Uq;6C&F#F8nbjPD%Cqc%L~##iUSe)4NK-K|sbqm9I*T(DfvG0TZu11e G7)AiwC=QkY delta 483 zcmbQP`9_tsfpzLbp^2;=lP|DJPFx`Xq9)I0VV`*GFC)w58;n;N8TU+H%dE&~G5G?s zgRf^9HoLLhV8qaHQrIWF!`67EhTxMYC~AEl`lPhgA!xQEPHMr#R#3$@a`rlLgoXoK9v)XB^Ft z$zaZq^~;d+D^1D}>k(IY)G!&F@vT!JW}#@AT)?HkICb(qE^lV(j1`j`ITa>ba0^Z@ z;*y)p#^WZP@vnzHKPjuEvH<9r|2-Tjsl~}q&g24~9IhU=l+=>M%$zBSlkf0YGqL~; zklAd)`y>g zA*Z^~xX_rmaAmsHgpFI`BQep93nekQ&_6)pxifuC7n<0`+}?A}_nmLPIrn~^&}W?6 z&Idc~yUu&Q$gC1y&&5-NYw?7%xcjKRK4N?IwuKOT=?gg^rz1!g=s-a=RJZTz&0C=dPFg& zq}MC)ej$_1E17gWX;i#syV>SdX-!EhGzy1oWVofaUrs7oep$&&sUj46cZyrZ9@(jj z^_^gc<$XojwS-AVZ^%oz6eOG4Al@`iMxdD;;D?CKCUa^ZE*mRySZ=&iG`TPa*Mj|H zYA>yb%13hhoEs}onU#$0NhIT%rmQJa&Z@wHZwLWzE4e`VPnHFo4Kr#x?Zv4P3WCS} zapHsz{>$VOQjWPlmW4n(5Ng)P>5MI)_9bH?CxiTHkM(DKFSP?P6_4dcI&Af}kJeaV zD#-O&89e52s-lHMXQ}|$4@Ai?>Qt*`40)9Q69F45Ww$uw<=wQiF+5YjF1yVRezwmT z89$aESuLX2ibbqx5vBY=Yusgfz8iq!Scw_xiUIfCFRY(3`HReIUj$?M4O@n}+gLf|1 zF?AHTGAAEW5#=M=VThRyosG?5Qg>xm)O;Z;71fJ$>t2<#L}d@pLRsKjX7G}F@8wH3 sT8;?WDdof899;`otj^;@)0uQUB~gfmSBy#%_cb|&w~abq+KMcaKLjeIumAu6 delta 1240 zcmcIjO=uHA6wWl8&2Im;X>DqnA2z18n>9ZbK}$7Y6+sY#deu@l&Dz;+F{qi>^!k!s_77x|n;Q3xQulC{;?7VUxhRaZ8{Fy0f33j5%sD`6z1wk1 zl~wh+zN)ISq8bfH&CA82Or-vl%se-Y#**(U$h2j{YG~#zs5O)(?+5uR6mef|#WZzi z!8B~gC2szfyXGn|0(lsnrw0*>%(GxP`f|XHOMkANBwGXg;AcMzngXE^srJu;68Sz* z&{2WfFp2W?w^D;~+#@UQZP%;mUBeU%!*ms9suUn%L0@h{%{J^{@kpm%mocO{!nFB7 zl2feGesuDeO4+>pp+%TJ$^HO3Pu8RY8Q3QZVan?uqdO2iiDSn0J0X&`(o8QBz_Z%T?fTNb3v98lPEBE@>a@%n|q|`=FRO& z(;8Ahy{iXD^|(q?GCeq^2dTtz6PWk*#l=8%SKuL(VKmZkhwdd)aC|p{+>0FrVe%q& z2|V_y3JjP;8yDtnviQ@c2ojE$thbCx>m z&w7)k4z5oe%ihpw!r;(1S(76CMCm;J$u|l%$XqNZggv6P@z?>Pj1ChlrOB7kv)QlI zfumLpIjc?GMc~~oPK=N 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 397fa7a3753a2f9b62d4c62ce52fc6ad3197f996..551e4e828bdb6e5ecc5fcf7f38a3a6188ee0f316 100644 GIT binary patch delta 1268 zcmaJ>O=}ZT6wM@=W@hr$icPIa+es1Ijhsn#p1g|Lu zI!GU6fg6g^#hCp#39I_q;8I`*_+UHSzB{8U>O9I7%Z7#ePx#3b?j3o{3;d+0>J>p0 zMY6&Voa4=SUMZ-$T2YI7WvuDqK`* zk|Z|h$rj(UPq1kFF!Tp2O1TZsxp>kcOfkR7J$5ho#70Po4<>%0B>GX!p#@MK)wNlHwAeiYZz)lRmxsH0hp1j2niO)8K2LkpQ@q*I0^;YPN^Cc zt>HWr&g^y93$q7iN(E8EUhE;MFwf#a4>{G|`M4zz575I`Y$`%;?Q?D=<6$wn*+QW& z6heF14N&#b-I1%|QHCXt!ZX1$?U#gx@hM8yaKZ;8d}wN%rU9OZ+2`zl=OWUC;QiQv zpwBMenenT;H;=UX$%V+sjJMZKbE}Ewo9G5_!t_*{(P7-KKRE8D*o%_50Eg8a?uRdz z_dn-HK+70)o-U+Vi}~_4=BE8oV7^2T!P|Jte)~3>K&P7kl^{Dn8UhC);EcEM9tzZN z+Sc{Lab19@o}v^A&??!8b`{{K7?O*crs&>3keN)U#ZtK_D~6%u#avC)t6Hg+FUn#% z?V7eDrZFsNSOyISSz`yg@e(XSz%mu!2uj&PcEyf~&*0Du6?3>!D=8L!PPbfMF=S^? zYB8Psj7>6rYEJ!l{4c}&sUPjy2<(3YSiBAo!{qg>rqB)p-UOH)+%ixaUJ7`> F`3H91qALIZ delta 714 zcmZ2xyjqvFfpzKvv5Bl5jAD}?u!&7vDhOe0JjcSw$g=q|<5fn+-IG7CD>7P4KErGw zn30&1mYR~Dst;pK=4DZrf^qcV3=g0>SD?DhPAqGg37de>h+%?WT4Hi)d|qm1dPY)y zQSp=vId8_vb2;va>S$@DWv5nZX(?!EW#*M=X)5UIDomchEw08jC4)V7O2%f*#woQ^ zG%{Fwv~ehvne4=6!T56WL3XX^=NZx&k4uv>#Cn(%G^Vspf#?N_WyoYOXUO_x$oTd$GXR}& zZ*o7MB%fJMW^qY0(6U&t*YEIZ%7UGsk?{xaGHxxnBCW}~e6oy|ATwowuE{b5nThN< zu^v5$%YY{FBRl|B2y!OtCZH~($!Gc1SwQZYyq-siSvun=kXD%NDIhrcIG5aHaY1*5 z9H3+mdwx<@No7Iml&oA3mm?*$I2p>HTql^v)x(yOT9TNVGbM5I8$l~ZmdOU3GMk-+ y{xUKy-s~vym|3kBs4c4!NEG*Q<|XE)f;1NcBQy&n(OI0K2#njT%FSL9F^m8#MewBn 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 d3a675078a7befe56d6cb83c62accccf8d7de455..eee6cb38644b1a9259bdb3237493ce6142ecb6bf 100644 GIT binary patch delta 1810 zcmaJ?-D@LN6wf4`=3}}^Olrg?Z6@iqw$pC9r7gv>P#*->)rD0Sv9hH*O>R1Ko6N+S z2~8~8-3LD^R~EUWPwRu=vTw?gKR|u+y&#DAqzhuvMPyNg1<#$2X1aDa5boS_&-~8$ z{m!{(ZZ6+m<*)Id+$?^~f3P_Gyee-Qa8&J^ajP)Nz+8Ccqz zN=_Mk*LLB-M&~lKFXL(EF{(UJ#$Jkn=Y;DSCy8o9HchpzA|seo1em+R=7{s$2fV-{ zo;&YGWH<~Kq5@W*Y5+?abPDvx5#c;A%*TCnXE$W`@z()=HmUp`$o35?XU1c%dm-t) zRFPiG3=EBX!5Jrdf+vkmjEaRJn_@P>=#y?R#>@O z)tfEZtZX5@i7caAc@0%9-MGp+T&z?Q!Jkt^Tnxat)yAg-CNk$E?>!3oBv>d^5TxjX zJOab*rw|!xA+4rrTN@n%)dOva|Kvg!Lf)*1HsBT-FgyD9ke$27Ig&d$MxaUm1vy9O zr^tX4g@jvOo5Wh(GmeBdQYK&|Jp=#gb-S(1;C~o)9^Z$e6a_K}nbq{FO_u0~+|r&+ z;*OyytD24Za41BgV6eI^WE0*+Bm!7ar`1ras%7sx4m+};!DGDDU1{pIb_3bUPb>*n zD4RsRY3bryvay9M`~TeXZhf6R|6+N%Q=$O*-eY~Y5EvcIcnChwJ8Q7`o$p=oIEjLA zO{7`$fRpH#(P#os03CR#9HwW}W&a8v`YoIeTw#X&tJCOS3;)7em^<)&=~o#( zTth6?f)b%OGDZ4BCbNzwA(WpH$(KrE%h0RHG*M05?21~u+3JGoVySdAdLHNF4kQS4 z8DLHNEnj}pBcuGr;(9U_o%pfr`O>yiIDHd4g~JWDjn$A@_4oA6ET(s}%kZ7~hA;G< u9e%)ZpZAt?KSw5a!5Md0AQIPPxOPx`6TT0a9qgM*2|g9L(|c~@3iluLl}L#I delta 1138 zcma)5O-vI(6z;IQ&~1yfg5{^(W{ZgJK=GgkO-xiI(WDWK;b0<-Z0VBOal6~FTLVNR z9weIVh0JpELV__dL=QciaPXpcPu?^hG2Zk-;>>PaSM!kG+SF!D_*p0n)*8?aUZ!kBsgdO-y_}UA~wSJRw6zPLLt%aBIvgD`P-KcV zN?tkCD4UnRtP@H@Iu^*yldae|+3yy^97T1CVSN*kNjxE3OkvpriAU(w8poMF5`(!y zn*it9kzQoO-ZVK}AfJw%2Z+sZvq@IP!|@MU%pD{PUkw6{!$Zp@jhZL&D!TkY zU9`>Ri6%vV&DjkDgf&F_3|CZZv1OBu zejIT+E2^z%x~q^M{gZ&FyGS>t2Mz$3XiN=#_ N>5s*HqnMcozX8^1V4MH| 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 8e11a29ba23c8195d144d22d4bdc33c0b12f21ec..894358a4efe2963366b628f51eabb8026a0ebc50 100644 GIT binary patch delta 1581 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 CSs8%< literal 0 HcmV?d00001 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 2d71aa99d42f3ceb306d40879dcb85f7b04b1cbb..0e288ab9f984fc4ba8d15ceb2631a017bb58c3ec 100644 GIT binary patch delta 2249 zcma)7O>7%g5YDb0+w0$^Y0Xb!d)=yvW1P5&5)mR)6$+|QMNdcwg^;f8m%M#=?X7nM zF%ojA1S05FP`yP+AoYgCtwK3*;uHySsGx`nBsfr1QEo`(O2y2sW3Q7miY4#voBiH5 zGvCac-7asQ9lkRB>BHRh;ScAIy`XDrEzOu-)vDz66-zVBI&o-t*`W##zCt!^M>u={ zHT3nj5lND_zLRcA(wE}1Kwh4i6W;_D6oXi_j2DqpCX)Ct?OtAnr>%2AGk5?zHwbs* z>4lTMAdAb&Z<+JOqNTq>ibZu%)f;w6ZJM^;Y-shUs;c76=!~ZDRE@0a4IS+(b=|`F zC*O14bqaKthPsIz+l5)tZDRO<{M;iQiF&lG6i^(Sv<&eu`lNUeU67s-KgOoUACrcL z=olM?+j@njY3O~&a}74}MzVBl8{yc(yyl{gcRNiPC%DM^3!h4;MpBzZD+ zw(m>ajORvJtn0O#LM;tTZo&o# z@j2hVJ^E$9(TN~Ub9~6g`X#Pf&#+gDlCdY)C{l%B}&KW zeL7A9uu?@JHPWF&JZur7)vczl%zS3iAU0jR^cHE^WTSg@E|t`-nbg+EjuE9+r>766 z@YF8ejyobALEI(XrF?N0#Q_X%Oa(|WZjwe#Z>+6sw8*MI&)1Ic%jWg7!ozhq%Pp<$ z+rsXlvN+PxJT)LsVbbZB?{6qy=5&DvU5{Kg+YS$#?J1PiA@mgNpMd}5va?Q~Vt;wn z`V*>^i}4TyS!-4uJ}*9!<~t5oT!W$M4Tt>;P#y+@-8PBCgDxSDfq`t8b-k+F&ZhhR zZLQUSN5yO}8qL}|4&rSdft5QPAe!#5_ULV`wMJ}*Ck9f&;5zINjLsV~k3&!W4oe(J zTrR1;jM0p(MKc#^_9FECT`=^H=IB11I2J#iD=CL6_%$bhz^vY3jEmkaCx zY(1p3DOp@kW;;D?*${Xd5H^E`!wbto80t0)!;MAoq98%ccQoA64u}`>)WdT-=bzpv z>#vZ^{?h{bu-Y^X(y+x(Qc>Irg`;c%y^pbZOzXtXP(_M8GXc5p_-DdxTy%Z_EKGyj z10{O~SbHTK%jZ?I)vOZBA~m(rRvYVv*@nhc^Lg)pr1^mu?=*n>C7`t`8qMK{GY@Tl za#`GnBrucX-Ar}@aX)5xcRbCe&gWaGX}DQoZnrZFmysH=syl1(d5VeTk*6hDd>k3y vsvP-GlE0F-w4-+e6ITJvI_R4#4Gj(ooEQr}-V9%CS~L&g!22zhUXuO?mG

4 zAXr$a<&6iygE{C)yyPM(-W2rUO-~-AAQZfK@EYi>X;$f_mznowzWLto&CJgE5A|q2 z`uI(LFZvLi*i4efT8zqmZj#i(pviR?xNdkZ;zUk%I2#@egNZ|J+t?!4U8CdJgwfI^1efLSDcUgi(1d|%wE^9aaCJd(qNFNf)kHbzg6$EyG*B1f91pzHNZ+kNFdldU4*`pz7|JQ zQ?y`7e7d;W4aj+beXid0>trByDF{b|y1sNtF}0~Que9Rq}1q9SNvm3-+~ zm3md%??cc6hEXDpBzUPTCh1qI(x1G4krN3}$(A9JiNl{$7>Q6$UKCcwj=$w>###<6 zRodcmPHrK1pDHG?ZMxn%zpU2Z8$#()Ie2#6Dsy#6tNfE;*hs0uMo6k1k*)>q|2LlV z=f}t>t)sO7SK_z@>*^7vf|g-7JulH;v_KDFAQgdTX5g)&!o7U6vdjJaSZ~wvZaaio zkAif%P28@!3(vTR g^^^~;FL#X&37lO15v*Wi$E6kiC;0yGRcRd^0wA9DHUIzs 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 46553ec0676e889822d59326a8d31a62c3a9b9fa..ff9413dcbf6f5b1dd089ee91623db6316e2874aa 100644 GIT binary patch delta 1520 zcmaJ>U5Fc16wb|Nn#p7*KefBI&F*%hTivE@=+gS2r65=l|CVl%3jPo#$<5xGPG&-8 zf*VBFg2EOCVL77@`XqurNwIkoL@WyXqSk#73atoRrR_tz1?fv)Ja>L}Hp^ljlH7C7 z_nq&2_viNUuTBad2%mgDxgsp*#!qYNLRW29TWW*8wes2i;Yi}!A4dsE4t^zTgnSKO zjFgkJC*W1_;^39kMv`c7Dt#KEJ;SNd<^rv$j?>lZJ%`$c(y@&Gf@LbIxnR($$I@?m zY~1xBV>?3Nuk=e>n=F$g{2^XnDpxA4^R!>7D9l1OkC&KNMoLn0GYNB13*hsKEbwnby+$B_AG;c~1|KY&f( zeqjO%xs*5=b_60T@~yav{q2`*NGY-o^VxYKz?az<$vkIU`h}JBISvd4PoUI4qy2G} zmSL&!=Gy1!J0`X5suXtGJGV z+LnND0|Rp~Cm+lPwn}&seuips8a|cJkW1M1$e8{OA~1f5O|X&B{=G1hJ4s%LX6~FA z-k<@zk)yDdE2UO>hh=FR#QZE-;~W|Ns?VXXf{~vltFV#>@(*SX!CXOl;ua=*?67__ zEaFQ%_AaS^&TnR8g@Sjj0{4N~;xmcX~o(F@$5El%9#0fWL znMNP3k;6+Vy4dM@u3)GRUG%sJIT2hEgs^yZV1M`EWp-Y6AP(a7HS@Z$f%Z-_KryHGEez;Mne`@fEyZm>Mkaen^Nm_;Anq$dk`uvHmQ6*>1*E+mu6W VeCKqYxM;I7K6#iQe7yHf@*gCz_kjQa delta 826 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 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 52bdab3fd9eb0381c2e004114febbac1d5b1ec10..a8314d3b70845fd20abe3ebf46d1f91babbcba4f 100644 GIT binary patch delta 2110 zcma)-+i%-+6vt!d?kq{W+}b4V?3LAB+NHFtQ0*qIFk09;v?0O6hJuqiIHtMGP7rxO z8V{2|ia^~l;sH%;fF=!zX;WX2Kq^lN3GoN;PziXQQ1{3ioZ}>p9aR;6uz#2Dx%@sp zzu)iQ3lA=PZ+btQ6t}z|C9^M8q<1u_nlDQw`Fi0!S!>GgU*Ebn=A3c$W?YYdi!uzm zy~{jdn1^tO6WE25u){3}tFo@l(+dJ2F+z>J`C7-;cFQCB4v^0{2l`SK(#m71#@%$gVOjmy%Im#80cJBo*H+qw5XF;HQxjm(P=6 zLQT+T@?rqBXS>>9hbwJLx?U+)WX+z18wr>(m1M_k4_p>0=CQZQSJzL^GloWYgXN(+ z$S1N)3RjTzpq~^xiX3HHWPUpu@lqPv?a`@FW8ez@i116Nsqe^k+00fwgCC32ob#^$ zRu-4{Zgku|qpsn1migRH2~1y3N-{s~N@8uE!^ecBzF^ZRK1$YErmvA1{`S=+%VtJh zu^Dx@S8tU=TkVRu+_V#M3fHiXxnhFds#-<&Ykf}CxylwTPH|Kh9Gu9OIK`cu$nC49 zFwg__GTcq(JcPx>njw7Fwj4!t^DvPT*ew%Z{*#08oqI#tY{?fit*)6z>^;0*nA?u}nAAU~Xfb*Gicz@r_jI-<+_x2YPf4RjZD%BXi d^iHrQRb|rac+06Y@v*K5c;Vsv_BX;c=0Cy_PK5vf delta 1843 zcmb7EO>7%Q6wcUQ|E96iBz6-2WbF{evFo&rDiT#d6{)EzIZY{ws!~*$jXn16X1zAv zHF8i<%K@pCMs3O)jvP4lP^!v82&o)6fP@eTi4(Wd8!AFVf(um(GwYwOs}RIxXWzW{ zzW2Uw-puWdzt@DT!iRsPZVA`mH*XB?x&)t(xHfUiqyWEq6Zd}dAmnQQj2q|YKHU3(qptbsp0U{fInCnMSX{g8ns@&5%AQM9_L0C=Q`4|n&=iA7L>Jzp@6xm^$ZqaW zvj89W6ciIzZElj?ySd4Tg{!*J&`=LbJ;4mPdEg~<3U)_wrIXB*qv|SKnp<+1IK(u4 zpLXhYw&j@Yl;az6VuJPC@Jd`Sbq%tiDR?t<5MALt zTS|s zKLeo&KWg{63yk~SK6htSU4c8nnK|O_+yF{YhBoD_`XX;7u1@eJk>^9P)X91^?t#(p z5^_Rh`Y;&bS@hIuLFAE9^|6&FUt&pYu+^jRAUfmSV2!hT%TFW*!AN$=n%MOJIOs8u zVmYyU&_TzbOzirs^P%qJAFxe!&;ehB4zbY|7};U?I5rE60(#77&jzBMrYG3~XTvYR zsp%v-&PzqQbe4Ik_#mC&vGbDF#A}U4t-)D+5X&y7Y7qi zOnRMom}&0RF(ppiDpD)nlo}OmQuP8uvf_<8E-GcENUsrJedlnWvlfn36`ujHS;{e{xF5%X>?)u*)7Z4W6yx1j{wOw0-DHUoyw6JnD85KnDOwdkoIanoDEMzLqZUx~N;#9hLsq-a!v z?U`4Q3x1Ep+F#E+L5?3C?XQv#o%45CqI#Qs4C2$JD(2}1d)8I%xNgWv_QErN`}?^! F&_4j9L(l*K 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 578258888d9fa3de4c747c0c4233a2e8d7bbfe2a..4876e749d9160b32bd8695234e75242bc78fcecc 100644 GIT binary patch delta 2118 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 KSAVuoasL4BTb1nq delta 750 zcmaixPiWIn9LM{Xq)n5>t(La1wj%|_G%OPbVu#*TRD^+NS0!uH{gSmhmrN))*$#q2 zM9S}Z5HG^cA}%+NiXt9F#iM_~9>k02c@BJOO`IohzwhsT-tYVUz4vhD^^~wK+&!M} z2{)D83ENy;F+0;Ovtjk_Po(1pZt%I@`)$GpZ^%1Bp5P`|AvJu#)iPkVTUK+?Iv5q0 z;txzjVmdBPGwvkgf@AzD_x}k-d@(Mf34?eSuUadf-LPB=lV=HD5I^LmbiK7?b#-0U zbo-L0S5?DM@tj-`B?_rJg#Ztwv+}=(CFGO6dfBJ@`mAn%W;8ofa`=o;0+ z9+ZHC@*GUgvD36KTAgJuUE8Hdt3yceg@NhNDerSE!LA8Ap}}6*jt$CH^~*Y{ctx&^ zKp(G3y0Qgjc*?fn81xx`iYhLR8id1pqi4uI{Gk{)uJA`HB#~fXoq-7!=2PSk$>ENX z_O-U{dgob;`rsYzD8-|La2ouI8Cj1ZJxZRATYvLAv!Q>P#di*e{=1(e@2kUAm;>J4 zBl95y_w$CNk*fpn%j|*8PEN{6`VPEKU JgSUlw@*9<~|6l+B 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 a149e8cfb544db8bf1bb6b006d6be84dd4067a76..904782dd585849fccd724e7f3cc9f468f2b3256b 100644 GIT binary patch literal 10391 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 delta 844 zcmah{&ubGw6wYk2>2A`bo3^HyCfnJDl4R*Gv6UX;Et06T;6Wrv51VGw$&z$aHXeFV zqT)eVq3}jT@Lv$DfqIjG2a(>rd9Yw_{R_M}yK9zEDqd#ZoAWKe51_*tG13^I>@J`rB5UthF>%02OFn}LIE;US+{h-47Zn3_;6e6MjGc5Q( zKNvDBH?$qyqC~!nAS0e7^J>jBTZ`E2bera$)=~?2X$ix(NM)6hv29Ae7oO6`G*5WD zp{jMQtEnpfC#VeT(VN^jf+sU+IE+dUA}A0bvqqR*k7^`ob2v|5P><1jCTS8RnJpr3 zu?Eo=^md16R@0(D{mIfrk&qjo=deF!M!qm+vw%-~;H*)GJFzGVgEY0y2bmHM4r5s; z##d1g+VL`1_DBZe)SOXrSTf`nGl!`)5KDatuT&UJU|x0I`8lx*y#yZ{G3SzcSTg2D zDdt@YLG^r1f+l6*y%gcL{XG``?onkh*Dk?b<8}j&m{x_iiA`?b2MMMld)BBzda`)M zfsR^gbl3xYPUN}gmmp3iOQ`C4!!w5ajyGb!qbni6vI2NogjPHXYtt)m63xI>Tv3i$ zhdpN2jP5~4r^Y8I73#XRGtA)`u1D-}UGHkm7S-SkUqc}{O3D2j%5TJ-qyF{mX)yPd h0gW&0uxxQpYwHf&VxP@$3NJ09uz$zu{bKGR`UB*w0d@cY 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 20cdca60490db8d68901da96ccc8719f1e1b1dbe..adc408d5033bb2541fca58ae7b61994204318a95 100644 GIT binary patch literal 13586 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 delta 1832 zcmbuAU1%It6vuOCb~Za*iTT* zbZ0hA@Pmp74cwRZOdo;>KKfAF%A!8B;9GqVm52&`lf0CoAbs*dMDLybaPy%AeA)YP z&iUUnzkAQwtN63i!X@FFnz|xfhVR7*_&6Y3xgKWIPqzaI1zJC$-w?V3cliW50T1{S zBc^Vbjnb;I(4Bx9n49b_vc1V^>h}WmYZU@N1pk);6awS06aFQ7S5;KCs#gqERnn^C zHq?1V)8OYv2|Yis;yw7=w_5!-L+~}-S+(ysEx`e73F!OtT$~}u^c5=s~XuO zEcQ)f!|_#Z%W=EEigw9y!rRMcf7PIm_c(ePbVS~nWbR4 zMy1b8vIl1_#XJ^=lW1U|D}`UD3&;#Tjf(Ks5v`=tr77X_bZD-aQNk%{?*p%WZhPC5 zP2P;>%&8o85J||W)J@&7oc;s^ADDj{)!-?;K9P&;plEZ?LCUK6ADmvh3%EU!_C$D@g88H?p|6>)Q_-#i#KK{5mYb>_`NC#Ij%N zVA}Fi*@ua3_hZ6q{ke{+`<@KkA4#E`OgYx!(o;U>b7AjE3;%NwTRl7hisu@`bLv0v zoI32IJH8vxvxkh6LjGMdP7lX4^dtL{GaW|T2Qy;Z|ITP!J*YO|yT}~6-;b#$p6Fn@ zH73E00k+aZy2CZ7ZAKOJgtymyS6-nRIh11j$dI3#qlvVOufiMCHe;9;oImL zBts(h#P9^i>}H-CX=&gbER9Z&zwf8{Ty-O_yzN&w?GXy(C)}Cz-b>%>slxWr6k4R( zn$o#+jUCZnUQx2ns)8w&;i<`^oW_9_$%JNDk`h)ykyLJigO`VA;LE5Gl<9XN)-FtC zAJcLV6HhVGH;{xsrebh0G6nBuW(B-S1>uv7l3)`uNNd#38{cNjP|0wL-8DSOR7Xg# zWVpIzd%8KB_eiV+7q}QSwKxiZJ}I|uYJVc`A=kRGu*1)NO*QaW^v5A0`%hs?4(;Wb S88#g=LEAdDx4t-j4*d<%>^&v` 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 6a9d6e8bd2fcdb9dd1df5f0568707bf1072f0413..e54578b3613b8cdf9ee19191ade415062fb44a54 100644 GIT binary patch literal 15217 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 delta 1985 zcmbuAOKclO7=SbDtR2Tr?Z&YkWu479iEC$@2PAzZAeu@91x1QQ00~sAXk)Ll-fnDb zcO8gA)Z~Cvq~#F)EmC_x>V*R(NRbgmR7FS}df_GYgt(MSJyoJqTtGd*%=&?wm?(nF z&g*~8H~;_dqt%ZV*iH5_H?+-OLf!BS(+!`tI=6Q`@J)Nq?j07P*78s2PlRs4DQ^^= zf!Dofj>@8%l`_lHSZxAVz44yfVzfS)C2})F4u0?k%Ui9Vx&F5mgy6pSLE@2s1tBl4 zNV*{4grMeh!(G!g|N51XS6U zBeFy8otOD}BH%XLq?Mv9>N&kJ@L*Hguba|L{1Uq=j z=^&xJiQw8`KimzogPfw-aVe{0sNeII1DFo1riL>8(<9yTXJw+|v>7vrAdfVV?&hGpPu-*632 z-Fmc&Cl%y68uIaBg_MhsdQc|?zlHl_rn6FAmWc$bBp+9bG@@Q5Ne6z8CYD;!_;t_) zv)$v!0qflh%#`gPKJ0M$Pcu|QP7!fZ3(5ufBfzt-EfNDT9U1ANt>eWkHe?AGMUAu> zL(;I_Zs6(O4Yo4d<~|5j0X~rvV*<57a$+TNj!D`+akVDqsN2RG3z?xxaj1O}GzS`= zWYV?CT+3Yy((e;gQu`^PXRJ87ZGE#?uG zbUjT}7fEX_aJz5R{dwhjWf}tSH{F_)%@kI|T;4L7;u;j63LZDsijrkI zq_@(ReQt=_vSe7wmqgX{5Cy#`rE}R_+PVbE#Ich!6Lu?RcgSG3IM$}ykX7`g@de=9 zfpN4`1@iGfK(0_A?m7_oD%=k*$HH(E^YHU{j8(oPhJc;GQ93bQg(by~SNV%B+cJ`# zuC3vPiNaCSnUM@Jr&^*MOIc=j26{bVxHG|{R@ja6W&erCh&kyfcbvNCi2EEZEsBSH dbkj|9jat&le?y@M@9J`t{6ffiIW%=1{SDX)WB337 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 cfff4d87c804cbf4aeda17170883d7d7e470e9ad..54d00f9f2a05ceb67d757f5d14dccfeb5c5adee5 100644 GIT binary patch delta 709 zcmaE*)~e0gz&f=`bRuiVfbjt%3oIOIip0&_BpOQOL< zW?o5bESG|U!sOGOh6-HBU`hsi?34`79{!Znw9LHBlFa> z$Yw0fknVXz12WjaE}sT>kO9yEh8$o)u^te|n(-OPMBb@T6FGq< zKAzmjrNH_SWcK6@TnfCWk!(8wmOBQNI|O1)4(C$mhq#3eD7GR)CW9F$ZkPdd5_@uf zZf(AqL5UnkXM>pP??gSte~g}31u<-YFej&!Zt%XONxN>E||QU+a8!e8o6XPv-A9ALNLvDr1C%Dy_r88E5*>XIBj9~f6Z+P6K zGye6k=O<;AR2HO8$@t&Hk&;@R4CPD?<1G;EVM|FZNzBZdl9-_yJEccDW%5BrsmafI zV3_TJ4YEEk!OMS2*SCO>80!nkzuEDm|W9^0JE;*#jhypmWh z1t18SyoyaRjSCq}$zYG2lEK--pOTuEnU`6TnV%OA(lllA6wSsdwNo@QSToq5YDCb~ z#AlYI<{~NVu|!x0w#pybCN8j58bG^PN>YnZ^l`%VL7XGjgCx>A1>z3rjLVbR*|lUZ zX2@nN&5-jJ&5+JGTbcwkj|<_h$?G^|n3O=4Yl5g-Y&wk3fVypHOh$A@ zOlgL8mIP1?=#ohwmq6Vs0doE18ZI}LEJL7d4|{%6R!L<+>Xa-a5SJq*wKy5UpL~}q zk3B;*c1n+A%EW%j$)((~z?34$F0*+(_g_ZF^v!E|A2X{t0(EBD0g2)s&b-9jRFM8+ XU?Ru@Npu!xC<4<%mfhxUf-#H$@%ifc delta 334 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 Zp2B5vZ;5o_wk!n66-L%GxAvVwzX2mL?~nih 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 d4a7e5361430391b545f5a1b2208831530aed2e8..74c97eaa19f1d979ae3b0ff41ad71ae0048f0087 100644 GIT binary patch literal 12457 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 delta 1290 zcmbu8&rcIU6vvs}ZrQdfEe%jwXtxDnyHL=iAte5YMG+8a#Q5W24B66!>1LsgT_VPq z;K4+aHKuuM;AT7;L&WrGq6r6&dQ~n)4#p7mA5ao!`h%9n1QIVhJM-T6&38WY=7s$3 z0=LXPjfQgEBY4gSj^X-SCbk)ttICpY0zBh`ufNz4vgCKrZ-h4C8yiG}V6zOmu&m80 z$vLIJ`~#OP-QMz~Z|`T62`C$lOs8~ZzA9{N9B6DU{Ht8-5ZSA63&?o`LBm>X9MeFOxrlpIKlRX#cd>t*((@J+-lhS>!c@~`v_ZCu z`qwK-(Hk$5X}BEY=L-j2XnObC>YVya9$@hiZ7a=|ac`+h`L- zVZ{Cjjl-g|6~5Wede4yn86$1PPJ;S6EZZWs{sDMqJI<+CBk-K-5!j}8f-UfsyMnHn zsWHCYKSibsq?=r=GLRUo@#ianTwUNh{}3&~UB@Z!X%Zwc5*kM|J_?^4kI@6l*~PE^ zOG2nBfi?ZR=g_!~Qmnv+vmHJ=2Vqb=2*+FlXdQAc$=w&tX0RYh61)<_Q$qQxIJGy8 zXXK2Wm$RAptgJE9Iv0(3ql56oQFhb+2PQ7(v04MvyUh~tS_~boDo6g7+*U|hp4_AQ zMy*ci{Pz2Xr3)0TJF`h8U(8`cxyX*LG}cn(Gu-hFiYLsJ01-(r3Ol|oK#fP~8{6`< yl`c2_KxnBn*|cl#i_>Ifnl75|&LmXKC^RZoVS#0hMCizwaY{5o#!9$l68!>JCQC8^ delta 1519 zcmb7E-HRJl6yKZgNtzIKTS~K8C)Tambd#cxwglT{OQ}%XrDE~P{g_N{_soz?rZW@V zJm|I$7Ps7&a<6UagCd9sDzq*X-)vDT7V*^=DW&=cv`>N{c<#*Pqgq8D@^Q|&=XcKe zo!`CR%zgD@{9OF~FLqvvzek?otC8*bA1V}W}7D!IUaj33D! zg(57&^s5Bp3%r>4m|R87O7=4P4~KrvKTOV$GXFMNFQ!jvj@F?bbzA|GqaAGI;`!7( zIm}O`)QuyRiX6RCQOgazt+{Sv^&P$2u{F2W(mc)eoSyFW9O~9i;<43PwOUmdRGFf7 zn4!&+Necj%e%I?w+XK7t+;mTVhHwbmX2 zrhniq&9U&WV)q-JZmZX( z0xrn%!H9w-j~dz<>Lmd8G-r)^g6(>O5Ke?j@VmS>Cdz>8$yxQmIsO-g{1f|>pU+IC zVIbiszn(t%oD_2ur~g#$2{-ilVDXTUbe7=;f0*1GF-!bxX6^u7hk`jxCMLpbFo7Aj zAJ2f1GWRTYEh-hve^#D76u>DgMLRZVu7P)cq_RXso~;ZuCauvN=0U7pE$x?u3+7Am z$A22+Rg|*Y!FKyRV4d>QWAQ+B{@e=AT`>1yDy~`0+zRLDHN)sEcA0;dZK#_F$dY)qeNCAc zrI~6`R}XDo%GI;;eo6thN!EEYS4p!(i+Y;T78+-{1Niu&bhqy3{vhPm*1h~M(S6qt l$h?eSE>kS|Frj2!d@xKI*mR+UZ-*a8(3j!Z*2Bry$)D~E4GsVR 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 110f922eaf948a7fd2ef30f9cc42e2264adddbf1..9d3707e219cd300dab4545cf40125c3d38c00a05 100644 GIT binary patch delta 2401 zcmb_e&2Jl35YKLG$Lqv#Y)GoavHKj+e3;fsBO*kA5UHt3N(oY$3!+uJan^bJ6z^KQ zYeD#OkSI{tszh&FsTV%}fC@zhZh(LTTo4>Masmm71Be@3_?X%CdeJ+l4Y^vX7<%=>8Z&jxp*C zwf9j(5X9zZ!g*1+%zuj)#FO{&VQI7ZcH~;OJabCdOv|X3Eh1|~UuOz@=@nv8)g;z- zO(AHA$mHz#CzeS?-BL=Py&?PGZRPL9&xGw(1d;DZ-!*26MbuW4Em|y+IRYRO1g=%8 z5S%2I4j`0}-GuLGYD1~0nrf-Kwzj33==0P|&I`^YjnY^v7Qbac$a^Xst;VlX^&F_u>1x_ zdN#~7oP8C9>g((gcy-2v28?*J<#r)Lhire4>kXiM+Rl6uRDO(x+L=cKw`CqJzl>t- z%3q(P8A@eCFFWiOZkF6pRaP~JO^f`?RB4qpVS#?m-iH_a03RQsufBY!=2($Gz-S}RzX=-60LDL)A?Y|^SiH035O;v%sKE*QE+6rEoc9TR+Z>ii@w zDH_eT7zgd`K=~9M9?Pe_x)6e5=xe=}P7Cx3u~<5dlWB3lT&bcj;$@dOqbb*ETkpC!!oeN4FVdM_*?sz#8M1B+tvEZ=hSN5x#c8Tz_$K} z46Xtq-8s|+pL#~?s*E~1*sv<`t+v1hZ68iLcb!#NVe6U2n4iTb*~lb!2-z|%R~RuB z(*Y;d@(b9Re@bDysD~=Y{yy;@RU< z4nSzfK6Hw6W+1#v3g-lEoM~+2oJiRZ(0U@FQeLz%?+n=6e?k)d3zfe3sQc3->#%z& zR4?-Onp>*Uk~eeF@q$K7bA0|byzU!160(DuV$mwmJWlF0K`BOW(3S*|NA3dG6^DE{ z)ji)z$1LBV(H{dRJb}uv92Ey`bu2oA~g%`JA99@F1xcx z`OIq$f!XL7l7!~w>*yx(t)u2zY{P%>Jr7jh@x`=5Iw?~TZt})dh2g%*5`2odz4;bj GK|cXJb(tOj 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 4bc2a44893411dee8f28696add920f55a690ca33..3c62da8815cf9c252cec51a5003f70187a609c9e 100644 GIT binary patch delta 2332 zcmb_e-EZ4e6tCSTt@G)Wt!+qBZrU|u?FgMz2~n{ETBoUix@n8VLzy}^adv%I+mW3} z^kK@FK(NgdtFAW*Bqn&^k%uXO#LLjw!{BWadqhZp-~nlZzhH2#9mh^e$0YEBeLv3q zov+_H*B>o>w;Vbjy0$d69eOV@v8+gE3`s533|)O=`@?MS%D~M#BFFLV`&@bOgau#&VCYh^tJnl2y5;Xi7uT zwe?NKY}nM^|CW8uF5(alI|d2Xo<5m%r6H>UL2Js_S?DPJXN5&9SVIljQ0ZJWOHuR% zZk#?FKaeAPxq$(kAu0GYH}Dt^zhk>rz#6?N9(au;nM4l%f+t@c0m-N68WIzlT)B>3ADS**>Je?E!J@HW427Ng;!5s#?XP)>z zVBAZNaT2{PW@BW@*F$fKPmL3yqp{;j*cT3wA(+ssu`(B;zs6QL1E3E+r~3z3bpG-Z zWSv`doL@X$(bc+Sma0-iDlNn7G)p?&jxU8>F3>CD#E}R*j`1V}fF6jOWfBQ2SzEi~ z(xc*`0O;#o&>|6o5b0eZ-1rSxvAV2Pf%ofg8gea=I&uYYXep5?vO%XN#C{KLKcCkj zNI7~Tu|I0F0~xZ-0B(#<())?y+$VG<*&KVH?YQg_LE zZA;UknW0_NT4GFao*f)(by`U;$&UNF|3|%jG!&SUeU67-kenrV#gCJ~)A{&Z4;OL} z?-0*;(&a+y(0{Vjv7iVYe)=(B0t9~&tiV}3h|lI$@#HEPbQKcn6|nU$rADp=gvmaJ z<=!)os;L5tM>bp}AH!jKDUtVTYYNV@+R8xDR`rTaJ_7+uaAvBcXf~PWX(3rElQwMN zJLGftkT2NlOD4HfX%o+pKzZ(kurr6*HDGb2o-ok0*g}*Ej5`9o4VL9w#BT!YIz*-&nK(3(=FQ6oz|Y7}}32Yr)&m%H;E?Zs--+H03JV*g{%U zt#3h0P(JT*?U6Dr`@ld03^bi?l+I#;&$5WrVGS&~=j7dOT*$HLLh5M#B5Yd2@LR!t zC2VquO-HJ-S@Gud_mnn_XHMDHc$NOdkI~lXB>b)17)|s1*L?e{JwFdV{Q;aJ*WqPa cf+ndlJ8QztPuRvq6X)S40QTG8OssK#19%YOk^lez delta 860 zcma)4O=uHA6wV}@WH)WnB(2SVI;jwoU?ZpptrSg(ia$iK(u03wv)MQsHa}$3gMv~I zg32N-Z#@?DqM)Kk4oW?EE{Okl62Xe19t6*VIF5Z8HyBrCcIQ6Yi0z;;3HEOFOtC=X43Xltd_s9{ZRDWa;J zlFPU(wnZ#8>TOY}(@?2n5$~NkP{3NdrPNPk4dOgzkYU|KC;o|s=lq`DuMvV0<_X3}_U3?CvgZj`FB)W)KQMY!r3ns}K$Yn(Px#IA4rFVG)qA>WrnF35Rf zFz5E}=aI!iB2|uVGbLJt6{n1IMwh>vCQ)J|u>y$~=mSCLE+kEZeREUc>NQGXC|@T70OhrA#$@{Yv!*{C85>=+z{xgZCR-5F$qhl5EN z@vKEVP5z>1$UDjSV??C@ru_$8SrZZ}dDbmz9OV2Hg4w2uqRN2%F_eNg1Cf{>9+y;6 z)5eQuq(-eNYFXCcEW;HI_&yMc9%sbeo^mYRV@QeqzKbt*D?3Uhj=*j2K~w|eo8b?e zg7luT3Lsj^G)q$xO@AfRgH_@}u;6#0X=a0i+7PKu{VLyXokZXZCLH7wiI5NQ)Q#bD z&w`(#r#syA84mt{>_i2;Y}F5OX<>G-OK2$#a!sNG+O2spZR;LTVD%ndG+n5RHJQORI%QRMaX}*qI&k#9^93J4KLH`h4^#jE 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 c84e0969b9992dd8b676e2da57b9ed6933944bca..cdefa200c63ea706be2a113c3239a9760b53d4ab 100644 GIT binary patch delta 2054 zcmah~OKclu5ca>Z6WdLkIBA@RU%PIcI!=?cb!ovIAhZ-ks8MO!P!vl1+GM?oAM)Bw zLRFF;QeKNtH3kU;v=Rsb5^0e+Ado;2j|)Y#NZjZF^#D>p9FdSBF|&TH+Y)^6?#zBO z^UXK&@BVc1#~IVA>9uc0E}32kbsb4Y=X252=v*$7dU|#tnHH6z)N-aMSybamaVcMf zqS^p5eDY;8V_fN5w!*RZ;8CN%?K@DKH@;%7Suk&0V;sEQw%O6a84SUomNppV!#uoc z^Bb)^&%+0ugPhe0SGs$<(I3lX7WVL&Y(AMuM;A1}hT{jgU=0SdIWeA8 z5E15;e69`;2DJc>^D!f4=E2iJ$)xrW`z$s{q0swkpM}O7jr3y*qw079%j$OuiYcAHD)kKPWb{}3NgtcHLn%R z3DF0agptq+0o?KwT|AGQ5qqwTwW!wkLR3+bb4f9$C*miWV7T)Ec7;m#-=WZQSS1lw z!svQK7!7u>i}{i8pjjKBLnUJ`D^Ut~!)cVKdPZPI7kuxwSnCvFysO7( zMhK0k^X~D$`p#RHiYoFdKzFbyAYa7mG4``wlbhu}8#K8|n%vi@NgERTLBq*^|2hb|UPANZz)bqqR$UHy$Suw&E17*vQ= zbX?My|JLUvEoae?*#x}gjIdL%=^W&qA_-kE<_egfEXz2BS-tR_>ljPGb=Tt16XdQf zRR`vu(DGwCHmajK0SoR2P4xUI@v817k*R8KucaZHXDicaD@em~9u4$mX2CuCNny5)x%-!AciAwp6@>%q1OpN&Zk60;xjQ>jORzK`d@iG z1ziTInPwwDt8=Lj>63;d*8fX*$AawAhaZTPYo5S9s>eg#pr)wo>3ex42b|;Gt@ZW) zPMa8>)Hq!C4pgW1b!BRnE;);7R7*~rOJq{fWV$HdfDpg8`z*TU5OyXn(%lmMEyEH& z(A79$ACBRxdu$f@zrdjCX7$<{mC!oFrLe&U-^Xnd%l&ZKZ8kYD@OS-6P?qXS*lH_5 z`9C9=xv~qNq7gLG$Te`n)7jdEm}zW*j)dl16P$DS3T=sJQYkS_pSh~6s#6g7Y%UWQ z6-7+&v1LA8NM)B3nK&;9Rj%7&%93M6Z7%Q6vsX5wPO?8Nu7FackOtc*onQ3qmlxm6$(^pK{QGvnouD%BwZ(4*2CHx zyc?jP(3VmOlx-#YmQsmIEvm#BWQju#2u_^%C>Idw0Tm8N2mv=ZRN{@lv@R*iWoKvR zeg5V@^UaCx7JO%Y?>!~I>wEjb=;4a;LS3m&o~j$wWxY~UO-Ji{-qC_Kzo5QqIpEkm zHlKX%CxmZ&NzQQOCj1@Bl1D)dUugWn2LkQ|Lg2&jZ_y~{@yL=aHzUikRFL6XB=47t zQmG_CcGnmuOYnOnDHP|Be80W^DjT0G8M-Pyz z%q@Q99=E+k>CRbTRPv!7|FBSkKSO@Fm<;&5nCNx*VrUcwcKaZ+Ti`>inEyq19A@Hn zw5NsVcII`Fqvzr2m<%^!qvSJI^=!M@t?ip-%UVkFYUw#`cy7H+-^YaxH+%5jLk2?_ zA>X=bbmK0zY21!0v2CNmV&XA!hxrEDB)8z}#3tDSH!mJ}ed^*B%iGs>CZlE8+>@E= zp=N)ubJye(P2m*ic{hP@Pk`1{6YOAD)~<68fRs+dPocqQ+sJvmOWWv+E#DvcfZTgY zIw`}K#RS>YNzu__H-*}!UrJHJ!`0MDvJd`Ajgg1Y<4FG$ODWPx9N<nTLg0)zsJ{bV#bQ zKch_56>GA6W+im#sy26UMORGo;K?^&Fq zL+mn|w}}OZ=nT&6U|l`6YE+d<&7n6SJhCtG3@+3CSUWw&{^r?d0Y9*mO&1x1UdTRd z@e*z`4K(F3)OtqljwHED9n3zzNHXm+QFJqRhhSmPcCH}@0eN^UtipBSQ976zg4dIvH$=8 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 ce610ee5caa40debb07ae517f92166165471baac..3a8bce1f9aa2b190fcc3ae126b5a848e2227a733 100644 GIT binary patch delta 2413 zcmai$No*Ts6vzE}iQ|bAJMmi2*csb2i%Aozu#^;0l9omknnZ9ZQd--w#~BatBHKX? z5`rKBL2@M0=c*|ZrI!j02owdeNs-zEEfP|YxFR7C>Y+k#;2N>KZx+u?qCyVw%=fnc z_xs+wnda=BbB@;?m!BBfaIEzNPZhI^wQOm$P^*;YH{OewS1en%+=N)ScS*%cK7=Rj zaqH2Cw=?!1oXqi)m2$mNTh2A$758|r=se#NgH6+FtsMdx`x>#rX7_KwX=1UYQu&Li z6hFZimMYl>!}C1EJyH0or@NO)rOJw}SXM0FFh?y>wB%Rxs1d$WZ4@iz?2;NkV#PF7 ze~e>j4#g95?DO-6hwWI8dPZQ^)7|CC3x#62NK?Tl-I1ey{XV@^tT)odhEQrjYk0Nw zYHLVzG>`354>$d?z(k8O7!qAgdqb$1LOPU?78Jb4tRE2A;5eA`d86+m3z3zs;?MGe z7!*6+Y$;Xf+NIFQ3sBqO(wULt=Ef%qEIucbI3?#DR>;}ou2l~ zcJafX)1*p5wFGLwy!!qzFZ{%EWJukj8)m%@JEqkauJ?9Xzia1&kx)+uRrxJ}r$PzW zZLI`UV+ru|IT(E}(CZKNJYqU+=nb>LiQBIjrcA?0-vaj@ov5E~lMuR6`>*(z8E*GW87F5a6_%=D|4*baWlRKGw=<&}fSN z&`zV;=P0yEyqKiW`gW)rC)&j5j2N3)UXVn%eQ1z;qova*Qa?IU%oKNIihZc~Ya_+= zgA{#mJ(7f*tlib5UCv5t@)HdV`#5pHDfW5tw^nlOWyNDp-vQ1ltS-H6e6mhX$OCI4 z16$F^T!s#9ev&Tel--VZ-76w2P;9R*Kqi z494IuZq9nd2D8ysKT8emA@~6Lgs4vc413rpLxHw?0GG@4CG;p z_~DQK7=E?*YV>(qK0?sVjRB{q#N50 I4a}2&0W;0Q+W-In delta 1779 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 da>7eS)s)^A{q2OjxN7kn{rKp!AGg2T z5m*RZJ(^evoF9(u)6&ysS|3zRLqDD}RMkO^Cmh7v{$p^i=n%)QgZNgTZ~$cp{SoMivu7)9*GBmNwW`k8?{K*kDnX0 zOpKQ0j-DhpBhq0uHhGV%Lkr192E%M|Q1D*m&A|bhteU_ThXs$x9`okhDf};AFOGVn zdpyy~7N0E^U_Phir&Dt#R6T9Q7ikoE9Fau!QeLFE-9cq^h)!+T*T~n%{*c2E5?-PG z!Qd9T*K|61nVH=2w^P@JYA+`}d%+w_6gQi}WAst48Px{bR4>u}zv6Zi`P|$Np4W{x zLQ_7ia#hE>^v8G^^Wp}qGTw!zw^a&+U1Gyy1kfAn(T&N zo{KFttc{N47VDjsd#_cmQ#^i$VueU$`;kw9l4BWfKMDv*y?u03KyN@&vS zfYgY{sEjnpaHKO%>I9NrF#6lT*&0ZKzB&uVNd<|pKUrp{Hgz3cVTJQoFY&rGZsJUd zQ~Wyw#o<8BgP~2d8@7kJ02d9HzgkttuKC4)RUW!gT_tB1Yfa1Z7AsruAex1DQ7v_s zx94loh{PL=5U(=)H0ZH{Tp4g*gYNVUY{p8+g}vBQc{QL$MwT^?m})EB%~T5njR#Yn zpme103ZFcTKe4h~tb0!4CX9b#9sl4@n21lqZ#4~{+jNaT{G5p^$SDn3L8!aO2N(HrekxWW8lH*`j;+=O|{=z zfe5qd$`!hKMjcc=P7bi{MF6@co+pq#~L_lJ|L^?|FZd&7+Tx+i%z( zJ&ZoE-yQW&iK&%xN*>9Ti}KQPDPPeA$0c2GX|_fFs;U!RYol0Rys{!>t?rKgs#q+L`yTcf zMD1-s%Xv{zmqnGAA&a4#`nnzy?AlN~o)hzYDWwYWI5vdITW>ICsK#jKDqn6p<29cl zpS;s(fgs;-;ddImaUv8^^TlrJR!X?FQ! zqE=oaNw)p$;ykYiNjg3}iDh`l#k9m{)DgG&s#PtWFsTTgbd{uO6QoU;g~tuy|B1$= zIkUu|S%SRwdB`naC@#GNPJMM9dDxnADsLK0%gqwMf56ik%SY(P0O{)1X`x_A$18)vJ z%yGC>E@pT|;j=hh!G%@1RLK@InByAh|C3|X0uc{eEfyu6A{^6Co;w|3X#@bkJ@rgl z?Tplt`rb3kod$~LfXz}XC0>_isOik|N~U3x%YhZL9~iS)R}JYZ?)`<(dNs;^={R%& h_|hWW6wOsg$vi!!z&}Hxj(dv0!S4h7)mZ2v`VG%jeAWN} delta 761 zcmZ8fO=uHA6z*iR$tEUEn(D-wA2w7lSx5?^*hWj$S`Ugnh#(@`Y?Dc5mrWY7E2M|i zXb}{KLU>z5q=GlElDi;y&{Gc{ym%;zf_U@bK`+iG4Q##4oA=%~?|t8UvopVWM(m2) z?L<#}JQKa7skN3`FH~D=^_8ZvZd3mqn+BNo25DP1*z5q}^&1aD-u_!u@}QUSDVRaC z@F%$0fA1alxdRBn#-X1_3yMM!Tk!koG znL`5L=ylW`RXmm(R_r(?MGcz1%4O(9?m}-oxrnb3lk$nk7v#EgTU*sh*(wZ(X6YCU zHA$nQHEJvE7OA=g9WRy*)ijHx4Valoz>5jr$pG^knnhZw;R5QRUk@F8|z+8(fFt_{Z#SJ`vIeAt6MOgfX1VRv#0_4el>3JHD7nS?Yq ztl5FR!&x58a61k2N8<1?oQ62QlKI8~%+J+Y>rGt2p6_2w-A4Za D$G!79 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 77d493f5ce539547af80701e039a1d2452e1e90a..9fe39c0531c3e002cfcb936ec617eec6e035387d 100644 GIT binary patch delta 1567 zcmah}U2NM_6wY-WCvlperfH@&N$a!%k^p6sCLuy$?Y6gxBBZ^oQI{WQ*LQIo*{-xc z0G;@mCJbmghG#$^@kE8f!yXU_Ap{T8R0O>6gtQ51fS?lE(Bcy645m>+E4bC19C zedm1FU)6rBi96x9p1mSoKAJtLHO`q0eYs;A`o?D8(0aDz(n#Hyi6;p804`3Jgd;}>b@4X>SEU4)(%0}_W)3E$C~V8`3-rsu zV!TWQ`U4zJRV4ZyEjs>JP#0ef3p7vn;7H;nf$sAZnf{KEUuluvfZGXWsa>sl469Y8 zrgSySJ~O;^x<;!}a^$zoRarKH+wN9$>}X7pe+kvoa%vZK%@N7>YD zRY$dzi|+GonTDN>`&5J7BmGV~*VFHY`i)XsQ{cHuW#<@JZ?cayVFY zW!Wpru{bmqM!b>e03MZw6aW4|`U+}W6KT%jFHgalv`kL;*i&2dVLrMc*(j1-1(IEY z-K-?AIDDI4O2@{n>CnLqF33oj{_$_)I)zW%>tH zrXC@t&!NgWpf{K?D#bhdxBs1UqBiVY?JVqyxzo?67Cp=Dp{yx7zAHwPsV#e14qijA zurMO}C|-3Y2SU!VAn?;3@clr`EFFYc3PLW*CYHg>KE-ApCwa-clBf^%4aPc!S}U5HOViDwf|O&?Fc z$#=cc&SBPTd~|BSoIH35bGDl77(T`uMMnloj<>{I%xZ7xPozAZh4@abB=(^hDzdT=< zlP{H&zG<{n%Tn7)b6e?c>HY1t(Nan!U)BHScoLE4ZS0rTY|sV#yTFH;Y=JU*9(~OI zG~W1 delta 1734 zcma)-UuYaf9LH}i_h&c%dg&#n&F1RHw&&fMv=E`zli2i+iWEbjrC?)v+2rOjJKft| zclRU}v=vbZ41&xGzElK#5=&`M!PioZrL9#|&2NxGUH~B0xCFWY*h#NOhov!j!KmvM#X3GYZRl`JMurA$Z`}AR`WygX(4065cF|YF z4;q(aRgfR`13hG;mqVUTCN9pPPYUn4Z@YOECw(1(d>`~_Ygq`E{R%RqZFt}HH6-*c zO~r=~qAwM+jaB&+`xWNgI(izNLK6DAzJMZRpaSj1vaK$a4HH_5V_1wrD+-tlJ>f9#g&sh%wpct6|Ls(k+cZ_U!{J$t}gK{7{{{bU^W z$6#hiRL-|s6>~EhL0u?2jW$m+2ayP{W+KH_?QmX zW@wG`C?4d=sQ}qInSKJSn8HXp8|i)@|;Dop}}7h@FMJN3QXav4G*Cv%UFh zL`bg*^@^%5m6t784MW;mTGSNVF3rEQXw*!_rkT_bJ&{UGh$N}04!b|JkUPH0)8hAQ zhQxTt(6Ri?N_a{5i91O63f(qrU-a=y_^>}aIo&mMteYe%&{0&)Rp{qK&w>~Q;z;A~p?^Tn4EOJcmStG<{A20H#>ZE? jaz$puIrgxLs4F$drEGThW4^Frqfz!5z`4df>2>fge_Tt2 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 41f6d34fe910c6a01c6e2026774d987b0cc6f351..69fd7902b253be6e9d6c84ee5716367920cea24a 100644 GIT binary patch delta 2139 zcmbVNO>7%Q6wW$v9RDPCerzXpY|kdKaFfPLRHRaaXaY%*(u$M{aiJ-3>~(ghUa#5R zAO%DNLX}#{m*{P!3RQr_fdd?wQAtiIy&|Z(R9Yvc z4S7vaHKHp-(^ZscY13dqC}cN^I*~Mz$?CeAS$%%_NV@4}HSIA(*NP#!D}GO2C`cuV zd4mtV5#La2{}Np74UV0DXhQIjZvmG368;)$3Sql+L6sruk3+ye#~lOSH$8e3iz7zq z5nMLb#E{s1+IZ7=-AFMRTntPvEHQ-`jk6_w*p2c-HC=bblPhL5O)5x&YJjn)X6LN* z|E;=k!=L0%GJi>l;nXndsOT12lN-zf$NHv@gn9z=W% z?ghqsHtX;(6B*xHU>jTL^JeID5tnAT@`I`VPc+*oj{P&oDS8;BfkbDDK8Ndm?md=D zf1Qg9W{`{vm>rD3=YjYOb`p9q-Sf3fs5O&bTa(tBDO72bw(9p8a~i4>!tk1e&{v^* zII;EY|IdB5)XjiWNakbz4mVz(9ZOM-R`fe?b8spc+-;J8ABrWvVF|Hu!V1{t%z|+P zD-eUXhEhG>GVLh+8k;Bq{t-8PKlBWD3&w*do@le)5U1$1RyYoEj&Ov*3GEV22yz3xBL0@>4bAl2+=14l=Pyb%H6LzJ>98HeUE&8Jw z)NMBM(;0IfGplgI8-nt%bJ@Ih=7}t5B2m_;kkiv1>(69_&RIajZdNnYp5 zCib@lv@+g?;GMp1Ii_?6m{G8iV- z+?-p`=?c>nP8YvZ~|+O%w8DZIiuT<;}d3 zBRtVZ174AJ8|SRM_og`+Uzaz*I{MrxFL>v6R1Vcra>8d)Nrpi0Gsjj3;z1%rOd zwmo@4%hmS~i^?uBxnfj;dDwOb;p1ow-}I~D(dy69-#PAf^~cz)&h9H{M=!&5ez2GQ RJ*$a4K4A26^&Wqm`wL_VlSu#o delta 1926 zcmcIl&2Jl35YKbgUrC!dO|wpH$9cx4O16y^1W43HY70%P8j(Z=iK-=yH})pGkG0qG zTOWFW6a-NVD^Qr_fK+jV6QY2D8xs5hRgozC0U-5~I~SCSdAoMlHXucOT=wnE&b*oV z&2MIZE8jjFz83!AnfzAxI=mlGZhf2(2iyrqx9LVt7X~HOwp*oqrE1liDlaZwn1A;C3+ERXD#Za;k1o4< z+!8MU6t)usqzqa4M7SR_Ity3i{KgsI<+PU`o5y3f^7jz7 zUOWGbE9L@%|N7$E)#YmUG$jnAB|`bi2#=a`NQJjTxHxJ z-o2gdO>Wf0No}cSfavT?0fHE8*-1P+^nqC4_{C=6-r*y$uY^yUeU5~lg2%^}$oKH( z*p=*F|F(XVeI|@2oxq|@6Lj81iWCE3Hoa*Hn2v+25#)-7FwVG9R*=@YfiF;CAH5x9!3T;6^fY4%ul-ufttF7HuSXzC@J_X>1!1g(3w$_LhNtJ!m( zqS21?L)UOTo{Pu97+4!gfRhPuIsuYH2{1Ic&H@0?H#R7-I~K zT$0q1j`ZG5eO-@12HL8az#o`JsU#{Upf>P#LG+pp^D!)BEs4dZB&L#tY_3yO8ya`@ zMS_&Y0(sewA1i4Xg0|bbQ3>{;IW93RdkLZwet})*9T@2{kWP)wETvRc%1L6;T$cYx z|LC2ohZ-bmXZj5_!a*ppBIao{YT~KRVXrn9Er15NprbOJP{oK+Gng}h);Onw6gG)T zQPLgdQ$dk`QPH$}b32wF%B|W_^ouGJmn`9;35wz*KL_J4)o*Ty= zk%(~&Ixu3(KtwN?&j$(I!GV>uJb@q0jl#w*JeRPN z_>XLr2;ZtBt6SYL9KdmiqhyOXE#_n)55K|)Y{3>l`#ygTpFw-3peSPA{2^+*Ab{m! zAtS1)m<8!okY7=jSF?o-5QJLA|HK&c#o9lxwu%lMJUX=5gYtK5;v(LYBB~RORElx> z&j}oDv1oRDfJ&>&qAt6M>Bx#|re>q-{=6ObEa+NW7JZ^a$ky70uOPgv@>J_jik_y+ olY!4ICn7jg?!bSl=FF!Qk>soRj*&^=o(ctg-Qak6wtb%Z4LT8eegFUf delta 777 zcmeCPTw=`Hz&drN*AF-&gAPX=uPTtCSN8UtBD@{vFK|`zBL`T6)N5Miz!O%!Y!N{OiOH)Bt zck+5J8LcatjZ5INkcwQMpvMjx?b;qu66<$ zE1Qv%A?FQp{ePHyGT1WMW2a;wLPg9swKxM9SPG5`xgb`4QdVkmiQW{DGL6Y=_@%jf zRIHM75{rwi66z+O0AXX6&I$(F zrN#>OKS-3bG($V%WrlRdGq4(MVbRH-nWZNG6!unJ1+=b*9q8YZ%7WA>S*t-@j+E5m zWEg*Psz@GJ4_iuVNn&Qsl*GxGMXZ5|lV4PliRmHZW-akY%<8*=nzFV7iQ*p4yu{p8 akk(>gddmVybQWhQ0+Sw4ezUQ3G$R1Zr|oM1 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 3b23d5da322620cb3bdeadbd1f1f7231a9086632..85eb0ab8df53f64d2daf522eafd80a632d6945d7 100644 GIT binary patch delta 1592 zcma)6Pi)&%81HlAI&mAPX%eSNn&GsHNJBLVQ6`pl>!1bH^)LFEl;#qT^WZ}Xo>*(I%h#jNYc+oqvk+TJZ3-Wj-kS3-#Ee~+$m=oXxdl(<)C z`|FWg{IeCTN3K)EcOph8(w`am1EDCqEd7dphD0KpttlPNvM+jn?T%5mS64+vQQ&l9 zWk#%44O_+LTF>ZgcC;?Gs#WDh7p|q|)1s>itF9Vz5-r@;x|*#SU8qU<$@IZ`jfGm% zY^=NBPJiTHbt@|GY%nqD=W)YA;;iKHRw!}A#-)B<^% zJ~kSvtPXwb`n+@xE|1N;MHU&NsQ#%QTahSo!AHg%vDv9xme$s=8CH}0hbM3|Sw<}u zZi+PgaEyd;(vXzsAVEq5_vIW~rplLNz9X{ZtzbGcjNYd#uk%cX4Mt`vY6f(0EjKlC zDj;P-;m%lgy7hl+09&cKm|uVjS%Pm;<-rO$OP`DAi$gZ;&=5y$+F>@G2-}pT`nEkJ zY0}5DLcPG6FIkB6zBTNkZw;~Fo;-o(sJb%|Rd(3RJXA9xy5rfv!h99BVVl`78nS^Q zYHTz524gLdSq6tEnGt3vRrLJ9u&qW!|WchQf z&6PJ59b2kmGzf0m$Hnl^s~kBQB2kA}dy~_lEob2d37-K4s1P8s$ zG59@uo_mRdQ{x{dxaK`&BFTqdaIc|Z4dZH-!C&zL z=z=g#);%xP-1O)~TM{v$0TUBR z_JY6l;6Y7HjAzsTfy9fEm}tU51z$1B!Ku(%EI+8y4v(G~5i%B@p?N)e2*buY)B)Z0rNVdPepBfMLeN&`D!j4}A!I1D zm3>9X0?p;`3?Dcasw&(yAx=z6xiNK_7BjJ2G|DxxEiKShF>r`uIWCjK{LDl)BhHD* zG%s-+yH^Mc>#h?JahmPeCOhJ@qR8hUQtoxzX!eO@j!!9|G%YIgN(h_exxdx#cPiKt zRq*GX5TOU@bnvnAqP`EoqNf&~Ix9!dkUQ)XddW5$$Be9JL&|kUE23TFT5Q1nK^zz) z4mR1!r?NOEC8g44s{eoiF1Z@@(exJ~V zVA&TucT$T9tKA6^vh55bC;yA>@m(A;{?`oMhLCU;GR|K8wc=Pq+W_-wi@yP+*QEf3 zvC?uB!Bml-^BueNZ-QYEopxDYLj)=%8Ks z@fHpYP}oORcNlRWLv~nlkLVv4%X@>=)hDcI5h95oIuY853F&>FUgkV6VWM}ohfUE_ zCNA((xmHzqA*_?jvV1y`OkbY3GQ&@oDyAVkCB`HvJeh}kH9jc!nA>f#MI>I;@2+1IX f$s)d11!#Mg0|Ims` 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 3b7ff8986fb78f89d03e38efc1d133d8479319d7..8a863001750d5adbd96a7fac2c1b4252f520d2e6 100644 GIT binary patch delta 1962 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 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 64bcb2a4f54a293f64bc9d13db29a52788f64ac8..ab503f30cee3c66bc900b5c6faba424073f7c45d 100644 GIT binary patch delta 1683 zcmbtUO=uHQ5Y9`@uWiz%F^Fl?UA3AfX;f6K6+twpP_;c&rD|pUEQ~8*41>ex&|8?a?)G=PcxN7qO4+3)?}rWNN|IkT+&mV zQr5v13Vsg0k=i|%S5!_^N(@6TO>w14F^g4=(-ltBRXEYo3jrCN7b*pvlQnKo&~z z=$5`ou^~Tr@|LI1@QVdO)8xF2ReN=9O%1SwiWo~y8%Yi_8Z#tg(O}>#7f^u&4Iym_ zB=^Edy{*f6?0*Ea^g3m4?gHhw6fp+=71(T)H%7Mxk|)>vc8qF6}s6xS3B*9Dw zwmKkP)9~4_Wst6$z6r#=Q zZNOvD_?<3xe*zFU1V$}*tMi!NZR_eFJq;i>6&_VM@D7|6nz|u zZ?(f%3mhk#>`{T{D0(!s9=&4JciML#3e~=ZFra_j7QJjNmhFXI+viMMRHZ|my&-EUTcxP|cRS~hK;T)HpW=~*wI;V&n&(~IUMIURjfmGP(aA(^b delta 1166 zcmcIk&rcIU6lQ2EZBg6OvLOAz6k}{x+NfwkNK8mX5H!UfBx*KHIit6 z0|~^9#JrWngNI)94`|}uBPJR>$U$TL6|Ua6X>_Iy%@z-yxa{t{_s#d-_r96^dG5oY zW6AMkBJ|j?iu^Fs+Uadeo7834r^r3s1k>QbKxGpld-XNiLZ|{2TNDifcHg(nk%j80 z{iVYibh4mHBbN}oaBnZJi(;`vGO{MC1yRH?QPWHPSS{*oE#<{HP9*RYB{-K?B^@`Q zSSzwkIhmAjStD627cko>7w+JkTAG)1oqZpQH4Da}rr}$-PP2Obi}Z`N z+RZrrz6ASVj-@V_*3bZcPj7d3!@B0dz?df-yU5|(KEd#2)MkK%^)gcvhUcD`bD}=M zQCJW3!j30}Zor85cI4m9WqLvx;oz`gIp2M|N7*_Tl(dxUfluDE4m-;Wtj1Aza3zK6p5+4=SydnXqnwLyb%1ym3!z1Z%qLYM2<3emi7@E4?xLI3qZ`O{GCHo4wQ5AEeYnF%THoaBpvvl{; zxyl24LQqH-J7_Jxua;dpbH@Nv9j{vAS(r|&!#eHbS~w%iNzU)e-Es!fpc(2(?hN%i z_Rt&EchSx4QEMwg59k*@$lWI%?ax))%BvP;3WejUkk(1d5espX89KsWL<=k*{{rNB z;vtWz*N!uXgF)70Fo^rGI+hw0PKmPGf#DdoWB8pQ0v2O}tcr0_NaJK2tDsTTa9S1R z5o|)(X*Z_fHAhT{i?XPSNjWqsDymNP_6zzsJwP~8&7dH>R$uVR7)~Kk6%r+$TK_g} z{a;G~s85)#mcewopxr`J2l5TYFCf^x!4eJ2i+E|1%km{mojjlO^2Ui)Q zfVK@>R=|bV?9tJ%qU2yJoy@TTWqR7#iX7BYyFXKdDk@kwOJ$@e;3Su%$itX5Vbucv ziikPg)&brvXe~k@`Ju;-S_1264k~%6x6V)RIIR}4LX&m4=2Ou~K2q$!+%gRGE_Yjk z+dT7Xd!F~=K=YI|lS&wN&YZ@WEm*W2<5n%GhCLqhM}j>_{PYvjICfgqdTVNs!$n zh-ouVK$>B65zioL8O&{{HJVH$;B_cjPtEP~;Z!;q6%<8?;m8D*#}cWDSTc%zKC|s@ zeT;7l8k&L5l}MO)+4Di$9XsK5wC<9oL0#-6w~fuLLo`hv)g8jKVAib3h@?)W1YLT@ zL|aTyqIsF_b;f-d&} delta 1672 zcmbtUPe>F|829bYtotX^wOYe<*Jq-xlNMxw1RV^DqKFPf2VH7)$KHF$Olg9o5%Sai?B&J;iIDi z5|t!fl4wjyWi+XkwztzmOs4&*5mlpEc|?;>(V>2-VXP>hpD)TTU!=-?Lz(1nR~5wc z8G&9sotCwu>68lf1sJeUj6(K2fTwxIVa1c$a7#@2tg ztSG6`u_DRNx!nY|s*HAX_Tufl+pGp}K8Lx^UGmEa73NB}#NLJ8x#2eTflA zIR9STh$4TiWW=BQ*x>|UyvPXwo!G&H=!DmH0!~!bMGa4(>rI15*7^TlGLLr66iJ3{Us6;^* z!axak+_(^N*F~us@dqeAK}9O=d@HC6tst&kcZ@xS4zIIcL7d$;`s=^sw!m z{j#lUyACPh=Z=nn6bq{#y&5*tvq@g3WcL`diVdt2JEvh$*=df+r&dl{BIap4ZN5 zF>F_j_8EJBK)*98y6WMo{REk}_mdlr8SZ-RsB?hhZj-2Y(1CB^u(~>)fyH=Cw#hWg zNhN?4Ibg*hJVz$o7r5uNqX$2Qz!MzCcgc{4uk4S#L-_0xK;siP-6qE!H%b16U z>o7*VkVOSW$O)*#OF3SFh^(YaiclEmnY=?DgOFSGWl>Hj2#O#Tk`scgG--exx=e0$ zy_r)nl9Gag@=clQ$QrQz4^j-fRU3G*sJ)A|=QOgnHPmnJ7ulj+)C~7R_&3!qh<|~0 z3*|KK!j8t-0y)zb-}RkJ3VORBQ&D4BLWF{v&HgG-?@ouiPa~2CN zr>%?@rci~Z7IhtK=4{3ORT4&T<$}Hyd~IkT_5;R*pH3trD)s?j^1|LruC>}+;W~Qa z_w(&v8d>KJL>>q*MTXXjsc28*brbqQ`J4Ei|UfcrgA2WIe-57pGuJ{t%A&O!f zonmp6KF|PTfr2-zK;5xKVmis>eMhk3X}%0GKC!C0s$bb&-M+L7Rk>I~lY&&1nK6kB*fVsNbu{o;ZX{s2=i^HQh zLgHS&VP`vFI0eVd&Q`-t9T)YegE>mUW>_Ma>H<^6WOD#~)xDu*erBzQSxcjpd$5}` zk&NoY?#xK}JiKX|CS46hqaeAIL9&dpe0qv6l=H=@td!xSQAT^s9D_RmngfJ#I)(e_ z>zM5Hts@nOvs0Xfa081z*u4}XH%ngm_wf(lSanKiQJE?tO?*hVF8Y$M@5!Ek-^BN=@rz7^RUROyFkAS&`E}mf=CZ8$v6st#QEC# Hp5xqKDFsdg delta 1656 zcmbW1O=uHQ5XbwH-87rD))Z~je7LpRCTr_wg?jK%!4D96DtM@&B+aXnZEVu)Zu~%L z1qBNWDsM#)M7#+KQUV@C@Fa?Q5!8cHXbaV=J@^44IB(-7X=^EZ$Y%EK|INJl&CI*n z{iR!&5O2`y!Xyc@yldn2drh{nVd{-Qh){Y@qC_w{FnV@HJd-D1>54Aw7hX&{EZ1}!EoToFh1 z!Rh!#>w*;n(IjO(Tv)b(>Y{boDhoq!lZ`cmf|E(umaw1$fANH6z;-wfAz*Al+$t8) zDzIy7!>rLWMIM))dO8SsjoTFQB}B|sliOR#sbV2i@4bb3b44a+*NRl@oB zrsDEV8Xd}wrdQlmrYo8Ll#$I+eK4ERg1W^l2Pt^$l7M7Ntkt*v$ew>cSvkZj$D=Bc zx;l2p7Yd8EuWEg(6;u6ew4sx#5=tSYdhpLkVGp?ESdEA;Lm1o;>4Rt=3MA7@Pvs%0 zWwe?UOwq>Z#Bn3j8Yi21q@8MHNu-XrJU78s!p@RS>jfU3h5bq+b_jgHs=D#0E;iNF zHeP3YgI`8UC1^USo8A9kq6$BA@2XA?E^iMz`!Ep3@Z zv8VlKwM_7xE!4~6S3Y(qmfL4)zD@I-Fx^?FY|adPV%HiwiHS$=>cxpwCwcx6NMPwX zo^OlwP_0;8H}Y9JfIK>7d?fflv;3Nt_CHlw#4VsKQ7dfR-$w3oVyzCb+e^^nY=rEF z@!-wGYix7H2T|Y1{f}-$tk<&)9h2u>2Ocn)SJqs-MkM zOMS;*y=kfq{ds5efn31!q^X|FWG(wvHG^q3<_fYxbA$+ZqlQZlntu_O-&MN5ZqD64 jk1o_%d}yXLnmk3hBMonHm4BGjpcOB4b+%O6aDw~>2p1o^ 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 866931720efe7a1ea87b7875f538702c58719ea6..a9eb293cc7858188fb358f6a0beed38225455823 100644 GIT binary patch delta 1906 zcma)+U5Fc16vuP3$t0PY%_h6aF6<_`*;>0z)2-`Asa6m{eXwj`Q9*0hkdMjUndXbk z1Pm%$L6O3Ulrw#;)t3c9N{xsQO2Jalf?F1RQmhYE&_2{Ys4r6R+?m`-vP)O%lkRmfDgwq-la$2T<~b9uITJAzrc;){&9Y@XkV6jXxaBeh?iL`uxi1QKjnA2 ztoY|+_MQEJB}^y0?mq?3OY?AE+8`gnvw^$hGuYa5Kw_V=qrHEc`I*G`%R=VVww!`$DD|O4^VlxZFEE9w z6{TUQRTX}eTOOB(FQT)7N&$uxm+viI(k*w!&;GTM8zB55qA}|2yE^-^jMg9 zJiIv9B)ZvhSi( zQeY*R4F5LBV!y(QGzS-=KL1TL`mP_zKC#z_b4uap#E}PO{5gC6MHKZB z{Vvw#`cM<3HH{r!rf%T^`@_wY2bu8xM2cwK;zLZl{U}z zIBa5Z0%}p2ygo`lj2&O&^zR$c*Q&4;-Rq*~qGg^U&}#*Eh3K_B&vv=XyK^6pWy#0f z!addR*x~({4B0HuVo;^kL4+{{0v2CASnV#L`hw=Da0@4gbUz$(2#CDcr~9 z{{a>m#O~)%`3;5VreyN{D9{9U+S(5E@(55a_N9vuXIcBgU2&irJbOwE^5g)heI(Ye zVBjL3Y?jQkRNg+TfpW86$4}SLK{aPH8QN+$%Zjcm61}l_SdLSg##}SdENMo! zrC1u}%V0&(%l$RH7q17{zE#VNSKtzvf^;H9y!?pwP9*LU@?!6$nVVzMVXV_~@YLL7 SnBSh!Sq436xn6PZB>5NS0*Yb) delta 1955 zcma)7Ux*t;7|$fTNjAAVdd9@s{JBjJYO?o71#7E!6)PSJr3XFavc;G|9hdvxi+Xn>^dvaJ$ZC`ver zH^1NSo0;{+FBgP$@x9MCh0bLBMNO?3YHgmV)iN$s@a9Je$z5a{LVWYPeI#ssgAOC1 zH7mE-@BS~)HTFX&i%zor(8>QgC zGk(-!FNjCSP|H~(2?`5s@%7{6jr@jv(asT(qAs3Xd|(C8ZTlU&3rv#tStFK29rm#p zM~qz`OO2D)$oUqTA#IW*2D^SJ#rDO|fWxQ3`{)*+74Zg1)Boi3NE5|#M4pjo(PGuzeesZph~L#4Yp zZ}vlU0r`CFY$TZyo!Eg(1Ksr~dnGzok^o7PdJsOX6)@5-=R6p`Oj0C3(#s^X3;>CS zaji*IQ!~9=6dhUmWdfj)C&?5qlt>>al+Vk1>x`?I8m8iQhO;SlBchCh-DC$$3cybN z3_W~Q(S1%ja=*2rBN+CX)2ByS@We<9T)F7+Q9;iQ2RY<&dc<1{)CIr$w7p%eFLBc6 zdg`8rpb_fwWv{w=W;i)-wSMvgn!f7Q)J+eK+0!(AVDke}Ie17^0Yp8;MU`Ap`I*bm zV7EbSiWHk4$Nhl|>_~! zrgyjiX>tLq<@)?N96$yJy#-RpZ_3M!I_@1kR+~7N?RhdJ+Zb=f9#&!ZCNk(M*J`TQ ze;*#u99q8B7mep+XAeaM4&oZYJ(JY0fHu>ds@`GW#-@+l0n)pp>AgFtpszW-1&7}D z|D`u`2Cpp{M#BJdGCLiU7rKJ^=vWiiOIp2BST%6jbK<&^5+9wY!gXP&)q-gmjd}$j zj6O7ve&w9Qdwc^){U=~Bb%{!lqSUCVTHU7p=9*2Tuz**aRjsI5c87*wYOOV~O#^tf zXghdIH7eM$^}CSC!JAE7)XG}XzD%X&+OxGrsa1sw^coGrtXNe|)25-`8^yau-|g<< zb{@XY84$VLvgdxd%@LkUhMkJd3w+VF;Ct7CZEk_+Sit*E{L#6#!78-Ptaw(`|K@R5 z;gI3>UH!-%*J^%?$4;1GD?e|U>SreqiuhYU>n>8|*eDv}hNLRPI(!V7BI zI*DLeln_GnqBOiBIV8B~kdPfM;G$YqE!8MzN~&o&)Jd*7*PT%!kPZ)XbRQ<8T3Bxb z+GiDosh}w6V8wZYky^lIOD(Fnii{$%2&Px0Xw>B}3M6<7S9Q7~^-xQi;C|B8kP`nv zddW^LN8+U8rsFaK2i*%RlV3?cc?OM&0Qn4%kS*m)S<`G(Xy+B(*FGKT91^rB=kq~{ zHyAaRQx^FYuS#Y^h#tmIb>_`+(@X7L$3pCCB*2Sf7T| zX{r5lNBq8t^}6`f+}m?3mXqkNoEmJ8YtH3c3mIcbIvY;%noCI;YtG;pG+6{^EvF5@ zuNiVcvJ{j#%_L(+n(l-p{+gGoAyydjTxAXrOZLQSBxZVbHT7cE@-7OAAeol&Hgqn+ z^GqdxkA@@=bA$Ae01KvfBi%)~Bf-3(>u?X-25a{w5~xx&^4K(S0p*raxu#c^3q~F# z60Usl!!hpYfyg@4HtBa^D5gCE69}v`0^ZR28bn@3&ZFmWXa|j)W-V8+qrG5Tv4G9I zx2I>KI(-_>w6Bg4Bm9si#0VcdujUC)JNdg|NwpkCx HFLQqZB=v=Y delta 804 zcma)4OK1~O6wS+I(#fZ>(~|U)rp(w>CxeL)6jE^6`k_#9r_>-5Gxlc4B+*G0SrpQR zs4$ywpKBK`-6cDhg6@POU0MrfA>vB6RrI~Y3{ok&dAxh?x#ygBct0-;a$-k(dULib zK9=Ka6=VB>Vduc8-ZRVFX7^blZB1-=OXX2_n*;Bnrm*6R%lOB)3DrT6N(u5;tMu4sC*)u@_Vm0I(h z!j7VzQLY(9i7B9jbxouKmYa2492=eoL(5(cdjBwW9u(T8-z z!+Nj?0;D!!X_HMuu4LK`Fr11*k$PhCU(WDRnL9zk#INC0 zs0S%{#Uc<;oxDK=bSAHnG}fZo+*?RmD)IRkpvV9|X6nP(2Lz9Wa2XF{ae;+|YAiQ1 zj7Wp;W4Jr3^SPvtvPaWquV$6ic)17?nJ$0HQNo7S~f4GvgzFYUE{53JM0F_ zX49xtsex~%S4p5ZGw&zQ`wQ`baAt>XSZ#JVZm4G1Cf{?|XR!F-i32M87goE!Jb#<~ E0?U97@c;k- 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 0000000000000000000000000000000000000000..ac5eed9b68c4ee853c01849f48fbab93fb2ae278 GIT binary patch literal 7440 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 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 0000000000000000000000000000000000000000..857623224fb4382f7aca3262001a28c68960afb5 GIT binary patch literal 6820 zcmdT}&2J<}6}P<}+cW-Jdv`5h?aeqSWW20rHn1SHLiM-yC0g;e`-}k+zUo++jWD`Wg=AzZs;UK7RdCibmv>?*VC4&$M$0p zCb7d(H3bfbd%hd9Abpgo6=Ij3FWTAqdBGg%g+Z~L*Z3Ttf0VX(UDc!~eO8%Lw_fz@ zerylh-1d9S?X!oLkg*p%w0gD!eP|^X&c4P*q|r(KDZ@XN@xPH8o#!GO8p@Qfsk&8| z#ILBi%#wXI>w5u9_mi%z8n(oy-9%zXviOSU3bJnA@ogbM#P3>Q56!OyH;KwY*LDtK z)+3%o%}cvaQz>8NH~A9Z+ahPWjxvOznh! zl<$^q+~>CtEEqKlpgJdPYGG!DW-Q?$1~Q4qfcErRPHPeJb~M;X%#s#EIYFV!^MKdX zLN3JMa-%}XfCqK=Ow^6K_L!?%Y7xrqMt~+sR?D=J#+V+nu~5`UL;t>rkOs&(ED0;EU+w7VK4BBk2>Q*i*EA7rkMp;Q-+VowU#EeF zpgFChSl3RT^zil57f}`1P^V9pp8xV$o?jr(8@Dge)+asAU*`|Wycx zMMck70#r_AOD7Yy@k(A9vP;W`s**}q|K{SZ{uOk77cl!ViqI6`Rp{Lf-J^hrg6 zQ~9}lyLrDUlgMYUdx5;u#Mh%n6MwG(N}dZudax^|02_6e4%CM@{i)UzcIgRMAJzCT$iW!2jRjVRwmuSE&P*jdLo%V zc6qCEZQsw*(yXsu%B(!WmSNUNn{{?=F$tD=;9@yO9&^qYO=&i;F2ILO(;&WRvNg(N zJ6qwOfKgu}_*V8Bt)oW}4#)Z>sFOFhx0_KMqJbfp+w2}SgJc*T;RV&)-p*rqCXWdg z%y$sTmq!sx2S2BweqmL{^Fe4j5yxsN`$>(4qx4v<24Qwx78!}o%FpP-j9Ms}r%TP$ zrfV7@yZOCkSKp9#O~**TJ?PR}@SXk;wey|_ZAS>WV$M%~$8=AgjPjy~#P87BX|>`c zF?E})qPMh^Q%sLZEeIy*s)YvI8g-*|$E=6T3Z4lrJp4u5PtbHJ-jl2Qs-E?L!Z^hM zFKs5IJ&Z6|G~3`}793#M$c9PmW3)`K80tyUEVio|r>gZ{7|I}&tTMSbt(K`>2XtDa zUWn@zC@b2TR)%T;kv9#6`HXNbtjC_@R^A!Ij@g2&Rkp8|Vitw5w0w5R{B&M}+bgp5kxR4ZN(CDLMn6T0BS z!!41$-B0c6x8~;fq{ZSmj4f^luFqolnN-CyRIP@I9G6nlQc|@wF*6}z@E?NrijiCD zkgwhxpO{#zu96J`j^c2UuRA--z8&-vG-2Rz7f<0C^i|chm^oqWS}u!#4{SpnxqUT< zMCsv44Uc%Pg_cmy8=+UGR_sKER!LGb9zeD1qUcx!@ZeZY!12xE!1hVts;0oZfuQi0 zq)4#D4J~w_z;%_4qEIlax>BRWk=CJyMv{i;s^xmZ?)qd%rsaH|5d4l>f-wRqVC&{E zP?ND)JT~e*+^aW zgA|w*6!LU$D{M(VAIw@EsXMP0 zOgTaR0*W|AJS2y-@OJGpG4Pl{g_1Pq zGkRAkh7Z;t+QV+>7l6>L*C&VtcYRD^J>OL?S|5{-dK*hB@HZx9WiwN%ffC|`2^EM` zEjpp^!_%+<$H@E(8T~Ez;f?fFqyzd`NG!NjPz#v?v0hY?G4f(T)-hc40>@8W!c3o5 PHC!roSzRzsp7wtM2T2Bo literal 0 HcmV?d00001 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 167db45f3a6f0c4d0e7b6fbf6f83735234ea7021..c263be78684837a51002248f7dc2d36ef98583ea 100644 GIT binary patch delta 1341 zcmaJ>&ubGw6wW4DlWdbF)tYLPCKFR?8r!H4MT>$3(L=Ey^dfBu`7!P6nqOo$*dSsH z3JQCXiDyB)YHf4$AQY6gqW%S1@ds3?Rz$pszS-S0NyYAAm^b^q?|tukv->Bu9_MHI zyOZ5__*+Lh&Wg$DQZg4KNqHiHGt;uP_1KlMyb-O+6*x*Jh5<`x%QM>;<)?t zu`Ogi8mA8|CmcB}lf!JGUo8jQ*(Rnf7hqS5S?4S}zlaaxtPV{VqO_QuuKXFA(|AzDTnIL;3+XLDqlCdi9Qm1VL|gP!i-aJsU_8Bq|y~($V`5* z7Q8>9h41AQ@seFPtGXCCpdM%R!_H#bajjY70vW>rOONMlSt~m!iiwzl45a?)!Bj}WR z4B~PM(_u%CYrTOYp8$gR4^VfF?d)%0w`u_UmJJ{ehtJqNLDov^7$W2qU33m`7g_y2 z7_v0Vs_AZ+0ROg*S5Ku1g{(H>VORGV7&SVV%*q%Q6oN}vL>b2f?a?pu$9kSI?$7mD zjcYt~!_|MRDIr2Ow-8o_&}qD?9yFYin9{EL!1jRRDNtNaNdaaUGr1qQqjv3*c~us~ zxvMSqx*%zWp}}6aVXwiWIqa!B%-GX95ZS?GDPaU{;IrnGVRdKSYN25@ql#EZNnn(g z>|?yNz;c)Er_EBWMNJn_%^Pa2OAlcO9NOonk6~21Oty3(m&5ty4@vcfLa10Oq_HgH z3`$i{zMLyoGKDk>h3fY0h|yhz`pZyNP9+JodiDj$IGHGuL(=nqq>Lb=U;3l{JX(YI zs;!Wclu8j-rFSf}XRw?$VtUC<=nHq8GlS9on&0!AGw(Ime7oOU`ZfV9ZNMU{j(jqQ YS&9t*2Z_D7Et3%ZDx{5C*gL`f1s8F^fB*mh delta 897 zcmah{O=}Zj5YD?F`PjrZscA$_;>Jo%mLw_$DUpH)MIjQf_NGBLX6>6bU$`mSgP0yF z3VUg1^(vk`cqnxB=EaJLKS7W}BWiBqMLo3YylIn0JoK{6yz|U6&pbPw%%8N_5+619 zEs76h|JkxSb4#tJscKx)N;8^8T?LDJOkrBP)3g9CIfILDHi=-rCaZ+JgeR^TnSf{f zM1ZQ58?574FMtkz^gu5`!mV=p0tV+0XGes2es_lB{lff1;o*jgb&z59+}|_ElXICuXs^U5>z1EFBVzkV#@Huc^ zUcg4vRWItzxrS!x_gU&LX~y;K94?Mf$#j;qrdqC8D!drU5CLrr+v46$!o4E4FxuwF iA7h`sgdfB7)YPiRx(z%TofRG$G=|rsFWJ8RSIJ*!BP})n 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 36c6c2e2e75b0250370da6a9433e568db2de4cd4..8a8dc350f98ffd1472e930050dced55388edbf8e 100644 GIT binary patch delta 1191 zcmaJ=&ubGw6wW5uCcF93iZx)9)=7)DUE9P;52bqZ7gAIT1wB;aCYd<9X0tV$&;}9p zAXM0k%=!;_5kZNPn~H*>;-RO4B8XM0pdP9R@npd_o8308&^^q)xAV>S-uKPhCqs|+ z^H=#>>76(E`F-0CEAsiWtfh!-OlJym4qGH})*^!GpTct$i&|zY#Pjg6kK??JXWR>p zyG`!|lHQR~`X(?YXxJcWw$K${f0P9&dpQA7BkiB{Z2?bggtK0pR(dA9R1SXFo|dG- z1zeLPG>()~MMMbENulqwV7BLRK`AK}MK5KFiorS_yk=dt1_)2u94VcfFd3zSwHBbc zcN0CmC&t@F+lc{YMFp2N`c&wm4PlJ?LobR_>^F&%U)3y$k+$nrvmkt+pTp9T71B+f zlb(qnKz;y3FvVO^HVmbp;BsqOA4qB19W(8CjY(~%nefoK8sR)1#=;nzOzTowm>i`I zSGgGn1&N?7KV~Ppy=pH|4%1aJ$U|f5F4__471VC006iB$k#8-Hf2H*h;+LWL5{sx5 z8s>O-N}QzdB840?}i5tww`mZ?WcRv^fRFAb2C{tT4icR z+$-w>RRvI0&8j`{aw-1vcM!@-uD>i90$EeGrP%B|fl2y$>lgP-hJ|7u;>PR*xJ*uVB**=vlQ=o57a)nx(-! zHgZl*V^KoqqobS`1}D*YA6@0Rzm0bt%f3Bt0jn;;Vwgfn)-XF^z|X3(jT;6@!hfqS KHa>MubN>L60FUzk delta 779 zcmaiy!D|yi6vi{|ZZ~UVnvk-hNtTU@CQFmFr9wUQrl=Hp@}!osX(pYlNmH{C4N|BF zrNSJPw|W=X`v^3|BKraYL? z?|uWn0D0g3%9&gFV7TS{&z_RzG*XL3$_nfm%g(!`+BXybiU8bd$+xQ zEAFujlUR0+8FQ#=JW87@IJ3HoGYb5b-ogD5>RdvKki(AfPy7n}a|QFu8X#dt4^@TE zfrXd}8^cjW!k*7?RW;#atVkqSkDVvSU?W}}{lL;rjzl6X%jTIe8$q;9D8~XUyu%mQc}Y+U+o|~9s=$pt#imJY z>e1dCk!3-L$`L8e-t{iDHIf87X2A2rS+jv6S6daQ(_NvS(-dj6O5MfX9E>E}&xfkC zW7iv=4R?}LL`Lh3|1r5kh98UiIBmCEZFrPQ`9D(crQ@r(>2z^%xwdRKsjzbK{T(6P Qby*I-g46Xk4_+pJ02Yk}-T(jq 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 905173e001f64db0edb96c86d3b7f660a2e5b658..c4a9a2b94d0373741a2d0fd21ff62cf80f022213 100644 GIT binary patch delta 1256 zcmaJ=O=uHA6wW4Dlg&1b1ska~=_Cc)#-SmiUYdHbC)|8+6wt%CJaHhv4CqCn)*Ml$P zhf=B2xS2|!EYce_1)q|t`Y3{BA%qa3Q4yUFIpQNFT$ZYmE~(X=B5ACSk&EUzbC~dC zTf4v=n=m;^#}yaQ$o@a!9KlE`;i@i`C0s{p8R>9B)1okFYZzt@>bSmvFwiEXzR)E1 zohF17`bPT6mqvj^$+k0ov!<@&%2pE}7^496@TtQV8tH;CPz0=TZG?iC0j8yQven!&pSjhd@Gw{Z_-md4p6C1}ZIyw^09&}%G z`u4d4^fRE%7B%dk(<51C4rH9p>;f0cpubU&@)FMhGoO-v!*fxNI709hw&F!PV`9QCH2M$2Oiao*B)W$4v zhr6fI6ZmKZ)Pk%xYuJ=mSr{x~t=Nv~?QVs}A`^bEJtKXsdgK?!{cP2G)_r?k09;;! eMKgqIzJl2$4gP7FeYm2L1pMCeTC3SR&;0==UZh6= delta 782 zcmah{&ubG=5YEf)rb$fOYzd(>O?(MzlciBnDk%jkLQxSao^6oCtWMU=57_jOL$MwN zg$1qidMhaOAJFc}lOT90Rw(MtA7BsSe;{hXdA6G>3cWmL=KJQGZ-)2nw&tslbb~xE?uZ>Fs=+8Ike-Fi zETIuMY&P2Dua?Ko^bd;E(qJceEdgG{&0bRUPSWClm8!sn=#(M25ERf%PZ9P z2`~3^d=)D)1;58GutRujpm=HnQdX7)0z@nmF+lD<`i39`ePscA_c&W^wQM>QM?N@p zT!MM{>9gICAz?%OZc4hU%=WxllX6~~Hn1k-yg%=ebf@JuQg&wGZ&a?Ktx?knd_0(o zz=vJGRL?0Xcqwsw6xZ=hEQ1aG9Jfi_?Q2!7PPc6et0B{H&2+Bq=J-~(qi(2Xb}DsS zRPfADiK)1$je5&N+l;MxnAlQ|EKr-(rN?n2%}T?R%?|wvO9J;C$kGR~y57q09Qy@8 CiV1=M 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 d1e7f85fcbfc02bbc21bbfe5a04c1f98c2c57e31..dea8e0d69840e370209584ce70d5efd80e504103 100644 GIT binary patch delta 1192 zcmaJ=OKTHR6wV}>CO1#3Hdx!FlU6hhwb}=zv>O*{l~O?vSCyE@jd#XOCS<1CAceXR z6b3==_yYvp2vRj`QN*gdDiv40pcd4Hx)5=p;JNciQiW!5bI!fr`ObH~duM&%*D$}x zUzaM zCcWxOx`#&TUC%g@u}b!_h4%ROL|8CrE;A6-C%iS!Ch){YI8)OQlbCkXivP{l{ps{s zTuY~g2|+At0YMPx4V0h@$afOy(E=`tWlT44OeBlf;#CFG{*g;i-C0P2k9c;=W--Q+AbMZC)l93!|5YmNt`?; ziD^GTz5oR2fqW^es$x;Z)z*F( zQ|ob%AEyry?|bTk$k>1!zW2ykIk$K8As9o^61SA=^ijo>{rYv6A)7TPVQ~Zb}&^c?$`1 z58x>j0H2phH}SAydMn&sgootIE3%B?)ij^C-jz%Wm8z1*s)`Fjt|pY{5x&t8ySYiU~%Z!^sUWKQGr*NqIl$@m1D%g;ovD9C{YTnN2 zWJID%kulCqU+~>^ck~a({l4G6=GpxkpwcQVs*cK88M6WvK2wPuTv169zF29sjyh(! Ezr-zrzW@LL delta 745 zcmaix&ubGw6vs2&-6p$@X}89pCRsMb+GI#-TU4T66_rX)9z-p&F=Hp|rfIuTx`$vr z2nu^p-g@!sUtss(Q7HK1BK`wv!64$X7ZJ4Jo5sWlf|upJ{eItfK5ypx?B|lQt~|b+ zdZgT+9zR{T7FVst6t~=Kx7liotpz-~5OCF(FS4~(0D(W~dG;boh#bBqZwPq~52YNb zz^iCQ=azGW)fU;2UIEeA0Np192RHL7Zznt`hNoL5B7^*!e7M39Dxh5_sJPb zZ!(Wkvq0-hEm}0oWfPo{?1a|cDlFa&+ChOU{`9|{27FUblCLnM(JNngns;thdCDI$ z3&FjhJBt5!hD$s<&y9IhRX@fW%Xoct7cZ-yuj~SJPfhs}(hMZ*h=Pn4i&*wCkvq6$%CB@0n~9^amC$725TMEi z+GpX;XkPgsfZ*Negp}qlVFi)%V>+}o1GdM`nhp;5(Pq_ddCM%Y8={TXn0x(q50`XX z^M`A!W!0U)f=&H6k#X@%xNm%ikf-6^WJfyO#xdK&kL#;TR)dLQ7oXG?!ULD*@O5o3 J%lM*LCWR&F1h|Y*9&Ct%63KX0)xtVzqqwr)!4jERE*o4WF?8hg+VmAXi pT9HGNiSg-XYpw^(BKtG;6!&oECFZ7uKT)2gfpu!zM3zoQp~;LaBE0OeQ!+SvSVB@ON~TPn+{h|6@%Vp6md(c*eVNsJ zgo_I@GV?0*fRcJ;nW^Q;`6;PWdiY_?_{6;AjQpa>ml(B0Ig3)$N)n6GQ%k1wsKn>y zro>Ds{tFAs_Op@dT8$z%KKaQscMBZFLOvJN&ES zCFPd1>R*6-lPr)M+|`%L?7U5_c#V4TlL-FS4TKQ?OrINM+yavVDM3UEly!ZK@fr`JR3^4y=V*b%CIZO73sNIzi^*exkn}GM=?Pj-~fM+E5(+sSE z;S+L_j7!+yV~}>FL>4ZP#S2hhfoT!OrW^S~#j(n22ghXfV#>LdEc-<{Z`8=v?oM8K z)`)w#%;paDP5cJyuzEi|K$Z_frcEobsQ@RN-|B^UV~CrxtP~2_;%F{xN@%)=nrGSc zF#TFxY#qtB-&uhm(DxJ1)YwFlfQ4ii85c8P5%$nIkqS!#=Xerk zbkCe7D03RDQmvvO^er4k*hcL>^17X%Z~GRiR`a9zPfU6}ko6r18?{ZcBtL3Z7}sh3 zgE74{T2W3VIk3g-N>o|R2mH;_E9fc&VVd7|lF>QWq*%0ZWMwknE4lpK)U(Q%9R2S5 tQ-3MS{_ghl{qe_d0M@xKNif|rVdgOW2)?k6G;Bwt3cQ@_yF164%0Kt}Gm`)S delta 693 zcmaJ;J!n%w9Pg35d`Xj6qA9eAUM01$wP|ru5X8Z5R#&MpT;Dr$7nAoM?=CeN0&x&3 z-eA2G2PdicF-ivU1EDw;2N6WX$xd}}aTdInn5Hf+$M667`~B|!Yw_od(J}7tq&JLp za8ONJbE$%|_g->_U8E0G$&GIA{9`tl2yI}`Wu zHIDoW=1Sztb=PjxFk7(Px`$X9RoH?}QN>5~J)nf4N2sktARr_2qvz5MGDq5ElAI@5 z5+b=}a(G$h4R4Ix5s5N)t+I!F&J=kdUmN$pio6gxJAECu7^DtFa1Hw$H=#`}PF)B2 zt)e2)k|G(=>n!}Y^Om})+Nz+*pGh}7A@3$l;|a-$b%{VhZiR4Imp0{(XdApAG{m=b z?j6aIl6)9Dk|&WK-P7a!O@=rbNLir{KcNNk5}cohaxsxPt%X1jQJ?h%7D!ygaNQ$_ zQKqEYn>T0wT`()3$B%+<1Nw=tn*Q_fs~W4?>NNb`kv$r?k7np@U%$M10BVnuss%8+zY|N~`vAk&35+Y(_ zj%ZCG`Nlj2!g^=6YmWT}V5yr-?}Uy)Jyy-?hl#j@>Npr?`VQ5gaGQ}SeUfUnJ3f8| F`~lK?@IL?m 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 3975cd199bdf0501d3ae12d325dbe2eec74e54c3..0f5acb7780209b7740e44beee181454d6421afa0 100644 GIT binary patch delta 2223 zcma);OKclu5XZCY`kBOu9ed+PY_AigNu81?52`>z=>b)uMO9Ow5~&HPADgVVj_ufv zgrQN(Qz>#^%=W-TAV3ikDhCJ`PDm69AyA>B5*IiG)JjoQL~jVBh?!mQdTk8Fm)-B% znfcH6`{tX^caN>ln$MZ928OSg*E+e!((%PYd}%nHEeeIw?3K5CjdLv@Uw1GJyK#g0 zlVLu9uT4>QbYf%M^rKB5!M16QVIkYT&0S(zT4J$<(?U5G;~(bJ*^-0jdAR193OO9H zm|=b|pUaohxokY6SX^>X^pnLi~qMXbxs!Tm5!9Kkj|z_bRNUM*2cAY3{w#4^mZO;NFF|N?e9<{3}T2~ zC84kcA9e=doz6+-O_+9s;jE`4^g1qE3`$q=v62uu(ekqVyu2z8DsylzymudvMMzqt zNBD>hKM*Q3wpSdRFAY2B@t91Hidp z53?T=pRy?n=PEQf#C)ZNffXvk4VBVC8pV1yaRG$(h7T!mgHfcH39m+nX~EF|e--QXlyb~XtWZI z=<)j%DSYP{HBbqARVrcc5Ie5x_Ebw|g#Bm9jKJ^V2d3(&I5EW`#kQV`x9LHFZ@hch z!@8J8hXORx8O3z>5gmFNQ|O%39ThqxJ)_XERcmDkjz#(!O2tWV`r!WO66XDR1D=Dv zUZrRb`W|6dbzu!pxe1;!;d!tgj|+2LX@bXD-xS~vUoR``DjFB^Y~+&1JeRc-M1$wp zb=^_nLYnW@aakcQp86w1R0t*7s>RJ(KG-a< zOGqyoPr@x&?g?_#Hu=XF_*2G4cnUrb4SAb?xfnh%;V}M`#weXPgcdE-GNg-!smiyc z=5{nw8g@2_qeQP!LGKO5fI$if7kWn6yZXul_1oEpn6}jIRL-#b{r@Tdl#doLh~;cT z54qNccfcQ-V{Im_VYFII%4Y1K3VarN)Jrd7k7yD@N5$|_L~ca`I1rj-1I?Y*!i&rf zmf{%9dF&PrGybct7`B=e1Fh?h+Gwi9@Qdp60s_KsH_>MhehS#zx^N`XB&Gz6n}@d} z-6CEV)?{vJNywIrH$^ZS<@1GHQYaRM6rU*b*_EYyIh9ND(WrX)ah3nHQ8A(746eDD zh{L;9J}8|~2|ZcOqIN6nRucLlayXhplZrK$kV@seAWL}~+EPL>sg2LOU delta 1720 zcma)6O-vJM80MQ{uq`O0gtoMuaj06_foe4VL7Iqr+Fc`y#;92(q?Li`I8bN@6%!Hm zC##!D4Eqji55{OB9(Grh^r$iF%~erP-aP2hXyQQ+CPu%v?Lga9V*F&zSWBe! zLjzheruUYqiqPrV7~g9HDLzY2ou(IPrvg33;)=^) z#E|*BnRl8OD}IGl_-;k$rV4h$CJ&7$v2-F`9GuHhW-2RsP3nWC{1rL*4+FXXDGRhS zEWVfo5d>!xE;=0y5Sa6}!*kCn8%q;9hiT3?iLj%YgYR4}zULc7*evA2mx6tWL1|JU z^*k&zwvnfp%E1EWh02&wT#Q-$mkKQUjCw>`R45DcN-BoC?k4gQL%0fP7ejR9(9&Mn z3={rZW?>0zH3j=WjZh3WxPQ6rw6(buFv~0fe(Y)^HkkKB_7wng^sz#bQT%1VZmDuZ z!!>u9c+tI8+C}%<3Z?DzY=YB%2jSqFH-eSrI0}})ThAJ+tgV@4&%*I7B~Xp?%eEY~ z<*I~DK)eC?-s>Y>nE37jFVV`pp!mzYG)QG53-!JL*^7Ry>M!~|maqOq{U}zSL>Kv} zp?qw&_+WkNpD@L*ZZ&H1LvI>HGRKrQ^$fNouMXlN?85Q*&FYwOzJsuk<@b_5Ftj&? zI`kcL=apWnPD`%-it5DaC%55e!PkhZ?S}!ecnLvQV0~SQ;P&eMt^#i*6TnO8gGjJP z+(0g1&<%xd&y*2HSAi`zH+(^;kkPW1s~)NHv{WfA(JRBO&eCJE50su!gOwQW^S5 d8}{MYkc`G@x}sHlIGa{l=(bjw?EUt`Vr*0VFy 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 YT@3VU7D%GAI71QWYoPq*Z3@wh05O`kwg3PC 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 9f099a07c5a79dc7c180c08871abdc0e3eb9d5c3..c99faddb7abfae46ff1e9dd8649eb240e159bcfd 100644 GIT binary patch literal 8775 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 W#w!{bfS9a(Kz)eJt^a`@=l%vV_e#J3 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 f36f554c8c33384e72a1ba3a6e065b8680274304..5f2cc142d3dc308bddd840d33a7568ca075cd1c5 100644 GIT binary patch delta 1521 zcmb7EOK1~O6wM?vNoJ(^wMK2ybkahtu~Y@CQbApa6~u^ZBWXU>(INtl6r`wcwKB{(a~8LlT{?o0=Y z>XvzyJAlvoJMm-h?2^m6&*p02+iVnH_Pt|n;x}w3p7w{h8>mbF9~#R!H;SPde2hQE zJfm6oCt!Poy3ifGK@ht)r&5G#DkTn!wfaO!+9y|P10pQ@1yL07w6JUo0SpQjYhDi) zr7^i8*JQPlEy-HVz{aYR#!;gmamY(rM!eqPz~BX8X?)`%W$+~-YLc*P^g{x+CRNLh z%(|Z@FmQTFtfzG}E81Ebrwxlq4E?12Mt?xR3-vsTB5%vRfak-h(QiZsl-T75$QOX{ zx=<+PG)*3prK+=f@GoiT4gOG?0aA%Ik4VEapVE^4=Fv1Za;d8uLTF#y$%X}Fl9=bG;J|)LD)PE)A!_6wPcRh z)==LFjG4G2SJEU=ts$v;NY-H5oIk7c_cYuV=`%g+BW60hEi}~Y46`P-AAN5ESpvl8 zLd#jj!F3%SgHGT)29A1ONx&Zs`{z=Ipwuu6514E=;DNBf9&zMr%HIb04%_nkm@zyR z?rkbhY8AlO<3%97lC`#=y^rRiei3JtklaBlSQ>4CX>xsS`1?i7ciQE=Cphcb(2SqFZ$c#XdlYd(Q4%? zcv^JKnd_oN;fu*fc8K=?qWjdmQk$HR4COvK`iqiQu+LbHX!vVnE8~Xgi#K+*|7P63 pn8wJ`x1PQi09KyEqUn4kSC&YK2A>**IL>M)351mAjXf(e%pWZU20H)% delta 1565 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 Y(RdY}vqTT>s5k*HTUzVf?aeU10d4+`-v9sr delta 723 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 E2ZWES_5c6? delta 571 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 delta 508 zcmccW_C7iF*34jzQA~nk#W~#Ms`I; zi^(eN7J?axIccdW>8biK#^h9XbtxD}56OSe#irW%3lw#woQxLDn8NEs$ERDIi4|Vm&M%-jvoU5NYX*o0C6s zX-Qqrkj}WAA(O$JA?ueR=U18pRB5j8s9`e50$Xk*smTj@6j-MMm0y^gAgM5U4v#vs zbjCIin|}*XbP~c4kjlv?q}&yG7#SFP*z=RJN-7Idr)2ShxEv{|#mO-KWCQ6Ot{%3O z)RM%^oGFQu=SW*JvH*>g+5AcRFC&vPt TiO%8-MWBa)@|%AtMl%8cuBfUR 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 b8e5012bc26346a9e4a1af89350db2d79c2f8b63..16da55127859df263ed11a49c62fb2c6d9e4477d 100644 GIT binary patch literal 8691 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 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 889130b9410149f7bc7f7a88534a82aea0f34a59..ec8ea351b1bd38d64be824a1bcb57c3a26fdd377 100644 GIT binary patch literal 9673 zcmdT~>x(2;6`!4*SI={2W_L~4%%)e_WL9^&6SF>8gCxWVvSg7EqLRc)b=U2_Ra0G6 zse5Z?8Vw{LmSp7$YAOmoKE>!~K?D=jk3sz==szK%h#&zGf9KwM_B?iGXM#G=JzclX zJ$26SJnlXB)GL#3{`&Hm{!>dL;%>0hvK=P~9VSvWVRk<*x64rfuolo*9KK(+v&Kqh{y3%KrTWa-l zuHBFALCY1-TQTb=z8$AT4(f?#*ba$NB^oP;Zly-LsmO*bGUdyvVHLvj(`qV{`KFri z-GHSxla8%sZ7E~7lSt@Fx}A0%L3&JgeOm|&;`d}=56rI_CyC07j@{jiS&wKEH7)Hv z-Aefqzrg4Def%_EQ>@Ly0c*!e5U{wt9mbpOZa9c+VcC6A{Ru%u+m76JpMlbr%&FXM zIR+HbD$&XHZp8w+Uc51$boiK>bOVR&Q~)(t^ZTJ2zXTLNg3o1q9>nJg=?SP}S8KNp zgxsJHd#Hz9k@H`_(p)b^-X%$Mz$6cyE2(N{L^cJ@45kPcZ?TkM_yV5tWackF zZikVC&j>hx3`4(bcR6c+aR`iq_9Lx_A8I{(t-bTfYi-}{v?D!Cqix|zwgKjwcAw>b z)pl%Y3mGR}!b`N_!(4y0qTzM&HyA$XH^W}jSguv4ZxOxudWwEkO?dIfDQ&HWhISO! z*(xc8?s-)mDzSa>AZ%v{TLbJ2J!Uti{5k$S0r=GtK>h+k!N|6vWkWK6Z6u3*7jaTC z{&?mgHH%g)mUEAGb7$qGM{NozhHPlGlX8^jzO( z&h;GL<1s0r|H+Y{=WinhCn{Ps)LaM7%%n9Egylw{L3b=9u|d_3)*tu%W)CS-G`YRS zwE69$ylAQ)k^)SA0D26LD=^*!N=f@g}|NA8CJwn zPjs*onQh|lnK&UwG>K?5scVYQ+r9uv2tSRtUBOzj=Ff=SP)iQ$xq;4F`vP-zgl1P> z_>30lU||jvgldloYzk`GW`elp(3*<^SMUB)V`GPg)>|WL;}U221@B&58h}g9DgbAD z^fE}>M^r5r`pEN2{XTva{b+&J{=NX^+FH2-bDy_C+;bfEk1M1}??XgdLU;BM+*b_u z#Y2$JYf}Dx(m7BH{?AN=S;WXc$nJMaAAipypRX0Q3`$>ya0n}=R^Pr(1=IBxv6b7h zeb;&MYO@>}*nx}Xy*?PCJPV}V@mYQH8TF_-BTG--z=s4ugjguyzX7BO8AZc9SLe4e}*rEk}YX|29RW~>@Dr}w~ zr+sXKV%x6}dqZ;CvX0XDqk1WW_hll`2M&9esT2C~YCIaE!ia_&2#N~pw zjeiGuyPAS7C?8XG?QYI1P?6~Q1KSN!?{z#(O=Ca~BNRsyS~4|<0k#wQZr7FRZGC^+ zjsyH`pmfbDDHJ_3xY|`X5qoLJeI`*vACbirPMPJg2qBtGD+N^*{!&NZ7 zEezzLp;k-77163~=Y73G=Dkf!jL8-tLrz+=+D}IwR8OJn-fOsjNSnO{(nHzIONnXK z0zadH!&|`nKIr)^?+5tj{gA$XL=5ICN*)sH%mSiQ2l!kGa3%BY0r7815CicNo?a5y zK>j^Z?H?LP0r@?!x=WD%NEjU(Wb&j^&EvsbNkC>L*#qIflnB$If~Kp1``42L_s@3^ z?)xVKE~N^s;qh=?F5NdWYxcnQ6D79ucyLBp1NT!W2ks+x5ANe90xkt+rsMI@tt@QC4sj27zf!_W=_n_y z;rral;rpe#$CsT5z7(IilKTUEU@=jx25H|h(5cRA;a|S3$SS}F+D_r1)@;iUTlYO$ z%8seMR|xbA-ph9YjP^lUHD=^ESoBIYMxuLn$kN0;tHyeVAay`9S~q#GLW3L^b>Y&b zW)z1w6hmp#>n^{nkD=v)>DWJ@#0+zuR{#lV?F zMMFz1g^8?lnbcfTwKj5RgoXDva^*$Cx0E5DeP8{?$YgbfbPxcF10r8HP#1hV=qKoP z0&xd*<2YVEP^&TPhOuKgjH+%thT7UU)f9rFhvpm*aUBbt*PgqBCbU|#6B%0NkQ#U4 zR0|Fgj8!-ufYk#oT3~U2!yK?#(j!1O5M=&xC=x7jLJN&vP@O>mi}M((I#YW|S6W*x z`nB3cmn_E>bhZOUGAXC?fZ$ivJd_a#0b9R80k6r(EHrv_&t9FUUw8=G$wUJS6E_DY zpTk=k#U)&HnW74w6ZGMTzB@o^{nVKU)nddV^yYgEv4}Ja$>(XLV?%Zd4s{QgG7{I@ zZ43*vj;R&h3gdn|Rp*FO3jj(B%^R3U>i#y1HZDJO4R|ibz3vEm8Y$U7kh7=mGr8<0 zi(4*}J^c)XeVfaHkB2pI28JkdaCC8FMy=7N$11|JP{1-R_S@==7~<4y$Kr0E`}n|r zC;X6He_jmGHN~oqxE26vRbQJ+%MZJD2JKpxqq*6I;Z3{&Wep)_Zzd5EF1_obUtr1d zz-@R>*mZ**d>~H@E0iik(ix$12jskdXq#xH7g9D;_zc=w4nlYc5jevM#%*;D)q%Z< z(!_Rs3okLClTWXuysnnB7i-|Ge$S+}+v+q6w&=wcHDl5V;uo%n6~jevNXwjy=$BfS zArxFoBCEn}a4t>nzo?bkDD@xoFu3)K3p)Ryw`4#*O@rpQ_dCS6_a454YS1t(T12F8 z+!p*2UP00Ku@pVZpG?$3)q0xU0?vE1tCPo=5em|r&d6OIF?3j~VC_LC^b3d3q-RG4 z3+hIVVC>!Phmu{E7ibMmI<5Zzx?j9_ delta 548 zcmX@rR-!vmy#_q`r`Q#_3amq1MAW02iU~r`77GxwAXBJPHJO!?lO$($}Ycemd1f%%mdm^%v10;D=N;9;xL>U_)ujhJ4(y5WlRO?;+yQir#$%$pBA%p z#uu=|UHFA2J4?$>c9iu{^a7gM!=9g%RZ>}yIwi{+#N|jyEl!5Ib9Bsz;T P6oJ73l;51E63qwzmi@9f 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 5464bcace84a511441aec2e8cab13ee7bfd72cc9..a49c63c0895ec658a38a0a9f157cb7d247416e1e 100644 GIT binary patch literal 8705 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 delta 495 zcmZp4`KQX-z&iD_&_vdb$qQLU_%hgIr(|&Uu!N*mluVgCc|NPy#N+=NSvDVMJj%$p zeR40eBBRCR4a^pT8HqV*sVV8H`Y^`ikId>)FpeIa;Q>_V3RJgQjpYIpVH33A8sQ9> z33{2u@g+r>xv9k&Q!?bd87D7b-@+I>Ig~?w@*Pe=4*R71{2T>c-N|(v>XWTF1y!ej z{GtK$3`c5iK}KS6X7QBCQ#2c=)B*)rd)Tx<>a`{pa!N3so?OVKC3!MKI^$@DOa^m? ztY3zlUujZ?SdWduqlU>a6D6m#PJw7gQKy z&R7BGPvsV5gsYugCFv%e@vnzHKPjuEvLJOz#{V9Ul+@y6C};8$$#kwBwv^P8#LS#2 ziIcsh%otgKM#*hnAoZJ($&_*PT$xAA>imoh3|ZVjqPT}MFEKY2q`MgC$1IRUXK{ui N(7QnS&C3*`83E29t#$wa 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 02ca3c12fa69ddcfcad776759175a68a450f9601..0d1087e219b96d27ea586ab1f77da2cdd0f4e52e 100644 GIT binary patch literal 9995 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 delta 563 zcmeD7`=HO-z&iD*_(awYT>+QO#Pp)XT)oWV__D;D%#NZQUEMOvRf(Be8oB=Zd$+>dgjFXetFETPuHsScf%9Hh8iYKer&diqy#mx#XFpvuq|8@GDQ2 z5ikIY)M0+s$*0=FKH+(H2!R7 z-n!+^fU9n7oVMu5vCvpgW0_#pCGqDqAWMPdV{=~!Ei2yMr+}50V9^Y|oK+C5(BPHI^usj`C*Z-#OZCOJN#+-= CuztS) delta 745 zcmbtS&ui0A9Pe9_E^U{#>s(!zwWQ3sHqhCL;`HK0Q4x9(JZ(a1qu<7Mt)w1$7|es9 zkjwZ!uZnn6QMQ~#Q9KHI_Q${qvcEwGeqXzG9eDE+zCS*{-h0_O@n}I=R~}9r-cat3 z=;v@Vp>Mp1?^T;$RK{fgC+jfw7Bw}?mawQUje}LYVOMV2$NB}{R_CYt&BCC#NVxNa z^DX(g^j`{S$tirJem%5knz!t>X&O1Ry4o`HMxkKfb|gI)<}kX#!O!32Ydi;vSNu0J zgVpdEwu7JLX>3Mf%kT?y=-eqo(i<^y{2uS|X$CVOLAnH)5^Y1CYS)`!xmA}VADAfJ z6g}&tCsCv!h26eM0)7unX7k36brhNB$A&#{F>YvEkcM}VxhxTU8?89O#tKYAO}iu? zVSzwja1uU(?qq2~gcTwLDB^c~97%<)mK%*)_g0G0(o{ED4*m=R2Tidz@kw+_K0TzE z5fPn}LUH)mN$*N8E{WmmSR{H7Awnx#L_Chy;dTWI j>F65KoHl)2FSKgaZ9#VF`5m!%;6j%E1gGt5sb%&T#^drT 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 ddb7ac8320ab2ab1e97aebfd5886192b00539e7c..43b3aea3fcdaea8e29aa8eccaeaae202f86cc272 100644 GIT binary patch delta 1230 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 delta 1157 zcmaJ>T}V@581_5cncLJgQCDp`XRg}jPemG{p-E;@{vg#wP}+1y-yPg$J4$)sA0ZVS zsCZA%O_X$1QW)zG=_W$3=$Gg!`XMhW=%%Znkb1wJSqr0^!}opf^F815KF{}^^9R1x zh~wh9-ohK=HO7pXU^fKy0-iLKuo|2;jAEZqmzUQR4)(=^kxDrhj{0JQAjR>8u#2_e z)G8NN8=7-=gA1CW5DZY1w)-v%CJ|#sZ~j3zGz4YP^#=%@c*p3&RxumRVu+1luE~if z!~$`IFvB<{7GkJv@pX#RX`ynQHx>iVDv@kUU9@Cn70OY1JU}kOnt@Q*8eqMgG4iFlMV4 z;4_!n0v}200!ehJg2$&#YPvF7)2(jpG5uCl=I z`7n+ie4e{nfCYT&NDIP1Oz&`$tJnl@cmg<;SG*qPQ$g_R9Pf(ydAMXBn7BkAJjHL$ za#l~e%D3?Nw^@n|Ku`%Q=~kHn92?LR zBv<$>&6WLhdIk17vkG+Y`Q_r~JJeF%Gd}=d7iJ0V3?DnnOmzQTatpTSu1U5l*WpDc z4d;2AymK2opyA9C7q+^$u?c=e{+Mq1?-Jc%bK;eIvr#z9&{`UB>5oJ{y&UJ(nXeOb zV~V*G1K!$_D}+@uW8L!L@PMSrSNYT&l9ZmMIZk@3avG9*T#(JJ#W`=ORW*gA!C<&w z3*sm5M*3aQMMzYyU1Y+0mZ)0)!LVVLsN~!9QB+Gb7?C)kLhncBg;NTY&{Im*iFGS9 KCw7$WWxoKa#DSCm 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 0000000000000000000000000000000000000000..0a789a3d72bf1dab45b26422bcc940a9e61aefdd GIT binary patch literal 13166 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 literal 0 HcmV?d00001 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 31f584c4c229086c483bedc42b3d61fad8d347c0..1f6c50727e69c0a611342b207a5bc088889a5989 100644 GIT binary patch delta 1926 zcmaKtU2GIp6vum~o&El7w^O^jEwd1GJC;=vKD0Kb7P=Ih^g(>1wd}_%cPH#_*_lNe zLFj`9l1Yf1H6bPj^~r>2m73@a6)}Fi5Mqo?BvE3(1kqR?l=x!exidTa)#AQv?!EtW z?*IPIxpyv){y5H`=HHx-y}_T^8QPmq9WJK|iGo}{EYHm4QW;sTQu}O`I`ys><>Oiv zs(P!cA9D-?gWS2|C-*X~c6tgKUC8}DvlF=$?J=OX~N(A0@CmsDv5m9LwIF3O2!$-CZ+YBZA(mE!s_Y4YW<}sLj}Xxei#^n4{VEf-b;69+6Wf;g`U$ zk2Q_OK$)<%ckHQc52yW681r^*zuS<}U(w8O_1)qdw+GyJ_6^4AT3zR?>uUA<8yt0*i;NzB8yoBvUTzU? z`iFSday&Q!`^gt9=P7y}bFHAa8e<0G=la<~c-xHYnZT=P{Y-0jEK%(+jiLlt(7J%; za&)4?%+f9B#-P!(H<_&jwXR1$+FLcLZ$Qwg+cTv?0lu?`;11~z)SfTpcXptNa<`q) zDr4le7_r>n8G=|8mdpov8omyWaZwIde8ZtI z$M&|CjQ)oE6gxVzE+~U&xj+Vk~Ag(f?{p^myE7a5pubqMJ^_E}sx>W!Z9` zVGDxy13c-N2?4(|mwHEHFJKnkUP>$4!n|Bn4zQskE2|l63^rkh=UF2rLOpa~8ukei zydvzz?;d`FmTw6E5^`qw`XjeHpGaf0GRJ)B&SI({vm7cuc%=I8l@A< Ix1tBge-hhv-2eap delta 1459 zcmah}TWAz#6wbf1GkclcT+Cifb|;;bO0v_ey`T_6NHl81)}}%WVs(?uW+(hJY*N$N zMMbj+4t`EXKo7}@!-}jZbDBvNMeZM(DXOM9G<_77#cp9bBWJTR91ABU zMw(S;G?THEqHdP<>hq;XULaQKN_cG|;@N0OOJoHqo`v;XhDCcRy^2z=7N!zWAG1v47+A~qk!w+IQ{L)ie zpe-V$L!_m}8EnGxzlDk$`9>6$+a)+0$%rB&rHlZ+(DF3gicFBT&>bB{k9SAM(mcZ( zHoMKFGxBf8fmxM+k=C$}K7gF4)II00>pxkw*V*iU$FKXS;SW!xm3_9kn`qq-Yv38w zaU77W7qt13KC5dVnCoq(wx9kB8`}oRc9fWX8x1tJpoG;PI^kv;ail?QZa-B`-E5ws z*ff9mzfB^0vGTy6vB!0;UOnlWvbwAK*qkGoQ|;b%`mw#yn)RW&S+LlV?y&@Szif*r zHiPcgHk!Hni!-Z_I)X?xLQy=rxFR`PX3xJNmYg{MbzZa~as*5#M5!QMY1FR_&_9B;} z-{M=2euFx$)^qc*P2@H!9XD>VnoStW2*JJBoj~70SuONsU?C}0s_`wPIRMr8hoajh z9#$oAC#j^|3&r?pb-|d^!WBGbbFGC*sIDFAeT-Bq@P6JX9onzi#tQok7Bq9l`-Z`; z4bf32Cq*M{Byg}x>9B-?R#Nq%tg$9XT@qfR_#;$Sy8a_%pza+Kab`gJb<+I$javcgPb{Pu4g9 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 237e0f6d180fcbe8768538bc426b76aa00a2ed98..6df723e2e25eeb5c6a051b3522a5cd726f93c7a3 100644 GIT binary patch delta 656 zcmaE@@V^Y)zZRStc+ci!?GaP4;2m z!nkxYBZs_Tk3&voaY=MqPJUuZESG|U!ej>y6$LJ2FeQUMc1i|k4}VH(T4r8mNoIcD ziGx(a2!!u|YO^vLlDGF|x5-U~@Hq2D6l;7NKb5 zM$$NW0*5@~<;fd3w5%>>$Yw0fknV9r#Tjg17f*vbL>Xwg21|xm z4~U^MIggEt@fpZOfvHdvIe{iVE=@|DY``hY`VeINWL-`LfzwD9o`6a-9-HjP=`93t z2^&!9iVT?yW~k)kJ)D9WKzFex=jZ08=9M5hsz+K;QK6tHKRLCyI5kBfsZt@YG`FBK zB|lj~Q4tcvV))gxP5}jMhIEz`BLhP**s+q6Kd`WiW=Q}AfG(K?atYMQ5+Dyue$DBo zl4S^#?P1SP$||WWNS%^p1mbd}q!uS5_>+COk|*!vGGbwZctmnD2lrn_#`Mi>ypNgH o9DzEr?0`gZ4`*ItZYoG$G0-VlAc@Z63`JmcXW4D$7mQ&90Cot{=>Px# delta 370 zcmaE&@mhtofpuzv&_>qHjEpRscQWo|WSl>FC7U9n#pE+=jhn?;CNd!lFfvZ|W8Weg zn<3}TP@0s%*~68VnVORlpOl|cIk}osM!+a1v$!NWEhj&*BvwIJS7Gu#4rQMy8SJrB zG=Qo(QgaJ35{om7r%axr**K*ZD9GBwtA(UT3#>LntcM#(a7ybGh+^rC(~~c-Ye}8V zkj^-oA(O$JA?ueR=Ld9&SdWInqlU>~`zGhHadRU{Pxj|hV4OO6E|)j6bjFIw3%L{~ zi*pN34&;)X{FK{GI^$mtdwx<@No7Iml#Ks994V>A$xzN@f1YHn9=4R!lEloMDT$Le z@fb0(01c4Y%*gwfkmDI7y)q&fB*mh 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 68a20b708431abce8c89610cb3031f611cc23e2a..b040285ec74d3c72a1b67379db1ce416def738b5 100644 GIT binary patch delta 1902 zcmbVN&u<$=6!vc7tkuWc@EaZz9Ok=|}tcKmUTF6a+J@MV0jH0O9 z50nRr@(nw!)zmY~?C#V#-9jFIS-jZi+TwF!&7S8lPdQk5Z{HElm#g}eml!Y>;k(kXCc|ECJdeWqwHzVZsYenBv3K-x_HGRQj#yT1 zGe=*|$(%Fb`ZYd`r^E{TL!TYu1l2r*jIQUza?{sWEac;rtCCZ3#_u85H`~a&8Xf6` z$GQ<)mPh?#bO>@Yb$l-}&~gwz+&@L55yaQ=FC+i?iF~7qWUd4~&_i~|v^ScYE?ST6 zh8$B8iI7&U3p~0;H(Xv8oR8P%Xnu0X^(DT=r94XH6hHxu^RL$FbdZLsy#c3MZ*WSS z7)SUxNNf?Fr7IkGA}2-e5~+*0N@hWa(mGC?)AQ`6a(>9EG+2gdb8-%xs0JSXpoch} z4iISu3~000HQT1ouLtYz8?FsQy*F5~oKC-sINqWun6-a5s?8>A{J; z6}_Ow6QV|`kUZ3SB&b!dz7k1Q7#F|@YTbzl3FZ0E?m1|%_i%eS}e%5Qg*(R6!O2Ix3NPFcCT+FDYmDG2=NpJ3gWSWf%9GVlTk` znL0TO!>44vFQS0?VaPnWAY$XRe=H17Pdj-F{P7l9g+KDPcwH0#xjm)tWi~YjCw&b( zMemQO6-En;&p_>GAyz=G#0aQ86j3X%CAEP)bsOdd8B`gP7hnX}(M@q3;qoQCa0zM{ z$%&R~wQA3G;7ajOr`j4+VSBv+v`)2FlMO%jWFOhHkn#se)l*B;NAmF{Yy^J$^O9wiG*$&}&y vSIHDrHKT5?WOt@c`~`7jN7O=f+kn=F9{1p*L&U;$57(ePva|ih?3(fz=rn*9 delta 442 zcmZ2$GEbGYfpzL+p^2;=lP|DJPFx`Xq9)I0VV`*GFC)w58;n;N8TU+9WLIRgn0$fR zLNFsSCoMH4JyjpZm@LSmE(PQ0!5JPvb*?~lo84G$F%dQaZXBiwdU>U}NvTEg`DyVW zi;JgZ$aynPKF_`-A{NMEC{4=X?BPnwOwCD&Ps&fJoHBWeX5*CFDH<898EhHsu~Rap z!T3GQnRz8sz+#*|9I3el8HvT2#Yh@@ShavEv?l9wiZh;`9LS-?dNM;g<0zOl705a? zIgnFfas`(VZ>(%-Wu0cI4ePyX!VS zR4$bw6=^Oo(@QJ0Cn|d2fWo;)iUd8hK&4jdfmCg;?H^EyH#@tw6GsSPY1cDv-uvF0 z`Mx*%&EY$X@z3I49+Rs*>)u*dE`NGXcC z`9yi5DBrW=T17pv$R19d)-B}Wx5bNnt)mM!s z@;IJbR@r~rJ>?erE>Y^!Y18(TW%$)vIq^&aA@-qOOg|h!e;}5X z`^?doGcxBCxZcM5@q}1mf9TVF9HW|tkkR&>k=*p`l7)P{bVYJ1&iG^G`X(InmFP&v zJWy+GxGazQ$LJ8`W~%s6WT3?$zQ22lS}lmL;$H^-vt#)N70FyNx~GHemT9lm*Il$a zvKw+piN!)%wKnkR8trg-QE)z7pP||D9ak6l2AA?EkYfM^G|s+LrISG#s&;yuYMtIO zabg_d!yvJFcor^m;E5a+xeKH!;!3GG9ZG9CO-|3So64C!r_x{w%zFy?io~sxZ!h5!AXB5faMtpY3zdVE*+HiIPhpRti)aVgy3% zM?w|Y1&KWr$2i%cxONdnZcG@`H&6wc2k59o;=x4dfV`!g+Qp1#==AW20+emsuZz6^ z_b0046bxUI`L2ip=KCS@y z;3;~4K&>!ZV0;B?zY4JeY9&TM?Y@Xwfi0;G?1}p@&&i-tpS%GhxQ=d$>j)Pw;<<}Z z!$3~7P^pwVt^+rYhg#)EuMFGk^q_Uhm5OZmnHT%Wo`sY@Kq9YU;F7rDE6|w-;bF)1 z)cz5nMs);NbE(@1DrS3<=MRym5KlFyL4vL%zlv$1g}ml)&a7lx6P-_UE%q#)V@j$B w-@j5Suc|3^b1A(wapW(EBU_>ts@n#%HuSg$9~~kVu6wuw<&mw;_oi2r=Nf5%E&u=k delta 442 zcmZ2$GEbGYfpzL+p^2;=lP|DJPFx`Xq9)I0VV`*GFC)w58;n;N8TU+9WLIRgn0$fR zLNFsSCoMH4JyjpZm@LSmE(PQ0!5JPvb*?~lo84G$F%dQaZXBiwdU>U}NvTEg`DyWK ziOH$OQ!?bd87H4--x3iEWHFQ`WpMUzrDdk(q{JuXr&LavJVmo{O6?Sl4Au;`4EES5 z8Pj0=9_Gxvk||&@&K{1`+=7h6;>=h z9hw}-sW7>MOPyIdV+ELfj!Td+b@E0o*~xPR-J~;q^|0qBWtCJGq)y5B-NTWRTAU2! zOlA|x5$s`0Ni9jt%$bsyp&C1-M?7WneI~KV{X%k#EI`v_HlGsu%gAKNxcQ{WBW5;k eMh1o~_Q@M1gn2>C&f*M3ps%vnH(!*9VFUofC!2%- 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 b1349d814af767030b2ee5be83cdb838c3f5acd3..6a98a9deb09019b09b3dc55d85117514ca06f336 100644 GIT binary patch delta 1847 zcmb7F&1)M+6xXgKODokCB91~OTak)m%lS|-H6$_VEd*LM>8UpdWu+Z?cF=xAyCN2} zs3{m47%1*cp@c%yL!pOWih3*bm=@9=(yyBjacC3h-%!Y#8Lce4p>-FuntAiy@4cDd z@6A3u_3K*lz2wKQ7k82$u%~)1xzY4G8#|vB=jJcl=4Q`y>Tcg@p{^rUT zxZH^KTiBqPj*Yrjv*lR>&iKl0{w}ZKB+c7yn5n>1uV>W5aq2pUfSiRowrhvB=d#uG zOK5I?-t5{z*tA3BOhe5IsDm&yz)6Itcfcd&2<>Ugm(G(cMfsZ&%NKBdq z1KRStcH0j59l3tX?71*B{K2~8S^X~Jc$=nS*6x}?00oU(Qo)C2Zxe-_<_>L*_X|+s zk|(w2n=)1X1}_Bb*NG8{)pB@QDc3Z#-k zdX4}loQ?%_B>t7J=T;-%OoOlHcB0-W_t@D%Mmp;8zf zF#ac%cgK;EN);igJQh(YkQ9~Dp1u$B6DsJWM~=e??w60m{el;+;qo=e_$1 ifKak0Qd7e9m}Dj|U}2fKfg8+`-guLpk&$KdL&m#|jQc0=XI5mi zn4HIMA()Yvla`v2o~jRHOkU5fE(PQ0!5JPvb*?~ln5LVV6Sx#6|K<{8Or6}wDLZ+upqq5YuO9aNq^y$4g48J)zk4`RQj3$J zoXP4!`GP%cDXArinK@GuGgM=z^hl*lu4j^(yj@6^kp*a)%;t|me;Jt!88?3rdBm*7 o&B(xz#SSEjdpPqFb5lVE6$8DN1(N72&QJvUGK+ol4~ZB?06Ko6WdHyG 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 0000000000000000000000000000000000000000..e161d121e040a698e75f7dd5ad6afeed0195c104 GIT binary patch literal 5456 zcmd5=-)m$^70x8-?sVtZB(n(%Gnwrm>n1wsp2a~VEFzBcAYp?J;)~AQslKn68v zU2oN$>3$IOVb~4SgSdC`$wx&HLHrBE2NA>v5fMT5eg6x;Q+2!h-p(d*-wY(VRduTB z)OWsf>YVyX?c*mq3--rsszikGsKbIFmH}6}SqY?{4SB5dkMhHx=0DC4OfzM#l+03} z=Vk#Cz6hfr<#GNjHyb3b!$@_C`3=Q=9m;q*UDQNfG@j)LqG@V6)DbTYnbmKFY>={H zNA`L-i9u@ldwfLOR|j9`PMdndu(!^|mT7uZWyO-I7doDrrl^=y8;QQna#Jr;RK(Y@1gw zZH|V~u}T;@!V0D+p1$Nco&Vd|WI6>e$QZhaUF~+1f#=ng%-XHpZJ0JAz}4= zhLv~*f;(-ttv2v&m_hS23c>!8ofiu-RE$?P&SdrE^6Gpx={-h{f-nGWbJHT7W$z3T zE3aC*K9oU54s+)-d;k%{G6YUmun%dTA^x74FGk zTvE$CJhrSpeo=&y0ms#*({bmUa`d9r#!siyD*rhBnr1WL{V)#c*1r;kH|AtK1iN8* z_XpSR{#iRyLa~fcQCa5Rb;~$~ahoLEvfUfudM_y<{#j%ojR@+cEV?|lJBbLLGCcXr zGM`*+nFF(IH#CdMm@bgUBXA?J05fu@~puI!790X}`&C&ta)4*AU zi4OO#f{QyiXo=-Wid~*0Cuj2+;s}E7|KLCSHkUadDij-db1?ch6Sv z?*^^T>Q+=hq0-edXCl)6uO;pOa>JtH&%onPHwpcbocX40e_L!@hwyJ)n7W!ur01_8 zXycjKb2-x48cyi4f8C`{NA?yW-(-&z))j9{x@9HkUoxkt{X`SNiyHL?IkQ7+IID1M>o6wZn zjaa&L{KBjipOkHn;U$}~EN*30bP>Q`w?To*h63Q3W@a^T$v+a2UT)J9x)i6~HfLj# zw4N4g;h;+{%7_Q9K)Bkx)2c{3pt-lqhM%QWKY7z?X>HQuswT6dxYo!8Pz-Lt$gaBU zr#9CJa#R04i!#&|(+g|!)HI8#My5F$$U(W%Y?z?2>bAkX5TB#jDw$- zitTC+GPB*6QpZyB(%{K0vreTYxaW=f5>X#L8BXdifeL&>haO=)=n9ROc9hjSJZqpeQfD(WxvNg|o#Nt7Q@&t$n zxHJ~=24L=_+?Q$K1)OeGY(quosj0&a`be^YNEmo1mipl+7j?72GA+GXmst!!s`UUN z#hVfjz}k)w$!Qw1h!)(mJwP{BWd2!KqIeca549PjZsYQjihJdmmLKEJZiH zAXKau(Lo9=8xw~R56l`4qu>I}K4gG3g_ze5BODIixl3Qz1Qno7dr&=MwE!kx#bXH! z?wX+J7I_tz6AwVdC>-KiegF15W+UN=M|UlJ5rGw&BPmJ1cj!*eVcry4C+fJ{MYlq= zN7Z9Trh{&7c1Y4H07(yd6wIS-Ny?L>w;w(No*QZ3pIe@KX3KwZvOE=xMA>tmc0#WE zb`Q9HSLk7c&6=9^;6;HJ`N@je11E>x)IFyM@LW}VVQ#B&tl7vD;Xp+A1%H<#Nz`9c zLli;Yk23hR0#J8s+cmvN`mBI<&ljj%d>G#O8&I|oV)l8KAjHy>lYK`j;=l#iBmFS$ zg9DSmuuY*tWxYAMa7g5hBy-+K??mT0I5X_=04_X+3W6hhxiC9Eq|QB#OCj>`?ttQ( zUW-07TgCep$Qt!sSi3MwJbp>PMx?};aw zSub19F1LS literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0d962c5b8db94b83fe2444fd5641d83dda074c7 GIT binary patch literal 9018 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 literal 0 HcmV?d00001 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 18f9b3189e6136c5f460ade16ed448a2f6153ef8..98c245218b2138211b6c6b017bc337dd2ab1c5a2 100644 GIT binary patch delta 1245 zcma)5&ubGw6wc&#QrqU|YR#HVDq;<>Rw+nIwN{iOMXw$jiJN5G*=@3$X19kPY^|Ue zSPym9Q=u02fF^3!21t!z2Ntzbwv5io}-bN|2j^Qmk7lR3uF=NV-@xsd-}6 zyk!m%kFlJ|l!#cGF9^z9Mbt7Gyl)O&3C%>TAwxjv*2Oxbpj)9-A1in@y{;;AR%r|k zP#iwVA4CoZNyt(7EEWkzymw7&B-H41e|AC+GsF?HMUvBgK=xY5fDtTJ1Wl7>C9!T7 z+V}VF>67pvI>Sbdk65D^0po*lK+@f}jf8kxPQC5yeg^h-(@i*o1^J$?#>>E*r5lle zpJ}@Y)D-n%|AqD_IvF3NuOr^Ru6}~kkt(S z$OzJosL^YxBDPNVa4eMz+Mm`*%RU?0+LC<0Rx(Cf1T+y#PS~5g zr0c>1=I^NOpawvC1KL6Iq>W{tuSpnwl=;enl+D+Tj<3BywGJG1UmJUTW#jI(F}uFr z+3j&az?_7hWBrzuL6RV!2v1z}dkoV?JUk0m!BvdJ{GkC$(0c@dw&pJCDPsYO{| zs)?rjg{A(osFm6|O>uR)&Yee2@Pu#faK8{rHGdrX=sNxru<{PPG$Wu0RgraQ@CVCm Qp`np9{LHZ4{LRmxKeF+E5dZ)H delta 1551 zcmb7E-)kII6yCc(W@q+CHrsBtnn|*gv^JY@6QhV|Obdb!jin1k!G|_%?(R-03&TQhw8pVg*nK}2n z-}%lt-@Tu|bay#*HT7|QYCH8I8fRPaiS3((@J0RNZW^Iv|3~x(LSM3-#58)5-BeEH z{ho=t8-a~|)9JF`mDQc+bp0~8N#U3f;*Umw7ZBCn?*Io$) zX>IId&GUOf%MW_SLPl(D5u3U5BIaFkqe_4PSUHKC^Xv) zY}@eJxy(3H*iLq=v~q}q=l@GWM7cY6jbGtalClaY7Gv8vbw=J}j1Xm-6gBb>c!X4~ zGP{?Xf1?C=qFP0G1Wi(=ajiOp5n(bx5@fPYrs@EQ(VS~^+h%v8ak*!#bH?{F(-Q}J zcPbRVS8&=keWQo%A-q)++@c>KO@N2eE`qelXR9IQFjKP_6w8IBFXlu8Zv6NCvGRY)=xf&As*{ zpgpW!s7zBSI(?iXJsgT8SpRBhJlyeJVG$*6jIN+QWUh^o`@nT80*dL0HY4^)aY8;> zce(~#5$vU8YFz=~{s1IhAau4|d;)zd%BT#=xFhI>4_BEU7d8+~>_IV$?uc?E zn6_$tH4r7mty@sVj6{ATD*2V2FI3o>qes{a`AJqTozWfuCrvv|EA+SZP<+a5!)pz` z*;c8Sp;FuMv1xP6?w3x(o&C(%lX3K1f92TEiP>B{7PDmd^Qh9r9YbvN;Bv9V!gY^K N!#xA*{nynC=uh#%|9}7h 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 0000000000000000000000000000000000000000..e427af3750d14c4131891a000bef1a69bf413ae1 GIT binary patch literal 8808 zcmeHM-ESOM6}KIGzx)+DO-f1Aj#HJcgFTzjv`Vce3Z#)hp>8P!A+=#LJ9Bqu*0VFi zd^o!iAb6;#rHgpz@Ct~(00|@>c;*3#2ZRLt1t27-1pEPr-??`_*Y?_hN(c!{wrB3# zd+xdC{LaTc=UWTkzkhi~{P5M#w`_N$>Za*>CJPhZFg+t4GB-*-NH)Knd?RV|W}rU| zy*Myf!e=nUux!T+n48>B_zF#rY$sIH_4SY$k?pzpa%;h=S@ru#+iLQK$c`LV`oy1m z&DQ&YK2!rX^!C}ini>0!ZRimm_gN6x2AHDdSUvwX8xdQRi)M;NGsU9!63Knd*THL) zSZlng<%hG*@LGDNT|V#FE=zXfuFhL}6a{uSj<7AA{fupfbk4fr=wXOKJTJKVP(C%l zZSm68jlF>NXim)Qk>00IiM487w3e)=tuxjo9(62l$T~snx-95C^n$&P;SGH~)bxH> zegvaoNB8YcpJ67%VV1tCrW9JJR;5?SAs2%hggE*$_vYfRHNzKd*JPuT{H1EFXK_?( z144cdzt7|M1^jN(u_3v@7Kd#^V7A+b`uJ_BtRuE-Zz}ELK!^BLhAgr?b2H&DO_`Nq z;Ry1HRojgcJ+?k+Z5LAAwVr|QaJ+dS*f?~$HomOT7cI1*k|+);2)uTp4BLLd3_Ap< zZ|-_7+Z1>ts!M_@*$yc>vlnZDH!_+Mx)(|VDJ;SLJ&6g)yyIqY&bMcz+4o=@lt0j0?E978uO)_HRbeYl+$ z)oWMPYu7uYm#=pmyW8=_FpYLXJ7U`)zNhzDhR}|wM|v0qu|dKNJFo^z{89b!4j~tq zar=tbQ>2#F>U@>v%RjHv)3InG;LZxoHie`o#r)KimETbtt@}CW>w-+*|vBpw)@_+?YzU= zeK*~%$!oSN9Ck^J^JJLWHu9y|=|@v`g4B9?>_pnW?!>IRD?b;;zV8K*77q0w`daK! zR5+ls|3EUsDpp$-PzH*9ObifMPMqjtVrr`ydP>w^)yXv@96`tlZxJTF?f{WCsrrK2 z&@*Fl(dUlvuZUd2hrq3;{s|7F7dwuG_eSQlj<+h_(jw2$fXfI``IjX+Qw;4p2?8%I zliN&0{3E=4dsBF?JJuyB2}tHPsZd}|`dq_vqjHW?PBNNgHpnS_tBk^1Z;1p$(H%$0 za||U*F%;c36~ke=tHeHD#){tSLA=aVdT^|vnqlidB~zgC567dj3?xF^?~pnCulnyf zXz#bF_L{uavzcRR6JD^CAd2rLy%nF*rIXIB^=9T;(>(D4FAo*+{>SO%{WtLZA<*|n zc<~vaF6X=Jnd1_3Jic-z_pMj1C_9SnMq3I3Epi3jX({-5Gs_*6o);h=|6~4=MZQAT;iGuMbCgx}e z=fm<5hSQJmSnQvYb-D@6BNkTpSg!CPj!5%rkd5c|%N!pu6OsO?kT!T~c4p?(Y9BmF zvo8+L;UAQK!K&rp5o2XSCD%NWGQ(a6YeY!GrwM|~k|0nd+^-FcR|4d61vQzcnHVj2 z`4mwX*NLN2#|hstxJt7n55$s0a{-EyVAH$6@8zuzS?umdtNc`_7x;~Tmu`_g4DL<{ zfwFO*xhC>XZG=l$>0JE$k#>|>QQd(_1iDjNG57*eml@=8#rjGdd})G%YKU+1dBFys z^T&v{{&<^gxf-nrDqoc9c?18ZWeL27Ga<81_??g7Qiy;o$PIPdO$HCJH?LzL8vDo` z<^`jC5d&;QcX2yP4#f9|df?)*i6lQwGmru_@OCJxAo7tO^jVbf2?5ffU#CM$`)B~0 zq)Re5KC71GJE`HRCPyJsxND;KnG=LbEZim*GSi$&dazht1@)SwK6i?#Gh(Xs zVcea{h4q*8fD4FCe}k64I_gCEig zDQ75bFpJlG!)ug*ivaev#cjU)}^#| zghT_kw7@P`k9gzmNFVwR?tE!1CUE!n6&x=Fj-qce)R+< zuU{)B9DAR|VMvaGp<|Aks{a34`0r{#+8eygS(sZmQBL9Y)Of1po3sQoSRo6o+T5nF zxjJejl}-n8-isR>iXV8m@`s38-7#I${4wY&8ylG$m^vrtbmIt4%icC)@7crbsV8~7 z-{3sAW!O5RSR^V%BJZrpdV4kP_)_{v zJ%KS2!By8w>o8$Dgv`piCHSJ2N9tS)U(7d5*|^x2Cb^v#Vzx8S0Trefs(kX4`mmlg zDrn;tgmNYo%9d<-93SiQ?vJ%aYiIe25eL*K((t5aE&9r-if+${41&4=6NWsgZ+y?h{cMq?v^fe9~ye(6;jJiqm z727RH@$&Va=S426kfo3JX8AI;+<;SUgc8Fr!N>|#6nrhkcLbxi`mKmX0cE`ntf^*vN*gBD7P&Vsyb|-M9~WD|A<& zyBO#)eTb1}6d?VhLnZI?72EaWNMo*n{1CT$-i)K(_Kj^(-F&+GQDZ^i1)7Blor8O` zs0i37eDYN|u zH4`ddL=zbbm#={68d(*PEP)7sf+s|LU4tcHwJ!67AjTGcRk&&mC z6+w271**-Wp4bCs-?5^hgUys7a6MbsChJt-#`Rrze zVl&%SELyM7hrbOXa`5LTX{BFgcndDX@M3Zh312ik$AP3FQ-qQFopk&I$l<-@EtmsZ tB`_?AHKg_~S@3%9Nh-sO`LNL8qU{<^Y!YVrw5ny2vrGK~#o)NB{tHvqtUUk# literal 0 HcmV?d00001 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 dbef833a97e2d609b662b866c88de49ec7001bdf..22650135c3ab0be66fc564c6c1d30640226fea4a 100644 GIT binary patch delta 1337 zcmb7E&rcIU6z-Om?H0=q0|+TUwg#a;mvzzX2v%AIiV5$ca zN#e3pOcrNB@#UnJbmRqiVLyDO`KKmPv< zY3Q5w)49-dVS{!^{Uvg8#xzh^h9{8-drz(ImJC`@4b@RiBb8NceuUwB><)|LAa1Ol zt^Eilr8-Ej1CnMp|KZ$m-V_H}I%_>hNdg>64XI1mqN+G@;S=t~8@O+}1xNA6{5-^j z56J2$_G=N-rmiEyq2Gm(2)>Dvc|3~0LG%tSOLB0V=b^X4a^!to=68Hg*reOibc@H= z2)HM>2RHB?dM(^m!agF}2q{_Htm7p;lR9$nQDLsyORtGtwmM|PBsg?a=&aw3O}jA|^V3Km+ZD^D8`e7>qmVishvlxZfm2QGpfaTR9Wh2B8^Z~ z#!NFZMc0L?5+jo9&=u8S+62Ie2o9&1LyQF6oTLdHsF2I5Y1LsX?*47XGGHm?ij%sT z$!8J6%OnI=I;+?=6jc4Oy!4J@Eh2}J$f0BL`r5TYUZAIQI~01_D^wn+4I6j%ffMHK zYfXXbfbG&B!cc47TxmC|(IFTuH;PYJYi+uCs%Q#P z@a@+4NHi9cbCwBL2;3*~d{H*?daejaOv+e^)Qm zyfC0W03Z>~dCiqVD|0iHL3aAUreDG~O*UN?{9M|~tES(AuvvK#*=ZPD2e`Jzxrk&a ZAS38$!%d;_jTIZm;L_06DsS47!e2+v&e8w? delta 440 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ac08ba29bb67ef09673f247e30d63adb5153b318 GIT binary patch literal 13254 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 CSQRxys4<}*LGa~LD^-e#W=QMh7j%G4Kb1iD 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 DbKBum literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c50d9dc344fb6f5bbf8a175fc2de7b321d0d0579 GIT binary patch literal 7800 zcmdT}&5s;M6<_bi%+BnW*LGG`>~+RMiN}j~CV`NkRX~wK4#CRG3RVQdq0`e{Gu5*_ z-A#A3JtHuILqrzU&5igIkn$&RM@YaK2@nz>K@Lb9kbnaq@q1PMIkP*v=Eh31GgbZS z)%*CpSFc`wcjbqp8w=`BZbboiym800ZO^w^l*m=vx8f1=MDirL{k`OI(w2?Td=&X{ zXt6{tfWqRAYlqBB-b>^rkqgI-I_dg)#4O?XUcQ{K@EWhbm$Z39t_VlCtn^4e`z6O5 zgyyIdG4a57$U?!!4~)QfAONkxqUHN+Owv?n7gE}Vl=j0!%UTOeNQSlBvSH+^@FiJG zH8_;ZuH&)fFz%VMX$lcKy;wkV(saqOBhspFxn>k$62DhGbEJQ*+Hp_}dZu+0vOdwo zvM$U4Jxcf%zsA@3b-u)RKF{NG3!mGh zEesYqO2;RCa0KZnX>XXQXP4nBcyBJCS$hP?4W2ToYb96p0!0PxJl4 zbcg%~90X;S0ZMB|mo}bk(i0{A%v;#y%@kB0cl|&BSP@VneBZT9i?i;%35@S`Kihff#m-AFcgL^1+;yE^H&D|w z+l?H-_QCwf9Iy<0UE369B*NGt6GmMCovVMHU~)j91TMTm%kQ_eOFLEi4$

Z_}?? z-`==;LAkM^3_NY!i?a(Tz$1+i7iH9Hz;iX49-2?S2rTqK&#MzyUrjYMPr_0BWPn7P-Q%J|o zR3n&mXlc=FCZ#=Oc-TIXO@fKv8{()+sxep_`F2d{@A3&r42OY=U8Kx3FCb9+vFmEY zUColk46J3-5WZyqAtFlnPfE*Yk^cPzCl^s`rsV^&k~rJ9Rcd&H?`r%){nyC_D&BNL zvwTmKPxA6n+#tB(v!xN-$ui(Pk^&9CoP&na*+W46IZn#| zv!u2NWB)8Qc0)G%4s&f|Dp{1O9`(Fr=HgMhbUGO{?`0VXaM3BTJXM(alk=PTPmuYK z0LyQX>=po$T<)H4PfEhccyCX;d~dIH&_W^BY~k-dK;hUxlLKu+LI%Mk#YVHax2JN3 zT5_O*b74)f(#yHka_jI3Yb1kEyQvC?ES%e6!*!y*HeAIQ z+_l4Nx!cuTnNcaxO%-G`=r&$u_=6$?a~bLanwd&3Ku%Ju%jQ^XOO=!6(*59?))d*|n<@jcuqFK^__Goz=) zL1Eknq|>=Uk)rymSTv1lnkzG!Z^{y?*Wjr8isA4DeC5`B=EMx76+zJ-FwaJLYm9M? zD}hnon4iG(`i88#$U33vmX;2`MJnioeahyA-9DI7w+gbhTvl?)#b83$fyuruJu2l2 zq3ShT3?|Ef==4d<#LMn3o{%rk;qdlNJ>8jyQ|c?^6@6fcST03&i>#s&;PkKW7uN{tm+h)XR&Vd|Vjy*H2|s6g$IT z(F%k5As0Cb8L!g3%S!&Uu1~|IMOf?FZ~bC0H7p^JME{Ety_)Ez zss;k#@RM`U0f)-P=Y`@%0mZp8^WTC{7598sS2@FF7$pORyms?uD+qmyp+RW3dXttH zkAev@YwPCC%-?fqGz=j9XTUZ(`+}ajCX-2(CeNLv^-rP1>pBT#?TxC|ZGEuRbk}bB z7Hs=E#lHm+WgRzVmEwnArlD%Al*V-rbv<<)kL7y$lNyQ>jJG^Ly@N*S6lIVvD!Hgl zni{x}OkTBhvvVJpf_+_h@2esQ4UV+5&1q))O=i~9q-~lo!BT31JGwi1I`Z=VFuy}< zFUUxT&jXr{49n4d6#~ z;RgikP0hEEAzOXD`e16Yyhu7kFcgQ0T-ChYa7}Lzqt6P9+o+5d@vcN(4w>bLwqY}> zJFyLQ+z(|90n$fL3Knr}16|*~Ge%EbZkn<1jbchJIsny%jbvlwz=L7c1a4_8^h}o+ zZmAhq*Ne#g#Z(Zn*!B%HnL%|C6`CJ0qr6g~#6o-CL9bXrbjz@v$n3eKNGfGL3kZHk zu0xp!Az-Q(K0r-MX7n8w%Hh?*4*kL=Xl1J#J=);lX2a!cc&P-3>meYzO;H8pcmn{@ zbw;Qi-@bTDZU!tcsGvkFBIQDIl8n2yl4rZ#xT4+mY;k3^{i z0HuKr0o)^0Z=D7E&%gLG?712Ctts|2Q?P#_V^5uLg6t6sI}Q_lwFkn!%f-mWW({HX z5Jk4&$=y}C3rvoTJUnv+4Bg&8Mu&Ui33F_4XTV*2fZt`8dJ1wq8lg>Sd^1K|M=;c7 zHP%DJ^(`|s?XJbqB(mUm9dEF*G9gwU#Q~Bpy_!?++tNI64D|Sx%jM5G=ZNBkzMN literal 0 HcmV?d00001 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 d475139e8a3e4176f77bfd82421643842482e049..f470b29222397b6d6145ffc735f3c20941339971 100644 GIT binary patch delta 1511 zcmah}OKcle6wPzyV|zUL*s&qC-HcsTI8I1I6(~yiI7LZRMT&&Fq-n67NuQr$kC~YO zK`Ea~fGSNz;SOvnl`gtuQ&|zPqKmeyDrhA@LPD)71tESCtYCq}eKU4EAp*Rx=bd-% zx%Zyyx!*qe$5HWh@%>-2SH%_~A^4PRkwy4DbcHOyZE+u5?VVST(=?r>8QM#;&RJ-N za-m12;345MdETSk7Y+_RM^CQPF?y=Yq)U(%x5%qVIV5f({xXQtGf7Bo$g#X|7-M+4C)p$y^F_EOrbMA` zqXD6|4_|kDaptg}`LJhB$~!zO%=)^;0UXaxfyX#_LD7^_Hy2FCM~0Zffi5xJAxb_m z)ILL29T$1KA}p%M1)IYp`f!B3z)<^PGa#P6g+bLW|Gg#d?L!1oG|twdAT% zuj>sPu9IS-{Z6n;$i%pdTrglC*V$tqPw-ZU*tYL%`wX}GWPw|SQQF{7ZNsDZzWl)7 ze~!k!=Wma{4Hlu;UlP9Hd~74hZsAk+)|=`ueAI6$`PFh&w@|N4uKRNzn(4JpW)~b~0$Qk%RNo97s+-crxufQ!)zr?0Xz9oDm#iw&(sHew~v0r!Xy^hhpC<#cp+q-|%U1Llkg7&km3 zaUiZbh#32#hp3mvsE-m4mYbf<_q53XZ&h5FRgD|tU5q0Yoaw5^=i6K;W;Xx+cjbJpAwRy5|I;@7RO4u^{>23b7g;{%~Q$G5L|V4Ha)@8yb1eda~V;U zo@&dA5m8C5t>L44kG)&pB^d2?DA6E#5vCr8qVYYJ_`A<}tN-A`kMIp0z82jkT}lK=n! 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 0000000000000000000000000000000000000000..3bce3a90309c207db58a9354920f9aa489514e47 GIT binary patch literal 10528 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 X?ZhTwrc0x0CI!1RF3=tvw;KNfR~-O= literal 0 HcmV?d00001 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 1dc1b95f3d509806460b535fedc8a2253c0ca099..0a1542cac52d95018268891e735aeeac15a3368b 100644 GIT binary patch delta 3122 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 AkpKVy 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 3fe82f70895ee01d0e9c4408f085c7d92ea9b662..129f23a04c13617ee3ac99fce644d96bbd38f871 100644 GIT binary patch delta 3175 zcmai$Z)h8J7{_~;%aUBOrfrfYO`7H|S<*E2&$@Q&Xvem~{wP&9_ClC8wAbX?f_`>IR$t8D5HuL84 zyL+DB^Zk8(&-46#mxVub#x>)+@riTBcRD-=(!$cRkR2{&^Z8P0_S^+;krh^yPw8A~kjocJ>3mMe zC?-8!p&(i$g=`_6TT+Y`GkKxWY`)7CL9>LA$t(zo6N()f2n!jpVa7TC;UN-KwVe}| zmx_u*CS5GOGM!tEH+XCWc8{klvOOs-rgLc`ZjP9ip*(P^{CYW>GN!hqOmX~Uk)0YN zC^%fsy-(n@mu+BFR;OS};&N6qxjfu@3J!jC?4~yBY3TtO*Mp-TnchDb*(13Susa{O4Ad z#YK&c9MWw41lvyIs3;xr3PaBpW>P24L28jPk=Lt~VVld972o z1ua4YOvRi?t$#M*3Q={PG%A9<;a*R>9;re!)h)Nf(e55X|*$~Gno0ALD6b*aAeN+G? za^}ij$Yc>$g=orPb^UIb_K&K2Hc{WaI@-C{rCW0 z>lvax*0QkyI1 z-)RwDY=NkqAPVewdWQm`%NcFO$*S?Ip?b?VMm^S|dej2dBZ6v|9#tm_-fV%&-q0~& ztT#m445V+UNkrV5XgN@~HvMn}S9-0qUvX7S$xOm}4Q*}kft^#cX|n~YPJ$|wu6N!i zb!nLQABxq=OPg0Vt#b|7m;RmfK1Gwi+6JdkPGjLs8Q^yRU|5gLiP|R=V_oIJ8+|TV z?F-W{=_nD)CQ64;?hJ!%hWt4Uu>eai=>d@-$p%0ZhURi}5N&Vk;;Cj1vZKYB2+#BV^!qw6#I*^`C<+{{6`L}G zd%Tsts;5IjUumFoss$Z4%mzc)pBUyRObK`|I8PbRhmO%3mFd<(rp&Fn3_Rm71EibU z?6JR?&xzz#!42b;gso(l^s~mKa*j(Inpd(_@zQu8aw1^E7NP%9VmFjw02lPQ!g31B zN^Odjx$)pKCGy#crSTBcE%YJ?BFsaB~|^?_x;h0|FZ!BY|rcO~9TzxRMZ++n7QP{)+6FB;b^v zQhxtS?_hlj;_g(vwdD<8hqu#56jeTbS`OmsW>918V1s*+afTdga5pkd&sSDbJ=4wG z&^q40aE4Lqtj>_k`fSxsWq6=ERv3<{PK;O2kVnr?3Dw?|0d532__5y|m#pZk?y~IT zd9JXWPl&~$nB*2#x!lQYVKtdga6GRd!%p#3o62#7fzIQ!MVNN^NRs%}B>Au!zP@cE ziV|xyY?SH3Y8iG$IsP*G$|k&imsSg6S^9_!%}KGCP{;6UGzSl(Q+S~tjri9O5By6} sx7QCm^P3@Z9gU@HB)DwJ30aZ26!D%bkq>8zDITx9(zW#$MrNu1040=^V*mgE delta 2568 zcmb7GT}T{P6!y;U=&o9~5`Wg+b$8ZPcb&MaCe)3I*#!U)qOKXj3SZVADX_K7_s$3Qg#}cV~BJbtU#? zX70J?o^!tM+;h%6&MXV;CHBLc{nywls12fwBs60Id?Y>Z$DxXga3se`Y?a(^z??@7h zQ$ji?XJ)A0w3-!mXuc_loTbD~3n@K2mk%W+sA^J3ou?h| zo6+bI3ScC&xD!CI^H8niHtLe|sw(O*w$I1AiT0$di)jK zDg{U9li+I()OMC-4&G`Gv{y0M3U-GLIA6mlw3%=+(AXG&ubX?^4AJr{&k(Hng3#PD zjyxc>ydV0P#LzBHNWs&{9!paX_v4vTf{~Od>3KiL8PVo z#9l8-XInWVhpoV4%I|Q`+s7Ou(e|FTSQ)~*6<8r+J1aPKE-{^x1WnfL*=nwMXW@EV zlo_LbT3^pIQuNbhA#V3^^`$HfF$L_b6JsBQRbQk4Jv7Yo&$;&DV1=tNYXg4SA7|dB z0iCgcYn6c$u^qVb1{M@e z4Dgm6U@To~7td=hrz$1$feq>Ne`7>UHkEuOrN ziq%fUyYpn#__nqVnXV{G5aWdsFB(5&@f7SFsJHRth1GDJv^Um;X=;L{NWR1yq8(jE zb$&3I2I9?mX}|I_ZJ5dzy=S=R#ObMQT97lQ!Q>WAqYewig`6sfOy*K(e$iH=s%FS7M=hA 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 1fa782c34bd953c4ba377d0d9149bd27aaa49e6e..f99059c4c76738bc041434aeefa2993d5737ed88 100644 GIT binary patch delta 3520 zcmb7HU2GIp6lP|3x<5dd{?J1A?{-^kyR?P26rrHdKobdn8bK7O?QD0pvyr|u!=sIC>V?+1{4!CJfOr^qrt>Sqvzh4>CS8yTsPUBnR~x; z?z!jt&Y8Qj2MdRVSA;jXo^!(M8ya>d#mTIg?#)f5lG@QRDLyF`W!Gp?_7t24q?fcJ z6bp9Hl1pC*9LLXJ<9wWx;-OCn!e9Jl?sK@gw3YAM0QZ-^1u5qhb9PwJ?=&G2Vt4uq zO$Gg7w)krCM6px$%O~NIvjx5po`j1vy)axe2+LiYxcAxUxND{GE@A+Vy9T(=bfjyO zaG8w_HwNHrO$%&sAL4GoJ)a*wbTpes*PY znwXi8h?*cGp~zmZHyWj>W+qyGDkU9BX0&dCKcmd%fGm+@T*_$4L{iF9OASY;3DH!- z$YoA6<{^<%MYL9@w4|C5Q>F)q)wc75zzfYCU35h;l~P|Ei>dicT+B{0%b2RB?1pf0 zb>Aqe#TS-&QU`2@1w_g2wTJB50Cp7PP30bI=#+?t9+gj$T5$-N@!)9qcK1 z8Feh-mMy@Ix}cNp7dEd5c-pM|!t{!u_Z0O+3#^GEYfB5B!3k7#0KQ+*;XX}Ker5K2 zU5dK^>AJ04JzT6CX?Tr}2bF$$(ZiWJUl)e6tDLbDx(N-hgmB@uFw#=mEs^T9C~at9 zGF51(kY%%48=$s6gq4ShYtYqijpGv|4$r(92b>EF?k>8lJN*ciCR=GRD&89sbugNgXH8(pt6$!5$d^?LIV3aZ87nd=C^`V}Pc8+`) zL4aY)I4bLluwzvlzlANa(V&5vRZqhn4E-r5YKz|NT~^BA9_F;sUPZMS)-E2nx)7~r zw^2v8AVBvPS?9JD909^*(< zNMx=3H36JI!q3|BNUf^RV-#bKdQ82tr{xwsUZ|8!8XGLiW`bt3(Vk6;Jjj&lewtR9 zU)gW!c(49E#Af?9m1+>1uYkZoIuei_SdyFZ)@-B33r~3*z74G7ud(oYjl;mz($3Kd z?S%A1U|JT|;wzoLk0B8x>%913yH*ZZFh;@K8fXVKgUMhxuwa7}TZ{@0M8I6InZL`z z8L~6kf}6RcGx=Y=C5+3oQ&H0!ViENpm1t;2$G70^#9_80^R+(Upe?hvT>WbNFX8el$EiH5ftcr=D2_Vm delta 3197 zcmbW3U2GIp6o7kYclL)COBdbJ{p++{=yv*tH3$}>#DGQ+VzHo6u}pWTof)>f%g*fD zVi0&hAsIn(h8IIn;)78P{?s=j#wVf}O2b=yP$1#K_@Idi#zf<}cV@TSc3Z0tJ3IHx z`MKx2=bn4bmrm^EkMZXYi)Z-WLO-dc!zddR0R5Di1d6C{`5gr}c; zjpGo^cpl=vQo_n5_}%jexyfWtdN=VmnC#)ENQIwa@^i@tf3GmCT!r^M0{Mf=!rw{C zTFkv2e;xa+g3_r_uT*Oa-u1O}ng<$cW8??;(U)M(@4>9|8$_J^+aDlg3o3Q{`bkZV z5;Yw%FzveFR>ImwsI7a8yg)VT_fn0pwudQdJ7B7=t?5l1h=M4N$+{wnLZUyJmUO-U zz#A~#5ITCGL+I`np2_Hjlu61$c0`Z_s@b!G+7zgPsAde2sSPT!a8RD0S_Zz3sCnHG zigMnN$4fH0+_r6TNn2e`W-}?FZ!v3wS&yW%lF=n(bB3DDNNF|;xUez-hk^-C6yUd& ztAhz~IGat+Qxf2O)A|)ya<#*SbXqnbS{D-iX;n9dR6`!a8Y~ydQ;VSS*k~XfSQF4T zBgB%0X5avX`Yq&j3Vm>b(hh4y{KI7pnw*fZPFQvg+F~W5xRmH_CAJ$CYRtNvoJpyf z(V_9YJW@H8_?)$YSiJ|dRgICeGyvT}LDRhp*QUbzIh;WhZm#O^fjx^eKpN8IeaJLy zAtGFA*xvj${Sa05E3uuVa+*yY!kuFvz{x<2D-!5#>{@LXn6`sj#CEz+JCE*~;by>n zG-vxC!@t6?b_oAUJj}=bccHKiI~VS^G!7=4&<w0ARlRZvcvkJDFfJ_pia>X0pl5%guEJV5P>&6AxtpWH-}P$P>7Kr} z9PIs~xU4-^Ws6ne&T-Ya$4umoQA$9tqt2GLmxEtdcfIU@ccX(U^-sl>;I-S8%eo}) zCg#7yyX?QWDsQKuR7-Yt#%?$s>Yi8TJo2uA>E^agOO&`Oic5B+b@0xbL@%w|In`_~ z%g*c6J6sGl2C#BTWz9XoAnbM^Z>|oRiWi66AkOcjaHg@18(^M;PC1u7?_qec%hH_s z$mS}@Jcw)~MHX2C+2Fr)=lZ#%o?lWu+*yV+)f9(ND9XLYroYPpqgMw*#fyVkHUH>< zyP;O@6m#6@a49=p@AS*_;SEHu0>y_=vJ{HH3H-?y2mUq-HFW%S~8jEehmu zyc8!@!#ZVpacE5BWXp8P<4KF@8&ZB$HY_cOo|wL#lauO*nzT-8U*Lo^kv=Br<4b(d zYGTKGSgS<~)_r+K*b2=yJ^HC~4?ufs7gy_|Cw>XP52swlf1l#_m+{j|^zX!Ibknl~ z%eR4zl&$cpzscW5&*~100iVPLfxejD?6AgC(_W-QUrN@K&KQ1)Yb#7oN;V`lZAq|i z?W4pE7bB6$kJkQ0$mz)s+wZ#8DQKpp@S&Ujj5H=wV;wK`8vSreS6c9XucanG>wJa$ E1FcQUdjJ3c 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 9d6710618cc13b28e0a15e6d1c3afac88787dbf2..d8ede084668adedb52640cbb5c17393567921fff 100644 GIT binary patch delta 3341 zcma)9du&rx80X%u?{-`F=tdvg?aH>UYy)%{oCxDFaV`=K4<#_RuDj#(vUatPv8gy9 zVw|}NkM9Zz5{xk#qeeoOXiPK&68;DNfdmi&{;9!0j1nI4JLmRs+rr$EwK?bf&Ub$2 z_x;W}U(dgBdqBTW|LK*^Bl?fKs@F$CyAq*jXEHt(N$nUM4TVL87zY$$mdiGalPLuh zxe&DA%vn9h@o<6rmD>nCx-YqYIOBA|6Ws=TA90gj;vqWXm4AT`c^|*53%=%0LZ$u{ zZivC&(Kpv@Cp*$)G1-|%lL7cv{~7lIgA5sJ_3z`@B&@0Q_(=vmfjx=zFxk_#U)ie! zh+gK>D%HL4vq9jF<6L*$Oo%ii`&RsK8&K#fG!pz@q={^#extyho+HwCG?Kl56YO_+ zYO_7@f<66fJkDK)!=@hlI^rb*q@ka~@gBHgy2|~ItF#%&?INiR{X9Z$!k^}!xO?!G zMX0$H3`WHy2?m93p*uVlN+!F9;F`rG2}2lDue{O3kwrEK<$+h69r*9pAm*rV1;cZ*8=+-9iBzpf(67a3HXIx za1z5oMYRL=!I8@LWl{r0c*#8!+k{A$iZsg>CS7DSA||xtT_~kX&sf1lo5$?eN(>IW z$F_k6q({OjGq6p`ui1~JyfA8SGxbrFTk3_2HI4A2{dI0Dl$Ec6+68pzdARGSfhI70AsmvTH>V8a{FQ`BO~RF3m-}5P6?aGco5;bm3xdQ|_{TL!%Die1seBF7vLPXkj*N#D zX_!tmvsN?|i7ApvhaE=jNKM5>Mb^=1vK8CnBvzK;NJ^Pu!+S!Bm@*>~oKG%G5&V)Q z`mvh^wB%K#rJJOAHWy(^`F~gzwZ@{|_vc}(!Hl-`S#xDOns~pi@E&Wxkb;ihW7%VS zzr7L(VyqGc+kINvsrB(jXmR)OZ_&luYqp?z z`62cox6Xd!{zAv^(m{V?a9XW_C9xFO#cBp)csv>vW3*h)T?THSPlzYR!(uWijtIk3 zLM$DPPht85pD%lR&52RpJlyJJ8Lpdzb7r?EQ|C$(rA%I=TWr07`{+@(s205GVUaY_ zg58HDlz%`8Fw4P}M!|OogUH5le4nXlq{Fmn8WEG>Y#Zu@F54;=%}s2?yAietZ6FIT z;O`Ht!)I>_k2&tb?2V>7x+S0EZ0RI^BxQ3f6cuTVB>qy6=)g>p_>cn|$3QDd@9f={ GP27LNF&1_J delta 2626 zcmbVOTWl0n81C6ix7&8N+m>#Zo$l^zx23z&7UBg^EEI$yUbsafiBQUPJMGzVySwbn z;x+^dM&*)86#p@5)CXP+F*VlI$b%Zi#PDQ1*B@7YTW#0Hnh_ZID2=yit4Q?SGN37oW?BQF8*`eC#6IoAu6qg!bQwbFnI^(pMN z4H3~mU9fd8+fRpcw3m)l!1MszvVBaZ4ajHqHv3VWn}WxD9T8eYzm6kHZj|O@C-kFw zl-f0tE2Mc07VJFv5WnTx&xo`eGw;E_*s#u4VUhGlMLJxHbhef!vk!?h!y>t=a)Q~G zj<(Xsp(;)r93POYaLuvNwS@-g0UCUf;QS_t)cr>O!c}5!I*$_@iW4{Bmh%GH0O#v@ z?{$F}gh@%Eg1|@D#gn3(}LQ6mIBBfq^1UPjRTelfrYldJz;#OoE*d-blj_1_^AGtUhusz zT&S@fG`Ir+HCkgvN{uB_6C?SoG;U6VP&59*t66cJuQu`?ui<8SMwH7(AYVi@JnzIdYX*1{MCj?%?`O;WyI|C8t4DhJE)V?_r&?OkxNy`Ich z6Rky}f0T&6=j#k>wS|tLYeZlzR&He}71|gp^Cknl+t+7jjm-*Qa4X=vFG5zrl|TSy z{hrPD5Y=lbe}p9~yG?G#>i=$1wIk=wHsQFbXGH?R2wnA6S5& zmq*BEWAV#g4_~x-kgac=RILB9HsaMnZ2PjvE>qnPT3~l`uLC37bbFv;vl0q@gFE2dPPj;q@ip!on_q}nnT;*Tn7i4kbQqtUb9%8 z8qJNTwUiZ;BZ`_$rzXrBxxNyuw42RCm0tR0NfzfDELl#TW(6%r_$8`g*irEQC)#bM_lz~?=Qamx9i0h~1SD9p2 z<$d@g@5cwL8>5YK@)3j^^4pE>$)x9uBfcfA4RH7kvTM6TN6B*W{@<&XY+DS>J=`me0Uskl*qTU6JBRwh`0?YrfPwK`bC2o3m zq|%Ahn3P8=8jJtJ^%X(aps_qh8`*{gYfr2m<4UTSNa`Z=^{l}=9Nu8&rhD!Y5}G?2 ro42mIi}B?<_)s)wO2pLARs{`^*~DpuhLM0Vk3k3M*1323Unc(ov_waZ 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 1809ac0c139a0897c2d0f6a7aab593595676cc51..8cde6feb5a2d21ab33d3fb97b864639096788c18 100644 GIT binary patch delta 1579 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

otO;4jx+($_m2G6oF3rQ2Oj&%f zQJz%eVlg}1EWYM9;8d-m=hYQNx&g5d%eZH)%Q}ty!Cus;SnD+Q5T7@akg8d@Dd?sRXjMGmP>MX+Qvht>j17Tc0nJKS{*b|jUU<=oIJ*zRnWiMWEozJ3J?+199 zmDAvK+}p%!BYRCk7jH-DPK;_^=qsk1k_zNYUEhxpXqocy+97_F%63y`+;}8`WBvkr3pBHy-8uJXF&XaLK zn#A3WM>fPQm?}ofW}Rn=}w|Piysde-O6Ytqf>KCL$yEG zc@0j{#bqosVw)PuPrCM2YSs9>p2WUZHt|UtpgL+I#%Klbpjgph19KtnV2I#?Xn}UU zh|FI$1rbY3UqiJEdL6^rvL7)`9Vt*^;0oVH(TafRf@a#de{xBXjLYfVA*^*i2Vo+( zfGfSRnE*0o&-ha#s_^n^)JQ$u}V8=_{yx-)AGY!JLM;-r(gg*HC!ga zJh3S9VZp`&4_<^m=fkcsK%QDk^5=5$RC_~^-DF|QW^q@{0k>~kao@#c^;qw~i_F+c zug&l?z+_)5+_MlslXXTr{8+T@#rl?J**(j}AMks`rMo0PCyFGrtV-f_6i<{z6PoKA zdZyYlhJ~wA1BRFW1}zH}qW5MJAmCCtps4Z7;=m5j;~Tcu1qSlKutcE(;dP*&-6!z6 zzAn9ys`fThV5Z+;CR}(MELaSe3p@OzfnJ*$LyB-UTn3_?iPoa8^Tn+85MXt?GOX?J z!_2!w)qi|Oh7EP^ROD@IfWY;dDMMS^^((n@#7q8Ze>#S7id zP$?n0PgA3OcAkQdJ730s5wBA-B`xYCKI}x+S=8x???^?LttS$GRJEQUcNAAK0_ubq z*+Nd5_mh09EwUfn0M_nze769E=z3zHvFKf|P^{;(ia|>i`iQq-OacDnAg%1n1aBaO z7=A(lBIUD&@4C=5bc!@G{dm^?HuUgXdIRo&`Up4{)EZH_8hP+i5lJe|vqiJ8;jHZ$ WZekKljA6z(~3>~jfKPzzOU;4GCkP!uRIFhycvsVe>eC`#fhXA9dQXAc>WU|>M< z#BNoK)BE1{eed0`<(EzUvA*rhzt-Op zq7`E@CS(W3HCJ1|0pDsjX~?Cxq5`ZMt0z^`nuJZviVM{j+A(nZD7+=pFzgOTxj46> zL2A4qyKu=oPqV8s8Cr}n=$cN)D!*J9_i{nAIgfAok)QZ+)Op~`B!~Rsll)QM6uPKQ zG4uanI)1{#5-_{0WMJR4*UA#sM5Bo!)r1d^3{-FccFZ&6D?F?&!5`~{n~F8@MVuA8 zxWj_5#pkq#lh&a$v`vTDsN$FtU#BxwtdJl7C>n}ldrCo(Vh@PP^zVucT9nm4mFPdJ z9{B)w=*HZEXbo|%gd-}d1Mg{L3-yhD9ELn9pCz+hmkow-pG(O-)*G=X4F@AH?ladt zI4fE^4)Ziu7Z!G~L}q3r{I+bU>&8N`h$WhMu1rj=E-K^jlipqq*0GxzaW68-vVf)D5{BlIS8(jb~E0_~k*n JIMujI{sIXe;X(ia delta 432 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 JH8^TF{|U9C+tUC5 literal 0 HcmV?d00001 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 5bc408ebc8ce9f47584011c8d0560a529ebdcc02..6299a07589b8f3cbe0b0f23ab42b7ac5e69f177d 100644 GIT binary patch delta 1549 zcmbtUO=uHA7|kZx=EssIO$?-o&7@VDZewhzpm?cbQQL|Y?7_cUH_4>C>t;7(C#|7s zEFvldq|EBcqv*NhB#I|5;z98yJ&Cs-Jos}{bY?eAHl-A*dzqb?@B7~O=DnHshuI*x=*z2#Dj|_7M zKXfGQBM0lNj$h9B^l?>LfF%TY1*jPbW)VOt5RnEH9*GN>@r1p+k^>sQ0D*|t+>xE8 z^m(S5n0VEZW9;~+XAsA|FRRZuE-%Wk$RmN{z!9LKk{6I~Mu31W(pC`ppFB5x2GGc~ z*UNFm5=5wCBxF=oP64%uL{;HsBX=SXW=dt4YEJ}>e%UQ|SiHYbZ3UUrACgxc58oQPn7od4jmep62hY%RS7$!!Q4 zSV<}*f~5k!*V&72bRK0!@GbBD*a6076Qa@(8Oj+UEOgw}O&GF<-}zIgr9m38NBAxD zPPs|sJ~Pr&^JZmU)5N?8OV;KbATqDf}L zO2*f2b{z8eF^_5aU_&FCWNIW`zu1~G%E?U)f znd(MxD$q|AclHv7SPsl~vLw$&>Ba;HKI@BPJ=mQm&U9tfLIEoD{cD;ann;lAu4bX8 z!5qj`fKo0LD>*d_5{V6d+s2r-B#3JSQNt^2-)`v>1&<2rw1LKTi(%jc_)YL6_(nEs zF7le9N)hVPcRF?Fpq6dS@la?UKM9SJ7x_adVrP=|_3#(RfZcAhNq;Ct&7<%INTW6K Vh)8tffhHu#dqVc>KYA`Pe*xZe@r(cf delta 1728 zcmcgs&rcIU6zUc}HMbS)C=(B~l1pk7e$Ed3rC*d<~@ob)FJfX1UKkfgcj zYW0%@C23ApaT!@el3-Hef1qg@vQ~n+0r^=*m2Y4V&XQ6vlYx1Hp&R&z2x#f7PVC-< zv$|#>S>wt0UJ+R+8|9c~16$UD>_QfFT}?y1Y{|NYR1e|89LyUPoQCEmc^x7+;$0j` zLsFSXTE@Vrhzcr(24*KFW^g=BHrkZCqfk**Y|(5q7D_VtMf$npVD;vIXYJMVEp^wq z?Ign_q>O?jfW3ioWbh)8qTa zNRSae#?^Tih1DY-Ds**Gj#GAqO+SA>p&}VP4 zWv{^Oonggsdm~MIDeO6%u-m<1b!;Fx6*8s_aZ(AgL53!S^v8keJa3IagK4Fp2tJOa zom-VuMBknrzJjfap_$FDZ>={+YlVwIKSaab%O2V^Lt`_j4A48>gX6-Ku3`83Rz=$- zejqgydtsYd-}0=HhO}?kA}x}ytoT<9!zJF&!Q#p?Bc2R0QtUfI7kYZ=`>q6?=sgdA zvH&~G9(ik_j2-0{Uq*`9oNcV>N^dD@w-+&cU{wdvSlp?SB>rc`FEl;Kj3&qX$86f}#aIh$o?-9>i0@gW|kR+H9y4itb@|XWq;=-+XVF$Ainm zo@<_a=OT-q+kx(r>O&Eh;ol7{q@g3}aH9m&){nndMUw%`r>BrSssX%-`yJ@K~pkj4uZ37ebFJnk&7 z2rhO<{8S|U{WEz?>0Ez5+J{oQo{J-WhRV7o<$MU9@hqCi7jPU=g3-~_Cr==Q=4EXf zU6FG+l)|W-4j);gIFqoG#&A|D;*1vit{SleXVQ%I38X}D>XnSqZz3&js8Ej*%=ER$`=M2HNQBSq7f&Pj$LXJwps_7kd=ntk_g z7k2Sd#ldnZ4#4rC9Dr2iae$BpThk9~B8~o=5Vj6y%NG?k{|A^=mFW;P7Y~v56^*>0 z(Lweuu*09M_REq@T`h{g(s@NmFOPCJfRnuroDn>%J2);-j#eZ;0OfKu9PUODz+4lg z8)nrW$cftFP57LT-LcZ>NGvO>1RO3i#<6N}lG^lNfO?fyXIed^tx9VDS0%a2@4Le> zI9s8ec}RvfM%a^Jbhx>u9+X=}T7OW5eORk>2tXe=mF5-JDa}jY;!$3%G#EF)==0d> zLNH>{pjY&h2>C*yq#is&S(wYlw63aHqmH38Be57P13irm17}cb4rv8-W-g6s%6p51aWU@eZDsOFWWQlXA3{t1fZlUQ2`U;0;BP>xmH-jzZ8#lcf zY@{nTTWM06+PoJwUosRey=?v^xVl`W7p@hQN|=Z>Z_)zX3#LZ?E`?)mVFGVs-S8_oyeSSV${kn^eSa{i>q3n4 zSzX6jJ#Sg%0c_QzE-C9dJUEC)OL(F_L$SRDN^mD-7tqZbhQcljOuOt$uHoKyvrKbt z>?(BO|CQjwp7Ux1b#*~Q>w$%M9h=6Qq?IBer3?;BG<3b~*y@B8OG%5u27`nH^$ha=0}I|LB|-6DA@9QMSs`Y>j2E zDxx4C;OG%}v)>P&qdHPxJvyph^6)@yUode|@}$|c$Pv|>NZy~=d&nHId0n=2LQGnF zp7=4lGjc_vz_C%qSH`c6Ve!hS-o_=XULky_-N>xjCw{W!i>8Y=dZ)!nM-hRCddh=y z%VW=^r1F}cbVk}fZR51&p8WyPb{{9DL4ILS%Dlc|OhA>@1Bvwc*-w^YKjbHb;&CWM z((pBY89x#CPC(SpXKU0o7i1VLQoFDb!`Vb7?D&h66Qk@Bc%3+nRA@wdo4y0<$oC#K nQL?2ReJ=9MC9&8}s7fkSX4_)eO?mOyX8mIB&823jXA1oWmCRVo 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 63203d0cf75a2fc15c8bad725297eca54c485057..858e815841b91eb4f5490a7ddd4ce1efec1f2c6e 100644 GIT binary patch delta 703 zcmcbvHcy+ifpzL+(TS`b`hqT*iRnd&xq2n}G4VN>d8x%yGT39MWN`MdgrruKOqo2T z2T2LT#$7Coj7*#NGwx?(Tr|0!S&_-mWb;Di9A-Fg@q zS)Nmsg-by}Ve%mk+h{Ii0JDrgB{eNGFS8^wKM&}NVvxO>jZ?G>|Rf0^6bi@>5A_5sDU7kQPpeE5v%hJf117Qy^ALXI!2v z$SgHEfI~p`VuozS(hNCo(G2N~v!zKuv$zn>nOw^u!)ODv*O4VdtOv;8bZ2}9)5<#) zs+AL{_3>l}4h7bSAVVg{b1CqiMl$vUSne25?huGIIf_f2A7UvRP;5npOa?PpdXBAdR46FQPfjf^PEAors#M4;%`K=*$xl{LRD^jFuNsKgGo-Vm z7#SFfCp&UT%Vb1n#FS=eXGs7>fbN(CatGAa5+FZJzRcyOl4S^#?P1SP$||WWNS%^p z1mbd}q!uS5_>)bzQztLxHUXv%2M(FdU%3A=GNy0-#QT_8%@L?P%MM5s_i*MV=B9!) Z6$7I`3nbB5oS_Iz30ZcVe+$Mi0syr>+QO#Pp)XT)mR~_?*nV)Z!@_?6FfaID1$^QY%WPOrFw% zq+;V97Dh&v%?BCxGcqom+{moRXt8+-a}G0%GkFPf%j6yGTNq;}=W@tT?&1<;Or7k{ zsmh|DtE({iA(yQ@$Z!py=^UxK1sRFOnZ-aGG#jVX0tH!n)U`m08MP+=S0SsElJGG znUXm96|V^+3(yFe&DMN>85vDCTM9g8R^w-6V94SI62(27d5O8HAkD=M zD-&&pC<1B?#_@#qHUxW^5J)JU)Bz8GI*I2!AcT104IwlnKs+IF?zNlP+Grkfb9}$^ zo$q}2T<62*ZWTh?p&KL9*F$g5C(f$HS6jvUf~mi}u9q}h3BO`1Q7d>+zHHiHTOL5* zqkTfS&OP!gA-90^=efm`o%{S!q#MC~{wm?%cK>hb^CS?Eq^eqzn?+NRB=NLpm@PpR zMffb1$_tXzY{_NSQ1u4enG^MiqMlGRSD;kDcRppjf2#*#yCy=z*?;hoCTJwpIDVM|JGGl3^>vf29u$Ib_BsP$Y z9+I&LZXQ2I_9+jX8H)E&L3ar}m6?omT-pzW94x1TXE$l=Q+|ah*S2u!+EzaD4B^|s zl`X+>P}}k5Wsk~Z3EHj)ulaBkyo57jVYohef`s5;^aW03QeZ6>-m3O=;02;d#vi zQu^pw`sX&r@_adHxhKgAQiKiLsUW1ogS_?z)AY38-!bf9)A4uDlk8N)OBpWf^}5_J z;ebex6T(pqXg?Y4eXm=aUAKn(Zc+Lx6d7^dx&aE}A5-EDQUCw| delta 1364 zcma)+T}TvB6vw?YJL|5l>sRisyQ|KwN$aRf9}+=o1R934g;Z1~HtN{SFzznSEG3n# zW~49=#hD7qP#<~-GL3!9LI?usIeLmH-y(YH!G|E|-q~GQEyI_&oO{lk^S{4y?wyM~ z>|~P6eaG&5%v6K3UE(i~@WWv())(uS4Kcsh5be6 z9YBXttMp-8)__%d0-ia(SDiw6c^u1eLy{uIc}?UvHpHpg2v^TGHNlG_PaW~bM}z@M zm15DXyOE8>HEi>W8OVaO>{yUQCZbmaWzY=kkHwTNaS(AHgx|aP0<5~QKcOgs1}hG4 z*se&b)+cGgFg`~8xN*Y>iHsiJUY6T!9$r3<kyj-(R|R9@NV9h7G-i{N|Aq ze?7aF1dPuOdrJ$^B$SpkfmG^bXsjm*Up%!(#?rrBGsVd_@sd40ZY55PFr5(&zGnp}X;CBWVcND$gzL=k(27HAd zW-2PEU#9vK89eL%#zVHZ$5X;>xdPDZ3L*z2T}|1E*~n|8Cnn--h6VQ!THk=eU?@Kc z6bpd@FFm!aZcSeuLr0vE5F6xCBBM$^N0#a?8a{b0AsSjMyU|g&TiIORMiIZ*i=Fr; z$QnuXxx^2x-h%Mvj#{}$EGlr>Mp}rKGwx@Jc3Y;S-NdkWlA=EOBn4kR^{5RNeIbia z?m>|B1XB+Gc?1`{VKVzx2M!w}VL@~q-dA~HUx61MRY%xaEKkqJ51KX_7Yuohn6^Pd z9mv>Vs~IZLt%HKbONzlmv}Qkk+vaO3De5DYdL3A!_blOmh>rRnwA`UB(!s0082 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 0f84f087fe94d483a287a8a1eb892a20a84e7277..ac2e8bf85879dbf0d3468522910ca826688f3bb1 100644 GIT binary patch delta 1111 zcmaJ=O=uHA6z(RQpWSSe);3K-l6G>@HrPP5h;q`6%TC)X)gEakFfad>)-chS`!4LTpyfE=X3aifd{^HC4S) zs;dTPnpn42?Qs$yLAQnBzc3}$#F__aO&meNF3V|YoDX2)md3W_QT9YWFOCU)eQYh5 zW*?MjmS({sX_|uH@)8*#!F#qt4nFoJa&np`I3i2-$mm=ckV6hqvgAs=Y#3@y#Vv0q zewdCGBMI>=06RPj^bD`!WbTzc`CR=?{-A6;`0O}E*>&{^PrH|RU|&X&i@gSz5FHz)gWS=ZE9wG8g&zi#>q3ALWmdeyO-HVwySI8d zAQugR*=;jofS5zp--tVwe+V8O}aptUkXd)NLJ`iiVXZ6 ziT_ws3Z#AjLFjSDL(;uZp^C0)xM8w4LY}=3h7|e~V34%QD|+POMgEbCSGQbXn9BwB z2HWn>i(DUoBUVzvl1$R%2gwjWc&3W<8N|9`rE@vdZ0Qwj7`Td-R#0PEYpzuF3d-d= zoBc1wxu!t;5y~3uwUXv@#N9c_C(i3`H*?t0)#wcR4p=LsFHv))iEX;a&2SYP71w4j zqBV9Rb_(9@zMN^_jQtXP$k$#T{N_LY6TtL FegoowOOpTq delta 634 zcmX?Qd{dXTfpzLRv5Bl5+I%jViRnd&xq2n}@%d?KQ!?0Nr(|&Uu!N*mluVgCr3XoV z;Vwo-md(2vPct&kpWM!@$Y`;76*DI*j5B!^bJOHV&O4HNT3TtDIjIGSB^g>;3L09) zB}H1A3c9)qlM8u7wYVTw+|g{DQaeQ>gSAH&k8-KWY}^ivLX!pgbbPY}7#SEcq_cQ{ zRB2L%SPzqe#+2465Mv<188R8n8M1yEa(+MsoIM<=xdj=C#hJxGkHD>C1-obR2X1jj zHITUySt@AeN^2@SYM2aitr$0w`I9Gb>rB4G!^y}zIiEKiNFL|)Wb_3ZVVL3tGC?*Y zHbc%E=(H?$AQxs|1{*j;5#D9-%g;*%he4JqlDZx?Es%s3By_}jAj%NdCxP6`33F>4 zkf+OW8yFhVKr<$PS0SsElJGGnUXkJLdb}b1!%g==5(RIjNB(c z>iJTOit>vl8;S^TZW1}hthNX!m^BYb6!&oECFZ7rj4B33Z5BwPvp7Q$7|U7nHs?vi GFaiL1J;cBO 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 80cf38358e86031a2772a87fdda4bbb4f31b4aed..64553050a0d719aaa435ea8b45658492158cd2ca 100644 GIT binary patch delta 1127 zcmaJ=O=uHA6z=4wNj860n>Hm)J2@yxNCMR&;>m*;rP7N954ME-Oq?CE*^u3$QKX4b zsIVY1>)n9f1ce~#!J7v`P{e};d-7<(Ye5iwlWdYji+h=Qv)}u^_r5ptCHwA_yX}7X zX6}J|CmTL57q2&qN={eT3yoUKq@E3v`V7|^xv87nG;Dy0?kj{Gz1QeHLXY?}Z^E&( z%s+YW_EN5Gm;I!J9Q=xJZ#J7wSLGUM6m^C{*nmdr5Q#NPu+YT1ignnF8gf#kalXp2L+2!H9vXa!WV zN50xhz6eUZ?Z^HLV`ct3xH!$GtQxG|LKe^!5SvioDsuB`;1aq8luKJT#$fP@c_17W z7F|{AM9diHa+3Y)*T#Z2?4T)j)OKV{_tOtcO|qy3l*9!wTms26!6@Rw&1L&|=3qSc z0S(3FZS12<xyB*o`4j7zFW-74wflk4yLi zS(tAGygrG>=npziop7?W!Jfdsky)`s0ymm!nP?iR;8F|MH^anZfTiXBt delta 611 zcmX?Md|j8dfpzK`v5Bl5+I%jViRnd&xq2n}@dY`RQ!?0Nr(|&Uu!N*mluVgCr3XoV z;Vwo-md(2vPct&kpWM!@$Y`;76*D_4j5B!^bJOH-&O4HNT3TtDIjIGSB^g>;3L09) zB}H1A3c9)qlk<5*Cns>RE8o#Isj6#$7`E-1<1Q;0@GNiM3 zfK+KxhFA}ig2t5ADG*~I!Wl9d%o(zN8FGF=1)Mz`sksFiiN%@4KwrSEV+A{A@;h#E zMm3PR5?Lx}=1OZSJZhK>a;g|NlKGSSxOKQPZfD45yv~sGW}ckO8_vi)`6#a^qc6}L z!xS%&F|rx4KuMtcve`L%1Oc zw_$g9bed&XmN-VnRlYERz?o%4|**`pd|4 wf^l<-$RlR8ML>O7^MFKg4`*ItZYoH3F)$jlKoXtB8H&Id&6>A4M2BMWL!M?9-AVQp~)on*3CLB8<~&V)p#Kv+dC@4&>=P=6ULIyCa`BPHUGV?M^GV}A|LArph&}^JiJ4GXd zHG>W6JP|ZC@tGy5xkw6o0x&I|+`wUIiEJSk*hUSIZ%a~(P_zqTXrKI;LzVIJaVITTnQf=rlvk5hs7G?JMoz;efca)&^y$u~LG`5`v40mW8i$Yd~s#g(}PGk}(} zC+Fwprsg4sQ;)QwqC!DYesXGYacYV}Ql&y(X>LJfN`A6}q9P=m#qg_XodOE-4CyQ> zMh1rBq{PV&IVC5rWnmZ1k^l+-oiPdI45*_eKwg*}#O0=vWeAk*Vb4#>Dyb|;oswk) z;&P;<7AGV4lQ(mvO;+YM1*Q@~4w=oR+E9MK4w;P1S-$60}{nOoOy}4sUS_o XKzC$;Bsz;T6oIKA%WiXxU<@Mwkwffm delta 402 zcmeyWc|(=8fpzLxp^2;=dV(&QiRnd&xq2n}@df#rc_qbDGT39MWN`MdgrruKOqo2T z2T94sy=;t(ESrxo9%5u%H2EQ$BBRCTRm^70FwW#v%&n6<*|#vpPPXHapZt|mP|PhS zv$!N0Or+)HCziyTkj^-oA(O$JA?ueR=U1APA=YE2@Tg%j$Y>jGB&o@P+zPByfyxg} zUdyR4*@s)5Svq3{h|RwYC^`vY2uS7R0vnv^*C0i)FB$-I9U8BI4&;D5}l#?Q#Wki`uoihDTo d5_3~Q`ip^n%K}Ms7H22|y_v5qVUM@yPrp+f9PcSkrojj3Qk;%|xvJ89sW-FHcOvoZ_j7*akvu^iGx z(a2!UV1qhS1WiqRW=U!;lER)ygsor}+-gS!5MLobO`#xvau275J+c$Hz;4h0g+obd z5sHE0I1HRDz^To6d2%C*)MR@O0ojWgvKdP=au3 zQx32{#Ckv+d&Xxl?YvW=+Bt#RA5YfjP+)xsGHCKCP6gi6NJgIk$uS97A7UXJ zP~D0QnG9x-%;ZQe!8D-V?8*7Lxv6=`LD(a$sHjj-l%JehT%4MskW{IVSDIT;nUbHZ zpr{Cm0x|q*TBm?wBSSh%ijje#c(MV9^ki99cF`;eAQ$L}Ngzi+ohkux_~Z^QHqPT}MFEKY2q^TI_iY$;sXK{uiFnMIzZQdpr!w3L0EcbQ* delta 389 zcmdn3HA#)Nfpsdo@I=-QM&Zc`Oriqpu~RZQdssqJD@vwJp3(yn6j^wZk&$KdDaI3w zj7ui}Wm9Cdn5@9ww%LZ|028tRBje=d>{}RPC&zHe3uUlnfQ*`^**K+kibe)&kN@Oa z4sjL*U0sFA4P2)3AXyEdO&qDY1sRFOnZ-cc;A$ncK#IAvrhv^5>k$WWd8V{Zffy#8 zaeDFrE-k5(8PXX?Gh{NDGi3cTviaB#L`D^AdAY aLFN<#10o9~(OI0K2n>@f?#=gwV;BJzSAxj^ 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 c306486ae26491a4bf97361f639c9d28d9322970..eb7a89836ae6461ea121cf5cff5dd7a153b175e0 100644 GIT binary patch delta 732 zcmaKqO=uHA6vs1Zw!5=2wgpp4K6Dl&)D(nR51wiR;=x|MH6h(3lguvJ53(C*D1P)H zR@sZb?LqG?UOeb}@#3)v!GkE?JV?Q-S1*DyY1%9voWn5hz5oBcACGxo`dyYDO8Zv! znY6c>y=Ca#zHVLhom#_ndc&S!Q!iw4J!CjY-KE=p2w@PDCEk2Ehfp#ap%FrdpvYRX zavjR@UQ|sTCF7aLC<$-ncjy4R%B5n!dWPq3POnbS(fxY8t`b7v1zvxk#?L9jT$^?b z+wcv?ZU`@@xw0GH3zwP1W+#{z{?RlHpIR|t(4I~mzs^QiiHM2QA+7_5c(oKqP{$0* zVh=v;#~VTg=U@ew(HD4{%7KgLi=SDM9k7cVS(ay?22E~Kr&O?`6wpn0iPx1e@?s!@ zJLu=BJ+nWtV{Si&Eli{zq7nSUBr}S&{wQkb2&aeRZM3XUi?e zvZx*3R*=^;;`W^u^*q`p%^|S|mOE@aEuv{B+g|*?=20jX&+=vtB@!O!IA36!tTtdP z<`U0vj^~17Lc1i`;kA1EvRUEPKz5p@KXhqmUK63xre13r!}+uUyXhPJ%WUC7^ez1d op>Fgwb39Y3a=E$2FE7BhZc$u$$ISV zo1IyXGa(BwGEUyczJ)P%ayEzj zkdauNSv+O(6wSsdwLn4E9!V{bVn(gWH#oH!PfzY;k($iUBOrA$LptMVhD-)?hOA$P zoL^~DhFFh_!lQ=CAS1o_P^3~P3v$V_P6g^XH2FWb!sL_O>dev^D}Zc6MzGxEw>)mr z8UK3N^OLelDhpDlWc=^pNJ%YDhH@r{^Ja4Ou%)DyBxdGJNt}Fu*MgA+s9k2WDBoX3 xM$^s00*{&1_!$`(vbcdnaSvx+Vs0u(b1~2tSs;nd;tWNghqAag%ZS7<0sv{jZx{do 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 9b04284d3ae72109373fb59ff0c32b6352912453..ea43dab2f83c820f0be5fa12b3dc766d8b6e8746 100644 GIT binary patch delta 2924 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 q9LZ%@5D?YZT7 z@_OQt=l(_hOkJq8h32fLtd_2cZLMAr)zy+9S654G0=yfNuV_dCow+Pt*9>gvjtXj6 zL6Hh->tmFrUA=GgZ<>CAx7`_6;bf0yB+t;oH1m*l;R*KhqH7+J}q^9OY@I0LV$wH3MMs70eRMVTj*&{O-#G42{b7XZE_It(><-93)q zuv`d@5ria)5$8@gy@aB~F(G}Gj-2;HAPi=w41KeX8Kg2Z8W;2&mstxQ+nfvW({b_DmxOlzDeT zC;!uj%q1{)V8aHsMnVAZ5hv`xa3q9*jAY(95|Y`508sDJd%>1q9UgufnJYLC?!U^p zf6A~odX#x?x5w?$odWV_7Wuxq=YV`3bd&!)-i)%$D;v^M90918#OYK_u=gw>Atj1Q zAcXo$C=W|1c!LbGbdZq^uu@X`E~O+lSUmnY5?zC@$5&CBO;ILS*l-n-nGD}*D{#xH zVwEpekjodaKIUabfAAYmfPe`Qso%|%^HLS!&$W${Lp~B$=qLD2q z^nFriHO*PA>Gf*E)E%RuX^N_qEz2BJtYxQW)pb)VD&yk{D1*5xeL=F_;)eIcQ>oxy z|Nqm<7zb66RJ5H{t6oLcwobfL2M&Z>hz-Dlf$_CI($hoJOvIs4rb#!XsNOR#KnTJ# zL&G#XM~CNdL(GjDOUqQZYxeOJ9c2ZzBwguv{D`!|6KB8}P*cMl427cdc^!CHG>L=# zBLGXzN%RBF(l2!QRv5uUa81s`q%=XoP?m0zS*&Voi2lH(8GbZNOSltjV+1zhndDQm zW;^r#=b>roPO0P@uoKr{`ji~;CwqyBM9cX8a>FzY=RO{Q?PvQ%!{A(L>TI-g8RJ=eKwlE_Vq)K9MIckCMB7V!TWj1MHvd9im}k|0Yt5idoW-SI_wcpU9Vk#i#bM$`0w z-y2vslYkXD3);|)kzL&5_F84;JYF_D_K{Dc6~kUUoC6FwvMW{$N3WTlP75V`{1x~U z%7BIrMKEcmX(WFUGT2-^yB|LP6(!g{erz{Z*Ov?~WaCR_eBrrGNAOYOdUGi=PyPZ@ Cd|=%G 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 29b622d45a507e4be78598cee60ddf030f57db9e..7810269e68558f176b99296bd64e661339b9bc60 100644 GIT binary patch delta 1956 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 Ql82x3OPt8gzt@m{0Yc4)`2YX_ 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 ac8082db114d69d70ecb446ab0e82c0ebae6f52b..2657ef133e4de9b8228181253c413edd38697129 100644 GIT binary patch delta 2018 zcmb7FOK2Nc6!o(;l1A28A&%@S`ebC%#8HaurY;S}v`KA4K43y?T0-JjBWcXj5PhN< zwG}i`LrK9fi^83PSA}-fMN2*o?V>FuE`b!fD_xZ)g*4ou9 zzlB4-boa|+aNM_3C`y{7YV}4zYt&`<#kV!#v1F$@{aFZc?~oj#zOmsDJ=~z%=@A#0 z&cS)^2XX?A`A4`9(f$D(;1dFEN4|%aIO|$;X?2`vI0$BY~?Z;CqmLn)k-EKj*H`kqmrtQ=VtBA zrYjc`@iR+h(Yr-#sB%%%s;*hoFsM+iHM1crbzYAY<%LqE#EzIhT2eIwjBO_k_#@cc zqP)K03GaMKlgm~Js|TkaUK7tXaopD?IgC7fnq2ps`_fv@HQ>ik914A7-Sl5uzkz?S z;`bYQIzaudy!Rn1WVYYMK3YLhf*5iOLwG%87QVDllIxw>_szm?e?RQ&jSmh!TN_yH zO_D*Fh-@ZtkRmDgt9LjUBVAoIu0&y7xJ zEiOCBj(P5)r-ucH#F~jv$H$tFzip6q1#jAGebfs&o9`UI=OYf&dk%!)fw1qQC#-G- zKea2^vimcJO{8Pijl432KQ{1FYDYb4+vMy6pW}58{(=?Od;(@@YNnBgTBOgTq<}m= zXG%s~B~4-;F&W!M76oU5J|?Jg%31x1D-FJmz8JB3BZP8aWM?vj*3Y;)-N^taGEk_N z%W|cCUs+upPp8FNy;_h}cJbw#Vx>{8HH+1Pm`>Z-t{P+Ij9h-ll-0aMH!)y1$oD7O zZ;$dDD~3bIY~+NQ<~L~FWs$@O?a>S4>Dw5p2da5RYu02#xx<#hqO2C|HM|=e3%_pe ziPJDm&cISE1HZ;z!^ikcB(*%W@gX5Y%c;cGo{>kmTX}$As?JxWvdl14oMweN7FC)? Qrluc(Cg}9?sQ5Pd5Bs9G@Bjb+ literal 8579 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 Q3pP2s)GtsBj@!-u0U>INHUIzs literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b48edb4c8eddc57cceb356851a8c529918e2d9f6 GIT binary patch literal 10012 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 literal 0 HcmV?d00001 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 10e6d0d385390328654eccff0b9ac0e0623c098c..8b17d09aa1baa374f779488851898b18c826bd28 100644 GIT binary patch delta 902 zcmah{ON-M`7;VxdZ4w8qeNfG`y=g@|PzML9xKSBYW-(Y?D9ES`ecXBzCrNEmFbf~E z5EKHVd~vTXbS?b_x^*X_8y6z@KvBfKkDH{O>7Zy9mwUJ;=bZ2GJ(&Mh+XN)8CIy$-6TvZD;NslL!s$RCIRvA~0$JS;2VV+3*hsTc4}A$U;J%fjN0Uyxv}B$@h`cHvSvc{Q^(rU1GgqnOH&y z0Zx~WOOxNYnXMh%)lALNEOU89vxAamqHsJBM(t%LIIy-QE9?t(p_?u$lbTW}S`GSk zaNmHVLY39ia9gg;>nSD{BL(t~6c@8Z(WfXJv?x>B(Eii<hmb2KwJDsrb!%_ zEV}ldqUQl3g$5}$!sv;%Wf<6;tjtqX74`a78{0PSpq7iwfzfk2RvW46csc&bi6*1z zmuM)v)g+~0QQ(7=hBrbYtDlLojrF@{0@B7DjpWM~Dc>EV$bKN$8AGd!%kjqh2dZ2c-dY)>?s1`htQ>B8#4!!4Vr NG!lIuE|ktPzX35aAm#u7 delta 2937 zcmb_eU27aw7|v|=Gn;N2O;eLK$w?EN-E9)^!hXam1oWa-tB6&k4e4a|Y|fm_&J6QG zv!LB72(2EJc1FC{KVZ$Z0WW$Zh)}fmE$AOm3Rbkf@0?6_Hff|(FLr0 zIS*#PT+Cd~eEtQwmbsz~1z#&e*S;E*FE_qVDN1_d2jwS4*$6iClgjbnPX2|W<>=J( zR8P0eAe){YOnlEbsmqo(PNsX)?^e#5dZR@=Mv2za3`**{Lp7Y`601Q}!ypY+qwajj za!Vl_7LPh1_%Q$czX59R0^}o-7!5*Rc5~ipXKMW>=$6N zH_!`Jr4n2(JU7?(hU%zI>QM(smL*L#ZO`XDN>2}jsAc|!I{X=o_D#1h)kv*|sn=?x zvY;8N>n>clq*+Z{b?1@Ym|W1yYcT9WmCVhN#fU9pt#A<5d>_VeEX%_fHJC6a3B7z!z{esf{$&F#+U7 z=mJ%YK3fs#Xkn4ETcOC?t+_}KA!W~iPt3rtx)l2C2tSFz%KUgR**{SfSpZwNv``!k zK2?skLs5ttnyPMw{1gloIcV@&HVs8aMifP8q3gDxYq}R+jRss)9TQ#)c59(&)qR78 z>?VScsfQx>lCG|T&SiX0byletiqV}?Jqt##rPT=QQN%hH?U_`v7(-QZ_j0g9$q81v z%M-lbKT%>oZw1OipfV&s)gF;d48y};;iK?~l`D=v?w*i!+!mxbws)Wf+>Cqft|(B2 zPbE=-eC19J?99OoUxz-ZeMhWbl*ul!Vsn>R3nEXOHd9^QO~_0P?AZSCCfV2J3JIEp z3>;j~AAW^@j2~sbjbTF8Xzv6&yRI8xce!#9)5db;<8lSB_D@WTtn{2vD78o`L%6(@ z3RZZ3G^G?_0=EPO%&L3Tebd2Ch>g3ZE_4F3*hqT3z>x8<8M_7Ye(DrErs z-Ybq24xh11id780El!L^zQaF(&N!yX)^J2E*k61qeOpGXPR2~#!l+3P85UEKtRY&p z)ZL2-WI@7Z{$nCBz6o3$It7W9**!3!-N|&2ys7Fg-9BQnTc4d8{3YSZgzqD?F}5?| z_UT2}r4F7BFFOvL;*k2O1~IM9y@aR^g%evd{5sqT;ONFP!#DAcphcG-Jl*k1Ag#N? zkHJzgN?8N&(voyRW4YVHPvC{4)Quq)>CWa(W(QMpoAmJm@CFnOGdKa`hSgWpF5Wu<~}%zpNJe9e<*8#V^N?VHN* zSqK=EOJovXL=Nr`5jp%Ee&*}c)#C5qd}(b^Wb4#Zbt6>q1QJ8_;D+*KaHlk`q`w&$ tNu{o(Hp+u{duP^QI$wo9R}@UV3Bg(80yi8xuDWaz?wQcPF@4~i@(@6OxH|zZ%_Bo zkM(YpL_|u2SE^e&;y~bp5GRDlEnEO8A__Th;t-Swkbnz9ToNQ665n6dkLuak-r3j) zVQJUf)qnlo)^0^4l!tW1wi8mSgzLjjzXik;p^K2^z`#nSixJ%X72o=9D>Y&Rmb{W`$3M zR_HM06+ic7OYi!6uMxQc3$JO+=(1~?9)`Zvib59COiY}7mTi+n1N38peoUc%EtWD* z_jO1Z#^y0z(K40H2|k@@vcV@E%VqIK)Y5r1TQCqBPgq7k+Rd~bJqTbH{5|FBJ^9zH z5%u$jmfqgL;>w%_s z1NBb`8Z`C3)$B4*>LD|fw+%y@DrgjJCQOi9py3D5`rOs=sAZ1vDa$q3wqkJU3-dhu zYOcbx_u%JV{9M4#Mba2X^DUug9k#OEF8sy6AiOiMQvG7Bo~yA(x>}Egre|D?`Q;KS z>GuK7u{pgF#(HGlZ?5NN+%V6q*}PyzkwFekqrsfwvneZy&Qr=j0zU|SRr+2EtrrYl=W`Hoy$^sAXTCrS38aZ< zR&YpVyXRa9`Z@*QET#m^-(oSD=1HvbM1rs%HNAcalm&oH=y^_CZ=0<7^bS1WHXm#} zaJlioL(T0+9%?#PtJxRBG};WTkgbFHrru>K5}Sq|>Ots7ZL(p|1nN!ktI^-NLI?#w z+-}Y5)TCb3I*aD#sC*73W0DwO!1QRLwrD1~* zPEh2+eS3f5%-x})y?zMM*nv9q_c~FT^r%kxug)i6^q5x(8eYrB{uLKvaJuIi5#_<- zLoyk51`)f+ok?Cmpmrk15vJg0(qu6d(!8pLURwh=!XP%^R#*&2`L|+hXEZ}HFYcZL zS+sspq=_$?XC;1NipR+vBJN~zYkO{}ZuRP3T_MC`YwnvWV$VNE`*bZdSuNW$DHZ5$ zjj-HEQ{sViIY!c(OEUnZun@M_0mj-d^t4&{&}-YZ7WUnNt8 z^VO{LbefL%x?Zi}-?M-U5!5ULP_v+%->6pC)<_943HwP#NP`5Y0=^nmsa1t98LVTu z7M(Bmx8I2YA`N?7PnGy`iNr&t70c84brLDRz-l&Sm61$C9nbBm>lKNxgAJr`d-2HF z*vOu-=ZSj7p2dIg%PDg@^RF0F87aAL;Glq$E1Kv%c zwr4z-=K`%D&cMUYLF%SM^4v?*QVtSJf-ZNaB1>|L{Z+OJofzh~RKVdcb1APJMoP*- zA}GjYpA#nAe=8-e9?rFjTICKIBhrk!`R}M@AHh(j<=Q~hkkVxlQ@3Z->A;~3Itf;L zVgHu|QlgD>D_tYuM)qX_(yw9CAV_IUWmIkx1*CJZ__KnceINeI%rb$HOMNZ=&V>#J z)+%>Z0zg_r0?>X$S!WOE?%v=2sW@dMxsC;WR6!bv+Tg608m=4+}H{L!JPnD zN^kxXM1MbEee+}5Ne<%ly9D=BApVfh0o43H^>DfY{wW>cGtV$wPTXv}%bs(izI7<0 zV!N|{OfzKo5okZjR$JQeTqgFY2DYwhvK{>^eJ{l;hU%P{qL2^7;v~IKQ6e95(ceFe z=xQ224lUjlkQj#C3hEhNuTa}b4}1q5r0ow$q!s%E!Mr?*l7uJaD8-Mh;EhCo=V0yx zIs4}$&;fPAp`!wCVKm@PKcibz5K4|&>0|D@%6KummD#8JxdSWt7lu*SA=0VPaIfl48HA!9cJs{y#qrgKxp^MPFT&m2Z|6}ET73g<8x z`(0_mT`3Vf6|9sdm-WHJ$eN|x(-8Es5VX{->7Flj8aV{W3@Zn77a?%h2y_$z1g=p- z;A9>Gr81kp1);dlm}j%19O}MIcLGm2rSZ3}Pz~_P4Z>_*p}cXaHgr5FzCdv_tpe}+ zBDj%e<%FZWWN$G)WZTO8p;R5z)b`R04WxQ8xwE127p2TOe>%My@+v(Lhpqqq%EADm z{@G`)fl8mYjqFfUke0(Hy9$TegQB{Qs&Vj8c?Okqw-}U+xLuF=aWJd zKHlF!wWYtaPVg$$YUsf8B5_%dp+Ak@j_78}WEHfM{N)r^k z`NM$)i>|2KxA1;MUw$8?W#`Pym-ZXPRQ1PCXkc`I*xv!Y`L_Kg{T0yqL zbSSj{np=CBJg(9g%>B1JXYRjzdUOBdj+k3yWL4As?Ol2

lr!RLW#QHo3{i`D7VcfM&^TX5|0N$Y{FxzrbT= pHGW10hAeI%QQX6smzbLhGN%~mu`G~8XK{ui(2rT%n>j>d7y*}}i%S3i 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 cbc38232b53442c55bda7ad6687cfed85de6bf4d..576f0918dd26a74d2da166b6def4db693ae55a09 100644 GIT binary patch delta 732 zcmX@Dc1nx2fpx0A=tR~IF*%pa#Pp)XT)nc?qLR$y)Z&=<{JfZn3#Bk+7=SVi8_x?f zGBRy`%=nm*aoywuc10#blg%%g%b4N3$uF7v8JQ*vacp5+I{7$MvXG2a1(>%K^3xPbfc%{Ny!6!K$rm`e{gIu(1$Ki5&=D*psYNIT za>5OSxKpeLNu+fO#DUTomnR#tYsp^Bkj+?{A?GccA)RryGzn-P7sA1lZ*#~ns!ra< zsm1~JjaUzeW5DtdA3@@A2dWE(O+yAQL8k#XizWEvNV`eo+pzzOcq%niO%8-MPLfavfKP#FoqETkM#A9 delta 363 zcmX@5by|(Jfpw~b@I=-QCK;E>6M1DOuV-Q9f5M0Dd_PDVzS&CeMh zGcvB7e41I2(PHyE<}zj&XYxDd36mu_wlKy{KFc9L*@sJz&nPFexFk9=uOwDMS65+j z9G8}=Mh0gOM`~_CMq+VhG0K&c%%+J$VAR0_#+umP3;daw|;k=2mBx&R79t z8&00YEjM{RkDGMHzaIAdq^y$4g48J)|9d!6Qj3$JoXL{BgOPxQ8<@F*g-tR58#? VSs;nd;tWNg@3OczzY~sO1OSEad=3Br 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 0000000000000000000000000000000000000000..23058628d01d4d8341ea6e9244a5a082086aa629 GIT binary patch literal 7184 zcmdT}&2J<}6}P>f8PE7@?M<9SyWWg}u;a~oCK0O$tSCYXIUsATO%!oSOm9zj%~X$j zx|{B5?+gM2hZV6@w>19%2c#Sj67Uy*kRTH92cWF%SY~PB9%oEA`$?o@(ZznBT56#Ds zABPr8mK?@iQ#MQ?LZ=%GXiZvPbL@yTs#&fXMVQ2M#WRQcX~~X*V$e0MEyDAC(^=Xw)$Sr_*PkGzGIu zZ`-yuPt=~aQ>uJBjG*xCgN3-u=VZn4Y&I&{SDT(c4+Z%S?D<*zzJT95_}wLCVXx3p zDz;!I$LqsA@|DaP=_ak+W~&hXj7-fT6Wq6V6Zzr{s@%hw+j#X*BxcNCqP4*6|( z2dXRrjn)}WT6nWYZ;Z%+(M23iplRmC%T?M)VM>kJg#GKIp}QXiCWY1#mP9N(VF}sftJvj@ z6iXj;{6GLt5x^mQ-?dDOv(CdYtnPKb(0=))_RIG>qgU>CT&LR!)HKa@B1f=2Fh4f? zEW=#KHia39Ft*5eQ3v?u>Q6fu?-Le*2e04sdrj@j_9T6q==Glm^pqJkck1nfdF8*l zvhTEU*U!*XlyAv1^M$D&%`){8nOfU6B;J6L5}dd10?@s65`dNZ^x8XZk&@GkYZJ6AQPow zhdAiPuB(0eOcsloeKMHIh9P{*fFtOn_+e@F86Eq>Q??OWd0B+`UR5A9MF@?-SzEpNjUl1-Mbk8?%r+gH%YH|Q2HD-n)rDe zka29l&4E^7M7SXoWh>eZjhVV!w^`5e9ICm_Hw`3sYKq3d!7wb#vVWm0SCfN^yG10> z38pJ$rb=8QtKx+5y?%N3vxGPj&dZ7axw;!Zfg3)C`L}qraO212^`%@kRTfdO{4;go z68QW>yHRB-<&LuO_1te+6qjc5tq1G#b93e0FV550eXvT@*qDUSn-?A|ZJw5QKhuRe zikC}algW5FVIlfwK8@&74c!PaNEc!+S^en=OoM@2d*PN2z5(kT6CeEcQbAqCjqv$1?|r5!10TzR(^ z|5wibb5~)XrjjjLQPfFc+QF1*sm>3WXQQGuM!2w*LPy@7Z8mL)x~#d#m7(dDmJUv6 z8(p|QeXh|=o0|iHf3sjMtI!fvd?LT} zKVK{En|j_0@tw|k(?@m$7bl^v5tF0TJoVVgG$=Y zrn2ZN1pSc`bP_mI^l27Nb((F1ERm88tjk$bE*%(G zphG%Und+(;wNYf$*#iF(gsKYU+i80MVTrh#=u+YEyScN|3_>4Gq=?zg?zrj2!(fbP zXzuLf&YDG|odq>Mg1XV=SE<1tKvxK-9Cqt6^?!^7>Sh6Grx(#l^;4`!wEnQp;Nh%K2pDDjPbhXr`MS%okGO%*AzghiIrNq zkW4;f>sHiWR)X&743C>=T0Z3@XSxDr)^MUt$nV#5B=CE>b#*be^WGi5M{DQhniYrC zcz)Z+0T9Uo+hp9k2YFzkVp|Y46Ps6AaMt zV39C~0S3!@8&uZbF@}wF7>6!Kt8}fTULd{2b`@<(x!Lo5;rW7!y!Z(U3x!?d)t2R=NkpmBgRTHScSm>E9F;wJad`J-Gs9B7}gc z8u36)N@nyN7s{dUyG2jf1pP*JaYU~Y+-$gf8O?q;Tn_=!4T>rt$Lj-#t~11O|KR!^ zxfZa%pc(+Nh=dEtQD_CgJ7lNekk4`Y7Ou_#18GC9^5@e5A*mjucsXY+(9WI70HmeJ>izu=MPY#yk zHZVCf^6<6&jBmt<>j;Lrp~iY>xV~kk zrrowUnhF*iuj36?Rwl&i<2XR-rB5d6J4l)bPJtfZa=acekR^sqN)=JuouYGw1YXxS zbu`k~jN=5D8FrbC5FSGW&QMjIqO1bdvB7XyxCXl1X!X)JjrZh6`h5mqb$dFkoyu#> zJE5;4a!IEX#4n(Tv%^7f2t(Iu3OE}O3eXbBs^~Z1Qc53B`lF)X#%O#Q0zyeyP3F|~36Aw_SG8z!f|SKQ2=9y$-dO4p~K3sM@%Z+Wq SOrKUYY)W=%UeLGM_J0BT_LSEE literal 0 HcmV?d00001 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 0e4ae9c10dc787c99b2e3711293330af52a26967..e27035ec2922ac1cd17af02683d4ca53e88d6509 100644 GIT binary patch literal 14135 zcmdU0+ix6K8Fw6e?R6467m`*uE)z<@aqZo*E>pVr zT_3iMVQ7pxH(40leHJ~f-?CW9QW}C0Gf%P|B4t0|R0jBLDyeJ*255>?>l|O&`Upa!t`XSX zAp@ilGgIm9m{K@Vr!FPQdnb&*?>(E-Nza<%v$kil9YwfO?$+DDpLGS&yca+B;pbiW zxk|i3T%j#ET!oZuZwTG+_vD(8bF5y~R!h?NQKXGnZ29KZl&>{F723^}+uDj#BeCwc zHcFvwS@%FSU}Oe{*x$#;DtZ>FM~`esJWgOFxrth{{E_h@0_~n@lR-w0Z22Br*GwZe z9{H%@MtELZ+rDLl!|19oH=5zJn1S4ZbgJN=&+$vkyu{0f%mTs5rc}S=#HdJqm7fCL z8v$&TF!M7skuWy#&MKN|?~L4QQDBhA&0|Q!!ka85d3^%2d?YinpLP8phM`5Un%MW< zzR|Z>_tU#jh}V60=fMX$4?f)8dGEtr*Y0%#(M+w~$d1_tkZ&79mK$T2#1h3}(kH=2 zT^PP4eszM~YhvcHh~$SV z%_kno=fzVw-M5>j^Y>5pd^TO1w`@;DWktd>H@}->VCk-<}ZUZB6WBsP#CagLu zzYrxs;D@mujf^nfnYPT%AZ)t|s$D-7*J> z5uu?o0<_43`NBf8BMq68b#fy)K7@stIS)a64VI>?>k!hM2MBtFzo}LT)7G-Hk#Pxq zw)w)qX0EB%60owH5dDfK%dTwbzV!L&JgY~!t`?N0Qrb@(N!ptPz3hBk2;F&<{@k-U zrSj18&0U4i&%FwmHLRF(6Ixr-u4$&-kJmM<>9ATg+yxE)9vf$Eo)%k->~utSxXpGq zM84Ak!w#d4822Oq&=F~oS8r<<~Ck$F1h)AjfiG$vRFYg7qP~h&nboQ* zA>*nGsc{Z94uq2O)Y??G04q1(>o@Pc)lj=3Mg_RCg|FyItox2SLvWoK@$#n=QHB)h6jZjnq`!wCaJNb zI27qwI#ly0gQCK+bNvv`{gecy&D}w1@}mS=q{&%K@Hn-I^9ko;c+7)(wo!FHrL^(Z z=V=#IY)tdlQu6&HNq&>2UUqJjb|yEa&eQ6oKefGBdq#_sz-3S28TTU0Gz;OsVi`}iXm&9$ej;mT+D0{d|Q|=gA(w=kq)>nkz zuVHHrS1%IuvO^?L(&E={(@mN=a=r)rc?97HF!1v`Vqk+9IJA8?XrVa@SChjfi0~Ui zgw4{yD`A+aU}2CZ>(!sBQtT3mo#Z^nNyFr?)UewTT{NIFS z+4-k1y2-x6Ti^&+_bGq>?G~8ePDbDu;SwZu+9&A-2MzIVfSaNjK^;GZ2DTHpcHfTE zJ<*Sv3J;HMln!LqO7iw+9u500l4yn)r>iVZ`6)$kbkXDdomeeaR9C?D-vrkPveWBo z_@`!7vd%xyPz1|dm#X869>Q@-;j>ZV%^|9~iXc7xMd)eFDgudl4tI=|60`h{ zZsK`Wb_4G`0h)pQllaplIpugu($P$PHBAupuS@DH%S+>b94N;}v@iT`XO(fV>MeP) zn3xg9xQ<7Pk!3q?oiwiEM*$5u9zSvqu!aUd`Vxj7iyz%RiRm#;buSFe5;X4%W7Mol zrK*^f%oY@%RWj`ut$dfzNv+&9c2GqnX>IaqYFRx>X#0*}uZlpurD#ye%NTkrD!Dk8 z}#% zzH)_bxUnsWaK+u*)x2aB>|%weUAZEH2f|S!j9kcKp8r5RQN#68EnSyn<#$x;2kn;b z7keIA+>;mk)W@vKbykbkp}tvNC-au+%T?>e8Hy(;dJ?Nv=Mue&x=`hP&husQ^d3K* zJyLD-E*7y%o}X0|MOhQ%ZGA`tX{z_mHe;nG`6W|UZExf$VMA85i%KjCf(1mqOxDOt zvuO(4BcqgDWJqfrM|UXlo@@g}k-N1{V^8qKeiBkSyj~Q)pUzuk5j>wq9aD^r4{H9; z!3Jaz{{Z*zsGc%Y-uf)nP)6krXK9PKvm$krgyIDUf-H)SQGl0IavD@Yc-weg$X=7s z#oHMw>!PB0>cw=kQjq-o!1rShb(l)$<_Ug=z94{U>N`~8lA>jis*eLbTQx>Nxhz|l z%V-^m9jzT(y4YHPWXzZi$ZGkw`00>|+E16=WNx}S%@-^Kb)wnpEI-F~Y{)7`S$R~p z&YG;341sTvb~Lm}1YTy0(9(`W?5~Nb^f|t0dqEQGIAii@D~VlG5)U@szaeVwE>}Bs z7KVPPTR7`-(Xpn~XNhn1((a*y1fX#{i{;kce$k9vs*^ zsnz0(MiTpa*~F)97}XgQ5l1f!4}uj9I0a=PN}dSel4yZ+y@=FbHU$w&OkYQ3JfO~E z$LU8*S4Rpf>7)49MuEF9(IwrqBctaMBN>%*xkFg%{4|(}-~xvDUIkW@f$0O=1#{%6 z^n^)Je@`&bFkv&H@>BRGrg(*ko+Gb<<#n*GTChwc5D_8#2j$@t`(15OxBK#9=yoJdBf&BUx7`I^uj%9hc8Z0b@@%g z9zPrHda<#iTlUa$@dNvvajA5NpBClSdRAZk9O{6}a%mqqdbSH^)oSdZVgy#Z_>4-DriR76Ry24|1RcwOI+-bkPQY^Si9QIDB$ z;a!kmF`PH-@r!*xZR-rF!qrh`hEE^pa035@ zDI#;&aE@4)rx?O;&VeYHR*a|$vq9YrePzVYS6W3G9yJ5opm?D}8~PRr?Q_&9pPl>Q zbI3DWz zt_w*+rbr`mk7w;KKn~BQpMg7|ycdpz>c)sZZ6OanUqq5h^Qod)=U{L0tV1Ypo7NXHpLA}&V1l>EkZtH3qv9NdUopZkPecw5Eo)0Zt zFiaX2?zrX+v(S~CH@{>d%gSp#LW!YG^aG)n@Fm58Y9T$fHiKitJ~q(LdiEZmGu36? z+f+p#&f&Ob92fE@&YF%#_>*`5p=yjBk$FEW^^SAw2&;1TRs@TwpDWf-LIO?Ev_Ci$ z;AK8IB+)cgMhAGmTuB9o$q6IU<&@h^!Ag3Kj-uddW+RlQHB%%lz{rf2;0p%DxCEF> zYtJG<*YR&)oEhm4V?$Mbo-qQsk?T!YIa80ynUxgZs3@{BJWI8D%_1+!y}Zm0s-Tun zsS|1$XHd5OmFH@m1}aozb^nnK^OhDg0z296E5jIpvk4+zMtxk4qNB>xX*EnJe9RSa zdakg8vv=SCvy#LP4s(peOR>Z)@rJ^^3@4f)6>@LKRah&hb|-B4j@4+|YP5U`%@M6U>LPDF4Nw@VX@r={&gjJ3;Q*+wk;p(fjXgzSOihOFd} zdB9#BIhhUcE#IIgo}A9BLmvtEGZ9a=5BG!||J@TSO(q}FP?BGXzQ^`H3fC0r{YGv> ztQXs1FHG2rEzOHW;st!L7MCc-@U2l5M607*g}@LFg+e1)?5$*KdbAYq*y@lTcv~lC zuv6$xY9$di!3AG!cHILS(h4X8t=;pV1!LKV_!S=m>vp4Mf7_iJ3@-4rum&}fG9{62 zdv%cul%!2}OCJ@}YcIUBx1-A%t&2Di)AB-hQAZ}p+Gpq`cu`b=`u0cKs3zov9;(4$ z#+kLS;x5K&O~?h+rNz)~OG9RuahwH_vcsdQ^NvM~s+fX4LB2K2s=|G;O$xA*e{T;K z&tS4*46ri8iz)*Xo_drB$Wah_>-mLrZ*-x}>Rr9-F-{bg@SmiZhnPW@q)YfyC6E_$ Q66e5QE&M+8{?s+}8!P1JnE(I) 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 48fcf25c48c59513b8f29feddb1cf30819ba55fd..6bc974e97cb1a437e66c5efb2e3cada00e1cdf30 100644 GIT binary patch literal 12541 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 Vuc$ad8Zz>P^%y>}{bA-Q^be}wT+jdj 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 0000000000000000000000000000000000000000..ce7b65682123b570ab42dc059f8623d09c759158 GIT binary patch literal 7619 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 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 0000000000000000000000000000000000000000..4984735ac3906cb41e79e638fee1409506ab8621 GIT binary patch literal 5560 zcmdT|-)m$^70x8-?sVtZB(oV7W-@k=aTA<$&$5F^SVSCGkg!1q@kM9vRNq_Ob(4E< zU2oN$>3$IOVb~4SgSdC`%{N7m1@SKsA4CuzL>3XmcmE5&Q+2!hcITJun}H;^s!mm% z`p$Pwol`%lee&tfg8ea@DivWe?64q6WWZHnRs!kgF;8^yadGg|;>X3lX=dz|l6mIy z!Yn|-7hx1+JSmC!K343>2NA;YUmx~+?DAg8nqPKhs=*uu8fYmapZS7!zcT{XN%x)3 z+mAbMKj{v?@}wJuy>4o|skf^_%@48o85{61ySf3>OzAB52{_dSlZE}$Nk>P-I@muM zv}M2TEZCWq?~uIv^FDn!Z+vik%Nnd{;ho2JdFrxvjcZJid~qF;D}9Q=3sY+HR00ALBtvnYgfRE)k@GGoSmRr`!rPcN>{r<2}g?USJSF$U^?|Dh|B*69<~Uh{Jbu_nEw8M$Mknl_EWIw zS8&AzuxO%iPX?okTITVQW&P2MGTIC{?nj-CI^U4P7p*paI-OSa$LZHJn*r~KNl0nL zl_)UAy~bJ5z?Tj8HPO%>C<@aSG$=Nx7xGH$;w5Q9^uHCNqr)>SZjt zICgg&F*;Rvim7G(eYIuw&9dFlET$v6V@8KA%*=!)a)W=tWdB48G>vQX$w3{8XCzrAH~E;W+NCqK6ODDD*>JoLhlcEKBg&#MM;BPJ}p|!Qp)& zRMHNbWdp7!F?JR)I_E!1TJGSyf4}a$B>cCE@LwH|r<|%9%BHX2Mgu&a$&ANw@=93C zJLYut*203gce;XqH)wTQx1s_HRc@g<7N$3yc*EenZ+j84F zgn#2A*43;cJ%0^B8`{LK%cxG*a6(sEAUC_Wx7SWH>2oCDxH?AdB#+Y(nAqOi8;7fF zWt^h`+#@WjuA%s>Eyg<8DE8(}r~VlZVJ}UbzRW;ot+Vf3uj_qdA8 ztSGKE@&pu}TQIn*BKw)mMS{ZAzt5r^)ym`^+dMJNvSN~1fd;Zyt~85NG*;ayeYF-&UzGc>_gar@1A>fM(^lVV(oO-4ID=c}> z_3(&OL{Q$VPz%pSU#N^7%L!#+d1BTwp2|#n5r4^};&{=t1dArkn%UyR5LjuHJZdad zGqr&C@&VS{plAuKAdztvqo=7eR2Foo;v=&WCTXrcp7@e7FT~?q_Yc2%Xp`3avx6Sb zGMRaTB|*e9;7qC_pEa8@*R!kC>?(!Xog0~3;`Boz@`hV?s>68p{n>%J$>uhlK>;WM zh$34ptw$^w6Gi5qcBP8vf%H(-LFzVcGpV>& zooQL(Ywu-<;>=QX(+fhydJ!F@)Uq*l2=U0Q;V=p=!0dwwSW}95{V>Ae;G=ix3!9*J zwAm2qPOKKd?W`x?OZD)QMDgc4Ri_7G{SetpbqrkY2$&+7`1sJ$(513Gm#=`u^PV)H7ZF zOXKCK)FjHD@vIYa-M4$d?Ylz95jJaT)`J%XS`^1CW*3}{y@`8H4&b?Z`rO=BqeQcz zC&Gb1-66o=JAVVp7DCKE%Tt6~ zdfKw@Rb?DF2YaL+CVg;V92mAKRH(c+Cl|&<-bga%jr0a}R)8~cj|Xt!5mXQynasJ_ z@ga5Qaa<6Qhqnuq?er4$k=ZKW(LmOy@50)-S>nk{ddo5^E}X!BK}FmbA)G^dE0u1w4eE5?rwl%R`T_nZ)1+>?vPj4d zoGY=1XD2(3i|AePUT)T_*0am4Bl)vbC&suQa?-J!)4ST^PY literal 0 HcmV?d00001 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 7eca70e295e2970429ef2698bcf5e97f25ef5750..add16776343b92ca69a3abb5b7f41136e0088795 100644 GIT binary patch literal 13586 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 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 42a19f1541f76a6db5dacd70dcc6aedbbf93ade1..4afc0839207389fbcbf4b64d062a57a42a0919b2 100644 GIT binary patch literal 13162 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

t!ZgE}YDHL$C?Bt||KChjO8VBXp`@L< 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 D2;%6K delta 517 zcmYjNJxC)#7|pPmY&HpsKWHRI6v3Yec5>Jrc+EjNJL9t19sPDM$%dU>e~O?M7Uxal z%^a2@f?6smj)OZv4-Q)qEJSQ9ZL|^u;bu*QG{bw}d++1TcQ(2?g4gknm(CM>j!?9I zfeOkf>!MY#D=U*^#h+ZV$+GEMM6mXEs2dd%T#wIcxgMr@WWhJQMdAxKu9saaC=ts4 zDMN9=u+(g8`?xpBViH=eDcBU>LQ~x$fC;EU24U5JAj`IS0gZiE%NWVn778%%IT92>V~GWulq|jI zTC0MK@eNTEV}KzBYC*u^J7M*{M9j=>IGjPT4v_X6s_TncJ{g&ugIBWkY(SFOvrHc0Wbn??+5=A0Rb&HO_S|!3s zg*0vvYBo9FO@2wRm_>ZUE(wDtQXitxplI-?XkUFk^@`BP`dr(+GSV-TPFg;cX%(YP W!aS81a6;iLg&}ziCtW9>I 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 159b67ae0b880ee8a50e1e11009055b0bba5d576..d93e7a716ee135ed426794a664570f0c81bff3bf 100644 GIT binary patch delta 682 zcmaKqO-tNB7{{GW}yIwj+O4@XLBaWa%M`6YK6R}WiCYDr>d&XmN-{ye6PEI`dNn-}u@Wn?tn uJfH6|vl>4m149-!kSOlq%uCEo1!*n@`Y{V6(OI0K2=s0i_vRHsF^m9d3VZti 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 ce0e122bbde268bf06c8de6a7212367506c8a969..5396c2e6033e802f4b5d2ac7385a9e6ae53ba13f 100644 GIT binary patch delta 645 zcmX@EdPI}8fpzLmk&Ub;7#W#1pJTki$hc_o2R20}LzB%Xnbnx#yvZk-n;DrVPh;Q0 zxOB2NhrD2qQ%+`aNpxCHequ>1mx6-AWP47vbS`8tC4)V7N(N^Se@bdvW?p7VW`15g zNYj+bQ#2c=)K1aJV9j8Isu4j`6Q5aiH2f$h=&TE?v$38|9>StSKaGqf{KBN=@Hq=fO<3z~%}vci4w@cmMMZ^zqWt94;^Nd4g``S_ywco)%9Q+M1w}etd${EsGQj81?#gi9uO3P%4|;I{>#XizB!5aF|(Q@ mPa)9i_NE))tF(N$)}iGCeL8s!WcW* zmqUK?6;45Zlbp=rlIXOY{KS%21zp|AwH#_bQ!?0Nr)Xqw_Hd-;7GxwAXBJPHJVmo{ zN-a>3wTD*=NsAU(ZH8D6HRiFGJ3+ zGzq9lOW{$&WRR7UExEY4kz^+?M%$zBSleu{<8Cie^$ZSsJ{maN` vx;dWzF|!&!BLhPgH;^dq;mk|SO$BK#2Kp}xB+*%%p$PP97Wd{1;TT2$T0D8b 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 50182060432f7055cad3bd5c30967342e4ad3059..ae3b396cd7103a1b6c4096ef9b021a547df61b19 100644 GIT binary patch delta 702 zcmdn0vQM40fpzL;;f<{O85x;2A7wnx$T)xU4K_t4LzBtB*ep16Q;Re7LBu2$bv_WS z2PS-htj&%r)0l9pmPA#pmziGx(a2!!k?_mUOXX4k0zEx0WH2RzJ$4FEAAd?}T4r8mNoIatd`@O@36kav zHmDjAG&S*=C8@a}g*Gs2M8MWyvqA%C2TMt65m-G;ISWYnlBceGo-Ub85tOgCm-aHmO*yyB#^~W=Sh?%f!#ZK zEvK7GmJU#T4|{%6R!L<+>Xa;95SJq*wKy5UpUlUVKDnODjFAcGbeYYUxc)LSCT+gJ r^O#x92B>kMiO%8-MPTB{vfO-AAcheDHmU4u delta 402 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 literal 13627 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 A6aWAK 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 0000000000000000000000000000000000000000..c415abdeb1a2406f46effe73b31c3213a91894e1 GIT binary patch literal 5738 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 QX;&+tU{}NiS9W#(3!6iZ1ONa4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e794a6f9d9acdc12dc78e921e349614bfb10397 GIT binary patch literal 5714 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 M?25SHlCJK50Z~SU>;M1& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..29fe9b3fba54ff937c38f508563b0eb3d71ca111 GIT binary patch literal 5401 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 e)4ew7wl-V~6F?g{H3JHEWn6GsSogm-F$<{x literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..89f7319e35f67d04649e2b1ef890309a8c58192c GIT binary patch literal 5464 zcmdT|-EJI76?UAA?HT{Y&L)aTygLRh>xg(}!$t^2s|d90A{50!E5yxiXllA^rpoT_ zYO1Oe`vM6rBGyt}Ahs8t0E7f9A)Wwnfshavh$lcuJO|&Y?&uqaAZ#7*H=A{FKdPi^sOap$MSkBdFm)$Ey3xej^Z z79bG{8AqC@#goEqkhqnx8C3I^4G*nUX+2$Z#FAKkQtXMY>sV=H-WqcK4;0q@mShvn zl0m4_6w`V1aqyIDD??~Rb20VG_xLgC^s*TX&5Y+osrORGprtLumg@%fvBYJ!RGsF) zU5RDNi-UZ`T#s3+7!w&l8l*vO-%bQ6g5MZ$>D@Uk^zj?=pZVQ zGJ~^mt3eoOgM+{RXfYp&1=o>j#E)CJmnIQ!;Gkj`_K@>d z=>%qT4{Q6>`|RE6?=|N*TfKh5tx(aO!o72mXv2Vdhe9kJ*n;KaD`LOF^FX`~tKn!@ zz}oPIlkH(-gGK@)VGNt=8P@GyfZpC6Pdi#=&96fKK_;F0gy^{SnKeq9-k9&Ls0h6u zl{_f*W;4j|xm9SnpMk8jhg+vDJ?ng%&se5=oWu`I#>g30FvW2Floy1~cd*O*72AG4 zRG9_i4CrH(ibEC(KK$+p?2r!M8Qgn&aPR)`_-prvu^bIE-%Y(kBQ4*@;zw-4r>q=C z%rawj9ukaZ2oDhcXONvdAhv=j>7=j5{nEOFS@{9Ump_l`--{d~o?i0C?0T^0k={OQ z3Ppt*?yR8(^BNPJAd{-6O?JgIfv_PQd(z-E@~Si<32^jNGo zG-K(uC8w)rFRsp;N$)c9O++JTTeu$StVV~3k;N=6mJ$`^%#eaI^P!cc+#)SEjU!xOMo2OA8C;9Ehts@9-w%8s)rsZeDc! zpJRf*4gf=S3(w-U=N7Y*!Y!5A=KTE_sf5Y2IJ}3g-7@Y_dy?_u@T=7H_kXLsoT@Tm zK6Pu=U&@D1ic`0ls_G6hRTt6bp{FAy`xVlSX6}tKRXA1NzF(&@`_t>E@HaeN8MC5i z-N9^{pwp&30CKtX197)Z^Lfb;iRoTEahWBTTS>sB?3(ghmG1G%v*$kI?K@&0NQ5ty7Lb zH583vyG{wM+a4=rQ)PK;@X;l=P9-Kd8XN=Kq(ILG<)B$maob?YTV)TAIkDXY&!iQ> zw35S))r6|FJ8)~7XG+^3=1+NCJX&-;!Q#5vaa;UY0xOGB!c2uat`qT5KEZYy&zMeu z6(lrg33|F#BS)u06`!~bnP#~Scp9n*Qb>z(JKq2LzEA3I&khD$Yo!Ch(kSK{IFqW# z_uQt+?d&QYze?eD=0@h0IGhm4H_CMz9j3Ey&koE@c30^P20#fw6#KekJ!a`7M~MK$ zBjlWmcnfgXG!K=If{14v)n*z}`FP-#!1yt8S0Eyz00qlf9;2jl8!WdfXu8~@1gX{| zgr1-#9)R^7xT?8MSxgIV`W~R08Zv*=l^LE#DnNY%sjK`rQ-%lanVuz~4W3GrIi8}M zK_m?u#dMHL%jKy z@UjVtZjo1kIq3vMjAbHi@%ZXnZX@Ga08lu5kzPB%MCuta=uXbzZVGEN^I$kcw?V~4 z72H7S$*^$ONzy9-$pFa(%wv67$g}-7-@Xq#H}p81Tb_EF<-a^#o{Bc2>=D-k$?e$h z0k lL5A3_BgstnYTfN^xGK{y&LiT?gl6?33U*aoD08vFe*vEcDMkPQ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..049ad17311352123b2959bd543f6935f58cd3368 GIT binary patch literal 7215 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 A%m4rY literal 0 HcmV?d00001 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 04ad32f2982c5a6a6bd99c4ccb70f6f89336f1e1..99656cfa82a46afcca0f9d1fd32800cf8d0ff3d0 100644 GIT binary patch delta 759 zcmaJ9$#5oaN~>k!%|_4d&;wMoIs2r~;o zF$>F$YX>*Fm9AX65L}8Nf+8+N5M)4v0XKs0^)sD?_%<*1zH`n!_mJPGK9|K!@$t3v zK)g?mVJf;*sF;ne>r_muS8atLt%o272d>+<{Sd=o1d$>mNaV#AjSykDO9Bx;CgS)k z26!k|N-C!B*3C|}>w6)*9_sQXLO$T5=n>ph4wCmcP@andWZ@lNjBg0=Yx*SrWX&DO z!#CWGFAKpryr~vf6rG)NS=oQ4zUD2v(QG&UrrXA=@l0`XR-3J+=bKI6c9`!ITjAYs z6~y2Smn~)m_KIZFv!2N*TN$Nh&RIr7S(lF6=1FDmBIpE{TSeOZVU;jq~1YTx<_KHwFun zhD;-)2JCRE#;EXP!kc4Beuo@H*_2|7Ma{nvZ%ey(Ml`oBu<|)8RtuYqYe% f$h6Nb1aiCT*j&P6#wdSy;DN#Z0NNksv%t7-qPcy^p+a~g8;-r)?gx zgMH~`1zAZK#CoJq$x+;-H{X8dgwXh$NOoHm!zOsE>oqN?J@&+!6SzW2{&%d~s}2M$ zq`i{^*_L=1*{w$+QgXcB2;BCH2=NXbF_mPR^W5$OrZhBk14qee+#}OhRU0PZ0ItIf zlpzI`dAKo;FVpP;ypy?l6gc&!-HJj5ALFUa3?ZNJy)lHp^Sl>Mu#?)Q+Io!la!;9` zB0W7_wl7aK&{PL1u#7))!~I}D()e`zxq7C?fa$_J<|y*KaV;w|qR|99^g{g;{{*)t z5(Syin!B`oDcl^o2=`0>cO1W3l=;PE^T8U<`h^P#ba2P2vY+~rbG@(fZ^^lrnrfCD z;r^A`>YO&nbnw8BHkv~D_Y;_LMd)-fR``>gG+Ytc-ioquo6i!eGt2RJ{)>TWAwO6zwLP$8OTRTGL1R*rf%N)YjTogw{u`f@rlM^{14QZjvpNF)y>}M-?%G zg2IBrtoS1o{1U&E2vSspf?xV23jI(KA1DZ--wJvsn@!fXc0Xq3-nsY8xp&Ua%E-rk zwvz3}TGxHsV}`MmSD9A~QzAF5qGi`edBwWM)-1AOl^6>Na&KC%N27_f5{(L@!l|Xa zJUg05ONuf&Pk6qAcU*m3Tdjw0UHyIg=@GOoLDiSYW%80Tkd%tjz+o7)dg=s(0r7Tn$Q^Nx)0`0A zOTK%<X_QPsve zjYy|mkF*#LGVU2TpXu5adiMXiFjcZxTEm2$Ad z1fk0myG<_j*#A+9=*11!T1RnR1^5%X5LMd;xkKS6_Th_ z>|uPIE+^fhp_r%8)<|Fmyee0a7m~S*l*(%O1;}S-6OMr&J;U=bVTlfLa@yDKGs&tQ zZuOCIH7%yUgKj*86u6BX`R(aodY~;~7O2uiFM00c*)OnP(}xEVJ{d@cJ}ANleNgBJ zMx>#Sdxit_VYgKT0f~bDTUGxq6hdE72eMKxIp_B;fTSJJ`;445KS^px6oq^tmyi`j zP73iQA-kB#FC}vcK@<(8ZyBTiqQEg^X=qT0=n0W)cE>i{1}2brNl8>mbympS^&b(3 zU{iJE;!mvpofXJo5Zg_=%db`SNfnSUTS<0`QKUlX4%kNrenZGt_&U^p> delta 804 zcma))OK1~O6oz{IwLNnJ3$a6D{EJRqTo&|E(D<>6uNUScy7|rC@$RGJBR=L=kd+`o_l%R*>*n4 zL|!;I2@yN5$tObA;IWV-Cp#O$7qK6}hERZU_t$Yt(~4D7(`04odZWBNSF9SQId|z6 zJoLt#s;uiWkOLP~k4;^9n|@Yr+c#~6I;{u)jKzehhCz)MH7da?7YxZ38ml6GVh3qp?mq s{EIk#lFr)UZQ}J2%-6}mOdLR)q z2XV&43(*USM-3jl>H$sAgL*M09+bqInCMT?cXnGS2{CT6n|a@P=KXq}+1~@ZWA(S{ zAAIUsufKCNI&D~abWWBQElJDdi>f-i{;1~=x9{0bn;`hNz6fPOcuJRoN&on1TCSTA zHDu#4{-GxWsb;>&xSxx#+FA9Q!dLNZ z5s%>S0N z581JDDAY^fBaJ4~3$nhLUAE9dO?gVc;PX|u45~nuC8>vQcXFz0I!F((Jvx+82m*}s zoJx~`n}GPu5+gygG|HQ22oHc-Qt%GVF_@?_!m~z|G(TrXdPOLzVB{H@q7Q|s6-GRV zCdoQeCICc&fN)ACVkF>3BoT0+WmA>&vcuNg{p*sY!%{R$lbTT|s-T`#5&|o)O18~N zW9>EbayXK;h#W?mYJ2Nmc558uHF{*XL#@ZXT4QOhh^q4VMlWoD_`X%CsE}BuKZR6l zjpmfgl?W{r*;P)u%4@AEk4KDFfUZ74d`efvvBGE90S1WgJ{KR3&*0t}$X>2yC(&dw zVOmBW*)}R9a;1b`)XWl0H<3(MuhTy<9<7kI1c~gNg!}l-O#*o*=*>uTtfr-E5$-LF z7jtea^h$WTU%3Z|NzlkCE^Ep(c1t$k_$xZg*cazTe)x(~jlvPq$ z0JQFR4@XLBaWa%Mc^iK|R}WiCYDr>d&XmN-sseV5EINEG*Q<|XE)f;1NceUSx{=q%1q1bQfoeRI253?l&hd5|*z 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 0000000000000000000000000000000000000000..a95c845d4b1fdd471694efce7f1f71b53467d29d GIT binary patch literal 7089 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 literal 0 HcmV?d00001 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 2b4e94186cf742f42dd5407b8880a927f976d8bf..de3483f4436c6d66d7cc12fbd0eb1b526db9b4bd 100644 GIT binary patch delta 2758 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 Usgejdt?dKSK60==v*mu_UpTz8e*gdg delta 1189 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 M<^>voyOUe~ADpW+=l}o! literal 289892 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 nzq!!)7oo-GeD^oE=K+VA3vfN!6%ge;n4?*)rj zaSSifOaS&BO{e+zbQ+$3daY7IDOu5nAbSk@A%s*3L?xdQE}){U$hxd5xst5uCN&3V z%tA-`7ftLlx^`f4vX074Kx251QB)1=kEd9dRvlHhRe7B%x)L}Eesc-%7nAU_ zmd8D~?Ye36U>7)wTX1X)$H%A`gvY;gjW~YB%fMe5*k|~qlBj8NQAX8fUf~_O>2!NP z2-7>Ep(zpsE*G!oz3d)aDw}#VOsG4i7+vQvg4|dr7m%V`Gc%^;RL_5sn@UKM59MO$ zT7%bgNgs(dSaF@f&s%x?iFUR_VVyDlV4dEv(<(;|Ja3=`cJqukXKGd) zx;Fh3UZW3#L*N{fet3$l2^r&a?CCCsfA8RpNU@}fI$sc&$@rUpw#JVRvSG{@CpNn6 z%H66`_{Szp5G))$8;StJ`3yU+Gs1Wk8LwKN#Mz%yvAKpGNiCO|<<#d+ci;;+Tf>LQ z70WPkncLUiu+QqU%|YH;Vvv6BAj$EQmpN$Jz=55PiGIgKeyc3AXnt$?7_qBO#EjlV z0#>T3gftBmV15EBwQ^;mph_^2a5iF3jJ+6)$0OEOqet43-3>v`SZhC`oD6tOE8$VN z$dHCd%@cj1f=sf+LvI0TQX{5s!jtr3$7$eZYZ9$5cl-fhqrSLry=CAv!;&>V$?z#+ Y8Sx5@ed>fKZfZEezIw7&U+u|)fA_!)+xM`T6T?p1Xq7W=7t9`ZzjG*XVb>eFQgt`0ck*E7rc-p-de7clJU zIS?$+30E&nQkS!2ddfD6S?b`=KxYkSil~_eXA&vi%zPp>>IvfpX>Q;}=z+V?3MZirywE-h9izD9E5_g<3#DBVZ{!5m;7;m|elS;B~T5DTUyjxO@xk@CuKH)VU!|qsAoFG&P~Q#e9|~%$(b+ ziX*8d)xJLU0#H?UsHQ=4t~p`SLMp_;KgQu%@*1Dz2~gOP|Jfp!;6TkW^1VXt9DEbx zz81%!k$Kbvzrl9^#NBTPL^a3)bSe+JV>%r99*fvt3NTXJMIyKv=^e6aNmbR}_Lijj zaUTCEZa*q6*J$BYX%=*hc*XP=9EhmOXK5jp!fJedUu{it6ztwq2!T)9lz{iR749WN zf<~Wo-x`!m+F?xWtP=g3fA;UQRhh`zy1Q+*6&6F4M&{SHE85OGG_u{sJ-@6oQgd)u zvo$QCl~nwXaOsJzth$s4~d#;gT#I4qdcr>Gou#HX=j R;g$oP;{R9+<$FyR$uD+pKe7M- 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 7e80beba7f7550991bf73f4a1e31c16f04595cca..c9ee14f44aaffabf887681f2870e3a218fef192b 100644 GIT binary patch delta 1223 zcmaJ=O=uHA6wajGCfPPgEomV(Nhd9qG}c-~5C#80ya<6pZ$_46GjVoEvLU;H7L}?f zDC|XNy?N?UkYeN2gB3vwwzlW~2(6$Vst3`N;LQFsY0>UsciznR-uu39-`qXEc0#x< zJei0-5*|>mzbBTJP~ketN=3CMBNO|snK)pyPogQ^q>ud(pT|1)yjbl9z}wgY*>;-o zY4l?U42hDi%2G8~(=`*%HdcM-0eDHnp){DMD{Zra7x&{ix*fO&micbr1B(}N952wP zA{;oGPV>&`G&}?KdbNa7N<|-q>@^}n2c9sJ17|?`F|cooB%>E&={z5`NV4xDR*SH*Fql z1IKV1j%RQpLzlbY=^d^SC$9Jz_!|QU3{fuSG)*ZgsMg9WyiYgX=^O%K+7%j|Awl5r z@O)m&uF+K4Qo}K!;hJJZCNYBCSf~_GMYnp6+5ffgKZmXlZ(6H$wp!$<;dc&7U^{Plai-?IOV_5K!b`L_I0`11 z^kXw@Oh|_Jv0d~q{DzA+qQ#P$)A@kFu`#jru{CbHNXMA3Zfx}0ng7a4;qSXJL9lT2 zRWJ$&=QHm9&M4zmWW4Hml3*ViVBTYjEn4gA~ zdbv7XP-U1*x)X6A#vTmD;~6Wf(NDr)uOrB9Yt4C#lL61^M(8qp&5(vq%@cjPicGS= zLw^BjvJ=xwVVy37F90talUQS*`wsxW8}Xj4w&4|qB}=@M5vb(Kh-YZ*suO&a4MxGxL-0zRaeIsgCw delta 832 zcmah{&1(};5bv|ubhk~KhT3X1sapy)*?tJcf~Ts8J!nZT9$UgT``XEpWP)@uU~A#ODTX%q!7!_53<=J%Uno(`Vbqs%Lp zX0}~a&XEXzsCKqAj0@11?--r+1Q$#uqsz}ULVTsSWX!jlwYqu8&KgsmlTPK$g69gjQ+ngyPsjtF3>c)$lj=2v zVA~4+tezz=WmbER@e_!`BYsoU^&!Kc))X}iJ!W{te3r&CIj>Jg6F1^|e?NbxMSAbY zPm7Zx1`6BzpK_gt0v-HD<393Tk|n<)*{9+Jw6iUGOe~0Bb1+xi15u5sbUF{Fn{n~V zn`Gg?6!C?oZqm$01AT3FfYjA(PTvvNU(IvL-q!X{7QP(NgJrokbRMn8zK=_xU4D2k zk0G(1wcoH+sSb6mSEYa-@DpP2g6D#LWC#WHC-9E;pwtkBahzF)^&kGMhuYng$*f~~ zLQb)R*i4rl znIm`ky_OMu4vAQUGhuskc`ED^GE^<-wGx*kv!GahaAgr>X39@f&OjoOhuMAH!a}y?u=Q1eB{CPyhe` 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 5ac406877d69338d44cf1a6c8330db77ab7b5c32..db5ff35421d2f2af9cca6326e08f67118fdcff2d 100644 GIT binary patch delta 1275 zcmaJ>OKTHR6wb7r=G7#vq=ncvxoK@lV~rKvDEL@NHbSk?jTi}&$xZKEl1!SJXzPPk zP*9wO^^S|~#D$0;#m0?0tqNMO;tx3DIfBERPq+Ax^VM!P(3x!0sBIHwPm>q+uv?`RxpqgXHI&z-Wky~pTg%hey zbnWjfhmqwV%T2-iUtAp5Q2oJ8H<4>jW#&;|K=Y(kSxlFNva0ClRyF84&T$XOxIfO# zlUes2z5#WjIg<2T(aZ&JR3U+HA zF)t{Jl#^h&o>yRlZZgu+%LPc$KRAVboWsHLSuL|hO=VpT%Y>?JiWVG25HMqbl!Zmr z=$SB|b;o}W*OcHM)|81Mr~G}s`I-(KAvgU!Zrp9LVmf^vYvY(PLF z;i>^KHik}7 zE)=Nc*Bj!k=mbht&~|**@C#2c_gXCXj3Vm{WR*n<>177uG+Vi-frbkV*k*g^u{~tF zQ%`6#SDQV`>s%c#tuq=0rLrtSMS)q6nFPg3p){G5MG%eJ1FuaMwbk53p#T|Lp|3q=2UipnrA+WrRqse~e*m^_tg-+A delta 851 zcmZuuL1+_E5bbYvlk7GziPctX6Sr2|&DvH_3f`>+6)K1q!4kIF-%hq^He@&27OE9$ zsq#VOe=i=yqX!R4JWHYV;fyG6(qCi{@kcPU3NXB~?Q z7ORIDvycU+#P`RH7N(TwsArbOs3%xDGvQd}JaxG)b%X_z5zATpQ?OeNVrV&8!3Ow4 zGN6hw9EQ8F4^HwcO|5(`2nl$=)Qsn3GexuHxdNV4w9o}Yp7C3OHts~@@)9K3eSVeb z{E##wVecY8r_7PJb%OF5Yip2%6|Sn9)^8Zp8l#4x>4sM>=Bb`5cs&|EX(O%m_VQC| zJ6Yx(YIE!V2^t@d?B#OPaq_(`arP@pY?eo$g*9rrxGt`V8KL_%XomnKhafeCsKUZ@ zq6ns&bJ5`RZ<5Rs|IESHn>wW(q@kfE5Zi4>FxwJoOKb0DxyBbFsYcjDtBfeR04tC> z6F|}iUsp8wGe&DX8r8a1|G-}Q6X7hc>hcf-JiHEX`15Fw)W0nnA4lWtqrPquhVknL zZ2R(e8!XpzCXePF(-Zz@b`+bofRIr|j4Ff<)rear*{8QPW0BgT_TY9g9$vyhPWT1f zD~x+pr}9^mS8>Ug)#wFAi@p`)DNiK^wJGGYkTYU?Q$;H5X+I5H)Xmm%K9`tQS~3n8m3CJ=AQ0M>b{}{F?IQjI#0w7yMFJjILOiTkAs&F=xwk%U zmAlK`v0t#{?yg(s-h1xv{LZ-_b?Wu`fBeA{Gvbf0hQ4XJhaKH8T+d)(!WRv%9}k%u zC2u7+zMOn9+2+kazZZIO&}RvsfkfZ593x*d>z_FiMh_3T0R`}B5$OlxXtGr%Vo*!xTo`0-d!k0d(kpN8reeM(Zdjs;PxcvFoy+d(R6Fx_xix z>!GIahw4u#8g_Nx>h3d0>Jc-PyB$L!6n0MFRRGWlLJa!qt=YI|&hUB5HQ1qowKRkI zUYOLp23#M;|8@L7g8v&dU|<$lVwl^2%5wK%Dt?n}QuMKXqrF||KU%H!kVU3v+(`Je zBS_4~?I_V>^8@Byf#GfQDlCN|&4Ho)6C>KjofW#Hg%%7D#X*T-AF4rYn+CVrCadkX z@9Iv>p1$q5?1ms7wYwzRCGQ}^W*%YA^W{>jlBgTi(v*-G$t}qSITF2OgKd5Zdhhw5 zEcL;csY}53)$cxn7Nqo)En4cvuUn{^gU(I#AEObP0ft?~2I2PPZp~S{$GUZ&79L=k%Rp+Rx zB+-l{0C8EX!l8(5aCuP-{Y&GA&M&x$uJVY+_yvsd5CO16MpY;S<1PdP80nsz4nY1n zp_mBHUmR5k<%C3`+&9K6XC9AK?X7pFTC4El6!=2Jd2uiE)%2>+@xP|l@jnE0*99%e zUY<{Z+Y40FUU)j|5WkAfel)%_e!)9wtslY&)LoM|ELTik3iIYDXl32Vi=wBW)bxZ{ zGtgrv(j+n^L-6~;*!R64(!!x0M4yYj2y??RQRl}}88#_(P8amiVj8_Nhf^v&rPE}! z%`XDvgty3zy`GJAMpBNBjiG16G-=&8Vv52nE~09}m(uYe}C``=XR-35?rLQMgeNYA2^j1yN+c!iAf5zOBg9jKNC94T~$tkGsxskdkQ&&|@ ziYZt>`KC&|ho56n+Y8zuzI3;puW~3<PS{A49r~PM0uf7ucFfU6%DC$hoq$*sb08g0)DPZ5rK%rL znc7f2GG#xw1pd7#+O&0i<;YxwV`mHzzY9zMXQjJ(y;F`;A34YE&naDv;`MvR8zNJx zPNdNFM^ouqW+g%MKd3(;D&CZq^w+<7}5%+svCEMcc|< z@V2@+v41%gs3~#Z7D$!@IF-Fq;^JJ({+VdAOx(5VRGks#j(qr#V{&wthTi+OGiE2I@~pdufAdXit`tw6CxA1mU}Be^3~?eguz7QCeu8 zHZg3HXg)E_qk{*jMC@?vEBKj(z;w}UUsKBX!pjUtPj0?S&aVsXpPUN&bcy^IR4LaA zgRmb{yX{F*x4$43lBX;_u}TeuT>GBMT(LkN#I869r=@5dGD9wwAHsGFOT34$)@{kP zsr{EquW4W|O_;Bh6&cUzGbm9BSIea?Gta1$7Vv*+D)`Hj;k&?w7X|fCouNK?o|)AgBzu->`LGa&*0!UP?pA>rc_ zh^8Td9BaCeus&r-XuPaj^k^pCH)odxBmW*MsIy!>hG{_fTdFiZAbj8!J9;(G|EwJ9NTRJopRm?6#E~czl^Xr5$@C zyd!4KPN$Vtj9r9Dt=w)^MxG)mtykI@;Mv#7yW{+AyS(>&Q5iwe$U7TaN1mQm-13F< z>p_f3JcRU_Yv3W9c8F)qs-@mFrZeetO}^mZ{3_5LrH(y&5nPbRjq7DgggAyS9I-)i z;t}@fhn90f89wVD;mNUov`3sNAIH<_!5p=+Y0u!RZf(mO7#SWWCj99$Jpsp&yJ%>r zTW(^nqgTFwg6PP{LxDM=BEN(JcIZ1+--?oBasQqkxcJ$`6V3Dq0*?0=aW(pZ0re5- z!9I%;zFNVM4)X0kz?+MSM*v;;?6_BY|1=;>13bMs8SIw*XnZ2q#-m3N*K{lC9cOg2FP3^Dwy0b_QQ}je`~)FU-otSct15D zpjQSuIrOPP!d@Bg2Nicx+70iF0Q_ZANdkVED4@!h5PyXP&j<0B(9}Cb{51mX%!sd5 zM_LPc{hU-@Y>e(rJ|EST9py_p(EICD4;zXIIRO|0Vtr0Y}KaV?EM3x)*N!j_s2{cJp zt+M-R*hxx{V&`Vcw392Y(ag-k;|ci@to%6!bdr@>DOh>A+DeI$zo6>p!^pQ!fwqQ` z|BI?;XXILSq$Ak)2u$>|QxrYPMymBwQR{r!I6GHA&nU4{c0UapN$F8+e0R#m>iT{( z7dJ*rk6>aOgE`5>tQ1UKEB9F9;dQEfK0JKr6i{n;*hST|^Khj+&JirU0n=PPMa`2e zq+0J0wa%A?&rP678WUyr)3A_~mMpBVmG0z!BPRFyQ-xnc2CY^%*`-;5Z(h6B_5-ia zkXdZBdq-_I9{NYv`LwTH6XXRUYh~mH4gDMdp78YSy=?tcsFghc{@`in4Kw1@KxQIk znMu_;+j6tepskf>l=pwUVR&*Q_7&*L7jUL5He&Wy=~851D%T6HCli*B`BM6m@{y0Q zFI#oJH2o<|i@-wjBf>E$(KGnyFA0tEPMDSzcbetF<|5za7~a`V;&zD()-AgOi;NQVhZRw(1w*U|-fh$c5>33C`N(L?Q? z6`7jYIzwgjm{v&B>2LF;fQh_9huvjPa%+~iOdUCh>E%3M$1y6fijc}37NzqB>&5$M zZ-ut&bR2?qnLb2GGYW7jM1xA+;47Bv$2etj`yL&d;7A~j276ELiQK^}<(nF#^IXl; zUBh7ka3)oeR>)VqI4ZX?FIq|XR^?8m3H$p*?iJZ?p+i>tO8G{mGGC)HgaFC}M2^Vv zUUqbMKSn|}5I1m&F^l&u_6hQ3y<7LKh#WX-*oT~{?0j+A;y

aLdN?!JMP-XfJ(bG*KuLc7&Bk&M`f;ibO; zWdR|i4`Lr7m|pV{@9v~=;27-j`j$HY2eQC$nLL+U_dm^2&>?_A(@1A55w247F#DFRuYfedTM{33Jj(i=Q{QHB%v zFQ|w)#Da4~nmnKr#94<@pjL#aisU~edeMtM{Bo(3@`OY&S{vjSbSz1)13`R&3gvJ6 zAK>HmoA?NMlZt5?BO!6)I5e-}6&rCMlhae?voT**ttXmW#_6M=Ix$9;kdtO|Qg5|H z%E1j_?P1SzazY5v`zwXHbhFfAGwW4Ux?E}>@ivGkz&}uJE4?$rTL>Y2FQx#I@JoHq zaey>1#Wb?;Oj`aHaQIsCGTZ@K$#5*d8q(_|teX7+m ODA=WOf#%@2*ZC6)!|LAv delta 1795 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 delta 1914 zcma)7O>Em_8182$S$^8INf&1%PU18zP28kSK-DIVj&-mJR4AGdsH2q5N!;4TO+xGp zx~kGRAXZ@wt*@tP0w!@r+BD_LVMrX2wgV>))iwz(Ak;eu@qNw@4k@D-e?RZ<^Z0%2 zuRqv*-Fd}%1<%nHyP<1rn{S0u-{qi*W7XJyZ%2zH(h^*X;N-g(Dk}pZ0Mq9O7R5*>A_!9-}4;L z6D!YiX6Z=vfXwR`?8;%W-hh&-#g5Mc5EE%MS{{QCHjgAQ;JbiTRSCHrjSo z*7W81%H~RztJZY6S`pN?_wS=gujDa&#fGYiI-DAe9QP3KRaqA|OfWMao7-kuavCQO z(N;8UN=H^qC4~kCI)Tc&_yAk}7f=ZnM{-L7K1xyLJ-jrE5@S$Y+Wf?9RcT#ItVBz( zMJc|B9Xy6x+^9){CTsR?0)5m#Z8(KKBqhR)f0amPxF=VD@D?4k*8()0gRK$2i^dJT zgW$XP7~IV`Q&HtDt2^ZaUOG687yp~^#528+Z;}Qu5ox6e<-iR3lC*WIjr^9CyAL_J zwj)~4Op4f{bb3PYn_bgPTkf$`qx;+;Df@0r6- z&}cPVAh9e%vf|u@{l@y+pNYXYdk#X3Lcu}4-G1nGHmNa1(8e=e)O8QFM6q5zS zzJXpQc|vDMf~eA)2XiwIL5m-iOv|nd z^>tA=|3TN6{WWIT3TS+C*6`sz6?u5Hv3i~W7TpBztJ>!IW` zi;~M0C3p~L@gSyPYb*>S!*QVV6Het0P6D|+mn0kGNVTX~y(*8$(Onj`Qs)enyyi7r zWlp#G Kd-L4!W%M`qU_!b8 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 97a8008534fc0df5f8a13ec06940edee9d76913a..d5556909ccedc386d743f86b80335f8d40750aa4 100644 GIT binary patch delta 2061 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 Yf?tZsF}8fGtxw{=4{G(sC!QyN17OmUM*si- 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 879ce0d91f6e45f5744e17841b74eca88d426beb..5bb0e13747ca372edc198baca75fb0c379da7584 100644 GIT binary patch delta 1858 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 ae7Nd(mK)oInE~x;+LY|lyr5r@o&N&&f;gT4 literal 0 HcmV?d00001 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 a7e30168feb8892cf8526534189c25d724ac819f..668ca0ddf4191acbb90d56132fc377d68d4b8a40 100644 GIT binary patch delta 1494 zcmaJ>O-vI}5bn0!{*ls_Y7t7?EhbtjRv{8a67-;6j3izKZ2Gh9+m&`}w~Z2G)Tjq^ zFXXLPP1GwvtkHNg8Wl;@7>tPr)QBcZB62WXl*DJZ@+`6gh28z;`-co+bNN{*r|A@Mc9~grA zu3h-OVUIP#if9LU;3dn}MskQKk0ZpDFut*pFd3PLW!z8uX*J7ny1hv`DHq5iscwlr zflH27e9Ls7x`~gOe^dAHr-lv_x{G|$|EspwR#h5`reX>!sdbTaT5wlNHYciNf-0*KgDu2#vBWK&$0 zD{w+KI>Lzs8Ot3P)9uNN&7Nt)3wkYuSCM;>IV+%4f;W4L#bCOw$xD=IRFu#b zMRB=Q*D6)M9m;gN$eL(e`2f_!Q;q;$bei>O0e3kV`?tzH`U;l}JrA@#DyKO(%@EX< z=`xB2&r{Tf3_$sX#!2NELa*>CM<;cZ)a@o4#Sf4k)$%$B_@D(ySL<|9w#wxU8DYB^ z-0R%eZ>#>PjegO>%bI-GZ0TZsI_z+zBGnnxMGc{!t1)YihF7_3^KFG5QqV&&&imm{ zi~VONDX5pWC~NMKh;foSQ>(rmGM%odZ!wazL|Lb%KdF^a5sU>!z(+L$rl2TE;4W(W%qo9Bs~G%{rHZl1?QSNm}dZ! z%tD+mjOJLGe@;wGk`)tW8$WCkaJRdU(!(mYm9Dr~DE%L*G`8`x!SoKm{474%;s(3tl|bv?R@@lQm6hcQ;zF zQb7;VMXa+@5IlI(iy%D+9@K*(sF#9zs1(~m6$HKc0j1!ZO*YxIK@Yn-GyDGU&HKGK z^CSE{%*?ZQHWrv1@{(y=^TLB#W6<PF9h?8tcLP>Jhy8F)LDyq5!9{TTofOO=(ro6U_@7O555GR z33;)njeKTn$$3u;e4V7u@d!O7&mCLn9q0u14fbjO&9;=}u59}#n(;(*LX>svKZPLZ zYqIFPioR0!+$PL7un(`05sq)j2)rPug1`raWLgn|d~Ywg$$9xiaz~H7yDe) zD7(wZFN+hIbi8PlC&_8)Vo{}4skbMwK9QDyEIpCwlpzJn2P^z4-aooDQTEW3mnXal?g z^|QlnZRA#6XRylfhPTz2gkWf5(T-Fq&Y_CMDYDeUl|+N(A|t$j}L9=GL~C zhQN+O9y1{i!a@beblD17@|Oqr2ih}*5Jj}b5YV~>w7wlll-N?^GPVq`Jx19&O|~TC zY4dB2d3eYl9v6e*HpvYC?>b-@Pyh zXHd$)1f&rtF@^N2T!KrLnpM>4lsF1hLOi@8a71}BzBkcTC{GzZkFdj9ApP!6=6-=& zyV;WWXmo3%H)`i7K*KXRS?6Y`1%(CoQLA(pAa!sUvNrZj6KB@|!KyL(WLz;|i(Zkj z`s4h2kZRSLn54{3i@NlIPMvX4o+!-8%leE-#qBU7Mhj*5M^Qnd^hv_ya8WZVvSwY0u;yZJ2o3#vmDz5oCK 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 81c5ee8e5c91a667ea4f4ca460c1aa33a70a5a26..8b9552272aef23c4595a58e8a940a6589b85ba6e 100644 GIT binary patch delta 1396 zcmaJ>OK1~87|z6|+1;dx?bcRJ9~%qWru9`HXst@26sl4XK@U~RCfPbWCfSfp4+TX< z1cgsFKl{ymkN=;&yz}lr z=uGJ9HRVd^g1mCbC}p%kT|Hh>^Bc76aqZ}p+s*%24m^AsAtYFNLH329LonffI1!V^ z%0_0asFup6O=m0jgh@hPK~hSQc{m{53pD_)J^rJD83r(Ko5o zxKYZdQc9l!Gtu4}Nl_H2i>7PvselpfKO|c5tTwI}^s;Ug#&Wt@w!!W?YoD?^X^7U+ z@G+Z;R^t-Pm|oWMKA<(fgo#KHi{40f;@+CFR$7GJy#x!F>UNV=P;6M=(o6yYnqV?M zCepNt)}FUrDYypha?fT~&k^X4w(S=YS?3}}OUmR_)6~axt>o9$1$Rg@%*2J|J&IA} z9@U)9O?ATBm`eKKLTnq^gWRp~I@TrhyZk%gpxh4KaS`Ui{V_`{Y2#TVuj&Px4Z~o( zpUlG9_<@bv7i;NtwKQ3hkE?2+mm3&hn_LPme8Go+R?$E;VxNJ94!ra_VohPLQ=(&m zHn|m8%Ok`<4?QtD@12R+P8uC`A44TkD_$Sp1)MR5Sx^(qOrkr6DtJytHOXUfhPK5jU&Q}X{D zQ!MO5y9_MqTe7Hg06b|pyw|^3a=XeJ{MZ_f^|Eq{YCj(FiQDR%r`0IEg4Pe#A?k_vG|@e&=~F zXzK`V8*zpwoH6owt>C}ARw9{HiX|hXnWmOi(vwPIB43=$8W|;-^fLJ`#*GSf{=ziO zv`X9gM*%KIP1J)I@!$naP>*`h5Ro`jY^XOcJNstd|NZCv<~==me}J3g z9xk*laf>Jbc}vUEGhg{9_~M-nAzSG^I?r{Qem#$6b*5LEF?z4b()F~Kk%;N5{3b;; zjkN-7qOK;sAWa)$;fiDsGnUM0nPOJb;Q`<7CMHMEqpiXbi=(hx*&+7!Q+ii;pJv|V1r(n5uD1tx7 zZj+lNiaB%R|8)sC>KQ>{=HDAC`zryu6jQj_v3jNfq!&zT;#(VJ6-U@XA zTWt3r1@Ewn)1H1;5MeuZOp&N!p(+^gccZI}!0`SHDC)t@C<hW`qySYOJ>X@kCl z08g4Oj+Con-gHX2JQj6XCqODv(;jEJal(=)UK@+5057sD2zSeUDD!NoqD}KB84PA4 zqIpKaPAP!i@9LkECSTKmuJ8j%BqL|aI^h;c%(fqP9TFUNe zZh|aw5%SPAj~_a=Hy!mbb*u5WPRXSh>mEy;%C4rj+9JWpD@x6m4k;_*9huHa7m zimZBtsnf9-#TAPQrv$B-&xlber}YW&>g5G^E@M%UQesY%(vnyZl(e9MhoR|?jE(-F)ZwlR9*Ee22(Qj3GjUZl z`Kj&h-$N%``$8ol)XiMUfdXH?HB`YUFDkYuv9a zy-d|6v-Ox&juKWbb##}qYf4!vkK&(|WX?<`YyNg5Q|QMr(?mOrkcJV83Aqb?SjN6h zwUYb(4kvEW=|>wG3h?Oq?j`u3(zWUm>YTJJB{sm;Kzk)w1Z=_sn~=w99k2|OP?{EG z`{3C=sCQ}+ta-W}+&P51hD^1&lS(!VfA|`y>7j5~$QP8PsH$R0NK6X3Vm3dSQj$VA zT#?p6F_y*w&^#bi6LH*4FFW$2p@}Fi_aS)>+*K^54m&79G)E2x2Zc9qth<$jtWD-c zLtdh$hhCv&o6H9Dq^|J{vQsIRQjLF*eFv42&7U1T?;%)ThnK2*bM(4}5-QxaGCi14 OaTt)u>!pdd5%d@7q67B; delta 1516 zcmb7^T}TvB6vy}O&a6ATeykB??uS=P+Z|nlB#N+y9*Q6mgd&MdcH5D&p{6#yB95ljJ2moU>QjmQXE11(?%_`kb$W!*p z{e`^YM(lv(7v~_P+tLsTTFtVXo@?ZjrIA)~Z3RLw&rV5n^pZ?vIVa0BBB%N^IZ9(O zdKMJgqYTsjZmQvHR*Mg4bWj=4l%ZxX*AM~QF|=ZQ~qFBcjsH$(1~o`&|ihhz)!rXRQ%3w+LWI*EZMded0Lq9vQ;Q>=V#1E zwy&&-=&Zdgb{OxdI>8Zypc9MD3H>P6L!nl*JKZ1G_{C-4%613Wt5F23L^d@tYbxJE z?puJW)w`Q8WBUiqw&b4JLb*@i3Qhw@OF+GY6zU|vyv*n@HE{`ZT;wkc=BPm>nPFf3 zC+Ryh)Jysksy3Wa4D~(#^zb3N{>{!+X1uyPsc7+3+K986%2p!q0XH4qu|}Le=X7Z2 mimPE2?bK!b%j!}epS|cUi-T9?8xvWm#Tl$FPuEvnB!2+ai1PCQ 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 0000000000000000000000000000000000000000..8e7dfd5f75ac4ed179c761f55f6196fcb7b8a932 GIT binary patch literal 6964 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 delta 1579 zcmb7^T}TvB6o9?EJNxI)szj#iuCtc9J8Bjd6k${lJp@7#6xb%SI&$~A?ut9JB_tXY zD9wwUi6BVmr3azFq?camC5noADFQ=M!RoE23JRlhXB{2QBp>GI-g|z(bIU$Pq1Q4 zrgd?HHsBMB8yan-muZj!l$BP)Pa!}Qm=_|@=$;~vVAefR(Q;Z*wSly#QbkN=2_iA-+wksgs7!)%ynYD*2nEWh1PK0SQQo}vL zy@2=7ikI4$xG(~nvbGuEYVgG`6=QYj3=N-jV#E$8DXkr51!nwoNlP$-zZL?$Y3qer z;iotLuW~D13Nz~{^V_{6cf2MR4|{X49_TGrRmK5NlF zxMEw}khbln+E{a?HLP98x{b3gva#m9TN&2f`HOAnL^2!v*J^#}4{UVN`;GUTmQX+r zgzD#P$Fn>=%zWOe7VS}Sj)j-FIT zR^z;pArh#Im^RnaE0%16668v1$Q_GW@jW`gV%LfKh}37R1; z=jffoglCr*!UuEuaD}J%cLeshD2+nOb JKMgz1lRq1;3~B%X 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 aaa7da16a405b0b62b6bf700d967839a0282c301..8885b5a83a377d770cda84a9cc2ac691544d7905 100644 GIT binary patch delta 2577 zcmb7GU1%It6wb_M_BY8kf16D<$<8LmY<81PYSsKGNTsByVkzQ7)yC}X?qu%_yEDV? ztmzWUDz#!^6ylv$AH*73&5IxL@I?=eUUyG>$&rjoo&+<7qWNn zx#ynq-S2$o-kg2<&LZ;~bD=o8!MxQSUX)8&{)oWkOI$I<=kolijZ1y|m|L!X8=xq9 z`$uY+Y9)U7FZvtm3jWF!qYpm1z2iD+nUhSCF&$1aBVEQX9eI{@6w*xdo6M{D9d`l{NviktWc z{~MGa-||fby;MsJiiivuhR`m)5MW=XVUkFY*og$Yz^WCcz{er)Bnw{?eilA2Af6R+ zyrc@N0$*a~RaOOy0mtu8BvfPLYC+~;ldPzMEO7<05g+J`(=aTz9mXHDEd_!(epQeJ z;(&Mj1GS#|e5D|i)fGYIi#paPUf0j)al~k|O@K86Wsnp{KCM;dOAQgdc0_Q&nfCq> zr=ea-{hV%Mh=>OXbA!_+b4eH~85Bb9xF#cNb1A}#}% z$xfm;v}+ytC4hvv?r~}iKh+z>U$?hDIclM_JXn}kGU7up?1B37LHfa+om;NBn80s$ z^}#p;<2XJWOxdMaH-a^mVx5%YkfRjsP>MA(>oI56;5}-^Gu@-qMMCh5MKIZA5-h&x z*m)nRn}BoEZwW4>&BAmRU+WG)^Z(p^l)6e{dOstjrge zHgyLa)R9B5_CjFTj5R>EYy??v*qk%A!?cSS%(5`BvxQ6tkqd}#g`YO@=0W1357VJ( z>ZYMB>w36R4?xP*@7Se1w_xabA)S?r3Rh0$dAZ1|rE2N~xvSE9*M)U;sjR}m^~*yW zvgx#%PN)3Nk3pLlwGz}w&zra!HFE4fk`i72kAxs9=aGi(=(YXNWVS|&)~4`MPLT2| zr%U{*qt8T!28PKy;L|(>xWYI77TB+)qSE)`J zwCg+?gFNH#H?gc&P*Q9oxg(;FY}*J91~fN-%gI??o5$}`^EF-b8HOS!NV?b$Zkh)S zYE|KNjWL620kH6=m4c8JRQo9=~|ofbv2WyTq)11 zdcz?{>e?{idI(%oo5KLxWx{4_j+Q0%yHFocUem@KYFhQZhU|NQn@u`oo2N(27C}SD z(eQCd+zz~pkt5JKDSjW;`@HS`a8@JYAZMmWfTJ-;^pnF=qc)7n36t7 delta 2103 zcmb7FO>7%g5YAhB*Iql|{Kv`K&c>D!XKjbHNLBh1N)a_kND&kcG$lk%yv_R6@mluU zYO5Bff=VFmC7MNo3l}a(Jrv{vJ+w{51;GK)3m_qc1RS_>K+2_vdF!97v1`$b{ocI! z{pOq5gY>&E@Voqn2l5{OKAD6fH?{X!z&-@Oc<3g?UH^eZh`W-Mt8l=5O+JMOu354S zAB#6ZbAQ!%SmYBNsleNOG)O9z=2^G22@_8@tsB;LE3Qe}J8lq^{>qS;%CeI>~6m0kv zs12{cxBizs{>@50uNn{@oUV!aT-n&j8S0J&R=XXkCrZ_BCKa&8mIHd40e~EcYoaNX zjgns2cKYXS|7bVbMH8B4KxSWL4kUU8|0o{A)pECZ3?ZJrKUiJTrvpS*KS-7D>~rIKbwrJ%F^v3SMg>d(BR% z3t1+1B1_MAdhdhhUJK7-ZQpWFJRQ7sWOuC>nr=k%GG@TgJl+q@eMNaJ{Tch?$o{KG zeBD5r_y33GE=SLTFf>oTWHqifA*}a?kcl4;;jr@G0firjV&t0^c!9Rp6&t)}?n7{5 z#82vw9(jrU!gPm!W?>}SR^NtCaK`TrKj%N}c)b^YNs)YBtfW*tk$Tw=THf(_?-Yn{G%eofxe^-?xh$QWw5wOWfh5_i$=e!P>? zPbv9aqV1+NIi}y?+d;Mnns->0 zbe}0?RU?zjTN$_~og{7y7OIbj9ucxvAC3I(n!AK%bQ^!lrdY`AsLZ&G-*3tuJ}7Im N_$jB`^-%OJ@-O+Dd{Y1b 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 b50fc9ff2c0e06c3ad4940ec13935737703c204f..adec9006fdbf1f5f08c40c072d743bfee3474b09 100644 GIT binary patch delta 2277 zcma)8O>7%Q6wW$puh;g*O_P|Uj+1q&Dz-`71_dct5K;argea!8 z`QCfq`&oZ;YV&mXgYeb&)yv^ehsItqtulH+*VZh}D5A<5I)C}v=sx1U?|xJSA++_I za9n-sk@c{M7UUkob6M-`S;A3Lc!MGMTLS|QuVqsqnZszH|tt0rmE_dcwso^VrkjMGEG)cRj=#(lwFro ziy#{AidJg6?X2hyGF;~7KXl)7b2v<&eStNs8BZKcjL{ZRGd`+3g$~Dcl^{S4nphrqi zknHbxR(t}kaBI(yQyk03;E-SuaJn%DaB#$9<#s31JOoq}af;^Ixx~EqqK`Qn>p1ot zyPh~6eYS0ZrIS;GB+hqT-=kbbjPR@9C*BakY*=|&aM+v5Tlmqe1=Sso2U|6(sskckigq#Pf4uw>DS+q)M-pApT9}shw{mC; zIdZg%7p5co!m){gy!aXD@qCO1b2|ii*@OcK{xrL$j0+j|t1`t2&#1XCH8QjAY25+6G=ZOF`UK^@Hp;g6G@eolY=eXMK;ca9&XrtX@7iQG9xT=-Wj?ha>v3MBL!*q5RZp&-lM*z1$ckx`<1#tj^ z=TiM%_D0HufC3>O@p zUJ~KH-Xs$IkSKr193UR(kiG2n1AV-G=Y#WrlX?dt;qxFsMtd&HR4SW>0fUci3k5bQ zNinj(O{d9|Jf^9gL40S=T;RaBgLB~)-?V-PBQOqb^B delta 828 zcmah{OK1~87|vvqZQc(9Y0Ps|TboSNGzXC$dQhx1BJ?H{V_G(5b#}=Mc5_e=TTn2v zpyeNL9(wa6D!F*@;>DXHf{Nh9B3SS&o&;yIY=}kZW%mDf{_piOgR{>n?rry@*~G5< z9!kJBXJYqB)GA(l5D{_>zn~uoy@c079xcOnVL3|V)-|PhU0JdVm~+i1?WQ~~s%-8& zn;Tws-EkewurLOW3!9p2NM@a6*V%yA^eF8fk#$w4K*!qQLpCjMaWnXj`w3!+>A|^JlKV(; zAK61bmWtB;Ht?vYkO&9<67+&zx4^7A;eF%;;7|n#Pzzl^Yjz%Z7xF|_IZuYv*)CZi z4FQg%lc!s%Zq$rETXJpWh#mF%XqBCCrZjR}&~gkqPBe}Gi^1?JTtruF$=M0(8(evE zS8;R3%D^<>e#DP9cn*<#WFao`5FUpWdKI3=XGHRoq{sn0kLTcX^cej1XW-X#HUEIk zm{Z+`X58p0RC~xqf%Nd?@juA<1`X#@`@;Ml h18R@ip_|^0+*UYTXHQ4t7XzK-*(+lA!*Z^M{sN}G2EG6Q 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 0000000000000000000000000000000000000000..32faddd7819588b11c37a40ec1c66b463c0efe77 GIT binary patch literal 7021 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 delta 1280 zcmb7D%}*0S6z{Mtv;{0J(o*{2wgqX|wqP`YC*#F%K%crnp%(Hn^~{j!Bb@iH^-&HKIId%t<}?2idGBr?Qz?x)h!<4H~gQ zX^iL6XWXr{|RjFhB>I1dNP;_G_X0U4lyC+D1LDBOwB92KZsk##LuFl~_vk#r5 z6t)vPC`g;1=YY!6g931_IS9RWgN`9pbisX#Z^T!OXA30>on$K)uSEYt!y|v1R<7?I z*9W3m$M}U1JT-aYr^$gZ?c#h%s6?TvT|!ZJwNS!vb=fW4j)#U_H z>S)Vy@iIa#$zuz45Uo!15jNX~TIrmgO|sPk3Y)gUrW%K5|ANeyobV@c4wQYRpyIQD z?Ju}z?UQJgN?4D-ldNxuejHi`kHx2FibNV>cwxN50#}<|V0VnMt~!lIX~@O}`L@Wb zf}5K91TRgOY?yasjY@rjmt(248iOszaioP|yE8xL+(u|JKkEL%91Ihfz>!5#44K#r YPr(xTxdOd-C}9uz!~&PU;GIIh0W?vEegFUf 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 625b2edde1c5cd4778bd863c9aef3e917365e95b..6ee50e1a138ea61fea0e57308060b09d44a91c8a 100644 GIT binary patch delta 1900 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 GfcY1O7DcuI delta 1576 zcmah}O>7%g5cXSpZLgDc)7FS>(+_v zLJNu-gg8{%R!Fm4P^2pA0U<;yh!CfMdVotL)F^_q;(+J@say~T5E7MO-mce zzc=&E_vV{7Z|KR7q^8UHmQF8GFQa{A|R!x<+zxaZ9Us9IgDlwYr8?FIA* z$s_iry*Pom3B(;?;JQI$GZ#zLp}WeJ`T{HqA-Kt1BhxVIRK*u*FP)@))JgmQ|ENPx zJ_>TK38ErpAAIN<3cp5+7ipT#x7q0&Y`fOU6@(muYkY)XLEmNgh|iPvP1_^1T{mq} z_tRwEv{84CzhT<$g!@F=WPKAYbx=cn5!atC4&Aj zc<5Op_h3Dk^3xyCQD{1LpeTGv3J~!rQCTU~YSj^`w$wOVyP#H;l$6Ox@LT89sL!CD zqCt04?-(nFOnH4#QOasVRTSxoQPc27M~-yD@BWdv<|7UV?bY1)hu0C+IY~C&Gb}b{ zhKGsaK-c~RV4-u6NQ~j27Td>gG9^7&1qqIcr-&QwhBAV!%L%XePxDNn6F&A&ktrk? zjg7N-OE{*W5!|-a+*aV{uAECjz3}#dqwpy3Oz1Jmw;ltHb!h{8Y4Rq5D9{s_CPkL^ zu$}fS;!NRQGwT-?r9JXz;pN~-vdjX4T8-t|tF;2Ma5s>Jj!;LCnXGP|F}qq@0y&f> z@3J_d6$e*ClVp|^#BUdbN4{4HEDsEN9TxjId=*ZbCF0@N@QAQu@zMgMr98RK7<;r& zO)PEsu%H5J*xmR#L~lvmJ73Phozo!TwrZ?%wj z;*xrPsmdmfrKoLa_j!+b!j=E3Yy=A@=wi9H(5TcK^QCHS;hX_Ri{Du&6l`j9ZLy-R z6z6c%ODY{;FEftS94Z>Rr%7a}G=ZihekuISAreh%NsO_TG)okPJ7G!OX2YV{40G^P zG9Mp9sP3tiw8rJ7ilIHvwq7<&?LFk>r^I7sOfT(ZZ19$x^6Bn!rJ61VY(^1zurg;d%M{?v8hf_lEf2vkl=(Um@JV=IN~_%p6QzD?(ONG z^kMIcTp%K{QUMWe$O}9ILLA~I4?H09zypE@BqTsQp!@+m@DQO$Abwv}-!t1Y<5-bc zX?MG;zN-3;-}lw^^~;lA|H9pS#1EhMdb(k6)m2Ti9gTS*pV6FF&}FtCUJg%wK71iu z;T2cCQnmk`EW(A@JZkB zEtaX`%O7>n@56@Lan){}X&vT0qo}^`8qL6GAvHw1i6_|>F*JyLPlo)JP;xxgQ^B7f z>WjRhBm(LC`BWsw2A{ADn}r)eQ{~lUJWt5G-_SggZMtQto(HAidD2$9@@Ym3dg)73 zZEd=&O*8?Y_SFtmh5Ed{q|fR{_5J!XcN)6WWeqp5ZRR#EIqqho<#c


Gq-`v^w8 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 W0*x@!p;lFmf?X6BXbujV_5T4IN}nPC delta 1729 zcma)6&2Jk;6wj=^{-|R&E{vobZ6g!Tzt+GQnbal#z=hV-0!+e%V#DU&57 zRiX}l%ZJyRifpI`0Wtu!c$+z_9F3vR7;Ln?2Uf@lyElN!k{ETu!*)c1)2WchMRT}< z03|YTBFDqS*P_#%q32dT8r(W2nM0 zabJ<4cr1(VGvrubk|FYfEeY#@yi=3ALrvUNlRGbIGJ5u~uE+aMEd!wI>pxIQ|Cu!&&?xT)J2M2f?J1=+2O+hZ24Kg6REdX2$aL znw(fjByDA0yTp>1)E3y1T4wEX&W^YpdmFjno!CW`gm6@fonj6NEzU7_Wrh0EzSc_c zLwsudYh5+Wt7qz+72$Jx&gi5HaAu+kpC0$m_M2f(MfZk?a4Mcfud};^enlmAmvcy> z)&}c#2K^-`aqv?lPn(=~B{UH(M5k}Zyj+}vo%u{)v6t;hy1-H_3&)db^pTUtA$6 zsq>b6`&h;vn{um$O`@$+B-`I; z;)+^TE955BGV>={wbpvKsC2Pk72ejvG5PGosTn+(T;NovRMml0mu;#1L#dc>P@9Uu zqeu$=&d>1LCIy4IB&6Ao<)uSt=dAt6Oy4RtDgzs?NX8M%vx-ew)rky`rPIg_;h9u7 vU-%bs&$w>x#I9@h5e?LSrXR!dv$vgv8}$9u*ukcur0G*i&$|n6UPb=_1QQM{ 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 26fef6527512f7354562656c9eef5f43e882e5a0..1d10ee13d0b564d70e2812e5a17e3f1ceb145468 100644 GIT binary patch literal 15330 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 Iob)>X4IlLX-T(jq delta 1956 zcmb7^O>7%Q6vs1bZyeigvib0)jg!r+lVE2P+o4WL+e2v(ky^P*XaNaSMefGgWW8)` z%e$tSDv%ryMcPaBwuee^fFqR=ktHe>s=|#+4?Q9QLJeW<6440|+$VZf zSzl9D*OhpE0x5TRsQwdcOwN*X3*=nIcK_n}e+x4WVPjIa5Tovllx&)X%u3Nz3|keF z2*kq=!hcIxlCtuKVn`B>NP5OFFBxWGc^c>PW+s=Fb!ieuqcGDwdh%6eO)lyt&KP(x zmsMgus(n}1i_PNsY-zt3!{q@1W87B%j#8?+hMmA@r{fI6Zb0;@Udz8y)OE##p`Ib+ zg)=>Yi3`sd>Q0Sj%xY5IodWdk-6_dPu4d>Z!VeS^MOD>B-urEO3TwoMzke5 z2uWH#x}z!|If+~_ABqEibPS!MLBQRRr)!R(=hbDnAL@tXKtJcL!>R>b8FaC z6`Yp~q=lGD0XwY(J{#F&t20sflxw~1I7#(rl%)F8@H|?gUU2O?lhjf3GvY0t7CnX^ zgkh9~Uxg)c&Mf!1>Su42m4YdBGudqm|Ua;doLhEffm50%Zl${F33L7bgOZa^`ivOW6*F~?n%4_?}Hg?n5b9h#qf d49iOkjmizu<2AbRiJ^+5-IM*w$EPl#{{X);TC4y7 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 41c7bafeaf18b51c188114a27ac6c9ad4e5b0787..d37714ad794d06a0d33cef88d49db5c0b8c824f4 100644 GIT binary patch delta 677 zcmZ3dzFwQPfpzK<(TS`bli8SsG9;$4<%M>|qH>ttgo? zd2&6QC@TX{4a3H(l8lT@o8L43WMo`B`6aU=lcC9GZk8@)IBzmHOCKZCWOt4&j7ul~ z;gDzQ@tVAjQ<{ZKK|x`%H>X@Q7cziZ#GjIymYJ7Xl9`_upOaY(v~!APt3^{Mn4C#!srAa_dTnKw73vkLX$^tD=V#yHe0WsvbTcpP??gSte~g}2~{!tY9Q{; zkj|1~WMC+s{D4z>axW{pXqE(!3v|RJkRzZ@l>j+>G8ea-N|qr|wue1GDXXNiAazQX z5s1r?l3JXM;7`uxE}i^}+Xa{k3fW~gd-MEdWK7@e$@iF9%@L?P%MM5s_i*MV=B9!) Y6$7I=3nbB5oS_Je@hrQ|K|(Q%0CjZQ(f|Me delta 359 zcmZ3ly-uCAfpzL);fbsrlNH&NCZA_v<>c&P2}!LenKF5@Je$hKr@V}eESo_M`~_CMq+Vh@s!C^G#jVX0tH!nWVJww8MP*xbLlgl zo_wA|OX_5XbjHyPnGEI(S-%W9KcE$2JxU6X8YY8`)8IpqN}a68Bg;A!sN>M&LN0~L zFSym2r88E5*>*gFj9~f6JiKnw8UK3N^OLelDhpDlWc=^pNJ%YDhH@sC@s@J+u%)Dy zBxdGJNu2ze*M*SBukPNa}eEw zppc8c_z?<%c#wGV1Bf6Vq|lQdq#)?kYo$(_)CLdEVVF1X{onuhX7)Oh^U@>f#XaSj z^aS>Vlb3pZ*Xi|jckCFN7sjk|J7#iJzDe%~F~kvBcfA3cwPV^u)gr?28c+K&`$-Td-4I6rv57$VwR#LSRu|zJ-hH(D=AP z@0gAmn6A^mYx*g}xk>yW?lOr@<#4C|sp*>mwF`yOjnoKXAo5bDXo3%1y6JoY^@O5NF24~A`HcAi6wa0M=+G5}H zCiUs8h0I&*j&%)G+?Kwj{a^u;nU4jB4|y8Bhbwrqp6RA|=}R`x#5@VF@d?I3Dg)QH zsZ)HMsHLi8RpE%Ck|$)vX{L(b&3>hE;?5gQFNO*L-+ayH*ymL7GYP*l&b}$?54` jv2&FxtTn#*k?d$TO?5v1aw|1cp_^DqugXhX1U4xSlDXH3WfjEs}jIkqsyPQJq-Ke?4lP|7+dv$!O>q_iL>H99k| zL`MNg#KtP<>MBfL#i?XAC4)V7ibe)!4@YWlK}KS6W--u8&BiIUKta|XaV@O6wI*|N zX)>Ok{DDhL>STs=#?cI!4CV}3zYICQ(xeQr9(9FB4U@st(itlz&*N5@EW#tm2o|6Gh{sJj<6jSZeo|IRWkKqcjQ>3xDXGQDP|jo@-eRsE zwv^P8#LS#2iIey9Ix(^UjgZ+a$M=_!(R8znz++}Lentj{EN&oC+{2ldn41dHTnzM4 U7D%GAI71QWxh(F@svg~E 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 delta 1930 zcma)--*4Mg6vum$I?a!!N!$EdoTe_L(6~*iLQ82^+HA0*vQY+`5D)8u6MI}+X`RJR z)&d(FunCY~&@s|9iESVRh$luL&=3y@X@3AiAn}C6kP1xV#{&|AZg8)igk%XGbrVd38j}~l_9D~{KcLUy zC+7wD#PKQG3n$}oc-{FR^AKk7Jbdr`4GETQvwbjh5HD5mFwRjIPGBeQ!-rskxrCmx zBpz3oIYxYIfC7nbTvHz<7Oj%UtFX_-qT^6>-GR;!JsW*Rz=Nc%JIP;a$)uTSv`|h zo$EuM-N>OJc%wV*|C4xTYo1Nm<$Dpa#6Gf5*@oKMFsnr9!wBISeA-nF0YDf zWP4L5&12>eW}cWKI-cYCg1REgx~#5fJkJgBqFm7V6qimzwsR70__Gd~5%Z7|d1L4ZUI2RCG%GHnj5Le2KTF5={(Ma(TN zm$0D8T63>18x5Qb#LxknII28$Q{s$(Qzpox@s>~iFYgh``)-?eE1}#i#j*}%4lee@;k%w*^mGfXs@2dISk&AMOWEJt zage`hF5s=++mO)$tC4udhL!Zwx9~N?s>1uB1$2Rid6aXsBCAwkG#p0NR*WvVjWb&i^~TJ8NkV!L`0=u0W(lhniRPwUT5i zB3-&gNh{RWusb>7pR+<(+(}0UPAA8`hD(%mK`xpCe3aZtK8xfVwjS%hj?mfl$iP+S ps7?|oCGt-*JS)PoMAK>Ho>i#hWepFIE7$Uqq%(MaeQ0n$`U^~`OuqmC 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 98ded0ec49517e2b276a4996c53b871b4f9fe6d0..601d38f4083653dd37b6838817cfc9c0860f1ed8 100644 GIT binary patch literal 12849 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 CZ~XxP delta 1302 zcmbtTOK1~O6wRAt^65AIWLhU}I{DNl&!nGCDMbWZw3XIULAt3fCe75B=`@K=0u~Y4 zgK*s4Tv@P0+(;F>u$vZKi3)-ix)7`scTxo3Og>G6(1M$J^X@z6e$KsjJ@#gV zU1A@<@UOBDkPntS{0+o*QzH)5a$UNU(LhrT>-zV4gex{ygTEAB(#KeqfV57;T5*CuFOgxzol>!5~ z#++4JL5}KZR#Bu3ysG7q1HRR|I`&QsxYd(q{|qf__p~5k)l+aD)sLVam~4(DBD5^x zmP7Q&MhT}fLQuP}Y$K`vmb!P=G_VOYTvJFYiDILoh$T^A-{teE*8KcvD#BWpoRd9z4(;R*9b#QWJ`caZ^&>N6xk=_Z zg4=w=rlZ{Q8XR(N<{5^TmH`$U;~Z{HG*(VmC4e&k!Qg|e1!BJlI$=(A36e9WgsZBO~3CY^Uo&QAyqd5nHkU~jmG>DCt~$3g3Q zU98%M*5JV9hd5VFw`-&AJbYOHUI~6z-I^GtBXQxv@CfvA;m)MLd_ZSl&2^xI-0wgifg}=dbXWG&db&{F6_uTJ%=R1#?XM=1!{4l(| z(e*NXAPB+zx5AMi?9ks4H8?Rz+r+D~fgC)}A6ucJ7XD6qk6WNV9;~NN0e{Fv#RhB>VCj+6C48d?k&)yVoWy$| zxD_Yxr&1O?qNmZQDfI^9oLKQ+@z^@^)g|x`@E?nM&N4Wk&-ax#NcbH<-tZOOk%wCS=n=3z$Gy18v;UOa*KmM{4nmoNW7TKcF=ZeZPc5w=v*axC zqAKaMU(5Gr>h`g^CvA;R6^9i5T0=B9Ab@WXniC-BY-Hv&b7gV0h?eVQ=tDvvP-%`> zfNm5sg})wm646td8fLY^>6gG6YS(i)MM54i3EE{wM7uo3lVb=ELi8cHhZk50kLqb2 zEuoKcKQ-1TgP6RPV`P#(7A9{q;v0;NW-@&mKtu$DTecA+A&-&7z<^fmf|k=APER3ATb9kQTHpdwg`rQgs3I`xAz6wx+G17bd zP5+wS?a|;ZK0`P;gZpMmS$!UiRTU(ms)}8-a>#K|Udfgfvt-z1sH38){s49UALBO= zqCNmxC!4|j{3}(VO&91Bxuw4`qpB3|`$(3uwQOj2^u~a`4ID(YvbxtM{VCr{dF13y z_p}^cp}(S6;FqPw;z8kXf4cdk>Ea$h^<6H3$YuuG3w?IrhoSR>4F{{BO5feT-aaq< E0Wun=`Tzg` delta 452 zcmbQDzd)6>fpzLsp^dEj85vnNA7wnx$hc|pZ8k+li^>1kECe$WbJ9{%(o^+ejLG)w z>QXR{9-QF;RObp*w^@&64HID#RN)%o444UesiiroMN=~5ycs9gvu_cN1+o}QlQKAa zxY9CHb5i1y@>41&=Wxn!C}if9DCp`cOg_&csWK&lJ$8x)P!&gNZb3$3ac1$9$x}2N zr_=%kS$kNufNHfS^Kyzao}SFep(S-PLptMVhD-)?hOA$PoFCA9u^u^vM-7v~rcGYJ z#?6N!ojSRZOO|yiP}iZ!20Sv8KX9>3p2wxmES<3e$`@q>tC`Hp?@x>;Z7F|!&! nBLhPgH;^dq;mk|SO$BK#2KprnB+*%%p$PO=7WZZgu^2`Gn-ZBH 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 0000000000000000000000000000000000000000..cc25ec74b7b45d0c0a0984e415fa92ed4f21fb6f GIT binary patch literal 6001 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 H-qrgLU5oG` literal 0 HcmV?d00001 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 ddc2923eb3e769efe143079b96343adc45b7b63c..514d0b02092a4b5ebb6572c976f3aa173e5e7ef0 100644 GIT binary patch delta 1890 zcmb7F+lw1z6yGn&^=rkl3L3)@nP+RIYROV?6#*O<$sUxv-aOx8Bo zRSOC(4C;DP`~!TIV#$M`FY808Sf%faTNTka!GhR_y5RX{a+&Eu!9eD6zTf$sbAIQ1 z^Zj(};}^L1xa*e0Cimfm1E-tqviMT1c&S~i&sU3Oak)^eNO*6QyUPVyT&;?gOJa}O zR(jN-SeC>qogVa*y?zs8zlobaM+h;&L-H%h!{_F2$T@h^wja8dGoD2np{Hn+nrTeA z3HMA1(~;b#=I0%CQKngTfkkuD%O2*{%gfAk-yVidu1wxgX?)gM|7&!4jUJ@0kJ;!7 zoV9L}cT~vV)&O@E*RFuq7MmV`-$Fxstwb-Uul3e@Dat9P>QSw-b;#SM$YS6@JBRJ`Rm5toQR~#24Uk;>v;OgWVYMcA3bl?{$99hd%NioVU+#oYBTKR2=!oq) z+;@fH4_A(O;S>H))J-NPXhgE(4V4d4>jynee6+!d$xKeNGDM7SV_kMcnlz+Cah6w$ zvRtdy#I`;IGnNQ9ydjcg{KscCe&)qUFa~;#tI&B;t2)DXMztg`{VBNX;>p&EvZQ9fS!J&n9Mj24-{iaO)=?N9eR&SQ-j<+ zc2&NhGBkw9`$oA~{A&ieSPUi?ua^s9bQi4x_Yj{R;I@jgod6GfX^ss62ebPYNuP1Y z>F>z-qdw1?OG>o=;|+gP%6#{|@n5X~s6mjDk4f9={YZ zxTOp&f>r)WsPbvtyeMH#H?m<&@Hg_ELvymx3$l09{!wMF!3hXJ n3+OGK$BV2u8pXQEIAlCMB(|_2(*zzQ>N*k~r>FWG(eva#@wZCw delta 1430 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 DlQn0P delta 625 zcmZ2(v_^-ufpw~)*hJP2MzP5c*u*9-6@)N0o?~HTWZ8U~@jfHtqRGeD6&WoizhrOO z9L18&j4Z&&I605wj);MlR$6vyrIwb0hE`@?iI%2| zGQONVk40*-0y^9<>X$E8UbVm(X>8dF-QG)}3Vq5%@ikjY@qkoC)u^8?Cq_Hd-; z7GxwAXBJPHJVg_th_#0mY~7R$_Sh*v1DJt!Bbo3QW{1FUxE+d`3Xd8l1KlPghNKe7 zuE`U46ejQE<6vb5>bXBTkY9OnACDFz^W>d8o{TD!C-Uh|HsECuP-J9a$dJv5&5-kE z06Op9WPff+F1fUv{KOKV-xVe=8xd?Y;S%S=$1-drN z6l6Yf0EqQSfm{wYSrSPLszQ+KSvLXo8%_4(S7!ma5-6m^ES+%_?6Fh)f|Dol$W5Lh z;I5DZlq@)%nL-~{c3*>S2u%)DyBxdGJNt~Q3XvN4fc_F*Z z<|BfC85tLEJ|z5@S*;eREvphp6!&oECFZ7rG#3M-FbgEnS)8E=jLodd&8Nj<7y%ks B&kO(n 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 230f048acb6ca633cf31dc0e052d6f764705181b..1d4406d32e8651be714da707aabfa12a893fd77d 100644 GIT binary patch delta 1484 zcmaJ>&1(}u6wkD~ZIZf4Q*G47rW>ubjaU#Xh&3r75EaSEgNQ|;7ezdH5I-obqT<&<^iUArWOkd>ihJ0dH}AdQ`~BYAnVEs> zo8{B;wQ&53e15OGBVW|)Uy3)O~*%4npwcQbtF~PEFUV6^zy<@a)+dt5^e8STlj=s* z$XP)Zo&yA{oQDdI{-9SrJc83k&HzF=rUjxyz-UozE0r-!D`i+X3k>_tI47N6BHNvR zq5lK9mn*YyG0QFmJJ{La2K18^{K@DK5+mPB!z40zs$;0kYE$Nj z@yaOdWXociE*J1?6ptwF;yaUpt^np!UGk&e+}c4z8a7MAG!7pRXI_UR^GJ9#{^6v z7~g^3FK~Nbtb0L!(nXZ&hY8S>Ysjy`7-UbCl`W#>K^V_tc01C|qM;$_j;Phw zPH({qTzAMa(&$cS3A+*6gbuOk&_Ta@j4JG92($g+m^1|sw^gFPR>D3R54+KuBToDm!KJGBN(u-~og{Y!!PBc2Pw7twK% z@PL0@hU|E#i(QOF;`jNcPzOmu0-*YADWA)f*$=e(l!V6$MaPyinuW(4&Om9XA;DRU z@x)15$h&o(WbERydJd)SdM8cct|6;Y7)Z zmbcRm&R}lGSMZ^-=aHR>b>Os{^TX6C7qCMIxal9krtaBnV_S*cYugI<;PFVj(y?#` qA)^v)pK4sS4T9+wc$sz}r)4ouG2up|+;PDq3Ao(AUs0DHMt=aL=jFBl delta 851 zcmaiy&ui0Q7{~iA$<}ssO`ENZuIEsX5%n+-FCIF<=S}H0y?9CT{Q7=B&ztxDXyd4~ zEUnFj??^XU44DuM+R!m!gU1rbjfIkpw&kR8OLSMiiHwQ0ZT5??2lz#Zvtu>4xGuH= zbc?rf+_QClK-2P9j73dTliKubNlU4jj5-d6n%8rNN|ixx)1{VLv6t*5NLKv6BlyXC zl6}Y5ovAQluzJV;F2G9 zxy>6~U^~zsto&=egX!RLw#wNg&Q`(oV1iZfX%N{x%BFBh@g7{Ku`;C1yN;j9RUB+K zxNpG`c;E#73t!dyl|@sak|4)uRV!eWPbq9pBIS$ 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 a7f8f18ca1500878f7c69e8e44edda9b120f02e0..e60dabf997d3b9b50c00349cf8dd78b0fdfd0778 100644 GIT binary patch literal 13732 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 I4qA=>0U=t0p#T5? delta 1766 zcma)6O>7%Q6wa)@{)t2U7u%`Van@-fJKNZ8`Abw(N>CHEvgA?(s1!wEV~?}DS^w0# zMh*luJs_phUcwtrs0RcWB&t&RfDjk1AaQ{cC!|Q6I3podAZFHU$EK;u!QOfEe!uU% zd0*^&f0^IsKY3y9kUu~I>~k}RUj^+$>fx_G6m++@lrf7}>lNG~K;ZhBY&XIEh|qU% zYdnKifOoHi6o9qjP!Ql$ETcdW}58Qw9Pmgfy_*jHORW9RA*)&_~ zR@=lxNf!~M1AoLnl|)I}!Ml?NO>kPBy=t|+_ysdjr z*4sU0V@tzjb4hG8O|?;%b=wl|Oe}Z2cAj zE+V*}ue4)X5F$l3Likw>J*1`}{}9{s=~$DPg&B4=zG=+vfQX)1ua115ON!~>fN zA8RR5xOi>{Aj?;;n-vDeW*Ht%B3`H^jF-#5a8SRv-1uwBP|U&z#MZ4!ifwQr?f;LSxaQoC6cfk&vaLQk1foDd` z&t;2vcdgZGwAl8zS`|$Ni)`hHl?FD%dczcPhd%xS9HcXX;;|pxm^G=>WzdrKO*){B z`Zn8__mTzfEjyq84VFmIuCvP0uUY;Uu2vc~S*;U`Ywi*&Kre8osjFqxBzG+@70uly zCYB3#%EY!e<<>SfiFSjAvh9r~E~{0wOb+0$+1xT~+O=MqBK_E#gty=K&>mo#;Tcon za9&7H96$cz2$NTinOp`mf7&PX7@npxa~gh5B_I?{gD=0ZuI;e0JT+`8jS9ia0^LGc z`di!}mdAnGv+>gDu(4_Pn2WE1jdEWGBi|aQ_SlqFoyhQe{t|LSCYb837XC)uFI@MP nb4RZ1ed?%vN&gJX&z3rKH|Pr1nBuOXWau`g`tH@|-$DNZFS`tG 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 1007f668382558ff4ac97a0a36c7c69d68c37b30..f5c99538a20abec77d119a7a7784fdaebc9aa19b 100644 GIT binary patch literal 14437 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 D2dE~# 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 fb823fde044c1077d45fb03b27fa75602c517a86..1613cf75d212f7ca7190313e8d8350603260214b 100644 GIT binary patch delta 1696 zcmb7EU5Fc16wYKbo6KahX{ia8q??;+>u$=fR0?9y2T>}btX+^kb=}TRZuZV?=7*UH zZa_&z{3+a*a<7m6AoyHuUVIjO@KqFF#0T4oZAE>MQj|i^ottc?b?stcGIP)U?m6E% z=R5cE^4m}9=k*V^YZvwR4;(z{hca+BHr4 zjF$_|?C}%)c;UTKH}`k8^2Bq#8}wt0VuDfNJ6?>em~ZEg{^w4Ef1iIU?de@D%fBrA zc;N9?t9uR)S}oK@;KxJ=@#{wYHB*rMx*!HCcW~G7oY?Wbjh++5f{UfM#G7J~=wx<` zdFVdOh7)5q1!TwWi^6XhwMSKmMTn7$ad;2DFu`-(d`7#)pEX+5zetVz+215pGW(8D z48Xu|mRifdlSAYyvhY#?AU6PFFw^c?QRH+T9Hx29K#Kfxv#QgwmdSwIr8X_WmpmtZ zsI${-QfJ4>jwZ>o8YF>oq?&xxd826P^sw^U+IM-%h&H6rDmDyyXdH^Kl~C!|DTG{u zeWYFC>%}!q=a-5v=GK&_|~r1ABRoi2py@BKc#-`@(MChtq@< zy$qWRu-9?Ct&QyvcT*jrJy|KG+I$Zr7+Squx2vqOYstipu4rGns*@SQPa2gIi!7JK zV%cCISRoiJCzThN9Dx~m44$QR(I>}fB#+f-059lhy~t*PV#l`yYjdHshk_Z2!L=Mu z(DMLec`(F-01Kuor>qDTydCr$+lj@61n{~QdhlrkgSP8;`aLYjr;>-Nm|%11i$w*A zt#Av+;+|9wPvw!&^(0*-t%E?DD%xl`nI~!Ng0a6z7vMGN)W1eyPnoIKRoUJ^*#cAE zE;agzqyv+`GfX8geyBJ$=ElR6@RRejZ!%Akw5?F6a0M0{YVk;xuJVscN6IQ;6K4Kv z*Uf&G{&{WiHPV#ynMyU#jd}YlW&of8=0WiG{e-Sf03+@DvR|Ho!l^Yi#(uDfb+oRK!GumC+`8|CA delta 756 zcmaJu(YBaO*Oy<}62a%A7_mO-d{Xlv94jke8(YU^f~ znk~E)EB>!IiSJ|6!EuD(^Z3U2DMe}B(E5r(ON!pLl`^eVD6S{7MahL&-370F+g)-? zAUf55v{GzHQ{)@Y3K@KqlIOod7CtX7K-vk@l6%+P#j_ktfB?A}$j`89!ij609;lXX zx#;eZh&w8Fsnd?YBn2k?@Hs|@dmM!_-C9O2c_JC$!VO7D3?K(DA%8`{wbU#Tkc?a= z$8dXJj_bVo7P3ZxghH&T&YD6@)TXZkqJNmLwROv$Z?#R;uJaXLW9x62=FO(wRc+1U zFR&^fK3jtC{s?D831Af8QZkVIZOxeWWmTCqqsC^Ph;@H0}Bf5 M{}_GmMCLmA31Arn!~g&Q 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 4e220a8d4f37297f9d38551a0c2a51e125ff574e..5c18877ac49743cd3fd9f0ccce2bb0a14fb273dc 100644 GIT binary patch delta 1633 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 Lm*xfiuI&C7Qo1Ng literal 0 HcmV?d00001 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 6605d9fcd2265924c56e1be10493e7e36660dab7..e0ed324d3b884511e2c7cc8579f59a586f1a451f 100644 GIT binary patch delta 1469 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 WnfUt+=it7{Qg{=LuKg>vK>h+D1Oz7l 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 cc6421860068c062329da33ef3574663a96d9fd8..3fc12a1cd24ebdf7b2abb186016475385fbd37c9 100644 GIT binary patch delta 1198 zcmaJ>J8aWX6pdrM`7}-fg-Bq#*idK)v^1h(KrBdzuhfaLRpmGi&nAgW>`nH* z$j`HP2ZYmRL)A{{%B6-<8?7j+HaY*0-(oxR_~igaMZJ&IH;P)s%d{LVj(aV78`F(& zi=G3-Qv3x)G5Bio!wtDms9e^Xg@SZk((86og6AUAB%&k1!D!M&u_+fNoJ?7(=yl!J z&H8jzw`>=?2XDF8-8^DZUk9^e6J}bswOS9*5jV*dx6sOi7-MUV4TN9gV;IZ=i)U^80yXQrzwxtyGXW;#AE4Q z%(bwxV(_j6sL+P}*^+S>{(`iBEEPaXW>C%{3o#v;^fQvycq;-dOS8iD zAxX$W2yevNN(-B~t%ZeRV_z_nSBK>_T$JYFUr` zW1H406tR^qZ$3ZN*_7~=X>WZ205fUB4}hom-tgceR-LtE*<3aD9sneX^A^CsCHM2q zb0^uOuGPu*dV~ZgFJ{E z1E)r122!bBk9?K2TloJ4`Vz5&>sgL32OP^L$#>kg8P;<(uu#6wCrOF)@0BNmFMvuJeL`uIPYhov&Rwd~%psAL$YwXm=JLXDhfdG{){zU2M-!%I4xi zsN|9ko#`-|>c;qMD01Ti(_u4c%%}hx`O9FEaVdF|{{!hQNM0Xp8zbwalPk1Dab_-< X4YfL==a)LM7734jf?P@74c~^p+X~rU 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 36c3a0d7148aba7a1790abb4807599281fe89595..c888fae7b869c4c656d81003a952fefc5d2fb14b 100644 GIT binary patch delta 1281 zcmaJ>O=uHA6wW4DlTEuxq$N$8wB3l>nrcPyAf?{KAH;&-&DNM~CY>F-*^u3UK|}>b zi+d@v9>tSKDVnnf1r-m1rJxtJg<9|jtcRkP9({7>5VBGxmE#`KXMv3W&=I;6 zI4Y<}#|PO!FNKGqY%H(TV+p5rIp=Y;UVi;-!4OHEN54(8!M>xj)rq6?YbU74Htm72^RV&~G-f`QqRX~Ey zirG^?aX)?mZG{2y9Uy`kk!SL{u9Os1^=b(~n|5;vvpL^nA~DYAb85xLhzJoQW5hOL zt4$A~<3huA#q5FZ(m|YPPLfpY5O}hy#oQ&jI>{i*E=1FvH9SK4opN-oQxd;=x>;oq zx*Q4eDU*67?IG@ zY-7H-c&E2-ZfvI5_wBwN&f>LAbQ`OQNAi@rcfBCJ1PiqS8Gx6|^N+(G1@2CIQ>_iX z+N$E%E<%YbEDN5-TDCXKGUwy2^Gu8E0Gat=FrVZ+3H}o#Cg`}hCuTbxf!%qD(>TC* z=q+()2@YXM)>IY2iEI5fW-61BDpgHJx{iucp)QqcYNcM(WGRzz`)P}@8-()nphu?* zp;Q`Qz>}<<$B+RX^Gt_x0@6)A4e_M(3Kq?fRv<>bf-Lfyh2bL7WhbV6(F(Pq<8T!% sM0@?*M&n0(C9wBB;K(8jx+#?NDq?6It^mRoW_6r_+kh-K*1IRUzrZ%L4*&oF delta 724 zcmah`O=}ZT6wS+IlF1j%P)#6B!bC)qv58VqBDj-crBF~@xUk4HdFjoVq`^rSSrpoZ zs5l7aK38t)2O{Xk&Zav-aN$M-SK=2Kr1%@O;GMKH)|H!i_q==Vx#!HgHT8Z{UX|}p zr`P4%xDn2-KTEmC%MUVRA?G9e!PpkQl8UT`5v8Vr(Qfj_B0ugGIHMfRdZ6kTGsK%F zo^vI1SNgxgF@Ml6JcVl0sPk(LzIcOk0fkwH_ms~ECw0Afoey+fE9tFnUoUHwiiT_P zj1m(NnHS)o5gm{J+sxs~SdIO}i&7R(Bva?MVFHHB3y`*hT1ng#Yhp!|+&jpD1o=5A z%uzRLE4{p={FVl&eJ%lrIEazqpY& zBu&5@IyHPcrs7ttfc?~YtxZikvb13K2R$y#jti9rx9WQsKc#vxJKW%XqtzA$&Z=iw wh@^AQ6Lp8N$Iheip>$-0#>@eIEIZmYI@}$$=)Fw0amRupJ)Jplo@cJIKP>$0wEzGB 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 436d70a363eff6e49577ae75a9a2ee2feec895f8..94b97ac985a9e4579a7b20abe8dce7ae89ab05b9 100644 GIT binary patch delta 2016 zcma)7&u<$=6!xs^AM3<8&L(ymJL#;`pu{mvEd{BK3J6G{ZN#OZidK!PwY_F{vDcB; zX&Y52?V(Z&OQUEOIC80g3lhlu1qi7JPN)(RYTH)3mA&Ud_z+ zzW2@d-ppKo?VnSjtD(<~$&JtrDf3pNSymTx<%6bDKU7u9>iLZ?NB5WxeE)Nj5TX4$ z`InHd*&R_9igWC5@n-wlzT+YP%nc&2X6!HN<9xpQp}LyS(|M|!tr(@0)%(WeSUz7@ zE?3lxe5G1zD6Il*EVuNAsnj^?zr@k`n4?9O98I(n6}76HIxb(R=~l~O&h$0sBWFqr zX<@`n0cgkvV#)sDftg*&nc0^;$SD!NucbEYJ|a8n!5wDwA0tJUO}vzyC4qpJF=pVi zQqodd_`2gJhB@}lU}4UfM#Px5t&J~60XgX+MLSlmDVC*Ib+zfw5(FCe#1Dy{SGxdEalka zc=%XXB;_KFgYfZuw9h=VBA}#IReU#MtPs4Y#h7^edxJ?d2aW(amjO| z&vgS46z5{bI8tYfQI2QZgAq2EoFyUlM)EZI6*VNHF5+%S1N$W@t=So_8GDw#r>V4B zQ(C5KS%+fq;{`Jg0N%6NZP#As(=Nl_(crc(+zxT9*9f8N03ID*Cp=FPBw*NpQPQR%r_zhYO2pibd;< zrV2BPN$2QAwb|0kDwg5-icsuwKZW<5J&AYKN8F+Dw&y z@+mTURd`vR6WvvCcBj;#5lDT8-AYY}ohxHOU`0vBJEL<-P~7W?h;}Od3J&m$2nCKE z@mG2n&;cxbRtvK4;*`BB4Y6;B&yjT&O)Ux=-OOWv{1mAMKEXm~w1*gj=bK%S=7q1g zOGCGJtwA%%?R(NKBK)vJwU+au`4t)|H|llO^gk4KMwaPvvjI(EsTEpUrRGX~d9~6g zQ(5+Gd?v;<4P-+(XXl7b|kXL5S+*GkFR|mv$rCKPLGE zb)s0%Ai#D)+#d=J{-?1BEgavDJvjq!Cm$P+j09%X6R4>Pp8C(DG<@)<@&n|EqiT|b znMoYh9b&>*G^}Fl8uQqRg)EL`Ndc>SmFWtWwSs1V(P*kOrWnJ73hPdy%+};01?n6< z1k{}rHy40X>_3!AujUzo7@|qG7 zY6?bMczDwpx-kcoc`Rj8WA2Rk)JFRwMLS!c{2B$c z?^0L~nk#S+XMg$DsAxCdB8pduVhODfsR?IPZ6dJ;-gJfFYveTgNkKZcY4<4pVIi2h z+1mKA=Lr2Fd2_i~U!wq4yCzU82$3-qgpKGKH%Bly2i)U&+Wn5hjk0hm7>9NKikK!j z-BX@at8*2_PzUMJn^&|u^)p-&?)!9iUa883q9Mb3A%k3iy7*c!wu2msqt+&FI{Qb+ iJ9U_RG@UKU(+Yj9k>69LiDw$_CV#3rT#NMGLVp1;jbEk! 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 0000000000000000000000000000000000000000..76e45dd47fbba3d34ca512e6e853d0effa2cbe31 GIT binary patch literal 6899 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 K<^}zhZ2uQ#{2n#{ literal 0 HcmV?d00001 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 7555340c7b810d149e272f96ed2fd86080b176ad..84aa6a8ddf1b8a94adbe6730cae6a97e1d25ac2b 100644 GIT binary patch delta 1215 zcma)6OK1~O6wTy2lTTA^leXsLOVy@ETPb!?D#eW-q*xGKw#LciP2Y^ohfE5FBG`qf zFe2fNOHp^-NRe#Zs;C=_NWqn8r3&hzDu^ou@0-b_sYr1aZ{EFg@0oMXyE9LQmJWL^ zdv4wCt9!0>#ZQzf5>3O1x@(*A{;lOEfh-Z{WSpPHnn9A2PP)Rs={k_f$QN)e zlR@K1DOUXmAsPhx1rgib_=}73mru9fef)W-2?UXw|Gz#RY>J`xlK% z#vt+N>Ayf}XP{@Vg*XWP?kcWqspsu_y3;?w{iLF67cC2&=m&|BZ}T}4CEhEB1r7-k zCoYnhBFQQGDuj-2kOX-QdUz=Q0>y&vm*zxGQ)C5K+F7|kpQS3QoBI}~8m8}q2glVA z=Ws9-hG-#eDs4j|UelXKOK%Sd?B&g5RA)iTsrCcp5S2-?nHRrT2o7Np^(j zEWxOC+NdNW5wQ^*_P1Y_86WKarmW9)tRG=`WB&ig8YEv^%@Nit*nXQ)(AacbWpdK? z+4X@e8D!1p)Fj+&5Zh>a(|6jbF0>pCLHR}IXt3$1*}TP6hA2VF9%iVTg_my&LwN}Q4`kaM)9&1uFrdK<( zAlWx#=rNi7Wb*Y#Q92M#a85Qijq~B(9QUhnZpXT7;5GEBtFUOgP!tQ8A!zWGs_ema Pjilg%RaYCck!kJ^ztEHm delta 747 zcmah`&ubGw6wYLKo9$+sx}r%j*|>pXld)TgB2+{?lv0b*f1n24HWMf7rUo_@awx=u zps<(l#=GD}!HX`4;6)J8i-+P>t+aylqJMxbIFoi`z>1gQy_xUF``$c0^Tt*>%7d5b zu5u4$p%XW|Pe*%24qnTNXI~LQa=3|pAoL2>r2?9UFu;X_juSF41%lw~Fj8+vD;(nxhgm7ifNgzYYf~ zX*8+h*L?=8Z=m$NA)idg>8_A7e)Z+dlC{|ZF;hk#)P;8%23=Pbi98<1E z$QV3KDC0%C6VZbVJ`j)Le5!=b344=gaL)?+!40GXb1#n&-AN^7fe=~L=Nx`oG(3v> zd4F_R*DU2dPxuxJhsy9#%fqNKXL%eKByKIat#*?zw;@`!O8n*h9&Q`H77SHM%c*h_W7T?;^Dqe3;g@tc6ep%D*6pG C4EYZL 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 0000000000000000000000000000000000000000..13c47620e0b6302d6b4ac546afe16bae287cab18 GIT binary patch literal 9551 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 WZP?&_^6iIX146u7-eVsQt&uPJb+SVM 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 87c1f18b931c918dd4a5deae333ae465b2352019..bc30362740b92070c02dc2bde263221ef0de49f3 100644 GIT binary patch delta 802 zcmah{&ubGw7|m>c?QX3lvBqGsahGa;2u30vJV>DzFTsP*V@hatCz)NkyD_^#a|r4| zP}qxpqyIrcZ|ZtgJc%GhqTtPg1bXveJ&1zPnQUuP4|NV7^YOj+z4wNBG5=*Lc{};& zRtIBB(rc7RL1Go(^eIsIE*wk6I3o6ZkU>ZYhv*wZPhk+( zgvv$u5x*qa*dyn8fy;@7qx@1Hm8iCI*f~KkMj;mwO!-m@EsZQ5!_Y7B8HEloAp_nKt zDOe{_Eat&$u>k#KI&bA!%S=4vCibl6yN!`|cr0HzZB-Z`NV^To@3k?tF7Q?~u&0lE z_$gmMLe8wwpxAUfIyRu4$^o4!A%W#8h99Q>Ak+%CribzQ6~?!gS@8nNS+_CY;<0~V S@xgtMXzWW^%i-rt4ebI1x)AOF delta 508 zcmcbsxk-(+fpx07@I=;*$$wepCa-5<<>c&P2}!LenKF6uZ&rnkcR3juSvEgse9OqV zXL2IDBBRCRAIuhl8HqV*sVV8H`Y^_1OBQu07)KAz@BpfF1*+Se$MT7ZunBPEFip@) zOH59U&&|w>Pf1NLN===TA?M9FnV(~eXe^M$P@0s%*~68VnVORlpOl|cIr$f-OqgV5 zUWtOPu0lvgszOeFd1`Tq0z|XklnnORDH=d69I3el8HvT2#Zx9v(QKSj3lwDSVbua^ z)B>x?5bI$Ea;CISfk;YcoSr<9L(BDKhIGc!44Dk(3|YSnIX|HFVm;ytj~XUpvkajb zMN8^rMs8Wgsgr+kc{59AteE_dOJQ;ew;&@}e6kadn{>v%9`^jCtdhzCpnw1OaHOOb zCqp@t*YFf_^{}O+mLz88Oi7$9%j*D)s5o9pCPvfE75tBx+4vb57_zu0CkhMmf|#Af Q8HzyfWpQtA6pmp80Eu+5mH+?% 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 fe00cc3e1d3bdfea8b8e5315aea9c63d57c7525e..0620878591bbdea266d2e5332cf69e8aa21ea11c 100644 GIT binary patch delta 1503 zcmaJ>OK1~O6wON$lbQUQrdDf`c7~{}(|-vnqJkpguNzm@Hb_3xzIis8m`RW#qFo3I zv(YySu0#-AxKXkb-RQ!d6$QbKA}Xi_-6~l1zRB;^PqTQLd*|G9&pq$Gxv~BEF86u& z)h9id-4`Rh`}I;*-KV8zOX>XZOggJhU%t`vkF?|7VmCt0>L>IQp*!@KAUnsBR2H`j zdDXxpY@tN#3$lk{dzpZzs^uc?Rp6Ue!fgR33aU1XGkOW@dd|W-B+&=HcwAJJl2({)ZAe+kP9OSW2@88tRzDU@S6MCPEoyC9u+BolZF=fxi(dEdKw~r=9*T`1hXY5+ z0Q^-lxC^hjVAbG|qt60^NwS3@;&>TG@&a;G4Jnvnb}nrg+Ki@__$F;ICY=bZLx&ju z&I2`mR>er52UNDk;41MNCLDih%8kM}QNbPucbRtNw_5U2z&}WT1OzXWbsQSdw|>bx zS#L<+v?u(DdRwNQjs@3k*!ExF>33g3>L&_RG!=Lo=$fZwl)efMp>w=(X8`}Fac7uu z6%%p` zn0TvB|7n$v7TXhaG~{yiFzDU(6mrvG_$Yb_JW1t6T@;uKqmynYIzE#O4$eb zX*jl9G!F9z8?K^F`Gn zM_B01sYbRD)7Oy-O?B=?PVggEebBj#&_eZo*SogOQvfEDuo$LLNas~nV!*eEuossM PEW>AsOjaLnm`1+=qxaJg delta 1124 zcmah|&ui0g6z{i9yR==i{+KPUZA>h4ZCpF_H2j4Qgn_byR~<85vV9ZVW-h5PL71qZ zlFNAUB)ETIBBN(z2hR$-c@a@OiSwwJso!t1)Jz7uB;WUapZ9t1^WOVzpI@Jhu122? zm)4?>5f6XD{MyTmci8+mh!E5JhJGXT26o~inuJVZGK1yTf~qX46aE2an6VMxX!H-$ z1b3O>dJh;qdN{+WeqjILGc*?Dd3CO%YKypOEMvn^9L!%q@FMXwZ%Be9-BMR1NvKL% z$C7G7y)M9yR8dG!*Rs}G^nK%kv1DmRM{c<&c%K{_NH)8zmTJLfVnm9!G}D^XEVb=` zQ@iinbE-IMHxA|(xg8&(kD*Wqo(`Tt4Y-}FUmYhVF6uS%>o#%T4hvQ1k>l}s*SLfu zxIBaT83KsgtlD0}vZT1zm&B~T5x)HsK~<1*eQ z{fUqgM&Z+Ng{jc;-f;!~++qC~t@cIPXAcAOtb+$;ovL1ksi8W;LG8-H+Ua#ryMBpW z_-(X@sN%qoppX{PT}qqZ)8418xZ24CdH9e{B4xjHhDg6jrL$BzF$7rWj)`{68@6L3 z$?4*gI#0d-x-~*VB-qYOpa_Js*U&4PdWiKXHazSstYvfXFrDG5bX%^Iif7%8OXZ3e z_WH3;R8s2WB-c+C!d)~sG_V(MX*OX`=oZZuT#~#kc+)0%1_M!BRC$aHy{NyY<)aNE zwZcZcqC>bp6@2?n4(&;)^cP> z7p4#cT&&bH3cCn3dhMfMA}82zD5NvwW7_eK+*WC{Ngj+&9ZyUwlDDHXy*uR_=r5i2 BT}J=_ 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 39d152090541e2c9897eb62cc7893a19bf2f38c3..358f428bbe0f4297450506600f9d314229b1a6ae 100644 GIT binary patch delta 1178 zcmaJ>OK1~O6wS+jl1!ttowg*YGxgJSYAeMqN}*V!Dk2sHcQ%A%^3peBlPQ@53`M95 zL17fan=W+Y){PViE=4M+8$XMJE73|7sz|jUuB>`r{#9ufFZbR#@7!}gGh0Jnj=C0I zOYeJ1u50b#lX_0UQ)*&1m&gpK6AGRw-3k3CY`g!w9U*&p4Q(QHm%egH_K{J#-*uqM7=`=JJkIUFd+T_5+&6)KP{hl^cM>As3P~am_f@M(3<0{x%O^HT zggk}{ya4$O5YF@|a|y#x(<;uj>Tp0s)j9;TVmFwyApI3MJg)J`W@9XjvC7n}t%ZrW zE8QqJD(r%iy1kX4U@}LtYkfdDL~r=LE)b^eqsx3Br$uTB=p(<#Z?p*iNF{feE0965 z4g%gWkG|wR^r2ryF1q1Ajm|N?!56?a%}A;>+d$>phKwoJ{tHlLtTMP;0eQ^V`l}ZI zp^mSW@u}{clg<0|c3>dddbd8WuMITUK-0BA1Zhm)NPQSRpfe3R3rVdP{_2D&M$ z8g>%FWQOc-PGq6cJ|3tpvGxUO?W+*)=pf6c0A#-lx~Ij#>UXj(0VvA(prKDlm^kQf zek2X+;ZgKV2E#72>}W`m#QB`AV8g&EF})~GH-p;<{Vbb%*Bysm!(D9^4#VWKi40~82E2e8dvM(#618t#A}T^Wc(g$_&7`wyk`^}}_E3n2 zqJ=%Qyzwva>P7da7kls|9y|*EY@t#R!IK9qIFs77AmU|sZ{GKP@B4UPj(@Y1zVcu_ zx2)VpdFaQDkQ}a}uLwPZ*HQ^h!ZmeLr*^wVnlt3cb^%N3!M)o} zH7YK1+(nKHU3o?Nzrr8lUkcThJxy+Qi8DhRv$s7)i&qi6QQz)9jB)E0@i8{b*y;9g z#k4FF&T589!^&MY&&pH@4*df(2EKL%ZGb(DFMOtXx^|~Qb3xoJvjw)r<$tt5C2G`Y zvBsxEfl4}a)b<>Y0gDzWgWXU|=Hhfy$mu^KIiq5(_Ca_WOYPK!?;3{FDOHg;^aHGD zCak9{Btdrg3YvgS%F4c?dAEdOF>25{PaNY0-owlEp7hDKxfNEt6ac&S#RcKnR1%6AnKHpECQDcft%D9oaAC z=?g$f6Bb5vkdj5Xu3s|SoDd{t8*a~^Bh2lHR&5e*`gadcbx#X+HA&BQ+RO%P^c<3T v=t8(Sx{1)k@LqOJIxx>^uFoGY80y*`BFG*;qALcA9xd^Ex_-DcK81b(nzQH( 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 7152ba6a4ef70837dc3c458a8569b65cc864c0a3..9d9bed8745f9166f864c5b74c7c12a615fc99966 100644 GIT binary patch delta 1807 zcmah~U5Fc16wXaHo1e+5|k>4sO^J_h?QNpv&qfQ+)ZYN znF-yvlqh1caDCX`TVJ)H^r;UL1Q7~-@j>uS&?jH2g7{Mr6-6j|?o4JgDN7p&lY8#D z-}jyGoSV7z$ls@;Z$z*BQrwHalbw3nuxj`zP1&-PR;8iT@Y>${4;&BRoZ9rftxIAqRxnF*S#H5J>|8XC5O5+YEj%c$n4`+ETRoM4=J#$yyX z0v1>SYfum_hFe_-x-gamcfdoMmf=3XDpnxbKu$u+JtWbZyuu!S-RmC;{RdHSQTD zQiM?=oNB9!er(%`g@->rUf+ea;9U#r4!ecQ z?0PJgB(qQw9GVF;l%DZ#zku+ES{ktZ2yF5GFn`}4<`FTqZtf@PiPRWCg&?37)QB6* zWDl>CIpFZ6(0r*Ro0d_-wvFrZW=GcBEwclb%cYWk`R0$7_}&E!QThx?VN zKMC%>MMYP`liAayZMSpACUHAQnqnERW4q?B+4Zc!<|ZG5SI!5SLa#e{2cfII3%Tzi kbGwjCb_5ws=n7mrXub_^3L-Wx*=h-18f2$;ae58?4-vOQt^fc4 delta 1149 zcma)*O=#3W6vua(&3-hk-NiOt+wPKWb={5qpr|NV@e@3>7Li`W7R~OaOky@!nylD@ zv^|Ilb7^1n;#Kgnpk*&!gdRMKpcnBZt$6gKAXE^+$)?$+rH5WJd2il(^XB*dvw3d) z6uZDa`P99{K0*mtYf3D=h`T>4A43QQYoF0?gr38DCXG(lHkj9}XTS#Y5GIr|V_fpEvs2L(OPQ04_1(N-X#IjwwiH8`G&fL>rJ>42!(6_i zX|e^YT$dQt6w|t;SaQh*JGW@xx3icfLwldo({AJNl#PFQf$C8d2*7B|2pWV}2a_-q zi;eYD7w%SbbgASqPnv|R{lIoByKdZr8Jrx)sc{+*B@ww)#*(R+{tnps{b0DY6J7L5 z^XGS!PUnR61)uFr8@Lby0F@Ux^te zs}4ZC?Iglp(^t266!+%gxcxlT3)JD^B{6Z=9N}kMFPigedq5hsGcFK4*2`@pFE)4t zDUaI?9yj8>X%cd^U=t+T6?{xhIsGK@Kb#tM=ylbj&+=hdi4P$L*5cREOYivkh!fnc zR^6N_nnOpf9`fA)hjt2v9C!3~b6PVbYl@0jn8317FiK@Zmvze&jA_B59^IHJNt$q1 zE?CCQV0{+Zon%@?O%WTFM0Z>~;e6$Nl6dR2d~HiYt4_;)8S_ssy$8oMQE_L-1U{oM4AEtHAp`uiRw~GcCtO Iv(zN|50JiVEdT%j 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 dd15d1d5f6c259e070303a63aa77fd9f76b874c5..bb6d8665339622da7fdac922eaf33a3b4ff965e9 100644 GIT binary patch delta 1644 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 O+LY|lyrAEho&N$Bia1gL literal 0 HcmV?d00001 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 8d68f8930056dc73b8a5ebd29455a2e6e70587ef..4072e2563489fef9e3bd52391808659005029d32 100644 GIT binary patch delta 2232 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 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 15f7b10c8265909ac6796da2306213971e37a076..877d1af99babdce6bb17597ce0520176ac42c720 100644 GIT binary patch delta 2135 zcmb7_TWlLe6o$R)TYOFIINrpUux^_;by5eTri3;{N&yF2rG=`3ho-n|d(C=@FL-U# zAXStHBr2_1!Yr3JKuCQ+6)m!mkU;7ik4OaxkxD@-ZwMhk;-N2G&e@xHLsWq!@9xZ; z|C}@5oSFHo`29)uCHLE_*-iHwt8B5=sql~2xfeQIBVXex{95T{zSHF|td+Q0m+vTo z_nad5WY-z~LRTS*{BMOrS2#ZXE=o~!|0j4*H_6xj3|%-#e)BK-8oVUT>y<#N-*+WE|4WjjX!1_r=h3fnx!Q~TMlQ!5X6wzapJiF{L1=u`@6Y9S_AkfN zsXPue4f8p+)$Z0?O>SKk{vFKHpuZ8B3&V_ut9-5Atm8Pj9!L~ogLY}XE_F-wF5dtm z`(INoDl>vx&hE&Cd>CSe{VKp2BnUJcdM%o+7VC52RKoheJq;kHM=~7UF{E zbw%?AedPC%1BaH;AT5sJYx2Yp*dEnveX_r@&Ph_eR)rk%AePvh{wq7;R)xA_$0h%sdueNi0aFZgdmcf9Z3L^yQ;^8DGvYC8{%+M;D<0tUTr^AFwes0k=WOS*jeHK;`3yrgTdJ*S;}e218I(V{7tK)j ztfWx0lhko7*J*Mp>c&Db+93-pA5AVr=df;u!Vua+I~-(lgf&WM3xSQ=fnkb^*zY<7 zLCN#6^OT$1ik+qxHD9NK-s}SS85A3A7O?=fW|f^b_Wp8wW!?`z6`c66#YXVpNoFt3 zlPH7bFQ!b*j%6^)h<--RC1HolK<2BE8Kk4tQW2b;Ks5NV5**Y}d4MGbqLPlqr|+m$ zny|4+@^r)(F?SR?Kd##akPNhodYk+;;iVT0k&E1ng{cTInf7`A8wC6 z%dPkLCpw*0M?C?znCuZmq5l3G!^0LA*Z6$}Bhm_Tz{)B{)fBm?dWt zObw1lZ>7~}@J+n%%oG;SK0Cg+w3*k8`V~Y&18(jP}zrm8JtRR*@-xCSrRgE@47%Q6!z?T{TJ6iiDSp{-@0jtvq{Z2GR<|Wq01ZH{W~T zH}B1lt6!`Lo5F|E)OBGCWdZToQA_cjw-i5dpT-^20*lz&+qZ%Uxx04|;?TEnm(Qam z7@EVV42~KlxD6JCJ8(YzBSBs(raHMt5&9*!JVa2(xQicE3eJoD z#tn13m7vX4>~(MtdkzB002k)q*T_6=Wr0s=LHIc-p$C-D6kLc4o|HC03xrGY15lgH zb4MBeGrl7XIP<9J(6eV`y^WV!twxL14!=##9J42@ptwk|iR)#xUR~?7aK$l!ipPE> zT_mKdCT_|4nqjsY^(qa4_ft=EXKXIM(=1m?dyN*ByGr~Nqui*;YTY7SbHgGdbOU#q zx>{0A>l*P=)7)rci}1Kpvg~+MZdI{qX=f>t9d9&oNv)_QYm4}s8%Jx6a$Coia-aC9 zRnld{ut;#F(JJ8+s$6Z!HTyPS13w6_j3;s_XF4cJ%5{@`HUXaKA|6j`0H{Fv*QMRVKwHsW+-|3 M*iwJ@;q=?+FBugc5C8xG 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 94fe26f6b6906526301b14faee38b6b6c6786aa8..50abbc304d279be0e008647696005a09b33bc87c 100644 GIT binary patch delta 2148 zcmb7_O>7%Q6vsVIY{zz;klOLL({)PfV1k`iaWVY>1!$5|qC!C+L6LEsHM>jfHM?t+ zNCcGw5|vD==xv3NKs_M!fKa70LP7$m;>L-OW2E)~LR=84RB_;f;Jx*(y&FOWKJ0pC z{_kUc^XBc(^B2#0E_klIo!j)h_sqe0S*h_)iq+SYYNJrE*7)<4H+el*Wpee>pnaSqrtMj!K*@%9`I5y zH%xyD#$$=5wo=jUn}bE~|1%jB#?QFn^Wd-HZ}R#2>->5?&mH5$rWW8h4!#b>!+}6P zzk6PcX3_;(Xj<}VPHt(U+^nt|hU1}0mKo38=>Tjk^Z={DymvV)c6MC zc;FpntdX1kMLh;G2*xw1%R;#LNgtR9%fK1^1 z`(kXFLQK9&mR&2;4@N@c{{GMyE{vtKv47b@w<4mQ7`R6!Sev}UW23`El#GJjVQW9< zZ&_hrCOJ_$P9sOwWt?d*ODFKvLpbd`FOZ_?Ll!XUal6uID!VYHMYuciAp5|M5DfoL zgkT`dI}rvk>&x9_s`d~)Y}d(c)Wk;09yaL>*cdy&GL&ebU|}(ap@QB&x|=;j6znT> zVMlbC5u%e$L?qk`QEl(ag#)1p_;z$AGv(yuG2}f;Z|%>qAMKQG8yk00x@}OJby6C^ ze0B`6iS>zGsfnOr$SQ-7!=1Sr;S)U2XHH6h&63adPl+;?Qy0yz%>Q)Q;JFkbT55H@l=!%)rNwuuu1Zc0X?K8YXE$ zgO3tZgM)ZZ` Gm)YOnp;tcu delta 1737 zcmbtUOK%%h6!smDU$GP0jpO%YY&VVL)=3&c8#N#vYNARB39YKCEvl-CedC$w_#w|& za!{)#3#3N6n{Wn+4T~;WAk=yR?1BUf7D!0^fu=%iSi`1*a_{)jNpZVjGk4BC=Y02k z-#Pd0Z~nIG*mZn%BY)s{fU*#y{yT2!9oKbOQ`xZa@0nj}YJe3ypE;dq8{^ zEx}2CDJY5RHm+3h{NM*LKa&_3bHkrYG;W2)&A~5xxci8obN+uAdwLB4c>f6hToj7M z?K^mu_^Cjy$kCJ{3AW`mAWgR8Dasn{9T_xMvh3hw=_J;As3Uv zS>fp}Q2tS$6&@ynC3upYaN21NZzI@?<@jY*;MqVVv@lwyTAV&^zN2mat0I-EYAu=&nT(9H_ni}k;8O;p=>rPXS*%$oO-Gt1^MOE%(b;(A4{S8sP(c-wN@B&Ycv+Q@_| z>$oMVw>7=hs8?wSe4AKA*Vw7j-8)m#NwyIb+lw9sl)~v!`8VJvw z=ROVO+ymiR7r>Q{Kq{Dqqx7^xxkGWmn-Q|?hqxMBib+xVf|>3L*2)7L)-#~&j8nzbuzrP>Mt1|64m9T$NRMOiK_&A?*Q)N>yGEAnk2JJi!whVh=p=z@~~fB!u8QcI?<)HO&vU&++&F zF2D1g;~y8d&-&l@e_F|2^?!U;T5PIi@@%bmK`qv&tHm-|DO@CKn_OBclt{IylCB(l zyDNuv-)rPjy9-_Yeu<|q@ofDfFbvzf%lKGk6aMl_?Cdf4hno-Ai6+m`8?5-U5&AN1 z+?MdIcg=S)@bKnv&6i+UxIXk}^oLxo`VQ&ja^eZG)@XC0D8d(e5+htLci%KWp5k!6 zVHxMeW~*ImHj1l;Y)9QN!N#7kgND;dO0rEAPg<<+95)v7h3I@9tZB)AfZGbI|~(0Qsf zRee7g2*rcyPz=gwnu%ip@vuoHrW+&pIx)noQ9rQ2NBlIr3d{UNsMYrhM}__HRKy2` zVgFHAn)61Q$^t%YVtMzH!3LiRo69h%JOjV+3GbxxJU*wG&zy9?aOI{0luph~X9&|< zH^Ua4VQnIt)N8Cygj(7}ly~7~d_R-Hln(ghm`-2D;oB(3+_bBw?!R|dzwWGl-mae7 z?N)tx_r`>J^vr}!!I`(;5SSf>T&g2k=65HTJ4UT;E_W!GV{R@yCUo1dRa{*5Vy6st z2n3@N^S6@_)$Am62Gd;%8K*@|r-L`xFbh}q6SQB$>X+TIo zS-~I_?(d-`7G{NUYZLJ{A{yXD(~>g6(V{Ve|6)P*xGmyS^rNjBMv61=W?W*g+9anh zKbYi`uNPO>$aAXNRE=ZuZajOELNTs~BYMK&0`A2R3zpp3*swhIDErlJFb`sNH=HmJ zqmwDR5$Q`7HWM8C-2h@5&A)L$ykYa8C(!^Rb^N6Z;`IT<%eE-#hL}Lr7{!{Fy|5vO za3LA5;-MKVH|urMpg%~v4O5aNw$x^sXd0=ArHnwesjd|i@#BBti z!R%-XmIJ|*a*r-rN@4qX43;=+r1W|6kY8t8oi5x;ic-Mq@#w*3NojXlq^kt!FjOI0 z*&0JIbrC*Fox-2$7MJe*k@}YzTA)@DLf0L(GSMD8e#@JU;iMA9o2G{w#X6x5H2mW! T^us5bEaA@&zxTGKx0wF{saRU2 delta 1780 zcmbtU&2Jk;6wj``jyJYrw@K{a&vl~^ezu$=RA#Dr*ZAO?lYeMg#dTmQMl#%CGulV$>nx$ zpuJp9$>j8^oy#h7a|(PEn4Dm)XFY47WSn`by%V!at#0eJs%rAH@Uwp!(i1sY2*_K$ zou+9bd)w44CPVgpa*Jd%N%Js$GE^X$dA4;MRUB@dKZa8z!i6$k>Z2bxpN&%Sl1vV!(wH z5%DdK8@c)~+(cG6JOCzD#P3W17f0vdesENBQ5LVlx526TGo7Q$oRYChmmYh(aJ0sW z8z{4nHq|Y2EtG)3NuO}D zU!R-S*JAZ8KBqqIxt%fvKa8_Z@ni??6qo<=)VzzS@W$AT_|3qzw~tnVZ6B{fkX^Q; zk70T|Eq>2&!`*A|<6h!=&@N}(^RP8BBDDLGNK}%qm?S=jB=C4Fu3%5+DG)5=NK?xj zi;Pjim|#nC(*>#Ub-@J(;Y;FQJn_eo;m}haqg|r`w3m&SARbS73zRE=qidl!Y)0}? z-YJ>m?o}8AWpYmGmJt*Ob)fCC)oJ4{8YExvi9r$m2+hh8OCK}*B77G-ofu>reC3L2Hqm;cQEPD0tMU9&MjOKZI;xiRYI(cWK)a5I z*BK2oVAP~jp`n`FmffgT%QOT&i@hvdVcF!%ELF_7$e1Pfu}m>awTh}&2^Q;n1pDX) zYSm4>sN3WY9;T+fS4RZ9P^(CIysb9M$R@^B3dQ5CIx6bBdXe15a(!>5QY$r0M6@T^ zORb`*S{A|njas9K&gp8op;q`cUJ!>C7?n*5!^e%p<#Y@L=5e;37KW90*8k5)+8j{( z{D9g^kdF4%ew>!V3{l$@4~8x$6vB$YJ#!Nav3gI8#L%1mzwS;d|Wi>Y@QvqYT4#Z!tp&5(ELhpP2ExQmOIj zJHA=oh4a+Z~@Nx=d-TX= zkKs=%FNGxAYaQJP&A~4-i>DtYMNFQipV^ZR6hEwsovN#_lT(y(sVp{(zRbu>-)TtI zu7^4ERCMkv<#>oa1_KOt z&|M#9g%2FjKub!?$7pV79xhCA-o??o2>2=LOoOzJ3uAB2yaavU}ETe)}cK~A(aM6=F0&W zDtL8-3#GUR7dLU?a(C}ySo3c<2Yg`H&zY0RV%MKwZWviy*S0s>Lf17GM@CtA(b`X% zc$CE?w$1SAflMII+%__xm~jRh=l23?$lUjr`I$-*_)GE}_|s|PFDE^+tuTZ1wX zg2>+1AXBTobH$*i}luxFqPyE9}4%J{;H!@?l&UbkJ7+ z^tj`T!H?6aj0-Rro)7lJ2Q7|w z0hI7E`_bJ19>VQiHUgZ-Bx!<27m11CQTO=}UlfBrGvK2H_rOQ_KQ!QbpYRbCBfg0l zRE5!}6qU@{!s`*fgeR!IP^(l#Jbj1n6P1t0g?gh_5EVr%3i-BBZB^>+Vyz&=j!Plis S3vVh?9N(O{-sKNI%lr$hh;pO= delta 1817 zcmbtU&u<$=6wa)Ft>YwiVq#aZ*Ivg>Uzb|=idhTqbw>`H|8oo#A?dD+XXXmFugxt+PQHVodLBBhN=3v@AHz-S5 z2^Y(Fs`CSHxyMI3!HNB!b2M*}=D~Y`Saa8X()+(r5Q0wwKQDZj6|>pW2HwhM#Y|SI zn%N0)a#DPuh^wYjQm`)8N}?%au_P7niC&idNHSDH34yItJ0Qo!THRD?RY_~XK`4Bb z6Gg}mAA>9XeqUg{p=sEJ-N49Yzor=GnquM#0W$G6xlS^&$IAT&Rz&u#64i@(dOF+H z=V$dzvOgwd&ITASu< zF6tRNbXZ%{2b(J-4p4ZN!BE{9brJ4{a_9zQ^n6?BH5>d9p={bIRK4u1?vS_bl(!F- zZp*8L1bBKVfUb2(bW@3&w#3;(B$f{El8f1{bF}c`>F0Ud8Ro(D@HqOydDzW^Jz&$1 z_aMlQ*wMYP{6q?U>vUru_F~(OQ24ysEzuA%H@ZBG*hH2P@hlD1};daYWfDe!e{23=wm`Bzz~nEEoMn7m>6DMYbW zk(4U2xcU~c0(1gz)-|P|nB=zQqoKJ~$Ha2s%>uFWO-V0flc*~c$<8szNQwPHiVME=d*#L=Y$oae 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 c40c1bb8d7483f914a0774f30a1097cb666b1ce0..084495c4c6387bb946af76413db30cafe0709179 100644 GIT binary patch delta 1172 zcmaJ=O=uHA6z=4w+1(_qr8R9$+Rlo!H8m|QMM^ZC2 zf`z@*SQMc-tzX{urllX-8x_s#ddw__*v#{4V( z+q8Slf3rP0RVZrYte(15Oy!2NDUHmp-8u4)bkoL*HiSHt9rO{QyZl!`^^A^lRhp1< z#GoT$;Y=E65u4%aauIfwl5f@fAGmrDUKNnMLW-uY5yPgv7d-r-^s;>@9?xDT<#-%V zVm)sv7~@;Pt`5bffd!k&R%?c2^}KHCg*@MsBIA(i*iR)Fb;C^RCdt{{K7QT4W)D)o zHSh-~N5Rfx4&xxy`%F?ifR|i6_bR8*H-1KmN50Z1{ZdNP2yMP$JH(LS&%^P=C)z_F zK?4#%J^)0v6m2nO7hA|BStH$o>SSr|1ni6TMZ6z;duP)M7r%~$FT zbwUSSQZ*T|M4)=uQJ_rl>7XQm4%P?Ed`9k*Sx@Z_z7oXYcMVeC!a4Tu!u_wsjxPrj z$j|Qu&!d?t6%P3ZrbV&ST@wg=RabCQ7(EC5EQks5*-&gkY5Y0kdgJ129lUpAYiz%s z&xN8>jkWG%KG)H59qsT&tcFZ|9E=IwqwYAm!G=rMO0OP*?&tS<(%5AP@!ud{9=v=O;8qy`q>u4!33D zI|*ooT#n?;hFM!tRmDri0z3+XWN^BS^QGKUIaAQEs=D3(7vuN=cdx_U2H#YoF*--* zOLU0chYaXg7dmQVjaBvRh0o!qaA*YzX=av}h|QjfP|6TPtHpe_rO3BiP9qN(603~1 r{zT|UWu$G_+rJH1wgrn}$@x@{hzbK99}@?w236r5vaQO*;d%5MP27M| delta 691 zcmah`&ubGw7|nEdyPF^EW~C--cf&@cO-8rHf=~s$6j2fS4``50GI4gB)X?1uITY$a zFtC^MtrxEz1P=wf2;#+yf)~Myc&RPegNRTNk2dH`+bq3^mznRI@4ffE$NZX!Y-v?` z+%K$2k6>feSbLu5*Ne|GLSnp)ejxN3cI7gf1znldsnc$e=3O#9EMQukJT+{llHxkU zU1hkqDfWf`E7%D!DTWGDEvG^5+$T$c+aP{KOE(cbQ8tgC!??9TdKg<3>@EhlYT330 zf6}H!+33TPsQ9(U3itjFvu#3z@Xd9bq9WG zCOpg8NPthd8|Vyt%-Ulg=(tx#sT4J7jfGAz4_nYxPpXx+>j$@3=3ZZpib6uSf`IOs}HW+jUH0^YnemOJ(yP74vXO`cw z>O8#7lwdP|&1y4BDBr7lL9a_9uftoVN&LoP4|DobCLC>&z;WA=126R}NQ5oPi1Wt= p2tAF}u^nMzh0(koJNz)c=yV7t`|J}vKIr?j%>L8s#l;i1(OU;nI 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 1be1bc124b5ac114b86e43e0822bc0c5f3ad16e2..391d036ecfdec5c6b0f204c9e5a10b92065e7489 100644 GIT binary patch delta 3432 zcmb_fTWl0n81C$D_kJy>sEr=2<38#}YYs$|7P zV|Da_Gx}oEdWo0#VocwB&=Aw$<;6%eG5Vs3mqbnQLE{4i|9>uUX1b+_H0gHFKi~QO z|9t;tP8YZQ@?hsvoiBf%{h;$>j`J)oao=*>0$uQCJew!z8Sl1GSyZHP{GegqP#nMH zjE_U`ZSkP*N#9lAy-s*;Mkt7iE^RpIp{>x*-IIL2S}l$8)tV|-D?%yE^E`b#d_WHC zQs9U#g|tLboRKRsKAtYgimFq6_>_K9&q|$=-@7%r;7D5y)Uwk?u=~Xdg-ymSl>-tM~9RqYv4~KFZD?NXLK_Hu+hoX=uVPC z#Cqu`I9CXeF%ucm!iAEcDDsRf*4c34&O_4+kpb>@bhYC)(-jgRAGiaOE2m>ftiyj} zi=pjNgJks{v9yTUlUpGLnrvJ z zmC3TGN|Q$)6YHuBjdXOBw=80D7M7R?K9>u-VAIDXu`as6Zllqema%0Kt(3p4Gl2sx ze=bi)!?~Qn@ZUZ2?Sui>8HuHo3onFaHn}{OT|~P<3haxUqiL#WVu>wltf)x(t@xuCW@{__g3o#agQv_)`ha^Llx??qN-~_`)n9p ziv%z{b2jxtm|j@o6w^GTY!9H>QR+c3*iEa&ESZ_KkT?S%cj9(a+JFJFbq&CvPLu5( zdM4R7o+Z72yGA{?7<#rY>q!Q2FDvG5G+euwWE6v3B4hA}djN$i-8 zyIm#j?pq^#w~=k;6}oTNWVz)SCT@;ZiLIV?R7y|#Xbq^dWLln%LAz#>cFCGC*u`Vi z&Z+CDos+B9&I_3O|6MzAXWXtLY8^~NPMhGVO~avi<%V0sHk_51HX6Q(Bxc*im~>hC z1@V@YCU0GbfUmDA;QKd3zz7qyOFa;;)mA-AQzcIvm1j%FmVO(_&N7lQP)EsqX61&S zP4@h^p|!NCZs%@{ZcOOQb@QQa^tDtb$4)LR#s+wAJGsa-JfY{fA;--6&6rss>!#Q+ zI2~6-mp+ETh79Uu1k@Gy_UA%wokKUoJfF^gK fdo5HE;9U+cbp`%6A^2cUkunewJYRgc_b~S_-sD!8 delta 791 zcmah{&ubGw812_&^UJtRniy(p*4Y$Ivb2?el^ld#B2jD$6^ad|;3nC0GNj$eMnO=h z76oDT@{Q+S^;j45*n^1v1BzY?>Pf__UYy;sAq1qCneUr^lt7#X2cEF`u&b(*n9Nr6A+M`}mM^b8Hq>@roB1t4li zjIA!!t+vIH_opU?9bzM%1LBUDV9L;lr6M`pL4pe>Z$JnaQ}YnO75S!EU&&Rd3Q|d_ zxSTBgCNdDd7>Kq%?3soOV?@%t5VDEQ@!<@H0T~ZaU}pzaa-Irkc#yaV8?MvyzSEk( zd0|96qt{wwAd(t>N-n`|mk?#9YjcX#aBckZDVH`F7VC-w{F5xe?hrbhszA+sxg-hp zDvqT!sNjAohkJ4wAISW zdV0IVbu6iuAc)Bc#d)Ish0&kj>`osB@*f0|y%URNN4NDY!=+o|+c5XysYO-sgT%dK H=hxvMZM65U 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 abb99c4a1581dba714dad340b9ae804b55db4ba8..4c4ffa284ad955d06f1deaaf3d834b6fa812cd38 100644 GIT binary patch literal 13666 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 OQLu~R0`0*;v;IFo?Tv~6 delta 1797 zcma)-O>7%Q6vs1buRr2C*iOAB@y1!lE=e}o7$Tw?iHagoJ``l2s0dL)w06ebUDh9X z*CCep2ttTP?4^3sLl3=hMlHxkkO~q4Ap~kAxS|pXQ3(l&J5XlUA6gP4a`Eh&dG9}O ze)HaV-`IVM-{mj2^OyLGa5tQ}^ihlraN8gJWS>LG-~9!JIP@7bBUx00xW5?JRI`e= zF5tr81Ad6iPY;Zh;m4EI?+o?pzVE*i_OcVlPXLrmZ*Xs_FVka62IuCFwC- zRokX5>6TP#)bYwVi+vS$ELYXkE&IG)w>J(%!?oy%V5HnOO>DzY(P=r%JU4Y4*9efs zcgUM$LF1j3(FvwgLZBZtPu2ENA2)BtVbVN`)^OnF+Rrj|Bdp+mc@2@WSMkoQPW zxHqkdnopZ4X_*pr2scTiyhCmkT_1PYS)xWQFztS!q$)-vtUSeatHlH{uG! zG84Ry=I|1zu^e2F@o*z1xE@Ad6fu%J6u+fUdHvU+BZQG8zV(_QEi> z>BNAmlaLSHze`^eAfA|nQ;BhOoo$lpqZw|p>Y`zFauQt`0`XHIm%Tvpr;k=IbF2Tl zZ|9Mtg^3|ITgD@Hd>WoOK8b#0>7MN~xiy*zoBnSmNqJOZLnJwme)X2gP(0f!lWS4Y zTPC-LR05RBcS9;~3v+oV(CZH3AepqaCF6OP(TuUmhRiyvt7qJRo5DlL2ji);NQ9r0 zO6nAINE=febJsSgFKqy$1Ro@3lkd7|KU(i>NN>39N*i8+_;eNSzc)PJ2X)}~4~EDP zoywyJ*j`fq$`!Vkx0?iKhqVQhev4B$_&mN$yMgzm4H>dR4sHrTZi<8E(p;q2OLvV9 zkWA&_PCAQT^d98gh=W86>$r2K)oQfd1AHOo;2SBM&;qRVwJ~SHq%TQJH8`^uNeObz~4<|^w)lJ&?l$oI|Y*hv}6clUR32b3o z)lH(phstT>hwOb~_pb66;{M>ee;4+B^WV}y<7@h3Ibrtyz``y1A{%UB&(gB=ai;6t I;DhJUKU*a&i2wiq 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 c9339f3382e5296347cb216ef9dfe6fd03dd9566..976c725f1dd72e1a1eb7ce0a032af86ca059ae02 100644 GIT binary patch literal 15297 zcmeHOTZ|;vS>DUsx@UG~XE(dCG@ebbt&rKtOn00(2-Y^S#{o|yvQMO;t_`gk>Ua4TpoZ2I}r$>2=Tx(JmevY6e)SkQzWDS5{f_w!S|n2 zms8a>)!pkw0*RG&x9eQ~^IyLIKmWPCHvdQ8d+e0>!`DLJwA{n4ZWyj-urT3EhBt^u z%#D(-C)d7^+)cK4E70$RUK|Wq!cU>az_c7AU~Y0N;j7d3$>cIyj6HbDg)eTqN@>Uq~gn$>$u)Wy#IBuk*GtB1wGKGD4DWap34-2sZG0 z-qlC)*OC$Y#YbNs90Y7gZDPI{>HAcbm}};Sxne$Oo;5eQ-!r`t>jkmvvY>az3l4e% zZ{+KtrtgR9PcRzxbl>XjGqltrW+=5?Lux7Pj_XWOK{p5?_LUoF;=Xx`&s(m+4i$|{ zW0>!QnC4aJ_F?>eKmL9If3K0q&{|*#LARhR%iV{;_~XJd$|zgcI$MPd^{jP9EHXXg zTEZWh)Kpqtp`VxwH={(4%@3Npg(h#BS70xQH3zH?#-!Rp%_`Msp#?KUaZtkAQ;mAt z5+;4(rsuMq&TZX^S(tttup{~Nnt&sXvLZ$yuOVY+o?_1PbEPpPd@ol^Q; zF1=)xExrsXc74E@#^C2@NP$Q3%}Q2l9gdvqp%3?gf1*psg4--1?R^@fJd@(^?VjgH zz+wnsMV{vj^nuBG&mF-^Zto-AM?Tbjqi%FuBe4Ff3Yj+{La z6P6Wor$)P*S1!oPOp@%gkmYYrmc=}-HPQDl`d9M-PB6ybH;{dEj4YXg$bKs)+o=B^ zH4uNNM0|qAG3LE!yp@OSF@4WbRiId>;G&ZTd!*(JDslW<lf_A;)8jhj9>}#2MH1eo=vk5Z>k~okx#Oy;{}}%|BVpMEZJ{r0RcY7iyxe{+OB3=?q!tzWet9N+e~wyj*uN#zZhwaUyK>`{Dns8hjub}u z&$qXUw{UyAbG<_XzJ$E()=md`BGz!a)9&EUXHC`-tq4^SK60FOMg7O+gxayf4o%A4 zc6)nU&T0kOr`)4Dva;D2-SA|>6ut|xmK#;cJ|*NJl7#z?Wx%m4SSSEd=>sjkh8)0h zEt2tMv%aU&NJADpQkD1YB;_?JZcJ(EOog>Bvd7Xmt$duk%>vBix%(CVrfN9HSfXwJ06kPtH|r_&j_;#W)jOz6B{Yk7oP(MELD01S1pnn)l&CL9 z(F{(tbp>jER$-@EuGAxlhukCVcNA9Yyr4Uq2{XoL?N-S2?=#6%_JkFv_!sCur6)*h zG~2N331q`MPk3y5yK(lKICE{4LBEvItAl*G5`eF)b?l8ZWt29 zpNFb03Yv9rFVF57Y9!n%bpkZ67GZzIccak-QkzKqS*U9SYjFICuc5uK&Idb#IE=i}wJi0fTv;aFO}w~XG%Y`Q7M?E_vN?X>1=uk5 zJ=Y)!B2O$S0`>|v+_5h$R~nKP(oe^dx*5iufoB9ZzcyX zFH;^wy!na^H)t71ZI$E=A%WDRGo3}<6F z@ls9&7Sq6)L1%0U{O1*V%`@kpQtJ)D1Z6$^t`d-&TV{~0*V=0iSF3xD&j zwD2Zr;eSog`RQwK$w}a+uYIH2fSl$Orkq(_g3y0OchDMVBv4F+iGG zy*5SDG_#`oWVX!e0(hAvvs!pwx9Cnpda9Ux7Gd{az=FCUX!fx*ulhN4%CkL)P|B=+(PQF(}cOiBm@hm-OF-peV&;ijcpnb(#w8ktgxf8!eze)bh@FepA|!dUy&kGB&4bTS%}mlLTd#x(W#%5E3-QAziFUVP|nE zQqkEd21s4%zovI7g63>4b*1D|%~CuEd!l)E;$Uv(mt1g_is?@1sT15EUZ+bn*Y_x2 zFRsh%?R09(!*T`g8)Y}E_JkjGyX~|eGjO$|s1B?3w^KBQE*)Osr9~L*yE&5iZvcCB3S}7ag1w1iGVivHRpY z$_(UFgH+d07`Uq%5t^c`zpMai+KzoQ2(eztI9C_Utr=dVjB zs6W=FVIn=)XA!O*mVJN@S?$l0lf~*w5=0bJU z5-|URy5ApQ{@VoAHpGJYx%&jn^HpJMkhu*j{p$o?2?k|kQm=m&y=stY{{%Hz$d)^O z(*kl6qBps-0!TUhEPy1Y>i~Hr1z2q=RgcLG!*yM1VEGut8i!?83RqsMAyh)H?W|pDmfIEl_Uj8RZn5FBqQ8guek^`68}0 zicHx4CVh&_<;wS>>&Z77$9yIINl!42kQlGIUV1YyOpAa*^Vfuf((96RsaRN&Zw~1> zP5Mw|mvXdlH(&FGxa^!>&nY(?zZ9uw??Gt5Hf}7Ql~KXm!J!vkmXxzs^;S*(z{cF6 zzNh)>AjWx*i!0Ug3DHfyl9k8@IDCor?{F4`*GKC>gnUjk#Qi4Ri8KVZ^jU`i=;~ z2TWWrci3&_Bsb3RwyEPXdipuf*V&;3T}61k5*DTN2J6TBptnkECg=(+0;Z2p(ux9@ znS@H-;H#GF$B~9@agR>dur7^;^E?#Zj5c zyr7cs%}Py$g#AMT_^PB^@R0R>uv}5;%+HeyArxgoMGj=bn-@oS_hY;|fyNDdpTVOu zelcJ;LNqjk(fS<2&}*fed;zX9#8qNw#4JXZKe$^2g2c5)@AyILGZ9g+*-t=AW$=4@@2fv zgTdt|Ai7Ro1?0H<0HR}!u-bn1{0I1|&-~)dgoIh4lD-b!$vOA~W)%71^3w*SfsKtDOMDZU9BH|G(jJ01^wH#Fr(=FTJi=-Cp=Mh9rh~u0 z@0>$dBl(JW!=a^*INrcZgW^qx=6C}=Rqf`$#BJOG3@`l+S{5oq>x0-w7^XLl^2|xb zfn%V@8(8iT7{~&{1qu~m+^@8=Mg(5R)1^1klf#1qm>Kn%0T(_33ns&6#xcJ%K&u0d zVd8K!JS@WzIc>7P!PnCVl>nk4nV6qbttZHx!xoT$Iw3}ukdtQZB;RU@YzH@hwMTu=$pImnzNb={ zw{Ddvwz5%0rwb+eh_^vR0sc~zR$6n4w-G`HUQ7WZ;mZThaiD4F6w}D!(`otFp@-L# z=iv^x$^pm1&FYZe%#jCQ$RkOqcsVZ?He9ycffE~qnSJWjHYnJoae?OGxZnM6bno)0 delta 1977 zcmbW2O>7%Q6vs2W-q?wi#EG#JV#gla1Unn-q$H3wK-)+}Dp*R?2qdHunYA;{dfC|4 z?z$zaBGLm=kya|{+a4+*A&vzFR9PY|&_iz^R4Ojqh^h+lp&rr*Bn~~mj5jt;Fi^O7 zW@qOAK7RA&`R1A31z}ydlpom;&cprA@W!Tx4RGJ#y!t(lkfZt&>f_K2c)&-{VF)=6 z_sWu*Cris@tUiH^BR*LFNHr!W=($;Xu4*~HbN;)9@rJN5sar_pr5w>Sl3{3tY{ekD zC5O@oB3<|5yCN3FqO?MEQN#&RE$GH6-Ov`Fz@@TLC>14D9Kp#XjCY5RJWujcMKy3i z$8)73Np&*qX-Ta#i)V_f2gMjR`a&4vmipJps_hzX`n`hfY`c5d>CRSEl^D?7Gx$sg z3oBDF$chEl$T@4xO2~qF@*x8sg7n+QU%3hX(GA|F!$)P!Vpu=>Lm9i}91-&_XUrW}o<%y$9%#9xoxOs8} z-(3fK5iFkocNW3Vc)FdZk(@zryFUs$hlJ+>idG9tIZcN~rY}A8HKnGlzk>P?a#u~B zP}bp#z98^kANq_Xv#`f(t2HyW+{{d|nxo$%b)c}|OK%+AV#fRTNHvU4)=06cOTovz zZf?s)B~Vn=2C8UlRL4cJbwx%8_gBxczdIQGlfez&ApGj{qF-2;NB0=)v}VAT|A_&6 z9!P|1{x}lgj=xbK4RaB@KDN7qT}|bZT(M4hfFjtS&Nct7feuVP;AmCVJ!_#kZ= z_=P++WP;0*M%#-)G+b*lurjnJ*t6ZCcRl;BdQ1fA(IidtN^l0vGbecOa?{LD^Rx1s ze)b;dEr)_A4IhQ(QH}`$5<3}CS_sydZ@3Zl_6VhW6r8ahWy_crlg&9;Z4!vGc2Pa61|9>Ci}isk9;$ zik8WhSHUCtMvc`nu}q%4k+V#;Z%EoQF)Za%sx;knK`)bBAz#Q@=i!~i=oGv7tG3lm zI@Fq)P=ni4NNi{S1;BRfaTtHB6KytQ`JjR2at({Cj)fLn3@!}!!*4hQk%?hJxkXJv zdICq-#B`RjN-c8bclPO8B6_a=4d#T=X|^vBLn^42ba8S9IpCXQsQTLE1H?VWR~MhY m%g1~8wl>90e{{2hRTxw2^v^ep;KgfpzKu(TS`bli8SsG9;$4<%M>|qH>ttgo? zd2&6QC@TX{4a3H(l8lT@o8L43WMo`B`6aU=lcC9GZk8@)IBzmHOCKZCWOt4&j7ul~ z;gA>Y3CzhXE{O&cnRz9#v0MrY3X|3Xf{r% zouZM!n!yHjmI#`f_{@^jTqK1(zUWp?cHlHHN4Aa&Y@Y_mk0q%^D4O}vG*4c@smyqJ z@<$e_$@e$~WG`mOW-QH+^A^pJ&Ny3|1T=vQ;hf0=oHC3CK-)}NGQ@g73`6eLDG>Kd zXFLNN62~RP4KacfXvE{mh3pC(4A=(WtYg30CItjm;`bJ)Tt7sNnp26=HYfz$ua~g=wZ)K z$||WWNS%^p1mbd}q!uS5_>*(FODDhKb^#_PLmo*c#`MkJe2(UIRF3v delta 394 zcmX@Dy+NI|fpzLq;fbsrlNH&NCZA_v<>c&P2}!LenKF5@Je$hKr@V}eESo=;|s=KFDRNtpPNHBQ>`mBe6KM7|Dbl zK`k^bT9Ylglo?M?KF^^gbuvRb<7kFV26Kk2Uxu6?&?RC$rV5W5CW8z$oUF~w#fKuD zI=O&bmT~Ij2i)Gw(itlzJ8&yZj^Yty1dC7B;B}ME_}9appOjTnS&%v<<9`oFN@{U3 zlrwn}Zz)#~TS{t4VrI^i#L4V@E{rTdBV;yb@cm_EG~Jvg@R(VRpOJwfiyKH3_i*MV c=B9!)7Xw2h3nbB5oS_H|m@Mwi`64ll0BOXA%>V!Z 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 dd9b80966c1cef72710b5e8174e04f7d89efe583..6e689b0a8276e1c07ebfe889ed4ee33acaf05335 100644 GIT binary patch delta 727 zcmaKq!D|yi6vi`Ilii&VVzDW)NzANDX{9I;K|EMcB$r-1lY zYx(D?XK<7}bG^~zPNS*wzGJl9LCEBdkg36`I(^`W5C){i-8Q{rwz_W1zT9cGsh1Fm z#GAc5Ldoa{Iz;F-e3P_f^;$HPTJ>b$JT*0TyyR6K1*tzvQE3(ghU1aeT z4t^@7@%CBK zT11J22Lu#9p2&EMXM?dfy{NwAM|KwU5%w;P_I4Ja5m$? z%gk-@QYyF<{mT4Cs2d$-_oby2~SDH-gsQ#3L-dpJ^a3o;UmGmC+?Xf{r%1q!nEaBIOeXn|E`i1l#7g{HJlfhd&D zI6e6QmzLzo4C#!c88R8n8M1yEa(<;rK;`NRj~XU}teR}Y&drA+n>x9WTb6O^P0CO_d8WCV*(-o)c3o$;@SJwGX{q_QA&O2+>lj+E5mWGH8{3~w=44_iuV zNn&Qsl*GyXyiSZPKqF)}zvKPO$Y{Fx4gX_iHGW10hAeI%QQX6smzbLh(p(JmToy>8 Rvp7Q$=+7+f&0mFM7y*ifgSG$w 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 8fc51c64576118ab170007c6eb65d185abcec17d..e276ce8c26abcd5a9a3fe1eceac4bd717996af9f 100644 GIT binary patch literal 14131 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 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 991fae0b4581d8bde7b9349b8fbe7419654ed856..15703945c0f631d9632c7fd46515e59dafc7d28e 100644 GIT binary patch literal 12537 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 E08nl0AOHXW delta 480 zcmYjMIZFdU7zTF5oatIbu!>)pHgYDo1%8LRYxM$|@{GbX@dQhzv#wRl5X!HVHcc=rHQQQ0 zu8T5NLd!J;>*Xt`w?-798%odwgAfM=nunleh&SS5C9JVX+H=ix-Y9rfz!vxMD>~$_ zS_xe3uSETi7!%T8p-Ct zpf(j;{5jNAU`c&@>V5*t;`@Upcn(_dlWckXLi-XuY(x_HJ}Bl#dIFzIbS9~aQwjF| z4GP3v$@TMc+`xyU$wU;Dm9elp>39oyBAi%oY8Ij9&&_wDPK2oz@eDg746erdP-r6( s_eW#z2o3lnGVU8y}l$j9A;)0~= zl%t(;tl@V@ANDxM@V4h5E;>g^6*rxNYb2h_N^U_AkZ_S1cm31BF{gt|>qtxUa#k+N zxol!VR*O37{rB}HJq8T0b&T&fOhPV7N()dMFePx43s3Ijk5K`8Q7Y^M+YPWK@7JuL zqFa(d*fm;k0(NL`s2FaF8F5gOZb@&@$jid^`ik`;R6M{H@0}lbC@$MvGnAHF)79=2hVA^W(`gp zEBrX=!FT*nAVAvMni*5pOY7LEF&!)+F^U}aF_Q-z?$C7u|NHWN~wBZ9#Vgk zR*iJD7dyv=%M`9Ta;Z$QoR{>>6(e+}B~`4)xYIf2Ib~i6f(Lrz=7r_`Y*LX73YAV^#z?HF5T(Ot<|)wxOx0c=xJrHkXH`)& delta 1441 zcmaJ>&u<$=6wcV|_1aF1f3n(Y2$SJs(Jd<%ei`sz^ zSdI<5$+?LEyV9mU+qlxQ+zqp1wx}=QgV?8J6>evaK_mX`$a$7$E9^Lnvx)!19Q_w2 zyr5hnMu>Bu%#6LnYFq3i+vvlwb@)p;-*dct#8FGUPp-YKu8y2z6KtJLK1a~K3@@r5 zl6MiZm}PtDSn4_eeoW55wyHo}TbM{+G(4kC1M2yLC2N9>^ZpjBYG=t3a7`b3rc{#2 zmr8n}YPJmDuU>u)o>0cmT)^GSMZH|smvtGTJDW{v292T_yO*yI{| zhxo8d?Yd<*Hm-W~${^8+BiUBMyGEQTo@`lIH={KW&+c}MsK`iIOwU#dTnRyW%CCv`!~Gn&+te3c!sNZi@IY9UWGkUeO>TWxY0H&Td;dPiB`~Y zso;qSi)V0$UUgfRX$4{@40y%xY+R`nhz`)wWlA^81e8Ow~G$695v|~m6?l%0R|NmWVxS7^dJvGMR_wNn}9X-MNnwwp7 zY$~-0_fpeOOD$=%?J~o+aCG}>QcE(fbf_h1_3z(2h0NutMM;`(F37)d!sSFs^^EiB zFn{EDGr z4ViE3|Czx@%#)RQ_;AQmJ&+J`7p>(k}RrtlpI{Rn!Rt?Vy8@;vz)MKkN? 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 6800dfb83f14b325e656d9849c77b93236254f15..a244b8b6580aacd92fdc31ff33c1d5127c564f3b 100644 GIT binary patch delta 1499 zcmaJ>PiWg#823}7*pmOnb)1kTcI39KuA4e3Ter?@4jaKMbSspd+NLCmE$`_OSw@m6 zISe+&U}ZX_{S??`>`>^T&_ghT6?Q1?&Lz<8u))e`M`0^;-FeXVdzO_bt(gygdf)qf zzwh_H-zR;0{HJ;GGjZc);j;Kuwoo&zy0)OJpIE9Vr_Yv6? z;ZimZ-53?zJlrDr5zm#E9J9XERxQW&=$-D2lq2L9c$zpQ(0f<*UKIs8Nw**u|3aWo zd03`TF!Gq@=|k9xE7>#Ua?`YohOeVsR;mhU$f9Z5j|*32D$0I(4CvSVuDv}^ee*iz56mu+9}LiGrSEO@?jAkkT}~jJ~^+H<423~EeS zSmq>MuaJpWtdxE^873O@C`(>IbO?^TB@P( X92-A-j2~RGX%WAGc;3DJ+IjK<@`}>5 delta 982 zcmaKqO=uHA6vsQwZqp=9(zGNsRlIpnDO8KTX-H#1yv)3LZ~pJ&$9sO_;Zd<7 z-tP!5i3=nI>q2B{#l35US3lSZ5vpIvs@P+6mI^eJpY2y?_5N!a^?F)URMT+R&6J!^ zQ>_T!NUzscRHt>hIHT&O5l`hbrJPkuuqZ?wrXgZ1qnHM-6oyN#vCcB>rB7&po~1!* zp`mda9)}0kvWLDl>?vJKrwVdWFPU_$I@0PToS&lQh?M9GpaUo9kv(AXN zQ0o;l#+vvHKF=XR;|4MxMCL5pXa||Fc6{y^(gtjJCU{}7xy@?wjI1AqI*uPW@|S|$ z;n^^TZ0n!lX@^5tKtCkKfXGgA%j1gHDc<@o#bu;8=u7gfYwQAE>>@uV@z^V1GjS6c z$I5rhfiqRm<`iJUBZ-^nnBN1&vf%P|i`%$uTO6JH2j9j0tjR}+`9`BJcoC~M#q_y? zYOICBK#Ba=aWY#C#&kJQkN|{IZ0*+1WgjSmZ(BdNGu(KD&+o09$F-5SxP!I z{-i@iJ5y1rs-{}1uJLch{04{)1fp}Rs%f25Ev4pg=g{-cb54;)?b06MZWpQuj=LCqlG8zAIcsnG*WY+`MeAl9<%@+><%0pV|@ z4hvEKb?UTWU;sXsj^3>Yo3X@yx3YP5#;xGYa#^p{WwTU~ExEJ+w`HUiFXm?XQ@NoN zNx0nXSQI?@yS>`5WJqK`eQSsOQ0_kTCbhg3SvI`)puhL^%mDu>J$Qz_g19~U##e!y zhP)c;O`y)(*_{bELC>#(7rq@G;xseS?V!s7+e8^j5Ao}nhlO`|BKu6=tEllvmIaHK zJ&V!lF#AyPA}H2Y*c?3CD?tO6Jl0HhIN`$2+rD5z_@ce-De(ANGgPbX7-Co3G4=~B z%Vygzcmk5R30iD3Y%2;$=>Paw?5wPsis{qRUj~Kw%O}XjpRlu;dpkkSF2U(_!Z392 zoH>nWnnI8!MAh7PJY@(RbD9o^AMsnbvmMJN?7DmHL8J|L%G#N<7)1WxqV6D^=!YP! zPh$Q)AxUY>jn}Ey!WG0u=1wImw_p>@I0mOG+ zW8DuSalur2Pf3?RX~*HO1OGG}b{Ut6iei@iHUFl!#^?KH;3opw(|EJ*h7kEY(zw?D mYv;r@ux3}`X4;}A*A(1i!snl%;*v=v_!9tqF!(EM+by%T-Q9GTg9ZhR zCYtO8-g?K2CVDC9!Gno^f(GH}rI>gm(L3r)Ym>&4a`CdWZ{GLKeD9n0>Jx|Ogf-#$ z_wa`B6slbV8!sicY=7iA4%K$KtcQCHV<^sz*A`GO8qZuXbjz+R=WML#*vJ-D`d6qJ zWo)SxO(|*j)jZBCwt{npZY!EjLrupD>>LY>9gPeh#Hp4DSU^j#<^8<6oJtk6l4>e8 zNu_Wi#eOgqrs+#~1+$b~((bA)g)4aO>ZRZLR1(WFzD88cNFxm}HYyE-ZD5-w7#|nt zUaKg@)(m~r=aR15F4;@2ueuN11Q8tjf5@OJV9uXGKCYt!szMmd0clmF0f`h5U6!*X z=y-6#ed4Y+bT+q1l<;J5hQwwl!0U)=*(8dkSuVKACQfkVe=@RZN6@pYXmfBo-!EZ_6_5be~5TXD`pdi=LRk+9I(jMf^@UohvDp zm0o-ZW-th+r2e5h>>SoNK?gB*o4RcC&L}*RhQ&pOixh8Bd8Vh#!9@QkTsbi<-e~A> zevcuWfIbSFXS?)88;_l1R<%n?aPzG2PO?j(v#o-w0mNmXI&hkgkgssy9|Atq1AF~3 z_!OFozosWTU38@Fd#36Z->^{3t5&WRLpogcIh}cx&UMLE;8i%yQ5VH%?ML{K^VGT8 nVRWA#en*MLxAbEZ(0r{kev|tJbC7*K 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 cc4a569837f323473ad0d7038415647b130cfe71..9ce722707aeca17df8912cc37aba77e257b251c5 100644 GIT binary patch delta 2379 zcmb_e-EZ4e6tCT+iM{5lU0S*{os&YAWm42heJbi0+6OA2vO&cj25Oze>Gh?yBioTE zQq>`W#+do2t~aSKz}~k96yOnrCLtae8rmyDzy#u@h<|{ObA995>DE#S{9xaE?(d#+ z?m546uD7N)&qOapuf1E`h`u$PKWmtE<+Lg$W88l2OA7jEtsaBh`}Z)s`Yr-QwoK!<;s=8{c zhQ7F>TDD8vqp!PbZW%?$&!$gaF*-qLphv*PrHUj(7>B6bB@W#2brVK;uHnt(S0=WOdP-m7+7$``ig8> zYExCru(SOT0(SZl#~TMar+mwkxXLV3WmGp<2Zcc#Kq0xA7>lIgoaD!NmJQYhAK^}Q zbqtH!9-Sn22a5te(N#&#XNnmtbTxOq9-x>gj)0VWGq}J-Ng*-EnO$Y+$A5>D8Nn7B zj=%jxIcqcCQD>IwhSrj;YD2c=>S=f_(d3gmi4%2}cL~YBHsC_tFipxptBw>+u8Qz@ zF~L!=;p=4tz+y<`tnO}#e4ChE->022PKULQ?W&b!s?Qm0DS88#yZEZ9G(+jc@6ezy zF2`0>Vka}@ZPAF6-Wd@$$o6#z?%B9Y_vi2i#Q!i!rY>+dNHg_X`aLRUq)Nl`Rhph$ zm}*pd89?nCegZy}4ctWNQjIF}zF4)x&;hM~lP z*(I2jcx(Xlu^4k-1SXY=1JBE-?(w0m=>{}AY1h{Ud2r}`NULAn z&c75Lz7_)GN2xAaW_#CEiA5zB#UH_L@>Q}RbPKG=lkWy6pu&WM_!g`=0u*w?&}3D2 z@f1&%Q`Hx72Nuw6{0V&Ur}Xt1MLt->ZFCHWDl`irr-!9?gu_*LgaB@dO7dQ}m??CW zx>88_4VfiNA;)85S*keHnQ1P04=s4D8K!@+3frO;HpD7y2<6bPG|=sur-ewF2-(bJ zns8^tpaE%$9==zdT%jPfOrx$?meP=FtCHT^p?eVuu#a0M_<4E{lEsAU(wO{ejOV%7aQnHsXlt)Y|fOL0yZ w?})>Ha{L#3N67x%e`FKT_&U5SN6=+Wp?fU&VZe0ZiiHYLzOddI8oS8-1ApfI6aWAK delta 915 zcmbV~&ubGw6vsQsZkkQo5P!8aKk7u0CZP#dZIL2Hv;}Li9$KpSi)=O%XP4|IX11Uf zr5*|@dy%&u^iR-J$-#pc&)!5YiU%$D6ZAhQ`X(`@_9Py5cIM5SH=p;N@1yA-N7NPd zVJZGVy-SktLVjwfSM!twcHQ;C_gcZVcM(FA<|on!ko$06Nt2_^W#ynUK6SF@2)D6h zxKwv&tz4!jBv{O{4IHq$|XWyOZC+IxOD zmqQ5Cxthz-jGX4OG@qvnoOO_NL3Mh1{_GrWCl(?;@4oEwH`zP>EkDCm@6bQgKSXcUYOZ+t_xG3vYR)n zE#fv$zZXQnEk%apO$V&xwwv~4>G}%%-62G^!GNVePwxnv>C;FMKJ+c%I2N5D(^w`y z_7h=G$Vw?*AK9>TSDR>;qhKuc% zFTvWbz3@GDE?^U=4;0|qj@j^qRukSID@q^i!PXXK6a{a+g&_r!?Aj(fyxh5;EJ}Ss z{59s!W9eZ<3Iee~s(#}M{uyVZ5bsUF#^9;+6WsE;(bevaI`gfkav3f&VRY6|iHnFA zDl@cp)z{%|{5Vlyv^&`xPi&CDN75Witp|sn<3Z~g4#LwM-DdK*K;Kz%@&` IC({?nZ<$pm;s5{u 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 8139d3b3fc5046f3efc34a2ddc92d3daa97fd5e8..169ec2fd79c939f5abccdb9b5c5baa04ab889389 100644 GIT binary patch delta 2258 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 delta 1846 zcma)7U2oG?7|wCxCTWwUA#Kvcb>cK-ZA??v!bM9b(1f%vN~R)p5`rytTZ40OlMuTT zNPyalZ6H}_=ryXeP1>#|xM>Tyo|weNG);UAX_GdgP1-Jy*bVyuXgkM_gIik0P2%%@ zKhJsmdgbWD_t+)&>Q4h#*o!Cy|1ha5*Q55sjb8!?`5J$q3k>=OKJ;bLSYz4u#P1(F zSeGSThFhUMuo`lo>rNmn`!2!n;lGoU$m0)%xSt&=e@@N{hgZno;;a%k7-7)-*tDD5W~Ep0Dtu8%7fC?S2*?XHMbgTe zdkTM(L8~FD!dis73awk+;;Wmw4d;bFm!Qdc2qwBa&-RZ|d2sP%N9Ae`%Y2koKZ z=@HtA!>w>M>>@V^(c}cn5KDAfa{R1_Vh z(@i#6n%2he#pTdl+mY)xBi z`3YN7Ew)O0-%g{=UNNSDL~~Kug$*iq9-pFr=|l8&yJ!n?ogYVDc+4L`H?288q7fWk zqd0j*CBbA_;7?(R%N&d!mNkVePT>t7f77K~pdJFYINu2}pd?M&WgvRZt!pGzC}$b>u~As@IygE;&H z0iA&gDiv7MJV1pIKwz zUV9p9-M+wSo0tmRZO>2x*0 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 edbd2eb82335f99fbf0d62039df6d6fedb231a15..3b8f1c1b71143a85de04a8a222463edaf494f16f 100644 GIT binary patch delta 2068 zcma)7OKcle6!kp+;!hmnUlNb)JU56sCW)|=7HWw!m69MeRg_fSQK)|tW(NQ8jFG~x zi3*4oBU-M5vZw%62-cA$RD{|ENFa4lAq2~AiV&c%Kw^PZsVVo3KQk^S!VBB?-E%+Z zp8ICLTmEUyx@q0M6~AJA#}`~GS98LGlzE|=DbB1{%f+)-J`VIbHtl|E=Qz^5&6Npv z4dyH{lALX(ExWd^1!>C#j=*)--pF<$u`U&aN=6kE37VpcT6I!N;f8x8=1e3iRUs!S zQn{pgrf9jMqLC>i5*liAcnRhP9j>9gur8G(=7Za=&=J3GpDRd;dQMV>VgnkJTaDKn zanV|z>{AwQx`XkCXnzh7j=Dt^sy!iYV@LzO8C>8_!xO&g@G56AiM)IYe`;AVDB9j? zw94Qa?0cq=8glr;hsT_5C0k2^-Q!p&6?heAqK*X(U<{*&tg<;7*>9DgDylf$`<&DCJ z{#D{9@SFdFk1$7fHY14HXTx6W6_cIcL)!mCOiwS}&IR$n<-i!3WgShi8)AC|QzltE zhdNi}UPo9@Pd|Ta;xl0};x9B3++7WM%j z@p^a~&U%N>zuB`|Y%wax}%gS3M@py_oU1m7ZovvuT1ne J3y(g_{R4=ESsDNU delta 1494 zcma)6PiPZq6!+y%n>0;QlXg-wlVoD5`C}s}EL+=!Rt2=s`Rv`o2jM)7k|u^UZtT@BQ9; zzxgo_4*fgeJmb7@d&|7@Pdx7q&0lHZ$E_tBfTMgLCTy^PeU3PEVVCD@`GsS9Lwy1O zZ+l*cFJCn~m?T!ZN`W+hX?d9sE*bvQH z+r+!7)Z!*p+%>wo>Cf>^$5#ZLTVFt)t{0Gv)Hm~U+3G%SwViiWx~}CV-ZHczZms2j zB`&#Q80Kn7;D;qb$5`Ok4Tpg8koCmnjK4{C@aJi`ywxP7C9o+cCrmN6{ zMX@K@L~T8_wycj{tH#k9DrV}Z93BmCg&~{?$6%P(Ih(0&5O0c>yX_+T8D}G{wtm2v z*a<2QiU~Mr0lfswtp|K7?ttGgA*Eo(0{RFzy&iChAc*g!7+kP`ege*~2fP?b!gXAX zMB#=7Y$4#awLpQdQ(e($J~gF`@=uPBrI6#UjW)d;jln-w{YI)^TvH#!o>(}}7Kw!2 zp~sZAjjeVdSH^?W?MdvH_s5?TrO`-!DxEH>CVRm{*Ql!JsxjV_3r$ADs9I9;1yeyO zz6%_<;Frpi@lOC!xtMrnPrj!*_KqI9;T~7UR9>yq?~n0|bGjC%KOxOpYDB}ypVao%BCmw%v%TIv zmh?^u-E5z4w3mhin~g+h5FX_W36u6~X3Y!K*zv&VG1|!yy=0B_9qj<5w}x~Zo@^nl zX;NOos?}H!<3LI)Si3QcIY6EG1*Im3Q3pKh9wq zurds`FnDKdhFHSIoK&1oT~u-2k`TSa`>Tzas{nJQrVE>HhmGy^MjfKrOz}P&^Urjc zoFqb5;2ite1OKe>n0@gt2k!E6ZCH9>`!+x3h;@W`^#*{-89E6Mp7bvN#%>!Cx0ah0 zUT%op2b3>1#Lfl&ik&MjbC|mtJFJ#qHRRxN0~iHA*NuBfgnS}V(gxLJ9){DERb&|# zt$$P_5{sdds${XI;T*~=pki4rE##Ceip3fY{1a2_23&jxeT@ahNR&`=p-gtrb*O-c zx71}6(-(g9e)&Kwi delta 707 zcmZ2yxz(7pfpzLC$%(8TjG~kCn8YV8;|DXuHlAf-WMtWVfia$map7bG7DYyj&A}{h zSYVvV!7MG4pL5=k)YH;R%gjkFNG!?F(o)dSDlRF~(p1pZRhayrM|AQBE_UTBnvGLx zr)Xrb_UPhKD>Zovw*w0oBLl-^K~7EIEDj(mLpqBENR=jKi1jcjXiRCH0x=09oFS9J zoFVI%A?F8Fz}dr*np=>OSe#irW%3lbjjUkzOs?Y*XOV*%Es-UIX0)`X!lQ=CAP0+a zBUv$7jz?#*gAgYp^W?w0AwV*S&y&R!Vv3g6JD}s7KnBTXE#DU;vw zOUuWBEC3lL*24la0x1NNAP$k594?^AkpNOBofR{gkxzc|a)AKG+{r%#S~#M>?(2cZ zA1KNUfU3ekqQI~N2dgmH>uAnG1VR`n5ZE#<1GNPM4Oe5za+>^KNR?SSy4)j_{WkKqctkobcM@njOGK@dDQzVD0hb<+wBr!8*O5)_N zB9@FSlRvV_Z1xuY%gFSQakH2BBWCs8K#f`3fkbf+XI^4%DoA@VFa>3SBsz;T6oH8e LD8D&aI+_sx%@o<5 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 97325de6fb3e0845b3d784030640309881072315..9a73267aee57a3ddc34f23bdf251e23c03324ba1 100644 GIT binary patch delta 1279 zcma)6OK1~O6wOPM=GV-`rcG^98!-9~p_zIH}M7;Kyw~TR*T(8n4Khbq27y<)T6nuD^8r(NU06kKGd;-U;fSoL3ZMvOHMpaczh`iF6Lkkp! z-#EL_S)y=IB+N3a5(k8UTrZ`8T&`52fm1DB@5GyJUX$Q~#cqm07f4jRNKs~z%z1o` z>a*r58u(*-pL>EBO&O09kZBbBc$JDEGyX!&qI(c$XnCy(3_Xy-;HhaJ3YTgON4T_{ ziK?M^REt7+Sx(C;yc(M3RUtx#$c!^GteJF7;yEp3Z+r@5c+yxy*h-a$kzu(mHTpkN z+sX7x#~O6>zU^Y-pR^4>rM+h9Iq>jr+Gi(=(sA?Pxg9-@`gwQ@4eP-tTm#nE1mcrk zLR)+B9oG!{fWNygyI&A@t?}J}*dUGfHXkA4Uk4<#dJ(VCy*sJqqDt+8X;b(>dpFvw zP1^~)AC1#q-(uP%__Gp-OdE_RU_0o!p#Ev#dF?M=np&qg4qB7 delta 688 zcmaEBd)b_|fpzK$>4~fzlP7VCPh2VhqBfpoVq|35e1S2aiE-g%2Np#}i^*o(&6}UG z=&&IRFfvZw#r;}BPfIH;Gbgnmu_QxFOF=`cxTHu+Q$bgE@*W-;^(=ly1_sT>DYa8H zGFW?baVS-o{EAO%av84!qw8dS5#1DLpr#DzEPEhTnv@~d!=#`wrF9C#6o_z!Oa^m? ztY3zlA5Z~j4@YWlK}KS6X7QBCQ{c9-f}JuYgFSW%&_!SuKC-Lb{juGKwWS;zyKLJPv2?Q}VfVF8twAF$r*^HbFId7mlv#ciH6PA}1 z^Gz+z0D51+Q6U$^%1_ElO)k*`J40jgeL-pN9u=$PoW$Z{tAx7AjDpgPQzrixl$MzZ zG7REW7LXB0Zk-FXRCaQvkS51$h{e+<74>EW)6oB-nSX>_oEPiHoerZi1e9Q)G7on9Tmb=p9yOw_sKw6OHNVj-j?~ zYkHc@k(O%NulHWfmQl4=S7ky7+*XK$BLO*Ez973Sx$3f%lWowZ+E#7VXs_`U7u*Av z+&A1Q7H0_`GrSA4rrK1G0G*X5lt1(8You-%WS>qF(Y18JVrDfTDO+#$*2`MwP&xxX}n6MF@Dr?-PV=j2?klXGWbHd8qLGPT%Q zZZWb*bo?epO`~;tMvgu`ziDw~3|PGCnj8r^C!)m1J>n;kPHBTtiis!%EDxoZV$MK^ zw$Xd%*3O%>8QClCJ-$NkAS7GpYO~sUa3H}*+MYskp<>&F3gOfj%f1d-qc8($NT@OfD#I8KPiShNCb^?c;tzx04l$}lS z4s*fT9S)U#!HfBu8+uK_ayNV#f!8*7dyQ*)%LfHsyXeh5uW1IR>>GOEwRGS$Zov!e zSDfDD)??*mws*OAbdq&L*J(R?+c?Eag>+1#PA!WzNNt0(*Y(au!>E%=C0O8NG2UuX z?cb=*s#V!IUSp6{hVi~lj%a^jG?daiYh|ubWZ%NS!%Jj9jK!QJde`3QP*=f2vJtTu`-%SpAXI^`J_UZNWRaoJ)O6rzoG IkCj%0`|n@~qW}N^ delta 1625 zcma)+U1$?o6vuO$uSwIijYDJGX}S}&HHoR9%YthwR97jiSj#HHZa1cr_Ug@Lni(?_ zQDH?97rG3BdqxmJ@nJ#mVL_wdqabvPxQnc-WO14V^vgxx0_uf~(0lPl)HQBB2_WRFETafQqb$<*t2ZEJ_kY+YBMaQkk96q9yRWo;7QOmfsfF&AbUDrxx&X`w9=CQJ7V#8kG6aC}X#jvxp z4+eu>6HO%B8)vivqu+_udaAA(O}*g&$5sdUiUIuN6R0SHEuDkA{$7<67x=d>@G&^F zi_2{JzeVN~G?;pw2C7*C><|9#r(YtEr}8ei6}8blOgR&x-!Kn}TTQoDKt!VB%njY` z=i2BD&lBlko+r_1C!HSP;iYzYgOX0W*F2q;lWDbJnA6VJ5mi&nY&M;eM@AqVmSH)( zekrl1da-ROc%o-sQaNY-+V?M}tWzb#T*1_6Q+;((`%1SW^ zR9msL6?beOHV8Wnd8a(jEiF&+thw3!W5E4xDQs=nKC3E*v3=$=T<=c6^X}NdU%Uu= zr5Ix$7igOK3F{^f-$qlyW1b|@M{L+H;7arW`VU@4N8Q^7o7PMWJ#<>Fjm+=YBKNQ( za!ya=SY>#nRE_4Q7%g5Y9TbV>@+hH_qSMah?+*+_ZIDiqzslo6w|4O+-S4;6S3rS+BGE@a~4) z4N^dL0I5=ue2Hd}dMKqFpl1}dJ#YY3DvHE~A_QCz5X{#%r`Udz5m=7lYzGa?|nMF7P!!vI;H7?I4&0#^`eq5>zXpV_5r_xxaE^C6CCGT z|ADLexT`Sh&-xBMxnA{O4Z1t1`Y&)kxZQp?*UGiDjEpR4m6b(JHAY5AfmCF}e8v8h zD_YT;%;q^MYdR4$^>tA< zWp$CL%gTbN8^qLzVd^L`^0vXaSS~JCOd=bkP&7@wF#qE8RNi$npO08l+ngnZYq3a4 zEX%6Qyutk_e=^zFpJid6l}%Bxz}oY+bI%FZ%fM7@ zlsf~zME0j=kSHldr*K(bkh-Pdd8>|(GWa>ZfBZC4=%*RBWG2I?d#bJ*u0@1O(JSUcZCs>a0+nA4w4lBlujNV#4|57Gato_FV-`m-b|uRU0Uy^?%EbI-3}-xb=QvmJKT&jJRVZ5M)VuNC--)B?KDa-m+T+@h9$)2 z2^nY##DnoYGSCm7C3B%~nRbePjeTTtcc9cIJiWzgS=vj#YLJ8junP?~P{M|##^pV@ z8#pe<0_^mI<`kjFZE;I`+8jRIffnZps&wQoq$;hA=4gYH&}2tLM*!Y?amd(Kp_!M zGoS1xi@6QMTpn@t!%o*6b|tKB{H!rt^N)KvcE!*t%MwpZtm ay7VSw2Roze@4JSS#W#}PTpt^p<^BOdot-xT delta 1820 zcmcIlO>7%Q6wdf3wc|F9o7!%i*d1e2oNZ#IQW0RGQUs-HE7CM@KrI1p)|>1OYp>;5 zA9^5Zkf;bOKgnCT09OzPehr*kB;bTVg7yl63sO&yJx~z!*6aDHo`BF4EzzuYLP)6dGg%3c_u!dOp4{JA3%x(MeSo#l zI^2xiK9(l~0}_>_rfFPRHXB@$Xh|}3Ze4blCBu}hg#~GnPEW({`_I7f19a8ZZ>fsT zb+h3baH};%&8CHC*>IKVlbTAK+e*}2q8194RkN;IEnT5?xrq|lqB^H-uGXk!QpIdE zRK;>N4ZWfA@(`tus!MX)u((jD$d=Wr6sn3@Z_2zpH-Gw(vrnA8Fk3ATIoiGjM~m9A z#kOIn7Tk_yNOW^Jd362X=5`w19x0w+aV*H>n)AF<(!%zCGlp-6Pmwv0_fKD%MK9Vo zJBM3)QA^nYT5?`=x^BB-Z9)rb*;y?&iwaRYqSl+5%ysU750j?*)@IxZC`a0HU8>TypLckYc3_BGs|kL-V=+iWFv0agy)M_v|KGCjjO^{gz?Yv5mvd{fBuld8M z^Mcp>f%IL}9_-SEV-v{{jvsOzvz*v+=Yuenu96_Unw}>E@Jsr{$d-Gr8F-0<%_{I= z=E%LN$5pN&LDGk5U3{5~47;k_>ynSr#Dlt6Q4E>$N_7QJW->EXSBHJ!Q(@_VSGACE z>`P?~nqx=Eb$DZ}812<68Gwt)dq&xJ=)#V+)TNqPm-U9j3h?LH%)uYUd;elT;l^%? z&y?Ab?KZn5kr)&b zjDKqsW;O9-IC|6c;7JqinwW4k9waedJgFyR^i2zN!M`55``*0weQ&;RcE0w%A9OFc zAFfB2-M99%ozV0wKCYyv^|YGI>zaCT`APH-X~*+7K|yeqHw4uwJZ0xxac63vY`9*# zwj*Y^?g&oyS$x;t-_w)t=|My2>OcY=PM{+RlJeQzR zG+iaE??7@_kha(B4R)q6A?#&Sa-xj}1&4z~s2?7)84@D(H>~OekYm@H6Qi_=SG180 z(tf%DDjTbnqA6u((uSer6|CFm_Wz~>6TJI{UQX9ZlT|tn!ZCpofND|z5L=bQLVzV3 z!!8ms1MIRlCX7MzL3!Oa#Rz-W+~K81Yj7+6n4gN9xSO-q^C~xWL6)s~Cj>VO$)^Mz z&{7>*t(5Ql=eF=;LzRsUO|c(xWSpCbjv*Br1Zf$Hv!$eD|5aqAZUEZ?Aobh{D%n!z zupM(y`X635ZMJuJ+PdR0hv_ZiLQW}6PhQb+-ljdh2VE@ei+K49p8^zYg>AHYt(vWm z*je9+28&lj=rSl2V=sN@g;f@8T57(}(^a#>uzZ&b7_lD#p1lc0vl%)J5AIf>i4{K~T7am_#eH1yBPPoYqC_I(BZ-o_6@MxZ zC(D!7R23IWHjT_kJdTRG2H%WO9v{NI4tV2e_Oje9&n z`UOJZf6MtdC5-aH#{DPbUZ=xhdf@z&=8D*&G7lSa*vM|h?1kT811%$PsjT|i%dF+Q s;2d?99|S(sbw#0?hT+dJ#X?%eyvKlBg7Ssi28qLk0qf<*`z{E-06ffl!vFvP delta 749 zcmca-`Nf#EfpzLj$%(8TlOM9nOZB|*^W<-k$G}1pC^ke!YqE#jCVj4 zP9OtiGjf0$K(7Bk`L&>=vzTvcaRxAW6dVpUB*_>C3L7?H*hpsugTjO@;~&WLlNE(knWZzHO+E-TyF^%M@?l=t$xb33imQO; z^soc{T~b+)Iwfm0h|7_ZTAU2yPhKrj%+6N*cm5wOvj0W5(|PN0&2s@xQ3#HqDlx=RUr!Yc+8t8kH^eR zR7Gl0QB|q5BcbRzLhXhwyQx&pmyB~%6%Rue*E#m?|0t0=bn4t z{B+{Ccm1FGx5~RW{a+*}-!Uy!JFZtQS`}lyZkfjU%^TV0Y!BT0HA#rnxkFrud;8>M7vJ^AfM{YCNa8Fx1$$$Aa%`Cl4A3k) zfx~*0$~5qK+oQ!jxHPusZC2)p9Q}{(Iu%1?(L;vZu-d5DwqDmYOB9oM#tgWfnjtkF z?g*=T;W!EB#E?kT&rcwt0XnqWruTQUT*hSH8
u0;AWKSJgMelE=cb7DGZ^+G^N zo{k>r1>)l2;b?lU_PX_eACrf;b%V3)IQ*ZS!Epu0GWq%m@t3%tvLHPYw$X{oHkkYq%vkw8^m4?uY{bL#KjOU{L-b+a^ADe{V({rIwPLX9J60|0E!S3<*r8gwF zJpNf?m>+oWX9@u!4w$M7uZr*b5rjUzw7#(?bM1PD)qZ-rudc||Ee2%dKirKP>%9#x zng%z=rlNgiQWvvb`$xR?zB{74cRGH4^6q=V~KelG|2CQ@~7mueb@)^r5B+-yFt zv@BEAY+I`-)eWV&ZnQRPrmE!g+p1rR@lwE`HrirCVl)fi`-jHZrLM>H9@o*cbOtVu zDUivWRKCPRcL=-7*=T8P_7z_SYnrY0)^H_b!=p@*NU#u|?0lGgNXYHZ2f4e0fo~AY Xu0tuG9Ol!jHqGOgm0j;t^5@B87>)WV delta 1143 zcmbW1&rcIU6vsO)+n=UDT3XuOmPNp{D-?|$nu?N!2m}|S0aOAS z6G=8P@Rp1JfQg>8Ugai<7xkucFa}X$^rA<-IMZ5a2*l`Rcix+Mzdrk&eR1mPNp7B7 zdAxs#yMuUGMf}o(`tst@8y7+~#SLUw(S0b?G@~S3cP|!s?l@QNK&WWb{={ zIpDJQqwTXKLb^T>5@V8@)AW(j$O(P7pb4!T(CY))75CYbRB^M)D2oH6s)>H~fgJ2EEzR*4~L zWU)Y7{dv?6hrR71q?g*5Cq48vJ%$5@Rg9Up&2ojZ8w=QmBSSbkL=U(Or;?w-vX;}T zJMrxT0PZ!kp;1;PNG|NCG8`8-=7HiFfUM7hdLY@*4jHeDbJJeBAuF`Np&+;H4KyVK1x1G>~LYr_dZMJE7z~GakI|YMS7l90 zU7Uj}jXW};5aNXmmW$~uVAQY_RSNn<3r65=DDK>3hj{XycGLv%@Hy*u1PkF?UGKI# zcGCTIW>U$O)aYX}+1bsuJl7c=JN`<;Ub8{b8ims0jFc;dnE{)EANm?1@FdbNc33SI z!$GIgXQmXBB$(-(P_*$sHV9G8ZP+IiUCybd40og5^ylz08nU8^;urCQ?Z62dLQ?dh c8Lmk=udqOkUPr<<7B$>VZzf3kRUawnh+&afuK+U5)`G4f0K@f*ke47 zP$WL(6F$a+DpM5@Cy`a@`FzXd8b-=1?-RUVvYsGT0R#eOIH$ONT=*(Bwi&|~9Sd&Ty z7>QSm7mc`V)t@{#CYRyi2TwfB8?x;j0v)=gCRMw3CjV`x0p6dv7s5((<4We zX&g3ka!~HuG8&Q52A+Y`{mKbKL=_he!%KDqPd2~~ov){$xK@;^Cd%-EN3akpu)BwB z!<{_AygSNg$qz2dLBcsZ;Uwe}h4D4ry84xTL)vqGa=1Rj*%uTg~BY3$xGN9Jan2&u&Wq91t$kweRRglZO`^gP0!#B zj!-C22dooaG{z9Iky9pcXzO6#It!2AioNXfriP_8nLZ4Y3^3$-xb8pG6Mp>8t)J-%Uad z$-Q!PSsq?S;CWc`pLQ2a0hFKNntz_{lVErR6?y}sEzy3Wyv2PlAY6A;rL}@u$`;Fp z@;ej*W4>3(`7Px&9F*7Tvjv|79!PWxOUEJ>RF67K8=VrliCH+&N9*6;CC|259=q470*c@NsU8gHQWYVn65qOMMMALHO9ca$SNg~Rq{6Fv%a;SpFCc>i6Jp5s2>aK;7)Ugc8!EQN{wqBKxfZU5J$6T7dW^W zJVXuaZdU|FoFkB(Dgq~`aFXOw1U>HRM}vp#*aD!2Mff5dSi?KSmRCz9sa!MNb9y8e z6Dw6UFKL=o5ObSid81U>EU0-g7HjeTPfX(w81ZAwfCeHTfsEZIC?An<5&6$XAGWUE z5#%!hzl9gY8@R69u<~k~70FP(q^Z3iY5C?Ho)}bNZ}22OTjPP@-6N5|82e-QQ1r*% kBi|xc*~5>fJIdLTL_0KmY7|;{Ta#n>>L`1=M`J7OA4nh*rT_o{ delta 1404 zcma)+%TE(g6oweRL0 z`=tHu)y6sdE%@SGKliYP4U4aB2-ym6P{x85V4u4IbpUbSD15M;w3{~&g3s>v!B3JP zNh+4lE0QFLUBek!RlAbc!RM`WB;!JBs{lP!agM1@(dXP{`QllXNhMh1LJp}YnfE7P z*3;uzm&#`{O72W1t>$3S!nL|I7n`3+=aj4tdVEU1ri<9F4gK4x=+|-OX&wJ49U|LN zMFl*r+KGB#z}M17y6GB6NCzGADICx&f~eoni!O@WIEt;9@5izJdk1xpG+S2zI;HG}m7Y@f#&9P2~oyCmYm z+eu*XM32c}2khWlV8Z9ITdBI8TC0c6L6;aIZAKJiD;-J!Yj^$wdUv!8NSpf)eY?}Z zDv}+rRNIN>7|H`BlrzR9{y@pL%_y-;b1K>MSXR@jIjdo#D3An?xEAz)Sq_l}b~ZxF zmfKgr%=*8*N|jbZ)I2DiH8lbJ}Zm`lgJ9Mf``#h1_$~>PUo_r!5NT4 z9DED=wgnCc#0^)xx`A=2C2MUA5Fijc`_W{k~B1A6~2Il`Yu+tjTttD z6SBadFY2IBsZAL2Hn>)b+;4#?@20*6=5HyRop=TTx7Ixujv%}1uw#%YXATM 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 320e51a1ebdd957a5e5c1b37d2a1a24905cf5d6d..efe6b8c046bb2be64ce7774f01a3672c2dc4c4d1 100644 GIT binary patch delta 1685 zcma)6U1-x#6mGJ1>Ce`+>CbfSX6it;qJkodRh;5BWQtA^K~UB%OHHm#Q=05yicS$h zF(`T>_#pm)AifMK`YeKiAmY1ED*7UbAR-8g_oP{yLY?Lz$-Vi$bH4MPdvbppjQY;_ zuKQPB^<9W1$F-^`jVgs>)q=XVSk=@cS8pfUYe68gOFdNx~BN>Zg@$l0ur6Lg~*6zFwOmIT}s3{5cTJA&2*gV}7QDv64& zXk{C_TF@#6T@*^$Eb`!VbR4#J2SPnFQc)=@_zhl#`VPmN>#35W8&irQsTNqnXRTA# zknA&u+X!hd!jie8loBw#hE!GIP4@si@7~TFfIE>j=}E@pkyB(3eaueFNxAd9RnI{8 z;7xSR#t8)UlL34T?DkXacpV!sgJP+m>q=3Ps%~W+)DxHw_cF&ZLta5e6d zQppax5;Eq_CN9}Bn2(Ol2kVZK-ELlbDV|Lr`(1c)i!QKMTEeowoe`_qj5`QV%N=t6 zUU(Q8^gDgKiIwJBdlaG$+@SE;X>!7qv7NPJw4QOlBLf$c%#((b7^miT@`l^VV8h7} zY~lyeVE+h;Opz@}x|ZbN0l%K{!CU?S^U;o~b#X)Q5!2wJ$ec^0xie=Us$3o>5`B|- zd$x86s-(+;HcceaphM-l>c(z&MR3Y&>FJ0&Xf7Z8SHPjx)(*Pq@Fm8NARG(H^Q5R)Qa7NYzBSn)|V&cdhoxfqKd8h)fH<~Q26 zzqO~h|C3hvA3Y7XR<}4OVYr-F&Tc?Ot8q{|BQ)eXl(TYiQhvJo8*b6`!#)R2f4@2X zW!^UkulR6RHw~DMLO-AsHv({He91_rZO3!Qq@FB*QFU@dQK?M zs+GAJO%yVjMb%4U>PFM7GWAf0cZt-s0GA@gy44{^O4HmG4ON$t6T&=&nH)V-##}|R z$QfMvXCz&8*6=;4LaBE%{qdjW)3s;4zZm9m?dkFl9jmTTEHUX#Hv{E@Dj`Fs|7C(7 RF6wfI{-TLld)a@4`2)pZ@;?9o delta 1206 zcma)5&rcIU6z;U$LaDR`>=s%mTS3yU)E`6*LZT9Zm=e%18n~q*4Oh4}=C<*nX)jXBAB;7U~6qLb0UNSW;`HTWu4;785t!HnG?6 zW#&~?)?vpNIptLqO`lbCId6iQTrwY;3CtO(|6uYwJB9?1!%?p%S7`w6TF22f5d5j! zG!1c-r0FuB!Mx!V66T6oJ-nL6-PnbDW^inV7I=+jIbXt(rfBvdIE!j^Xx?y9-nK)s z3@9x91r$vR9~XfsBcL=W{uI0o_&FDyWfJ0@eINumI348sl|yPaT-EFVS%Y4~VFXW) zCddq(uP&0&dZ4e)%iB21#%`6dE7W9M`L~QLZI_W`>|g;Vp3MezxYh${8{~#v&<5mG zP0+2jN#CCvTxm$_rqV7oq}^{n)^B*K?lKJ|n)CPsxy0t|Au+bZrr2GK(gqPGI);!7 z7CLUA9Sb_i3Zi7&D#t3VrRE_c@U*S>3O_Atn0bCo$g{srdCu;k{*kOIY1+u0N3eD@x*qZjd5tEO+Py5PwmR~Sp|aP(8*YYW6K0=I*8@*N z$>zQ4gkS0Sz3?G)-T4#28GiZrXKUm-LqtjJvJADj<^GPUCr86wXtyRD=Zcc|Oa-(J z-`o43*vT?+>;FY(7#937Snf&-XPpj*(L~wm4@$C0&atpLCu`YS4EtUA7Q>U1bxBc8 z32sI%AUFK*cUQI|zYw}tdD;ERH84Tj$Qb=-hPNQ)W!9|GmrmHms)pnA(UY;tYvC69 E4Y_)J4*&oF 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 c2cd272d31d895fb3f57f52c828fb0e86f03f936..b1f12941d705bbef47edd09f196fd85ad406193a 100644 GIT binary patch delta 1636 zcmah}U1(cn7|wT^pXQ`V8r%H!q}e$wc4^jj28I_Ex`|~S3{lXz$>P#9Iq{s2CaF28 z7`kai1cd|Y-XmV=hI0%rL`uL55xw!oOTi0ack>6ma3aDs7!%+3oHRL^qPfU--tYZ; zzUTe9vi9ENzFptD=G;5JH_jeB-fUIWRlWRtt6X2IwVL%}=|#2G)+?$}ER`G8VyRZf zZ%Ye2XK6vx`?UH}+XBn{r=zFu=pjeX-i;JvLia8Mf$hOtUPUMz>F#-d^z|j!^Il{E zoDBUm@fGuU^7;MD`MkU=LnNB_in1(&5_?3z#;)|I@gse$?9*^w}Eur~ex15N02Oq~49^wbdVp_YaWlsjta@Mg7 znqpwVPCtjKLs}<{*i<^eD{7V#I6n#IEF|*bQ4HniNHxW zfrOU`Bt?*CD6_;<wcb6)uh+qR9x^lkosL%L42sX7)#e zLQw%@?#fb*pDFQZuc|kCRSkHlgk&G*YydQ>N!njpMjJs*p@w4{s5I+!wLy!sUtmd5 zmEdyIY5UCI71GWRmt g@*Vs$%wVHjSINV`70OBRrlBdgP5DlDZKlZn25lqo*Z=?k delta 1150 zcma)*%}*0S7{)tox1}vmXo1@9w%t;wWho|bFb2X$HQ_@72DwUVDGSqei-avk5+x90 zqH!u}HpU-AQMG*M70K=66Bed{sZLnC`4dL3P+et;!>9XR1C$^_(uS&zc`so^{ zhV2s?cBrn&1z8sJP+c8}IpnO8Pi6CBP6MrFMZ2iQF{3`)uU;3aHxT&p|Kff~xcg8W zY}Y1+q*l@oW~GDVwJ?brR5KsfE^B&WeHwGvf`g+tG)e>xwL;9z;k1%fj0O`W1W17H znjVy-JNu;GKXzVe;Xf_|0YnWSbs37l6L$hQkAtxgCs7zoQsYbAZ>cF_zetB9h^35rX^?m*vVK&gyli-jNS;$z zP~_}r4SKjJZ2K4si@!sX3qvsIflYT1wt|Da$80jGcG7BoaZc1EFCA7)iArW~4CA2- zPSrLg=F?eOOT)X+AhJR-5GouF?;tc(=!kr>#G+)G6ebTvbnhP7R}~x~ MH&+T5x|&a+AKmR>;{X5v 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 99d3df92ee539c2de9a596f63763e7059cbbc10c..28fd922a5dea4072630277d40ebfb55e3f02ba98 100644 GIT binary patch delta 1621 zcmb7EOK1~O6wRdhr)|uy)~25~iZ-8G6$NV*v0AFAR2M3gTH5L4C2z(g6J{o2L8&ej zg+XZFxOUaGNW`Tp!QVm0YG>S_+f&o^sOnfv@wGbh@l!QPL!(lun~zB$f05q?C0y3xxoJ=j@6e z|Humi*&iQkN#*q>e|UU9Q1}ih2#wUk%Zh2pUN!hAfB71Rg)#7AEPNz-p)Wh9Lqlo2MIxpCZiC8_C&VK zk8i}%|C3ZpFiAR$p?~w+TOS`A`)0G630i2+#N&S(CiMvWWsl*r-v|7IR4! z1zj{8O8W8^3nCo}shmz9g~V+&WMe4J3dzUoX17{QT)26s+}HHLy4u}R7=3)L54jHalyHWMmT=qib9(Mw7ekUaaj*$~){v z?W>I_jcj$j1^`RG(>}}zDEk#Cpn&tVE7Hv+7o#a(y*u!~*Y(*lYZ4j)lMfB1>V&>p zM=10ByaB5d`m|1HkgI~hb~+#S_*+SW{36|?g^olKeIE_yVCKD|QY_+<{f03TJdet% zB4SO$Su{JxZnW}TRuK`;udLXH7;8i!ub9)}&}ccBpu4@^xEz5aB=LqNQJi27`dk^C@&G&fvRD&W&a@m;=(pG*&PkPEclBs|nd5}&kf-@gzS|y^c|t6@YWVXN8zjOrfo)=tK{wP99ClsGnyoN z4#BqP%lwic6pB(t)@3a(2sk0=wAhEW0%dnm6_PlW!k37IbE+m%TzAEKfd%DcsfbIu zl*Mu$vp_k29p|*-tVk(4raePaPAsWZ$5g|Vf!q+)l7zJ!9$+5DfvJo(KU)y>^o5J3 zPL7O^jEzpEJtlEYn&eaRwt34;5QlMpPZR9_Z-%=Qgjm}!!Z6sLnu(&OCK6UcY%5KZ zpwWyIX4$MJUNw^lv60?U5*=j@8}*txc6GU0bI@pOXubvOFyrfkmu~y~U$!erytM#( zAdZEXm)1}NjCX{my6f`oYEHEdx8YJ{DiuZ51hZDNa)v{3X@iD0qcsLv7|$~|c;g7c zR!5@sERP8*r@3v}9f5xDIJyjFZzlRLM2Q?whPZ#PVVQtpJ>UEYBtlWbs^$Vz~xa<9F|KaiC(bYe#@IZr3qn7}uGGQQJ+ghgtv z(C8?@>&`fOQq!|XS>XiMZxS?8Tv!eVOZ!^U3QO>yEv!6(YXJe39|Yn~@|%RoPx#@C zz#)$v)&o8WdZO?mI2?P=;0%{GtiU91|7bpV5GwWnnf|e5`Vk1iek-zy>h>4?-M-r}XEl3TrNwUMD$kIJUYq0F{N% z&+4XLVf+oK+Kj(as#eBRxEVWFzpaqFzC_Fp8{^1S+SgN6d+-CQ=eiH>RQ(#DZ&(>EdC!!0F@zx|;@-aAXj-4;rIb zm(J&M^tZ2?LoFPQa)n|(EhvhR;ZhTvJf15|Wb$b)8fDlw^f7-T3TT=#qojDe1+GW( z-O<`4-30L~IE)c&19a#n`4K$8J))nrx_nAfCklctJ%+6dF5L2-@F9gPh4vyVnen!j n`Wt^C>rYhbYkF;SzNF650*SUXHh_6f!BJXQS}5&n8AiVW28T0< delta 1740 zcmbVN&1(}u6z?RvNj9hftcTJH zdMND0%!(lP(34&~lz38vUPMq2Ehv;qp)J(@1=WKTe6z`JwrREKWq0Py`Q6Nm6BeIcv;ZRkT6~v>cS-Rq{Y2Z!2WxmS{k^o%_#F7HD3K9?ev;>rdON=;lm>4%;HxBjT za33fLx=$XRz;Pw5IIqu}2wP#?0Jp=*X%^^es3K5HtGGEs4=2Roh~0)>3rN*aNq80L zcf-wH^k!|-G^sM(<6SL55G*ZJ^p5{$(}q@WKg`MH11iZxBSQSn+W;L;*$dlA+;q_*a=V{1aw|$nUUz%~y-f>yD!}mLVj+VR2~n&UgB*I*N2iBsz_u z)yXV_BZLQ_5*S)P_8Q?ul^6~hu{V~{)p4A1xg6EiV@gMtRVjp@R2{Vs9^T!p2h mo9^ZB8Uqv72FX0bHN3)psgVNQt`f-OcQG z26W4OT^L~7q~+|H>jt`z*WGIny2@^PBEl8gq%Wmvz2KlhI>D}pr_fWLL3|AQBicmo zFh#<>J0cMdD-yw*u{M+)BnRcR){fygBw={=Q-b9LNo#UaCOMo*Vht>+7R_mLx*yZ% zV3NmoNH%ZY1WC$iS(7tqc3TX1fy(-#sgL0bzr1~sqDw0n=9AJ$E(Mcn8#Rs_VJhez zJH5e(LqXFtFUd^zl)sao#I9;@Pmj_&?z(v%h z_+V63O-@QHd*@Ne#(gW0mp%8bK2e3r%6K?WWu+*xQj&tYOpy7xX2SnVh`m4y2Z(bs zW9KXVs1-1^S5w#~yD_DOO;@g9zkMzTonqf>aMkDHCH=&b@wnZv^ ztX@CbQ3cYz*t))MeinAb7w9O>VC`#|PS3?GI6K9HY%f3qKu-enp_tMPFFW?1p#`8` z&`AS27nZS0l@dDoH{(^1X}G|++sSkO#W^n&hwD}s1=5v1E{YUbH<{zEH8$~*O+2@r zxC`0@9|LXbq0K$!rn%#pR0=-fk~PzVp%BjIGI64+B!OciI6aigjwCX1917W+w5X5u zjR2qtz^=xkw1t0sY_g&bep+t7G7jb<7IVuQIYMC^tljLjtATaaw&DBWrn@sSMH|Ty zLwUeePlBlNg3g9(H8xw@jU2Fdjro0bzmVf6%J22RFJJizoRt@FsJfVrrU(yF;UA#z Ri!qgk0Fm+{f1sfk{Q-SK4SoOs delta 1693 zcmbtUT}TvB6!z}UjLxp+52e-WHWupcdQQA{ETn3Mwjs&Yf*`XU&T0VQ23-_x#-RednC#9d|p0 z332-7lrTve*#rE|2vVg?g(KQI(`Ghxl(**sgb2AM5+j1uu4Gxg{{fk0FZ|78kyLA2{dJC+gV13Z!q<#9X0j*DR*vDgK1b0x7H9n@1) z%!q@Xa5j3$9t#+6@XhMi2_9WYXve=(S-_R<`cshotF(~=MMMvHUxQp=W4R!CM@sMI5S{qJMGrcy z!Ub1*xzNLsFGu>q3 zOadEJx&_6GgCKYO2mHZ;D2v7i1!;@LQY*GB_@u2qR6%{veGuOS&z+e&N!q%dhsnKX z&OP7neD1lEGlwo7lGdbm4(8sL&K#b8+O(?VaHG6zm78<4yizB%WpaF}Uak_CCKg?) zII(BRYR6@+bNl4TCs)T2iuSLgeJI9PGkNShT4x(_Av*sM+ms(un#892`Hk&T_T9|~ zbKdP49_q$^Q1~)WjvbS7l3%4K?M{0m--qV-;dSXG8&h|&v+*y`yZzNf0-?{?nygEo z(ya6Us`rknhOZjDX>K7(r|AZ>lvmMJUQYQA=9g)fe#LYZ=bzAZ?orqA0o>`fSI7&E zR;P&Jwy0u^*`m55E9lLsf?Tpj>Wx;T(=c1?w4yx;FsBBgrIm)=S!#4h6X4!=+I_{H zrIK@S8zpu^)lS|dGs}0VL#&Y^vMAy?;VE&uW0|exVWrU|8US`*bA2n*^dAmF`x`)P zbt_b(@xh}lwsx1k_$TK>a|<%0`~fM7qgGeSw%w>Vh&3#gyos6E(p%!8f{|pK$>ITH z97Q6$I#==)1^|Z?XxwYoeuy#8S*1f(LeL9m2H}C;ZqU1b0-8v?k&y>!hSa=bWCIiI zdL8PSJCQ>McQ`M0I|WYb;IvyYa_}Qo-LeJkK;(JZ+Z)Xhff{;g z1ok)-T!l)*u#Gy~n%XlVU~|o?pMquJZ7c;736L8lo*N=pw?}>?t)maQzRr=aL!H|q ze|UlPp0X^{@__%C#t(8--gPI?^WjoMXZGmi9J(;VGzV7Bft5Qk%|pd| zVsKXZ0JArzRP_A_OAQKb`fS3+HO`H&BrX02Av(dCE);OvGONV4Nex$exYcd8do{C)3k7i!x6Sd7CHR!1 zk%(O>(>(t;vgPC?eD@O>BM#w#7w^OtxI^?YqnU!_MB6==y_LZ@4~b5~tQehMo45w% zQ@KX$YA|P4G8Q|cJ&vN#d^7zIw0{wLuK(W78)JL-L#|PTo9!sAa+B~CHhiQF{@@Lp O7Qm8G?0+X5frj=U&OPq#rPdbfgHJ6+Lfcd;_)zgdMJ3?5vzgi1bfG>Zd+(X^ zW4@nr&z*1Pw&tWw>HYomRcVWV9!(99-bIJVEb4 zdf`^W+g=Ebpq?Jyh$mB$8{2MG8$RvhkB25PmBE!HX%v3!WoTze$p)N+nWRXVq!&nL z0UTr&!=)VyGNAjt_)={QXvs+7wqdz;*)csfWi5ZPIte>JQefyR>^ zXjd3sI>a~oPpLg_Ub1g5Qv^#70(-t|FV1!Cg^!NSbd9>y8RZJi(s-~OpoZ3a2!iLF z&I(#~{Jm%51Dzg1E?i4V`XL}YDHCAe3K90v`v7FOyY%ZrD!L`4Ulh`B z{9ox4mvMdGFe-*CeB-Dx+hW?J9NqP@doX9g7aug~hO)onvRINL#4-B|gE$VsQavH1`wpP809Tvv5 zyyN;?nz4#4hdzQ#uD@Bud3{CCJ6lYy)-RSS1-l4$?lz0Tj$e(A%)qTrcUy&jfFE}} zB$sxeKjKMnLU{e?^gyT4Z^E5+69iJ%?lwWJ27eTHeLIz~p&R_#$e2X`7T$M86h$mp zZ)KUf^5{eewy^>>^9OsLNEmSzEnrL2i;l*(5|>a!e6*Sm6Z;5h%?HOHhR@7G7(EaF dOeUAL5*EQGd?%@R&@jmud@||z=C7$M=szI2tvmn# 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 2617f0be9f9b3bcf4833cdba5693c24f65fdebf7..55f6b75d9712cc7d458cfd8efd84b78b2f3cb011 100644 GIT binary patch delta 1185 zcmaJ=&ubGw6wV|~o84xc`h#ejw4JS1=SA=ykiJ7lvVn@EcY zdJrn^rOf&_hzF^fn<7}DiYE_+f?!psf?Dwhh$kz~WD}c~(mg!(&3x~B-}`3fZr{== z?=|o3NA2_8xp-*ED5xl|C8rBXJ%*Fn3`$R<$wbyL@-}Xovaw(_jH8*NO>Jvuu^F_6|4hrhraa4?*0L~?imzxWa2&^=zHJM7XA~fgb}_Z3;W7*4PQOGl*n64{>!VX z>l}8|0pU$oTv51aMS*8vv6RoE2`yLbg)B^o5JGxF>{SITkVY9Trxi6Lm&j@+AL!V1 z`>GwmUffunbpJL?LMtM@4rra*r4{WL6(Pd?Dx!i;AB*kuzBmYe(OLcl?iD@JE4{UiM!EV~no<LGou<<_O0x#(Xh+ELFVR)`|_d##erO9$yKDFO(e{XotCHXI@uCcKm)o!kQM zSd_8FYL4+_5M0?}n8b=^IJ(X-lA-f0hgxffabDGdKp*prB&vybl_jGL+d~b1qaZRn zmv9(+xZU)1%bpCo3Qek^>nK-$Tdj~R!+gO|k!hkdOwGbvNzc!w4He3=V_I-`jB^87 z^982Fq+`BN7*F8I5c2f|~eK__snSB!)>}A=F%Un#~rYxl06+%7^@du5%;0t`&4|t>sut z^;PeLhQZK_TB)SL<-uu~jmyV_;$61R3RLpX{s*TB+wltd0-CB{*`{gQTdUGBKdKej zJ+`NVZ!|*%nq8#1MeHj6fYoSG)2+J8hb?%ePDSYsmri{TrP1x@4sg3i;L)HG zr9D_tb)`$Q^d)X9fRVUL1bCXbC{B||gtHI5rD;2l1!4@uM9{@Y*c_giJm=J1Z|S%H zFm}J=-B78>_@xW67T$;!0+wGt} Hah?1EQJVZN 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 0000000000000000000000000000000000000000..fc5a4e908a00c44c4bba59c8044cbb21862badfa GIT binary patch literal 7510 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 HQLOu4-Mi$# literal 0 HcmV?d00001 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 34ee74801f13fecc118e91fe31a323aa9605fd0f..d7f9775aa9273dda1ca514610e2f4a1ae73737a0 100644 GIT binary patch delta 1362 zcmaJ>O=}ZD7|!N9+aw#cjoPN|Y&ErwrKQqhEr=efMXCj%9%@@cJ|>-Ave}T`KuZx7 z5h^T#%=!b07cW{R;KiGuA|4b9p8SGZP!Cl>JSjM{AIVxv_b@x}%#-JR-uHR4%LDg^ zeOG+9@3h|XEuTu9mMb|pCS>L-8L1y-iUpXThqGx#tq5fu1?F@V(!5h}LDjLYZI5<6 ze9bY8yY`XUWSG17m4|l^4&fi3k&pxxG(ZOB;tn|@XggI{k?>8n z6<=dVm|r;KX~hr1vG`BahQ3#`D31KsbyF2Nz>lM;W1FZQJwY84K?3ZDi!-I?up9!Dwo^KF0 zADyHeW*b~Y_WQc7Y3k(6mckA50kH$G1QNJAvS*xiKITAtvN^0;zu2*MVS7#o-;k5e zHuqbdpk-SEoQ?E)#YR=JA=}ygq-6ziQO$}SWP@P4h)mtk%LKGiY7VJ2$q=k6eW;{^593& zT?I0lft)N!kxtT&wlPXPLi>TfJ5Q delta 782 zcma)4L2DCH5YA*bW|NvUo0`^|q-;vnWHGi>it*&dQcIwsco7X{V^&|5qy~2b1`R|( zsIZqZPY+(b3wCdM5kU~dL+>im9K?(MfLd@~nnodrULJ2|zVDlF=Dp_&>$8DQ;Bk9m zBd`uh?D*5MV2QJkD_=J6I2^evk|}&G2VZ;v0NLAy?*OlGOUgh2uP6nT8MPZ`<)%5i zf5E59@gw`e$-(73;T8$!S@L`7-wMBpLkfe^s_opaHaMFq0(O;;nMGX}PIO(%>Q1v! zGp|Q=jqf=p+U(OI_loam;J5t%msAycX-veIv>I{T;H|Rdv>GP2>LOGsrhUC1ESI=cx1B-{Q;}xU7EZG FzW@l^0RaF2 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 0000000000000000000000000000000000000000..2b68d5ab684a5020572bb2a80d891eb604ea63c4 GIT binary patch literal 6890 zcmdT}&2J<}7592QwrBjc_U>B1t~X<%u;XPtlfVX{RfHntLqw~!LKJbyE=^5$%~X$j zx|{B5?^t{Y4iT|bw>19%_YevA3qX8Df*c}ogB$<}I6w}F69;~;s=sD-{1r}E8hh&1 zt5@&i_g+;!f4BC74?i`df7DtW3fCXCndA6@!{byfI)R-Gxi8bV)1B|7-%eYq9EO8cbs6ZX&TQ*?!S=VzP6=_E;Q)i0?I@4b8VjCke|z zm)ZLf?-5U;79{J_R4UfQHL)zNi;H4Q$&Ltyyb~q9&!f(xAlmQP!7ya8#rkpeD-?}8 zEOa}44o)VyQ<-f$#$R!Js`rc^j2qff4AXDin@zf6M%7&3;iHQGO=!duFjZ{B$xq_* z6h1fc*&(yxxyaSVw%{<=?<0Kb`8-b5omxB1R%y$06`MmYMd0kD>e8Nc5QdQB7M_Bel=_|32T z^lciN2(uS-Q0v;=lfJ$(eGwIkO*MV8^!(RP^86xs-ne~{wtn2>;tlbD-21iCz2ae^ z?}pYFMF)|SJn~#5UVluLDvZdW zZ^57us^AzFt4z7&2VjiO!Wcg8B3?>=j#0ruk%eWcYLMfD?f~aUI*#!9Vc;ZGcrH(= z8mPxQGg7r&%|GNqFY!DR$nEOPbiApCB?H?+EF=z`A5IFJ4yo^_I8$hu*=G7-RxMzy z9i5mjh%JK{xaWBal192IEOy|_>hW7WKkEb)oRp!cLgm?)QP!Kx^P2j&YzBT)3f_zX zz@|P&n=Ed!X5T&FelyRTc3z)8=IRn-QP<#-NE9ma1)drPP<6HD z@Sf|tbP1g9B09+?vO{i+V*OgL92 z>+8SI9*%z@93LSJn_|8U=SS7`mAW`_3!}{WM;6LO$oabor>=TBC{?A`CSsVU`D64# zjltT5nVG64$Jc*oGFTyQC_xGtMao!K6v=LuKQV6z+>Tmj4O_19*%y?ieEK}5P&v~1 z0jCb0z{-ZXx5i0%!XMT7Z(;vX}-f7$ZI@`7e=3h`i5uV@V z{?Cih?{b1#c#Y%w<`*TW7?*F*3nf6hGV@J)X8hx+s!Zv(D#VB)9fBL{bU#(;#Jk$-p*rq zB993c%y<{(#;4!r2k(HdR8CjK>!+Fj4i@N}E0R5X`;434QnTSEM^xS}owxFAqbW4t_;L{pzZW7yQ7qEsoT3_LaI4hv|`8^MmZV9A_jtE5D=prCM;YuC#kq?nl8uVz34xQ z+qCwATD6miI#pKDms-v#raz??V=n2^g*M$fb+UBdt%qw19t;kA{Z-~A=+zXj&9yyM z&-zC}lwyE)IFBV8h8QfFZE!{N_c3f_!zA)BTA@b`^|NRe+trMF)kZG}q#sCLnY?#F ztx(esIJHJ_?=S^rReRLR@Et?sHACSZC&b6rBUcJ5@2X+PY(ds$+f&OC4}(Zr9zWn- zdT&-W5UpZZQ|o->!dDUvoj7NzshY#PNgvy-K4Os%U(xG}vmq#T8KFl)Mx}45Ro4#_ zX>s2U9B|EXc*kGPJ7hEdNQp|Pe`St0|gB&k^!pjvTIeyjp`aI7ZaAm@?KJQBF3 zDe$fzQ}|0#81uvlEcBHSML)oRE?3r^w4MQT0+iA3o#=uXL@J|UzG$T2!z)InIa;L3W=d90!PJp$m%!B=zOrQtR1&9spLaXUf`< zy2$+l>g=mUQ%;b-fFjNl7s(+lykh$t4IdQybtnaBNmNxlT=Ax%e*mbBF)BUWH5t-+ z#bBON2>&Jk`vMWo_rdRx}% z0O^A*426<3=QDa&DTWW$Alk!j;1z(-tXC$81$TW+Vm;qgFWMNBk9r$PD)3h)Wo0un zs(}(>2MHC3R4v(o=fTsk0msO~3mN@w_~Fg;HKYSNT1YIoHKqnL1!AM9BxB^If~;e> Y0&vbEWB>pF literal 0 HcmV?d00001 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 dba3750925a3bd9316206ba564fb63c8c47addd3..67840ba320ca9d02bcc948fbd635bd50601aa027 100644 GIT binary patch delta 1296 zcmaJ>-%Aux6y6zk+?`!_*Q_@4$2zN`>t-u~MoNJ}*h3@~QILx5>|VWd+uf0!T}r~T zhoE2}vKGa)~BKr?SV3?5o0Z~RjphC1DdJ8&tW@lZM+=sj8-ucdVzVn^Av(z=; zBTNgkPwQrc`!&G3DVbcS1j~p=k|g@r(;|y{Ac@A5jFMB-%xFr{ zat1Xz?iy1@1PizlyG9Hw>IZgUMwJ{&mjU(T|F1;nJmJO&kT`QFyDiC8OrnCfkH>$Q z_~364|1&S+Ag;V;STf*%Uh_wLH*h0<2|c?3@&h2E?n$KLnx>2?C|fQju%lV}!rQ_H z=xOiKCLiZ;uyjUcQEYVv6m-~kn5zfH^`c?69@Nbp?XU9iq!}nWX-X6YkU*N~Lw~bK z8jFl{%`f@Bl}Y?ce|eiK@nk+(4H>x_h3#@26 zhM|%{R?70g0SO=M1pTC}sws1%Q@*->7_BrAPiaU}a~NfBC>n}+%%9cM7dx*w-tYEa z?>2epZC^)ESwaMFmJm*cu&uE+r7;o0q}F14PWwUf7)Z{`Bm{q^w;ezpbK;=Rf~a>Z z_g2YUAEe!6-c}X8HA%MF%a{`YX%WC(GRh)1m}?rufctEJJ+{B>ls*!@&Osa+r1S1e z0$F65oZ=~-6iT%Z0m%ZZeTO_}W*0A)W%{7`!nhJ@I*l^r*F>)mhoyJcNhy_y~EmOUgOPY$z5uE3Lsp-KEMT zH#va}@{w)bNu(u;dpa9P)2ixTj)#}9p&(cP<@keqAzt&TqHPnvWE~bw7c=oRVksJ2 TeZn3*&~O;O0%X0Q1c$kQJj}E) delta 865 zcmah{&ubGw6wd5s(j-mOG&U(UP1vPUlQn4-6l$b+DvH4%)sq?|F{_g?X#$%bdJy8F zQe`j6+xj1P6N@fh)RR!egVehsG=h5bsvP$M*Tb>_d#p(^cd{dw66%cYCKG?g=_KUNK zTST0_=-!a`XE@p)>=!)-WDk0|37~LD zpQ5rHY>!TR(Vn9b&>`Is&YbE4R+~;3YWR$@hI8gny~LZV4c+2*#noHZjq7`NSP$3y zrl+hoi##N7!@*|`IMi1d=!=OSHs<^hiJ4jzW-TQ1ggF>K&l;i7TRU@ATv K-m#Y^uadvm+8gWu 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 e89c265fa86137a6a62c37d1481b95eca96ae367..318ef75d2d9e41ff56653ac803c5bfceb2c16aea 100644 GIT binary patch delta 1153 zcmaJ=O=uHA6wV}Blg&@lN{zNjnn@3}jW$~Bq5d2cwME2&Uc6L7vY9x$X0s)mph1Kx z2#R|tvmW)}RitWe;-y0UIam(`PqiXd@CU31@gNGm$?i5OLiaGdH}k!3zW2S^Yr`}9 zgc;#>t!Gxau{AobRU~pu&YiF1)C|q(Q?qxY|L?jUE%*^~Hx|({LigBxPs%+q%3gcM zM3v}t4`0}%e`f~|GR@@_M2)lFTb@ne@r`hPeYTjBh)MfSy4fB7GJ7Hh!~<9^R|6Ph zwkXEC119yIGpT4q3Zy8P<*KZe*+YMH6t=osTiKGVSF>`Js3tRqu9{cOK`I!#(&^#_ zQctI`MatfYv53Vu2=(47si^F?*vr<$G4zXl2&SVyX^j4;EqvN zf<6POet>)hh-d_)Qcl<9qD(67*Lt7iSXwZihcqJ7FOZj_dH_7 z;4l)H89aeb1LH{lB(Jqvbb+XqbsLZ7HLcW~$l*}$1WX2x=Sn)kT9uN@MOi1AK>KI4 z{?RF?TbdL6;^fA`CLKEx8amWo=FDYn9q8pi$4Dz_xu9?twmUQFr7@)l`fGWmkDI{_ z9D*w{+&~_rStJ}lmp51!hN4Rx4c0|$>ui>$d!3GZoL#bj*bfFOSvv{7gM|BL``!K0 zHZTA#FVHyk*az%sxT^>+#wTg2O5l04z0z1Jg{Lc;M0A}LaK4VqHFdgP&?KBnIo)rH zu}lFabD%_LBVvrL2)-T414u!~9M@s%N;rDHg(vWHI5&J+Ua8iniK)EcslPyU$1$IZf~{vf1xt%^|aS}kRhOghf8e&&`d?&jv z-j`1=wYO{da?@PjHtjMoo&AIC--|B~C4|C$4;>-&8lDS9RDqsQk%`%A;QBgV7#1Lh z&rS~;7B?7|ud(6^)A>u`hr<68w7?h?!vv1F)-Y?BlEMuHu5^?+r|XRk?CQFz>CMfK zUQ!JMNNlFym-gr`)rjaV{9BTPM+p(;;}!H3m{Uo5G|U0{^Cp%BTFRdxj-2J{IwQd83TYP;RyM>of( zp_h`+a1xFD3;-iKSLl#RO`=7fm18{CC7v~UysTF~VH?CKVJ_fY;wz@U0DBWN;z!N^ zA13A^3VF9v#qc7Uhq<&2&*BC6p1!KKn8%B@t5(O|!ql>PE7h@6`_sdUY{$Jw9e2!T zi<)pKFS6eYothd$PkklR7v^`F#d6ul@nV~%jk(cbuW9kY1BVpZ!&vNooyBENj5=N;oecq0v;5B&LW#yAGP!8^`;ueZk;KQV0fd z7;E`#iX4|RT0e$mQp6auS3+-0&^-x~lroYgDVa!0QZ<7aTc(ZkMjy4&CTgEFsGzT3 zg^5TSNjCuX@c%2Z*TN>D4@j&U$)(v5v7HTzJJD};)EV?HQa}Bfk5Mmex@1(U!U4O` z9NhJtcG4%%iUT0u03zsOJQY<{DJhX$V{Ol>-q@npW0pN^%-N4+7c!YR0Vk`F)LQ`( zcGcOAx)~NXTB%p(8{E7sMD78OZ7uifLga3sW54X(g4|gpX4~A@^`#D>pWq&&5}Rut zM>b}09zf$jGthIGCsbN8fszk3ll5aUMM;$hGV9zr3WLET(UeNCqEV7NEvY0VHhxBV zCLe3*)fs)Q#rmN#9lPfY?`cdE%XxkD$1>2$ffY8dUJ2^0%e?gswHf%RUrvJld`#}* z4sh4PP+~uKjc<0dTP_iuUE!AtlFo26_~oqnRc7IqwbU%*)bR=mJ4z5ls=+n4)yh5N z=++li=R}z0Q`$i-a5|8Lf5IMD(rJ=u{A+c8Ab_(uB~Db8Byg;NGx>D3kWk_{5UBOL zCZ=KoXqkojDqC>**^)RY9Fx9y{kA#n0eUw<|GOD`bfwKj)z%LDYCP zW+nG2cEYn4nc0G^qxjIXgwUVjgVvH|^IO2m^RTG8kcp-V&rsnB%KYMrN(1m3<@w^{ Hwh8nX%Ts4p z;g0qgC1EF+?7TGk0lZdmr@M<(uZy-3dJh`TpgAz{oWY9KyH@$0b!rem1y3Fwh-p8# zCh8VMomWs_CCJ66#MFY zz+^ic0L5 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 b66266f2120ce9d8379adf586aec9ff0000ae75d..9aa0c7ef12a61a317e199d1c7cb69c38d00b3cd7 100644 GIT binary patch delta 1093 zcmaJ=O=uHA6wc(Q$!@ZVmNvGwiIY@p4Q*{n5m68X+bU9}_e#jm#Mw2Qt=X+@5J3-u z!g^?Dy{RWXsT9p!si3_I74e`Ise*d2J%}d--)xd5LFgW4-@N(W_rCew?xUgSNzXOU zol5tj=Vp7?gjULulXCh(DXk9Ev_7+Vzw7_3%;L%n%Z=bqMN(Nc5X!MMeJ@$QQA4w!Gl5!$}k7BuK zh!|t`QHXYk7WJODs9=V2Brg|bL)MDyg)f|hR7WF~D#*H#k`1C-%sP18x@rwjk2%=N z$<~EPs7g2hWlSb%EQ0oK8 z4}b`!m@TArUCzs-)ZEks@~fi5rX6oHDIvD$AH<4;91hOH8LLcg2x z*yKUf-{6P?$B^`_p+?!qE=h4giPTuxiiD+ajdS{yoe;5S13G@<5u5i9ArE`#KaHk= zYczhA7gjIl06FX1_Dy9ptzb`LIttALeyW%LQZJ`%_T;|T z_vW}ww5`~v-Q*ucf^VxmECd9|l zl@@y>C|Th41Zwu!1T7A6)+|8!xI;<`qJB4bgoD^!zfTasxL357x*#)}hq-&RnyL~Q za?_XA6N};5l9na9PI5R?#>F{xww%+lI2Nma3_D_~0|o`l&|7D3Jn>HD353vmnK!Qu zC}PXn6`aJc;n4JI8O12i5=&X-TVIao+1j4X2Q{`8JcgVw^xn#;&|if9R3>(BxDLDn htg;4+ZVJV;N_d41zl_2UZs{}ze~+?OIoCOZ{sGFDYtaAz delta 714 zcmdmIyjqvFfpzKvv5Bl5lP9rBPFyYkqBdS+VPs_4e2wuTBjfhT_t_O0EhgV)wh+un z%t=d4Nl(>>F(%8fs7t{(dT@pZP@OAK-R3}+US`53Xu&nY888!oW){bnr52T>R!qr| z^Jbjf!Er~#P)jR2wNgttr)7Gsc&b1v#~%pJzyCJT6Vj5bI%5(3sLX1)?1&mLZeDoFVI%A?F8_SySOr!(@;mT+vA{rJ0J`Yj|wDU3y5oh z=1!L4=Vk$^0J)TP6HvL)BdlBbt8PXZki<1&3e_)iHEYHfpIu$4|Y4U33Ni4#pP~luQZ>jY? z?DPKI(Oe`U|%>S0SsElJGGnUXj;k;59Oc`k<}6XVs*+qoVv%dXE@ jUEIT&mzbLh(o#I7c1p(j&f*Nk+9?_tt2b}qi(~`FFeee6;%3yAS)ev&WvTWfY}l<&*NXO)=Q__LKPlBdz3k z9`aqsHi*5TT|r)e7BylZJ0N9(JU`E|I>&J@l_4WL31Mf{Ri%Yx63^?8@!+{wwTP26 z1=%V_q39Sj&iMFEevOaeI6YyIQZPg8;D`o)b14m;Q<^Xm$JV`?=9Iw!ZA~pd=2jaT%_3F_x1{rLniqx z9%_-rUmNhcQxaPWux&6srN!3;N_Hou?OJQXy()dL!S_;pv16&x&af*LY)|k2ZUy^f z9mlBZBcxY+r>QfVow87Xr{+Ul3sU5HseisPb8n)q8!Wty)^zW-v5mMf{9$ur&y-dF zvr0%%jCQz4j(uU#L**uH=BN^jN#c`Kt-!c=dSzR8FU>T=9~<9d(>yA22o5f__D#0Q z3be(oajLqt3DG)7_yC-&QTUC|@hU!S=0!->JPa>jZXiwD0hi&FIGtw8%Jc%Nr)jbisnnC9gKFsh?)K2VyJHR$#{HEaEtey$AjmqMROL6QF)rp zcfPi9DG9LB%aHRcO#(Vw zRpC*?WWsi~PJvi}Wawg9Z$m8l^OGzzB%*>gRIGIh*mXQUhS!Q#B;9o{Y)6H?hkD1l@ o85tO|xPe4*4`*ItZYoG~G0>Y?Ac@Z63`L-iv$!{>i^nhm0I>j~7XSbN 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 f0d1ff0514c757d8fb5bcd32466935d67e9bbb64..666fcc0198869fa40cc69ab0afc1fcba82608e2e 100644 GIT binary patch delta 2209 zcma)-ZD<>H7{GhUrAaSs(j-mV<}U4}(RHR<*KBo+y{H8lxJuEX-EbXkl3sT?n_SE# zVoK-B2cd;b9nbB9FJGJtK~S0Tiy+vkAn24027(|mWkMN({jg8N>hoOQE-}93L++mc z|9SiWp6CBu`SIIxwij&|7RJxp*8KcYHJ6kgPQ}mU;_2~JMw4>+x$|!iwB6{q{H>c| zEae{=pM`lBwya@GY!bpf>*crDgu}eD##rFJp4)*}nU0QVbm?iS7>$Yt#Z)HGiJ}M} zxQ+;1G-_JjC92tcO3lQV4TW#KlieI@JXc&X3}MUfXN?`szju^&a#FsK%gmE&%}`0G z>T-*h&)h3c_oB3v%B09QZ1e7-1)LziGph|;oZF- zNFk)0p~uj)19b@)>UNd5Uzwc3PXU*WQu-3I-iYJ#Y6$o}7;&E?p^-Oy*VjMz z=s(pHu6p;uL~o~cr=mm1H;B(S@HxhAnxfTM-NLn2R=0@NL(Qz5nAlB2S1IG8UcDaV z)93=DY*P7;i+YHN&HU@JJ% z(i<+K5rO}{udv~M*65Jcff1uaRtJtSXU!anZ8#JS4)-^6@L*?z zO?kz%RJuyhyj;6T|H48hmJIP)7FGT25RV`1B0rL!p|r~E!RnRqT7cH z3aw*Su*C_~9`M6({}PUWds0oOrA*#D`}uHK%;wajq-oNkm?(;wLONSqRFh&jT)W-> zs#7@yMm>oq*5FErhaRV$S7s}yo~Y*1nCv_1X}QH?VHMR%b~T~oi&;rmvLredB`sN# zVMTlf?uZZI$3N^5%8!NrV37fa5YF56`X`3OiQ_fNdY!cmslCLYLZ#B;1UQyZ8ltM|ArW<8ll9h#9lS=Q z5-LC>KHOrmtp%-Iis5ZKe>bO#O7G|lMq|+3Gp)I2E1ZJ zWM7fDtvV|Q;B7N-ck60Z#0l zGHr!Ou;AOfwGo5POnzr&!#wZfO8Lp=y)ks1QuO?(@#9z^XT=O>GU*LS%R&}*dRz|o za6X+@bU5JYkX`9iPCuT~l`#{{*m?7;8C5ysi~7wb{3a@)eN72fVzpU%fWJHmra<7S zuUolF&#IsS{pE*M-e9DtdBH3pm&|HFWmWO08azq^T!vE_%c{v-Dp%V9XNhE$qZlkz ztOn$cRf)f~uF|2H^z0l^Q4{b-tD691TjKD0q{+_Gey$J*@nPE~?Dj105BC3?>K}<4 zx&DR~sRB{$8vN~The%s1vurhUq)dCMK5aDD($;QMLq$TP8Ohd+3s%}f%ySFZUnW__ z{lp@PYtc)Vstj$E;je2My1&|FW%dN?Op#^YGkeLm!*+iwal(o(-diTd(SSPhMDymv z{4y>pk>Q0uMmi9#GPEk($EBeqoAni z*Zw;|p2aEmbcA85Lm&sS`OnK*B| zlX$O+ovN}ARdM1f)5AsR_jXE#y>zKfgUDuH-KkBZSJX!F7wluQ;iWi0e#DZH z2|Aop*s!P$!TF#U9tv$_5oS9DFMXM$&qk!$M+Fu;cWqf?mTW3C22Rg zjzxBtm$$G^7ddfOKc!*3lyCnyd$K$XpcQ-yXe6?Yul=kwRZX+j}QdIps`ZG6{=6jh-@l}am6R8y*|6|`l$w>x(;=e^zS z&TQgSRlfWXQHv2m?Uw$CPyr#KN{GJzfuKmh4~4$~kU)r^`JK<3*}dJpIJR*t0haD^ z^Y+cmd!P4Z-^|N5X5V??<5T8OugaKoW_sR_ymZJymA#!^`eyb@DmnhuVi|K*p&!mJD=Z>%u^x?$J6;NpW}^JvJKwUvr4FdRUYY& zJRM=(&k47mxWl%PFFRfkN#w4P>>k&_? z8_Mm|ql~Ze^L&Zl$4~MLT6B0cWSt}pLzZ-IM#*-^i-xf)9k(y5KOv~>xUuN;88}_V z{L0g|Z*h_B36yf(+lhp}7q3sJT|T8}Md-7g3b+<`en0f%>p=4p_&k8mgZNw`T>)1j zjD{OPNrZjaMn5WKzWm0e)Y$5*Rr;3*ZJGTZ@-?QUln^^yne!%u4yoy z1h`q@q_94xE0hx0SN8*Uo`AKe&eJBh1Il0GFB5uSEz#qzAUdpMYeq8U2pC4OBoGLl ziVsZZj#4vc)m+8u@$IX#a?;~2MH$iwq|NjK$sBbD$cS0p_H)C?Pbu2Y>=8A{JjQ1- zy;Su~cu6k}0*k@9>XV8k^n#-z&w-vwX8hLV3KiVHl_5_OuU+uY@k5wC$uC$eq5TtN zCSz?IQC<|P>ieRa@S6lUQhUs+VBh}&OGIzfQruPeVn`yAw}foj+}|!j@Ib!Ociz3T z?^LZwy1aw@{QnYF)4=y_^JzDbtQEm~lAA)Z_JaMhnl$yQ&w3&hREgXXuX`qV z9Hh))RnF&(oJW&!Kl!K>nn4n(Z8k%j6^5{b(h7e%ycIsoEpQ6f_=B}Vsb@vI+-<&R zi#)srpFSQ%3l)xQxe|oG9UcV4xN*ZKK=>=_y)r{j6hV{_{%nz|r13qNepi9@w+F5G z8?5-tgP48+ruWnC{@eaE-*yhnKe35me`S6QMw2o4g>gZJnw%kAqKftPTi2*^yY?zx z%{SaY_^)1Wm6U|_)4)w?w4ob{UKG?BBh-(fa=QVm@tW|hQBYY>lCRNTOI_a(O+dHv zwEscjkhz2Yz8LH8lmhu!HqfK(YdQF5#9CT=v z^Mi-+&wkOP=b#Jf)l5Hj)T0xMAG5~L6=61b92@Ee2x=6gD4Q|T=|vFOP8wU^GTyJbk%UL6yi= zR0j`%F!r~#(t<_68XFECsc;RxOl#QJ`w~RRIcvsyX=0mthS?Z=2G0*^x);HEDANr- zPm5NKz=&{oBMi2{&uRi9TDGMg6FRBU92d1cL1L)0j|78_JH^YCB&=Py=1O|{NC|_ z{QaYY{Qj|kOrBJ#d3P{Z^1OX5?}6~ION1$Y3||f04~`GqUmYFX503?0O2kIPyTi4T zeT(8|4`lyQB1_pf=d5A-&*Q`P??=b>U&n$ic~7q6-Jx5_zT+}+4|tcSYuUG8t>L>$ zJjauL7qQe4v+qYS^?0&xq2!$b-v3BZ91yAQST_#C|5DTx|nmZz2KQVE)5=q-~}A|{Q7z; zP9l$?C*ZfbqgI#>;}J^F*7~|}N0e;)^4JO)^1O&;RkeaNG{!muc<^z2c<_HIAHdn`o(^*mjYgmrN-fq0k*W4b$6pS1&Qw zo_?n1UT}jHU6k>?+Uk~W=Ixv)$uPh*I+MyB#uzNxZEz_SZezHR57Q*TXqoO~sl7x` zvE8f%Qm^%*Na0?LRUTeHp_i%G29I=h0OT+OWreQrV#nFbb zO)l)1PZ$%H5*9~^asqaP1=;m!y};dIJe<|1*^U5K3Jn-pFwN>&pLNqdwp*bS5*;_O zE^~*VG*yBY2Pu`ksaHf8r^;cW7tx^GPwZrTPOrGBiky<9rv;p9 z*+-&r#*PPI4ME_lJqdA_gJo6?1?Yy7%wLjX$x=UZ&|U)9DV$)@P<5&^jhA@JxgpRc zGA_F6_(IY(4iw3yY!m^(FY6^JBM}0w>FmO5ayF+Y0@FW4pyC%cK@-c|xuOAv)qI$I z5#3`L+z#QQrzxu7Ibk1;7>FUx*3X=JP_M)+#=)(}5Q|8+kbH?KT^F)baOiuvQn9?& z>3}TJu%ZT7J4*VUOrIrABLFxZT;jq!%5>FOy!pT*SApkB((@*kCrY{eCyV8&=S42N z&62iYs%Q2<*mt-Z2H32L>n=o*kNb=3^ZEi+JI**f#|k*MvA3&F$q_Edb{sDHJirJ3 zI}=3Y`b%<%E{*eAinx{l>WmrNp%X-&n?rlS<7lFIFuaX7pll$-?Cms0;-wzEX{_gY zU>DvKc_Qq=2a3e7MyW!k-3dN1BC`ZWZ?~JwCj1BP7uFvMZ7r#fPQ*0XPeUlU zmO@s=RXuL1sUNS`YE)`l7&2DtjR$lIL|uEZH;8C|559&NAH0q)shdQmmlrXa2fLE5 zqaALZRqL7MmT}=@T%A0|QYc6ZJ}Y;XV)^jCg0+X;C>T40VZCR9IOcBF zR%{l#nn`Q5^^tEAMG5}w<#=Gf9oSI3^n#E{f0#QlEULPqP+$N_Kf(pm%WEZT}no$c424 delta 471 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 ABLDyZ delta 2539 zcmb_eO>7%Q6wbz8{}nrtLLt~mI;NP~ZsLT$D2=eINNq}!HWa}DR1$Z0J?`vcd(G~e zCP?6LpaN+HxU+2$Cn_YA77kPqLYyF%9sr46xbRb|s8?X}k=EdhG)dS~X% zH}8G#oA>tO;oqkCRsOs<)ZpKuH~CoOazFdK`h$<-y!2=8+g|evy5Wg)Q}mW68P$nc$U z2e!ebC%rFl0)zVAo4EHyvREVgNxp+fmS}*Va~59iS}5`#ac61Bw-7!=hRG5cnde}A zhGO3b-23PJ>F@=Z&b6i~z2Q%AN$LqaF&sJ}XhInqSko=yU$n@5W@m~%9XQD4=(_<_ zpG&7%@aZ&4PD>?0*QZat4lz^(JyQ@2K{vFTWYjdQXO4r}sT3L;Lo3Cp&uM(#lyNBuOuKwI-B&LjTJv}Y8_Q0l%?oFg4oCBh&mYC3< z(`tAW$wm5$@BR~^S)ruEP&EkF&d55>v{eznO`nawS4PK zE0fHznDQw5v+p>&Q6L8p%cM=0+Yf)s4|+YcyU(?UDTq}TV@Ul>@mO341_K4$H4GS!~R%XL?aNiw5UQ%$ysfU@?+ zj8G`#St{^yaydIOidNX;)$BwQN!-@#k-wWs+nLp~wjDg$aLkLY*0? z7)2s<(M5N3TZ3a4r*#2s8tZq7$E_#X#o-@mth)mLKRo_d8tbkM|7#wbdWL%P9tctw z1+s_r**Nr(y^EIVZ|T<(-0g)lKR1+jngt^4Dm(KJuwoQ$z|ERz6{98E7oCo;fvxFR zMa6DG%4IeT6tFHiW2!_S4XT%4{ZRZ_?k^~JUk3mH 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 463d454b05220a92b973533c2d791a9e81cac5ec..ff07f9242bf4baad4d43164a0806156e014f5847 100644 GIT binary patch delta 1245 zcmaJ>U1-x#6mGhvZQ6A0q?Gk%-R)$ft6C93L=azOpu#|yPgZK1rn?DkQ=1f4e{h0= zN(ASP&w}6&g2=2OzK9M59XRpH2T>VQP#>HR{=9l_)3|J?d1!LZ{l0U)^WA&9y!pvi zcACBXAUeaIofsZd8iKf6Doi#C)vToE@}*{>lFN&wNfCahG_g@DR1EAnWMEErO+dyV zhQ5~O=+GP;nq&4&lwq9hAI!9iT=b|jkA{P~FRv*=zFuf(s)4Vz!`?}Txknb+7?}?7 zY!h$5cgYRzChNp;e1}ZBEkpdCnS)+-`X%1Ekd zK7Ps#|f{&pO)qr)%+bae`^+T1iQ}|W^YK4*L-H%S2_w#?(+iV3qUyCCsYcm zDwQR%VOPN0$0G-LY)TjSxcbh{h#P9MDr9q@~n$yA@dX` za1UsGZiz9)rSSr31va|&+mxK7HDUMVaoXB+%>mSR7FF*rDoTa!Jj!N$_QyQ6A1q+k zfX`N}hdac-k5M94@RT$+tN}A^mCLDrTm-BDgC_7DS(-u8e~)M;BAxL$=U{!JX(WkJ)Z@;C{9MT zP97|>aaS)+Fjw+adeSyZIpzpW=?O@#V$C$f7k_`qkI=BQk`If=WVl_H;0!#36L1x} z!3XhCNQ{bUe<=o!cqr}K*>piKx{icr<=&2Lc zA`@I7?`jRfx0u_8IBbZn5WPI4Y0Q{lnnshFTPoxjwa2NMceNB97@#+SQLju*gXLXw z++@YUkc6f&3G3o~sIC2fL&9!8E~4Q}ne=jXcUTSb z0Glj;?wF1gGPT#F@|MHG#HTP-T1Z1fb$hhKYQ|`vp({n-&k2euI>HB-#8Oy`;BjCB z64!m${Y`uiQuQmMZ4rymzO4hbO-~mpdQ%ete$R9gcEqd5S>+P1IWx>hHQHdpOhBlTo!U=3AV@e*h% zfTk*vJYVV-I^3+F*N9fVJCGM55gVb?*w35njO9)jn6zfRFkmnzTaCp+Y$nA026J^Y zCw1{RHbN96=q~F={t)t{oNoW%>${I*)*?O*59akr<_$aezm`|H=RgmBwY6A=W4FjZ DRFfw; 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 5271d4902048d0848b1666c04ded962107796a1c..7350c70aea633c9640aa0d758b5001a973ccf058 100644 GIT binary patch delta 1220 zcmaJ>&ubGw6wapEB)dtPR@2xv**K|K(rD|CgJ@4GQV?lH@FJwF$?l}HOOj2q8``3x zf`Yc7H2wiv5VUBE7jLylRn&t&K=dSaCcE3lqUMr$GvD{#_r7_vw|1=T zX3w!#jh-v)rK4a(t4Z*XlAoyM%R`Eu6XkloloO#m0dt~Kku4M$w-9Igj>Bog!j`$7 z;b}5FO@`G8}FHd51$C=UQ@u27@@;5dC|}$v6`pYtHOE1RXlvRN<;jC!>MfmQ@c#oz$| zmiepi*c8H??GoGLgq@QpBtd{{e2?{KF-$<@&|v`jQCtwxI^nxp9crw*DWJ5Nv& zwGoZaToJaY44TLLBHMk(90g~|6{};kq%FilD6d_L*cDg3=u8Cx~uSDJjH53VB zC^bejoo>-&Cemq8t!Wa}btr?v45-x0)frinKss$Z75_iR9$2E{Hc6}Fg>Ztl)aA6~ zmTpc;l8R*R;Fb0f@R*>@fL2hAnJTo@SsDgqs7p?aVYD7bTgNR^DAEs&jNkaXaj-*R yymWdR2RnW-%+JRD4a;r)F9}(lr{ztqk}pG=LMJa*r3aUFlqQc@oo^hD=a}D@A&>U} delta 804 zcmah{T}TvB6!z-QI5Vp&TbgF>I-8)o<4+~@7HC94KMFxFL9)#5Ts=FiJKN4|X%HEd zRNR+3w-?`{f?kSZdlt!hFABke?B_Mg2cZa}?yc4Gsh8oL^PTg3-#K@F4&L3R%qTbK zTCXct@QK7rc$uILiETRS-PzSM5h>r?XXBwR>g6-#gj(kHZ zve^;d51S-{ryKfO+y+upvq9aSGC$0qG#jslHE|uQaZxS^@uPL3X%!PqojQD$dzUj5 zZ7tTl{13h)y$Bbt*M&iqZ=Hk{#Ku0dS19%$6IXKwrDzPs1aFP#|FXFs{@y5*@w_~j zByOXaS?^=2B>@Wykv4KfE}~Z#aSurmWl@M6z*|jSVPW>ST-C3(EX*%e6Xlgi7UY`B zyoiQzSlxajnlh(_6sz|#ZZKV>+&w2#&7pp_n&aVU*?yUIuOfT4zR1W*%?Oh36^&ugC19!I4)pm;f0t4O?WdHyG 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 f812ea21f5aedaa7a11592c1e3be1ef8f78779d5..8849bccf5f404b8e5afc4834897b34ef24f5735a 100644 GIT binary patch delta 1188 zcmaJ=&ubGw6wapEB)dr(D`{w&G)^LvG}?*?qCH6|y%dXr;3cw6b|;-(HrbfnXp4#! z6fEpTX2r822!e=>|9}NSi?(?3R14NZ>%ku&dJ>(5(Oubkck@bQgHHvCMfYJ;s2&z_;EEG6rAbvU1=V)A(~3XDcgg+MCp=;I^D~DL*cjU)*VFcNLl@6de{I5Qk5A}07>VN_36?{I_kISKB%y+6a z{*7q;(kP)g^53xRo+N?qg!4x~(GgI3GDsjF34}9wQ7!7aT$W+Ivvas}EZiFgz9{4I zkn%&LN`#y!pVqQ#?9948!jm=n#_%~7xeQu+CCC#g; zcs(&CNs7U4!{?$DJo)NSe z&`OFiSA&+aM8lv2bo9-6Dgai{M zYUZH6@nSr9FzSIsO+6C~dX_{(f+lG2=0QAgFr1vx0&?;)dB5NHzV~M4*t33RMtSgP z-#z6PiQ`?L9t)0g&{*Iio%A?zCW8lYDG+@1JwQmHx=tW)gza%lkSk91iK4!V9KD)# zEXrBqmYFt-S#Zj@NqSnfG9B~G@;LQ4OQs8sRmoEq=R#c(&J>Z$Sv8UfQ-y0eS}e1N_iA0`U>Nq*j{XISZ#fCz~#rWzXgCy1J=eCgdG1MUp;P#Ocrz zg^0cd?AC6OuQD8lRT20Mo$vuyH9bCH7}Of4hM^}6uTsiW-5Jw!MbAj;sg#Zv>RYfs z98A1TUgy(10SY_%zlK(PA3i}gCE0oSCCD}^8Q9BwdV=5Ne^EqiM~TR4EJO<>Fx{Lh zR=rIX-8~V`MRXFyQhjf$T~F%jwxJIs^|cw4!^VBEfx{7_VNnW%_&L8Q`iZ2u17Ac{ zzYvaZVtV(=KiOqDiJ0Nj7A>eCPM?4;c)y{S92b14VX-rNKvH(Xs6ed~_3OLqVP`{u zjN|0F1hE@L&sH5%4Vf^o5N#u8r3|em!yb|(%Az1Sg^wE#g?`lNLVg2`g%TP7 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 4c1513ff63f8a02972e042d52cbb18e24b84f427..c65279c2f541076f666987a79d69b45528902d23 100644 GIT binary patch delta 1245 zcmaJ>U1-x#6mGhvZQ6A0q?Gk%-R)$ft6C93L=azOpu#|yPgY`^-tH!}O-)i*{lN(e zDiNGFJ_~|B2qLqB_#!$Kbl}7%A4FwLL49yO`19($P2;km<|R4je&0FY`R=`0-uz@M zJI!8x5T9YsP7IGJst9*W#YweT%S&28C^w7Mf&j~tupp?gDC&|@H<9m#-@Mu!Fz)VE=wKJ zp<2VU!34e@+|K;8H7BU%??m&rW(mcR_l#-vCJFqS&u#lkM?vX*eggSIAe<2pt3^$d zDiTzk3V7#u_y7+)VaDaM+w3H50O*Q&Uic+OJ5Aykd^RZ6t2OHQm z;IkbY(GKx%q%2ytQC`DCVR*2&-y=J8;fKB6yd@`2)K$n*vm~d<%Vz#LWuuUb|p(?pT z)L=9)j?&{q)p3U^Bbmv7hN_5A(_k5tTA<#nHCkmw1euKGSnU58>nsx$w@6tHABiMW ztEaNNcTRYU>SS)?UEwkCm=Fw~Qj+yn1Df(24gF=PiQO1q3m?U!kumb~Xhh;}=2!dt mx}~0xR|F?7&}If#FV-MMYvd}+bm5$aGUQgv3vC=LFuwtp2cZ-I delta 865 zcmZuuO-vI(7-i^g=?|q;epIA&Km+Y67%?WstH?nOCy$b5+a36JQ@Txet3W~m2@*7O zAv0b)ar9&~)vF-^uU;@DNFqi(m>5M94@RT$+tN}A^mCLDrTm-BDgC_7DS(-u8e~)M;BAxL$=U{!JX(WkJ)Z@;C{9MT zP97|>aaS)+Fjw+adeSyZIpzpW=?O@#V$C$f7k_`qkI=BQk`If=WVl_H;0!#36L1x} z!3XhCNQ{bUe<=o!cqr}K*>piKx{icr<=&2Lc zA`@I7?`jRfx0u_8IBbZn5WPI4Y0Q{lnnshFTPoxjwa2NMceNB97@#+SQLju*gXLXw z++@YUkc6f&3G3o~sIC2fL&9!8E~4Q}ne=jXcUTSb z0Glj;?wF1gGPT#F@|MHG#HTP-T1Z1fb$hhKYQ|`vp({n-&k2euI>HB-#8Oy`;BjCB z64!m${Y`uiQuQmMZ4rymzO4hbO-~mpdQ%ete$R9gcEqd5S>+P1IWx>hHQHdpOhBlTo!U=3AV@e*h% zfTk*vJYVV-I^3+F*N9fVJCGM55gVb?*w35njO9)jn6zfRFkmnzTaCp+Y$nA026J^Y zCw1{RHbN96=q~F={t)t{oNoW%>${I*)*?O*59akr<_$aezm`|H=RgmBwY6A=W4FjZ DRFfw; 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 a6446fac813661ce1a67e12b51cc91dd6bf69cf0..e52e9e7ceebd28db1deec314015fa801ca96c472 100644 GIT binary patch delta 1582 zcmb7ETTc@~6z-JWUO*_IfKY)cBv2Z}XvFJ_4@P5*sEKcuG;Mcac5S=Z-9{QOXw(PH zddsYTz*mDr>x1#dTfD~01BpJViI+r)5lxIw8a=byZHp!(_F+16=A83==bNwnHaIyb z92GAdIWJ7^>fWMelVr0TAI-+o1F{y45owe}V`?TEOQ^Yw6wl^O>K!(z-w^hYaouF5 z@pqBSDsn-Q>&nX(gxrNWv>pk(6YH`1B?0BG!efQi%7YoxbdC0Le7MwfwM7ONvzhe!oxn7^V7cl9s<2JL*0mCYt z?DwK>HnGU#rnBs51Frp8zN8=6u>cm|0qr-|?iK7F^Q@kS#Vipb_vkWO1tUFjINLLX z=`;2@(2sU=&|dCJWr%A~Hs))mz}T5k)s*GAl?^>x!Fza1Jf#t=f*rC4WDP7>`LXAI z@01rc`{bOBtyVjBsD7}!vdp$|n9h|F1)j*B)GtK}XSs?xK4=5BBfvJ7P&(ktDfs7g z1_5M)K${J|SyNMf^n>%Iu7!T%MX9|4?>tXz4wr=ME)NB@l^EapDadU}##0*{#j72~ zd353~oTj<{w0($n3|YqVCe?Hrep3~$GJ>HH9?PmpqG?3Ji9F8a(qnl^P2y0fv>lTI?}x*~c=^1e6k{l52p zzxO7!{M)>AR=)UZTB_k2W$jYv9PvPPrNeyE_7Gny>#ogrF(%dDu^miuHfdGd61~N4 z;nCO{wjHNp+k2o;9_6K<`R2gDo3Rba;4s)U_EX$miW|h+(hB@TdK?#Up13iC=j3#R zIe0~0yM#Hu4_3P5cq0FjhhMYjyeTgOvdbFrF!dh~MOVEGUL!CGm+&8{cNNqMu$~&) zK%eZ0=fFld4M{*8Qr5+)WKB3lj?+CFmXz!4Mm^O@y*?1BcvbC|??KA_?oKn?&th;*lqd~>^oxt|?ZEQ0sdc(Ma?vK-cN7SLn1wP zQ6WN)W$k)!?1}WIl*agbF4O&&!^f78@IhqZj|oYBCsq}I>e2>Ygq}Ya{Sp|Rn~&2=^II2GY9mt7MM#rL zNt{9h`FlWRuld^|L1>kB`kV^vWuY7qC`gOlqf##~kR{rVQQLm)qI3BLaq!%?o{=>p zGT0rQ@7bsQMLBL~rD)oxPIAwDB#yBXw@xga@zCr tERu-S*RPn14!op1bC$j=R~;{maglA&Ti+B9Y8I@aKLB&Ko?Cs4{R>KqKjQ!Z 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 aa8e69b9a3e3aa52ac2f6832dffa9e9d823badb7..7a598fe2e4f195a90d93fd33478c4a6944724415 100644 GIT binary patch literal 8709 zcmdT~-ESOM6?Yul>-A^sG@+0ttc5~t8t*0$J`}2|QfUN=YD!hLLT#AL&fMKQ>)Dy< z+&hU^Rrz>`sHH1`=oB6ipF%>B5PtyzL6Lxm!e0PLAjC5-Jn=jC&gaIlUB?f_(r)(N zIrrXke&=J(JttqEe*3>`6Z%gri->!{PTO|fAat2X)vOyj$&dvyeJkDgM*2p&u9~rZ zM}$f2uvATe!r`9p#w39d(vv=`JW^+` zhuHUXp52e_VcQe0T5K4}QA#VYVCqG-L!8`4H<8iZO%0DTkqwSy%2!m=Dn#HX)lA0u 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 delta 531 zcmZp5`Ju|%z&iD<&_vb_0a3U7qU2PU%*6Df#9Y11;)(ObF~l|=<78xH*?fWV1|#Fv z$t#%^87(HCVYU#=NX$t~O-WDHhcPDevZzbJIC^k~2T+|WP~B!HmMu(#P0)aAgfn0! z038^gnp;p(IVD5Rn{o0y_AOSiKo&!3QU+%aS6XIjPD*@IeoEz($x}2Nr_@f-$Y9N2 z%V3Y4k}(a&@3BhC&(BfN)m4}*%Vlf}lGFfd<^UR-kyxBrjHI=PO$($}YYNx|u^tu> zZ%XSFh{@6!rzcNjk(#U^As}@!LptMVhD-)?hOA$PoFC9RVm;;xj~XU}EV1QAlA5f? zt-v}JsQl1m0SSf4n%wHl(itnj?0Rm&$p+kVlPe_Mq%;2Yu;(Xbl~fj_PRaP+!;z9& zoDAhmek7U2)x(yOT9TNVGbM4dkCY`N3(x?W&5NY|GBTMmZeA$!h*_PVk%1wL8%PxQ faONfErh;@A1A`(!)7yacFktnY=R9c zC?Y5%v7k?b8qD8C+@zjHFHc6BAAh?HN-t70j`QG>5Jcz#> z^zqlf5IOG{heg3~Z4DY@uiPJt4M2ED)T(s988JHhvWgKG)K#{rX;u?J1XzK9R--8q-8KZ-}gK0(l0cq2NwV zXQg-68qrOndIrQ6Q+gkBfVnmXeB;cuF*+YS!d=?pRS*&u7!r&K*S&H{m|d+kyBM=t z1v1B)!7)AAaNz#{2h&sv?G9I*62a1Eq=)zz51kFQWnex6s%aP)hM_*Sc2t(pT;5c% zW#KeRl~Ar|%$3rnie$MqH2=g@1_7>L0zDR$oBBKSMc9IXB_^QSx?Wev_0SZ04nOUH znbHfTIqc{!SlFD#mRgPJT4;f0!xQlAm&09NZlnCFZPhpU7I69sES4?g6azD~1y4_B RKWhF7Ssl;3nDxWA$&f+zq0 delta 750 zcmbu6O=}ZD7{@d2Y`R;!vWYfYvRNj!+GHRp6$@4Irc^1k2;!wJvN5ZZHE9YPp*a-l zp`b9A@{Auqgx&;ozd$b@{01I;0V|3J?a7lZII}fz3*Nj8^Su23&+nOebN)qDU)P_U zIk~AnLIf<0WCa^o63pcIroY+|Ab6aHU2MGkkwyqdKhYjS+c0kw(KHO>=?wFlcm4W3 zf1-DRTX;O*3#$FgHQ9Gn_EljU4@Xb&bM60aGhZABr_mVmhz>v%`U{!As~H5Q8p!WqG#qpvH3i2q}pTaiEkr<}i&F=9oJtt0p)6 z)(Z2&Mkt@BZ?DI54_+_FH3^Y$*jN7cufBh=Og^oH1axwVuEZR0EduQ!L)WC{Biyz} z!LcaPV8*(R#$eN$w2LT}VgL5?o{f^gY3J*52R}hBzAt(Bh-ACwI o^!db&c6Lq5g04J5ZZ3N*Ux`EcV!Z 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 cd94b118c8e0ac3629600fe301a7a9cb5b5b7213..d6ed95785e3ab58e98d0383ce5a307e85a121d55 100644 GIT binary patch literal 9707 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 G)_(z0t_AG? delta 526 zcmZ4LzDtv}fpzM7k%_Dwj8cQ}tnt$qU)lrC=OAIKu;|&K0O`a{|j9Cc-A@!ZpGfFcb7Li{tZ)GE?(P z5|eULr)0=^Gj4v#p3KO|JlU6Xi&ZR8fT1)ggR_S#Ei*MIB|a%XrE<#TDVmK_YNu#q zux7Aju*Xixm=P2mvDomcpZEmRn)X0&VTab}hoLP*dt%pquq)uxJShrXY z3y3$Rbqd5(>5Q9`FNjG^mg5zWx}G7OaXCXKgE>RiFGJ1`=oGOYbA?9@lR*|3PyWx% z#fKuDI$4lcmUSvn*M-TBJPMO<@TfCOXKVwr^>_s*e~?O5;?|3%PpOQc_D2GjpaSPJS+J$H)RSLT0m*%wI+(XU5Hra*vqRWq}&A kB!NV64`*ItZYoH7F)&=RKoXtB8H&Il0?KdpQi^5-03^S$LI3~& 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 69f9f256a5780befe5f1172caa5844e8558bed02..b6372ead0b061fc0ec4975a9cf823a6c9a33cd1a 100644 GIT binary patch literal 8771 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 Czo~-& 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 7b2b7685cfb7fb1b2c19be17ada35aefb9202f06..733fc402bf0a2173f7fb75d8f760496c72abaacb 100644 GIT binary patch literal 9753 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 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 d4e808d90888c8847c4d35a5ce3529781a385362..cfa143457d03eaed5af27c7e767f890cb96afd58 100644 GIT binary patch literal 10075 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 BTUr1B delta 567 zcmccZx6OdHfpx03#6;E(M$yUlgvBN<6@V}{o@HWWWZ8Uy@dhK~*2ycG6&WoipJBET z%t*{hOHD~n)rT=A^RlQ*!8m$wh6hlcD^T5LCzdTtgiX+ZYlJgkCg^1r$CoAMWTs5X zkn?7oJdgb%BlF|}jxVgN8PXZMCkOHvO|IwSp1h265i1)|WMrMZoo6p&?Br5jdC3g64EES58PhZyr_@f-$YAX; zP0G*DQP9<$Jdam)vOK?-f<^{s4@YWlK}KS6X7QBCQ{XDuv_ML=CfD*wu(&cZFif7v zA~o57i(etj8OQ_LXb+-fGMF=D{W9eIN|Q3gdW;kvHB5#YEhO4H1!60T(#dr^@{`}O zu}wA-2xFGcQUW`Bn}EdRW*(`@r{ug9D}cuKu;(Xbl~fj_PRXhSaXC^_i<4pe$!797 zTs>?lsU?Y-Ia3lRFOs)pWSOkUBeVI3{9i_<^^BXpD?VaY?*wYhY6TL-J)C)oxv3!S X#lTR=0!efhXD9*#1Sr2rEt(MkU=FxE 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 892bc59bfdd198cc1867508cb56d1c924ce17634..8ac0ffb7d5e49f913f3dcc39db68b8b6c1ea0dd5 100644 GIT binary patch delta 1168 zcmb7DOKTHR6wYm)GkI3pXdg*$B5Dn7Z1I7Jpo`ifVu~P$P)U=?jd#W*Q!`Ud@PRIb zinA#(da(Duyc+*0Ujh9%W1xa+}-sB$7B2d zl{jehR0oR)Z?}yk5|>Cdk-$f=T+&61F-wWjF458*%#plYl66@vu@ND>A4chFZKVsc zrl)0{6k)Wzw`(_QgVbpZZRKQ>VkBr14ss`SQZBOVVh_749zs9aO?xkUA%wy|XdnGP zo26mux>GZ$V1vzj6DPjW2z?2XJplO(5Wx_oLPpc%yiCgNo$WA#sXS~n;!P$c$fkWm zSn(s9jk9n@lc_ZgFtLZe9uxt^aR&_>JcxQ*9C6?n4n1qBQ3imHJrM>3CDJ5jU%lAB z)`HNFaE_fT(DVb3*qV13Ia%0u5}g6M(Rhj%n)BH}(fdssX;xJWjT^b=KQ;k3gU2%k zjbK%$q+iv@iyK?GM{(SB;@uCuv7XCB^$TT+Wf0uQ0>N%qBJc&4mMMAJwPXREk0 zTb!xpR0+po)~Nr)m<~YmMNp!#m@D3`EI;~13jIQ8qyD>d#lCwPu*woFnjw@jMZzmI__q{(a95)- N_|251x+gq^{s1Uxf}j8Z delta 729 zcmaixO=}ZT6ozv{!2m7wW{pepB#^8T4I1pSvorOaD(ekPZfE(h-%1DS$&C@teSz0D0grTIfOmjudUTDa_#50yLemGh5MJro5=#izS@-9u=m*?>(CA zIXpIH4ecl4-0*maZ(`{|0F91IN&Xh!6wbzCFsY>>62C}I6rI6l*|6J7Oc-^qRjbUZ z{O!Stx57@a%Is3j6eai;KTl+c1;^aEy*q?Fb1&`hNJp1(%xL4oazc$#oq59+-lX9P Qs}|4Tr5bH_e)J~!0|dnKi2wiq 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 0027c463baf43e935b5dc51316f2b917c159ac48..95fe39bdeb5189cef73ca5422aa914857d099d9c 100644 GIT binary patch delta 1220 zcmb7DOKTHR6wV}*CYk18i$?lLI;mJ=sL?{Pr3iv(OOX}}U8aO&a^syb$;6q7Ha@^E z1cd=DcdR@AfJo6SbtR}P-4xtdbx{R%p)P!)g6Ga7i4_EAap#`7=X~e;zH?_i{bSU7 z!F#RRyX?I*zjIPn1aw%;9anPYw5VpXr;wtd#Y|SNWU_g=Rw?9^x`BNQ1`g=#JX+KY zV(6R8Ty~iY%3Qaf^)QUP@tJYEnN{-5lW>oWl3sQ^P(~`=OBW)ryTWvnHkTRLEkD`b zxXa%2{8t5w<44`(U|_v_Un+G1)l(^cf)^_q$MZa?a`6SuVIC=V zUNX)bN$kZPwz{pGaIfx1ae!j)hXuPq+_% ztmSbOcU&~Ae(-@Tg;Ph~;~2gV{QZ#f4pIU-CzNukDi%egw0HG@AWKG6H}_2>DMDsK z!xK`7ak(f8MYNDwO4^WYp$$j49s>n~ERLF+cxMZD5ODX9=be5(u#*M=o?HnI1f-bV zh(v;X=uMk|*Kp2zH-N-T5()1hp%{uB2}iDn#tyWXIfMGpOk`=IvVc?- z75IFeuhh!bdO;TWM8Z-1&m7APptB0SRdO}hM`k;G+oW3%0*O^h!X9YMBy%%7#Xp2Y z-6!WItzJcj^oWN30#XG#Cf$)UWF<1mxWR`0#`nlChWXj}+O^>sdJ4JH8Z4?FsN~9s WR;cigO7!5eiWBg=N^5tb8Rj=0E0uQu delta 796 zcmbtSJ!lhQ7|xfw%WurG_5*wynI7|#Vn4V}b602% z8{xF~RDLe~H;cj{dy`=uuzR_i5<{jkJgn4@d;nVb9gyX zWD?dBH{>Z62>6^M@CL^1JXHv=On?Bn{D`y3(a1u%(Wud3Fg9%9_VAIpjz0r_^lgVs zF=G0@Ws&_hZl52}(S&#VoX{D(N7}t4_V6V#1L(hJJ9|ZTh~=!{rIm)@L(ltqx!Zk3 z+rI227*bW%DdT(fnqDK28*Y^CW^2vjc3q^Aish{Ia=e(j7jr`ut68encnNn?SD8#I u8Sli=L&lzX>5&8J)CR%q7Cnv|T`kou0e0x8*rM^sfjoU0yXECZm)I|tfd*s% 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 06fe237ad721b1166535a07d4ab42d8874d715b0..8341d728d9f84d030e5b103168b0f9feadae5dc6 100644 GIT binary patch literal 11496 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 delta 1111 zcmZ`(OH30{6y;4j<EYO!zp!$n6ALU?9qZUzCN( zBq(>>n3!lxOwaneP~gw{0G$R^#&-7JWWJtm^2NRJH2-2wrozc&|`e zD&QGMh5%2z8TUSVkrg}+>E>B2Jp%!&)wMAa9m zy2kSkDsZhA-PU z#I;~geIzU!y_t9C3nCm3G)t#EAceYh3CjyB=nsI-M0BEXjc{K{^h(i^ pY40;CrOeWcswIb|9+?TMbnF!dTvZ{DegOtfRS!WhdZW0J`~eO}a3lZ# 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 0000000000000000000000000000000000000000..93ba4861484339203ce078d973a09a8ed17d473b GIT binary patch literal 13241 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 Jmf}|9e*g*Yg^>UN literal 0 HcmV?d00001 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 456591f5ab9a86ac390371b948ed9ed13a07172b..e7e737837dfd20689b06ef53df35d3fa78438757 100644 GIT binary patch delta 1914 zcmaJ?O>7%g5YDr`cD!CEv2oU-HY zd^7XSH?wb_eBk9t?g{Ss_4pchE;KM*uI7}3YG$#TDUKGE>Y{RD?Lv4bd)L(u1wtHf zgM2_{A?<;}ZIT5Oa)BET9j7Oj=^pw> z3rXkU2KNGa94hV1xMWUwN5(goC6V8V5|F${cj__YdK53247H>rF=SD&ac#=K618xrk89J@jlwy0y={uApJY40)6kn&FdF19bTs5WI5jlFN$U1z% zkCQ){9AWx9cK<8(EK>JVb*oP_z=B^+{DKlPNxBiTWyxaptfDy8HjY62u@Odtb{RrN zDdpADV)|57DYRjX;dZ^?C0~>elddi^N@NLq&FWeNzV=Ob4={H`>xc7!L3l`*Blp6( zFpksxN_epEF6L~q(|Qp!bU^c)A#|(Z@mQQ&3b*m0ZnN}8bF?DL8Fh*VdxqP{9D<|4 zWDnaKTMKQ9Rr6|-jcRbRSDLxi^3zSM`(rb4V&{dJ#wC%|yi%%}a_Xb@ByYob&)v=h z{R5v#qOtNZHYKfq_5L#`)5d0X$exuCfmsu%_28q)!rNR$b781xv{_oxpT%8v7l`M z33}U(Fr0|6vOs?zK)z&5_ELK;1IXxeYc4xz=`}pLak8x%PwPP72d(q73*rA1tB=$h&o_4m<;W5 zu!6SBT=*zF8~n^YbaFY9AA(OpFM>aGt#!QYNIGD(UtYEDXHDLoU^lMM&q${!R3sjk zD%CRHk-CzXvMW+)xma1rmvd4)ZZFRNVyqRyUhl_hdNxA`&w$t~MmuHe=ptzdP@uP>I zp^d@t--Mjohz;Cyrm`5Vr5Pu~Tgns_mP5xchsGRF>okrZ5z~)}#_7~XDmF*{1;J%< ACjbBd delta 1406 zcmah}U1%It6yCeDv;ULL>h5NfosAPCW_Ox31Oz3-#FCiMn6!n0plN+B zcYeO_oO{=M-hP2!;NPEVT;k7=IQ;62FMS-g4x8V(330&>sjmSnl8XjGP^RL5i?t7#qM^Uxkl z@M$TNk>F5GEa_*UW7$bXV<@?h*Gj|rsnUqdARzk_p1{O(p`euDu)jg}G5=V;q!bM> z(kG2MBSm@r!2gvI0~c*Dy#->Rliai0f12JwPFpyFnC_HP#wo+fiZ)C1gR~I`1i_%_ zf2x|qbE1zp9Mm&nV5DmZY3{_T0xZ@f;c_tT4KPqb^+0?03GfIu*LQG4)EdW!eE>P7C+zH8oEj5Qd|Amv23V-0~CU*a)O;FGLyPi@X3N7Vx%2X+T zEU&zwJ>xe_2HW!Jt^W}XS8HQjir$6sP#ho>A^k`*Q$zvP9%QmtL(^O>BlYQCrFfiX zwY*k6!9dmEt&U>4Icswls)QZJimh?=RZG?Fs&y63eykNq4{U`p+e*2xxo#ByNjEj6 zg0ZmJpu4S|GISyv?B3j{tS|@X!$UkO50FJhaNs)TIA@KDxfs!3Y`Lj>mw+5@ zuSr3D4MS|0&dX?*Ve7Fvvc@<>Yz`l=#OC#;T|mOkd>N~)vX0@~u*<2QgQIBt636@n z_AUw6@U*cV@JZxFa-HRis$ZL$?D()#AIQ<~JuN4uv$>Wu9F8U7ox0Po9{X&U?LFtu z1QKyMVLc4$PkU2E%;FcY`2I@qQE0C3Xu6M3-Shf{TADqs80rJ|>t#=w{SWi?&kEgU zOo9fP&hUACn_qY5lu|ZdFtTvFz7wBCe1^(>4G#%vE%%ByxHh-b;ZU9U(RANbwy3at a8eVvnInHXd3Gcq?$E2OKul$O1g!~O|F2f-J 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 1f55807f4345520c825b7eb7ff690c49c5ef1b93..f12b58bbcde0fa9c9b1e5d4e96f529ec30cfbee9 100644 GIT binary patch delta 634 zcmdm}x=NF^fpzM9k&Uc}7#W#1pJ2Si$hctgY-U9!LzB&Wnbnx#yvci+8yT4s7F4F>Co3o_ zLc&w52d|peDWFiykj|1~WMC+se1J__J|j9KrZhu4O9ChYbjKu+JD{$XC`|%;W3oDz zn@W};P(crSeo|IRWkKqcEF%z?BPF#s8Nr|2!Id%j7neCOE$nBL+3d&tmyt1jvk&iM pW;I8k@+>!KVT_$@ z&mpgv!Ir@uJ0)Y9X5*CFDH<89Jw`d1#U;^cIr)htu?o7n3X`~0CO5FLsB2_!_Hd-; z7GxwAXBJPHJO!?SR|`pp*5m+AdB)R|3pll;PG(4F9LB%aHRcP0A4K(NK8Q zFd1m39ygNAWJVqZ)~P_%hbA9jQ<(ghOPyIdV+EKU%q=*XnI}a$<6jSZeo|IRWkKqc zjQ>3xDXGQDP|oCTo(!%Ywv^P8#LS#2iIYF`m@~2fHOp*v=l#pbZOX{N(8HHnRFq#d yS&(0Na}xhCW;K4GU=}x!DDL6ROUz9L8C47nfGm(iXK{uiFf6jTH~R_4FaiL38*~i- 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 a4ce915a0dd8088ff2cb2435f3fc60f5534f9830..533d8bcbc9949ca068a744fbba0cb6290ce7937b 100644 GIT binary patch delta 1906 zcma)7O>7%Q6!vcH*lRbW0oPUP#Ib4GI4v<$iqsOJDu*gUm{vl9TPk;Lk25>+?z+2c zh!2rlq)4qaLV_7Ch$|8mhYFc9;#81;LyO>^6zHi{+j|9XcD!pFN2Qi_J@bCQdEa}p zf1Y@@8oL(z+&T7X>;`+Prn8$ByRlh8^)2Lb9KX!5Mx*beZI3g~o~TD+5zt4zy?0nq z)ZTsNp`zSkcP9$!nN{{l{G4VY7r!oE?5*h1OJY&-Ul(E3+lf9>pJRS})VyT1%_?#r zU4SN6R@qA8yN$1Kt{iDs0a>zPpk}>Nwd)3DdH9t|N%;$oGF?Xv z!!kU>w%B@N7NrOKO4D$?is2!1IMkE~H5#TUO5!1B#BKuYWReW^*SlPz$>QJGd)lct z@8WqZfKTHr{#Ak>W9T$wQHex?S~h`KM{oAktD;K=`V38vpSZZpLkh_XgkpQqxie8e2~}GiPUEf4 zil`Sy_yo+!5Q+HiX4{g{^4P7ww zEk`$H4o`QskjLrE!w1YsPJO5+1ytE4X@LBygq&Xt+Eoa1AcT(H4_N89=mYjdSrVO@ zfX*Zz^gUD1oPCe5Kf6JHifCCGZO{|r9QS+bfPOeS)(_IwZw9gip#zY_g^i$}yr!Hz zK#VhVW>6GA$_VA#;yioN>>K1PtX`1uwr~Q*yCLJ`g76-u`(q(^ak|MnV2^i68UDz- z;&o93nEns;Q8JUcat2C$6)eTfhinR=3Bvzn^NYTx&!+SU*?c8nQ$&+&hPuQZkR6rI z3te&qR&e=zCN3X5e+lO9PiBYZRCVP z%I_hOTh;M`_y81O5|6{fe$Y~)Khxso>|^ln;DvTIM9kh!ZY+}D!Jo$MD)DEK{2{i9 zI&y1+J-d~>$`(`WiYgfHT~9qz)Rfx0Hnl%-@-MI_`vL>iEFA_ICfS9L5fO@;E-nBp LvfsNgv#IeE7?{YFSvTT0N_?D4z z&*WHkMMjIs4eS3FpeIa;Q>_V3RJf_kL4W`VH4oSVVa7%Q6!vcH*lRbW0oPUP#Ib4GI4v<$iqsOJDu*gUm{vl9TPk;Lk25>+?z+2c zh!2rlq)4qaLV_7Ch$|8mhYFc9;#81;LyO>^6zHi{+j|9XcD!pFN2Qi_J@bCQdEa}p zf1Y@@8oL(z+&T7X>;`+Prn8$ByRlhm=r!bW9KX!5Mx*beZI3g~o~TD+5zt4zy?0nq z)ZTsNp`zSkcP9$!nN{{l{G4VY7r!oE?5*h1OJY&-Ul(E3+lf9>pJRS})VyT1%_?#r zU4SN6R@qA8yN$1Kt{iDs0a>zPpk}>Nwd)3DdH9t|N%;$oGF?Xv z!!kU>w%B@N7NrOKO4D$?is2!1IMkE~H5#TUO5!1B#BKuYWReW^*SlPz$>QJGd)lct z@8WqZfKTHr{#Ak>RSV~tiX=}5%MfW{7WF9^S*!g;1s2j?_b3CLi=N5`9ef8SA-sFA**g! zTa|4GHHJ<@7L`aOsAUs)b@XOmy(+q7pwH0s_=$_lJfx7UKq$5sojVitlTfwQ;WXar ztcZGXgipYnEWxvUnYZz2a$020lA`dst<9zABtWa%HBQg7FO~CMPBmX(>W0P1IWVJf z5O|#y;xy{Vq$v=f?N-yM86Lms>p#*R3zk}|vu4`$b`x>DOB1lGHFekJ^w5Uw)X)V( z-*R+Q=J0f93wfNrJbb{M<29+`ZFzV&OQeJ4qj+iL&WUuEZ&w LBKy4?Gn>l4EB}(- delta 419 zcmexs@eE7?{YFSvTT0N_?D4z z&*WHkMMjIs4eS3FpeIa;Q>_V3RJf_kL4W`VH4oSVVaYAW@IvC+$<^jh?$L>k%1wLeKMn@FfWMNS)8E= N^gtH-W<|*uMgU+%lG^|P 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 a777a5ddaf502498bead924f6078ae7aae793511..cff14e2acbad9aea6f9a93dcff088c91ac645002 100644 GIT binary patch delta 1854 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..37acfe66d443b33bfb2dc3bc3a82c43e7e3000e1 GIT binary patch literal 9098 zcmeHN|8E>e6}O$-SAUD`BrPNbZvHU+Zn_~Gk@X-B zlE`MMoB@T+UC)V_pWaX95|Inni(A?FTFh+W2L5O`ukb3b-A^}oLso<yH_=yqc!QX&WS**Dpc#F$R>ZmOlLh8ASOpcUCLN5b!{hD6~}1AbH%p?`l;?DVe!(j?7fI}i6)UXVfCmh<;(mM zU*MPd8Gc1}+dLSsc9i%&i`ox@Xs>MtgV2gis~49aA!yvTLbu&xptJ;YO1&*d>mzPW z(M~IhvDl~X&Ltf_BP*`&uwhA~TG{+_SR7x68lT4BGx&QJf19*W=qhs6@;0C%*YCj~ z@;R;fjZI^tkaxNm#()VPIGd?__F<$WdscTvY9;&&e7n%qE`JIZ!4l2_clMDLY@la} zdd%2`qD2yo;bwh`W;Pr*7M5?bm#(#THWiA9%Yx!U2q$ypsOA;9IL1Sx?&4%?1~bTg zSKC<2ZH;MoL(W6W?GQkuIpiWusSu^!*_Z_y!-01r4lQ!0I)=n7+GiqB?YW(HsG6y@9lL^UgZZA-V>#m5 zjwP&EM2SsmjN3prS0AnL;07TPi12$x&^5G0TjTUCqSqg<(NpfFPu-nW25cw=PinWC zlaVuDl=*9+&$my~XPxw^m02hDNA<|>@o$mRzFjDd--lmlnO2od2o11@V37x8luf@- zhKja)4!6;mlj#Xr%FKjMb8_+ZoPUn0qM=a0_l{S9ob^+yj2c?$cd*i-()fy69ZejB z6g`5dEbQz{`K)*4Kxvy`N3jkX6@L5wzqxXW(M_Eb6(K=i?LRfyTO4;t6x# z@)9;ar(BDZFbpDL#se!7?<4^Q=|fuiFSICZ%<0PN$-%G>!U%Exp@bm_Ggr$|Q{sNp zqPU6O0V+;qldu?c`qE!}1X`XvfB$fVhz3;dp`qB!4^}BxSpj@qdqf_5UIo&OyDu%hcPD z&92Kl$DD{frCdn$mlRucWkV-}O7rzRoBZ%KbZJ{si#&6C&pfU@?-r z6F3JY;pB@~ujVoB>Q&>0(e(mLY#G?3knCAr)4^Bp9Sj#WLl{#3<;t?iY}w~LcxM&J}nG5qD%iB8lg1-koRZtI-2nI4TaAeZ%@xV zDcgK|GP0{tSR{{wK$PP#P@fiAMVsofXlXOCA;k>B-yPW+BF&4xUy1dwy#0i8Pzwsmqcme3H$ ze@1LB^*_YFlM*Re#d2_VNaYtF>llmVMKKsyuAlaQiP>Zg4dNg~I+Z6*^Jrni&~t59 zq=$;&fff09Y~bXQC11#pupDiXBe@n$BCM!~s=|qCq?P}aR<4nH9vXQ6AsU#7yENob z4e5Uw|8k5UiErm7ftJU%qaB6Y{hCBO*0vMTcNEtaA=0l-v5G9NY3WZL*J!~%J_YwI zuKnl~q&lvtka613)+|EXiIVd_=h+#*l9e8?)8niVx#i-6tn8{|N0wh@Z-pWL^C*Vs z|BI-zq%cF)69~bh&F-xV2wv?P;%MSzxUpdwVSw|zyUz@DUfL=XqTlsZgX2cJ=0+!Y zVztjA!G?w(L<7rfHM0p63u5cDo<&TLVHe;KMpXo3#1|}lqZ0^j*cNJJ**H{@d;vxQ zodU{|QTU{JNR$}oZ^P2h!ITk^+jEgV=4Xdb6*5vtfw{`u<2e75Iq=GWlW)S3sF%Vb z4_w%jyFG3=tQRrL+zmU4_Eo8E3>wOwHV%8-0up29b+=s{8l$Yz8|TLRA2BZ!vG!Ps zxLhcr|8MwP9+_qR&d?f!9*PW^w-*h?oa>J==QM{mRPwustrF!7VRpR0-Yf0%Z*4-P zTeof*-6$ALufG}YfXX7qYw)Wrb<{TXvAa1ruE$V)7STaIB0q(hVE~KiPx3};SA&&l zUs9Y~B!Eew!?hXe)xKkPQKO7E?%mtjGU)gImT~Xe*dx7BD|*!Fom}NOH?A*#M^{LWyC3m7Sdz{iVnz3D91DNB9 z>X@u$&>XMEWfir4oA5urg*~GXU4t3N?ul@AyR^P;gi!$0#LO`|2Zo;v!UOO(*4J|< zJCSB2>C00jEvGrTc(;#=clBYZ!*8*k+d7+?Qu|YdKb0g`^-afQ&CdyR&iV~ZEo;E3 z%31s0q*qm|F1^=$I38Wl9Lk04k?vm(@V@K^S?w*(nvhWPTS_jvP|C8DBB_yUUAimF z?uNFr^17;2l4i!cGk1ecvx^^MPPx*VY~fq_3hDR*@96%FZ_(IUxrE(;ZraSzz1l+F zqVLya9i>2lqYkbSS73B~FNm;06-FnO)vr_0H!gzT@~&)T_g|=B;|2E)h>-}&c$wGJ zpjPDX;kB8)CXt7?MXGz!eH`^-x{6kzTMRN!h4pOu%(Va(V zW*Cma@{(?09wSu8Chd==IwL`3%$N!o7p)bCb&?+VEzv=Sj)maMtN~gYB0{{SMWye_CD#uVVKUzi=J4|_1E?J2P%%Vxoxd7FogAikmfCt5@29=;7u_T7ess-BhV={ly6vixZ0u%Rf zpgM=#%+a*gjhjz*~H#ybv#-~CS@&m2)-p3u$UMwpweP6UChYLu1k3a zy!0YHVG`W>sZuCz48hHT$>(v+4uk7gKy-z?3dr$$0HWs(a0Gts+_Q2iWT8ptV)!Bg zEha&QAq3tbJ2{7Zk_!>WH`;A9$GG968^cx*_1dYtK$J=VP@1T%!aM@zsH1)RnVsv< z=Tg+QC)iUrN=ZHZ0l#NGD#OYJbsuDA7eepho~XDVGLcSMnQE`t90hWuS&{ZP zXj!Qc)O$&YkV{`yP~Skv;=m!$6WFfb1qSlKuu7pKPC65G?ts9Hnz!~w`bNQC3d{^T z%z+CZKm^WEWH^);Y*6i)44Z^!;?@}#uJpZv_vA{JF9WPzSBJGjd4~D>^vwiW*Wm>I z3n*gGP-i+*mo5}=Rv;9hB@k6nK}Ri>zQ7DL*<0}NJADhulekYNOW$P(+i>S*es1ssz3pr^{r{ylUXgat7 ztUc%i-Utwi^!!BQh`KSxv60WJ2Ca_qN4$*$1^5e-yt1Ad*+dAjgM>~nshqb1&(o)8 zY$LT-vi1+5hj-IA;10L~gJVIhFOKTHR6wXcaXeLP~CAANeCKH94PD??26ts3zm5Neb)P)!cc}%=>Niu0>0(RjO z6$|5{+;QcmbT3*X;zCpe!3WkKpjB)YYDFs|E((hG&Ld5;@NQ=Az27H;|Cz4mrq9PRPfa+jF6`rvw#A(lpP~HIF(E!Isz5Bp#tA!5ui?r~gl7{WjbwxAC zkOTaU<@xWlGZ;DCOdu-+;!&AQJ|)XyP87=Zl%g2;qE5X_{LY&K9eCKci_D~z?Z(r- zUT+t$*?(D2-U=NXQVZ&qc?QFyH z`u#7)kbzKmMbgSR%7(%ljbc^TKZP(IKDdQD0|&W95}>-JG*Tu@f`*ppwmB=v8FP=% z1xq!w#-Z42Vh$x1JxP^k*ysU>WZt+Q*BjoFRXgVcfr zg$E+@dg;juf(RZYJ$TYWRRlo~N~IR8KWBeHLGk2!jiv47G4tk|`R4nWCx;&GldeiL z4?1p1*U1h{hm#R#8D*eS{~2?_V~BHd=fig`g!t>LwhR$K^lWVPTj|Os{Q^-|}s^>D8ufLKn5b_KM6`d^NdF8f5c-sQT)NACU z_*Fmfd<9bQ24AR|-~nA9bE+j>&t&m+Ae+(xY)#=)ZHirCS&-=dtq7vw@4x{0D`xHf z!)N`f<)NK6XR>UXHG25p#+tP}ehnHVh9^S@$u_(hP2ru8rnHf!CP>;5{1i?nsLa(C zodSdVYo-*Pl3|sZoyOzg!(<+(!za2!q9FyN&^aU&HCTzZnG|b5J+dgIagdLLe$?=E zTM{Q@vX5)V$zY~uc~f~wY{|EOzpfQzp*;($n2+|7VZLnNS#Fm-w87oP@!z-NVZ$r` zxaE2c168V+r3x6XR^$Yow8-g3xGB42_$HV!+S)BG zb1h3^ed#Ta7KBdeF^>kZOHSbPHZ8;W4BF!4ZSQi$WcG|mm7?hu{^uBtR|8Zonx0{e zGXtmMNBGGu#1qZUFG+o6`)6OzUEX8Q@yDfV*(jN!)8#i{i^2^Ty7)QRbM-HY5%LcM CF%fV8 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 e781e168ff7e43456805228cb0fac29f208f7ec6..065a3dfc80a5fbfd6376fbf4d2073b2279b9aacc 100644 GIT binary patch delta 1252 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 literal 0 HcmV?d00001 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 4a98647d6bfe8a129e352723e94174b3098be106..0e90a56a527e3442b2598b25c7e9ebe4a800e0a9 100644 GIT binary patch delta 1365 zcmb7E&1(}u6wl_PyGdGGC9SPV+N`!siZm*SlwS0p^-wGb3LaY0O)_?N$?k^TO-&Bc zdJq)npw4)+;6)HGD)A(Of=~q&{5X5iivA0Nh`!kmn?ey>m}TCZ_ulWl_j@y6$2Shf zR%5r$4c>@dq5YB6vH4QNXxOMaUs^_%qgIg3u(-f*oJ7x{ro$*BV>6~zLB~~P$x`&9 zg>-Wng?zWrqfdJTA>95Ugu}u^`ZFSj4;`l2=u})sHa@_A^r)2I!8b+scZ#c4rA+%p zv@h~sE@>f5Z%dDbyYzH?Bu{qDnFdPa;42mr-WR0aTSezpLv>Wspbw-WoZ6I2HPv=X zs)KYWZQ>HU$O*By~x z@nd0~W)ri$9$pui-oqIj;V1N3V&@7D5z$6Sso7=+F3C*m$idT#Ra8R`a=Ay%MZcR~ zeJ_LV_({GAWHPwDbFt_;7Vw9^mi;T+ntA{s(p^VJRW+7MO$(jxNKYFTLZP5DH6Y7U zYTF(U5TLrFg2Dv*ONTZIL4c9Wp{N_4gzGIv#CmIzm(CC#gE7y;npj{BykFbTG1FRs zd&!ARl5{~*RkOm#33^{RvBF5)Rp^RpFl`FVhzJU&RY#0O-Iyc^3e>FE)Qak`tM2&) z#WG+UueYXkv)ZV^^jszqNR^sm+l+K~-YyTrQLH88Fw)am+fdWZa-3)Bk)48U_j=jp zMuUmt%3)B#(0vJL@Cp1*yTW-sTN2EccGmYy!g%=}?u7LP6UHN@eIscdgx#JnvZD3F z4kqm;pER7E!^3j`_dS3kX<5$IEfd}ncvy1fR?cYX^%k@;C(FUz`KOJ?AwaeO$Sx~* zgkMt`xY`GcJ{Oa`j1<2jeh%(!%Qnhx3G_)~W>mWlzC<+3n#+)OgNsrX*_BP1rjt#& zmOKd$3ozamx_=46di!_JMr8aBm}_esp2Q6W*aezxcr7%3aMi{#WTdUNrCsyFAFTDz A1^@s6 delta 417 zcmaEC@I;NZfpu!6@I=-QM&-#D7?me(7KAW1z7k|)WZC?Ok%@`%@Z|r@ii{SMU$9#U zW+djMrKY5(>cbe5H96F!VH`a;!vmcawD7g<_#<&%#<55c>@c}M4{C0dj3 za!N3so;;CRYVrnl0oIcl(iumgJRxT3j6;(buq#Yf=T--@SAf~I+=7#v_~a(<;&+qI z_|?OnpOjTnSpc-_cMnHOYH>1@Gg(ETf~$uuCAB0mGiOTTjHvl=%e149-&kSOlq%uCEo1?epY`XCD=(OI0K2=q)A`(}3W7)AhH`H(^Y 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 0000000000000000000000000000000000000000..ae074699a6cecbe61b5caddb9ac47e5a4939d06b GIT binary patch literal 12835 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e931104cc74640d2755b1dd53a90d2df2a096e3d GIT binary patch literal 13334 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 bHC(jZo)a5{nE~}`7({j{FVG$wciaC3)0!
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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c648a51fdfeef576a9d80b83e8f8016eeedb2054 GIT binary patch literal 12548 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 PHA;4IUZ6QR+^zl>Rp9|M literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a98f18232506d4e7689be093ebecb025e0002e79 GIT binary patch literal 7880 zcmdT}-HRkw6`!4t?&+Sdoy}$l?#`wc*`#;e>CWmJWr!Mx5#o{|#3d;1TB)wO-M4zG ztIDcdyWQv-eF$dczNN%JLCBvV_!tEBSx^yF&^!n}28m`3kS``h%p+8*)WB!eymL^4Tx> z;QK|#9E9em6ESh$c*sJ*#`lfDcOV5V#meP-Y)m4}E?7txETjwGO|;atz=Vuouq_)# zt`uLAwN#fwx$HU~OAh0nDVwGcq0@^6Y(P3MId(+))h*YIB241ExY5S4#I(5Pz$ zPItgSX$oeSo_1_)r>HY+wbTaM1f4K~+Sl$b#y!3uR~*k~HJErq%K98L%i;%I=5fw+`iKtzj&wX zI=yb7rfIetIfCtj`H?wb88o}LDa=TOu|*b*x(EZV{&j-M0YMgk@dhow-_maGROvfJ zum8PHzh+&1?d}ET)rKh`2H^DoDzKq>-7gDzB*N6&gbe+W&-MW7-xK!X23n3%$Q{ zy591FmzZTJk%Hfbf@7q>3LeWunI#^AFoc&L>0<%-Un!;N$0yG2WHg0*KRR7Lete>I z?>~Wb>`XO+S%;Puy<}28ME-~E6WJt~_`M;Hw4@q?wUKYfloy{mA+h18P_diH^>T(l zwDx1y)v((wKbegP*))W28NiB&68@8EMzg^Geu86;mT2}f=V~Rlwr{F*@e1G7n1)GS zCby^<)alOhJyEU#%Ex$vAdCY$;AIGZ>?=&P1ZO&ZQZg`G8r7XFHO?a`5c1182q_&@ z1m2(HZ2dn=bc--Sh29NjMqr?P-_q?X?bCsNb3`{M`d692;nIpiM}~Aef}s zXg2ruR31@F4piVAyq%sS1BS9mgpqLEJxQZ{hYlqizx2w4_qf+vlsss^W!x}Ntj$Z}CMa>ZYSAJ6dEUU7Vm+U(zp;3Jo z`#w*cR5g530aQM4Xx|$|t@oqtHRcM>mG(@_*odw&rys1O=cfxjmnbPUi+iit4Xo(KM=QuFPn@DNCqcgQM;#hQsIZm0R=a6El!j1XqH9 zc{WO3V~mSm35@dE`~;@gH)P#K)(K6wv~>6_Qb8x|Q#LQ`_Rf^LRgksivXV zO!jp-QYm2weUFLFmEix zHO#Pa;5wEgl4C{i$P7LFY~Z?)7G9`{pqRGyOr1rW2s0cok;qeQN$Ni$^>suM45Bm4 zP|8b$m~>?marh#J8FFUw(e_NRW#MqblfuOx&=%(njXdv=9zQ;Z9%P=c+JPIbrv90UZGk?#e(J+AYp9I_J?CX2#noK5Dq&$0;)*nKNmvs`#njclI z+xm#9=|11|9ohDEo_`G@$~x}RD$ftUOheUnDUItMDtu~G9?SLgC-osG7;kxgdK-<> zDas(9S8`E{H8pS{ncVGDS2^vL?&FTIuj}xARr8<+l2*D^!r5E6nKeae!zPTelp5of zZm*t>!Mw}NZ_(Nda?^@K>PH)S_jx^=(Oqb{3ONO83N+!j0R-Ju@8hz7d$^s*+FPa@ zqbr-YnYIpPBkdCVVS)jgZY&b!D8OJ%Z-Z-)cZ6Xx9mb)H(FXMisB2A6vE7O`tGv|r zec}0nl^))`AUCL`4}2P9n01t3W|JCzfsv+(2rRGY8Rjxd9Fg(J5!_H!2Smn>>4LPG zekj*N7WknsT=tN;$=yZS}SoHTlyRVu$SE~;V7KVOkaMQD07Q)UXD*8Qg%a28s z%ZlQX$la+YQ!Iw>5WqJz-$I6L_0{Twsm1al=@7wC942yAlXt^4y+MqAEG%xLP+G*h z7x`4kEI+gjn^7%_ZK!2`C~F9nK6+QMh+`Y*4)>igTIq7rjD>F$Q*zM(s5We*9U})G z467z^b7P@ry2Nlx&A_@|MD8!9f{4YoZ=e|ss*5Pt{D>Lll?o*my7~@!$_k=ehV4XV z&m~1tDeGB4@LO^n%0vhOQ@ua}YEm+z@3>G7?h-DmYvZ z0nu%WDj>%j0En(LLMi$B#pmT_zygEnOT;3QFC<4P9{}%=oq|I?!-WWb9D3t)9G|)AGdxYx2vta+m3wL18&9HAxv8S1W{c{<6>W~v;k674onCPoL z5cXXzMlLpM2(yPMvIS4>uF73ta%AM;nJZxE*8s=pgikzSjt%Y%xQh?)yX;b*L9Rz5 zG!cz&#)#_(hI&ek_0VvA%S=tXYjHG=EI3}r8?3BMh}B1NfHX|6`qcZoG!GmDJ-+35 zePAF<43{WXL~(D5&KVJSUEkEvNblW_5@2T3V>Uu~0ueYvv3`td9aKjK!@=Pic;$k( z4fOWyJ-MB}R|HtyzD{e$a*25l>HVEt)#(KB3n=0oaS$BB&{qHjoNWjNXbEIhG>6bg zpx1ozQe~DpX=)nW`uTwFKJ+pWqA zFY#Anxl#6>Vz+_&jeP^6cqCUfdWg<~VzRV}(y z;g5V93QF)#PxDHjEXXEOh~>wWAQHJ|`K}8~!=^Y!>aV2p@52u7CT}7f&?rV=!K@Lz mO`-_ClxLF4^jbcxe7NR#mK)oInE|b8+LY|lyr6Fao&N#^O<-pL literal 0 HcmV?d00001 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 316c93e38be1dd7756c83dc397e33cc14407e1e3..d5aa87f16114443911b7ea15c45152cdba15b34d 100644 GIT binary patch delta 1497 zcmah}O>Yxd6!jZt{577K*omo$lZ+ivr6vgp(1Jn)`A~>Zq_ALv)F#1p#(gu2Kk!Tt zsgkBd0u(d|iE9=pkfuKYS*TqgkdTnrL?95Yx~QsF3Sz~IC5zrSGjYa^055FMdFP&c z@455t#y5`!`JedPhuiP-PYB`Q8F@@5L2y^e1YGv-gFoHl;%VAS$7r0oX`8VEJq-!2 z{|KCE*dXUkN`T+r{4M=%o*tmnJ4`wSqx=K%qe+Q)TKGjgy97O+0dmvCRuH>kVs|}9 z$%cu&^Bm*XO)M?OMQW>FM5GM=i1C(fq=blF5$3t#y+@uxr*A|YrEPSIwoec|AF7sp zjfDJx!YTfBed$@AL&i(^&HpRef>J>0R8y(6HlyifrSN?!B@IZKVsWlpDwcGmSV+$W zBuRokVZ0EiQ14WQ`i;=6oKp%4JD!<#tw3WS$xND6+^JpVMk=`JAGH=-$fV3zD->?g0Erm(Qg@(v; z)^4rR4WnszL~ zOCcJs_qVRSE@p@Lf^8hj4%|q0!UGAObGZyJ_Nyu)F5;;n^>MxNP#~tUY4_p3qA8f%;HH=@H;V-1~G852n)u`-XRig>qI_5d5 M4AQacX6!8a5BGn@rT_o{ delta 1010 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 delta 2617 zcmbVOU2GIp6z<)hw%a9bE$w#O{hKYc+Ya5fmQbM}ghYY{tb+KW#WFjcc4j*JLuYE1 z2Ne?yV8#S{#stHQCdMd1MH^#?CTL=OAo0n+*l0*a5`Th$2Te4fo_l9@J6*SmzRb)$ z_xyd|J?Gr{IDahTKk9$}#?W*A<8XUpXQNzq(2@hD?|@V^EP%nr=v$xq3Gpp_MY=uY z4fxZWB%9%$=93F=`}Ck&KnN^0|J3m%sj1;Pp3h3U%=29DsHh3LK6>bJ*w@y%?NA?= zPIEgsy36G=sw5f%4OD$fDN2)6pVt)Kcv#692m85v!BFx!LF1VfywsWCnDR_kC^B7C ztI&dM%Q}HNoD{MJB{$8~rnJ0JsmL9WCC*XerUcQ*&)S)Yf~I8zafVsag^J@y=W#o|Q;d-s7EjySkmZP#) zj*ZFjvAGNs+M*5XSDYBU*%ph|c+d+ijF9QO7f;UR!Us*!7(_ySK@U}msDEIn`EV3w zLJyE8xDYzFyy_7A;g0AT9V{EHh z#_)4TitM9d+V7)|B5FBIw@n7tI8R0)nXrNTP-O%)=flgu6FYeR9~yvz?XjMYl|^xw z2E+5CXqO^s@+eJVuY**_%_>N#*o{=Z9|ff{Gn@F8tq13$Npjqctn4=BAln}6f@fk4 zL@%TBBf30#b)$Q5iCyb91uE}+jQH<9mXKKmS?OVxo=@#;WZ z*cLr(RUeeY#h;cCn7HLeC;DxvwpfUTBW??{{bld#lz16|YW{)8!S@9xisLJOj*oiKw#oJ8YtawZrg1 zPmqLRO&9I-7GEm{!ak^{;|W7dUCs*Hgl^2{bJI9*;r9(go_AQF-~x>hQO~jDqEDECS!rrA zpB0pxWqJxnEHj7#saVhyQ8BC&W*sh#BL&Gay;4!Mn7)DcxMW!ByXb`J>jgDpOX3- z%bP2addf>ltuK*E>jBPn_+Vn7eZDOYLxbIZ^&*z>% 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 64f512d44f07e2b4d7909e0f1da9c48e1588fb3a..fa12a4174fe543c2dc99128bdcb4a75b8d03ad6e 100644 GIT binary patch delta 3097 zcmai$Uu;u#6vub(+O2=a#@0Vu|84iKuy$pC*al2C!k+{tW(lYd8iYBz_HMVAwO!gS z*lmq4KEwta`?uQsfe^Y7M@9k<9+FPGMSMNEq~~)I#F}_ zqK)JDl^fgu&#i#NAo2s7R)!7VTMHu?Hsm-S&aJ)G`W;tO6AHzpv>XZvBf>~zHk?k6 z9EPu&Jx^H#{OuBGQb~p0tY>5C%)wY9Gtna?=Q6QmB0Nhz;Ajzj zXm}(ZUSM`;Qf6_~)#<0TqT%>lEHT5Zre~Aka=TTpJwSGm@a*hVIC6v;(jYuFE0wMJ zYs+3oiRolGHIrucuq43k_*c=_hx%>JV^;n#xhbo2f6O0+|gW6 zHfFa!g3oqK8JnD3KYZu>Uw4qR&L_1?l#$R6b{e9TYDPPy(_ zPL+V~;B#m1(4S=BQ_j+(ecXh$*Hv3{*23x*n~q7TQt582qdUZO$u-%AIVllE+LH?@ zX}Z+RUs`tf$L?)tVv(GZqr(_@+b`;x;o%J$BUc~?m6DH zS?IM+XB}GjyA7&2i7rmpW3H&bSOgRXtA6ibqn@ssgfmgt6?SEG^8Y@?9o z5iKNK40JYK(?vGH%br$o=aV)xI9mjhT3Y2MEVp`UgUW4u_H$thsFiI3BbAqJ0*5w@(bhaFGR&izpHfD7_`~1Mb-Oiq;H#u=rPSS{k36FAs!KFm3Q3=LxmnWZUA^3=rAeQxlJrSRdXqlsMpSj8 zGU@CZU1xx(Tjahe&7XWK@)uEEmjQPs{pp0;ZVPw0kUvGbRGR;ZYWX)({vCsl?>}(e zYb$|p!Q*2PE_jBx2c;11SAlS!AZ*b?Xhvywsz7KeYkaWi_45t2@MBYtwhzdyf`bhO z+O>T^gLd9WUW0I|!&FDn+_iAu*{L0ZJJm=u6A6Fp$sHE1v^-rr2A1}A2E)?6ncu;r z`tt2-w6^jbjMlh#XMtyJ!wBFeTo(Kc#ARUze_RLRSQQY* z7>Ix#L@P>Kssh4B_f{brHiA>4mH$8of;=lg44}S&f-4(Af2Wl{T?9c6Ryg?5`8oZ*gAu2!Pgx2J;P5Y7w ziEd({4?iU=YKKvND>0GlsIe)lC9kqp=2hZ>;7jKX`;zdVzaBhmZ2Uter|jf)pza4M z;ZZzEnjAG2-ahq_WIQeL`zFh@1k%tU*N6a|F^WV`&2dc!RAIiWSvpWz2d+ zQJ705BT_moMTMzFAu%7HTZ|?nf+%Xu;ITI9Hv|TH8<$OkD0(`}cELw^1;r}$!$5G4 zG0V>_=HQi}AbyOl*?Rm;&MeMJIpq@?nxaxVqK)BPFb!L~cjAZlu65p(cf0@PxN9r9 o4L54L&Z4n$hGJ*UiEvyZmo$ETDl~CCEsOXes+?JQzyA>TKcvQ-_y7O^ delta 2510 zcma)8YiJx*6waM}WFM_f%x05)WHX!1ZZ?y5im?VY7TT(`O^sIklbTF6lgvzKAIVH~ zi&*22VymOjoDnL8iU?w36*Y(t1p8Z16a=LzA+|xQ;7_q&#dBw8li74b{j;<8+;h*I z@4M%GXFkc_;9ZNZSO4rk>pD%MaG6B!G{o9thUnFuM}?whfT5e_53cwKajvYB0fu}C zp1L^M16_5-%Gb_&{B{E&aJlY}(D$UKhGRJ{E2tvJvFYKA!mH}=8J0lstc{Ydzb*nXVaLQKtCJanqMB_$fuWC30>2!6419>^;HH&#LAT zcq6%y6AVbjJbqx80tS&WJfv1L?@jiN)1zM~-I zrje(K;=C|p&#b-TvfxO-4d)x1qBRV@fR;v3cOJ%zvqg6W*g;}XGSJEXvItu$!4`O(z-Y32sm={`%^tS{kFL?sZO&DS z{wua==f3TWhHatgRNv&zY^O`-o>;=EwIbg!BX?~VC%W9ngO}i1o^@ScO!1d zf?LnV$g&-z8$rHR2{N7C6p-7=&4E~zhF`TIeL8*@xrP~ySxDEaBcrdYP;E;oM@P+mS z{MsI6q7Ev7_giE%JF50DHE&M_b}nkUhbswq5MECP;j^fZ=`}-_+jt}N-4+=msX=%r z8Z#%c;Z97Ny7c+u6VR2T&K-cbGlbW=A6Hk_< zL3EoFp+>($!TC1ND-)_VpU=&rCc?F@e&(Z6QY$ogM1CKWX?;%j;=Gy8XL%`S=uF{+ zq5IJw6bp)!ku>9sUW-fZL_sighfvHIroVeAOmtVuI z$9`C)m0LJL?1^@s6 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 2b1322889a07b8e3f733d4ea93cc1102c226ff86..a64dacb3b366066bbfb967d053d99a1f0a8b63fa 100644 GIT binary patch delta 3497 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 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 c8bec384c6bce8b2e8ad6a7713ed73abea356dee..2a845cd60038dec8211492e20b383a0fdd1ee939 100644 GIT binary patch delta 3299 zcma)9Yiv_x80NI=dRg1iUD~Z@T~F6ty0UdcM}p(BaTz!k7ZJf27_95g`1-M4(#zNq zkxN1X$%!!D3K0>+znT!(4-++_B*yqpiAEDqK>XnkF9c)M5RLD5de)uOvdNP5^t|8m zy_e^GzDv(+zqZ$K#PDic*R0`0P2HA6Dk5%)gvSX+cvP{hOo6$30ZBkRMV7koRgd3)9woSxCMo8ljhvWTFZ~lh+5xVPwh98PJEFaP#;x@Ef z-sK*^U5iljMKBl>(Jjh$)Sm&?0WQ9AvC(xmLJp?QCe~ zmMtSZ74U)bagy>vJE;KIt2$QFMuzZ^2iOG@BHekUS+dBaMkk_TN}aqLNp>6LtiWn( zF#FZy!!x!9>sIEFNz*CGVC#Z}=ny95fwye!ra^|{=>Rw!UU*=8j@tzT_O&RBWA?4f zH)(U~Ly*6JU48~jP|4SbC1Iiqe5(>A<#G=93anSbu(eL_l&at-yN8>`L^|vQbylc6 z%c7XlN)*^o>xFKI*{A?OsCKn_iZrCvPrg;u3-4FD^#R&~&ra^Vx(#R1d2t)gvNitr_Kof)=0aQQ}%vN=BR`5DI?ehX)5zRW-P}wxEfLld1+vS?O)!PA_s`mTy zdqIGDRpd(s8K%(D0`FC~L8G&?kt)kEs4LY$PzN7Xt&_!q%z#4D~D?Bjh zu!~kE_4syrQ;g_Z-GRdVqSjOvq2Y6nx7GBVj09!6Xi z?uv#+CpvmZLnCv`XslAx$l{%oVP?i7zJdG(mAtWx5r{Jc$6v~RRgI_NAMCCHzqtCi z?-|Qae!B$AhkM28Nbl&b@MKmTNTm{~QThCXA$O#Y5%suKA1w8QKAt{2C8jdbh?o|_ zDN%@v(fwpBkxJu{T5w&|1xJaae6KgF8cY9X72!!jw>`>=oLiKFV7T7S{fjJkLIJuH z!ICaHlatDmGo4s>PAs|>QRVP?$QW)6N#!YVVmuMa(J?mFEWgFV(RhxU^k^`mAv2Q{ zbCMpt!N>Kr5Vx1FrUcRCCXM2QQuc9xO`p#RNoH3tsyfS>v8#W|UF}hwy3G1JR{DP% z_&&z8un5yKd&r0kf^+UBonH@vv!k%VHDVM&&o;RE)y!g+$dDy-Un9ex7i7p3rja3E zkYOL+Y`UGl{0_q;->-XtgXsjq58Jl6U-`>=-F`jHdV`1aH(V-~;(Fxc z-55#4Vq!d_I@=}Q=M$2t1PU%KjtgTmLOdHw&R`1#pKqRtB{BIu4{Mz+!?bCE&j((*M`O=yl6N#5y$9;I)@sH#Jvh2Vk2)m=wxlaE*eb*(NO)ua_S~ADO eF_HO5~<22Q4l4|9;m(a~BmFxS_%gZmHRbMWi{ delta 2535 zcmb7GUu;uV7~kpNwOhB5v99awy4w|Kch}-S@DH0C%iLrrBm^`@*v4IVx6^Cab-nHA zLSV!A2gp^y@0w_oM4mKeiOf9^;{)MIUIYn=(H8-SA-)(BLn0<5e&=>=Z?`%0q4)HD z=R3di{eItfzH`4CdVimF&icXI;j`A0aLe9w_Om)REL^t`Vu2sXwI%9>cjA*yr{I>9Y3`v?$pTnrl0u9n-?ps*{hT8Ir3kCg|aO4F$_o8K*J(d2$0PD|fq|qs?@P`d=V8 z-vh&yKayW@7s0iJ_O507Er>WTk}kO8KClO^ zhuipQlpjbc88I1?_{lL|_O?oSaQEq<8uJK$o?0NDkkwi8p>Rr`F`cIHvcVku5f z8~@83tdR`E9)1Gvy4!1MA>C#q>SbHCzT(Mm+<-%NL~g>N$RqI3T&~n~ih&``u-pnQ z8=_>INxP>Yt)lO-N?K+vlh&bDN)st6Dsjaqt5q*3xb1Evry1_!@=3OmlZ&|Zc`3@u z&7gv^LIn%1ozzu`uA{;eg0Q+;gI+zGrE2=Zz-&CoW z0n5419U^zjm@ci&l$rk%)B6mqvB0#5)}}MX_OQui5P4|@XB%?9sdIJ|Il~#=->lm5 zJw;QAz`C?t&*I6qLNla1`>m`gn&FCP0D9fgKKcNW+D%0tc2sH%xuLf5a!{k0Y$_og z#10tY@iEBSC7kiL1j6Mx-5{)R6rjo*B)zcE7-=oA?q(b7mm2HUtogXr7X8p8BnMZ$ zPSOqUxFa?^-<;eDQ(O@00(R04@A0iR`WN>6d+@!-4^6%Rkr6uD&G?M}4?a^bi;1k% zmrhTnbt*m0yWp;m>s`+LldH9;P-_zLjFc7=!%8MSnH)DBWoHRagZs_RR6D+AW>S)-nx$M!Q<;B8Opi+$ zO@0f3bblo!#o}Y}n08WrmF4(`d=Llu5I$Jm^`^?nN6}rE)vC*?mz0;?^7$!arK0vR zSf&qtzKR?zNuMi9KW>!%#1`K5Cnn)mA&HO+>?D^N~|AJ8<4?x^9AV zn*}ca{UKjl?dJtV4*kro^kroIiqDQnw1ov9!22f1n(;@t7OrgJ1MH7#pB#~O-Q?fc zYvrh<#0u}=2yJt9>u4OUW+ws$LR+1xZB)vL@q{MAkx&PIgW*@m;O>7fa5cZ3+*j_tX+i?;R+jva`Bnyd%#7~tX97Lc^djr%1G$gUT$=fIY$-6$} zP^qY`)JiK5o$a;2i5m#{3<9cNkWdems8j(_L?c0vCZFLAB9Ftx{0WX(eMHLX2sShY@i&DCO08t)v-RxddzefrGKOJyXzh zV@5O7q6OCQ1?wAYhze$A6ABq|V|k1ErZFU7b{cARU5?RBau5ra#Utb$+>H$P(>F9u zU)QpSjBD>I?`r6DS4~fkC%w za3h!q^%IYW6QzBo4GvjOF&2kQ-AV9~Dda&3p^_ZiO&jK7svV^H_63i|jq# zrTwig1reCFfvg)pPI76(PYDrekX*pr`^K6A+F|@8wJe)-g?^w}3Yn(@Hc4!xZNXGD zNPc#N;v_D)g<@H_86E6u359;T!le_Q;c5w%B^hSJBSe6U;VE*D=h^!ZbKF51O>Ozf zpE{>G%g2RJSYx;{k%>=4_tPNvPYd5XLc1?twc}wTk{NQxicR_3jR`ntxDrW{zd66L zmf#8G`KTfIma1j2&}1hH#upRtMN}j&9l^qwC= zB{e3Z3#I&>Ca9MS3;#tU^Ej%$T)9|OONMI(%y>F2SE}Wls_SZA&MwNOTCuX2FX!ZR zy4BS!F^!?c@~IAwM~7qKIIIc2UY0}?N!;Wlnr%zjWOny_mOg||(^t+iW3i%I>@YX| zc~#G~Y`EA{24Cz5UcWf?_1V}OA%*(+zGvP&ClSn!<4ZRKrMaTYLv*|&8F&1o(==X} K=&#d(bL2geOaoK^ delta 1144 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 gmEqZ9SmP!Vm&FCj!AYm}AEs+$i~s-t literal 0 HcmV?d00001 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 809b637b8af46a870d59ba4444ae325a72c21694..cd98396c3a510a55da17f57a5af022b2eac28bdb 100644 GIT binary patch delta 695 zcmaJ;ziSjh6wd7Z*dH;5K-7@kGqd22i_vJrB301FCIqn)j2zj!Io~eX-Q#ArI6=_D zBDhs%EEQ4c?91w{!KB9;~su=5WP6n%3W$Ro861Qnzd)OSKj1K z?L8q{zDK?hvL&`EuC{PXOzVqg$T(bAL7b{yKCP1ZVOYT|U#Y&+PJr7-;qyEV!?pfE z!ue%Q?C85>TXc;XGrPf)zC|e&uMMYVm5&7dkpwdv@35{P`H3G#t#zL#Qpnlo@~Lb> z4eAG&$zzz7pRlk5%&saK@y4*{$`aO4qlqHbg!PXQDo7CDjdSFy_*B2r_yP^sM(=09 zhR>;o4C_!*JTV+%<8)euvzbbq(HFAtXv0q&aLpRBO=Rzje+D&v6myukZ8XOAO2a>@ zHu)f4n#<#bWF4Vz!GVhEh~MT!7uEH49EL0^FC(*Em-hN`n{m!M)Em$!4SR!5+@`Ku zEECP0geg3O9ZZvv5x!~KGw={rQ(^b delta 433 zcmaE>u|<`&fpzLip^dCZ85vnNpJu$u$hc+lLS{uqi^&}97J?axIccdW>8biK#$-=+ zbtxD}56Tr#42FwJ#;?msQ#G=Y68FJo?le^isFvd=H;EkRhTDH<7^JshdI1sRFOnZ;8kPtk0gQVSGh?P1jdD%F|- zQj;Op!wlq1X`KR*l+HLk*^yIA>STs=#?cI!4CV}3zYICQ(j=fl1%*cqlR?I-@u5hi zPF~0*%Q_XPgjonr`Ocf6UCr&&a@##Xb3> WkT5TZ*;$;S2=r1G_hv!i7)Ah=IFtwg 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 0000000000000000000000000000000000000000..7c0ff8de107f6cf1ad18e8db3ec886e441a3e514 GIT binary patch literal 10869 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 delta 1762 zcmcgtPiWIn9B$h5PdeGUu2$yS?R8VuW^G0AP%r*JsKX&T*g?vcu5Z3%X;PE)uz|EX zL?!_pFFOc&@+N{x#e*Vv@Fa*=4+CKy2VV5xMex0(-Lg#?BJ+}$_viP%-}imLUvjsw ze3WhYm+vgGi%bkZV`58>x}BHj@4XDeHa{?H4098IJ<@&<#EVayc+g^0W{B<^(WQn+J^q(<-4LD)h28 zw|tml5_*O)SFs^Wsw!uJTBTG4*+Dor1ID!)%mRHw92E#)&t z&5Gs2777+E#F-tXnk++OQWkamHngu!Mq^SmV8y~#=7x3MN+Z8{?Z1hTXgQpB^84CO zK^kT}9(;Sx877ZEhjaBTnW8=^Lxx%j#Z50rTemDHUuPL5kPjutQ2!V?z?mUfsUkra zbvLinj&?d}#La=tz9+XC??OLCGn_iHCBxGhu-d@?RvIpl4F1uT#j~B9-$!&fh!01H z>O&4Butkv$kfAM~S!$QmE>=|CE~$0POkvkCZFkaA&S8qnU2%NBYcGSS0T)^&QnuCD zRw8uST_Vy+w_Fi^OViRP zF77BmZA?p?Yt0N^f<{eK^maR}&o_GRDG}#LRgQYRUZ;AMZTm>yzFP#ym@5C{=th%Hn#|A8_c{ON|~Dzl?U{U?hnb zdd`AxvBzrNB$Ljr$!^@8RC180 zpjcQBW!95F(6b;&{s<8-+OvWPfPnHfc1!74?9jFhy5GZaw;iBvt zaZZ#)v%*qdtZ39=#^^QUiZMc5q^qWu*ZW$6G`b{GT(AY|7q+AQ50ob@&Rg*vA-vv6 zvD#AG+pNv9-P7CvQ+oCdg}IIn5|Mi0RZ5e7(sjeIR9SoMQDF426f%QiV~%4UbvXOaK!PDgsE;Gyq{=`~#Jlf3RXJCmJ32 zA6T)rHZYp590egs_S46EJYdBUP{KHOG*BXYrKzSm_SQGlCw13#)_wEXgS)I?M}3ba z{S%yv3I2JGniVSKE5KiB0>I~yI9N8CPTvhzt=6>*tsS27+Mk*YlG~POb*tpFZRv3n zs|9BYF0mcQx(FlE4ttst(i%S3{x@y9ZGP{tt#JlH&MG8>jA^#vj~)oN)U(Zu_Jbzu zgWvA=0N!1|`_p~1Mw|O)@tgMGy8GAbd*Hs;RdX9sQRs8M*}F-Ed>~QcGdq*I0!%@B$4BCEm?TODYZ}g?bQ#H|Lb04xGAJHz7_@DSr4U%I10#)v{1Fy&yLU=2 zVF@JGO%iodu^O2dfn(?+9O`Zu*tA^4hV;o?da_u{)Yoi0sIn))Ntl_?qE$ZhgL4cy os-E6=&OP5DSlWaiP3L8yfXx&Q#+hUutZF0w33J|GD#+#U6X9sogS)) zQ4lID*fQ%u=)todisV1|57dhw=H#J0h|r4&&LlMrMNsrIZ{N;)^L^j@-s>|v({fvW zj*f21>ulSb+*dElgpY!`nEbm{+* zm>jqW0xT8G75%{FA_?8Y!)lq2V+5w1Cr+P1|2IhziHsLWs=x~r+lL!1f-KE)m@{A+ zK0F5YJunHNK)97Ugm69syKVN5GaBZ`HUe2T9Z`V9J|8La^IT{Sdv6=)X{%=dtZEeswI;l_FkgVYN^7pbnqf8&o$6VW z)=%(92BKw^*QkBd;4`$#CD^zz|A6&Wanz^2N-z^I{A24I`xwG>0A7;Y^8}BSae%_XLWJ$)FKmn Mef6!*{P8956Z^0>tpET3 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 d5984f56506284166cdc42b9e31cf97b69a37202..27efe3a790daf37d732bcbf17dc17dbaae4b5cb7 100644 GIT binary patch delta 659 zcmbQM{zRL#fpzLl(TS`bf?{s@MaiiynThE|iMe_u`7smciem^eY&^or$jG$$9ODf} z#zm98*cF)!O(y5Cw`}%h`NM=P(#*&-`2+hF#-)>&a>z6F6i<%kRAu2(P*9lskHa>a z3mHtwV2_=W!P&!~lA4y8msygTpBJB#SzIz@@)XU+DYa8HGFUU%plU?W)Wm0&q~;yu#}`0p=ePBX_?%}X~}qbavzJ-p1+KY>6vRYviSnz4MxU= zlYQA087(Fkus3h^XZg#7EWpS(`3w6N#@NX#IpilF;}T>{o!rf-%A%mFt1x*Zr_JO8 zY^>568Js;FsksFiiN%@4QzlQ*Y@AX%MI(c?M_mh~m{Du86_+LB>B$pWq$W?`5Rf{V zA)RqFLnebcL)I@t&aX5nL#)S9;Zeh6h>?-p+}udglMiw$FixG!&*RN3ov~ta1Bb%o zP9DL@hq>h@hx58gXZ-77&rixKsVqpHlJUQXBPF#s8OoV_kT;8~hb<+wBr!8*O5$W~ zK1)UxpaC+Q8~Oe+GMa9#7kJF9#?Q#Wki`uoihDTo5_3~Qnu~!R$O1`p7H22|{gTDK JxkDs|5dgXtcqIS; 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 8fce3a591330b66e89265d9303caa6b64c349d40..a5263f9ffdaf48daca53806d500e35dc2d2e4f9c 100644 GIT binary patch delta 1768 zcmaJ?PiP!f7~l8y{}^|ZO}e|;og^~}lI)PC1X}|ItA{p}7Ge<(LQ>QHGwaN_yR+;} zsB5uJ#faLWQNIzviv?{jp2Ak})It&L#e)?@L=W}gMFhcK6bpWDW_EW*OZKpDzxRIM z?|r}D``+81PyV_V-Hv{^KL397?UjjDy;GHstL2wF<>r#9Z*1xn%~s-PZ6#?%UXWik zZLqEXqC$IjqJ+@iT|z0j22YQObonrBj=a&+Bj3dRGnWa4`y;;B5nTVZ7N;4Rcd9Xg~L`w$ttlO+uaA};Qr{rwKo}H zN_&wF)29=N-FC4_i>o%uhN0F~x#O=djJCPwleL`RL(1!H&nG@*TrQ8tj9Vk!P&m@T z$9bM)QCBYEoORY>fk?h&6mVuT3ftq!D68iS5Xa^cJ&zR5nlCstYnN~s z_*mWdK;dEL#D?dnw&Ty^_sesHYgc@D?FS4z33*=!!L>}D{K(WKyhHe&2`K~(e+&iQ zLxQb}b`w6z&yW*X*lOPr7Mvk}1T0}0zxyq@*SF-@z!HXelqH|<*SxTsdJ?W?*I_0d z3omFpaPk0;;}sm2X@lA`}_rxbs&f9iL5ljl)qW=cZZba08ptu#ua? zsYs-Y#la`Jb0qpf{&}jpWZU`prTVZ8ydLbBOuvq?HN7RXYcDJapN@Ewt$&BZwl zn2w_MUci%!15eTePZ;$D7sX7$=)4;lZdC8*L<%plnL*+hLf6?0uY`MhlU+jZ2G3*) z0be;>3uiSOiyBTeh_aEKJm7qw2-5%)bIR_!a!)AThr8 vH~)~(Qn>fm^e^H0a5xmwLilA^$yT{3vlIg#ZjCLxV<;lN;ke$TbL-?^rB@0o delta 1379 zcma)+T}V@L6u|x8ySdFxH^uEvH@EA|+HPrNP`zYEDy8{>gcM>i^~&Atx-IV=C6z5P zQn*xhZb6ip?}5S|BedS?rI&~ZdJ*a+0_(wtAnO0$SJ#ikm;E{4=lpig{o48Yq%moH z(6ejCI0cl|St6MFHNm19&hS?h4enc+`8Nm|Qg0DOp*d)>Rih)RRl3WZ6JV8|fG@Uh zzHU@dz_A=R9Fh2VSP?jm4RW$F%7xgvIu??4rk0rFqx@h*j>Mul`#v@nSFjwGvYu^a ztu@3m5xvYyLut2xSWMdF=VuPWa>=mCI*^bgUV#Jl%Ka88A}bdn3O}NO7P_fj*Mfpk zt>30A7o(Ap#Z$QbT!1)%1z55-qiMKQTzC3576p$uiJ!!P;8H0zsNK>s*)wXvE6_q! zr{L?v4i?qSkHm$r9Fg^17}GRh(ZQful9qYAA+0yWt|Wn=a)DH8MU&9ssDpP^C51Gu zouuQR`8OPxQs?1d#4;&Xp@(r`DBxug91#*`CGNR@MTcaw}TOV>DolFVYx~ zZi8`gC#!eoP|;?J>cUP!fyR(w*6D?hPAB?BX6VRbTiY5NQU4#CgWGT(@W>TFHt2Te zS1g}b%d+t^cdh?6cr8!Jhzb2n6EYA&@ZDWgs}^PsOj8l3C4{}=7-^?UJWC#5JK4)jpv{p1A8pbMm&~Z{7o)()NjTCVf`mrZI9#MfmF2CQ<8H@56e(N@%kRt{TnoJBO z_L3at?2+_fp@H^@U9jxos74Cr%LC@~qyvxG2S403sgvGw2p(3}lY=qZuzDQsxoglh znD;So!c`5Qd~NI;?nX7ma35oFUK5`Y(LBVMI0Rc0xR^MMI0wS$3L=aiH1jb5-sD8jYtgBvQUk`JJ_DG?(Rc>0qmcwTL1t6 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 d790a614685abed95974139ad558e28310230046..2a2fe82063cd584816761faf35cfafb1068f13aa 100644 GIT binary patch delta 1181 zcmaJ>O=#0l9PewFwN1O$&2_f6-Chx-D_cP<$@9Q;rm48u?9!oE! zvn^?TYIs^}l*u)vc(+kh^MUBecQa z`ZC@Nh4!{DEgepL+qZ_iycOJCoy_H`$}*`J4Vug0D_A!gGKOoO5-b+6p3f z#iJEcRceZ%XtkwfMHfEC*Q`fYmP)kWF*tk#v!obAbpg$BkS-k6K0!AtQX8b9@;!N! zf0eJIF}@X=Or?>>Lz654KPx3VLi?Xswij6ABjJfTc19r5bf1pS1^{{5Mg~o}yj;|E zrK*sI+n5hZu#=9Mo%s%+Ji~8=&qbztx+^8Z--ptt1|1Jhw1~jNH?Z-#H6hk|dF{({zD4nkn}x=Ziyf95Z1s!D1G-$6M(=JyBLCct3RYj}qB9uQVHgi| zda^4{#pqAxAY_`PKWK{joF{xCGPKCvxJ;SJOa|8*TAAoNso+u**H+Yev!a!8CeuxP zBE~KPjO+ld&RYXXktyzEqMwDlV<*+M@hmcf_W*ACwGuO$bz-r7F$O9`FFP~;6}iW0 ybP7HU8_|T1mb$FARc<@xG8F;DLLHlED0sRB#gmoGK delta 606 zcmbPWGGC9ifpw~g_(ax@$s5^4`7+pJr(|&Uu!N*mluVgCc|E)M!jp`QESpa;K4D~> zKluZPBBRA*Va~?Q!7OuFkOdeSCr{p!G#RH^DlQP75m=rXov`&E- z0uj!T$zaZq^~;d+11jL`;YiIb$Ve>CES@rX3fwYQursEB{U+AK40IEcA!;Ct#8uEN zlGaps)G!(7YSGCLc(@sPCZFNf;mWw3A)E0!L(ZFd@@n32M&`-Pe4dQHK>a$I8Q*}; z^a2?on-L3C0d#H_JCF-=Lk1hzc0>TM_~qxNf}ND5ilnZGO$#KU1#>J!8N$m+AlGt0 zT^k3onhoeG>8$9<>v=Vqvb-h-@+z@qe9Vx}csIFFK!NoQkac77d2Y?gZGs*O6M;7M zu;(Xbl~fj_PRW`C;&P;<7AHgblivwubM>&Lq?ROR=1fVP94TZDjQfc~l1xk|7&osG sdBm)?2&gA(9*`*R;mk|SO$F&J21aTYNTRbiLlGFiS@Sk;k%(ag0F7wCbN~PV 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 b5a97459b89636aa0a72ad74a86206e9a9bd365e..43441f651e0645a4ab6c70edbada25d9432a4158 100644 GIT binary patch delta 1152 zcmaJ=O=uHA6wYM3O|x!NVw>8UwwYCsBxq19Ry_3}ty(Dv1rN5={7jr(lWf@Cq7kI_ zAXHf_GV4*Wq8Gt~$JpVW;KIjEi(&rW$)uuxu^A3&LU9;r2XKoRU6QXNkv*3$qC1>uiT(nXTRt56 zrA46ZoSi*5qt{9M{PTG!INFZ2SODvuvvx4BWcRnX@3l3f4WdxS7wY23P8;09PtACT zPX|tH2yCx{5ZIjx==Mj=BOUtF(_7` z$cpVQ0T?H?yjvsD6#YquslZp+wRmD)dl~RzrxXP@48255laz6>iR+8CMzgG!u%dK= z?u&8rgM$sAHQ8z`#iJy>DD)H8_Ph+YJv@w0;U9ptBYIJ@nhoM;o4o8P6SL&iY%6|~ vReHzajbD+6Tkm@RpfC=%-X^{Z-M;~>ZL_sxUyM&5m{frmtZld6C+E;#okU~v delta 590 zcmZ{hO=}ZT6oz{`Gnq^?2}#hVb(%7jwj`IPAP9C@cUmzn6kKS9i5WS$_9HkW=t5{f zL17T$xo!mO$I>pU&Y!UT0fN|7ai<7w+$o+(YAr%H_j118_c@%$C!fz6YsS-JscSr> zcjnO?nu`jpNWbLY2^G<%S$eevpvT+r1>gm3Y7;O=1*;QZ)Su}G697ck&giTVH(E=6 z+Y3<$w<3b@mZ-Y5noGZjoJriNcGNvpK_jXi+PGmKqxsA{6seP`HS;hqfR42JyWPOy zXwa>w2db~qPvaPBSgzxEog1tu?Ju{{3tE99weM#1KvZwL;Yeeu10vIjQEBo&Bd6-_ zu8~VywhK0GXJ&Hv8O!(;$IodDl%~`9Dt*if&mL`YP zwMXal`s#|`V~|sv+lNbuq#*v%_1pgK*huiwdwACpn-r5c@(L3OSfC5p<0<@s4t}SX z`4jXhQ>OccGj5kHB6GDN!@F%?$tOveZu-IXy_migZVpAMrXPB(CFRlO;wjMSZFVf) tDE@-M4-mgOva3zM<~g~}PY_uv-m;%e2Yf@B6dnaQ!RM6g@%xdh@CRm@yMX`z 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 130aefda054d81e30220cf5d8e555a3110ab917e..4c0242833cddaa0b1a2bb02e65c2dc4a76192e8a 100644 GIT binary patch delta 716 zcmbQIwp)v}fpw~Z=tR~IL2WMtZWk?}So ziGx(a2!UV1ud=K~oc- zS(2KIq_8Id)6$TPRE2{4%)F9fg`(7gqSWHl$>%uaEs>qT1$Ki5&=D*psYNIT3St;I zS)Nms@$zJQW~s^XoC2~JGh{QCX2^MqW=Ln8ElmQN!G&<-~ZrQ-Sp%$e_s=I2CwLBN=@HB*%Dc@<&c@eu#x^Ky@oJ zWHOj1+jAMF0qtc^&d<$F%|i~j9%)5Ig@U5|@Mak;5v83JW{ z*z=RJN-7Idr(_v{xEv{|#mNZ%A z$xzN@G2U#h9=4R!lEloMDT$LCd94^(fJVq{zQOyKkh>7fE4HB*IoO3vRWe0*J4WpQccdKlu%ZhCQ+qxWI1E z06K!DB((^|Kye%fPWIu{X1qK(kwZ)NVuox6C`?2%q%+P!!Uf^X$tyTy7)>TW;IL%L z5bFUkOu1X9Ktf77;~B^R-lVz0hMxe-9Rtc80t;mqcU=%vq!kqv3X1ZRQ;UmJQxuXa74k}R z3o29clNA&dArT>lUk$|V8PZu&j0_CLlXEzvWip~OVoEc#vm}5bKzB?6xdZBI36LKq zAK`LS$ub1W_ORzCWtCJGq)y2)0&zJ~Qj3!j{K=}^xs&H`+W^y33nbB5oS_Izd0BRw{|Lq~0ssuO15*G1 delta 383 zcmZqFzM;n2z&h1ecp_^Dqr~KgOcE293qlwhFR?K)vTVM|_>hrt$>iP4ii{SU?=eR) z!#I=gF}F{C%)W&&cJd4kdEE@Q4EES58PhZyr_@f-$YAa9&&ez$xnAH8MDRI8t*9G7^h3i>FMU0@o?2h0q0N!L({ke$T1RczUugv(#h(9s#M7 z8PXX?Gh{NDGi3cTJ!H@+oe0 zX6cL-lXwg#U*wjX{Eo*>I^$mtdwx<@No7Iml#Ks994V>A$xzPZ2;N+-9=4R!lEloM zDT$Mh^4c)6OyZH*EXVhkk--oFaiMePKGc5 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 a7ab70f484c75c53607a3e10b9bcb4b35384687a..452442c904e793d0e07b5b8e93618156fa5a4d67 100644 GIT binary patch delta 700 zcmeybwojY2fpzL;(TS`bf>LhzMaiiynThE|iMe_u`7smcN@EBzY&;>z$jG$$7UL5} z#$}WDGb=I~nrwc^oWu<0O@7GS&d4f%bOqKAU2@V6&W%a%pjS` zySN0?fF5E`&d<$F%_~82SdX-#qC!DYesXGYacYV}Ql&y(X>LJfN`A6}q9P=0#qg_v zI6Xr;ONx7`%0e-W0Fi{{V*mgE delta 363 zcmdm|{a=l>fpuz$@I=;*$q!hiC$1C#Q5&zaF*34jzQg#0k#XtdgUpJI7L&8s+c#&k z+-5=+U}T*9iG2%W?BwMf@5LVV9k~@INAn0W zg2g9m^14Z9{Oe)QPs%E(EJ&S_@xO;7CAByi%9%WwH;=1_EhV)iF*9dM;$%iXTSgY3 z5i*;j`TjC8nr@C1c+9NE&&a@##SJ8idpPqFb5lW@i-Eq+0!efhXD9*#B8z)-l1L0A E0L;XD-v9sr 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 ff04ecd27a7afc0f087340c73ce8bb5c7d377ad9..3d7291b770b7039532e301ad9075e5f9d389d3ab 100644 GIT binary patch delta 2971 zcma)8Yiv_>6zATq>vL<@wR_z@ZbyKwunh=fq@pZg$9=^Gp+|F%+Y3iKx}c+BXVY#buo32D8s^Ggg3}H!zhM(xa=Zps?N)9= zh0SPJ*$=bPS+z-++5r1?0q%-w@rur&y{yW<)(vnsRauLEi}rI>X6dZw z<&@rqUf$LFxjW=VsPE-AMzjP`oya{@QJ+2$3;89~4cKS!alaFa`v$yvpX&WK)c5|U zp_5wzqp_RUad5`%^su^?WevAt1sb1&h|$kGRH(q}hN?ozTT>OIBykiaNsP5nKdi`V z(|g<&_|`Piw4J%w7<2FCaDNEe%y02~R9BD`tomITLUp~*Xn7{cBk+s)mR5clw_&MC zJRstW-#;CRO39GI{C+VYrj?XY#NRrj*w!QH$Og3SXWLMJ2fP%5M1CKHKh4e(mW0FU?w&4S4?B~3@-5wZgRGC{heNzvoPDF6U#~Y)_r2>qo2(kB_EDky0^Ou()B?GQ?*~WI5j?vIO}Jd|=ty zSmW7T-VMs&V{7l`*9qWKSwq70h+W8I4OwG28cL@l(-A3E8J-4Ngnnx~f4Ssl;)A>! zQY{!mZ)l;MYJ~;XNHZ_*MsO)-N8JSTheKP|0T-+yf3xJzp6`LmsIPM{)Y)xXE(e00 zCR$FHBck-c+S2Y>czT_|)7%dyTQ(Yud3xou@Vw2V@yQqPImkaKMNuU8KKiI7_db!k zshV6fl6yzR${*sRlzS5rT5cbBZ1eJem7HuYP)mv>YUR%=^y|?XDkL$e^|7|>uEMGl zuC|(Zo`;*Q<9ss@o%U6n4Ss5O!KmG*xAJPMm|(Kyo-mw?E%9U^p({oGXa=4 zwZTD0cdL<*rJgZiT0AUz9Ax$;la(DuJo#i3N{6vs@(afO~XS@3h)9xTLJxY+Jg z3v#i21GgVD=yequJ&2*z)*`5eHBem)D~7d41y>iNxq6skZ$~#5ArHkukkbDz#4v_D zY$*1zx-#d=GkB6Lw^nzv1tU9-MOayEX7WgUwN*DWWpJuMr6GeaxSmysh6OUFZ}h_V({ zvqlSRR=~jZE(<);*?9Su%4&60oS4Ix`KmnG;&`Cw!iiW+iYsuJ^IHpF5&15qBFH~h zaz;jov({?P$o?0E(-#Q4K?~xmfe0aut|J&}xw~zsahN1{%b;!BAzI+qrXXXkAp9x> z_y!GqHt7T9<~22lVi`Qh@@|MabB!@cVSx#F*wChZK}xee@Vc(8wvnECnF%s?5V0l< zsZ^1HKpmx4N4_X66-e2sfoI%e!SICJ!@DUqcdrvcSw5M`Wp&9+FIme;H8&Z#a0qm1 z@HBPfDPUMF_mG+)B~4EyVxdSpC;KqYtPTZACMo5z4P*(L9D*SCBUGmILS9dA8|dFg zQtzcycc`fzoefQ;$Cbpml8S`lGf^o`S17sqOc9Y`qJu^`%k@=Ej7>vl%zX985WH9r zh#6wsPw3)`sgiIUf)69$a3Uwb1 NZDk|NFRnSj{RfjCT_^wm delta 2455 zcmb7GZERCz6z0ACrtMbP+HSqHyKA%AUFg^p0yG3L88Z%?;X^}|QM>Jq+iTZ$yLVyz z0Sp4VnX3cOHJTtX^9TBan2?z$kvLRhL<1xk{YN4i<5v**C29WEA0pqJ4`!5p#`}VGg-0(=?=jc4w3jMuwlW}5eO%PA$Juw&Bj}@j9}))gT(Wh zTzZ;pfL7;Lcb6QL_sOAc1pN=gxbr2ljnY7EW3A^=WJmX=f?Mf^?_D2r@+LUz7WPEY zCkmoCluApvq$Z1^5EWHzRBRJsF=4kX3DhcRSwX{hifUg<@wriHAf=|VnbLw)LN=%2 zcQVbELQ~Cyu&d^w2nF}2GRe_AL-uF0>3L8AW*XPPjT+wR>>o>~B`uLosqmuH{}ev8 zL`su}4KT{;$NpEc?1+>e++`_%auh${L~R$DDk-%6d8!bv9K#15lTYV_sBzpVoOi)o z=$&3U)QbRzZkL90a#BsHm6=(XaB#%qC#OrH{io)I=G%mCCqRJKWdb<{Ay2HX;&@D$ z!~{*Rqd|bf0SoN(`y$5{rFI8wtY6nzwNriZE7x<%B%E2kj(k!|yrjw8!kSQXr6$Vj zXeddn*HR@aju|HFn#otC(7vK3<@u$ z8j?RtWARF*7e}WH^X`G;A;UT}mKlgY1Ls@;l7M*Axz-D1^1^^neyrG^zBXR9V3p9= z_-ln<`IN4vx4KVXT@0ERn#gCEORznv{DD}V%jFH-mdnRzC_|cew<^W1xCAra=w8K& z0d>cyG&GnUPNp)3a-AA%XwdRG$dap;^xPF% z<6S3sx{#S(W5uJ{2VaNd&A(HATNZ1F?m@XrKkb8(I#BwC&d3_~X10cxU9{L>BqA== zt%H)5Or?z^oQkZ&|CDfQ%-)XtO-TFft(NahtL-M-of&^r-H}NSOEjK}H@!j~Q>xsI Rmp=1j(2a8U?7g;KH93>JCMcR%5Y$YLmx`HOi6_4e=*b$;r#mkT*EIth z`d*l=1+!6@?fIt&0QSajz}mq!_BiAA^wGw+^MVd9}{O&DNPZ1X{A=? zHK91q{~`tr9mS}H)dN&mj3bQm)X=iRAEgA_=U zDpSlm3+Xhiw0O5(@hSs#4G_9e#4vxR|!-4NVc6xT0?+@t@0bx z{$=w~D$Bf<&6+Q6F*t#@dReC#yzZS{^jklsfyiUwY065X9?O}2qMI9^3#P{WCO(P! zt;uXxGTsU%K%F{%2w6;Kh{-jABub|6rQR4w5z<*lM5o^qf!juNhN9?Rhm90=$7*AZ z+Bj#mk)|k3<_;Yf+pUQbbqIgxn@L*@`KO}b9vD8&j)G@hdSayNrd7`jp`Rmq==ZEe z&&v)yeFXNxs%NunEGV-=Pko5a1&JgRU~2|ha+ScZ7`M+4qwqV7K?nZDayS`cOJsgM z1-ViYB)U3U(-MuxxvCPM{xVSMV+EV`ub-&3=|bi*cvjX45@#9%=QeU?3L_y+uJS?8f+2sNMq;SwkNw z(d}5okL`naH9Sc6)tWEXcpCl#z;Uffk-oa`WS K-`G054E_Q{AF%KM delta 1170 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 L!`1g=PjdeN7$qa3 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 87cfbe1f927abb8f307433d4d5c99df9c59737ba..04d489d47bce867abe305b1b1b1ec7224dae2141 100644 GIT binary patch literal 7800 zcmd^E&2Jn@6?Ytu$20cWiL)^*iMn{jW!WU*Avfx_aBYe&paAEa`X$c5v^-E4h5W|nXQzgW&|e3925q#fRnHQ@-CRbI)> zF9hKGnqv+l)9Z@J^y5Jgd2bnh;)Rox7GmAP9vhQDPa>bo$lp%2#EYQ``9#Xk%Z5=X z#LvpbOpjf;;5t4_cay#;o2C$v(@zBSCwwY81n?$H+07U)JXwBEWmpY-{htU12T#uamGPw?lUCBFj8K9AoQ@cR;e zw@G6dEpn8e9oWk8hwzsCT;UeINoTv=DK$7+u(rnp5A5w!UO$Pn^m^{}#a)q_3I8nG{&BLD-KPHy(KJ(S@ejd zWScKxm%ACne%K2_0hq<1wvH`NIf`2Mk zszC<84-(ha&bwTFa|l$jX^6lwV0{s%{0Fmq4uR*}Db592p_y+T$Go$x!tD;<)Ubd( zK2KgzAlB)^3VcyLF{?*jgCK#!E#y^5T-eJ`y0+j9$r6#0=aeJgm5}(^lOa)cG@;=q zIDP)NQo}r~`{T^I4cQzx%(ab~psSP<>V3to<*RJzY?w9Q$Rimz(V3+>Ra*IXr?>KN zAoF`b$Ip>8=75Sq?tWlTD#FS8SFi3}z1qIjzNO%P>!GS~y1s2jkvVzTY~yDSXed&k zNrhB9iJ9FNK{;JQrm2-^$Tgb{9N!`Oqs;}Wo|&OBko>)>e7h&e_n*i{Ro?;<=hQ}9 z$8V&RqJ@h%YXW~*m9eIl=DwTCl^>tpWgo$1AHr1|e6e)-ht>6!95+)WQDFTubN3SX z{9U_Txzqt5qpG;ADHm(8QDlV7w{eIXW0a0n@{OaBk$buB!ex=^R+fxDab|8VL-NdK zg=V8mM5Bt)qwA3cC5N0x!HptgvZJ%{R0fCEqi2cDrO`$FcihP#7oimjg;d`D?}}L@ zX~oGi9X}nth;3yZ6JiqLAjyx6Wz4W~=sK1o(gQ{C*o=HUHc+o*#}1AJ=%tN&=#-&N zgc%K)KrJ@yFVgw~X|1Ch?jEh3pgk>V(GnmdTUOTyDZ{VgzpNtvslIBV&g?#2l;x4| zw986xe368GA~=pXQdFWNQ`|j;Deh#ZNczV|)L%;z^ACSOx0$la$+!y(2^4oku*6%YE#eQ*i6ywsIkDtn%I6FpyR+PubpNidX>;^t7 zP6etF+D_aCq$$nVZO7jUU0e*h&EiL+;V(Id3|xQ9$8tw;B!r!sTZjLvSiV5ZbHwRE zsrYxEO7T2{ZomK%E0g}{HT;)vbto*hju$!?>LjvK-0we?xTvHQ>{}4`drI6Vm)Mj6 zH0(3YPKSK5#KFm|3H+nCPeBL#D`=fI1e#?C953)MK&WaozL{OhaZ=+h5joXsxm>zC zHoeeAGa);k%8Akoe|Q=%jDAnl#pcQ(&#K(o!f}J{jWGIdVC`4ZtNh39+qc_;DDaNH zt+pL63?k8{t7>zWbjZ-R5z! z6V7ZDGM$&V70F)v)%HoeI&WUT*2cdZ53Ug{?}kph*S@J4&>pjQpuCBJyYl~)&KgU= z`Ue0bRv&^+0hjU%GOo9Y%r0&=R!U{YhJu3gF+q zawUiOu{4FGA0HuU^_nRde*2S2P=8i7&7IlAa_L^=7y4Y&X zQ?Z4syehUvt29*olgha62fDv_AXl%?b7aAF=W3arWXPCdVtFW){nHq(cltahQneG29|toC*ngs<60?@jSkj$O{p(g2*;(Mz=p~Lw)vLxrjg+ zpm_$1IJSWf@4y+Sd{M5Ni3p5xO3pg~Rm;X_5u*Se467y_U@r1aml&?8nIeM9sW4`V z9T;dRgX$daOhL?y>Pm$YOBjzF^o12f*9_Z<%{~seLdtp`5d4~4fif{dK=moWw3U$= z1BcFid{Ee+Cv1YYwdzfv7S2q3zShuhri=U$SlAqx$< z;vp81da(&E&mr&**(o^WC%F(|e5=>Pbc_}?wYFV+r#+ zFI>L~d#*+UYlc0|lOs zvQYL!I^JMqWkRgpPeLSN`ZTA$w`FqBO>+UAm&%_O-#MV@$?G6o5)txdx~8PEd~X3LX4iFAkFEt z+|?OPhcJM*y?)>pfKa5*%uE*4jVX?ed{?z-eTqNwZ6qkcU!3KYy_u6uq!24eC_$uh z*$P}2mWEAnjMVRB^Y6kAZ>RSW4ro>*uwd4hz6enSuNRqQYI?btRz6&Ie9KL2!px9X PHEl|ESzgfh>h8Y*a6E2f delta 1155 zcmb7E&ubGw6wc0uiicQ7kKmT(b?Uko3;qLFfh!%_rC9a@0u-4Kd1Q-?G>^Fag7mfe1*{6zrw!O4O;45xW7p(UMh7GfWNHjKp+9 zL#;kU5IwAOE_{xIUf^q*uZw)m(6MkQnTPqHcnPv4rve3f7#K>iWYTs!&2*VA8C=-S@B8wbyWBZ?&nD6QXZCh{B1v;bQCb_NUKpgCrCZ} z7gAi1NATEzJUk6}!IPdKh1lfQsz0~_A2+hAYkWd#9bshk=}m-gP}1E619i2*|3|~( zDTY%CM7)1|dI90uDZ(gFzNj9h@vS%aGB?V)ZrPaaP+NRH<~Dtc*SP5u44PhvpWg~9 z9rI3^xmmlXviguu#1m07>#A-r66O;kakKIQw;PBNk&6hX#>jvxt9J&UNZc@8Gv``t z$3?o~adU5h-CFuwM&Wxmtv(mZ`7y_}taeb|E{6df{XxQ^ng*xrM&UxMO$ W2XgN1-GkwS$?QErhSJ 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 a3bf5c42618fb58ff6bb1664f8c4050147166289..4e3972bdcfad2a2688fdb934d84af35560c1098b 100644 GIT binary patch delta 2066 zcmb7FTWB0r7|v`m+1c&P=GINv>?S$ef=O20CM6Fw1gWNhmS`Sq@WsYtFDIUvW@ooE zv)Z6`<3k?`^B|n@Nt9CPLmx`ftrkHLDuNaYmST&btx$cic&Shdg% zbIyM`-~WC8Kj-S~wLSa>|G|9f6aEUvh3IweJ8pq4wO`=oDJQ1rWXGIzfF#KrNs)Fk zWPVOhcBey=Q}lGl9;ui!a=M{a3r1DL^q-E=RMSp&U(lYVyZKkS6+7!`e&_br$e}8E zn!MgfPL}9T{FmG@a2cfa&N%-L*pAZgg_J~G?>AvbV>@wgr_vNZ8a~CHqL;!iNwZ{# zERo@P4(xmBPT>V%_bV81syaO^BzDL;Vpx$6KWmZjl12K>pxbZ@x8v4(*1Ogiq&;r~ z{YB{JKi!gSAwW065HDwHeh*{D-&#Ox~KRauo;(&aT-H!Nz6 zJLU1D(Rj*Gp3THq z^nNr+&%~xe7)uODvv3yj+t3m&PM=0lM5?%v>wPbEB5Tp!nZEbFY#un*D=RinF(wng% zniR*kC73a(#NokagB}(Sa!=8(#2J`{2jb}HW`rc6TE2-u&z0xzX z&G#X{0ZoX%1{BGK9u=hTzwCHtu0xCA4;%Z*m z2M;gle^idQ1m+#q+DgCZea@Fjf`dMW6M*}XE>|Y^WLv42Lpj59!f`_ah@~9&7C*y+ zX+w`msOMW(p(x1t4ZEh;ZtZJWopUa&1v0!~cX7B-E|stv{K}chbQ)E(aslh?bD3X9 zYPD2ZFO~}^o%Tw4tdGMc0Qvy{>G>QPVYdVQQRqv#ca(A!EDbnzr=}Q4=`8H-bwI-9 z_hMo?{Rg<3;c{Lv)+^Xj{$xv`i1mWErXMAy#OLjpBoWEb0=<#gMF$3F;PQsquU7^i va@>x(n!44#>j6Y7_u)@BBWkXMSq>d8FNGOS=p+qDZ962IA#?Q&bddWO>GsjH delta 3036 zcmd5;U1%It6z*(xXLpm`MAKx=eF&-t zGmFVXO?~j8FfVe)KKLNiyh^P`tyIyX5vm|4f`a%12EmF1Vx9%hxwDg*O&imP3c~K} z&OPUR_uO;7``!E9(6^Jm%f46dbieKUhU2{Sd+rO5af_Y~baO+r6c}nMNE%7%s#w(K z6ty7gIi;x4q__7V8WP(K2^>sq4N6&)Uh~}KPSIC_ZB(l{9)6OvlVhZV)R4{xnx$>$ zS*Yqg&xs6q&D+!T9GNbYK9X`KATzYX_Yt?mTsD2pzDrL!OBoV`9+H0F$ zHeWI?nNbLT4-$%pR{(IV0(gUlf;YJ_x*8NBSK~rFj%e|?5FO6sMNJ!?eUTpVMwU*) z=xj_F7!amN1-2Hwx9ZKhQx%s{3MElX%u7l^($&SpR8=D#uxf}zt+kS%QI{^~^OBy* z=QN!P!RB}n|D|%eR4}O-vzFvDMs`S9yidv&^t*N}`4fv4B|(GNbX6(NyKw_Hu3cF# zR>pK{xrw#x*?_99m(x&rj}UcP*Da=D*-vk z?b%alsu!Ida5+prsqdtphGKy_bZVFV^lalk+892^wa~fn2)}FuN{hqvHXorMheKQ& z_HdYi08wQh205Iv(r<_fzh0(Jd!6aXI=xfpu%-r9{0BYTAT0e3|9*qD-?a;BJo6ti zVykV&lr_tFM;0Ci@mMdS}Q>o6Se%$6%O#8S1us{w(&q!{AkEE~{ir`2g6BAbTr_xuPl0 z0~L~!avb57|DXxnfo-N$@D@LPjYq3d)>Il%v(maAW{GK#zJG z2N8AlK1BEc^Ri@py8_(WffVoWMv7G=MavGPU^>CH-qnA0RCu6F?_fG`ezMKb%hY1` zI=K31$CFM=6+w3!^qiiTQb1Zsm5Lb&^)G5GJ3ou0vI+zGx=nxOAE5;O1M&};m6M#+ zN6=h|;1b(rM;7^3!22y^kMAe!J-yc0!?%;q%W1|UdZfYo)Mr4L8`kE=)gv055o$TD z<}xmcHUdv9h=o#K(kva1xCXY)2|3`Qx9j^xW!{5{x^Yhi8E_c3uP(vSmd-1gi*Ee8 zV`F2&oT?P)IGn*ku251`T|m0j+7=*O)iG;3!F5T^Eu=6wB`)N&lvvEdcRnw%P^_#l z%AgX=r=;W;iIjy?F#33mxlDoGjWS&g6TNV#Ux3fy>3(!0iBe8T3WHXxUctv7_nj-79-0v>ig1?$d=2iCG8(RE Tq#KsS>;O7Kj;++RpX2@k6~YC^ 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 0000000000000000000000000000000000000000..74cf6a5cafaf8e48ccd1e68083c9bcf399f1dafd GIT binary patch literal 7352 zcmdT}TWlOx8Fn16*SogYvD2hfiPJTxtsUasv_uG51yxFlKo(Y2MZAzOnVmViXV$Yb z)0s2LS^@+Q5w&z4kUG2~!Fz=SJn{rWf=a*x;t_ZNBtTsHfRK=Q;QP;+>w0}FPegLN z=k}lf^8J_d&sS^TeE0f{`X^VSfIHr}W7@Xo+bl}tg6&)JhHh{`{~Xw)?W zr#oQSX$oeSRy(%VQ`9+5Ygz}LFoN7Sc4y-rpOH1kv)Q<$bZrm*JmlmX(C$a@_X7T2 z!rvCj47G)hl5`W=a=Za-CO=s+j=pAdtG!uBF`c>ghzai7TZw$-w5?_9XU3o36Nwq~ zkMiw8nS1;OOa{T`09fmYT$@;F(TWi{u!M-i3gAvr-DWPONhsb@_#=`_iX{0788`C{ zUX#leTWGvqot#ZU2_behBD4@@#R!{n5iD;9fGyo2m+4A{KQ(3*BQ?e&cP9!=a>@l9 ziCFlUC8Vm);+EG_-2JfY2LjlO03_l2u4P)Bb>BFEO}y^MIxpYuynLrS{`j4)>-4&T znx@%q;!0`rczu(r@?o`iIhn;(6g44`@ zWA}oxbVDhBQuC|1t(ctwhN8t)Ic24=z@w8aus{~j>R+Hsk7}NOfj=NMf3Z+Ae+XyO zoUSQO5qe-j!9v%8Czim{%2`(M(rC%>nx8tu355+pxG|}fsaIT;lhcJhzH+=iBp|C4Su7%G6jyZX$apkU?veI{5zABrhxA2333me(HFE& zzF>1p`R`r6t^ozDyhgTBE}-L&<$I!>o6E_yLHI!$4R{$pue{0Nu3pqO+d1}_4fhNV z$V~-zqBc2cJNN8P7Q;Ts(E?UKI38AIun?lYhYb0DAE{ZJIbYY9^KE%HnsGq*~Y*7oE3mm^X)hS@PuDX1AR;(vD4HdHROuT`i|#N z?wzhY@c7Kc9s|j0ROa@RRR;4c{rZ$4a)ql9VL{R{P-~b zud|!|pD_FTF!xnHU%=-5^7&Huov04UU;my$W&w2mqG6+u-~iNNS&&v08CnR`QUUX9 z)CtBIWpjD|v&SGRLr2|(sYBB(of$rRVP+=vhso=5;fB{}lPblh7hZFU6FG|q2db%q zZJjGB`2~UxpCdBYhF9>vlk%FJhg_(J68YNyTFN7VC|V=a@si<-xLDRPAr1m0x-6wF zVupHm}a2+RL^x?`W z3ZNs)bOiWFkJU9!3fC>!Fny4GU%xj|Q+LkilbLgz_gI0C&k(c6;$up_QX!L6@%kB5 zaW_>(+&kH?{#2-#|M4V%krVzN%KhDGn|^~$@11t-Pt$8_*!&aH0!;O@%obT*`b9P& z>uE)iX+0ko>U?r8bs`H51)V4o(QotH?o=KLM^j5$%XFIMf10&FWJFSY{W%-U+f||! zv>i`ylm8>9uw0>#sbXTbP{=pVrI0MXJ_p4}oQ!+Jd-z{=`4M-yGF5<#sbf|P=DvL{ z=1{CD@Gpb8Zz<-Ee+f_=(BMzyI2-;+?!(hblM4)=o?#!nKmqKmj?gR|;bew?jE$=1 zYXY%=F`#MSe6<5nTo@gpb4gW?%^_DJ; z>z=Q>QipOW{Yg!y1Ej1K&re@DQ94D@?o%o{Q$sD)bitXt(Wf3_+8f)>>r`fM>lUJV zKT-^@?ws<%GqWBTT}ddosFMP}rMqdzBR%gb@>_KFf^1oFNc~46?=~)FGrH?27a}GE zsvtC7R{;gxMeU;�$?(L9>!NH^ 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0bca994ef4057e1781d30190dfb6faf7ead873b5 GIT binary patch literal 10092 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 Dok`Ss 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 197ff07d66048831d00e46663d8dda5be403b1d5..25228addd9788f97169dc41f80bddf67a09a96bf 100644 GIT binary patch literal 12310 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 SY0SquN7SQqeDjBam&xCVyI&Fj 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 83d861d33c68f54bdc6e00dd23c2b1b297d252dc..97beb735498fe284450cc53e8c0387bc507509ce 100644 GIT binary patch literal 12248 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 L7w8NQn)Uwx&edjY delta 1911 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 I&{co?zhfX4WdHyG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d20737c73dd9ccc14ea2b3b42cbe9d63d4188cfb GIT binary patch literal 9363 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 TCd>?JRNJOtm&FBrvg!U8rA$j^ literal 0 HcmV?d00001 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 c35d9602f65aa34a7b0153ae0fb84d7110d49bdb..458500991f10ce8fc6842440be8499e8260b588c 100644 GIT binary patch delta 3269 zcmb7HTWl0n7~Zq@Yq#yT+sf{?v#rqG?ak5xr3xhy>IJE2y^z?l-R@3%cGz2XW}!9W z!UNGJg9vAMP!M@AKA31!0x^VW^nviAiHY&i1U1CS1L6Y#1@%8OJKLFdYoJYM=KS~n zJKy z2g&a?pXI15Guk(xvmgtQ3Hv6?8CiDB9;&Yd+z*0cX$Bu4m+TLrx5$t74s?;UHwFUl zCh*!R33tI?bV{PhX}}9$dyw=yV(1FBYFS)iMN7FrAcb3-f(q0o3Sd#e1e&eej5q6PNRE}BWlHeKPY(Cokoapo7`}HW#L@NU?88mnTE@;SV9nr z@l-k~#A3_{Lk7I9W+%fiCp?=Pow3*?{O&tIZS-n#xc*U(L-Yb4(z&#d&gaNKt~KkM zme%o1nit|}fz3)piXN5@N)c=k0oz{nw*1-7X3^60!IGEp~%M#)WI zZ*U8Af&<)UxWP8~vGs_gqyiavzp-aMw~1PWhqQl}bUY^6QmyVZU-KxZ4sXr0yM7nSGlye_m4BKI`V zP1M$f$<3xt`)nm2$@@Bo2bQu{ithtSX@*-5w`!8THTMZnoo*a-I2BmAVKUIbm?GR( zxNk;BwdgI%G4<#zQuNj>L(c{19Z?E+SyMn2u@7j}!3tv3u!je2_e zp~pL54i(h^%puy6`D~WW2_#^Q`LHrgxH_YJ23&9>huw_IpgR;EpB^3>|CWp)#RnFD z!Xk#Qf@!o#Mal#6I;w^lP1>88vRk&rx0Rtij@!oJ2pB{g&$5XOpV#nToEpip0v?$z z6;cU-RbLA6{cKTS=i_vaq-RP3%TKHD*0!HbB-yHUdC7dWZHVaip}Tg}8ddc5smB9) ztRAR{&cFOWZOGn$g}cD!Qt8}We7?xeY5?J$p_@Zz0&HFereQIWsj2ph9jjsHS3!$J zrKR!qBKg`M8jOf$IiqMSEJ&iQu+U5Km)K=5DsDpI$ZmxrL6>NSI#c;?(XQQ+ z=#T~3L^>yN(_kjrKp-p>SV=U?F+~>$*!e;xolFbTqO3oVDCXeNQCJws=2N8%E8**+ z9ad!2>3@=j6cWWbR**zyweHmB==+o#r)5@$VgQKvv{Etii2k5Z)flL19u&??o!X3D z%a6#xN-#%d$c`CF!PimNpAi~*yAoPAWurP$R5_ueDrIVIO08SnJ6mNsxGM~Q7V@iX zJ~`?+J3(bSib+hGCfAC4V(vMz_GMx2*Xp=uiVe z3zX9;CB#5D%oK|GB+K(`ikVqpa;0ox0nRfM4l5(c|Nl119Dy#(CWC>WN#J(+eHMl} zMO;nZcKxeGZAPs)O8)gTo?G;rROu4FS$kSW!U2dS+VV4;JT|x>UD{JDpH$c6jg}$z zR@o&RGZ2>x{d!ks(RdJh?&Go351`PtOp4dJ*5 kEmw5p5-^frHu3OT$x+23kHgS`tcS>t;T`ARZks^=0l>QK;Q#;t delta 1575 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 delta 1575 zcmbtUTWAwm7|xk=Cik?liLFg9lU8Xure3yN?G3x$>aA3<=#y=jG@~bDdQGbK!L|FK zsEqE)KYdX_d|6n0k|Ltw^+A+^q6qpTh`tKqgX}6s{Lds46ASKxgvmMQ|Nry--~XNe zoWJ|ubo0~v%!|4+{BbzuXg+hZj18AFm4uYQLhc=>&4I@iB5kn3)#jsea<3BKrz|%o zFz#xsG8fD8lg${n5#!*=A`t}ZGtvvw_A2;b-Q?LygS3ZMQ!B0cd1#IwBeDT~ieKX2 zLkA}5QX2i1feylb{uVi6gj^5;{9*J>!8M_S{AJj@wg7+Hu!U`{ZLS?dJrwC$rwG<^oM>}4^v*VOVa*>aymVsQ`-Pq{)ErAdU69Xg28h#T{584M*Nxv zbjFHhxr+OLhh27wJY-Q7C+9^mepdnWdW!NgOTe^@V@ys#tk3PZLf*nX$Ao7Ct)YXo zb{j$eT3G8mPrk4$aHqV~^BH|>a=wr7$aTBbSXz*fLv!v;D9LyWjt`LupA8!xG4)m4ehHHaCm#-m|KlMeM;}R)={Zy}ouQ;=5v#$)u8om#(TtM>3I0 zM-ypfxG>ew4-=JkdNU>~wUt;bu*2I!x?rpkLuYo%9^vy z)<#!pJ^P z7G^G#McrOVuSksJMPlUf+H+#``dZutdQTLqQG#lWFf~e;8qno$2x&sL8+46G>|&@9 z#wFXGOuR6LOEBY?1fxT(@W8*5++-x+h}+(9{aZAix7t|1n+oh6(hS@Uln06{5~RM- z5k-Q>flBg}VfoF|eZ=sL*NCoxi{5$xPco>^F%slD{N`_fXa#Q#s$MoPbF=6m{g~hJ zPi+VJ!~hqm|9$7f+vdQA%Rr>=K4<4(ye#4~yToaN;Ki=<(tp{F&0!A0C$S?`$5||z zZ8WB)r^Xar71`1rS5iaf8g_+#^>iD1g4E6QgPG7erzXUew46xlGCU7$$0z)KZT0N> z`V8TAbF=FfzqT%4flz7$|5BP`L>^WcU$H~-Cy;2&##VD@6JHh{mg>~cSWTG1{PKsBgM zzJP<)uz6E2-eK)$v%H8lkT1Mo?evfzar*TX5uI>!;2TznnE*dSzJqA2gw~@&E3VKu z{;c*Q^D?Mg@S?5J`V#17@JF^m=2a@Y1F}Ub^V|EFB`TY;_gmkgvL&{yuI%&(2#Tdi zbQE803IU7{)%*u{rh7-l~RGKg9lW8X9Vt0KPbAZGcdR~n|wv`=0DA>JHlx{bwCF!C&%cb=} z5q&Hz0{LaS!Z*B5^I-;G@psih)AYF^>}_0YpDIVhiw$f0H?71i7Z3+YX;Rn>kL56j zsx}26T&f$Wi3t68bWI4J+u=FDEb6gapx%twEfDM?71%ieyLmPA3;NJ2czrT;FqNAfwIa6c4}JJdhgOrcw6rB-C@h=*=8Zh}VW zcF7hn!JF;PX5lVDZi|ttekk%bm_tTY&|_s=GM~-zISGf&u{B7YB!b6G4}{Z<>l!;W zBHbqFG#Jq#-fvO}2|BR&3l=fvDwsxn8cuGIdx#q5Gk&chH0PqW=$1OLM^JDC&Vos{ zi9F9`#Juhx$Oi|ryo3fP)Z0V55)yoBnop3)k)A9`yf~pjTitq!OX{uXH1m74AY$x6 zw7S<-ImF}Ylrgqv-KyO$lKXE}3F_fC$*uyQOQmzuiJ2llrGr9vk~D>k1!!6ZW?zxZ zRH|`zZBwu!uSisP2%dwE`U0CGvW0q=&4pP-wiRZ(3CapzaT5vqRUSM|co1~TwUALN zpH$>ge32QQQ)HG3vRpc+2oqo{+dv@A7I;OrP>-?`1pG`PlTM~3Wr6CCa>X3{WDB!{ z*?g*$;T3dUw!?}JQbl&@UmMgI5?7q&B}ESEX|R4Zh~)YdMo7}j^RN}jw}940=C{KTi&K@nOkOykRf~ZRQZ?) z?w=|`5$w@*L4=1Ok*^YQU?2loA<%%{}pH8?EB4k8S}oHv+uS1T(e<4Y!@OVKbg&OFm_=6 bi111%5XFLs!jLl6gQv&PuCr%?`7fa5YAhB*X#HP8{3fD!C5;%?8PPo0u2sI0nvZ}87NgH)Ffz=Z1b`t0b+-r z13x(+0a~EZEGG`YnI3=~Qc+RL1u2R^hy&`i9D1VafdeE3)OpW8u}PI)khR{OZ{~e7 z^SycRw}Th9is!}aa}5*XMUsZBEe-oc$?Y`l-|DCG7FZ?+?~@22cBmKL2)f6rnYs(+IFz#!N0}_ve&-Rk+g%&vs#JS+wWIV9JSIgU{PSe#pHZ-K?;U8C+IN`Y`z;SnaR|ZWQF}}nXYPQT2l!SG`Dkxuo3nP@J(JTfyO<5m4 zMz!2v4rjPTYKD0~M1`N1rpSIqygd5}aeGpEbsn%;-zHZ@0{G}nEukglY*@+$0*~vX z@H}jXeNizHG1l_hjP>{`C&Y#qSF5q8R=IJr_kWhOI{0)M?J(`%Oir*SI*RIy{Qmlr;*fH@E z^GkjTwn%&&ZSZIC8}bkojo*UuO^zi@EwiK|h1j}^_7E0R|;f5dnIJ;6rVUogDP@VU7`XUnS}MKffMao4^3 z#D(X}iG%n7wl_QxWC0!rQvTBT)Z&5U9C(Zyy!0(QpGC?Z@WnE*2BD_LbR6w9@~4mK zmZ30H?$>jDB^!>!T0LL!H4*A&!or={j#^Xd*Yn!okfp)ju>-_Dxh?*MAbclGcCCD6 pYhH&mMhgFOrgKCa))`q2?=FKmF6C$puQBdN#x1mSayW62{0kHh;A;Q? 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 bdfa43d9342dcfaa29f02b897de85abb2c4d3e88..ea1a109b311b209547ce5e16956b4d48f1e699e1 100644 GIT binary patch delta 2551 zcmcguO>7%Q6!xzFVmnS68qz2~&6v{Kaa^M`m1v_XP^q9wsiF#kID}%aH=E2(?OoTq zCggzJ9FVBAAVsqX^-v)pgv5bE6;KaIaNyon0*-JfJ#YYo;KBuo_jbMOaogm`O7`x) zc|YI#-kUf3SMjSe@$2yqi&MMt_byDnY_?SGg05_~lt%e2rLM0lw)RE^{uP%duedbj z#8$PpZI`>wla(X4?`0)P=08c7q!)NmJ{4E%ie>RN`F)A(elXD~ptD)eTY*NL;dRYY zD~e&5wqon10iI`f+;`jpjXP)7&Ko+aptywD78cJCx&W`}L82_G5I|BQxBLj&0 zNHWy?hp@}qs}Rt0q+4F_ma^r)+f=cMsu-lEk+!9+6Wb)J2^d>#)g~bKVG?r#?9h0- zsgW(+rk)$2^+>f^scdvwX2aV`l}fc*4trGnAL4u5yotMNl0NL~{gjie>(DPsU2KIB z53q&|m1$HZNX{GEX#!VB>4w=N-8lxsrJVMo zq;TwP=!T9HhyR=$>%d?e?TIRN-Lfk{OG6~3@JOJ8gA{O90ZhCpbdza3 zw4N2 z3JeC7@Sb}Tb^o6p7^oOXotoBygWKsUQqReu#zBh4x{yxEDP+E z6gd$BbPg!#7YKDhXpsp>^mB*;P!%Cqx0Em|RI}0044eNd6%Ti(J^KbU!R~9g^;H2K zJyr#b@L8zYt->dvpj!o`4Nb?zDrAHz;9`d*KrNW*!D-IE1z}JfXEK)~&6cTZ7S8Y5 zHZj_b=JvX&l3Xrmy90In&V$ImgIlYn&>5VfIXLZ)@ls}Js-Fb^ce-23XgWQvEWOJ;ld4z<^VXX?;ROkll}uR6+R;X delta 1131 zcmZuxOGp(_7{2Fv=cOX%3+tMWT6i^e(aKze1-8f#EFr?I#+l>&XS|Q;&RDvLY9U#i zMfD%6U7LuYqKCAN3S301+5~NaXjMeyKIojejvBg|bN<)&fB)mmtAW)X<%+VDZM>x{ z;v206pDBuAu+%u63pwIzt@XucjgS<6CCA7C>`m@RC&@?){z;~_ZVuWc&)}ET2pPdc zHM?*~>BWvz7g@xksdh4e`IL`0lwoo%vi?x^HcY_jS=a|>APvLN0u`_uCb3h^=*dhO z4zJelY=kv8|39}Q+5@tHKecf(i9`Cy=Hiq`?XW8_9V@gyIxzl zN%c$LN$v_3-6|}>Zni;iCM9y*#(Py0I8fV>gqPB(5}pg~(}>)u>b4nBWuS5Tl%M5Mpm6)>1i^FCOC8*t?7k!p_&?TMVAiKV2(7kC*s z4IgCsL3l6Huax^U3az8FQ^K{`{B{MmO}G)hf>u?JvLvG4;SR%8-pDfWa$VaIcr31u z1kjV1O1Y>EyoeP{J#M)H4PtJwxBryp;JAhC*|`#(-qfZwpaiSQxgjlCxwAo7Di*TR<#0TNx~3Jp;$;+H7VB0!}e6c8Ig2KhIf}P|!I)=h|+_uQN@E;k-{dtDti> zkNiWcl%*l}Y6Vi{ANbUEr(K&bGQ*!A%om;69ObaUbRpq=t+87yzo(TGSBN7TtP%}& zV+lNIi3jN=1iuayZmah+m_O^8Gx+!i$@rx33A+u8y+T^yji_Ps6@6_v* zuq*XuySy+>JfEl_Z%m51LjyaOQEfP1$yA4imYd@iUTioh{sB9TmgP?ke@XHhS^n7c kt)j~kf!?I}1k5N{c`CyL@j^UlxE?^eNH6TmUv^E9f1gK$?EnA( 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 31882e93b87d62657832ecf586b1ecb91c96c85d..d5b84efd9c4eb8bee5b74716bb068765a953446b 100644 GIT binary patch delta 1100 zcmaJ=O=uHA6wWleCc8=6SlX13CY`h>?a~%2o>Z!bqKF_AJhqh0X5#GF&4%5LG>E7N zwZekdS@Gn-gGVVfS5Ja}hY;ilJy~!jyJ=G??qS*Y=KH?)-uHGs48J`n zUJ>t3q!+~b?(_-M($Ivip0iYA^a8RRG&i;IAhqj3Xz6tffVTR3unNFKx)#Z|jUA%N z=#4rO=EJR->!6L^i+=1ppeW~2O;O-ssFxiXLP)>JxoO$Mk!cT0ZbuQ7^s?^gW_e~- zw;hjqLsz{^-XIq7o&eMJ4`xPpkkJBkhj$jCucYjNUty4y5FBLffJXv2{U#j&8x%@P zY8_|r?`i?3@Sba)U!NuDT3i`f!&&?k=T1i%#APcF%Q63GUt z)JVX@_iYIN%FZEJq2sYhAky2hQ^KULG;*1o;Us^Q5NqXA(`I+5G;6Aj)xfhDLC4Yy zRY$dIP_@vg-1_)STWvCf1^sBo?mk~>H8It`gY{A-IRHh8{z$_=8eJrLs0p!76X zk;WNPV##WO_u??ij+NN25z$P;K;_oo*v;hguwt1SvTam^g&HhZ zjY_R(YA~N~&ir4D?*waRk=3{9LOer1i;-^fh=r_yMczQrP%m$fK1rN}&)K0HF$=`0 zRggzs@Gx3Lwid*6puIxxw;yHqbV=^5Z?ta$@Tb0>TnX=g$FO9Xy=+%1s|Ml>o83vm R4{q8x&#os~u5Wftfxm(iWl;bC delta 629 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 UnAs<;hDOOQ&I_~#hn?2{06e9(asU7T delta 1742 zcma)7OK2Nc6!nudvgDs6C;Hf<&&ZasG_hpYw6zIMi@;6;0;d7Dq$#R9mYzMDj6Rk| z!7fgdE=pV&TGBh+lok>wlrBP(Xwg-drDRv|x|C+s4-~RCl-@TQiE-nQE~NLl_nvpp zx%a&}Q2$urZgQW$J9V2oATjte5f8|NMML)Lu64Sr8DQw32yu0OC!B-)0Dn7^ zWEldk<$x@yTeQ4Q=X(=)GBi8cTjcta3+T6sew|w`&i#CZg??av(nH8yqfL$OZb+Ke ztZcS5YRK^dfmeqA3VkUGqIi|=iK37eD>Y5b2-&Ovzm0{$L(Ei@s?@Z#w5Da-2~4C+ z+cimTca8N;g_g8Aq2ACc^_rxbo^WSmW^j13t*TUmpGPJ|uUcto8x@UKQKQU<#&sht zb9(0F^TQz~s^TUC13g#eHC({@=vi_eJ{`@LS8yrwN*;&yrX128LfZJq=;C&_<*4kG zV{3AJ4IR9?hgKW1)T*@X=W`})!z^J)ccKP1kSpw<@a6v;6wL^aZvs;(N%C;rpM?eA zn8%5^oMRd0{Q}(2aB$Zb3TB@n;biP-dhfGikaSvE1-Cy-Zm`3zSSx;V7(~9wwc> z6dX$NolOcSuPg%@Pt5A>Zm%0U5skKdMtPZ~6H|h0h!}?J?j=+P+G+^H32rdQFZeEEn zGM@xf@Mt1Q&NAe%mHrY#jvY^bG*h5^tIcM;X+AJTehLobQC@bN7jHlxQ}JPFO6mqS zX}z|MHxz!F%#pVku4kPA^2#O5A>r4(O}bUCSEWkL&>f9Ecrp__qwO`Qp*!hr$uRAj z)ZC_;pz!SBT^{xU^FcUxS#K7&|g zlZ^5e3-Od`tJGV=VOASLf2v6p)sW!zT%Ne#ZX(|KCU-;}hmOwI3y+<%_b^cT7XMnh bm%ZOCyoIl=!VDj`aNpW zRa0G6uFLL>WGBu;6pwTQ2v^7h^{NeqIhD|(*3%MOU7 zi5(Wy4qr_r)k}c^8spSD&s%!Ily!Y<#z;P`m`PB+^o;&~$OhCV;mffxq^i_fw>GRZ))niNwaMS;TK$1jfP21K zbX)uEa9b0)y|wFmY+Ji$xCx8I%XNW9n&6C>fUJg8om+~v$j?@Wm*~A*FU=qdmhMP= zNS2I>O1Aha7}yB_Vw!`Wr6~m(#XGC0taUJQZ$^PZCc1(y5ex6Jlmzz@X1SfA@K3sa z5Ce%3U={nm+c)|a>wfwW8uGf&bUyl2=cCVd4?gy6*R^}yKonDHH?m{4gTeQWAk`}KshhOPa^RH z@|}LD3h%_N+#2yzPWH#gPsUI9<0AP(a7xp)_>%33^+VC{X>u9)H1egK>CYNwf^iRw z#Eo^~ZK|{Ki%}8;ei-Y~$Oz*%5}($^Bht?gBr)uL=x0^&Yhwypl9f3p`D@9`-yP4( zF)I2S$n1{_1RSG`e`*-^dt;g>RnV}1S`6DL|9@{7{I4p5Pmwt0oLS=28wTJabI`df zQ93hgr8VvxA5ba+?Q znhEZhxAoZX>+nl)lsXqqEMO5-yQGu+?$=VpUery_p{X6l=h(U~R;(ATO(_Tn=98o| zVcc@X?fYJ=#-?g;*&?5bFfy=Iv;WAaSgiS>7UACr7G?)7)5>6v7AQlLYe^@^`&@kr zqi{Y1p)_Dj39(?i&STVilmA~^lTTV3&Z8Nl!VR_uHgiqAw%92#zo=JKQdVVM>kC-> z)AdI-H(yFBXcjlsAdN);YzlHuyp(OGA^^)hNHI|ybN=+-8`J9-*`E~p&Wbg~q z46?x(C0ZR_9j{f4m({X{TA(Q$;dOFbT=GrY;SW#8X)owyIcG7Mn?6u2%!iWBUN-XLE@%gY$n1`BmLA zmAzj$uR&!0A;z2p=jsBQBSpfwR#!sg(#a}0Gr^f?m>td=4f@KdY;03f`@~$-Rsl`I zdmQ~|1hka%Jb1RoSGKP#3Cm6c`6aR3gS51Rui8b-WI z*qpAACUIoS_#aS2)2xaTj+yxZDBuGMzqTq}n=0qrInL0sG*fRbGp&aGkHBjH7_?`qt+XO2#UhFuXxvE%<6-9)_DZsyaU?uC5%ty`}aN&-+w@S|L=1t@4fx| z(xbok_P06>plJ?2s!`EJ==)6wYsRQZdWYr-s$o9)l;I2$WKmInhNf9mM6tzuQPDZj zGEY>r^on8AC-Ln2P5xRs+aG}hHJEQUuPi3|Tk3RdOvHEYu*2J7=!a_DBhTG5(`Okl z4{)+Z>$;$A+Op2C7h`5N*F0WrrCP~*=Yl8;N>TjVT%xG1JJ+C>e-+xCw(juFMh0>M zr?e`m{@GkqS54SncPXFZa^c}$1I^3O9&keSYVGc?Uihafng>0GIpPBRzJ zAT~hr{P5h`ED{-zGs6rw^3^r$cW+YW#LYbk$ucQoZ(CDp>^?&ZNq&snR2S_D!|8O| zS$Ad*S=n{0dVpMl3Dw6L)>if0?XE&2J1EC#qOhqBEzr#1?|fOg$s3^;=@;IdoNK#ku@|qE9A5who1}% zk*O0L?hs6>9|P%l^iwp-hVvr+HLYQM3A`a&Bjum`ph-vg)F;Lo8Mc=?cQG+vMnQZS z;H%_mK_y>B0Xqm>yKl$ok*L3KgdQGS$QsE$Vakt-D=3)!(UPW#jc~}~l%K1MlD;51 zFA(#^Qt|}ka7)MmvD?XQO_4PftFm@}2?a$s^@yV9nxRQE_*JE~^9GG275orURqatx zaa5bO>L|CI&!T=t1^Z|^lY*T+8dO!$TU0Q+ikt!33*9(Fda~$`O=Ac=SJ|Ci4ViMH zURCxR$I3q1n;`sefR0S~m&S!3Riyt-YJ0qa%_IGHG1U8%{roI|v6ZIdH)T_ri zJU8sIC2;Z@^K%&%>&+z&RhQxXgt&qea4N1LFQsj6ZIB8w|B-q>7-ar*id+lFKkgU) z1zjHqGS_RoPC(@rH1y*sq!I+GsH9$hFM3TtrSq4l$$hvy%$pUA3#XgSSplP*ejYFq z(M@0+3%HuWSZ_W7j908{5b@8S~f>Pc%IU{}8e9 zy60zkZ&6kR6k4AU#z|KUvW;Y^Nq%)ew<@yR0y{EB-YK?;5%Np3T$gIg@svEYd{W*D zpeftP$U7x{g0(I07gR%6H8r@nXJKtq-xGYTpWw@mhcs4smt>cp$xGxt48B6=c=+mr zYbfV|33;z%fJ`Ce{Fy0V`n>o;RPL(QcX=zjCxKjFydcLMUx|!SfR|M{4YHrSeZ01_ z*CcfDc9xP7>D~s_V!A~sSbkyP`!S9K*C|RTY_CU|Vp9n*4 z$P(r<3Wy^8z8zb-*umha3^QgOvg;&ZK4c=P*JbyZo8CFe+m?X@;Oun~k-~uuS;e@) z5S68iChH|bjJHM`C&&sdLS~Fm(uzau*@>z29lmCJK@#gY8TaWs8a8K1JlOg8jz}ZD zQmxb(ovZ1V;h8QAA!i~L8K!*QPvYt*i(-_NZ`NvRLpVPmh_A_UOB(XtSE?1Y&iowl z5J6BDMC6J)4QE}$8z#7Z0EwH}PoBi>BYrVt_*iJ_CZnA?rlC74yL<`8GC;O0Bx0L7 zE<+6L1KcFxYeo|LdRfFz+5pvA6COw}fCs^f0%UQq5E*+k;JPS*biIhwUls)sOH5zK z-3zojhmEZtFX-7uSB}OtTmve)#w)q(_6Tt)wafJ$~$(rc{ z+XZvDoO79;FbQsWh~z%p4#8+9RKAL9T2Q!r1w_x2RRKBP5I}V85w_efpL>$81uQ5( zn-DW+sHA6rb}|nBuocHabhFz@S`^>W0|MTcH&9O#xkv|RiGzo%VFGUR7O-n^bA&cB1~?lO;Fcm2MRiFUJZ zA@Q^i#Y=mGl!XYDAiVBLc7M8`2u- z=Gi`uFW9KZOqlQ?NU#`AG>-VCK3eVT3`>Wrp8`igYKiUqBHni4Eh3b$L!AfO8&10a`Jwxx-lAe!%&3v5IEt)mxL+pfu|z#@-A?#fReNH%vp5G5P$$I5 z5;D@foupeWk?mjx(Dtb3y9FRb(}!w>Me9~y75=yahnKKyMMlY_rhA1kX_;BB~& zzMqhTNcn2tcU?#tGQ~2o{9;!AF68jl^c9!`QZry!xC#@|Ff*iHZIhf`<`-xUPI{gH1}395+W-In delta 1939 zcmb7_Pi)&%7{F`iPt&za|HdtG;yS6)ByJkosudLiRVx&MDs|F892i~Yw6C>Inq;<9 znxRPr2{D8Zg4mCjYHbXne4(5{IATekS-uRRRot=?gJS>_w~ zusg=ggW#R-SLFOA+So!*Ity6yCd1B4)?K_v^p=QT6?^~jKib2zYv?W<57`~0n`n1U zHceg4l}%(|MObEFq2~_wwIoW?8>k{lVoFjArj!;ZCq?M(izZLdt%AIb40|)L8s=HU z)K@cNv1F>nf}FRN;nv9z)CT-1TYpE+mzxbv6)J5E5}n<-az2ktsGST;UDWlOYNBld zFa0*Yh*OHsnrfeyz){-T7}L?=sA{j17kDf9G`r5g7l{beLVZXkGKJU9kw-bFa26}3 z@VmI~ye?KEibsjAD8dR+=&}N6yQIj5YBVR|vzgQnn6o?tP?M84-Dtz*2cnIo#ozaU za!fJj;C^s&p9}guB%jw9_$wZVj|P2kZIDYW{13vN(T6L)O5+k9DJ=(6{XD4sL+od6 zT4x#%4%$PY;${fi4iPv|t&r62#34J7WN)|;xJKb_1koemrJ$o{J|ee|=7{#YniUOlU9Dw4&M!eF)36qfS$cGO(NvIFl65lZCelTF;Nkoe zMPGe&m%rZE+8ARJwPqx^6`o_K>cPmwiH%ms(3s7m#aUc^7_LPlOa{J+oMxYQtwM`b zo!45e;F;*&K&yzP{~Y`jon&8iZTYsg_OyQqcll4?P#9q|?0#=%pYwTmEe*A}#Eii0 z(UhOp<|u}!xWryO=5^s=UP91HFQdwmt`~LtYP=T{Kun0d;uH(yQ3=H%h4MbQW`(U4wR; znglkGvF^MBOqWj(ePqgN9?KAzS!BHMb5f|PGxwNo&O;1>i1LN$*}>{Nv)_4=HR474 fll&Q07wtpp%OD>Hjc&YeC^7PlAp6zg{8{Ed6q{!= 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 566482c2d63cfacd6c29b632486cbb48559e758f..44cc682faad661da8dacb5841c7b82c7c3467905 100644 GIT binary patch delta 1388 zcmaKs-%C?r7{~V>H@BT_>3*o_Hg~2KIw$6mA}>ntq91w@fnokg<~;K5&26@`Wg<~t z1W7Ac&k72PenCOq#BRFoGVr1V`vWS7j6%8=dfv06z6)v>JMWM0^L?K4InVq4JhFPs za?Nu0U8rceK@=$3ykw&IBxnpxZ$35?B9(s-i$q?-Z+lqk?SlsScKNCKv_)LGMI?A8 zfAzeKL@ua{k%-c-B-1%rQ51OS2nFRxBz{@d^mQ$ljVhV>Tr!i6&*=(hU5|u9*%_;^ zn^9+z=_KErnoDXq_#k;>_JZ%P<*8&&O_iY3xm>zZ>Y$cFv^p<5a6gjpLO9QKTR8H?e$W{9M@pe6&+@sToI&Ov~|da%6%23 zy&xy%;+mG6O{!V3q#6XEmp~f}`gqsy6wlapqLPvOa9hlZUb`=fUU1RVOoI3_LHo9o zK7&cGgG{1H6oPx~HeSsbx6{50E(j~#TGe|{Tq)s5KY z3Pu(IR@YL~!4BZFn_Lx{E$Ob+%$7K_n8?hDRW4NWpA_@Esu}{^^_aS0| zPwq2h9Zmb9Yesq`$k8?9bO+sG-lF5PbD4Ny$;GpOO z4?Hd1qQ}k`5L^llAq3VvA@YkeYZ7`ih;OxlAy{;UTMIgeI5$4jx zM)?-XMQ|G&kxvB2O}`l`hk@>kF-LS(vc^N;z1!*BgHjW2(EzQ10e1lEeGRkN;?_ha zl~VC+2*=kS4lDE7OhVN(bw-(9RMPp>{NhX|p@hTRo&R4=i_H;a@@(>O0B*r&ZG#bY1iH(-;_$SC8!`GN@ delta 1020 zcmaiz&ubG=5XbYfyZN0=SWLD_DWaktj6W`dwNSCA8fs!zUY=3qL;8Rwv1E_#TSW;`%vEf(;>Z!?aKP7& z(`W=nmgGDy6h6DBP$H#%Ujzn1f%{!DO2L^x8aBP64{u}TlE8Wzf{$GZ@cX6XQKHuS zBZt}1Qes;N;+xX{3%42P187e|wObOBBm-~!{qW7-gD`J>tjVajKO^pLXGG4mH|f`R zPZnMTG<1)rjWmhuq@Ai0;bWhK&)qUA?nWXqB-dL=pb{L^Y*%A3sEu?whlh#6TN&5^ z*k6xc4W2*(Yz42Nx2){3z)B-1$0)OrlRkJCiUm@9r>1U}D|su&_EUw;P*mfaliV$* zQ*R5@VJs9!pST#cDQ0yK47O2mK4+eA2(5BOF8qrr`OxgmjaDEVOn3zTVU#$SF$lSE z5H1G>U^sG7+hPy4yHX(5Le-$;FE>3!!@SY5fky87Y**2+@})A(gRl1j65)$CRwKRJ i2#wTm|GMDvI2{fm!i3V($*)gLtg-)wh_&0wHS`ZKiZ)dM 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 9d1b0fb98ba0c256e760541469e3cbf4505a27d2..ffc191e50abdabb5e118b7a95ecd3af2243acc7c 100644 GIT binary patch delta 1506 zcmaJ>U5Fc16wcjDn#m;DWV1!;?wosm zzH`oZ@3|ND{<1%GDs=AZ=-JTe)acXohC!b+^_LoYb>}Oz(V|Po&VG=+uOaa1*C|2< zy0^$3LOy~qSsR#n1P;hn_l$Hd*spn$48SG%>K?67D8EcQg@U?IHES(J#qS8CYFRg^ ziiVwv&BAjwi&%*TS~hED%dFSnx}2Ux)dQQV`HICu_L$qwB^VfNIXFT0n9U1;c=7%kN|bTHoNKrV_O^^x*NU4?`pe#!qe)>|WmL9Hd=!6v%zsGCVU9d3hr>ij6Vj_5ki$|OL6(F9 zS&DfqIjDlDq)(JcWw>6dj9l?~f3u1k!40}kMigZ6BFnL$2!@a2v(kBC!Yh#CpP+>1 z^TO;A`5^2c+((vSX|O1*xQ=O99eho`==kzwFcRC){@&0Yl7TN!J_OeiMWR3=aRfd~j!Wypd{P;Qzmf-~(12S;ga=W=lGmX+w2Q0@Xe=trd+6OR zQ8p%KN}IF!_o&d>LpYV&=WL72*gBiQ%@mrx5hnf}u0_Isz#qSYOPfveTln{SLr}L@ zyet7rs@EzVSR>OXCAzfOu&q!<$2Z0nLF1yLO;YkA(3z32QLk1hPFLTsXEjY-Y}5_f zY|;g_)KP2g>SAZ1Zm62(kH`P{By4wDu;qs_Zxi%LHph;#W1^B7hnu^OXuETgvs({p z&!N!@*Gs(BS)?{Eimkjrn})xK&$qT<@9+V9^wy%eu08w@A*Z_Uq%H?#K_(Kn0>?AM zhhM}<{(@LEu?Sn+iq!Nf6-Z6-s&V0S#<8DnGfikj0E@B5*;5YxT-+BYmiOS>%wwbn SLnB$T0y{=NByYjx5%w=5$m9e7 delta 958 zcmZuvTSyd9820SW?9Q(1>Rwt|*Ij2sVRv$kqO0jc4-p}Vko301sIweT=2kNcNtgyj z27_7u^i-%sFFutnL_K9e5QJ3F<)O5Tf%Oov&|3QcnE@f`Xi;z(Gihd$A3rkJ~?VT4Cp}f8(SnyJM zA8u6D>~VcqRpq2QFl4GJIh}?D&z6=#>byN-C$VTL|AELoSeLU}pDt5!D`dPK=o@UW zQlqOlhF9{vIAS^EqrITvPGE7`^5>#-BZyKth5Cs(*{CQ`lO zmjjt)X`ZrnP!@N5w^|UGLnsDh@hJ`Rgss3+)9ug^6hkfHKGqP*&UHX%13%=xpTe596qVrdWV6vHn`7$(;?wF`a^sCiO_EnAwR2G5+a?qExRmi&{JKBu={##BLr~k6^Rm$V<>$q_7q^kzFfIj#3iG3yb)QJDq1;* zbsguWY)vXvi{U+V?F2OG#$|BYTzVtgD27Yk>EB$TlMLl4bT1$fK^vu(M`UT ZDPqRZ;nAq<;I2+&ct7e&{Y3vP`UeAHW4ZtU delta 763 zcmextG*g$gfpu!1*hJQj$!pnU_%hgIr(|&Uu!N*mluVgCc{Q8d#_Q~ij4Ye)GrnSE z+%@?(yCS2-WH}BC!HmS5wA7UJRDBp@ay*B+6pW(>XLtbBxdPQ~PG*_TOxOfnxJEbw zW`bT>YEemQMSMzXdQocXlngm<#>vY$?uZy_X=SHYYH2BGXl3S=XlW|w>MBfL$SteN zH3jUQ&6Z4bQj`Dj3q(K9kj{8qnv@~d!=#`wrF9BK zJ5Ve`CWARc)-OZO4=Bso!;zX>kdauNSv+O(6u2F%U`Ie~7VBXKx(LaHzc4!lf5Yui z)>L@ZFd5`xIc_AoCZFNbnk>u1!NCkvdA~F%aq>rg*~!OwbQzf^f93IHRGIvNTi4`l zhIE!9BLhQ*Y(^|FKp24Tx(9Pg1{<396@ZQb2F~P(yi)pL2Wn*efhq36=k6>^kYzGJ zH)olGEJF?ku^u^)`$2|IKFP<;0#X2SJL@K(YNN^g{7Re|ccHGF{ElCN^#ssAM}aKE z$v3#0!@L$||WWNS%_E3*vI5q!uSb`IDUmi@18&Qc_D2GjpaSPTneL z$HD>$5y{O0LVp<<7jNbhdCaU<3)Goa2_%YpIP(&7Q$hNRfpMP&lISeXPy{A}tjf*e H5;2SbfX)cJ 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 a3c610f350db1fd0f75d99202c75535e8db4e425..8b8566b5f5d3f531077b895691d3d581095aeb04 100644 GIT binary patch delta 1124 zcmaJ=%}>-o9NpPc*p@9|WLK1hZ6OF$SS8U!O+1+R5koYdyto8+y93h+-Gyz}$ib+I zCYtmhO#K5q=+)?6^5ZgYo0A5|M+VF&s>c&h!Hc8s^acX8Pv6_j|we$-wI& z{yKl}McWL2JF(|fsjR^hdTzX&GcuQ9*@9QHGxvA>_e13If&@Uc`WCDJ@Q}=LN_6NT z`OF;_3}~YL>_HCH^)|60<37&PsybCy<+g##o8i8RQCJvi@CCYSVGNOYTMjRyA%>_877j;W76-Os@({hN@f5W-z^dTPA`nvE_gcmpPWKB2@*2t?yHTe^@qt!|tB~kq?$MZlB$RANX`4x4b=d`I9 zg{)ABV2j#B&NTHg9hSpRINGAuTGDpwbtc?Q?#2g>UP~bKWh-bO?s7?Rn!aXZX#scmq$DlL(sIb`(rirTYgF$eEy#t&LBNxnjc33) zYG$x=5w+uCcGc@HLj8OQ(zpA``FP?`FfTE*yaqo7NZ;z0U~l)Zn{6VUL3p{h`p`F$ zj`wg$JHbG4XCt3+W=Rc_-c7A()LJEvJLxOn_Ox&}JtE7XcWWROdL9Y{Ya}Igw*-MO z&Py&rj?qkT)~osVEC!0~Y4&muX%KP?w4 z#^iLNq{)gB41ZgU*ECgqKpmLmJKvS?M~WUXU4I@aSD#3y<);*9HLq|$T@M9C_js=jRc4Zx4;VoQzNyFjscp6S>^F=s$_!=yhLW*_dDNTL54 Kp0B=X&4R!EadGbe delta 685 zcmah`O=}ZT6wPxo`DzlIR#U1;nD~{CKolu`^TKg`f*T zVK#D~ZUylVG_!Icq9E#0!CkRJ7GnQ`EqW*Egn|nICP+swENEL)rCjA;yC42HRrnHGWj`Y#O(e=@e8Nw?yr> znDhaj3>FUg#l!$yCEg|Cxi^EZ@_&WWU~vF^g^3lhY>Cwyo~tP#cb(ze$i~@G&iez- zwIZ)CSzM3F-W{&~P~MkCP@R!~Ie0#Hf&IeCA$F!sW2j&_w3 iYqVzA^q5X`snQhQvPqw1c!MV<7%Q6wa>g*lWkXaqOgy<8@5j)Nul|DL+MVC4`VlRjBxp3M3fE9<#gHyTR)K z5o+onAr-Me!&}6$MM#_~RAi1wz@g#*7sLsKKvd#@B0?oZ50yZ?8L#bi71BNI?9BVV zH{X2w=3Ra8`UzLd_5N>nY`e~n9e7x4l*vPK>4iqAzVI?>G|8*W+aJdF3=Dnxt)Jug z_K%#G=RSs(FU{Y*2yW+nLY?T+o%98#od*N-V}ZR+;a7XxxjVcMTpWa3B8t^gndqi8 zb&`j|$WG+@T<%4(k;{q4L|JWmMNx!;Kb7|8a$2K88l=KPtD08Ji`rUK*3?psp<4d= zETUw!TwAY@qN=In|DYEmi)SRk2v$f{R%M!_Sd;ap3Fe_K^Q<{5xujvqy@DTt5xoUe zl$)e(LmK%(!EoF^l`*?)XOlDr&~6KD!dro3ToulR=aUs~Xh=#Z&*QMZD#fJXH_VO< zx&~jx^Y=VQ5lQ7R9i~ot5d2IBEEwK$t)%O6RVEF)DhHYe$AfY19Nl8(EM<0BRvz35 z$^FA28NP^3a!EWuQeX#=Vg{Ryn0-O-(R6Sy67WzJ?_yf`Gb9Rcck@Gfd^&iB&iZnp z6p2rr*!Ks*mOt<5xTX~0lTgwzs}LNIaG%*Nx`K&swde}7=;)wDJ`{JEft5`hy1&&3 z3>FS7ho`x3=ngT*C@9h~r@oUth!}U-C{&2e!%2k}=YRb~l|9{g=(nsTuh(9C5aBHhdb7PH| z$}e>4sSv$v&A~tM5}cn{;&?2N$@aC0e>gtsX#bkH=E&|MSlPjsZU}0rPAEmk{;tr# Ro4S<7RI zY)aPBcs8qK@!#R7p@$_Bd6JqeV->n9n*_I<$*Hp$70(-Bblfp+84=N;cb88q=%XS_ zVRY`qFKH_ zp?Vf=TQ%BAja!8FK#h@cfhcyw8$NTOP<`y^p)r?Hl4PnOjy~*{WVgH|bo+lL`9gUI z%`3NfxuPUPbNtwnhNHY$FTbyQ${q%BUl;mGDcu$&JoB}qT}x93(e$0Esf+dvvB%*x z7vgniaTE+435F(iN>`{iAf2MW;IIugx$DRVKe)?GjDbhBQ7&E#7Z{2YrwNF3iZlvO z>q1pAI!o8c98Z%mhAK~Ms3_-wHt`4+N`Om^0cM~;95R#dr^NeujEqnlodrS{W%?QT z?Tva`i#ePlP}(N05i=)f@keZa=`<-V47dFpu+>4BXuim61gTdjNl9H>z=pI;O;;M{ zQl<@WnipB!nZ{}&BO3|m3B<{}xfp0KAyciP?nwW4fF%eHB7~@$FUQ96Y4ZEdVAcVMw-JN;wd-J{Ty*Dq1 zKAd*lb3GkyUvWJQA0Cqx9*>G#M&WYF+gQ=?o$D*lBYPSguT~ona+bcLp9sAmBYxJ| zKR|By7wb%5iLYIART=!IVJ>qMFB!to^G>qi{jpr^?k*^p7gbTtcXuF`r@b#oPi`R7R5-Ra0O`O>O~3ahfY;HAYmKVNTPO;rXeF z3(4(c=96ASaL*coNB1qKa9YfZ^t8FGsA>i=y6ziyjkw?v>MW$&@pq@7S#zGDcY}kD4rKY_(2L5QdZHxKd+Mr^h5?~UZMjL`k399hQQy z1OlHa0V}_wK!hQ_&^Vg_qwba$ByFjH4XKAN>r+_e%WJY2lF6^o2y)VPEu9PhMTjen mw|=kbJO$3uAiPxFljm}nLR7eQC2Dx23M^c}U@u*Y&Y*uc*e*E$ delta 1171 zcmcIjO-vI}5a!XA!jjSgwp3`#17lp)wnn`mF~%s0s3}J9Cm}?ZcFWtfbery0&A*-H>_JUm{UUjnwbFpZO#Zm}Z-K@#KrOVZtLzWMF2>V)sLz0g7xFFCfBn0*y=iH6B5I(pI zTG|d0HymplA&Xo;c+%_*EL0w069_~RwII+Pk@kU%nl{JPycy?HJ;8SXaJQ?A{eW)` z5m*fdAu7b+d1$ETHNq{gKBbwn1;y6haI-O^80kMYbav>1)sRt4Sdl)H`2)Nfjo-9eSP+diX*=^hf4}ehW_E|(q$0N>YtOn? zBe#Wa`aIGq%&y+=tSm!M-ZlzC&DJO3QLV5*zt;^(nu-ip%W24_r^T~TEY309L5|S< z6l!QP`n0@>`!0lv85|=Lc;(e}##Bp;ve6}WgN@(_nNqc^JEIxyDH%R~zw_&}kFp9I zuJahK@6~JIAHexl=^%f$rQc%h!fpjktK>nE0Ll(slH|x|4vIdO8HRUsjur8kp5!iZeGGn3 zxt@Ab2e?!-%g7{M7bY(<67vKFMKhQ_31&nDfm^Z=Beh;kQV#;OXyvu6=CTz}e_gQ+ zSjMcCwH=@h`q1R@U|zW}0YVtr zFG1BS?TQgGYZeM{LC~+l$yPjrXF16k9x<+8twf5#aCs5s_8dzRPQid#7>VbTOmPf-p!=;)#T8*=80w4pQYzNj8cFs|0nF6N%s`{ME*9B4oV@ zVV#VE`}y6JfJP0_J7QDMK`H?h@6hxCjob-+4IGJRW^}JN`a0i6Rpey%_cT>+(1-O? ya4|x!x55oS1YvtiXxa%6ZGySJ!E=+Cp+H}u!4BMyI#;YXI0104%OPK%!3H*cnr7pa z+9?_ttUX2`lcF>8N^}%}M680Yu7aZilIi(rAPaOe^HNeP6bceEi;DH8fQ--px{xC^ zw;&_2IJ0=lB%aHRc zO#&)WRe01enXvt>Qy{KKF<|lnZUxqAB5t|KCIW8K z8UK3N^OLelDhpDlWc=^pNJ%YDhH@s)6UgK0VM|FZNzBZdk~o=1(3X(}s99!nn&4kX xM$^qH!jGBN_!$`(vbcdnaSvx+Vs0u(b1^U=vp^D^#TkmgFwNrLoGTu~2mr(Qrp^EW 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 524a5d45383880fda1e8398b765c85b3c26925b2..e9b79110282fe9e2418157d4e6ebf4e4aefa8abe 100644 GIT binary patch delta 1580 zcma)6+lv!d7|$e|O=fbd#RMdq>_oAR>2By!QOL_`@j|gI2-24-yOYVuo;l52n3>qk zgRB+`iswbn@v+_>d=NoO{s4>Mi%%lH2(5zJqHXDgmLk+bzcaJ5iF8{Vn9TVu^ZS0^ z`7WO|@9a*VOrF14K9@XQtRApk9qlu;Wmhws$C2x!m80h_mp3%TzPwwMr1!Rt6lXI{l*dz4Bc1gyj76FzcHW-41) zTiGT3!RFG9((ky8f9bbz2~U2`Ll{u7xqM^)Pq>0_;p(9@xO@*TGF9}R=6OcfK<;?d z1n>`8muPTaM9M7 zJ(ErYJ2DOM?6N#9lge5k_AsO7o{c5&E!frM6Cm+OoY;fRtdwM_><7|efSOxf5Fdv5 z#(?3&bqWVsLDH=y-8LP~Yc3<(M7}#{euQ-2c9%rq)FT+FA8Jld(+$m1j|Y~fGX4wi z=V=7Hmg)0IUZwB9F3$gqQO7?=pmh2*m?5bc%{m=qbqs5Ham7X5v4W7ExR$UVQ$6T5 zSL%&D?cGl@c5QN5^0jFtaFdN)2M|eB5{oC;DIL7<<9pVM0Bo4gT zugR$lodj+jTjzA1U6AHiIh6y2sTme0C&7)TK;aJ@#Az}Fr5Vtm6{lzDhR@Fg4xehS z1xMK#v`o9x?;(z_2p-{Gahe?;`7nsDxy#7sujIIGtO)|Xmf#z9&=%-PB6vfmtwv)c zlwDBv+oTGws7U|l`QnC!j^^uMtfO1LBxp?G1gO#NGma^4gP;wCei;&cGc5P4s zLSk0lh-O8w)I%>d4dX%XlD)P?nsf)+3l?1Hh4RIb%j z$F+6jd8nhd2ddRKodJ|lt<|EO{?jMS3}WAh*dF^TS7y1%RFT{R5lGw!a}5^NR6yqA z{6X~xFw&IWCP6olABC9iAWvVD*{yt^?JewuRSc~)yjb{4ir3=93!5G%-ue@q$qV@N dsBCF4>(Edh>{lWTXFObkRZCtBuNIF=e*>v89hLw9 delta 716 zcmah{-)qxQ6z**j*CcjyZ3(z7HJv|bgB?zgDL#!o$Pg;R-n6)^yYn=*Nog{%55+kU z6oTN+^)K+rN0&!mL{LN+><^eeI6-~(LC}qP)2+3L;7hpYyXSo0`M%uu(`%E`s`T`S z_C$I}bo?3D(+q|x4CFwZr+0mZEa<|xB_>{c76=i;ujD%+&v9GGlMCU#P!)Rx?h65? zD7=xXa zMbLt{QD6_)!7#^Q90btIkSp_BIY`h(6D+Uh@n!o8Qdb!tt6CiPdX%YOeaaI>=M+REfh5POGN80Xn>f+!X^#yn7?>Nc9LLml5U+-1Y($Q@es-PU9`;R5XTmra@j1>RYusvrx{? z5D|$w9^T6C5%pQrKTKOKw}n$$CS23r3a2|9wA=jS1+rr`Xhh}lM`TAAk37ip_hh$2 IXY>a74eB-R=Kufz 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 dd1394b5133fa3da2fa5c08d1f18791be88e9531..e6d1e8fede01dad2658e1cb1f677f67d67084368 100644 GIT binary patch delta 776 zcmaJ;-)qxQ80}4)rpa_ew@O*snXo$Nz{+F~Rbl>QFU1GJ$4Y3EyWRwolq8k*LC^=m zK~VIIf5JfVMTz(yD1!JPBKWv55PbGU!GZTCo$Y+sefao3zH{z5=iXln@0R#`{Im1L zC;UVB!_Cy2n%(L*H3N4%j3Xl4iijBIZsL9rK@=)$uBYQ`W~<}1?Ajgd1-PGKjLhq= z(+F|#5A+kEm+(kXx#bmjCDcV5`{WEO@LM=J$(mYHuG22w$mOyJz)$Rl4+WXtKZA1( z4sI0QpiRh&$HlO2I)S7p3T%m0O&ULYS*8rUZaQXQx{h|+^jWM^_oKVfBH>AXn0Mws zjAjPd9s`CeOa`{a`K#j+QlhcQ9xTA#K0=lfQU}Mvq<;{lqB8jcny^&)Oe$oP%r%Nc zCZBq3dWSSJ0kdKm%~QQ9D1wl5HT0eGPD=?%q@*3VC@F>Ql#XGmP&xc@?9LBtjo!lr zsWFu*!TUYP5AJ3;tJwujB;E&w2M$Do}S#vE?lN?Yn2v16rGlh8Of(VZL!6MPgMHp)@ocn H+C+Z=TB`!I delta 483 zcmX@A^+S!dfpu!G@I=-QM!Ct1%yN_Wv9R%Q_OOJcR+LPcJf#OLxbXoGBO}Y^w~U_| z8TU4JV|L04B{azCf?WC3iGx(a2!!VFfAGntYd2 zobmMJjT~B1Co`loj%LVYFlWg6WytvfjTh_DPM%$zBSlbd;+7+HV@$ZUSZ`5Lp6rGouOg^eDwXF=3nVPg(YoV2@*t#kBK{ta7!R1JpNnYnAm}E#Y(pd<) z5G({mZ~O^G!Htss0XHIu3lZI^m4e_}5QGZ8mrR|hi@wF>UhX;Xob%qVnOAfC9sbGr ziAVf>*yYBT>$+pPb=|}*ALEz^H)0}1h3j}dj3JKHRnIr@6|2$m8_vQl?1y+g#~8Vn zAIA{lk{{?NLeJrWpmB@m;DxX(IXEDvS%Kfe$zj$kq~$8@l8r(ke*pZ%et1ui>HRY} zS>xcExP>;MC>@icCCd$ERaN1uG_A{nXD`c$iPtRG3N6poZ(0G1b?R<>JDw#xDfaS? z|A*175IY0F=q!_gZE5QApoE-i%(4dyvA>Uyr-aPG(J1Zj#hIu=K7cOFRo{~;*(8&- z38Ij9ohH3Q?wf$JR6$czZyHoVNV|FTo$}`8lq6Bo4ty3>@mog6uq{>(za6;q4O^qv za6zt(WJ*N}eMTxI&o=N>9$llNg5fz1re6E65-FOdwtdgQL4ZxQ*;U<+)9#v{p=#P* zrUNlqR-)Ktl*snblo!zX$5xV=aLk>EA$u-nG5eTI#q zi36iQ!_rUyTSJ!+M`Kiyu|t0lY9*t?JNcQ56mGB35=4^Qa4;hU^rvmM*a(P5KiytQ I%17$xFPW?blmGw# delta 496 zcmX@8^-Ybnfpu!O@I=-QM!Ct1%yN_Wv9R%Q_OOJcR+LPcJf#OLxbXoGBO}Y^w~U_| z8TU}yIwj+O4@XLBaWa%MnTNNStA{NmwIne!XG-Ga zdR`|+7N8L_oA2@dWn?tne24!rvl>4m149-!kSOlq%uCEo1!*n@dMpbh(OI0K2=rqX K_vWXxSnP$Jw94emI3R_D3S z4Tnz9g*qLl&vfW$28JDPk+TSi!jFy+cLwKPgg_|PM@{r;j8yA6+5o{hKvrO%^GRRwUK;tw+2age)KLmfeJ|j0##+ZZt@qcaMk;R5Azr&{cbFu{= zc!cfC$>j4=Gno`-g+i(376bt{Jc+nFnXDE{&$Z$yp^AoOP+&YErcbKYMq= zx8A$S6jVIBW0Rz(heqXbeBn}rspD16Aj230f~iO4F@}iKEo_ZP2@SVo@ zZgS4*-m=cu?cOqTZ`$gf2iJ za<#nIM<540cw)LNVlv*bTGU_`1uPaZgusIQAS)e}BMc4)`=&Xz3pl9v&6DqtbtbiL zYQr#dbf-n1x|eOy6WCmaZE4|2xYwQ7KjAk2be(d-l3+B{y()KgIQ0CH?tEMo3xVot zqoJ`qj;9!1++*3l1K7(ZCZN*WIw|V4JQFQ1jj?}1>+Izo8@%8d?`*sPQg2yZ-Tb$! ztoSt@VY>RO>8g{gBX-np>|h_ldQc<$9opsni`^y0{X7R>24`(EtZZt>w2iGxYf9hw z5j;pY;7I6EMIqM|O7&u;xmeB% zqS*4_wiv?~R6dWwlw6i3Rv;V-$IPoW(Mcn|6+QR=1fIrzGNFZjX_;%^-OysVYNTZFv5wzT6H`(zW7 l<JYg3;`q675s+S%9>}~7-5^CgDv_U`-UkA#CmL%QaZN`K10d@qb zN*knBE!AGo+e#qyP*p0b5E80#s89uRq>587J@!(Oa;Pe#0DnMH-|UCulu8_Wuy^LY zH^1MT-~47io&5E6X;u2_LH3&T1<|gpcf;4=c#?*uY#On|Q|6_H4YuVcet4u1BEmEB zThMAkBAO!;kQOJB)Tn)6R_4rce*o`_qkaCQ)EXSdx`S8;-vm|oCHNCL1{;w+_*QsZ zIYKk^5bdV|&HjJr@5Ix@aG=xD@QyQdYMH)DXSNvVG@O)fkWZWvSx!lpF}DKG)cz#( zsxM-szC24W!Ew2Vd<>>MLat+drsqq84x>Dy_$y4=9GS1S;l5lZ-#duip_Fvfi4{ZR zf(Y?^NJoO#!f|T&jhjA@Z;~vI{I>fcXkSd#jyXr8WnEk;sW3deAL(TF`qubsi>)v8^MiY}ZIcjo#-PiCiPtNDgH!*|m{v z5uM)|Ho&`btt&uB*J+8HSOC^_QoQ4_?`L6Nlwr5GYS9oZjZePFBmtPYK^$wKvbpF=B6g!zl~o!o{isl1S30sIce>2tiak9{ooGgTI!dTeR7$!XfsC_@Cfp1_>?k@(y#)04ja zqJAkp8k+JKe+)d_Y1r&3YpGx$V1*WESz~3%w3*7M;fh&5>&@YC?_T9iXGw;3@B@IW zy{|mbM?h+@-OWsVAnPFzq zZVpmK3bj58@?Pmz2E-6 z-}mpG{`kW7$dSk|r!yxbKaOwSZQ2z)t*LceZBBiQZ5J=hl?<%aN!hfCX;$Y>UR=K{ zEVKj``t>1_B)Ox=Yh~#&`#qME3tKzW;S=G-6Ppg7l4SN%{PwC(^7(IYJD*2Iq#3S) z5Mo!9?7YHBbe@wqO;&MDGc;E-jZ#B%T+aC9QGS?DkO&zJFl%1Jlr$GN`+)SLr9s$L zWpvz+FaaULF1DAzqXC@#seC5AVCQ1_)N_(1&st@YB7;A0KR!5EGLirC2^l5VNOmR$ zkVgQCQ>D^S9Y?Ea*zQ*`015hOrKo2wGU-Vv6oNRDNFM=95D8MBtd|^+vBbzaX%rF| z3zHNTMmEu-8S`njC|yDN2DT$H7S~4uR`zoOjr`pw_%F6Ifu#GaFgztBoi^V17~n!DZ7(*s2>$Ks)i*|bz=s*cSjcJ21mJ`=J$B>ITHqlkc+lkyTKceirnB#fqh`equ_Ac7UneKGtwdO;03Fp zRWz3$_W<9iwgG0`Y8RVkwbj6!oEIXBY(+Hnso-=~yN+G{wv2=_Ln!m7WgRHgLE-q? z?s^DM4FIjOo`oMV$nr+7ed#ya*WD8T9=&iQSpVbhfYfPm*(TXWOcK10VhiVErY0IW%slu(L23 W4!ozjxH#^R96YW1%gz_6Iq4N|%oqy* delta 701 zcmZ2(IY*zhfpzLc@rkS*jGB`R1+*sa5`Zu!+q1H7{KwD8$g-J_Nt}ss>tr<+MMjIw zo-ExgFwSI8mKl>LaNZFy)Y8gMt<=&|(9p`vE78(a(A8C#yn#nnm1{}{d+d~q&6YsQTG7ulq%$6uCS{2AFezwEX`KSm3KYwb$zaZq^~;d+ z1IlvtaHQrIWF!`67EhTx1#Uho*Z~k*#d?^5u0b;4FUWks-*EGlH5DE;Oa{4Bohjq- zDBN{aF` zQ}n=&)X4Y)cRQ~Zk_lQcKX4-nBK(qN3338bfFw@-Ehy^)^jnrGnhY=?Rl)uw=pcAl zgUtYi2kR!Ffku-Xgp^tDg8V)Cf{-e+bjH!i`?(b+s|X8DKFBRM`IE4_LJrW<9`^jC ztdh!t)G1lHATCErYH>1@KRHsQk*kL-CAB0mGiOTT=u s@kh*RwLpDYl|Z7nhchoRHx;D27?^ajKoXtB8H&JElvTOeTRMgj00*n?IRF3v 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 9345f3f09239f9c7b5911415a6a7242f5d2a44e8..485581f1c6c53301559c0837af51c8765dedc651 100644 GIT binary patch delta 1963 zcmaJ>ZD?C%6wZ6o+k7{PX-l(w>}FkEo5rQH)oB^peL2@@opXqD%es8r`sSMCmfW;m zn04C^!9f@+=eGLGRZt54nGz7eKNI~u2Sxu4h3Oa@cKAndQ1QI?-Xu2+8pyr(J?}Zs zdCv2m_xyI?@+5zWU;bz368|xYLfR1^XO=z>8K0JKZubzv!9B80rl4xQNshsd&TVkA zDplAxZI#K;P<_-I);W>|%@?3^4fX@~si;%P>$R`Z0k6uaB zfs{&j;eRNlGFTQ4aMdA}oin58wyq&CyL`%e|j*$s2 z`TO_x8~Kbf1YFK#q@DO`!k^vpP~fra73-iBhc~coXibNY%3R;{pW<0R@NmO_g8a%zLh>nFeBEHE-wG*cVp*%RhCPkV zkhz6f?zodnPsGCNn;9PJFJ`3(AT>bZ8kR#XYk3)B@$tng)^Y~C| gj#9cPvTz0GxWqQDC^Uv6UE4>Hee`hMExbkk2ew0SEdT%j delta 1657 zcma)7OKcle6!r6X{E0tx+{8`&%S_x5duk^LidtF7Boz&)Ek%Ng4LGS?Py0MLaS~4; z0TogSBtRoRx)U`*6@ntsO0B4>EGi^gWx!iA(n*bksW%$MAx$(O|hztH8KRJzC zur0{s5QJQZ`f0g-My;MzC+r7!(KVK{7vt@R=Mi@VapP~OOS-x;JFnKx(n@2gX~Or; zEpi<0h%vYzJQqAl<8+!Ps6dndUnth*Z$H?D;62wFQs%UxI6CkeEiKdibhg7zXP_v4 zN!~@sgm@0)tMFAg(N9~*H!;#&uFw^jbf?HWFze2d4MsOaKPuBv)MyMp*^0~i^!Ba4V>34kp|y_d<)aNGMz z@L8IqGca#UnoioAAo;S~#87dl&|7V%hfXUr-*T!jM#NmMJfdUx^*`KfGa7p7@7JpFcsNs|{ z=KH2aYK1K)oS>-_2=EzRb#8%{n>Dmer?|*Rvr0t`0q5)@Im`-0Cm$-5&Pu6|m1y*y>Lg(-xP+o7VQ>k3F7o`jJKT+3pu)ga_ zLfJ?!w6v@8HvXj@3wK6Yu4q%;eTJ2X_8S(%Bjhc{yQd{pn|GQ^#mq1TZ}<0wdYOAg za-m44m`E-r62u~D*>GFtF%6=yv!bO~XO>-=rZEPGdgKX_8CZa?BQKHb*vNsxwGI&7 zq3!J&fVz8qWn5yed=+=Tga(&j|G;{Y`ytaiw_j=F6x%P{(EQadC;Y&qkXur0u}1if z#10uVV$}GY`G*(kHc$u29LuzEqk-buEjFZgi1Ea=Ymkbhy@IuH;9?|1@8hA~wrjvY zdkT2Cv4f!6lHVFdB1AT_Os_Nxh-7Ldoati+i@SfcKB6*LH vB$HpYZfMQMy-~!NxVW^N)PvS zOZRo#S{Ue_&l%tMK7WrliA*viJI{$ixBtgyLHDs4bENwpMQ4rtZlwtq(>``h_CfwR zb|(L#bcY=+w5qpBjr=?8k}AoZ;b9~&urErjLjjjHa8YPp8>pVA_jT;X z=5{{* z3#)Wvf*IxeN3>s->5(S|d71!C^3Nm!op}Oa$S6UJ4z{{I-CA5&a&bS_6JsC>5-Kk{ z0I9j^VAJC&t!`eKSjUD?=K7%~O$R|}(iw4@b4Ig4WjQ8$K;V1fzi*xo$@7L6G}3V3 z1O1vV&MmlRKa%6_So;IMmf#y|X9q~h2zjFyCX*zL zeJ~EY#!mQ5n)E-}Z#%(m7OOI79#$Whrln8Tm0kvjk3!s;Vx;r{Q;2=bMC>Av7Ddm2 z-i?K5!?u*uX(4fNZz=_tgs;dnNr}sBzPz;$L!N~$niwW}e5+Y4SFi6HWdeEWqQk;1LzC9`K>%*U+DENV9g= z2zqM#CAPU9_OxivZk1hTS6+s96$CQ=w(>wqHj?9Swq8qR?t!y$mtC29rX-f4Y!iOeSQeV!&#P z2o`1|-*x3u5J9?V=N|}e1aYYgAJ8sDp})Wuyf-m5NH-V0$2s3Qhx_@$=8UqYJfA%A zOnHi%vC=V!*BK-NdC|P@GsHJBb?Z}{5IOu#ei8Bt-%A>~816|gmF}#e5T>R^ zXz^A`Pi#XO-hz5V#<|Q*BID!Cb#e+HrfZKrK+)1jB*GW!d?CVbe;b~I*njrU*)7k% z-Lzf9uZs{C!K4k>>9}pP?R(U1QlEF)Zr3qvde3b5Zg-|1Q3dvgq(Md>VbSzKgoPkA z()|~UbxEk4i~%LNIWAgbFNYOR@k6_sTX$pT&>aDdnqhizmmYr6RmTEl1HC z&tfyB;+5PrYI8skcb6=`*D;yph;nS%^csI_e4XnigV?g^8!ej|IFY~1vpk+Dg)8|3 q5`9TRzpx{nUgbEe#~&|9v<=4;XpesoOAIzV(D+}mdf|hKJLC_fHRV$P 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 0000000000000000000000000000000000000000..ad7bb5ede61c187dcb77145d05fc41e0f097af56 GIT binary patch literal 6983 zcmdT}&2J<}75Ca6k7xX~_9j*quQy{*$aq=LY{UvhW`&TFAkZq-5=C6d(%aKrGu7js z?xwriJ0k%Khlp6JTbd&h;=m0d0e=AqDMSJ!#1%LI5?_KG5JKX@?^X5ZtnG2c2}`!S zt6sf&AHVnN)$2EF-@Laor+(x{6mZ8IcTC&%e49myT(*5H9x+cO?S=lIKpM6Dfyw# z_~84pV-7-d)Hz|HVBWvMvQCB*WTG*)Vcd_<~$Y zH8_%suH&)fDDIiEX$lcKy;wkV(saSGBhspFxn>k$5YIKw9OaGet6uq{83;=hB=7Jj}SEKnt{_DFi@I; z*`?Wzt*sMv&ajnMzY|7K`R4ukxX0&Y&GBqDE?HSSfIkZr`5tWg5&S-f-{i!8iM7S`rnrmdc|EdL^ZgUtA)!i@Z3F5i}t54i-fBb z#8U|j3&4zqKnA*;^gJ@TTcw=z+t z^$7^W%Mb=nnuitK@0pZ4kSC#6BAaA%zc)m}PpT+h8u@liIpo?Ii2x~8p+AwUn!6#JeTTWWF%^WRDniYd3|&m6OQ%Dw`5=pIKt`vT@=#&oUtZqC zKZnfk0WLpA5}5-`a=ClHJt+w%@7%hD^l|G}>#&8YrrE;J>i~pf156H72?-ShkrWqA zEn-7%*sSk(4pmcU8v}bjHAQ0}!;i|l->&X{iJhrXTSOA9u&JkPlx#$?gmc072IZ|P zG|1#r$?ad4x9vY++xKD9ZN60a=Kb>eQc{|#W(fX&PyMnCK7Y}^Q7K26yDaiTUS~pF zdd{~SZd{q0EAM!IlEse0HKN95w6Wf>a7<~#v=aNFuB=gJ>|W@Q46HM#3ZXyzL4>9( zq2LQM4WGrziw+1uAbM}sw(q9f)&=U~YN1e02h6ikE*fK8 zjY_y5x?~r9pR2pbQK9LcIlV2PKGQ&@z>F_+N?R_fz2$r`p%Qv>po@)4fkI%8h|SJ0 zz`u*oCzqfJ%HTwP@_)FXp$t)MMyBH>!#A;~tYbh-0u)JEIkbWiHV$0Jazt{f2p*fE zhsOp=@wB8u#RH|ZH=d}VXcJ+E116I5>`1D6q`C&_b(ml{!vt88XH=r^EBfJ0{LAq1 zL|%L5JeXxE?R z+S|)Kbs>#*7S#AP)Qx7}M25ctT_K!u*o|50e-8^(H4f0GcebkfZ5{1Px&bkL8L@pG zc7MgzvW^Rj3cKOo=vCboOYe0L>6p4Fr*buYq~^#3?;D<~UpmHy+a%tI8C8}O^%&bF08h)3M;nHI#a_I}E8>2;(--h$O+MIH$@B6~@1uIS7zarPDqX=9Y zW0-T4U}T+o5`mH8IReWaJ;Gc@2#<`%j^Kt${16#CrVG-p-jQ4lS>T7laM=lSll$|s z$xSzZt;tO`c3>-kzEYGC)nv_Py?6kA>y(%2m;+yCjxf>?A$m5XRPwf5cf24L2JKoOGsm1at=@7wC942yAA8O4ty+MqY5iD-wyqZVrS6&O5<%hOmGdl9I4fPL? zAvx~=RBJZUjgbQnhE)S7h*;>EE-~CtBe1R) zk^76GAY!rY8|asT>MG7nKVn9Cr9z1%j1vcKF9p#J!*(LG=aM3+l=Uni_-(lgWg>)t zsruJIO-g3;9T&=>QMye}*aTfUbt^+h58Q0Hd<8vnI9$I1qMH;|K#n&65M5`46aCez z&&&0I1qL1Sh(#n_NREmr0Nx=x1&4fw3lT(z-7bbBbl|9?*YU$a7Y8~~Dgi)g;F<^b z2-PNJ!NGHP?!unyVc(i!Pa_5Uk7n$tiARt4+)O`f0IY6br?peL zz`PUskRX?JIzjvbia0+U1cxwmC8mJ0384Tjfvk$lJg$cHy+LkOMyY9`hQY0$zfk!} zUnM|Zr$PNZ{0|PV;lJ@Gk_{TBBaDdD#A(F$(Cb(8IGFD7S7NzV_MT$5hB8w@oe-l( zC`dCpEq8fD(;*Dt?NQHnb3iE4r=|vT>PCfQBimIi+N$tJz6}K>_@}3Nr89G~i4G(Ua!&}K~2nTfK5Lhs4L=A6>;H^B9REAgbVdcXW$Ftnn TCd>?IRnw+qm*xe1v+VpAR&+?l literal 0 HcmV?d00001 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 0b19c7e7c28795807eb302659a0fd91fcac78411..d82bb7d35cd2aab3294dcd0d0103008bc38f92fd 100644 GIT binary patch delta 2208 zcma)7U5Fc16y7_VWHL!6+1*Imnq-}+=w{P&fBFOKQkPaysp7gm__SR%v&r4PGvu$C ziQNd2wV=3oeJFPnL8|zqZzB6%=tHp}1?hvJwV*A<6%j1@DtPY9B$>Eu*+6FIp83vq z&-u=|XRghBa4xtN{Af$L5_}(}*>y3AE?oKIu=hCh&8-AN!p>dvCqiGcxTFfRr`U`% zCsnaYrul`nrHMFym~t+!!qd*Bz{i0{z|}$c)SI|z;muW3t2QdwCgZON?3VO%_T_xu z)ZfDSyfUxoHLIZ18 zo7t1^*l*i85~MHg%gb&?PDnZ62w1pTWyR>@?2YIgI>MIX$1{h}&=5%*Nw~GvNQ#8s zwOvNAv9Du=1!I&Wvg83|5C){|A|)CrRW#Go*LB?V#~}|S#YST)I>C23I^*ud{W%@% z1|0pYfP;M}A3+5Ox4@R7!2n57XA!geF}(m(1$HMUg?TK`0T(+PQ{rd)+^sdtP$HX* zdi!``hdpRC#XbQ@V<1@e#6HbSund{5I8}Qn zt8)?eXA^P7Hbftogd9`MXQH!xe|9ylJnwhT8DoB^)Pp+IAd1h@7v@8*@gZNWl90kS z5JBkY*iAXZ9?DM-gE!odvTN}O`m86V4A4&j>X*`W-6JJueb0k-rM&E|K}s>eRbz_@ zW%LiPXCfp`c1eZ|gLSq;hNx&_tX0gqziFoDtJos*MO@y%-iav|6wkP>m3l@lw=y+# zFqMz(VeR03Xg$jRX`kCeu#dkJPY#lcHE^x0*EUu+n|R%yVbY;`Z7@Z*q7oG=aGIN1 z#phr=03mtfK*?mEEV)VFY4{yVm_3=J0cSTVG}<;58|~vZc&qoS8| z%ieb0U(%X2c$6CL`D(q~;b-W?!uA} zAu1FUUzXg=8;E2V$@n7l^F1*1j-o5&uk&A3= zWC01h;yZUn{zbx9!p=`)_l74f1KQ~D?Wt7L;IzQ8G2z>6@E6-AQ6VCDzjHsejQ#_m C)44tX delta 729 zcmah`O=uHA6z*#_yG@#;$-x-S-=-khESombgEl)q{xa&4YOIAQbVSUIeixp$G-ff-{sX(n~Kh@6G$Z?|t*$qqFZC(aq?y zQ@N+n2l!ekq^QznH0Dc}$k1bmuawf8Zwi1E{D9v8Z*e!fpy%#H$V zO4Z||WF`#eIqn?C1?$pt>2QU5NDPCK!pu!_-6O**uGt+pgwfIh;LF(e@`A3r)@`Ee zs-{~#&rtgV&+7L~N3W^%x{9r&fuG_^?Q88WyTddZ^)DXEsAD53p+DJz1b$8#OLiQ_ z#%SJ_`E_HBX8mzhWB1s;;Qli$&Yc`;fE+p%Y<$5c8 z8f`uT+(=KC#b!0T%)z0XNj*gA_;IQTtHOyoa&Bv?bu%!{{TTXzZ0px;6!_iAFdzknO!32E?=lE3J+ac;k)Japiy3d Ef640SZ~y=R 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 833f6b0ea4df1df8210913f2db6e69cb8ab83341..59a1c770b950cce7a5a694f94c3debadf3e8bea2 100644 GIT binary patch literal 10535 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 Xcjy-XOVlYmv53OI6|c8;)7Rh+oQVbG 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 09eb10ac7c4ad9a5d8a079f052c87495df74f09f..01d3da85c6cd5c50ad104398fbe74961b02c6548 100644 GIT binary patch literal 13683 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 Oqg|KUcSoMNhW-I5Z6_-L 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 c9cabbafb1a683bc501b4d6d92c421393217a461..e046e84b625aec4c0a95b9c51d2a0fa4693d3397 100644 GIT binary patch literal 15314 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 b4VP`N?2>}en;jIv delta 1920 zcmbuAOKclO7{@*Ph+`b5X^ZVDcGlxKi64!dkhG{22^vZeQA7$6LZCKHH_j%z+l}pd z*CZCN^nlc$InaJvBDl0SkaB?H5&;6KJ@fz-f^y=9T22U6sOKtznYA5k*N8}5yz}_a z_xQ~>pMPGy`I5LQUivz5K|GJ}g&TgDN_4=Vg4p39!pq8vWrIy>>sNpCAtaRVqY#I# zgHMQ}!!Rry-mS{Uf-=9T4Alm3R)}}kCI_|$&r{tv)xi}mQ2s{v)&0M%@X{oLDc>K7 zA5u7#%F0WMnM&bA%Fs;fglQFK25~NLX}PRyq>?zD#*o_;jx+7+vQexTk7Y~EVz}HH z>1WzAN~zAQmbD&I-sy~cy>mswP^?+%8@}}hpJXx2YL>D@5hl;sZ`lb|Bu94|WhiK? z?ipJ@id?SRX}v@z@Y$}XxK#wVrNNVL)43Yb-=Lr3oEjh;PT23-6xf zMgHKxv7G{!q!wvkW9})8g#He!?Fqvd?nin3D<`z+DuT_{2-tEx0v+f=4JWB4-gNcw z-rhKO%dsA)CcbSw<|IxFL#oev6FGScH1E$F^6qx zo1m0kRQKz77Eh0UoPDH89v%cwQ&%VVP1F8D9YVg>-F1j#8g+&WXszpK;NzGizM7>+ z;OTI>o4xIc1#GDb&dUYb2P~z4oqhnrJ#vRL!kUS*ISY12hT+Ga_q!U4VJO86p%fV5 zG4ulSi>tRk!CcqBqW}q1>i<+Ej3!`JI*w#^AT-OAA-%-`nS}wlh<8u(rhXboB#lgF zp!eSm+^mm&2!BZZeuqbdkp3KZabFT0g6q*lTS%W~K(?ae=%a0N>kpHQ_(mp`(s-ee zD>zMYt9Jk*@n}eGW6w-=kxqj)u7YgL(jJ=2F4ArRkHrq4O=i?{t&-(c>R5V_cnZqG zd~QkBvNqxJC7XEZg0hk~w2WriYs5{bRw=L8gjZHFwxhS?!lGi?`j^y_qc`(PMqAJ_ z_IdaqvHuBH6rWbSY|xL>+e8O>UAJL7P1iC2ER%4b7j0DOeB#hqXLKm5X#_W-z3^s# z5PrcD4374T`Ymb(UKzzvHX!cYobE)cZ?S3nykcf*b66i;euT8mE0(MowhWyIpG5-P yPDQUY{qpjW6X}%+LGkEG3VsGJf-^~KVh5re} zy81&gm&_F_HQ%e$8h+^6^?+g)lT0-xFiNfC9UcquG(E2;q$ctDTOI(d{}X5$cqI-p zmR7#fFQlF&|3spY>HEW_elw7W$a-xw^^BhvxP!JS zCy2|8>obn-;(*g8W{5HrU>*h@wo!`)j9)S)za!eLja$^Cocdl(wTnf(d_TSyFA<%j zM~=>nHKl>5MmcsTl+pHaT;ak6&-h=QOX^uU4*u$yJ=RkkzyB$@$wk zVv_Mb|SLmW{ zpi>_w%)D2nce3`ng8$h0if4tzNrOwL53 zgS^mfcWl3jEbGY9KQ%*QVmjwQBEbZJW}a-2N=Pm`^D-kDdWvDhdsfkl;`Gf$r!1>c z#&0;h)5fuLS%p(JX3cRd_NI4)HggMTJ(%yeW_|&%*|$$0CNEr< delta 399 zcmZ3bds3aXfpzLW;fbsrjLMTQFe*>nEC^w2d?m=p$g=qlBNG$j`pN&96&WoizhIxZ zc{7V3GqM09{7pPzz0;*5rL$%8aKcPh^&wyn$Un>STs=#?cI! z4CV}3zYICQ(xeQr9u0*@4U@s9i%n^r0x=3j)#Qh~3anFsIuA`=z^*X)E{{61bjAuW z+n85y@?+i<>5P9p?Dug*PV&9%EMH2MT6! j1Bv1u&b-9jRFKidKtE@JBsz;T6oKB);@<2h8p8+x6@`d3 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 2024bb2e34861366b7aa9eca9572433840c0d776..c8bfeef788cda31b16a9f8d4ac4f8e3775cb2afe 100644 GIT binary patch delta 736 zcmbQJK0%wcfpu!D=tS0z$=u9h3Ni8dc`@-x`K5U&iA9xDGT39MWN`MdgrruKOqo2T zM|t8wQC0?^8itKGB^Vi*Hh*IL!^pU9@_S}QCPS0Wf-GIkaNcA=mVQR2$$lJL^p|GH zc{7wI0Zrmc%S_El0a}n!2{cc$aZ2qJjSSWvhn&pflIYC5l2|SU1%=5UIn@-nkO9mg z{3)qvnR%HdnfZB>6FDSxL=gOVkP-2jC8@c{2HPMEp6tk}YKUwo7uZw{kpD_ji%_(2 z!nIAFz$wdkd2%DO)MQ&O0jrA{vKb)Xh-OGlBFBr8AyE%@*Q=n9K<@`EhAd;$#CZS=NUjYbNV*DF~cKviJm4n(^3VKQ3<} zh(0!;(iIsp8O%`0$$Pj2Gk|_$PtMQHP0a&EAKWq0ii!#aMfu68#l@*93Q3g;d8N4p zl_~kj3W|!5pcd=Fs|Moy4CyQ>Mh1pruwx}D25RL+4AuI delta 356 zcmbQBJyD&tfpuz|@I=-QM#aej%!)!>39MWN`MdgrruKOqo2T2Q0kt89yT<%jR#4 ze;66pPF~2a$Y`-yjHQbi#+fX}GGTHE#}>xe$()?>lRLNs`HXThi%X(2^GaeBbafRb z&*IWj)c~5yk(yhOkyxBr3^ZG_aZ2qJjSSWvZY{WCt;rHxvW%xE|7Ve!{DDJ2>STs= z#?cI!4CV}3zYICQ(xeQr9xa7O4U<7es!e{!#l?projQp}mUSvn)1k?Nd@_>{b89n8 zXRH9TC3!>{LDG|7^SDW8{Oe)QPs%E(EJ&S_@xO;7CAByi%9$L>TgKJHmXcbMn3*#r zaq?+iSD@bo`6QVbO*d-`JZ4toXJlZ=;sz4MJ)C)oxv3zH#X!Ggfh0PMGZcZ|%HrN^ IA`-(00C9YDvH$=8 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 0000000000000000000000000000000000000000..1423e15dfec5a034892bb45cca6f0adab0a6ee0c GIT binary patch literal 7264 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 cS?KVLot=OF*Z2M3>=kAH zpk>l>Yc4cxxr%&nxXJI5Y$tWep_zNd2~`JO%UYj)up`zy-Y=DDmP9HpPQctcKI36N zBJ>=>EQdOwhwXGpLUK@y4~gx$575|9eQvWp|FN6+?IM2gimlGvGheg)cNT=;J-gWY z0+p5VnCAzSR6L<3lvJAMahQ)M2GlmJj8cn`hlhHBf<6$f$+|`6ODneCUSg~WRQGvk}PDDZjHfVeM(>M zW!WtGC6g35AO#N)2Zv@CM@A(fok$n<>|9AFym2+6%d~>$(uxW%TJWbypjn6&}~yEhf^E1YFHpP--l2p~j8n)y6RCKIARpL!P09iE_j88Q^Lo=n-vazX5o* zG+=5j1T0SxL!MzLzd`}D~v}Q;uef09pya`-K3jhF4Kgb5=n` z2sJ`V3DsE*F)w*zCW`%F9fq5AUi6vvxy``8P#Qlq{~3QhPgRY05WH>ZTOsUxx^4sZ zk~dl~-Gw6XHUfS=2j1+H2M|ni!6wbRd^dCr@%p&bDhsrkfE=Ssu!m~mWHxHpw*{Ht zf$tFQq#**=*Vs@9TKz%hE@?1;%{-1oAm#6dvw_XEC3q|0=FYl>i|5^#O-HJH33Q+s zt<`L(Im#IK#hw-OoNE*-kcR?)B1s@tJs;H@m>Z9KM^y> qWY%u_WC}ebaq;+ObLSC2a-cU1xVDhJe6wxaCH$VnrxIxjDT((>2rG+tc0Y zi@mEPTpl94qQph%Bp}2aQC<-bh!+t21|)bu5kl|~fkJ*k5Z|flOLgze?D_%UYvt(-qzb zjq8!0gk6^M2~cz`+ciVxrB_qFNaV5YMy+i8Y{a^;?R&*=YucKzX0N6zR)bH+cI+~x zi=TVU2j53*qaPZB)-@K!c9%sj=+`Y4vKRCqWTxFUVwMsMaF}|UZINgr22RL<6UxBX zQn`wmz<|tgYAy4IUM$j@_E>r)=@`6e#BpeMk{CK69ZcG0MC+aHx<(YC z5x=KBV<3OcnMqJSbd2t1$a+MR@Y&etQ&(y&StqPR)=6v9I>oozmOo(aF!4MVwy*o) zX1nVT0wdCmex&|{pi$ch>~^1l5{fXD-j*r#7PW?IQR<>pMJtT3{L_~YCLL>nPurf! zwiH`PGgNN%(GY%8nUO1Y-tqG|&c zTfVuP^3U%@T419-PioCviBlu7?zh%U4PUWN!;VgcVd? z+Lu083Usb%rV$$tJ!ZHOTNO~H2@Z(~$hFA+xjR|Ye4)Z#Li>2VHN!2IbXkH%F3G4E zXob&X0qYP%%)u9EN&!*v%qj+KYz^FtQDBfC&tXW!!fPxg#XW&p9?hWn%eEiHfM*1( z#lG)$jjqMoPi@0cUi;In3lFp|JlNj)?1OFB?z98ZOs(z6j@dexZyJ4;L%2<9iQ+Kn zl7^!;+{F_ATEX^3f;Ir<^)czQ99cn{V2(uCt$pix>jhHvi>0cqtA*T0gxrWwKuXL)*M_GmfH^i4X$8TmTr|T_SK?qiu!Wjkq@PeZ;h7G+8HY0>jFQ^!VaVyKcH~yhpI9UJe1Fe zU*%-)jGl}i@OLZZZLE`~Yw#J{6I+gA>S+-~@_DkSa;{&GnG4R}GZHt}uNiK_s`K)r zQ4$1x80*o%2;-L$pLVt#vd^!iIBdW6*_$u`$1I%W7*_^eGH7eTmI^heyh)zpcN}C5 zX*FEU416=8E#~Nuy#c$g2y-bvqy|$2wqD}8(i6|BJ)?sMZ|bq%)!{yIlv?lB8IFz( z-%XK8&`>$u@KmP0U9GH&i2Ja0N~#8``V!exz)$WNUEhn<1We7K8sz23l>$oz=EmbJ z*76{y_54t~ZrNQ+Gqf%;D#P{=Up>>Nyi7x91Zoj;v$jaHBMniSX$fuX80H#-j%jGU z#1qL}E63x1f1(oVAB={&8a)WY?<1x9Ki#(u0s#NW0MOvgp3PiSuf=~QffoIW>C3Kc zXg#PmpUO8CfLrc%YEz+Zr+HvvV&58f=7{=)GfiKotPin~O^Aq=Nzw7mZAHpwRzP?D ze6bguKd)WXx`yi-9hWsV{5@?k1*6-3qFpzAvPk=sR_uJy zMJ)y+@&vY}*(SWmhQ>n8@JzL*OzzhNSL%)|KXFYhWJpy!?P>A`xQd9zt!DH5dD?D- z+#MuEYZ{Uyc$49Z@lW)`fHiHK%r|@{4PJ;`P&y&jHB`_DQ%N&5_!7do?FstPfVith zq$3L(D4OTL7^(LCs9ez8QFZUBYO#DeEKVU2sw`!pvXp{u23e%<_0>fWp+uH9ESqsI z+!XBF6887w3vfSf&6NH_ZL0q$J6`Q1g^1;>618-kCj98EWQYJDb~OQ7bwP8vv*bQp zHk1;4ttP?fjEf}rDpAXsNf7D1C7P7kvxDKkiqz}Pk0x|--F#HVD=l^PW-LX!n~1P; zFxPVeDB~^rOljGqGaiQb5orlSO>lQUfv>{Y{n4TC&WF7f=e#=iTt2sScISc7o$&A4 zA;9?-s8x>~ueHpzU&f%iYg3!bXuM7p*ItCht_z0F6Zk50x>(&qa^TjROTfHYlVJQ( zGS{Y=rE5FSDzoo$=gW7{j`>pVD9=(4@7#$q zZC|~bXHy%LZEeu8L?mEqB3trs^_%B*v1P>Cz=&}-g`PQ zX=O5qAmx$7?@#-n|J+jC^oY7*S&5 zJwWR}F&G#b8=bCI)bKx3qtL|)c9luYUtab&69=V(rZ7uFnxQd>mi2Me&Qb=pf@)4+;}}_`+!8}Sk{iR4-lZ=+Xwe-ANcz|NV9!_Lh4QI1BVGC7$Wz9vGQC0 z&aWQ|JWp`E!ee-o;j1|Q-bH#7BC5Aq&5S6&sFHL; z2bYb?gc}*3QSo`D8lb;;TOzmQomVY{Ub-EgSxCW)p@8A$&Fkx1h#9JuPmN_SgGhtV zx;W&AhO3Np2IPnGdgo(`%F362xOXgr_Df^Ec7;y~!T7;o8?XI>?RBz!^>&uhC7-yQ za5nKZF0Vfj27*jC`$T{}*9 zME`Xo^zgHRcTd^XGH!e4@HG4;ndXR%u+QR@9~-Juy2*8H(t^x)PD2|^Xam9d;F`K^ zP_uf3a2zxgK{mJhaQBgT50nAUPl#P+?xBM!=Kg7I@@n*3ab8CMK8^hrNcUxI=LRuV z?esP^?B7n#_d##H>-+#;&JXF|kBGssq01d@iLv2Ny@ny<8JJ;sJ_4`9TZl?sM1C#5 z*LxG^ci;-i@Eb>534y8};vF=B#gbUvOqg(&`>38SB0L zl{f}u6*5&Ft;k$uh7vvBtmdVB#`I-cctZdcl?5U#bav=b)aEG9vz{-j;CA?->?aku zZ6ixu^8D;Qe3Ui8*wz`JVZjGx7O_b$p6MJeNY9VVPp2}WLlM*`qw5ef)Jn6=hqE#GKV6s3*U8jU@`7rRMFMUZ+?@^~n3k)@A(4z&R> zjwYxCT?Q~@X=e}b*HDpQrhMibR9X_1Cy%8oypfeAqE-eExVU3cYzzWC%*$!;_R`zL zV>5e9LKja9R5?MVlGKaorlp$sk)H3z9?Dac&dUe*0@alQulg3$JV?>9NY!J3o~30G zSe}qA%w?3Q;T&qmmM)Teh>RJt0a*p-6@DmWq9n#;*O;4LKFFJvf%2K`ahfl)EgQOu zQ6CtUtvI&Oq~I_%-llEl6B&#jBH zmy^{_orR$v>K5)KT^2&mBq}Om_>!N*RW8$lOUh5xdTK13-xA;#CErqpeDuj`M{O`a zOlydsC<`ibMaAHPYk2(x#eLAYiF4LL6ae$1A?x~~shftz!^XaiIWCc=ObP!zIxI?RpWJzibL3mYBYd z%0^Hf#(~d|n68c#DCwdm%0_{rfasEL+7T5VU?G{5v$;c9Yy1!v6Tt-xQN;|@WMq2J zcCk44?Q!~rNl-sYG_WvnGhy<1R7w|*fao%L6_Dfg0Yujx;3)d!;d6X3U_p6ZNQ=RZ zKmfc$c5)7Ww-v`hbg|t=bA(z+s=aLaVZV)&C{YRlK&j(pKg@&jXq;nNuzvP|2cgf! zu-C1zr;|gQ$|^M7_3?IFs`gaZLb*y8 zhL`>ZEejQbdNTdvB(| z%%HeJN#G|RGT`(M&jzI*+A(km3-ge%UN+d!0Ps7Sli)~%)3TK<9tqr z6ZkKnh<(L|bHuv5LJ+`NhERZ3jHn9O;9Wb_mh&T(R;u3-&EVE69_R{%D$qebOO5ik z^JDn9^9KG!yg|*hwGol%*omw&sO1*@*sv~Hk0yLUwVq(Nfcp^vbwZ46At%l0q}*zY zq=Os4+Jlbo7Jv|>chwpT>PCfQBcD|aI#S_}cpJtP;E&aLWjzzTi4fBD6ABP1pYQsv z3r$0(*hXd_&e~sx9$rho4tGF#5F86?jQ{{SVG&6x&GSXGu;IMzb=|}y%=F3cnhveiPMau zrlO@m0>o!F?Hwu>tzd=Nl#jwk6{12xfRKP?MJvRj8>m{9u2@hBao@~19w&=dVqyEe zd(S)f-t+Fe{<-kS7`Mi~^IP%^_XbJ9h2H)%U$mJE$a0=f|MruBYo$P&G_Jf@l2+kB zLV!WXM-J^f;9Uu_5AHVaYp0?zFO^=Da=TFB#QQL*UN%q#jSJxw{Sxg=J_M@B_Om2~QvLEFo4+1*dxh3ROl^DU94W^}p> zKbaYw#bTT~bb9ua4>3j@7Cj;E1H<;ZXOLV%TMVvx2DvW{+ej!LY={kL3D+#g5MwEW zc~`t2li#7wHy?bQ_Rv|{J3-K&Uq9=M5ON38$+Xbh=oz*=Hv#*Vxh-7 zCT9&Xs8913Ruo05&M9TJs)JtBjk-;-e43AW=E_xR!RFRJyJte@a%PCXYLxeL27YK6 zBRObo%}!@YQxlEJ8T`Qujc5)&t-q$5*J_&0o;yN&k08LOd8LIVDyn7Go@aAiDfqfI zP99_2o%t=?=QI5EHDEHH3)q9ebFBmQOL1a4DOd|9A5NO*c_TM@C;n^}dGtQSe{icZ z^1TmDc+K{e_rQA{QMl3(B4t*~l%Oa5l7qykysClXu$E zXuM;>u94KJksCDC!7pF&#{ho!nN>|`*r|Y3m^Hy2UZvzdrH43o9Ko9|ZVYOn6JUT zyi!;$7wvDsdvH};SW+a_)G4CX4fTiB<$$)^91FZGnP-duEbC;y5SXOiqUd$fs@iQ~9q{l@O=&fGLo$y4~HYQ9BrL1Kg|{;|l+@uo@>SdigI)*(8&{!i{{ F@*g0JXD|Q& 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 0000000000000000000000000000000000000000..ab21d3de8e6bf0aa95df41bffa0de7af58b3622d GIT binary patch literal 7699 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 literal 0 HcmV?d00001 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 1007119bc49af950af69cd47c03873fdce5eff37..7e76a600bf9290b642aaa5d155246f158ae9fc96 100644 GIT binary patch delta 693 zcmX@1+NsXkz&f=~cq8jJMnVcuGd=#paS4|K5a{V~A%iIy?6FgT`uI~)(=ziiOEUBG;z4SW zG-t3u)rg>}iFe5?NzFx4*&_nB2AdTcKs#7UQj1WOvw)OO*5#C7ybSV=PcToe@)-p`GyzsQdBc08RythY)j8Cx7IWoK78A+W*&K-SvQB(Ork)lh|OK*1FmG8xPuCE3e>yh$KlhOA$PoFCA2&*7mf zt*EF_P?VpXT3no(qL5UnkXM>pP??gSte~g}31G1vylPsffFdeGI!lz1fuVSEAg8np zvTvaFf}>di>P*H7lkK?N6m)61mdjTxDM zzL43R%Kev-F==x$?_*{)8=%@OOOS;y9I delta 490 zcmYjMy-UMD6!%Ed7%PgO2v%)DtF~AWcLz~N7gwd6$=R3CHYJy8I}|^_LA>owokdV5 zK?;gc1#!?-gbw1?Kfu30^x_vTkKgBeyxq~q5p7f3zv;ZtE)i0zH8iJ;vMyQxJ6}qX zlAl_$$-3!UM6mW>n8tY%T#rAXWRKyIRUdm9;tMvO&bd}GODI2AVsXJV>DiVn&byvT zW^J7Da4uCU3l@@&<(h&`@@+KPEsBtY3iQJqL_mRo1sGi5A8N4!_E<~Wcg=JGdp;F# z$oI7dI^#7xfll~_a-ho6F`w2e=spmQJIQZh0G9ciKC}oS(3b_Aj&F&I7z2%|S)2Oe zOEg$B$rS)on+h)e5}`y8NqlE|e+oO|dqF?E23NEfd8Ph^P9%Ef=SEa}3NG_4iE0vE z2U`1;M92SLk}f*pMtD9NMompjcUK(0Tp+?}4QR7PsQJUW8_u+_kVSlKX9ec<@Dx(z t&PX-h`i{^{b-1me#3Qoi^vOY)k;gd_l&O5x35;C|G5NLASDolwLZ1sMuL1x7 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 a63c929ba46a864d1fe6b6b43a0768c83c03ca5c..d97ef6be95fe186743b1e51368787262b6ebe2b7 100644 GIT binary patch delta 483 zcmZqHoTSCtz&e#(bR+9gMn_m=u`|O(t((N}0Th#fdQisLWm@IwPhuLpvi5p)wrvuHCnykRf!wE8QDw>si-b_H1lR%CsP0Em#V=2%O79=Uo9`@w?+}zZ>k|~p?Xf{r%ouZM!+9R!~s8CRppPX7;oSLGLRH=|x znp;qrlAo-gs5m8qJ$6cl7=AUaQ$R)m?KxGPl$aq8GF5T16t9qE1~ddtz}x_Jll0_` z+zPxCfT9kN5Cnz`KaZ8v!yfkhq^y$4g48J)k9s&#Qj3$JoXN>NMm%<4#nKr(8M1zp z7x8FMzRqL8$h292SCWZQe6tq+V`k-#8SjdFIP(&7Q$ZSwLC*TvS)8E=a??AYMw<-R J%?853i~xj2qiX;F delta 358 zcmbQF)vU?dz&f=;WFzZQMn;y&rx_12^)yeO&#cI3G5H%?%H)2gg^WIv4Ve>py)vXT z+%jY`m@{ONRHRN;XK`dq1gemk+{&UX5|a^InxUN$k5HTuH+c_>7fhlMMM8>oE@Ru| z9jq?AE*Y{JaT#*nj6iwE$((Gn7-s;@l$yMrmq!w0;54AT9aMfY$Q7kY8PhjsuxGJ| zz@(UgTA@;@lQ*)-@=gSq1#vOZ5i5DDq%QWb=O<;AR2HO8$+*d&XmN-X}lJUESu-^N-{BWY~IQLm|6Kz#=YVm&b-9j hRFEOXQ);JVJnAgYP^_Jzk#P@bh)ssu=KaFKi~v{ccZL7} 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 0000000000000000000000000000000000000000..9f5497d083cf58c0a1f5fedbd95172a8c13b85c3 GIT binary patch literal 5544 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 literal 0 HcmV?d00001 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 04e72ab359d750fb763428623aa832fb48e806af..27853d286358590d5734a3c995327e946e80e1ee 100644 GIT binary patch literal 13570 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 delta 2528 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 E1)0bXKL7v# delta 2203 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 literal 0 HcmV?d00001 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 25a719261c1c0a9b7b0c9c586ae86a4af663e1ef..b9752de241f2f4a1715b18288cd4330a7e66548c 100644 GIT binary patch delta 688 zcmdn4@=cw!fpzL@;f<_285x;2?`J&D$T)BE4mL$5LzBt3*cvu#vh*<_i_|kRO^#yU z!nkxYKZm?&k3w2beqsri0uY2`q$(s9r6%feA%iIy?6FfaID7b0QqwZ?GD|Y^^CsuA zOV*1Z`0+WJ#U=5XC8@bnCQs39oKibQBZIX^24XTEQ#F9bvXrD2p=e_TYlGM-)&u3W zPJx&zopCusCWARc)^GA-cICv28L}BmGvvHQGo&-lmL>s><3hL!$t@XdU{6egyNwg> zDwst`A_&W#O}@jf#XA*h3n$Q)$CKx9D6l>R**DpqQ-Sw1k_%3N<&FX64uM#ctvJ>B zA?{-Ximd=S94y|#DVPRyDtmH%ZfpsjEpRs_cI=6WSl#BCz~Rp#pF9|^_w+W`k9ag7#SzWuy0|E zoh-;9KiPv*&{8NZCqJ=7L04BHBqLQJu_!fBZ%PJx>=ca*&K{1`+=7h6;>_YHlc#7l zPN@Y7vi7iRfput2zQZBOczSXpr6_ zTsqmFLte1QDJQeIBswi8Kd~g1OF=vawuXb2Welvy`M3p=jhr z(m447hdkru$%f2Qlh3mWSY6DJ%~+Zt=PjBcopH7_38Lep26PX5a(-@ZYF-JFV|t_&6%`7K@{?1Gi&Ik+k}4JQN^=V; zQ}UA)6cr)CD~4Z9>l9F+W=LmAF)}a|Pd>mVEt3(Q5mTC>oh1Pj0lH%n$Q@AEN`Txx zS(nRACCd;f+ryrplvPq$kUAyH2*l+`Ni9xB@F(|iWlm<~wg9G!{cJLu!?^!4GNx}1 s;eE`k<_J`tWd|gRdpPqFb5lW@ih&Nv0!efhXD9+AI?HZztY8cy05@FIE&u=k delta 342 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 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 0000000000000000000000000000000000000000..086ff82989f3a9603fae93d20595388270561e53 GIT binary patch literal 5722 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 literal 0 HcmV?d00001 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 086520579776fefd7e2a3375303f5472a8b3bc91..11b864e2e885291bf9089a7cd689ca8982c259dc 100644 GIT binary patch delta 241 zcmaDOzeItxfpw~+z(&?{jEqd1uP_!fPp)C-o*c%OKCwrNzlSTnBtJR6AhD>VcuGd= zvOi-_aSvx+Vs2_lWkG5&$lU##yZDkA E0RX32TmS$7 delta 246 zcmZ3Y@J61sfpzLb{*A2X7#UeMUtug}R__rmF38BttI$iWDA6m+Of65&Pf4B9!w+M| zC*~z*Urj%xAXVhj$XSim_WH4vQ`en%ZO?G815zOfB;fgQGPmV80 zEGj9Uk}-YqBi8!KBCHauARP-QuVFvK)x(yOT9TNVGbM3y1&1{YOKDQ#K61$vCk25ML4_0K;-z{r~^~ 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 520338631febce1d17317d44f16416f0b32d1fc1..f5cf194482d8a96e7431f87e68c176f3be7b2ac1 100644 GIT binary patch delta 241 zcmaDOzeItxfpw~+z(&?{jEqd1uP_!fPp)C-o*c%OKCwrNzlSTnBtJR6AhD>VcuGd= zvOi-_aSvx+Vs2_lWkG5&$lU##yZDkA E0RX32TmS$7 delta 246 zcmZ3Y@J61sfpzLb{*A2X7#UeMUtug}R__rmF38BttI$iWDA6m+Of65&Pf4B9!w+M| zC*~z*Urj%xAXVhj$XSim_WH4vQ`en%ZO?G815zOfB;fgQGPmV80 zEGj9Uk}-YqBi8!KBCHauARP-QuVFvK)x(yOT9TNVGbM3y1&1{YOKDQ#K61$vCk25ML4_0K;-z{r~^~ 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 d1b2480913300d01c218f9db71708b1a735e5d36..f19328fa6f3f271c27563ea47b5dac7ad8d4baac 100644 GIT binary patch delta 1544 zcmah}OKTHR6z)uBn#?3kCaJ`>lhzp&Ow(HX+F0L35UmeHHzK8-Bol8g&4W&|=t9ti zpfI3##+|6Rb0JtFh=>S+;zAT(J3$deK@j}`isxpMW~^GXxRZ14cOLgU-@VtzUv3po ziWeXEEsA$Ij<4P4o^jksIOo&(k@4E1@0GA*!J^OLc#x$xUFTD&%$$`jeC2@Kzqq$qw;PJ4CW0Su>X}<}3M9ab_-WRUB~oPdO)? zBoRq_1G8!wW+q=T3m%|-W`*LM3~S`080_S5@FbQ0yc%#2X?R+ zm2QD|ktCcCO>+A|RW<_Ov3GcaZM8ZcMU$P)4o(khr81j}G3QA;%Fel#4!a52`B*SU z;2B#(!ZX76a5r}tnLms?iUMYIjj4bvQVZkitlp56j@OOy0qn4h9j=L0$p9_3Dpb?v zg=nu5Y!qv78(`27gSNX+o;hGBJkE)b3GWfEwTg6ZrB_@1eG%!n?W~uNN4dw z4Ys6VTIo?dV(P(Z-enU}*@!&%f^FQ!5FA1YzJ?S0+9nSX5u07If^bifg-?k5Ln&cQ z@qy*`D#gvYTq&&DEe7=}hfsyJ$C> z*uV?cK%=4FMu%`Ix?3N`ecNA3(+a+_4jp4=AZuEgrVT>uI8 o_HfmE-}*^J)9tuewp26$8xcq;TD2o^ngv7mSq?}BgI)CBS1WrjEJecyZEH*aV1`M7<}z7ZXH zX@5Bf!Fd94O`A` zOMZ{<^I{I3`7)l7-Vi&!oN`RyoJEchc}j2Vef1}hc@(Donk%tSuEO;|3^x2TWDLIe zSGA~k9;HPZogw|b%f+l}G}~39q1QBZcMZBK3oz^Q*l>;qgITDB+(d$U;0m5wflEZk zZn@A85 zwjz4`TlP&MTS~D4Y#vS=NWUSZE0&{Gxmq?#oJ}I$a_>cTz1raHE;@2*j-400TWkt1 zHZ6_|qA>9HNPL-QSl7OA{Tq$Y5AbMEgSqg<_@?ORG?rK!7ml+xB6O82X6Yb?SK(_O%Tcbh^=ggl5E~vR yGCTX&iSI^PQE^dGZ@gee+fT 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 1550c4bc9c0828d5af1c38b9b2fce86160c2a0c9..0b773a961caa8ac2c51551ac43152a25b25ba870 100644 GIT binary patch delta 1360 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 literal 0 HcmV?d00001 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 21003fe9cbb006e887c6acb286cb2e1d3a2fe025..aca99ab35b8869d4061c682d0af48468ffe5abb9 100644 GIT binary patch delta 2875 zcmbtWTWlLe6wNwbJKlO@=VgUBk9CtOPMSIe1r#|Iszi%gDlG93{h(>$*z1l5KO)}m8Gk6S@;uP_bv-RxPhzx`3NZ;osx`>U?VB>P0vg(pF!i_N(@#KRz)XUpDhnV8xK zVW)sQ9oEiljs11kN#PWG#(kfB59uM3q<4=1^6hNZ{j%^DTb72!H`fihzcyr(o~cwk zq3Ynw0nW~{x0}ujD=h0#+D3WtogWArJXJB$8)Gf9vhye4W(D9hf$|Md_GnTf6E7CiskB=ow8uOLhQ!#T&BqH%2hy1;zVg`TRT5HXQNv(RA{9KVcQEu_(jQMa?WsYJ@ zTdf?lL2N0AZElA4!k^`%QY7v~KATl@C3Zy^ZZnIXK5no<=i$#z4^6RVx!-TmgRT=? zMQH+t=#;q-zePeocax7ZA_09LW04@eiyy)2Y_(*7tp?3qRMmKt^sydhyyWxTWgQIUvYYUjSAt|mXBLG#Y4 zxnw$bU~0agrfgW~JIE-%mJ{v_T*N{=Q&%3qtBpO=L=_&grFI2U+rxhIg*SYN{(|%a z&UiQ5;eSxL$X@hMKzsViKe(yJhYpR9zK0e(9i3o#o?9y8R-xc#88+({3Ox*x+S*}D z-rLp|%nk0ea-V1!3ue(O7(C*fafFTfL0i(y6xT^)olFe;7eh=8bTj(CEq<-_pO!`f z>9S3WdL3rU0-Cp4Wi|O|1{IhlL6Lrr$Zz@-D=`vEV2<=?E~tcLKB3cZKt=Nyt86@- z(`l!Jz2x7rNUwl^oTA^sA6>=ARn(NKXRgg(7x3tU1K{QaG{=Zys}S6_U#(i;ej9M( zf&lD0C-qv~ThRrUYJkUpiZ!V3Kx}nUM^N%FsJ9uY@45x*CPZzF!!=f9jLHbWGtOZV8x8JtNDMYaKRpd^wl>BRa@29i!A{5{o%7(b zDl%qGFJ!7*z9!EK9Y;}WeA(c*gwU}v*+JiczcvfcJ6PE_;M6g`x?DfUBVV_|jvHL> zzXjKFVlI<0+Dtm37S|S8A0WqId65l8Y(-X!!RYDMR0S*E+X0!qXK2AtNSQ6<;h>_L zRAv^G++22c0WO9T3i0jrPw0}}(CtPxnf5Vx>%bG9- z|6yaSpMlu6bME0&@OVo!^aZ%m-1!+=T9{RJ`Xw%#l4>zwt=S(fW8S+Bn;`L$o*0X^ zMp&VB0zO)y&dZ;*-V_|}#`1;stBs?pU`{V%bebm@huH;Ai||cGQE;qCLJ+Va2T$9` L&hn+shlIZYaj>YS delta 1171 zcmah}-Ahwp828=T*@terkvVm9?f8M)iES1JW@QLvYB8cNg367#9ea10y4p;JNOmD) z>_T}?&_zWONd<*4&F-Q?>b9GTpbzXKqKp0j6MD|s&e?>Zo5S-yAHU!4eV*sMbNx>` z*%|g`bK?Sgoj4$+Ygl+#qZsvYM{ivCxJC5vp1jfJp2Hf$kuLbeblGV%IU>X_2tm~V zr@p;iJp?qPAM=i4ULY* zg)Gl|ynJFT!}~mbKTMfh+$+9o(zN8IY%cik6c=<>9wI->SlR1SLLsd$T(#oyp0KEujCgUDPkMfSPET-0h<#74K5h9IdoG5&Nj5- z+HqA)@Yd!vO)FSp7A5Qghy9f91_7?t54Y@AT(Bj3dtYoKnT%W!E@u)kAuZt=i<5Fq zVXIgaEfW?-?+cVhp}0%a-!=`itR6x&t=6Y#^%k!fhFNDfw}NOnsM!oYW%g0FNtBnKQ(NOf->{q7ZT&z;^OtC7%Q6wW%{ICi|r=Fe)I*jeX?IBx2usFhkbKqW|_s%i;{;6P2{*c-+}Y)7_J zB~S>FKnl`IZ93Z%YE|`u#E%LXsRD`w5lBd(s^C@*Ep4eNJx~Ow0&(HJ*d}>RTWZPcK3r=S z1PA*;SQBDws{UQ!Fk5kNVkXaaanQ}PCAnK7ru8w9 z0&yU zotQ}%iaOJWmh@Nj5D`g(Y16UJW+GiwGd4qQxOx*7_4xaY9YU~$v#92)%w48Ad)BjG zxQ|);{)Di9o0}p&((s0E><J1Q|=8Um5Z?izHXhtm7+aaoH zh-z+%2H?-~F878jnagC?RNrMNf_cfkmkoGTLFwS(01Y$r>o#ra2YGS64vz1ai7|p0f5}h=r$Ha6ZsZLtV znW{u8WgeNyVZ|o1+t#8t2FId8u&>rekqCFR6Ww0JjvKK{EnOo01XI4((lvk!e&T$Z zWD7ntq*vN+6$&)g_=Umm=RjExJ0p(^m)Y;~ei$r~)(3)3HeVfDj(&#LMpJD8qAw!l zVXM9oT8nh8@%&S`D*Wj=J|2QI{ zaXmyY!M0YDYHk1ZEbVe2J&0vC4zad1w#blq66}MRgkAoeM0#F5a z2fYe9&7D`LQ@Kncoz>|U2m3?bu}H6jf}E#6!XLeXkDF-esqD7CP}_jP2G|t3+^0E) z6ik6T40F}c-wC8!`!Ef zc!@v8PPdJ)D{T+K)p1D`jH RLd0ATNTXz|v~TOv!oM}`c<%rJ delta 1093 zcmaizT}V@57{`6jcD6I!#FcaIvn{o@H%bz&+TBHQ4ok6?*|*FjN(| zpbet1g8iheDZhw=W4IQF_UL#3jPxBesgx|x7J7o@(y&asjQQem5)kBo+I{7(?pobL z^awuc0;X>4!UNddk4U}?{Q5OCPpJM1m<7}c4-B6D%`AJFOS7!U$428R z*6*pWhh;;JYtBC{O-MdWi%tKmaD!OffxgP{ZoEa*Hpd2Wg-CgP(hVusN@BU!3t)GE zWDO$2jf~>35EUel3Vd1-hEPcbg?DA18E+SOResOL6p)GB;4v0ccoRO`S%bQa2G)&d zX?ZOTG@DLS)d-$jYy0pA?BKnqs3^a45fNWg^{@`>gA(4`Pa8j3RRhkZL)E6Cu~_q>y7J2mz>1^YJ4Ya*J~7Cr(xaTj&&w_o;e;X8hZg4%(+Q==fsL{r zB%MtbQ5WG-;b=?>r(+J+O!kq97tIV?KeIKIZ$3s+!C;t+^Ui%BFAx0)>w58{RV^3X{7)F diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormDiagram.doctree index ce4a5a5a8f44dc3b532df1ca91dd86f103a571e6..86e7d5075a1fd81ad8a5b794d81aca32dcbb514f 100644 GIT binary patch literal 267626 zcmdR%2bdhim4HQ%5F)1~h%g{P5-1>Y1|cL&4k8-x(mOM|Gph;91W9Wf1CIDSKHKNz zY~MLyb%F`}(@bTL%EHR7m4hogR1WDqVP&ORFRyHM8;x>n<)&t9!^&c_ zJ{7b_gNe5JPq@+c%3!Lxa-s~9L8n|Y{<@+h4bWa;SYt)24UIhX(v3TG$0~DrbE}O~ zd9z_UY1PVM(5lMeV7Eo^-%;@2V)$<$)kZ53>+pZw{>j?f!*KmzlLtwe5x80_h!1NIsZarSL zJ65(NO`+b-o9ngHMLQt&rds88xwWx8gSr=j?%J>?KFhZ!wp&G`>#d}&w{jc;G5lr4 z)b#1tVWIytCJN2*LEU48DQ|Qt=&~1YC)~fQbQ+Ka!-i;5ncLfUP`4su4*sLIZ!_M$ zOM1INms$=c5?Ac)hBqKQEPgMWR;^4{HlPXX+Ju#wy7isKt@qt`bLdGl1QTC8?vo-G761+51Bb7$~c*wHF4!Mm3}oPn-{m3D&GM7cB5Tjb$U z0kpTmBXw4R42=F-7o5>E_d-BCis%60d%}QtjZB>Yb|+j~ZdaC%K`$>ANr>Ov{|kp7PWE%kNISuGe${qF6+I_@K{o`>{y8{%KcL>uy?L$f zSgUI0IK7=NEq5wSNHPfr^t<-Uzx@63596}SAQ`+}(ss{IFxIUFtE)_Ppu(C#|~eNypztKQRC&cY|?(zNAcpdL!W=0g|j0LATRvckA__1-RPF_-zz! z$x7|7pTGT_ISb%_@KAt04|FM)tY15A{Iy(~D33xE6w3=1Tu|;5AST-Iqf-&_Q7mIj z1dRfUtuUoaOnI5bZ{xPZxms|@q6$HLJa4l>>9dgQIP^(QtAhwG^3!fDQ7!g#& zRoiecL8kzNjsm2gg;u#%-WW7G6srpsj8`|ymW{WX^-=MJTd-h_XfyY&tnhI@mVOR>;mntnZ8^Sc0a23J_O+msX{L4fc1|*%1QL?bH+yZlyq1jDwsSr+3AN+Y^q!L+(Nn+?Sg)`8&6+OHe zoFt!;=h)#m(K^4P1RDTGIQ|)?AXVOjy<^qessqs zm%$GrG#4*MO^=V%B*wI3&C>M1``)3|+%)hHb8&1I)v4&m#u`jbAhSFD7Ug}w+?j(O zq}Uh2uCT%oK3nEUmA6qtC$B;q;1K&g(IUud4PBkPOkRgdVz4V|U?(6;Di6!dWgcWM zaJzOEicc2ETPCj-R<||HClGK{rY@DwnaRjx0D49~vIAbg&PMJsvXRPHAZ2|7vh=U^ zj!j@Em3U0~j-b+wlF;oKcT)~(J%?L@xWE))}@{Gw#d6mhFQGDU# zKt21Hk&bk7YwabDlqw0RNBJmdXq3h^60uB z^fHbvXe)MJOzU%tuGcZn zE9DYs(EGqQRGZp1*NFkVnId6l!{n0ZTxj{MlRg6W_5 zs0`BpY0gaJ{_+8FPa`olbJZO?REbjHYIKbKgjGc&y}cqe7%;fO=~KTf_FBf+aan8; z^isiKl|KwZo8`}hs~98E)3%EakxaOpSD{XPi4b)&Veud)P&YIt69^67@|qCOz?+YK zw9G0(JT<9tGbO|+79l(`Zj9*xx%TVP0X7L#5xmtCT1NE0#py4<=zk+)$hhc#FX*L; z{-b=Ne-`A|uVoBF5&tQ4f{gfA^C}eauN0#0h`)U8)}7KLGHmsFH9@|P#uyHQd@ZT7 zwh=+Zv@1WX5Mt3>;_v7Hn;@zP2qLr$f^4^g%U^y3`6pw@ID+f~*Up9@vXvO1xsK5P z${2668<33K8V@Lexo+Ef}FMhkJ635aqouoIHk?vu`-lDAFTz{m#N8l+^o; zXgsY)-`Me_ieQAUFJlDN^{5jILBF87hOuj0P>q3Js-R*==tfg>kE|;h>riBM&=WGU zF5^|Gqh2gTosrc$c8&jwFnaDL($UY0+8Dlu5`W~X!gSn&qN>T#^N5A;&8;zTZmAK2*Jsqq@dPDG7QqE93> zUd5{rHC`b^-PAbeLKv{)8}XFyzKJATT#u&9W7yc?pvza2IwMoMoS^B_@OXm_ix#5n z_!}DEW``;ofi>NYl7WgjJGwmOhl+nNCX7SH0=RZ6R191qXTI6THs(%-zc6MYG8~L9 zkYxBHuR>(_oe*`BVGA<#WpGbEnfg**&c5MHqeo}zdKnM@MAov=Sh@;*W5<#zf=pej z8Xcqm&FQl$!>>3wR0qCU)DK=9#nwooLUBOs~BCCy_kdbvMuRSQx^lezH=S2#Ti&EmX=mMJ(s%WG) zPgZXb;!RGM`4Qsvj4k5`@gC4iMTn!h{5))C?sT}9u?*4S6X*p=hkJMxqQlFDsGAN; zEINd}YtW)kLV>@6j{8UP_J`)s zc(Bx3?wp7h?d^!0G-fW|9;`iiwA5KNV6|UwKVu1eq1J3n$SooL8>1%=mvtO6pbm2c z5H3caTqwll2E584a<9VVK~UJ+!?+-BW{vE~fGwgsL3yWDHn%Bz$YEHV013_f{pW1g7kg-ZNy@;byIw-igUB7Y36Gh$b*6V*vI_z8%hvG{mrZ^a z@bt`?%O*b;{``FS^9$k6FNQzA6#o2j`132_&qup&| zQ?RY;qJP2vdOJ?knqxDU!4A=2N*oMvS#JTHR)X8B~w-7K_(A28gTv5C&=xgS2x#-b0)-| zN!)yh8!mC%XS)+LVE-pB;v3l^*{m7r4mH|=s1+dbt;3ZW$4N_jKM%HQIoC!wZB zae5SXlD4X#vj)z9fg@++-Ic<>7UW<1Z>m)e`Ww`NV@_&v2P$kk4d8~L`cA7^h5ej% z)5UGmA5jh<&;lX+0Vb)5I}k#+_Z$V9wOTOME{hGJc%$-H+G2|htbzx|t8n^^+=~m_ z0!w03XnFH8EJ1%Xz&&sPLcI)|L!p^dP54z*E}A_WI>|HwxM;b{MR1>`5Nj z4Zw_In=J|q?g_=_6zr6}G}r(=8VwAbgL5mOvG5XfYMQ!@I72{nREUDwDBZ?_1y_~p z&5fWAj_)?QxG|poCifjF5 z1OJIY8Bk%V+LEVcS=Fgh@L~}+t4Eswm0BwD0$?pMhYwebs-Vv(5>TqMsVRGZA&{g3 zWf9_NT(U9tM(|o_@md+O_KJ03Sv25scodf{2?c}Xn$4*&)Uf;F#UVtcUE6Sg5DXQX zQ-uIJL1Ci0v233RP_LFm%dHDh;edJi{x)!lX>5!ZOxIjqaZ^%ppnjQX|J?fZj8g@JHG*gQkoD`;XW zX*Nd1GdjQwE%dmuBzhd(uO-OPh%I#^x(*+^fusF^ z6KmzaG@Rk7Eg$#c!wJZW^F7T5Jan*ABPvEiDnNEq32NhLve4upR=}d=SXO}N4w=y) z3LKh2REgGy=*N>LjIgJo1l7s>$;c2eWfCzju%<4H2S{{A;pn|;6D|lXgLuLsh-)aq z;KFVre;F%xHkE-fq9X~|iF5&fg#k#l-i0GP0Iv0FL;M@Ph8-;SNC7lU9nL+Bnul^oObK=F8mR(v&;iQT79^ev7F-SXDT;p&kTIW`<~0U9 zG<7e4=eFg=VzULuCxU_KsSD(UOhhzDctNQ`RD*jkcYu46T6k0VD+-d)i`~{naRwoz zBvm+Ls0}d>^Er?KqfgaeNnGYcXrwOWWms9GT%D+lHCqF0Iu0Y02GnKSluGGtL_TKT z(l{K285&dkGipl;M5q}}u6~V54jPb%mJJ+>;9npW+&rqAsrv$T{4g!V#~6SbRTL_~ z;Dc4eIB}?w87s}EozaL3;9)zau~918SgOP59)lfJ2#T#H_!vhz;u%2hZ9u09YPP>* zS@ddCwE#1l)dlg70!{>q@#nPcauARrSdbIq)+2-4jHFekMx*!X z)}|+#4cQN-n&Ow}tui@`<-_)d@+R47*I@+Euf#{{1;JRmS;HZ2(3rrJsG$8DVJwJG zOf>+2Nwo0*5^6El)R{-S2Kkn}Q&6rcJ76ozn@59jK{5((^x*PNB^-ek#9xI85#H7D zYBbIRwL}9v%t^ev%JHvRC*Vaa0M1 zB?AMbrg-LvWCi;N>cU)7tFNybo`ZP-$l#idYOw$hJMAUZjPx#<#zDp6;U@k}ciFB4 zQ;;b{Oc=I$s#UGSSQF;$grL&uh(yHEdyzo{`a)s-)t6Xir+zmIols2K4YF4lq2WDI zSdgk1?uecYw>Pn&JS`?2aY{%&r*T>a#=ht-I2jU90aH+Qm}f48#}R@FK`G3UX^;)$ zKewP;xtCO54bvIyOb!X;XnPs$PwgBk@`cJMT+SpY>ZhO zJ-(yW8CgMs`mp|RV2jPcU;EmGvurANH*W=Jx{NWgoTWf3K|SK$X(|j0sBz0EM^@HZ^6&jdMPDFg95g>k3tW1cm z-QbSZMK2V;f+gvW!%nJF^DxS)?a^Yb3GXB9mMWh>OXc735+Ezzl{m#oL~5V|N3E3Y zTEq9@+&>yL3?pM!5Uy9QPvJ?jriyuM;?MFr*dE7qWSGm#1m@HuT%;Z}s^iU?!vrKD zFC|}e;c=<)ccx{e&aK^`gncDO1MJ#{d`Dmyra7hyC@);n`^)eitP9VG#e=%Ov zhycc`sNq-@PECf1Ur1a-l&P5vYl;~51i%^mAqb@i*cndF9xJy-o9dKcV|GjY37IFK zLN<@IqOc35IBHr(XEQI4EBVTP<_G77iT(DKTV`I4YH&U;!sW%dm`G zCgK6sh>fZaE7CT+4Kdq=e{WTB;Q<`}A9ed$t^gJBokZ5Q5vHQ*BC<1ldz&K9=SRm*q2gX{HtAKbz( ztN?MY59r(4^IsjzhaLiI)Hs3HjY2(Wb~z+&&0e7qeo80i5wb-==kyjUQ5C7wNUDcZ=ZnY zMS==+f$2PWt1e#2AQohm&?_dO>vbx1ybAagTZup5>LNfl!QbHDa*hxQf((}9QLF`0 zTzumU^VIF`7%B)vw(Cux%P79cfa=6AR3CIOc*TzjWq1`%&)pC}V~~66iGHk~ru7B# z#cczlXoZaEJ}g*dFF(VRR|Fd8;hG zAOtC}7+PbGY{OFla73!9MX6JfGzjDE_BVeD%wC4qj{{#hfv)(w z^pBJgDXp>43$JKbVp|1oH(H6f6=eZ@mh@H9Z=}K1NGbbn#5hPa3KmDgzzj!CW*;jA z6F89}-7CShxE+3E2$sp!alI#9J+evypblR}#K}6nUP1~RTH3M38ae1Ys=cBwg;~e| zJ!q?;s1^h%bwP9^PYdtXm}RF3m;GL^AsBpN^}fFUZGLE8^>=-*`c=0Yy4Y{@`;8)c zXJn>J4L{{$R8AE3t72aPlUxlC1MyEx260g+5DQ@&u_I2jk^y38Si`0nv#(+r6)MC> zhn=%nv#~gu5SNY2$7<_@>;5zzjmzjs-tZQTsUoa6dU;VBj^(JS@Y+Q#GY(p<0GDXV znnu;oS*Pq+Tez$(oTCn}N>_3uoMElWRyLqgm>rUSqU8-yeae9&YaB?FhPkHT;Erxe zjOsL<#y7(BhC%RmQi+K<^=ImE!hfnX<~G9h5=IITE|&;h6|O{;2Bb9vYQRC$5%53~ zcPMI8LlwF<4h2NG=>8E7`HagB8uf*4V^%+q@x$8DF%a zN<~1bZeSH&)O1#*XF}~4;B;B`9XJWv6KLw)2>qF+QwO{WClQqj_d84Y+1U!?H9FNM zzL}SLu_o0rc)ce5bqlWHc%P1W4kXy{{{r*a&7dPee8A&ZPJYAIiVAj^aDB6SJ0?E| zIC+Gzc}DL3nOqzxT9WqDR^~^t_MV3urP9`9ek3cb>AV5=nfRMMXQ|!Vv}1_hvrUrG zo!ciu8~b){tD=$Kd{Q*_Z=Z%5u^YJj_HUmoESvmOJ!?QO)&A`zVoD2!YZL7i;fLJp zk4&qE;;u711vr<@VfgLL$>SO0;2q*;u&zNz$Zgy!c@^3fy-bKYw{iE5Skr7E1>{m- zOsyk3(CBy*A5p#euZ*`G+jsgm|3M>jbi-Iuo5t@6$GwN)m%5fp^Cyn_lT_5>rZPU_ zQ7RhkccK05a~f39NN-0}G9vxCPH*`|`oA$&j612}MWB}|(vRdKT{JTPD1Rnn7>e>Y zpc7=2KaE$RD8EC9x}*F=d)tKH?oo>Sbjq3p4`8!~gar2`wR@%{(9eI`$Lm3ZaK~?y z2;V|K*hEl8@cgGs7*zPa({p}Q_zq*yI4b-M^iolQeg3P4=1+!iFvcM=`~w{!$?zzz zLS%SEh`Pye=xXP_aAE)_rlWngorWjc7r?!`jz<9V+qTR!+V#1o*h4WXgZF^!N5r&j zG~$m#U)T|^is0N+t!l*lNlyRy#r*M%UE^Z@9MDS@^X$2&MpN^T`W1|MDC)07SIDS8 zmRF&kxD$Pe&#hvYf`grxS&H1aRi89$wz z5iX$eiGTYfjwl75j()Kzpo&I%d+N=ua)X?~f@eED>c@g-GM0{G!3#kz6$_4IM+JR0 zR;Rh;HxKYs#z;hj*Pufr5pL&IhzL&>qHZEAHRsV)ml(8Ak5YmJ8k!OB!3GQoBi@hW58vpo(x-0F;dQ|F+Xxe)0be#)@(A|6|Zg761IK05&rJ zEZ}R5VJPPRf=-Yz{}o<^V*ZOl)E)DO+Oq=vM=(*Kb7DHWcb-2y(LE3D)id{(w#+oT z^+=!IZ1NFKlF=w%hJLW4Tou7cpA?NqU*+_iU!<>KEE*T-XMkR+NM}d-s-gKu`!S4h zDB3SYN62Vj%&SneA1OrL(SEQU?IPPJ1F3x9EubU%f$3`O@n z=miLK#kz7(KiFY~4yVUFPmQJapL}?$vX2ApMjnUDg_O(Z|jDz(q?( z*|G%vVY5XQjr4ZKXoS;_#L2b>T9!M#=!ceL80*HNV-_Xu_nR|*hcJ+4G@k} zGvgGK8P475_I5GiMQVM`inn0nhJ+PwOltj1S#hz!3OWy7?$}{pHK;8; z^6-WzGrovkv6-QYMtXbn=^Nbms?(i*-1stM<~VMA7xYqbVqHZo65z7TKlX`dIBdY0e4c_vQWC~X$wP~hwSl>?v^9wLOqYM32m~fR- zln)X?jf#7QL{S;W+Uug`uK z?Qe5I6~X!?tl9v`61HtDRE5?D~o1m8p1nl}H(a8KG|I>_NDDr=SPLPrR30{RF z|D!^biTorV4x<6YvP4Qc^8bO&7?Q~UYf?LB8u`Y%QS;Mn9+`qE9?cO7yF^%^ityd2 zsck^vC{&Aeq#qQHfI89)A69~1Dkv;xvjeNO`P1Q0#zI7g)#wdLhlRWf(cu6g>ZZeS z#tD;NCqWV+k}GOTT#3zz?Od~K*Yjmb?Y)gCA&)2W-T+~VM=8-kkJuT5DgsJa+6E=2 zosRUQ#74%zajC=8Krb6g*saZ<5-r9;M2Wl68Zk8M3ej|7K89cji6 z$AVre60lLyrhoys&#F2!cYcEZ^;#<(b{Uoxf1h3d@(o@lBMFyxa8TRzH@DfEe*SE!G?!lWL5+1xfsZ}%OfnM`u_taY*pm6y$ z54FZ2iHat~AFv5SLWticwQ;6|&?mEq4s4v#?uiIPBg%*ac8f4V6~W0Y{g*T#aR_S0 zdejdR2SFWa1|o|=FBK%%lUX7S&Yuz^jFE^Er=de6CHCP}h!T4WQ8y*dGER{;dJ~<> zJ?P^w#@8+=r`W<;G)peThQ{{1*){rDm(&xPvZQbHp+8#6u7wbBq2!|+si9BoTtgMn z=tHR+6uH&uOFxP<7#qi>8czbfR210 zD<#<3nD}?f>-hf--u#fn|1XnTH`Dmn=e~+Q>$&Ml%SIWn@9q%>s3JJ`RjV2lI1qJW z{pUx45vU{0h++}wrJ?|P?yJ$%{5h~UV;5y@1ZYbc)gETq2BslA?ggT-XX?tJM3!%l59pwKT>~|c091)}o?pc82X&;$tB(M^ zR1v?_>kU7ea~3QY+KaIc#ruiq2^sIZ^C}eYy9iNtye~B49sAgTXm`r!SU(?cGPb+S zu2^54)Qa0Q)|<^K-&hCHXsl15C+y@|6{%PUO(WK8PUrc>dX+J1+|zv{=w%t}*wXx; z?PbO~6zg}PCuFRT@hTMSqe9dj>&J;9aZsy?Z>hr z^FY12Pp+t`@M3JvkWk_7r1s8~3VH#tcsSRqB{`qzH?Ah}C>`F99B70?gPd?6!%X@U&y$B0$rDI>A0W48y%9ke?d}9W*YZ>&w9B!(l6N;veBr2FZ#lcdR0WvdZB6r z{Rf=>^9%Y17`w&={l`HsRnYrA>t$2(kNNj7=AoE>3|%2({++xE#r)fZs5|DD8aaOW zw1=1I5cIOs4VVK=prKjt6Kuecu;52YExc`6(5m`Q3AQ^R3oN*MyE)s*23(1Ga^D4xL z>x8JA4>a`0JR$6B0}=&BO2_^4@kWOv?w^~~l9|T6z4y1B^e_NJAsYYhLa*5IuZqIG zzlOfSfcu^9^kcw#7&FH);KQJoiUD4Gf6eyh&w+O^HX;r@g8q;kcq^|$9C(uub#uVn z$P3ehYS%BmBv5;S?b(AQDw+^K#3l?0A-}tXUdJst%b^MgB#O+ zix@4HC^O!Mp0Sysibi^S^~aC-5ruayc0(@zyRP9tD zqkuoQK@>6xRn{(4+l5Z6t5-j7rP?${PQ-@CcEZ^;Mp?x>lPE1clPO28>&rC+M@FYw ze-LbqMT1($_dP#-G=h4F5qh>%hlOU75x ze7Xw_H6(m`Mp92^%BNE_pSrcO&%0O@i}L49=mDEQs%WG)w~Sf_Z{F^7m>+N6!Wc4+ zH}3PRz`*&Xy!1wDWE88tNjxc>*=-Qc{CLnaI82pRW(r2*@Gpwl5nn~id#qZex@*3&#V&e^MG*Vtq^ z(|e%{+1AdK2REu`KORms8lFv6oF1(NwQ(FV@Ux*YicwmuM=#m5P(>rX{bTAe;Bmdv z&3^E>hB1F!#xMqYso-%6modb(JAam3$=Hf=hz|Nivg9&eg?jhJLe$NYlf?TJ07U`& z<8sjy6Wr6e3$<-j*T0nsQq{)V2g$)Sqi z$QgAJgB5f3b2-nC75`w28pnzSaP3sAV2_v5EzO?}e_^acbT}A2A?ff(UWMrJJ0a?( z!@@N%I_ZY<76EoLTrw_>Z&kU4Q%1-7GG}+0T_cmFaIda$H5lHuVy3aKS7^x2*`9)t z<7g{@*=66DH&mjre>r-_j(t@GD>Nb(H5hQU)2V(8xRNn;90Q&JdZ`$|uF#0KIDZyg z%2RYEgvP&tI;Pmfm9KEMaEV)@bh}7Fa7ZI8pg(P_<1MjrNR&U6`8)~=Fgsc7!whD zK8o&;?0Gq_LhSi(A?jw&5yoot{yi&w>4=Z0rokh4%R@qgFD12UrZmvI*zEr5vDUm# zA_a@L zp)X{Hu#Q(D9;^|fZXO(O&Qw@u;)Fd9h9dQ#JqQeGR5c-y{wcZOnLo(3=1+y+F!muT>I#sX!ytcRmb^}cw<8n=ZC|+dX5vMGFsA_6##wHC3HM&V{o+&lf z+N(8-%~qq_@+XFnj?&`4(H}M~RMALp*D!d5vO$VhI=$#eikC6gjU&YyK`#|4mU%74 z4DC7#cBsFEF%VJW1LzD%iT~tPh!QUpqHap8rbBn(z|mS6)^J0bfIR{Z(+d~!!Ddx> zyE!4=iBgXQA$&!Of@;OYR;Woc)XkDZ&ac+XjW%o#t(9R;QeZ?`NO6LZ(hMlzjSdL|4uO019DPVjX3BuRS%y-1 zqE+@?&>)4Q(Z2@0VMo6zqFDy1YlQyeoG$bW{k4o~<3j%`&`TBiezOc=Tl0_m)r@^8 z?n~$knM0h-t5DpZAw=DAf9M)Gl1(1f-zZlnDq~GZTBFkqoS2UM4&LgJMEhwZryWU=33CK8WE|BKKgcJ!+vdiy}yM*P3j=}5o$e+gsYxcGl9=%tE(zqb#n zwfPg^ZpK1Hfcw!Kk^uj~s}KR6Cq&%@INE&sK$fA22C+xf8Y=jTYa)CSZ+%FJ@Uf(} z&6EiG13n_ZA8+A@RXuTlvQZZN41Hm5d7NdKR*!sg0X8H2>uFssX)Mf zz{hB6{uKBrV;-Wwt_La#{4cLU6!?JVfm560UXk_bN#?$tBf zmv+lE!uv-2w6ojyp|9klk$w*P#Ex`TL?eEsZbbX}PG9;(`)bC8&^0|LHuR;-jiV$^2`~ev8$|M7F{&)c$`BQj%LlXJ*r1r}+^83d5 z^#JxRZ1#M(OW|nDzYx7)$Gj?{alX_w0{+EL7y1SK-Hd7D0{&H?mnz`>#`$4e^N;oy zF!rHne>eIDirO{5u)yBKhnzb@g+gn_o~uh?`@MT!ne-=M>}PIvmz;Vj0?adfx{^s=ObZg2i{ zIE}Fp(cvcahs+sH=2eIeCkW9bbO?7z`_sXtpy^P<+aD4-RFm2_Q#$mW!a%QYD$S^Mfe9Q0B#!tWFYtHt?K;<=2Kh!Sr{ zk4Q@V8?Qo?c$N@#Q(`5pLJAiZ!Fl)c$OY3<1Ev=e>uF{@jExx*W;~eG+L*cY2KB&662?$vYb zA?=+hDf;Fo8?cfzsCmv$O5rFYPC;+jj8H{1KPhz$K%D7xp&uYlV@w+dh;^Ws3J`wt zlVMx)r^88%eTWX%qc3C@aXha=bXX}w-E=s_oQViKTl7UFBc12Yq2jy(*$L2SU{d`sX|S=NI(PW$YRk^#28Vse;~b&4Fxc z{xSb-#yk}BZ$?+hn13d(LNWg|A?l9#GgcR5_bQdgs|`4Ler#IqRDhE?#IEO{Q4$53 z2a%l%TU3YU#RssFL&A#(l6oOiUi9S&;-CxP;e-^9663q*4VxIMi1GxfYaru?P8a$i z{GWO;5lF5Hxk z$~ApL!Zy63=F+Z*3=fxfhI{oKeMk>y%B8-w5jZp~ZypWC{ZD)~Rib=aiJr0fq>5;5 zgjs{Zs1uz|^<&g3#@KO;Ivey-G0Jakgw^8wIklXz5^?GZ^oZotF}wJb8}M9WXhLo z?9-m8<2PWfY^Uk*nQpQBuum&WnWv$DY|5yjk>0+8DltHFm(#m`pm_#k^*GS{2k4~& z&51?$zEjX14JO(vO4VQjwz0NXtb>=&=gVJK3~Y4%thtjh6tU)Bbc$rnQ+O3(&69+v zn>FiVSTk0JQ=sH`zLUUaYgMOd^KNYVkkIBGNqv(kZLSqTjEEc(c%jVc=H zjhM92)fmJ%&go-6;w)!uA4ic@?70A|dLg z&Q==vh(0&c+e)?R%;qL+_>g2aHzf5;rp)P^KgKL2!57F$JW80`(IYltR1wV|lePht zr#l_#2bMb-1IK~o-$5@GSp4RXRcrI-$!&~(5Ee?Tu)Y#-&5G_+^IY1m(4EJHECf{j6w{v(qVAYpbRkUc!&e## zO$cmt#I-og5+_=%11`K|b*%4r*zm;qc5ttrV+v{2Ok>?X-vXxfl6|7rP>9C=V)Tj~ z|Eeh5!EWdqBv|HjrymKHGG>k=!O5VPiUeNgTbS+5|2cmYVbYa6)V@_k8KczOhT2xVL9zWr`6S~)VES?nj^2rh7SoxUX#=_nR4X1zA=j6$mmq7 zT&fmvmfCAEMHnesEy|Y9poeU>sG^bHesY}BcX5L_gl+7kweQa}cjW+}U49T-HO?t?w8 zP^z}df*JB_gOP*Az2!9vuE3j*?MRiQZl0+uhX0n{EMAx2TREh6>&i;AUS8SiHsD*` zD>pS;8;rMX=08i#VtZvURb4qz21$5)myEv--lx!NcTQim>iAPnKQridn(c1A9<-*< zo(ZjcX;SNE%7Sxrt^)fbMvsaMAk9FDr~!jqSH-R5cmy#U>328SY7H^GwNLtlyxn3?9Vf zj~~C-3Qi=ZA?yppG;Hi(^196(;yIM0Hd1C&Yn_d592aqAMgJ zMtBt>#6CjQO^C-Egb-^yDX$1qiCPujs6dV(`yg(sX;sJMQKRin(85flRDk_WaO_7F zwm21=%~q+}fDB)M^C-(pXxdzYCW`H?vupHnVNxGvN*iMj3C0G#WS?kNeZGNWibt8# zM330{i7LW9B&N23osQFye%QH{F>qXV@)XcZg&lqmiPhTt$x~-6MC5rsdP9{Uvy$N2@H)BEqhzQj{&KL$l+R*vKJa$IFs>AyamoWzT%T znACG%1Cminn)_#m%BoOr(wb#vmJ2q(ZYIP)QJfeSxMK_`GS$|yC#6M!0p%g?*Wo&wq8 zdNeP7kBuD?Ui>DhH?}D+#>ahmF+LvU#r}&Tyii4o7vtjwFAheHSkL+K;y|b)&6wtB z(94n+(9ryOu^(d`;>D@x2+51Rc@^Tt9zxX3i?h@4qHy`Tbv7=xv>Hu|$6-@r``qjr znXFCfi)~4ZshZC+Q%tl$GD?dL=m$HyP(?%wP&8;U<@B5%E$WO#RLtn_i#z&nl^uxx77}LgKNo-Q+kgl4pnk364Z+LAMdWx0qU0d4jTBfC}G(rzNPeyQyi6tx=UG z$gi=WB=t$A1nHXz4L^n9&k*s6mI1qH_c<~`5miJpp>#2WBL|>btRww6vLDou zX0UPu=%wO_-%O}#ZT=+Li?I-qO~5QpiZ8 zquFpiHX^o5&91S?>ZDfAlns3=InW`Ma;fFL(n~8uvy2J!ik)SsB3j9z^$kMQobL1^ zM3pgfT&A%R^imPRZzYG(-uxL+W^6=^xC{Lu88ODI5F4X$t%tZ*@p0@YAHW%#;FstG3#e09NGsE%Owz(dggfs7UmyB3iX2RE@~r z7jt_SwI!RHf7I{Bn1`bNICO=K`URHC-K*zpHwXU*+bI^o zfA-c23jdvijywF9=gKfx*AQ38Eop1(BcJ2eUT|G zZnPIu(fYShSPVBRm&N&I6H&z|OWuoKvRR^vMtb{;fkm_)11%qLy4epc4>0DBL(9iO zFBMu&@mhH`pxybC<~@w9h%}F(UnFVX$*T})-X=udq&Yp3YnThMU^9ETRGiEwmWGRd ztFn(RsX`OxC)mUxA_fy@hQ5%*n8&LSF?JB5ZerXjKdIJ+ z7oTuy3%&(~J>0NeHRu%T!Bo3&%tRUXkHc%yVgb5i`xyBp0Xn+}&Uz_U+xXSlPE+iB zM;W=_wG10gTCH+>3Xk`J&6I>337RF9k=|jvW|mau_V(<*-5K!!g=sju8AjFX`l=2phhbfZ4<47CkJ1Y#@qW5v(1!E2f;}`f z`Q|>t@$H&^<~0kSRg*%VYA^sPES&`xK%K`2>2!W{4_+m&bkj21GvVbf+Ig zKE;?h4kBLzy;KlkUmo|jH-CzJjIj|>;g5rwfXboK*mDEk2BF5k{=_y3h`qfA?oJGF^V6ex7lMa7@P$v2~jym z5*1B`ORx#C9cp%E7#AkB@wO&It=XJPKn4_#lA(znv9k+RWRd~34Kj3`j`SnLt&D-= za*L;cUdCh)t<9edb;d$OhUcR0>_#eT=bv9E83MdZ{49e&#x++4PCbc&)8O$ZMJQqVW#QOHTHuetJjY}}A=F(@+S^sXO8>WtOnvXCc&UMh;5$Ssr^*y#LOQe_N9Ea{e3|)PJGnqIX_N(h_PrKCq55)sW`!|)m076pA8Q(#vwL*4;>-d@IGFJ z*zjH<>Sn`=Yhgq0c(?)vr$xk;ono_r->Sk4qdf&nUdCZL40b;?EJ>=SY4B@o%8=0D z7fEfs4Qb%}lBF#Yk0=fHSsI~%Dhg?UmoR8>0BXc~&W{HBK^>63DPHNpukaUy-6X*{+D^Nuvy&)J2W7@U#Dlxg8IlKMybAGPREWBHaIDP(>IhCIB+}7bcri9&NVsr! zQY&Z51-;1^gB7QleHPGb*(ejq0s?4Ng8=)YPOSg@2(TB_k!E~wDClKF0Hdk- z6JR&SJVb!w&=ryZ3wRYGz)nKcNdUPyq4G<6vqJ0^lFDRd1K!gwU{}Ps{EfgCkA;(G z@pASJXBt{M>6RVA_wi~09Da7QGKW zVki5m2$oY?+6IgsayruQY5xJnz;Q786zHXb5xdaZZf*WFx}UKS(de7#4N0T-@G3;3 zcM4HAjgG!h^frwd+S4W93&3~RaF$Rd{l4Ow2tUJH9}*(`B&lsPC4&CObG1EMtTo%< z40hwZ5{;5z_hTa@P(|>KXQgRSU>{V8b)Fvu_Jlgp9%w%g3EEa1$f*32~KjqwP? zd=tKMUxZKB`-MG8M{bA<-stCs;#-)tlpKyB7FZfH0b>mWiTR|^X@blvlv$6Td z|1FGxDE^;@&XDncGp|DN|9Bzlj{hTKD80e)! z!wKB`!9i`#pAhe6>_mik6n!EI@eW>v2=P`S>L!G}44@&F3gJ7#aO)LyOoa(=dCiI+ zNx|y;%ZBI@1`75-jabk5pKP?S-g2{tu1I5JY!VVb6)_Xg>pQHMY;p zuJOUCNo|>Fv|E`0&demv4EmL#40r;1$Ic8?k<1MG>o9Oobh_3L2e&XLkIM||pqB~< zKAAzJ&H0nzCdN)ghTG96k_gn?xYtC>7p`-ms~lir~;q<3a`v-s^Os9}V8km^O|E9|FBp zG++VlshbZtB^o69rTX+?sz#E0An*xW&y|KCe$ z(M;ptc$e57ZNeAbV7tdy&0}{F^lU92Wx%}U5eBFte3xiy8x+_D)nXm#M}hfJN17qR zexR3%0{pu~tF`%aU`NJ6#DT@=4atG+copKnKRr0GD2@ZVPbm_3$!Zpyf;S!8g=W`? z;l!j?&6EXJE^uo%D2W|lK68j99Ob~{(HnLypo(NJK)MD6Mx8G7qrgp!Y2$K%D(I!6 zfKM)<+L}KDu4n8+40sayLNeeQUWFKNl@N930?P(60N!N5(bn*7Y*^6LY}BR;XfwS^ zDVdU{!gH`0LqdhSlG-^_D(FoG@X&6RC%Uzu<@I7Al#Mdst>_Dz391N}6syY^NO+gi ze||`KJ7d>4Bs>UusgS^KDlnRwKM~%{n1_h)1$2cZ!W(!MBEoBhsGA6dfkc4U2VqxI zDFH92BmcX2yF(KB-%4uFZ5R1)+L3oU5Xwd)fBO}Y$X7)&@T50c0$zZ)n+!(;OoxL&wAsMB@wde;sA5cZ|O`=dVm~f-hbAC*? zp0Q|LHc$q=R7~)BlPDXSKM}5Gj6+1&gpQCzxRO_)9(tJ&b>{-HuLy;SR3^ZQ>1clz z-s+G<`_q%!GSg_c-Xv}myNVMoIP6!7GT@Eq9h(8FNWMwzufxE>+nlcT!@-*wlgHuU z0nkf@1D`jEkv8W~hSxK8A~JjieIm*58eWCS@G2qdCWE!KQ0;lbRmkpDh%us?5Z}aG z9uh)4mei)165={@6=K+FldeOIszoXBPxO#Y2~{-G+Yg4*(OL{n?6A`1U_VaGfjZI* zC3XY7RGc`;V=dxZa+)J=+`uQiS|Gs7R2BMw+~ z;47|)vC`S0X4eQ}8Pjp0!`QaXlo%%|VoWw+9~t|S0i~imxC-rW^FS4i^margBmA#( zddn~TuV$AD65n$` z8j3y9@NH_bCsDji2pUb;vec5t8q((IE_|r70U!J{Pb=BtdNd!NhK(JPjN*=@-pG^> zmnuHgf~i_ign1uWo&@th9$y6R*NAfCwdfa{8>(oew`YF^21DND^r#<0Ue8!Mjv?;> zy;KZ2j$=rq!TIy#UdBkolTV;SBv0<)Rfs1q7ou*SEM3#APjx$G!IVp=7sAJZMK2t5 z2x0;a&4@>_0Yk!wN0M4NQ%30Z3iWaec0S>n(l(z;7{XC9{1v@nlR*{1dIdw*fWp6= zF7$)K-x<@!L1E|PQbK`UuVA({e;)jqu@CWJA=o42!5?@P;=yl)sGA3?F2!C}=xk~l zNrg-&nvilJCaSGMyArfu8?JRmatck&hhwopL&Aq8aIdbxF*wP#c&21V4AJ|k-MI*g=Qq2IudZ*9)fN%w4%Qzt140@@ugrm7EA#7&;EVzU*4Y8n! zZjiabg}e&&%ymN4&4MG=1hpcpgbA~Q0OCIYHi$Rm(oE_Ng^#F?_S^B6ha}pcoYbb7 zM!Wuub)#D!E4N0Q<6=X!M@G=65RLy=p;zqqS4Hp{>pp!01g~?t(+>pqGG>kg!8<@N z6$seRSogO#e!`xNb zlR>sOe=_`@u@RABf3QhNhTrfiM224q(G+Bm{cq4=$pgtSKwOhyG2Z%+kl{$USI-fG zv~8wjxKfW0RL-DgkJ)z;8V;lr<-ZB=(5!e8Heg6t zu{o)QGiAjIiWSYVF@7omgrYQfIa=SQfhrp5?EpGP_`lleD!=f5C1b+4@P7;Fr3(K= zT=-)f^N;tJGIpVOe+Ydb3Q>2wA7{@X$bFA6aVXA0s5U0xADah$X(_p) zj{YxTbA}}PKbzFvnMS{!OKgshx62(500_A#1AdD>uo<9=U@lQsZ(!h0PM`T<;P;Fz z<1nz@@hLID&LxJ;%%23mW=umQ*au7zlHeD-3X$Odgs7VY2V78Y!1N(ZB?b+Mc+tD8 z1qty2Ic~mDF@$1kxcEqb97z0GB zFrxorr(gY||8b1H&`XsBuw#G$P0pVL=QCy^5=@{=WKOV}S0NIdEkxZUxL{4Q zfhm6>sMW;2=T;S8F|^>-m7D;;WlOXLsxUTP2udYP6@o&k8cZ}BAZNXI+-mh{&TPWQ z4+&>FNxhRPXGYcdp;fNK3**sJcdAw`f`7%LWwBt5opOj(jZ){o&{H;bRMAN9z}T7$ z_`JgDY(MzClyO2FeBJ2h%)~xMBS7*&Y+C6k4DURt63NCQN?PC=GY|gMR6s$q9(~< z*qk9D$-!{1o?|3w?@UReXFpoa4vtj$L`BF&NpT+fz$S$%g4qvQy+MWxoIdj-!}*LY zU{*t)B4y3Of2ffww;-(f`q;_RTca)XG}4fkA~AIX&t}g&D@uaa6bm^iolQ-8CI)aQ=LFK4T=}!@JNSk`K@2RfrG&CPdwQ zIA}dAj=|@?>~_Xy=~agB644a+2;Sn5P~hRDHq4X)#?!wN9DmZu{A?X;S_Qdi#Q!h) zz>auTgin8=X2ki=oIdl5^Pe!bjEnO>fL^LN=b!$vnfXWe4;j-?bnkSMitg|8Diqz{ z5u)zszG+Q(CPGlC1nmkfP{fJ5!g#X)2yl9+&#gCmzUGX8?i)g~^k7gPY!t4w8>N&oUe$13G#;gG>Veohz&_=N+ zUrt94*nCk%IBS4f242o_I?N9*XEKJ2!^?%BmkKZZtbu4{{&YE&u?*4WM)ZQr9Zup^ zh%UzqQ8!)AT`zi5Aoo#k0w}=JCOG}4flDJxh!FX9K;WZQZg*=Pgh{(QhOY{ZQ=zxK zB29@6*xVtZL?x*|GNpt*pQT-I!r@z^a56^Vk&I~JC^7yWyM?-UIu!pxWS&!VzxDZdh{6k5Ix?8zL4~IHm^eTc%~3_)1$RsbR0m2SU3R7 zBVm~x@}V3QD`I&;d2=B=_-zcnj$VY5-{9Dm@E|Art<|iS#9477J%O{~@H^^QgIL?N ztgxwEov3thlLoANg1)RWmOL)43H1<~bVvyGfuugqlu-K2h%lI_7kE>O6r!a1AM}b% zDpdqK!}~61(CWudcly!lhm4uyX!RS=OGPX8%!vN>=1;8eF*YJ%?QpUp*0*^TBGxyA zsGC?9#}W%hP1A+(R=M2AE$VJattxyZtARusYqsUy=gEnTd59<1p(|ttw2D_Do~#g}Zl0XH9(#=#E8#v6OjD|jHlBtHIgC30I;b__ zSENU++?eQ8R2Gv~T~lHLn>HkrC?&Q1Hl+k+oW7Jm*(fFc4Siu#LKP`WpsGQM=Q;i7 zM~NO|*EmYN1oX0`glKC1l(>sA4^iSx=n6@RXYeXSiKhxtHzihwln|quK1MXe2C~9f zxwENUZiurk+f(IYb-W6r9y*Oe0b?uFq}lO)Z19k<J>AR1waz=nEP6_<_@fe)#wvW7;@;`~vh+;e(%NG1{6xKfcA-hxqX?^o8Wd z*LfA<$Jd0Yn;&7CAm&K0qrp%F*^1xafz$NcQ%yN%0y8Z^VWPSbFk)>=O{=a+vBxRH zLyBGDUOmSm()O8>!WfHm$4b?W)e>Nx-OB;<>!ECv6UU=3Y)+^m%rca!fr(R`{`14c ziHu$2FtHl+QelE0i|D52Pl@9g^AIK0qbnpOmh&n^iDQJQn-T}ECwqvuHPr?jr7tFC zRrcVJ(6L^`8yu3X;FhEo%rw^ZzK(XcUWfT^pFkIa(I|f=dclrzRRsGw!V4H7{v4;< z{6hRL#+-2>emCf)3UPK{2emW*_FumEjadJ#(|LZe{w>C+ak2hW&`TBTOS!!qx~2I?`(uoCDBAyqo{-W0RbGXn{mVks z9qkMC8CCE&hmO_|JY2SuD`pz&`iTx_R88U1*37k z0=;0zxhjGudZ=ea`3X+9`9=A0j5*_?{4CH*73J&`o!Xgyj4xwsLot3i`a#C{QeK5( z{AeNSj`7RY=~HkFoj7#?S4)Vuj6ny+@nU;+p;exOK|U;&fHLTTxGt*=pT7V(lnx3P zt-t)T!g#f&_iu0YdNoT%(HKLLH{6ueTbZ)t0-ZNVmf$=fycY5$iWHA><*Dcqn=7hl zq_gc}VWC;Tlt&oj5L5nyj*v|G60br``MeNy zGvz|LBUMZ@${uD+MHGT|VJfJ$#InwIC&0rsA!RAUe{zFbvDs|F8c#UXNUx#ViZyD6 z>~z}jFl0x#SI=>e^iZY@(fipTz#%jBN>V^B%8z5v2R1)c5$tD^)f@C!>GYW&J(e-H zjHAbCpqGjs?0&YenfZ@-mN2Fvc3g~ZknA{$S0Q#BAw=EmIP^N$dM3Z{D;AC85T;SM z{Je|oAq*#`qx?p^)gj3gu1{*qZ5ZX_<9<;-J|2zor=Sn)C|5;cl#h=aQT{Zi&-|kN z4#t*oQT|-e%Pz{HnK?%J-Dk|%ZVvu0jNKgN*mj@hTMWpBAF-ct0X8-V0Y; za)TZ2KB79>cQ}1`qJ0kBt7kGVZJKGc8!s#&it%U~j}P=>zzfl6%pZ-Ouwz~o;R{RB zG{XK^r}O;6ehFjLxUfG7^iqXA|H4wWH2=sylCcg&{srg>8Tp6vDiryL3Q>3DA4?OB zxJ*%{_OL{;R)gcD@y!KH639NKrVtb9XckA zy1WW8p(RA!Ojz#61lh9`6%uM`F1!gFG9+AheNszj%7wM&OM|IqZQB3Efs&4r;q&MZ zn+&RGq_=ArEplF6d+{qyFZ!Y3i;Q*S(C}^0ONEAI9xo7-rDnlM;j@f^hz-9&XGk`D zidP{vd|ZgS*|5Tw4WfT2I3!im{pw%Xlp&$R-;>%pQ#x3$1KORM*F+)6MTv0484)6= zA~|0GYDSu{80BMq=Es5~p$^w*ERF@MKra;wd|n4&GxN_73XExp0&CC>k^+bDDnx;U zgs7VW2V3(6@@2sKt1q!<3fw|E!q?+%#`c!VQ8&+27Q=r_Zx*J%w{l4D)|C}F41Z;- z+kg*(uH4jYZ7`12F#lO<7TYU>sp`s!@YA6siAPnKQridn&G1Dvu8p(UXj#}nMU|^=JTI+osPnL+fljE%x95OR4p3+8_`2{MxcsD zdiy~}5Us_)!IPX0_QSzu#_(}Ccn0XD!of)%slk9&=TCjshQ{a<~b%+8#Lr+Kw ze2iBi3Vc|Ix+$>F)npC<0&5Gzz`yC({u|!Zki_<%lUgm)*wzQNsjwSubnEaPAwCx% zcS(h4oF95-B+gY49Msl#K_l81p<=8%{i3}9b)*>%EC;<*(at7{{q4;^<_~6UL@|F3 z`a{P2fxHUE{D=_EEaorAn~LouvuhM^Nm8q28uP~60SaNS&5c?(8tX0ehW$)eMfi3= z>l$&s$>~DBIPWl~jeDx!33{pGoPRrDv^D=2pJMDoG5$jIg^ck!uR<|CDMZ~de!Tv$ zjnNI@jiK?eI&scDY&_`uLS-6NofW(qn=~YZcx6(XXG)06^*n*@%!%^?_#(DQC8D(W zIC{pWg(@29?PYWmS%blh&p4gx$Ba)h#*SmgS3xfoGgh&41N~;61+#`9WvoQx_%V7! zlH)_X3X$W3LUfjr<4@S6AtA@_liEB}a`ep=)V#iFE#e(Tqog?KtOzMo5zQ5#ra_3q zP$kxReuOv}>PRzsSPFWn2;nzZAX=J#PH_NZ9U{XS=m|-N{dg53!`?#FO@@Q7MqrBG zh3k+8f8W|Ir1OM}@it>S%$EQb&)5V(4#$;1Enge_o{b4gf z6~X!&8*xOQ4sE3heqKtFifW;bF!=#DyQAGb9%t@90hu*m~bLDc`&fi`LkhP z#!$qDQ_v}r4SVq_#D?94sGALkU4uPQut9f3Tusn-axyEY`EUW=Y-|sjU1NpwlUj3| z@&VU&BxLc)5m^{c$l$$93wsldZ`$3vR@7nX?FgU_yA)nqQrO6 zEs_!s@G3-!`-G^Q5`|bwNOLJp@Pe8Yzrx!c5>os;sXa3#g*nHtsaz|G@4k6#ZtOO+ zbd(BvpA(^iDiU)HTG?R1{-_n}ML!no3w5L!PaF<EdP0y;wy zU^iZc2(Unix(TrG8qs&!;WFfc{LmYId_^B^=9JNKzXoqIw#Uq_@x!@Et(a-t>y?UO zBqM#{Gxq+WPYTiKA4jj)Ie{vIm5O~AGyt%{=}tcYR2VbIB?Dd1O9cRSrDA`3^JhSb zu@N!gS?CYRfPhya20THCx*2egWB?!l2U7HLYip6ROGFdkMRyooWA$N#RnLl#NpyopqC04 zXR~7mck}b7$Nh}Sh#ucW_egrYhgTtbyi9ObE5o+?YulRo_@Pj){y!V^^#kQAnw%$Sr-CO>BC?t%=ip7p_Nm!5LOC<3RWs#D zJuW}#pH@pwlt>Lxri`KA>>NcEjr0nAIZC8LgDMkPQ*00Lqe= zepbeAZT>uXH)A2RUr?0Ufh;n zuxb}8<$9oAhosWgtoSiDYDie|!=zTvlofh^Cq3j^Wgk+6uUtVm%83Q5Bb-o0u)ou| zkU@z(P$|}hew5f1>PVAF90+=;D8cUUG~1d#Bjz*qAx0dFzL1QV%c~G0wilvqMl4>_ ztiv~`<;Nc6azFeia)6yq9Ni)frnulOuUT*g-h6CFnq7IrsY$JyDGM%DV-o7N{wp&3 zHKJ5_0{X?y9#qjtZ_oY;3^Wv-9`!@REsUk(5{NqJr9#7T+!!O$;QaY;6JsRe!|mu0 z$%h+w72?CSLe$NNBQJn8n9WuJmtw-oOEp6=5DtFAnhejw+a3}!^pe^&Q!?m1-u=DS zV|pT@5@o|X(K9w1R1xg)j?`el;k{0$`oZDdjIrb3@FCDk1qXJIceKU%)8Xxmm52^s zL61l}yoFaGI=oScy6JGNL5DiL%&Sh-%vsEVkVvGXS@8pG#E`J!dr7UFDJ!n*&mxSE z`*}=3$bp5S6Q#wx^CGlRMI*hv!`LyZFmSO8>c;xj4;S;Hjx@uJ{Xj1jE{^xiCCn!0 z&x;)yGZ8Nqqe~<&w&PWZ7ytC&#UkUQl!k2va>7ei^WhY{>DYcWyG9u&Cbep&e29!P zirv=6pwn%6?E9k7CXFZ?9*=&pGYM6sM;Ypp1{p@39`z%`O^l`E5{WA4r6PmxC_^_m ze=c0l7>T&>By@=6!Zo}Kap5W<>dqq$JHJ{lH`?$48rX5%F34V0P&QJt53HQ#!E^9t zhlB@rCADUzJTTr?$Y+14Jkcuq!$68hN$^(mh)n`jgl{X%iy0Vrm(!7c7;-zM5Ww!#uo{~`0p>6UA_6QzXGjA4!@tM=)q?=XuB*Za=!05KtgdXs z`7rRsha#R7gWsGeOjI|P8~rdyq@%fT0yZMHN6oI$!g0J~h_lkl+m;Ks8qI&wQAkI* za4q`7&J9$N=7LZ*xNxJ>i+)_Vp0RFRYETBfOt~N%n?Dz>W(-7J*o4lIT)2`~p&omg z5M?rhtKpP5+0FWpAQ7rF16EKI;8}RPLqdS3C$(p$1cs$BZOuRWU(eWwqW?4K3mN^d;Z-R5 zUnNA{(cjf)$Caw$Bel3dp;HMug?cchCJT(eK`&`z%7BMU7MrbBxjofvl&X!1!ZG0~ zbJb!2gpPrAwKBCR!e|T@Mir)7-Y5BjPLDu-cBhr^e&7Quh^SG6Y3hig?9PU1au$DoZ1 zU53!e?7wFxWh(i8y6Z8~Hn$lr-cFc7c0y-kCf7;PrSs5YlNZ2m z^oz|URit0}s0s`=Rh=I7W79Ze>9~xp4SK2AK$P)Tv#vQqI08Vmn$;4%B(8Sa1vNRW(6cqF(p0${n>-{``H!SN z$&@OQMQQb5Gi>uu^zulnM7eT5ddB98D$%3u=p-Y zGg_QKS?*)3L}d9odPI`tUAzjB^=`coc0*j!4)e?S48zlB6hac| zXjc3b8!;rT_}`>f-o~t`HWIT!sYF?^>)Hq_RFT07RfEBby-+pQseY{39qLFkKw1cT z*|I{nIDb|wV5~%}SdJc%tk{WHAy(`tM3b)IAAfAqP(~Ty<_JVs%WIQ&wx4%Vw9b(^&`d@WAeD{q6vDbh;f4F z8dlS8v*5#KPhjjs%(xSMBAIa`uR_eYUWmGxaiXz^l@f^pOpxGovuUh>t6I}3Yl^%8 zn>8d9`S+xD&y*r%7ez*kG|Kdy|1dqRw4+>kH~P!wiYglE9Xx<5sxkvG4>-N<2blX9 zZ^QxSBcPWGFk58FSwNb1G6o~kd=;G|N%J;dg-G*eA?ha0@#aWI^-vhYn5bzF zO_?8IlZJ#c|C7|_nNlV)vr3%sUm~M4qBNPmE)(euSME)Pn&IBq`M2*Ey-G=D#|E^9kiWB?a9mL zQ2*b`%Q@+lq`XsvlU^Zh-4*4ep&cpRu!++blg8}o>0w5?pW36$NLf<8BSi@p2Aj_0F2g}6jp z+j18SRXmmZ{%5G7r-<)=TB^wv_5GoEBy!tyal@p}uOA=w{&mkC^8PF-k4Ln0!TmRp z*vN*Q%>Ad3ht1IB49Hoz|D^E{YY)cDRQv z9&B$skzwXgvp}Ny!JGvSQ*}og&&f3^xxBgw44-O!t|$vUqck5n*|%6sQw{t6_fb2P zd;TnGSGv&%7To^ku`M^5+rOwnqoaEL1;|;s{k};SO-Pp~!TjY-70NLlzeEk8J^uOC zBE~|Wryd>OSehIfr^*U7lyz6yPh;)VwxXT=Q@T?#bt%Bvq2 z+*_e0!xA5%CebYM)@l*M5_hRb$Fs!#!X;vZR}5yCiW!T`f&`&d&KaMg7db^Z|wCSoDb3UVTQnp+Z$A5=p38G^2cPwTQ9o>(ry; z8Rb%S0f|`}ArqSoaqtZr#tY`T+{i^Pm@~<3^g1Iut&@vMUMAJ|iZaOyhGsAdOfun( z1Oq&>%+&<1%@MzN2yiHT#+T=Q`7?m7DA2Ft{K;ylhMRu6>1(u6VoW$ ziY6*QMLqbws~=-LQlTTm5PPUSG(&u~TEsBKm(`==8REjhRnUro%EZs-+^~PFF`Zly z#l@)WxZyS$q^#W)<%Vm9BZ|d_Kj}rtDwa^s4>QB_s7=bukR|O(XEIMw;ss)O!PvH( zj2LdH(D5i@a3E(z3UfE? zeO8oNZXUrb4z8TS)m5}eHqrKroMUpyVYa!8+NsPoS<if!m(<+}V24QP;L*%(U_a<&5=lQr9WMSRa$N=ZZ4c;f%2s{a}J)w)E666Fp4& zFEde=v@2alLIu|O`qJ5T>pZ!Nb<|6)KEr&aLNSJ6&VeGBVZKx? zVi@L&>e2BGbNGd1Nv8L~h7fE-$CoB&Ye5*P4I;Gs%lAAFT*Zi63N58`F1UzZOu_}N z%~P2w_Ck2Vfr?gzz&Xc1dX>I=a3|`L%#VIFT~`Z(sDETF+Of4)%WP9JhZ>#v^rT&bGRDu0c2jj8nN|(p`?+QQ?@>gXK|Zi zdWG9<9$fG{YWt8^Ini)q_sqW^$KlI$y1O? z?Jw-XGg-PE*0SVg4}q%K@pZ{z*uyskFma357DlR^K@Y#cG$>G&$IaptKG{%%-e+OwU)?ZRTA<+8reG5U*>F;H)L+yNVngS8MB=!0 z#fjf#(Y2WzIvA1RR&DWcR5coBGVfz05{>uW_Vw`m2n_GJ9R!9p>dgC9;T#0L2h82V z-wRQlRp(HUM+JmYp{n*1j0y+ykVl0&2faKmjS360g(Wtz9|p~?Q(Hm@4IN5DDqJM* zv?B6;Y4aON8jsL~qHv0juCRA#yogFmt(`>aK;%M?0vcgBtO^e2Tb6?Lx}9J*u&^z9 zQA6!EN@8laaBf|4u+;Fq9$AMp4l(lF!ZyYcHQX*3)uwr)IFOH0sLF;z9h|>6la#`4 zk-kTkOBA$f=ONC2>9K^W`=gIX!*Fq!OLWCu2y4(+6wFS$j4YySX**L_(e#r;dU0(sN=b^+V=c5 zE;@0%q#LLmorUgR7&UNCNhgVXy=6eFPpFDs7-N32pB@&zhZ2L23kTd$%_R~PR#Hi! zFyR^~+SsrGFLp`GZMc^ozC!+zXj?hcN9{0-8xA%*VH1YXk6AX~iy@@@2<8}bG-D;I zV>e;nrc32;Ra$H^?_n#0THF!ZZj`j!_&%_B#vsOK`=i)z1Va>-2+Ghi4Z>iL<;*;T zup@>vk3ofI4?#6cU?E0x1adJoLm&)gQAsmDAT&EAsV08W;R(ZFmbKQa8lDSd8kA{z z$Kv2zsxMru7h$HhEhd-PNIK}QY5$K@-$tH1M>yY|m5n}*OSgG%tVe;6g%qR8CP`FV zXeJ593QO6{q;MpjV2G#5xVV4FDibyE$?iK5&(Z6ea6nziMyw6m-fS6SCLJYgJfNRm zCyP{)u7@VXcjM}A5)7&p1n|VND=Qe;%{`&o4XPR$3cCz7^inVE#)u9xF^DkQ zGP3zj0imxCW`LI$2I!naY1^CKTh#K!b7=#p&Aa@aLNRgh8>nqRw!(TS_L^6nxkmkG zX#+HwYg+@}gJ-AuY#c4_ELeHPm3TW7Y!}wzg_9Uu2eX#0SL3ghk-{>0y7=M}ZZpODV-oyAd#(Npx&iD?-cQW3`_$!R} zGro)Q-Hh*H{8h&HGX5Il`xt+n@i!RX&-ei2Z!-QC<8L!Q$oK)q-(mb+#@}Q7eZ~(m z{sH43GX4?chZsN1_{WTY!uS!!KV|$g#y@BLDC5T%|AO%^89&bW3C6!-{A=vy7i({5<0q82^p&-x>dd@jn^A z$oOB3|IPR%#xFDe593!DzsmS9loKF zPBCs^+{n0zaWmsI;}*uPj5Cbe7`HR-VBE=g2IHBGXEE+#{3gb;8P8$-X2#u&=Q8eL zJdg2P7-t#JXZ%*iCow*m@dC!Zj2ANQW4ws*V#aS{yo7N-;{nEljF&QA#&|j7Qy331 z9%j6P@u>>^)@RWHUHdrxYkdy?nrnSt{r?N9TcX3058_{q-K`g+xyPL-HD@i~uO1&h zYdQKTD4pcJv$4DJEPXt)5zuko!Ly_L(zP_-v%VI%*v#t}PkE+O_)3F|WwO@U*U_P9 zOc=&X*tF6*hkkCP9esu08#-7~^Kho|M7o9lNgq>P!tZUJ5DUvOeny-`RePqY*6zlZ z#-6#xc{nwizezexvshl!UBEu!zT0@x&3&raVDg1XzUXFk%FXr$@UmdH8|@HVE>88^ZFZ=RH{rIq!q9%f>l%<7<6m4MH4`Mr*dBi?iA zHkFdipXNz8Jezo-bG%LVv>iueaIoGfN-8VCagk%qs7afHk(c8&Big<|EAzUR8;mzJ zE=jlGWg^%=9WUwN@vZ!rQ*Y85DSUGm{R@TA-W5E97N*=hH2HMTUCe&MM0b!&!E)#% z9$cW^jQiJbzc8KY`dw^hsN~&zW;(t4?&+Zy?SjRdrHZ(-)pjmr{Zumn%eIjX!>zo zl>whW*ofN!3fqKj9`GU$=LnB%O!v?x3MX^V>;;^tOBQk>-5xDrW5{u*fe-5i^l`m@ zx{j`a?5A5IEKvs@+p-xTp^rUi%xgtW*f;qe&M<%%FC0 zGlu>(51fGYgtca;4jVAUu#>1FO6CWiYqrUFgV5F9xK2?LYzCVKJh<=@s?hMUkbWXP z3)_m^qu8P2HUk`-@_IP^p{l)ua;7Ga{GhHm?L>OI-#OL?sizw?o#1E>Oc6bVI&SLV zgy4b?dV=BXK&4<>F(?&zU=la#-`Y=imQp)7E~1i=TRrJ!cK(#eZ3oZU%+aaDlcuGBAy6 zAOhVk=(09Eo73-r9&YR30C(uRJvbKB8o>Z`ffHzRezy N9rFV9z{&i9{{x?!_b31W literal 282194 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 PC4o;d`WrVctdV~J>aNpW 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 delta 1899 zcmbtVPi)&%7_Xf;O`0~%za~@dHZM&>S~qDkP@xR8(ZM9p*mgjmYNP9%#HnqiNwA&K zR;ttrA#K7MNWOe;?BQq=cQ z^(U!0X!_?ul29p&rDbuZeS!Dgnc+4u-MPGr<<4Na)|UIR=YLs%E%y*`{lBMv|-7$yuvwjp#Q#+kh-8j{ohf)oketyS{ab5K^ z=ASRhc`X1)s_E!)>Q`r)yGN%gQ=fgB8-fT!y$_FIE5#?oajGiT}a^XPrLF{$P1);mI#xMGV}Qr} zb2c@L4+zD_;jKiH-Z%hmy&JgbK<2Etc1Bfes@{6pFq>}j%Cny%g)gxu_Ok4s#q@7Rs^|f8gzXP{^p0K^tHNZ8ZL3QXc~mC3+l3{ zo61*M)9~X5tu7YjvRpK;K{d_Kl8)H6t=_q1;q+p*(0R4Bx=Pr4OjANpW!Kqx*%6f z0e;D!qTC=%ajog&e^GSI)ylo{(3N?D6_v;MqZvNZctl;pe*=Xuu4_^f{}?d8_3CSv GsDA*{`#zxn 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 1e18fa23971c4d7b0df53261c6478c3e62603e68..44379de718cb6b67885273be95276724f170f15e 100644 GIT binary patch delta 2027 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 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 5539667459be9f9be0541819956db30fe868aaa7..facb8d71b63a84192c669d4e666242a4f26eaaff 100644 GIT binary patch delta 1887 zcmah~U1%d!6wV}>B$HT^#x=OjrkRP@O=DXuEG)zY@vkpJz#n|t(k7Xk+!>RZVP=Ax z2T2zdEZmoJui%Ta?vpRFuJLU_Mc2QAzxcW;tcqPl`yjF)3!XcZY0|B<1DV`=?wNDG z`kN*ic%KZ%-?e-cthhyXAU3xiFS^bk!hi9KifXfYVkw~)HsXLCx z&t&%WZFB~;JYe6;pr`3WQ;UNsAr#`lc_Kf-n7fGtBWi~M)g*riOF{BOeS9Ed8Rzv9 zAX&H*gP?-V>P7lfrbO2>@i4wYADEV>ej6|1U+BZBVhmpg+&}umYcSmAesiCX{6w&P zf=}QGZ0d^uwZDrp{)$%93&N8;?IRc@s@FIRe)bT2@I&wcd8+F1U0rXQU90XawUOCH zuH9dH7ByYdUgxr<-=s^mfUBa&z6)-{9a8{kUf zU~u~uVnp;Kk`!3bIjf^JHJ5FA4$s$Z1BQ~-uXatf*MXDnA_w6U#Yk%69QAX!b-RsR zwts)cad|zg2FL1a<2Xn~2h8^_2aU-sEpX^H^jY`|s&k-S6sYK26b@H~p3f`@7xpWD z3ZlF|QhXxH;-fdi(@OD7;NKrdQedH2 z`eL>KSKXW0<6%J=UO9F>GWRchrr(5@LnNaPO$u^x;9k)A!lr{2z@*s7NXJX5%KCT8cd+yZh$*-pu>F_vX#f zhljZt?)GlqEO(PWa|LFfc-iCWXE#F5;v#BAPAx9wspxo#9@8Cs3pz$S_yX0Ob0S+X zusdl)=~*sRi!?gOh3k-J+HkWDh6mi>5j-BdW=t7T%;~74$5a1UK%F;k7$u<}-=&Lg z|DHk$A4nRw6@Ia#q2V?>iT#+;8E=5DaXaa$1|Qw;dX8Qc7hDLT_uwRRb2zBmPRb#0 zc}rjM*U@*jF08`$3J&6VIxa}lS7b?+HCdLTa%NbSV^Sg^UBHSos7y#B1Ck1_IW;w= zN_k~WRjwWsnLfXzUK#E$t4k;Z-ILa`Sw-#5W^$@Q4J&<27kS~5z^uI)RT;7^>4|Nf ztF+NOD==}Qni@JO`U9L9rc#m$Wa6P6b#a9VAjN*-f`^udveiman~0fl06TE78;80< zAn3d@G>TKXOwN8>&g5t9;{cepAbZ(P^j4kwL}i$R2iV&_P@@DpexL@qeQgt4&b3rEFkvoCZ`#W z9t(UIcx?inneE_7s5&}pS1bAk+!rm}$4NQ3v?*>|ui9WUrz+S^fZfSp3uV}}t0555 zU8TM@bR?VexmKwT{snU?aX;9&fmn(x+13_VW{~uFB1HXp0AH19TG@%!laS{ zqY%VNs5pc4vs#ZU^=fBB)H9GBNvTOT#PowV(iyFWRxjH`Wq2N&(FWm>1<^WHj@8(D_G doGuKfh7{(UgG-mNg+dOu!2L^>i^O*s{Q=2Z`6B=T 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 0000000000000000000000000000000000000000..6955d751fa0f2f5968485d0f3a815dabc10d8da2 GIT binary patch literal 6961 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 Y)$uGhwh1!>+SRlv*`;|wzaBgP1&F~i&Hw-a literal 0 HcmV?d00001 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 5271bf3f0f19d1593a3ed24819f7c2e10f88ba4c..33562a3b101292ed7ec26ea68a0a29215bf09f5f 100644 GIT binary patch delta 1471 zcmaJ>OH30{6y>#@mKi=Rpe0Z!(-O5dfYJCv6F-UK!boJ}1_c)jnw`#JZ#GjD#&!WPGA z?(&O^j;Z>_o^&R;PmT;{BFQc(J}eDfywbSRTXE~5K!`1uCqCj}VX$bsORmF=Jz(3o z8S?h+d{R>B2DU)6V_hvXx{T!zbM-s&JWJE5Yfy)+oS!qR9N~g~!!i!2S2H)~^fUSi zJw$!ZQ&S^NY|@AMXClSU{F4G2|15 z@R|@Cji{=ekflsHeD^YD;F71ExFKKF*eHYa_Hpyo~U6`D_3 z+}g*5I1W7zXbZI?;wKg)6Jm%yhY@!N>0@m-Q51{P%SJT2S75?xD?vNIj21&MoG0W! z;fT=b*}Y3B|Cw{Xv(gKce6;r3E|P%Ry7nUXtV;~ff(G}>kZB_KN-vA6 zv$z*5?%9o;x{tdVb`!L4R1-WABWKv3H%jBc^0s(O>lg7_lmEvM_LQIV($0p+G zm>38Y_4B_NQ&5Oz1}RXZ5!%MyAmH5%`0%(^E7RDvAehBB+R>UX;=wsNMw?5y3avY_eOmiid3G=e_sM`@T1CW(KAQ zgfqb_Z!QUC6lF7F^wP~1dvNE4fRHfx8pV)c^h#swlm8LA&+Y`e(H4e6TUv;c&*AJ* zyxtkG<-*#P&ZNIK*aLREz>e(|UdcR?MH*68g80m(S*#7GN0pK?f^}T7n3X(horbNT zi43+oxM~S9D#j$r7fuF`4Upq?6FU$&{mTkik6Gs}J64QbWzFH(in2o1q%5))e#w+& zkagq~i4n$>wvNkUh)o9@*v8hCm&Lp2A-gAjL(joW4n8Gu^RG$QbNwahe$G%jrwn7w zBAxpXKt5p?Lg&y&9)4mT=5r)Y-oc*F$dIrZ$*DM>O=pVPaW@}DS(0T#mZgNO7IZl& z_4P?Z1WRfb7jzYTN>VW=>9CShOPVf?;gXI|^hdbc*dN{cTz(oJE*7#iN1OMs*_bi% zd90`Ns>Zq+R!qRZo>p}{;y&G`|2dnD@XS$<3drZPD!{ZhhZ$CpV536S`H(z(CFcLQ zHbmnKz>-O6?hN}EU0mV3XJQ*#r6wr4N<{=96F-}7UNu2|6)5t<$WR1Bhct8ZV)Fh? z-5U4iz~W){)~d@}B^8DeG~zxH=mZ7laOb{=bQjohnT|Lz?SO^f$i$c3GSN;iz#`%t ztU?@c#Hm5Ro%ypk3(~6f4(dIMM;!sw*~Zlg*VKXij!sjwuZ(3PxzcC8*X1N%dB0&V zmk7bn{Oa?7Ju|NTDV{e_GV3TzMEg#BU|mhUf@!BG4?^RhWlmF^q^iB+i`RwJ)g9N3 z(L6o`wDn5xNkQ{qx0({{;$Ks4z1TYw)-YU&10P3YTQA# zy*aYfYs7Pfej20KfV9;-e_Cd@VKf6wO!3`i?|FNyhpl)#hP6S~B(}3+Yf^dxxMo8! zL-p}dY|*!T8sg7Lb8ZG}fnX>0fU8~u}~md^!x=D~-~!bda1 b1^)6tBn_S&$~Vdy>4q1G&Q6|dKa73?i}6;u 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 853bc75bcc7b044dad647cf8372b8550b6dd8961..1cc159fe619b4c9bea39f420f9dc92ac12673a15 100644 GIT binary patch delta 1659 zcmaJ>&2Jk;6!+NK*xvesI*Co=I+?{#QYXZustQCZN)fF9S801o(?qU6)|nmIyJmNz zD5|Qq0wj?3Qq97F16+_ewFu=eCROFzw`RMJPyS$MMsvLL z0xgTqr(uDPvt;-)Uv!zL)9la847)or{Fb034h+2}{D7H8yXH6s@MFtZ5;7NTCxy{R zyv}L*fvCgdIm3e8{m!HuWS9dckNRwT%h1QwNH$onusdlLtwPQ>k~=-AVt{LzO^g&{ zOT8j&AzNH1_DX@6961Jay-r_+?K1SaU z@RR@y-^n~}aGqY0c;YBA-;7Q0qIo(VxW6n6g`booJvczC0v;i59wiZ=b_hQE)CzP{ zG|m#EW%L_w=v05o?(b*diX4%`JTu^fPt&4hieb7l`p#uOAQxPs+Z%?X&tTJXiD9nI zs`4+m=X6raCO`~I-Wn{x?v7Tbf8KV zsCaRRWIg_IKCwS-p)gw*n@*Abt6#TI}&y z@dnxE!jZxvnOF?wG1{;?9o=-LVf6BvhP$@a&>cr_;`$~w*E`+Krq#fj7BCL29OxrD zgxV*=p^#IrkxBlBYO6l`MahlP6R^u)V*w?2dS3x_7(HP3vgdFGj=iW=r|xD~_vv|V z#+tg*=-KS`oXNh;&7&~WMviX%o7+R^*4C3Fe?^X60bjZVe~uS7YaN|OIPic|e(;4u NG{8ZZw)P4u=zsP2`l0{; delta 1450 zcma)+&ubG;6u>h{lO|i!G}>-$Q*}%Hk!+iYq9Vl~Rn&_T#9s)u#7%b6*>RH%yPNt0 zL$%$f4d@ zhJLm)UW5mIw`3cb7CV%5P|2_>tXX^t3pE-;A+(}^Ru()=QCO`b%`qH* zlKp>DVO~ZuS>k8q3wxv!ma6g9!-xLL;bc~MbCC+H5KK`VpG=}3zi%tV?{5n|nMiNn z)b!iHMWci_bJ1aNZ7~;N=6uwyF2ffD0k0jH8h`?<&oxo;`&8I|#-dWlQ=DYZWIUif_iMILBd&8?%lSs4G7y+u7 zCA?lF)tLc7b;9$?3OyeY?v>s+*kzOy8r~9|_z?eX6Gsto=NUXozbso19*f-fwubGY z7X!^UCk?AzUcOtH@lc5QDp)nBh~YXVA4oT2|3NL$q}Dc7DH|H6YXXdv8JQvs^ysc9BnZN3XqUxwubqXiFMM4A;uShkX4Wh5~)$)BxEEouoUaN%N zvvtU@B$iPfI_1`y?i{H}B%(uCGfbw@yCYMehl2jGg`Uyx08B3g$KHn4j&e6F^N&Mf aHLVJTv%{YqEH-5SYGH;X236`oxI8b 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 101a82a9f481d24d46f1482362a73478147781ad..57d56b90e31df127c2dbe8f163a4ba4d88f1e7fc 100644 GIT binary patch delta 1711 zcmaJ>&u<$=6!xs+A8R{t93>mKj_q+$O6r6pMd4C4rASc)qzY2Gq-ou-wl|p_*}KNO zRuxr{R06d~dx>V@f`mXqaN+>|2ih}2LPA0uC{*HyDyow94~WFP-Az2EYJKp`+j;MO z-+XW0yLtu2D2M4{Mb z8lyJ>=fUKS#sQtcKe>ij(bBwaloiZA&K2j&h#Gm2v2n&Rt)lj^ck^Y0QdmB;z70k6srXyLr7Mv zR$8bQKb+j*QxYmi@~fn<>a}dFW;UCeA&x62S1RFF+pKAprPXnD8ylTwYrAgNaH-^v zJLUO4ek*hEMJW`rswyeM94u8>S;?>;W3e&%GCzQs?X&UPe3CQ7=mGn5`~qI#$4<c0wjiTkOp*r4)p6NE``-P=yaIs8T648++o}k>ho} z>x3d9QHe@L8j#>EcaY!?@)0Rg{(?wIg-feQzgQsKizhx3hK_Zelq*EnaaK2L4z?QD zY1XSm&*AB53|svpL5!ggTNu}5?zdjzO4Tx)DQwjp)2bQOcJ3KCm`XwY&{3E>aQb}j zasonG%xF2YxRCs1BO zIKR+_FfW$oGEMRz&bmLi?XfaUy6Fh*p`!(QxF8Z#9wn=FYS^aTJzxLZkl<85M(1Sz z)aUQ?zm&tjUIR(+0^E#gXdZsPI^^2=@*h0 zRTG~i_9VrnM;v!^nGFiFL)%v;OT&}IEZUT_pY$)!hS!5$6#pXh!}L8>beDd~Lm{tH z!Kx8)kKpWJ9&)LnvFzK>Vr^)hOdTr8ariwkGv)((>W{gj$|V0%s><(|=-n0YQ;AR! z^2)HSZUP&UK-43UVR3I0lU?NtvE7$b=-U!Q zVwe0q;B-^tN|`u@S#=G#n_fa8SW1kvUZr0nlyAKpdC~K6T9mP*__4WKGggT#w#5U$ SWZ;HP$HiN~lC6L6*XVx%>!qv! 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 fe187602e6829f615d8160b84ef8a816f624aa2b..3b1e6a948f178fb8f8da17df76513f77237d5814 100644 GIT binary patch delta 284 zcmaDR`(K{5fpzK^{)wy|LgH@uMY%4SiRnd&xq7K7>8UXj=ZRyAGHg7?#mLCC`66Ql zOA2QXdvbnmZfai1l*v;x8>iGx(a2!!kycbxC@9KLPAx7@O;JdyRLCpMEvQV%PgYP= zoRYyFJ0(L5zna!5Afqy*Go}|OB~JdwqR2WG$eA>GG4muA;Zm@WjY??Dwr00tVS=jPJc<1;BjeM}6F46*%kIzEQ{2OumzbLh XQeF(QY=38Qh9b!Qdp7s-Mlu2b<_>Gr delta 150 zcmew_|4f#(fpzL_zKN_ItYU8YMY)p|Swto-=ZABIH=bu^WMtWVnX!Up@&`tV$t~>O zQuBJ)^OLelDhpDlWX$j3NJ%YDhH@sqWY6a6VM|FZNzBZdk~lep!wRUmpF@&~@#^N4 qTo0IK*JrFQ?%~W!%uNMpDV|b0C1ZVOafV{;6pf74o0suLG6DeIEjTv- 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 0b9be94effa09531705f02654da751d904c88975..c007c2d629fbe39d81652fe06c4b328a4099d55f 100644 GIT binary patch delta 1524 zcmah}OK1~O6wRcW{MwkNt!*^FNrjTeTC^4f3tdS!g`%KcHHIWJ>6FHb10p}GHg64vLzL(gO}Bd zY6Q{BSTsr$MWf7dMlR+vT!hcbLkzqIoeVsu5y$W>my>x|Utq*EBSVBN8FuPw9g3Uf z(tM7Wc`+By@RF?JX=i5{ID2*^;=Igd8`+PwVE-?31Q;wbS7@qeH!6;6>IlXv$ptYt z+sIo(H5snXsk$vbv`uX6LqEaBEwHZ_S?jqie6lkd`&M<=4v??9!>LR{k~E(hx!gN! zH7Iw*YYc)LZ@LeaU6jd0iW4H8pl)Xa0kV>ALY3N)`dT<=khjF>Lg)zc3H_jCXb)*P zt(9Q2LI@x3IA9M{#o_f%#`U?LMjx@q6|$oDp!|(K+=Ss8!3{jE;%JCGMt;-=+j?f` z*7p%XFYw^qe*Nh`jkKw!1@SQ}}X*s?PD8N5p?T zW0V>C&0m@B`c0XCQI#`2@7e}l0a)08m!vpyi7ZE!NO1KDBrz|cFeni=DlzX2^$!ZV B4&eX* delta 1534 zcmb7EO=uHA6z(LuNjCjSD{5QQ#A%B)*|s7|QBc7u3Mv#2f)`s!?8@sj{lV)9;pvlzmI0L^9gw2>&L6~wS@u+c=rl-%C|=i?WxaVrM0N%D9Y|HFdl5$lqb2ZrGq zzanp{gG>UpbX%|$fAMb1fL6EwVc`6pzk$!oA)@gw@=NlNKlUw=7s7=$nm`jo#;`isv4?FV`|@^uEuG5J3Rp!?bpWW&{?YE zGOZ`h>2yRpr)#6zf&xGCSG+dZyMoU1p_t`KBbCzh)2Y6+ZgI=u0D?Z7L{LnHzfv|F zX#cOvAXm!E68S7!h7~lQtpZ+F2v`8Y9;Cn zIfx$f;^jSjdqwj^nH?CGjU*$ubT~2F{$H*YLe18HcJ3J6X4fBML3ef(0-MEQ#@*-a zkf@~~M2{mxCmPofLYUn`uxM!#(Yj8ORrH^9rRj9&Ur9sPq~F!SF7ky_3Hdl(Y@Z;% zyhy$n%lfG4%lErw64jpFUq!v(2hK1Jd=q16BsG4wBGNMNI{qLEMGh7m3863}pLtzn zn`9R2sosUN%ra;|_ipS4LEZOKHz|?*RR910 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 0000000000000000000000000000000000000000..65b436c92916798c00665e05cf661f9ef30aa686 GIT binary patch literal 6948 zcmdT}&2J<}7592QGoJC++PgMHUT?;rknysfNyLhvB|?#sAfY8zh$1dz>Fw#Rnd)(W z(OtbeBLNDBh*+vynj;c|GeQFX0uT~J0wly0H~G9Sl5 z5?L&j3!t#Lew-9)397KjxmYPHQ)5~r)4_{%R%3?jw3c8nnX5)Ii#hO zZ}45d%5U4C40UhaUrhRZLDn4KX5)%wwbA*LP>=7!mLJCNQ}}%vzXzl$tQ9#*!48b% z_(M2G-X#|(_ML-vrxf~3S=t^GJg^T^d2j)x@@(eV`jJS@gnyJDmKHnWx8N73u>=fS zr?lu`Wt~=x*nzo45=~)f_e}eANRGwi4O|!k&5$q7mkIf;=@z%3V zVa6g#EHYo*1Gc&P(+wy02!}v}KWqnsw)SOrn!Zc)`p+x$slW+A@QU(XQ(1V{yv+(F z#q^G>%#?8)UsNme%7B3dy#VWXKS3j9`)LAaW`QSRxU% z=X0DDwCB<(_YxkBS&b{~cBCGZdVckMJ>?ZYHLEBgg}w}h#zFG3p>t0|dlrgTK5&B4;3izp9sRS30K1f_w`*FLn zPyv%{86vO@m|w&x|MtxO3Ua=lBF_`4X7_w(7NWIASG#H@y3uJ!o~r+)5f2JRvSOB0~U@ANIB3eB5)8; z6gpa3+NRvF*}(A~DwEE(3y!}rLt`MPdsRW6ntr0bZAc3?XrTZ#^WJTEzbYYF+V|R|Hav|r^lmdU~ z{Rm9?L}4AK8$F4g^KK4Oa4%CZ>Cbn`pGv;`j~6iIzlX_wcM;KVK=kfK$Nn@swg%## zklWydpXFB06Us003E9v&yhtC#xHRYI-j_L%K1N5hqs$<`Elzvso%8xEk9$Sj6O7sIoKe~l~ zIWA7+u>SNZ(giSmbWrJE|#l)XmA zCFqdARBpIz4r`S;Y`(xh2BE66_+IvaZlZ$`cvIaQx@7kE+hG(~46O~j-Ji7m#0w{Y zczb_8chg)N?JTJAYp5Gv{1_Si3UsA#%3(JzQvbWypsI7gHG8^EtKZQPUe{fR+4qPY z=y3Zhj+PC)SyZ@<{zgOfXsnDIexTbWCvr9WNZpVLf^WkQvL`{DO;JdEN&%D_Jej3S z$>jC`9jvTXb4YdGA>~=To>{fh>&%-zFTdJ9Y!qc6j{QsjPqAbQAP~ibwIrk!)r?sUS)* zKsSKJ!t_E6R`fB{&pF1hl?{`~#b}KlWz-|1RUB8-W|UilAP{~aSY`446}d+3Lg3LD zlNnRYtWzfcM<-deLA}6hsC$ecNRb>`bEKEiE^KL`-w3DK4qpn^~D*G1^}Qpw~6u zQigo@&FO`i&GH)Q5W`R$CURBxY0WkLVS+{xENj47;dN;Sl5rq z{pC~`v&0Szbjd(<4fkXaGo!jwp~Mo#BL~ec1{>rtd z<$B0MgRXVNB9bj6M{yJa?~t8>Lw=A85ytm=Jxs^wyHOvn8$`oiDz}MJ2>?n1Pd&It zsOBIG51)GGF6_A;4XhdVG*hzwNY0*GcLdpE7Ihsa2I>rieUA&z#bHfh_7O$4;OYHk zxd%*oMiHKc0*3BSp2%zQ#24n+;Leb{_yvBKTzVGD)!0L)#`sc#xQ=0{>uRirh8tLB zX4*ZAHp@jBjMWo1I_K2AcUUHTe9eK(NhffJx7upEB?4CIMni&90L^k?WCkHG5& zrjADH@*k(bjMry2LU;lZI75+iBDXD29UBZ6g=?S_j5a9s`rnqD*>@HIt2@wX?L=N> z{-YFKX}PS^3E~$}#J%AlIE0}~F9n=U2nA>fWK}%q@$jQB739{`EcGzdG`J0l0hOBc z)dR>IG^sz2{)0LMbwa1!%`|v-JIgs%uiLDwx;+a-$sHG{PrxbY-K^VkV32= zp#*_y*9u%0mWEAnjWk}&=HG!G-b!CXIG{U+z=Bz0YI9QrZxxwjYI>!ZRz6&De9KL2 T!px9%wQNduSzgd@$L@atB*!jH literal 0 HcmV?d00001 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 8031f0b2b570bc52e9122be67863a0184bc54d13..46bea7b12a71ae14de7027defa7c92b7209b9bce 100644 GIT binary patch delta 1156 zcmaJ=OK1~881CfJ>~3DIm`F{VOp3KNr13!yRw#NXiipL6J=qfT*mQQtW%2K__7Nv(C9VmRh{o0p zn50sc)h3{EXp^JZtQZUTfr_Inm)5a_28;DdL+Cd<=!pe?kq}v_q)CvpUNmbyV1cRb z*x+~4MV>%+0zke3L^PyKKBenQPLWH^Zu}d%WlK`Gjr!RhZyZxEYH8sDT&yOt)*Ohi zX-@~*!G_#Dg4KM`;6=hlyMf-{c6ZGKjert+<%)>3tFFl&d$ITP8iag;eTx$+)iG_K_c}$N)!*HNBu=RUUISa!R?+ZH>q~z;6!xR?;-gyXGPF!y)?|BxvwS zf<1JJHhOklNM2x_;cy7aQxD0K;W@Q6a^l*V8VU=`P$cVx^F0(J%Fea1^6E9;qh&A$0mmi7-K y8wAo>ec=C#(4XqP_GSCdH-M#!FzAL@NU1Vs=2NB;outbld^ delta 793 zcma))y>HV%7{+t4O`MO`acEO$n#e(g#)bqb0x6wX(gH#%OE(&U)0keYxQXgy$k3`C zkU;WMy~o7Rfen!Oumo!t1Pq`GG0_MR8Gye5B5@ZQ6R86%r+eRfp67n|>Rz0?mlHOH zyU~el;kG~N~MgC;b9-hJ+PA=fo0zC~nqG2_#ZdYvr#Jf;FL5m*2v4~mVm*ZJyYI)k+^KbHGuw2ro#3i& Y8O&_c4`8x`J2pEY!~86!TU0qWNM+#V)E|2=e~2^d3Q3` z^I<=Ik-oX!FilUoy+^Y7^kF_anvbTtxWp(oG=1B;t|G1-N&oe2z?JV$vVzS+JJm$0Uxzqrd|_(brs?j)P$bQ*x2I- zBN3t}5@CB;sgO%?VLl^uu<&ZPvGANi9Lp!TjKn8-F3)C@tOOa-(q&V%T4hIqOY#|B z; z%GHyE(JS2N=rElqQ+L8d3Il{pRZs&h@3a=VpUlr-GL?-=!(=4!RcC9jP5-Dz{;YMB z?fRz0a-V(&e9hSs(RZt397Y=ze60?Tz0QD1C=2b@Mxp@(Cm~sg34Zv|I=5X^3$V2^ zrQ7q!B-m#m(RvIQREVAY@E#$(z)?OHqHivl}XwOqfQd2 zS%7niu_y|V?;DTr+TDl-(NF>H73QH*l~bCrMk11)hwLG|U~a&7Tz^nqDwOD>;J2h$)S z;|9s^RuC1`L-iEJ-hv{C2&%X0#S~P~UVEt?Lh5(!yzXiu`Lf+}&iD84^E(Eo>qHyTnS^;P<#`h6ZQ~z89HG2)Un;7x2k_cgxO`imIg&l1ddRp6rUKv1CF@ z_P~8l1>Ep>);O;rA2F0Hyr)(AVsS9<9CKlycks}Ag?!`3;vBALX%(G-v!awZFH5ql z$+8rdV+mERlNuYPQy98e8N{e&7HKt-Ql*TNQk8)wAJ=Er)GLYZC3TLUs24`HcwAB8 zxwqns7>}jZ&X}t78DK2YYg|_vIlmt)Yvv*a1<>gWR0^h>eB1JkV1;n4q(NaKN@;+( z@lT6lYaLS9CgR()k~(Qs8x6LhK-9fTUq6kcV`+Q3f{DwD<3x5gC);===r8iLaxpfOPSD^nC#LLx;nMBH1!n$qL5nhipB4hWVf}qs;-}aDxAE?Q zCbQ}=^Vy>#cf1uA5BmVHBb-LN#r-f^t-_se+qtvga_{_dTHaUCK5fxH$d;T-tJ1dJ zOdD%%w2U=Q3~S}Ay%uXer$ODFyTpc0WJ9C%^mo2D^cPOHB>dpBg<`38+IBX@3&Wac ztX@&K`P9&P*jL;@bj-i81;>(&aR^nk1N+Sx{ami6`F1t)5o+&=CnIVHPAt4E-Vs{t z$}(=nvP~!hE7?XKShUL7y%o%H7))&39ULevba4SEgHK9;-9aKDkz$Evp1ew78ta`h zzrLEU3~I?+IPO0xeMVE=lZ-NTuwOCQ7ryj%E9tJqHDvu4e7d_^Q6sUq5rLYrR^sBX xWA;+n0&x^NvO^nZowajl$7b*+t&53BpTe!v_yRM2FqWp(_!zU9?C92W08LTSsV3J4INM)Aa+_|3?k8QEh} zD=MZEMMS(snm43kgQyzl5>=5Z#DWbfE2P4%5~@(dB2^_m8xTl@a^HO7$)`qGvftc0 z_uYHmxu56XC+<&j?{FVZ4_x8iZ|#~?OT}j-Azu=TDKVE9&tLhtYqz%P<~KoxVb{KA zqD(V2Bfqh?nN@Pj6K9VeU%Tr$ZL0^kAy(MG+yd`i?PQn7UQpICsm`t^59B?vWq-E55#$M7>f{ z$X9^~`6S?T$#E9_3fl&~=x5Z29fahr=Q78FlLzE>@LeWI)&nD9KhxBNqB2L9KD0>| zL;Ra82+1TpVKT|5dA*_)#Dt{i!#w;926_0rj6`0_iHa`GNn(jt=Xf17bW182OeS@6 z<6J=%V3VrplBx&=x{-X)mSACdv1NiRwVVlsbK;z&NYsG**wRyLugfz9sjSaPx>z)b zF?h+iXe1Da#~J`@1j17-Y`VjScaZPY(Jp;G z&a)Iq?TiJ4`lopXFc70ot}6!enzi}M7RAv9JUa0k+5i^6nXafj4Pb^Jqh*LT?IXVd zkjRv`mps+p?0?OMNv?GaoEosf+J-!cm09^9EL+&Vd{k`_+%`tStundO;`JotB)Qbu z1?v%550m+D%E`=v>2!N$7HDRUxiYg4GBa;QKkJSj-cixyVA}w*Lis*o^G$bIe9N!9 zcJAW%nvGX$hM_P9!qd?FciK)fH>o%O=hRJ9zCoUEUw{|G5f_Icc(DracXBvSIXvLv zke-64%23R5*W=z5v2+|Y81+!WN)ZRUnyA=|JivZ4JUZ-Kr%1>F@<+!g^T4b#dwy)x z9nhS0yLRCh(q?U^Gg-B$3FTB?REwfss-~t?m?xR7d7@E~7j#||U=WMYr+g-(XEHER zTpzOn<$gOrjSdA1*Y-j=`yWARjsK5;P*Lt9#T@Uoz0YK|NfU0-L?tIF`I!qPan99q zGRFeL^hyX|Ujb%ZNhs|3x)XQo8NnGmG+X=G4yk_8lsVEAPV#wWKhJB#WtD0zF&T@)F zpb;-<1t}}(#-eF3FO(E`3~1GKQO#8fqJi#F92Qju4!LewD~2wV@}h2RKVp2VGEB5S ziq@*k7@+ppsOj*ixjL45IiOio>4_`TE*N{pXo~0pxT)^8f$< delta 2111 zcmb7_UuauZ9LIZZa+8~+W%<)3wKqvm8tmHJrkfRJTOGFGI&fN0R9t7#+vct}XK8N9 zy$PGHq=EyLD_DM4ecZ+n9|n#Qa8EiFd=Oy_L=Z&~eGy*-p^t*++?$)-m^QMP;7`2Ezm1ZxBP4e}jyWH3Y-e(q zP5v0hjXeF3uq4$a36D#(4ru}x3it(D$!or}x@wl^%S$iAg3Hs+EGAAG4eD@*zI?K!m zlat=8lq^+^yJHU3AsL-pY0LGY(AA){L z@Iss5Tn~bGBc(%PpAA{b4fm!7yXe zfA1%J7tNz@U5wFo))Nj!dT}3v>39S+VLpBe{lXlDpV=BBX~OOJ8+4*ug*=_T*=8uX z3?Vl-@~|0juD@j>$*QT78C4hHQ-1y z2m0Vq6o==M8Q4ig8?F9$h+`|NtMtCm+f5$nitK16<}ucz&f4Hs-M;zqnH9XQY1Lw> zA{&bC_E5XaJAHk;Q^o^Qxg@pIv~NhnliMTABdwBCr}C^;Z>vd~W9=rquP3)bn|P1wXcx|*ZUIN50SkG_Kb1*D37p8x;= 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 23a918bc0f84e4ae78d7f1c56b4b57687852ac34..8f666461eb3ed2cefd1fb1b2cbc1158c97f3faf4 100644 GIT binary patch delta 2265 zcma)7U1%It6yCepzuDQ%Hc7LMW;dBlDcP*aHqi)4lv0075$j`-8q&$`P3~NFX16mF z%@$;9!D8V0Q1AFuDfB_`v66>AsZX`~AV|?dKnX^Q^`!{<;)CG1Gn371l7o*7XN<&}XOCc0q{|Rj& z^f|xNRR~W_^Np?_>JV0DzQuzFKLD*ec-(B z6iJlCNPONQ5<9v}XF;>E9#CYjJkb&VEO}BY0!GBfrq0Xq)BLzRgP!6jHIX}pLLo9p z`{1#%NU|jMq2sv*8NZwwKSg_lMxH!`loFts_B17ytkhJ?(v~!A2IEL~WXU(>0(w?> zdU4Y8B26+BWVpyW5 zeSbWY897R2->siT!dHvZm^j@|okvlgNS{TvfE*!zL8g~>On@7T;M$Jp6u+JBkGM7b zEaRkqF7MJYVZBqMM!Mr2*vzn0Ju3wue07?3%BZa>)b1)wW#-P9V4h zb|*4k(xgi*KeBem>LFA|V#HFji|;Jy3NvHK${n%w2pJn>JqcC+Xt2;)|Em z3f>k9;+1mwaC}ef!fm-D`UGGfbXP4(yC4ogaAPV$im3)Rs+zI9uxjF^V4iRH?~CTO zx5VN#7;RIn1x)BeL9186!z5RrtD51^e?X1JL0~r<*kKVDlgS{! ztBsmg(QIeUegB?n8gP^v%{jeZT@kzRE=$18T^A0M11sBeVXNjcwjGx4$gJfC`I`vR z>!Shat6$+N))WhmD}ls?SacZ4pCd!(U=FrG(4N)4eHzH?oJRpQ+7oVboQ7UIw%u$U z6!(SsyqudV(!asEKEitZqOq`!5gZ#!6k+v0?K~RN{|g@f4jAt_SJ!@aWhT8+&$zz>4_u=uJLUIUBTT|*D_}cCK$4KeUZ9-Pc3mxRIydrzVpW! zgD)L<0fj}4*S|jU9}0gFUjM3ht84TsXw#N(%_KvGk%8H<;KNSEi#3ZBAR2hT{%!UG F`X8Es+9Ln} delta 771 zcmaiyL1@!p6vy|PG+oo$rs&#kZPRoJYqF*DBn2-XrmF~31ZAui$!zpXNZUZNgTkOY z2r2;`FWx-Nn@6P=y$D{!>kjT9JrzV@2fca_{L-#PhOo<*_wwHV|9;=&`+f1%xo|i9 zBAwk0KZXq2q1oNn$zhOvyUzl!y#p8kyuR!OihuT$*ZZHRi)ddnu7V>mwglbOk5YoV zaNN4PMR!*pu8AIv#&AQLATE+f!!Mgfs+=Hal>bT;e3O*nc7QG&p|1x6|6M}bn;+dl z6Uwk2@N<+uXWl&Gj=>846y`Z{NOI%{e&q7_IW>cau>yY2)Jo5&pBL$Dn(hNz_s!=) zI^EQryW;8IU-S_5MF0Q* 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 0000000000000000000000000000000000000000..73dc8d7ccdc8b4372f27cb32ec74e365eafb6384 GIT binary patch literal 7005 zcmdT}-D_k?70+bS-RaKPB(s}cnaONNS+_Gzx_5EZB`zY2tH`in92Q^P@y_jgtGjOJ zetB=*nQl;79~L)IZ+m?dM0^!N{RiM({9YKYrM`I57G{A%9?P5%PLFqnNJ6i z_bJC5MyA(g_K>|{#KMe3N?WjF>2)?HQBD#rWQ1>}TFQE8LMCk7lue^hf?t;PO!h;$ zBb^=(Jl2a6-)B+paS$E#tiTJ+*f582^&>Snp+^TR>$GCT4lFK`XbMQzPd8DAwAoW=A_l990im5-mLr_kac0=Gb!&;?ShPTE>=`MUPlYX89~mc{Rh* zcX~l6fTtMX5JBKtro~zB-UN2{dmrw;^kVm=+r9BeZ}(iM-wV|=&GuqPuzfH;GKVb3 zT+cRz8H*^f$bNAT_~zudnF?&XmV2xUp9GF2M* zmlrqi&mr@>0MU<-R2Bf9LhgQGPb$L6kKepWp1*mseb5$3=&}y*ajT6#d#yHpUI%6z z8+db|S43DL6e+N@w6smRVY7kbJ5*1dZWkQ?)C`S*wC_~~`Pdvm&J}{Hwk4#>DUQoI zMG zcq$iiE=?)$`=3N$N+=5JFx}`m?3{PAkb*mzf=PeAOa4^y<$pYfDgQl8_Pg_legmR+ z&pY;~*|9Yc|AgEIC;Tk8a-L9rkx$5mPVhzgD8{8ZKleoDMEV#V(vC8N{I)plGY1Nl z2M@F2Ysm135YeQ2kM5R-McO!d)pT3c9}S2<5chJ zwM?kML+0D4F^w^vP!+_FT(XLO^fg@Mu*h^zUEY>YpK6}8bV)MTB^|k>&X$YegzE0e zzOGTG>KcM_Ol+==Lj0SDJz0k)sGU>!^8fmfLj|LFc&6j0qc?G&Y+yo6LKId-356Lp z4qeA`M0%_U9-EPmk4+TsSs8{(2^wiv%vN1=2Hw^~CepKPNNW3}wua~Xp#JC_^|7VM zuS7pk^rIX2mt*5ZHhbm_gyos+%=Oa8-y$j1WBasc*ePX^%3^B}@SEo=lx49@my0Db z(%m|rHRZCAaREA{GnFYWn$cQiMw>72k3p!aF20jJxtnNv1m0BBhpwF6-F6rS7DGS8 zZuci`Kk>o|fZpES%^fwDMmq~?{2J=U=RaLWzXDw;oO0Op^VI(?HmE`#kj)-?)9QD0 zoY!@uV)pf72Ri2dilb!%FB}zfqrcHmJuxfehL1E%EtX@snth}W$^_#LKgeDWaW+L^ z@d*V`>I!9+E+v!O12n#}{?0yCefzrarJh{`-zkdf%gD?dICKPg{j!b&eoME4&MrWT zRv5oUdoRg#D~YISW)v;5)qF;`%H(p)gh0ARXK)j)*R8$*YCXJ^>{Ql2Z@LLONW~+1 z<4`uUR#p(D7@&c`pqUq9u%eGaDeE6$*vf`U^zNc;anmh^HMz;g4s0dRe2R0TnylHZpA5loozgK~ZQ#pH4>L^>p}9j!rEkl1 z#}5->Fy9L30z}SF#9;sBef7Y;KD}tLC<-Ejo4)O`2zDk>@%EM*K_aHP)D)Lg?#!&r zuo&$w0@CZ6Zz)5*`}*|4%w~CobckUn4imYmVYTL({xCsr2^P0;O)a7!EU!k)3L@LE z8C~-@hT4mVvX0;wppO8HIJSXK*T5O4ye`+xLmeYzNl^vl_(K5E zbv#_;uU&aTu7@l%=ypdeBHcoAR7oN54%sO<I{T^j|D^_y15A2G5uSwthHhyd%PaB37v|XD&XBwK1%8)YdM3)%*h6E-_)>znj$x>) zYOIHb8(3y$+8vAI32(viI^JMqWkT#eNbLy*3UkXuu;)YDMY z;5H}*RC3Zc79elXr2ahm53a4zzwsxQO`4|5i-^?1am;t|Re)N@mGlaKHIZvo?Wr@^HbHPtttNcUPSafJ3xI)T6qX8m^G%(I7RSQkx8beSBh!n Z!xhK3+{7l#3~5)(rev4p1^t%n{ug*mNMHZ} literal 0 HcmV?d00001 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 d503a1a824658b90a685c9b1861d44fd4f406e5b..6b5bb23009891d09a592a133503f13cbcaa92b10 100644 GIT binary patch delta 1827 zcmb7EO>7%Q6!tpn#Jh?AV;f?}8P^F(-6%;#B%&%&B2p+JYLRj(X`Qm;Y0x4Vuv4Gm%sGxOel@9 z@7u*M&ICRPeD-PKdf-|-{kp2vPs^oCTB$xIRW3;z*S}03*7|PW6FJV`zR&%|aW~l` zA@4sq%X-B*p)Tok8W;AKI3C8sl)apVQ(NVYz!C7=LAV`%OE)yRY0=!OpWP6D9{HwN z#I%YVL?h3T#IA)3{F`9Z2|51;I&>VNUkD4%y7haU(O#^H z{;|)(D3m%Dw3R6ng=v1X>pH^rqCyapTu0^YBnh5(W3jJeg@FPJZY69toGz^Y_qDO_ z!wWqVN|C9NW3bP_zQDiVjk(X@70^A);1y)>WiNyMklbY(sjR@ZUs(8Hx3KZ(G5&K; zlo^*av~@^R-uBoZBI*@36Pf2}%EZH5xO=I$x=tOsFr%BO^w4z~>56*jLJ&b^e-0DK zC_}CV`y|!JZp5a!0Q(`f#y{+MUy7%PA0X7B8<g`!&yl83w8z!#^nh$m{y*f26fC2-n&J23Gf0eSRhnZt$YtO=Bq@i^3VA z`(VSiG#6Z2lWaBFpF}my(jGc|j^@rmdIFk$JUGW^@qp9eUwkZskJD@>1#$c=AD#_H zA;KQk?rEOK*e3~3^B@Vox}Z+~JaT31AMOEIObvuETTo+K?8hi!zocSS7!7@8wO*GR zhG#CAnS7o!H5Ep!E>+0(4r#RN&7F!`Ci%SG4p8us7>7EDxDMsQ2o7bk^a9;z(G$vf zq$WdubLg?>9;Si*5>yQe8p|9j3d2KR(iF9tOQ~wY`?x;Qj%IbSh~8 delta 1261 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 I(R!Nv0_kfSpa1{> 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 72cfdf3b87ca4611d7707d0f779a798b351b44fa..f2df5a3a80791cf2128f13c16a05208bc81e7815 100644 GIT binary patch delta 1358 zcmaJ>O=uHQ5Y9`x`PpsKB#pH{Y2CD9)AR=wg;tcRwFN1yP!A$f!Y0}D?V4mmb}RHC zwMam5FZOK}1QBl@1hD~;A_zinBCXPT@FycA0tK%zX2{nSIf> ze2Tfj%rCV*XI>#>FTO#Y3|Xw>$am*tyY3%W@|kmzFqs!Jy<&1wR1KYtX-XoN6Y`pB z;H6^9HGt4ZGE>uO$E#$;JL}=u%-_+k}b9;v>(}QxLK})&r}@OV@JU- zDS(f>4s;L5eu{vuaO;R0kRB81*4ac_P*o`VbaFXRuUDN<@kWK<5V__VMHgsx*Ql9&i2U+Qpdn!1<5?}Ub^+_N z*cHrsQnFxa1}JNvCY(E z9>G5dQyWFMfLV7JoeQ~8sRQ>cBQUpP^herME-jYkquV!F4RgYiTwt)DwLGPfk)4(> zvy@z8aq0KXOr*zGIAjSn2QDH9tXQUmCGUKV=rO&)V-}s8fbl~B1Jg5>m_51_pwgX# zc#kj(5JayAw~XP|F~~ATM*Ll9(W=w}dFpQn`~$h>??G>OBKrdcw6H@{FED&&)zqZB zTT|M|1FNR@N-?IUB~eUS_x+WXtH=t;LNoX)-E(U*Ft*NwlF5i!>%!{I;V_@eD+y6m z#Uvk}=Cf0o+;mb&@Zqqz@b&-4m~#z;S-Z`q#sz!;{siQuJ4lut&IZ{9-U^k{I<}bP z?Rc3ysT&T50iipUxU5a*L_=<)rYk9`iEW$I1~Hip9!GYv;t3T$1b-uRskl=AxvJv` hfaP9zsk%EWWJDUG!mmiC2e(xm1}<=3{M2*>{Q(lTt=j+q delta 1023 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 JnuCL8{eQdznNk1% delta 1683 zcmbtUU5Fc16y7_N$tIi4ZZ?}tOfuQr{4C8*cT!us*n(OF6}3xH%ZhYe>uh$?nd{`I znaSD(rCUU3VNlAMJ{0MT&)Qn@=uhcWAEZcyJ`_Q85qg^=rbWaQVyPCE)@}!zP!x^wp$ykZ#-$Amro!cviG)>X69Q#DtKR<-AGvt=92hH83t7=DXN7~_|;n%XgKY*@I`Y-r^%=KF!R zVR@)9AI}Os+-u?4(a>tgG&LK34X5OwX;}6t!`A99xO3;-kKK|kIOW|#N+(=>bj2kF zG&0h+CGS!J^oi$C6>cq~Kb2|Y)dXNj!BD^my1RTlNz+hknXoeXw8Oa@t}7kyrxsQg&PJ@$1GrlQmE zd~^(5XOASdsTn+S$fJgJ#b0!JNkZdf(4KvhuClCI1hKk_Yn`}#9K&$^NGWeB**mn3RTi3CKb4v z%*H=qld}9`V`Bw>bk4GlW{5TT zBJ~ufaBw3wAIP&H(?o{Nw9F+rI3wmEn-Ip*WPxgEbVnhFr{Rr67{;X>ddEv(X_o}x z7b(cI)$*BCgr713Jit;^_p_$eN1O?h?tr#xo`N$I(||KYWV3LCZHAO4O%Bj(b~4!3 zYHQ89YBXGjYi+=>e0;yX(b8Op*Una5hv{v#eOj|!vQ9mn5WTQkTGgl-Rrdm%%*#hv z0qQ+egZ{iFA$X||4Kma0pr-(zO9l8h6XJ|Vn5lWpEDe~UWnZ9WFTip(0XJha@caC% zKrT{12q`$n4$deYEiZ2JEfWK4npN$~u&A`h9RHeTtA^>S@Pl#;`QTPc>ZZyM5%+-W nCZFEo_x(s6$!+?voFH4@%-y2vlQ6|aOV80wO7-3R;brt6t77>! 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 946a610ca4884c13496fbaab635cec3787f5928b..bc29934d0c58638e48bf2de2cc4f607e8955f537 100644 GIT binary patch literal 15314 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 Y;wt`r$mHOvDn;?91fMt7rq80k0TaJvY5)KL 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 764d7021e8019caf1d5c5b88ef1c6b5de3ebdbda..6d95220748c183217ad299c878a9e6278d9ada07 100644 GIT binary patch delta 706 zcmaJ5FYUooJrq1BDC^a$2*rc+?4cAqdGH{36KC4m4G88i# z>ACuNjWoi@Uv=$HWcv%$=}_LZ!k}rj!d~FmkxO~Xig!|`Cxu(|UYtUj{7cCRO77i$ z86jox9sNY;4IJc&vUmkv7oQC_3%``?&QqkolJ*|$!Vm4dlB@yIjRH1J6Rzns6KB7_ z-V+Ypa054X!vJn-(=%s>wRP9!vE|0p7un_?ruWl1rX~$3iZHC`)!D2dK2n^M$BAi_ zrNE9}gBSV&+J_I?rK?|9mF=?HdWjkAbFU=`c<7mNVk1Z6**qJo(iibePDteFA*@4uD6>N_0WgI_AT$T7ou<`oDah4I$`-)XqUZSvvOB*6q zu^sw84dl(7W-tgbyHVJtoKwea_06E?cl%D*HVHW%=~VLHo=2%1Bs08oD3{~#78@0I zn>9rsuPk;%j!l{4Bym~hhu^qy!CMq)QVd&O-0#xVyDUr1p}ak;!5WR>>*x*fR>;`2 pf;xkxGl%)v>!Q_L77I`G!1k#ma1p|jz!T1hxL9v_usYd9e*mV_8i^2}!LenKF4w4_J8PBVI;Emdzg+ zzc4bcncUB=$Y`;dgQblb#+l5)(m&aeV+&*KJM)PN|)uk-^$yGg*L3 znngiZS7GvgE+uIVpamSMxdj=C#hJxGOW^8cwLl6PwI*wG=`)_5oWQOnbuvRb<7kFV z26Kk2Uxu7tX;Ow*kCMWphRGnK@OK#zUn^iIWRiB`4qD)@GB= zSOMee@rX`-%q=&G*G)R(Uk`hJQdUW2LF$x@|2-Tjsl~}q&g3lK60RP$l+=>M%$zBS zlkf35v#>yo*lfr5myywQvyH%GW;K3B28JwdAW_`InU|QG3esN;^m-OZqO&+d5f}zW13ovpfHDNxUyU zqm?J(I{Xq!mz!!FxqE7U9k5Iq#I#&1v^=-XH2x`W#zy}f%|F43TBMZVnSwvspinKJdNoVK=J$0)>HTpT~vKs0k zBz%{v=rnv&=H%=KQ!zJ|(GHU?tC>z=x^1XSSlr?j;I)d6f6CSTkj37!*gJlL+v?fL zy^a&i_kvdG7_6x^lQoulp5qWVKe<@bbv*RF9ti?s;O+>!kuw|_UJvW~-sGqLpYt%` zk3cp1Bq|gFc&=zw+Mvydp0lT!hcP_m4Ew~>jNd$C*H|Q$ysjONh9t2sa#J=)&^xrD zR`lUjvCckDU8<(VW4{sVr^<=#vH3bnw^!H}#ERQ-2p0tm!sdZT0oB>3uvgMjsfqpo D`xp3f delta 365 zcmeyY^-hhofpu!K@I=-QM%l@Km}G^fWU$9h$>8i^2}!LenKF4w4_J8e1s0Bt&zKn* zSvJ37e8XO-3fTELN-Tab}hoLLOCM6+>9?G%j+)*f*!kXlBq$$vRD8Bb51%b_K8 zGDAA!XogG%bB3&6hMZq%QifQMy27J|$zana8?bY8BS}wo;8tLqI=PSAn^`(z#biS+ zg~=Q|f|H%N1@GueT+NVJD7CAB0mGiOR- zhH5O(?`io(xhazwnI$G)<&|S(0h%YXS%B{^BcthNK7q%~YW$203|ZVjqPT}MFEKY2 aWL7cIFIgao&f*M3ptrKPH;aqJFaiJ-zj&Dd 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 736ee4b695b01a4f967659e37064f7631c7d31bf..67b04c587a5e4eb99ddfe012c02a437359d4c912 100644 GIT binary patch literal 14211 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 delta 1595 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 delta 1291 zcmbu8O-vI(6vsR5_G78gBBdp5sk>06JGOvE2{9fNLd1Xs62k?F+0wk$iINNU;6Et3ScHaEooA-Y6-fAj$ z$-ZoV__*_d{T|}MYvYd^#5rvcR%fnCi<$w3UNGmrco1UpKat0ZHo(E~s2>ETznO^Y ztdzPT^^|`=VY-6lO?TyInCgb84&J%~`4`ML`+rAaNMr=Tq_=!;>Sk;A!M}(M|RUItG4`;ZM}|2TS1 zZ$E?9V9y`2KE>b;^xJWvdAYXv(p*-V)eHQEK8+o$@?0Sb!m!;oiZ;#SPLv*dqYTYe zc*}SBN}PVOIy*1UNv3<2&Z=S_+|Lr8jx9aU IZ}v{1-&1(}u6wl_Pn@zN>TB}K#W`nIwl%`5mwBk*?NCVykThmQ4?d+2MV0VM&pjA+z zFkU*-f+s~Nco0P5Q7;~4_ffQ5PY+{`6!4ByP5aq_kQp9=Do@Kmz1T+U z$m`f!K?t|s3!enxDSaHthfklOuOjCq9XWW0f9Sk8HOLnw?=ugp_J!z+@PFW`z3>uh zHjvHm_|-6dBEAu}XgQvfNI^B+ge=Q+TuP@C{==}i$go6)>S$RtR97_(`ch0CAL-eZ zhU&N#)kQj^tazW@VFer`6P%3Zq|~K;rUFn!U1aZpMgZ#P871EOA@f->_&d!-()6Y@ zJogo6@fIi^!Wq2NtO8G>C!sGf9`F=zc7>!sM4CQ}N27R@aAQLF9k3o8^f@Kq+-+7B zdQHm4e)0sgEXl*4`%-=kwuNnKN>>m1aRUH-fyZzp*rY$C1FJYhL`c_7C1I<@h-kH@d1(ycNyt3~ zZ*h?|@ky=3b7i!X@Z%p)DoF-FPu;9BGD{x`v#X3qoKZUExe0rEPLEUPn%?XHz|~On)TKM#I4fv}clk1mSagdjD?Z_!dNH&v||# b849!;`tHCVh{iY89GnM9+Vl3g0}H}moSL*G delta 424 zcmZqCpQOs#z&f>EXd~+$Mn;y+hZs*WGH#lDo=uU_V)6!N3&D)UoV3)G^i+KqWAaC4 zbtxD}56PqA3}2-i(ur*|#vpPS)U%pPbDp z$gYr?SE8V+J2`+uN@Yq0d+ZdA49*^o)ZBuM#Ny22DU+vYHcqJp3bOXFY5|pMO=jd2 zXFNT50h^ZO$qea?qZu+8%o(zN8FGH5Nf}~2ate=OzIfOvS!T1dR_q|u|)lX_qKm5vq{WF^?6=5>$upmfez*S*Z0_o>5PjvA~aq!dP$Hl&BX6&(& zdFJ!NEI`5+VH9LMDIOGNgT!?hsZKe+p}4O@nM|gOny8D$gJNGaO-+Y7;*}w@^RCR| z?}TiSvADyBX#_2Tg5)8-`~e@59_L6sDV%=wltCL^h%M9fChChTre11&WR{~a;l)wj zW2VKl&ca@(s%!?n;k9a|Vd=I>VTg6|;t~$1=#t#jc&rBp|zD#uWR;Y&cCLxUoo{B2U-Fq&a zx3%C17)rFmM9X%l73hZO=!4;wcrwAlsx$V(|9ak(RKGf(R8{lRS)U?S|DX8U63p?7 z(i~0G>W4fEyg5#nF&|f~9j@46di$0$Ee|T*(0HFCJR~5I^VUgwit8VrAJ;!X*-ycv z-@q9cz@Lf2JsFHDY8go<_~@=B|J{dY2OtVN4#OIRx}w&XRkh|X z-DRtrSxQHAla3Bu0G$cCW zOOH~7`bkhn4^cDpLtUI&fyXRM@Y%#2TwV-_-Z+NCcm5ur4K&LJTo>jd=;*-zDE;m_ z4*ofO?}k}?P{DM@)RlW|4i#GIv&u?;cV0YoiKyR#$vqpO9vg7|8r?EK;U?>y8Su^dscu{wy%Y2F! zNbAGL9=0|Oq;b}bj~`Ogrl6H}BayD;IyGzMCskAC%S1_)UF1#QvZSOMu|#^R znc3;104}S&!|^3n*vyg$J2O7bz}dK%qvcyT`W44}aod%J7sb4?C>FPA?xNZ7^Nh-8 zZ&EC;jeA_tY*rN48dm~d2ex2#SMKBDrGzjjO#MR^<)|hnDaGcIX_iH;%nCG6R&b?R zoT9Pnw!zh#oS@k%n|T(YwN7~|71=b3?P?B0v)z|cCsOmu;Qd9jPHzohqc3Vp?iPy?|9BSd&3j-=+$8thh`yZLLjHfcwUc?{qsJOpmT7pHBX3cEz zVF;`=icvKds+n5Ad-(wCZBTTl>l5p87Ne)BGn9OEsN!R@5hiJ_J)ZcIE?L|kx$Yl+ z^Uzihw`K=Do@Fxg1WSU5XTX_MMR8#^Wv*veso7NuvpY93x5V*NqVtAZcdEm9_O020 zxyj}#ok0O80f-`7#;!*!8RV!qfp~yhZwZe==32&mnFU_JDV4xB^we-<>Trxc3MC*C z1|I6)emE>d-E6R2OK;j`mO_wfJwTB0Cd31@%KtIo76@wN9TMAd95y6FX>V!enCQfk>4JA}Ax)^HdF7hv{f3#=){ynYzr zaB$Nb^o31O)Z5Gw4+2;%fXP?!dIp2LCMdc^UIpeP0}wF^W8?+zU46}Lq&)Q~S%5Dh z)IxJ)Vk!6z-N`x3OG4{Z-R*YKtx&+zgFr`SgKlB2lcZGuk{(i3m`B@J2A&?i`uZK< zxsmn#x#g*6y8PG2%hMYGQTBvqosjFk-2-ml6*`WvSyQtfyeQD3xW8g{!O7U0xaZ^m zo_pvxHCNRr(QN36a3CW5z~ALa67|RIt z8&I|oV)jX%BIwc^q-1|_fbb_wwYb-M3k2_HX> z@K2d0b<@Q~LU!O(i9I|E+HqV*Z;N}mS+82pF1LEhKp=t$b+{hkz}TOb<%BZxEdyYln2C_0nKU!6zs~l;IgjH Fe*nt{>QMjy literal 0 HcmV?d00001 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 27b70cd6d30fc4269374b4f542230a4fe1a1dd53..585d90753faffee622ce0e16cdf61ecc1d7e6d2a 100644 GIT binary patch delta 1968 zcmb7FO>7%g5cXSpZLjT(?Id>6*s0f{!HJv3X%wIe6^ei+stUQ(pi+{iYkS@2CAL$q z1C7!GK_F3S5sJo$8)`WtLFEI815lx=h#~|R1d$?yxFN1BNTq^#yZ%`_QY0*Sci+63 zZ)U!kdGGtjx1Qu*=ij?0ZS!xZN9W6x;?o8BLPai4=H;xiv?AwJe3!BtODj}f%`3SJ zN{zafYgEu3Y2{M21~q+;nXPSRyRkb&2nTGqf>_@WTy!jmCuxM9piye4 z!}<;Qg^P1XXW%|}OeiWEO|b_|@rfSxF=;%WWulAxCOL0lxSXT?FVdxTdYGPTL(yfJ zb8eGY4V6EgA^tM%U4rdk^bl=mzl@T~dWOC-zE!(Y8>76=<)_WGuE4x&guIW&k%6l+ z9mPx&_#a=cF*ghf7?jun1>62;s3}?N2<5KpBl0D9NFO&+^Lb(LzyhEw}_IhQtpjB52Ri%ivZ4s2}@B!Do@rOJHV`Hons!F9p+i7ao z;3w}f(gW9gN1{Grv(bp^#uqXlrp~u&Ciy6Xpg8f2>SP+jbO$+dqb6r+3c4q|Dr;IH zUr;L6i0qiGS+lTie76A;%;WJ<(<8%Su;>-B+Id>AsMBcaJFRTvm|(&l*4cZ++XkLR z;E5o`lC{Eo4B@dOB<~|_cdQ?#v0qeM!?&3deXyQU35r^NraDT5&caxq-h*SR%c{lL z#6p^Mt0D+J<7CN7>KWATCiM&>bP^4L*oTe}e&HL+s0C8eP2LpkbYTJZI^|-A)n% zh_};4BEx4S4s?;oeBUy4V**7Y)tjx=U0gBZm>uI80s)7}*cFlQU3OMCcHHjU=E=PX zzxB>?K@P6_CIe0 z_8`7BF-DEvJQ$5)qKOAJ8Z`lhyBZUXUNIQ;phn;9c1tnn#Y5AXH*f!M{=a!M!)soy z0k{*i<>w|if@|vxyUZ?qO zIz0|Yger0#zYP_iPS9!$)!;AIrn4$cNoPv#TqU^TEA!J#veRz?d^sJ>} z+D^;25L|D8CdWha0*k~7=r}GkXBM8rNAWIchRaUL*CR`^+_hAerKsH9+b74QcpN63 zk%dOQ{?B+ZOfGQyoTdv=b0zyzDW$I?)t!bNj$+v7@)s?ePp`^nellUPQ0*iy51zRi zhzlOMLxfdY#wYYEpNpHQFACghiM|+oz_9OL^a;<&vL- w#Kta$-g8ShTV9^}3)Rw^*qi84m|Pm)CY3FWq-iBSQ^q=KHqrHCH!60L-+nvU2LJ#7 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 285a539511952e2d6b227601e5888a1470f96325..bcb5cd15798677edd0e9c0d84193be80df08e5cd 100644 GIT binary patch delta 1545 zcmb7^%WD%s9LF=sCe5qKCT+Lc7rXJ%wDe7DYejrwDWaG5P_Q*klZ~@Wlho{1j3`)8 zP{>7o>s9eTu;l7N5mBV*!9$@~P`n79eSlW|O*Tn4RRs62JM-J`?=heG&DGaaeNu^E$i>rrsdz%3jm48Helv;uZ0wSp)0Kp*8MJQBpq>IZEnn6R zfRMYvZ`&5yRySJ+u@}D)mz}J_FNb6w90rLS^Q2{s_OlnLTxWm{`bw`e%p^H>6`yj; z-2b^a4cc+q4tDR`5bf?x4R&{nJAWkX^`d!bhq)P!_?m*jq?}SRimqfc zu|-9LdAHEtSZmW`iY})OFuGQZYetkh3;i`&;Jshk<1GP+G9tR1t5Lg5wE=H@Vc-FV0u`w1reVfL8wBcmhE*3+w9^e-nH!aMQ|T#q6N_<8Q&NhYvsUE5 z<-+|yGwEdUBm2zw%!>uV9O${dD)fX0{B9y)=@EGBb2@|q8~2cLnCE->mzK<<7z2*F z+TdM)^NnoBg`cLa&sI)iR!X;)7gU0#Dy)GT_LxOL@ZpZAT4z-;NVr2LMYSGWfi5y@ zWi^B9ovdaUtEiQg4_Qr@l8IVNu*q%-($A8P^emE6jBVAr`qph_?_zJ>4q(81Qh;?>PHfa>W^Z4E7Qy2>c`|VvfPShvn)JEL-`P zD$zVPs(uc4d``S7p3P?DQlr1(dpT@)5x(=C$Gz6aT*!}#KXtLQTf0dY{|E`M`Kcjm zlyZmHZX3VT4<bs9FWIbN%cIlAU)Zuh z6}Al)wk*lBiXMTw5wH5hYWR!>Mzyj5P|v$P^|%R}w2eBd)<@w`3J*+OBAZUj8NA)L zPkyT;iA%XGUVxgM6c_ShW;wl-Pi7OMBvtz5pBnR^V;v#8&8ERISENY|;t-2?&Wb3X zJh58Lr|^UnMM0r1yP)d%CD~BB*wmerwM1nOQw>*OyDST(=v0>@E%jykJ}oR@Jhq~#S<;($ZyDC$_oGh delta 1148 zcmbtTO=}ZT6zxl9(wR&RNt!m+CUHU*NuNn2eqc8hyC_z~s<==nZB6X7FGG?RXR=T# z)P-PS5Xv202o?MZ68s0c(T##4h(cAm)P<7VdG_s;z|=ic{b{J}AC zO}q=k8{%z}f)^yUQ4h5Y=o6(!Uu8ms`Y+=1kS9RpBpHJ<@>qx!%8S~g*QKE2sj}q}W zFAsHJW)-DaE0;BMzFackycA92-<&U*TEzx?{iOwF^e%Ti%+w}Gy-Hx(kd&gV3Z7ZX|c)0X1%jE z=I|mhSCaj_QdEz3RZ5SjAJ?GGy-#r!g)f0DoQue!7d!L7TqH$%n!&75E9wMIhmLg= zIsc&-jdl21M|K0Gq-Lub-4B-odjSF=GRd2qapaiTT@HTimP1dtd-9&)NlXWpA#n&Ez2;)8FNaFgETq-FLD`@D}aoP_kP-87O`#VzFa9<4ky z0&&OgKf-&DLLYS6a}FD~=EM2Cw@q--2cqN@cqM!RSdMK;9Rto6!a# pO8x54CvSQisF)X=SsAxRez(=L?i*d*3q(*9*y3gyc7ze*_uEv|2h{_iM|B>o7l8Ph+^ewe z3M5YjaPVV2g?@l@EUiGhx5DE6fdM4(AGfsfCh##z zu$Ctpwsc$oTWoz$ZT!4>-&c!iOL=Xds=kx(z}5rx{}U-ezt&2naw#8biy$Th*j!yi zghrVT>?hN#N9X{m^>(fA01c|!=;G6D7@hw^#vq`a6XgvuGM$HlTSHYDMWc+Df@M&W zja3}!H8>-XyN!7k5{?=H^;kC(0mq{*nCdv>tYYU1Ol^yKxLt^GLdV+L-+|CI;~ck6^awY zWlx1GXNjGu_ OX&fFKTP`hhj-uaq{aW?qSwrh=~SLkjY@q zkoC)u^8?Cq_Hd-;7GxwAXBJPHJOyqCE7cs#j-ON(<;hHS>63^{M+$P>||P$zYEK`uz{wee7Cb4O)}W z@k+8-B3YpdbYqq&$O>d%iuFi=+zU5+azD2O3rH2n*{qv@T8t*|=TqX$xC?dQmXcbM zn3*#radLv7B_qq^cpjO}+XVkIGA`b{MffqZS}jmpRwa-q?%~W!%uNMpE(S(!7D%GA RI71N_&smk5_ln0b0sv3-%8>v7 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 391ed2f0f8e77fe83910acac11912cbc9c46970e..04b5aa34452a38615ebad133f11e4f8f171e4309 100644 GIT binary patch delta 1467 zcmaJ>-)kdP6wXaDZ8GU3O?MluZIhX{uxYl>Q$d2z|kS32DKF#m@cEXW?GN?}r!)@>in2Zfdz)WgWM3 zIrVwfsN1p%&oaTPkf1^$FZ-PnWn3}p256}ltA-^+%zog!=VXaQ20V4=AE_xCHm>y* zvdKri~qzR6cxvNw`fq(!B0vCAVsSoH`?)W2M$|)!A z&{9m{H)2l(=@f9!^Gq@l0YNkaE%LTu61FT{R@d5Uy;W8c=Hwo>U60hj^+zY|;&rH8v&LKr0&R zp zxAKEGxvTin9CLwXS_7NP=A?N=LtHn@RaTS z*}Z~LJTEN>0-qF0vx<=7(`h~j5?>Sx5>G1`yJncTQdhLgS`s)l{@)gSZ670F@s&*o zet{6Q>v;&MyZEHGq;*Va4q0y^${8~|0|F{T0sfNg=mwsjJp*5g|FnoajyZNapbcSQ zATj~b37quvxZ$%}87keX=S6J#BA9lj34>G4(k>dLOH7&_lS&r10C95 zt}w~sUEd)lBp=3y{X^WQ4zl9j$AsXS!Jc!UArkdU4-|Bp5Uh2q;3?&_;%E0LE_=@P zL+=UXOH_v+Juz?N-?`fu^ByBhI+@uZYv6Tnf;8~47s+j!P7SN(s#L63OPYL#cGuy6 zylRYXNVP&Y#watnbB)z*v|DmiGmTM5FUy{~a&F~cY4d4|7mjD0& 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 bd66c019c09d81f3baf23f3f1e68d7deabe7a897..89a363d289784ce798137c8f5ec39540b84c277a 100644 GIT binary patch literal 13716 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 LFVGqsbz1)e(1m@` delta 1721 zcma)6&u<%55YF56I@9UI$;*Rj|6fs<|QCK1q3DM6JQsAQT72~b-I>Bf1XK^ z@0;0icJH1SZVF$%IB_W4g5f~w@Y^t3?*7_Oh_CrOc}&QC_>Iq!B{=4nMl`j&O}BRF z>GlRze7R)XD0DU#@ZKukYnr}4h5twRH}ENh!nRtX8>(g1_05Jw9W7lX5E*t62ifxK3&Q2b|QIEp6WPJD67t?*25?ZppqZZ@i@aC81LmVoGa4()q1^JcPSL56x>M5k~bK%K08##nNU~D8`!PY$`1aVaF{G` z@4CPPZ!<*6cned>gzZ3`Zf{lhRK4QZTx}nI&csex`!(v=JiT6WT)(B(cc|qUmod^F z!~nBKOZv86a&Ez+Ozve?r%N7c5f^uM2(AiU{|fVTw-vl0DO|BzoC|GnxHBBAh!X>C zb(mD}V=4jfhtu$QZdx#Q5e%mCa+YoEek`k-v+*@E2eznLYTH2b9|mpz7PVBp?5OY{ zze0R45>7Q23de-|g=@~wKjd?FFwpo0Kc*dE^P7d6IByN+_`=k(IC|0FeD$UG$UkPD B1>yhz 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 d5dc2d00b5bb8fd1e5e647c531faf6413ff035c1..4e3cbde148303d20bc9afb31c7969cff7f3b0cf5 100644 GIT binary patch literal 14421 zcmds8TZ|-Ed7iz@rF(W~c6RNJvUJu zR96*s*`1MWY(F4&q{BtH5Dy6tJOD!C0U^Xif+rr4kP?t0lqib)5CtK4%tMe6-+xYB zPF43*ciXE-$w)I(b*}&A`~UOTIsbWm{;MB;Vov<<)zCLBcfYM0hU*zDO!$)F_2MCO zqvXxx(i_RE$tG_E`pwXbgC0xx99r~D%P|7xCNC#^g_=i}6SmX-iy`YpmgnZ(&3SXd zTzom%G#h+AvLc5mRs6!=dBN~+EqxH^!**Zqu}^7w6a`i{jzA6dL${O9vwfmxwDp|Y z`g4h-cfr>|U6hz>yrJdnm?!u`%Eb;p=~ymHcH*wio63B|?Fq{WiL=F?qlY1g!1KJT z59QO65&OkUSMTiwtWRxXz8L8Ps!GgNbKN{;UNBFX8{F-f-jH>I*mYUZx#>T2Md~2PK3(StGH{J$A6w68gNl z zz!psLr|lnHA>0Bt?x5xMTM`-Va{D&5mw%q6rwXD7vd4se8$!-iA+L_KC$DgxkCYdp z-mMe$5{X*Md5I<*6|wn}`6-g;rwe(SFXvRA6;#5+hhu4cQ-EYmh@V8_`Q#_PKo#DxtC<<% zshI5BM^DC&d7~ovCOD<(8hpWW#af|g_$0ZCY#RAe%=F`$nPAp^J$52Zc$xC7{9G9O zz86GVIMjpaGqFbt;34VfhmsifHuSTs__GlOEy&7@lkBzN<)4q{

C1Fu);b5y|LQIeo=*e zo9I;9jYPWC{lcu3pOl%8;3=DlEN^F3b`ii|v%!JNj1u6fW@fXG%Bd_Ekfihqo4U{i zIWuH)IyNo^Xweo9yyT*ec;JePtIa&Aro;o9d&_M2c}8`YH>tAL#yzguGAoK}jobjm z6O}bB~}f^$%E-qZXN5V4J6=Syn?bE6_lW%9UnuipHwj2KPjAj%KTD=2?W+ zI%PvtozW<^t2yY*c3(=JNX;vQC%4Qxm8RgJHzeo^^lVUmoO-42D=c}}_3(&OG*I5l zPz%q7U8sy5%L!%Ccxu)%p2|#n5r4s>;$+dZ1dArkn%UyR5LjsxHEJwWGqr&C@&VS{ zpg;+%Adztvqo=7e)DLv1;$yQBCTXrcp7@foErjA+_m94MWV6$Ivx6SbGMRaTB|*e9 z;7qC_aW$JV*R!kC>?(!Xn;V&1;_M?L@rGM>s>68pz1e}e$>uhlK>;WMh$34Ptw$^w z6Gi5qcBP8vf%H(jLFzUxGO4&%ooQL(Ywtyf z63kL`(+fhydJ!F@)Uq*l2=TzI;V=p=!0bZ^SW}95{V>Ae;Gw(pg-uW)+B68&B~}Yy z@>M*xz~HV4if)ltfjP+lM2x~1SM2+@-!U60Pd&PK;fn~c&>Trh3cf>kat`yR&^lGe z-7dNnszItQJ2D$|3$sI#Rsl$Q$g5x;ZA(_39=-kWG4R~T`u^PV)H7ZFi{s^~pd`wk z^Q;qc-M4$d?Ylz95jJaT)`J%XS`;TMW)GZ4O8~z_3lBLgl?VxiBX3Mv^&ir1z!s0-T9^Jb(+2pn~AYVlK>%52H;xJC#{+;ROB*D&npP;T+m?xsfH#7L)?DG@>f9 zXXG^WoMpCWdZ|9J-B_(ZX;2DCk6sXOP^bGoWAO2_5AjEtCUw(wMM8GqLWzAmD%o*d zLhp+Aamm$Gh4| z+cWDU-e#Ht{LcJZ<;a3*A%ys-V!;!nqrQwHAPr1$jWnK={ht7bSH)Af1Bzof7GPEM m_(C4MJ&7bU-K&#sYs1wr@uNH-&J1W)E1+Ok#s!yRb^Z&Z+cT{I literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..95f85b283a18f82392ed5880cd789a62fbe7bd60 GIT binary patch literal 9082 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 C5m-L} delta 254 zcmeB?zaq!dz&h1)Bg;lcMwZRn7|og0dxVP%GBWcj^inHI^vW_*%aij{Qm6Fr!BNGju|^|BXu&ILk)l3W5Q$Q@$+WX;b~nv##6EZh z#lkAeSwT@m@l_DXFYq5oUwp7{qIjWFeGq&QJ(I+Cy`T%bJLk-IzVn@PX722GGvdGC zzx6VC(|`3KJz!S#eX253RrK6!O(|I?CT$bns;U?>WoEfNaMIpakeUbjP z!qH*bRnwShx<*M4e2;8Sc9XU?-m69NSDWGq-f`J&CPN=2<3qc&h(Pr5*E}`eiO8-d zQg(vHvSL~4w92YpiEDo?7ZxMy$u^N{{nlnGK_K`r9g?h8EOg~#J*0pY6y)aE6Hdc| z`|CnvKavc=ld$X;GWNoe=s@T07A1tE{jeC8L#sMF1wiUR0E|bE5kEYN9wfHl$ns?* zm~F|xvaoWEpt;iK;lrlE8iV>2>pvg#J`G)3z=P%;;)H5zJT7NzgJ6O)Dvk|REvlO( z(W(+v4O%HHMV9lj1{<^)ZJn1y5+p8%>#+p6COX*d8AT74Fpp@Iz6Wx#BuT;1*nq?n zP6|H92Fd-EZgnB@uD4tBzjaGcU17%Q6!!RMz3bmNja}4@<4szqvvs0?I6zQP;eaTJNR=vj2$8e4$C(}0UgKRu zB9W+3g+$d65_-ddJK~61`HWCeE5WTj&{HJ@h#v_dQLcbsX4eT0B_Iy=?!Nivd*6HS zoB8g^_g4~^67Rh;^KRm8D5yq`B-c67So{Ls@;N|WoxA>38lm{`ClrgKkKul77Ciy? zw3V#ix2^8xz_EPW?Ls+KJ9a3t*ufsD53k18;^;hluNs=$HY`I%LD7~Th`p>e{+-_Z z2m03rR?DmVZarLcu*b>FiwJ1yUg?f$n5Il;nnrcG=~$k(ys-<5snQECiRi|>v9Mq~ z69_U|mTwuJ-ybynK_4%sTkc6YPB)yHiPd_OZgb*OhM zf$;r;laB4fi}toTQ+wMB!EiVx4~t!=#czI{ z56Bt17}j9I^?W7G6rro-HaR;BAE2}6In#nb$FjSeJ|&4|A3X8ChCH@K(>U zo3_ud1b{cJepkF|z3t_W+Zs5SlUq{6GTcuVvy#)d`kUD2?8Jdr0yR~srcBnQ!Nxl~ zJ#Tz{365~mSn&n8n62f=7lPwk!4VT2Sy9bNQC#!pa*os>S1OmJp0jc&?%6ftg{-WaJ;qV$?5V@@GI5}o`2 zd-)1%9h-!9whYfrJ#YLfI9bwd(7?p>H~Fcyu-6=Y!$(uErXt3Q5?R^ yPY*8_e@E!C;ok9YVy83FNQA25&tqEG>R`Fq6SoMJ3s*ccD=rkVKD?^0p+5n{8uVNM 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 0000000000000000000000000000000000000000..09348e7920dc809e4efe46c8d4362e2653aa0b5d GIT binary patch literal 8872 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 W^hg#+qO&+d5$LBZ_RZhLVi*B%>YMKX 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 0000000000000000000000000000000000000000..284361fe8341a40463c7107eafaefe837fab7a0b GIT binary patch literal 12819 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eb8025e7236f092af0639fcc96ecc0d9ae527f6d GIT binary patch literal 13318 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 bYdCMYJtsB@Gn>?_VG!A+yg++!+-?6CpZ+Lf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..21a104bf6e9f046dd191966360526638bd59af34 GIT binary patch literal 12037 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fb46be0f58285149d5db520ec7fa91a10b413918 GIT binary patch literal 12532 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 MoEK;g4!3Ln1rn$GQ~&?~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5a01b246f82a619c255fe72754168c67e2b15fda GIT binary patch literal 7864 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 delta 1044 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 literal 0 HcmV?d00001 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 6f77f075651789da8880296d86b8e5fa6fa0508e..0f5ff8065a40df6309f43422bb660d5c3c5c5af1 100644 GIT binary patch delta 3191 zcmai$U1$_n6vv&(X1`5Vv)Lp&n`AbduifUu#Aq~;#(>5a!Kx2}t*M#pPBJ_0N19zB zc_=gwN-gtH_iP`EP!a@fE3`;J5ZY2oTWAYX+dfrAOR0U(lv8x6@pMW^kPm#` z$hVN?sid%=8lp{^$xVM-h)iNaaxR{lRjpn7 zIQdU}oSv3^lJ!hp(?RcYT+hHCWY8>Mr$@^{JKFxH**X-bTGaSVT%0%Phu3}077_+u zdIOG-vGTe4W@inH6X93MM~3cFxUDR#xC3ykK5X}p4JW%{jBABU^+%azcv641&PlIL zQmkkZ3R^UD(pCCw!*oz$2{uXur6bT-V}__Qlzd7JeBf(h$4EqT&QlM8CVMqyyN5#9 zM+zZ;=?>N2H3hQ6;iiV*-sde}_@c4Z;nXT7--q`bxTd;^9WhtKh5C-GwsJK-iYutD!v2Ayja}@59;uX-$8*W{HoWQp& zoy;*KD{@@NY67(%(03pWjxe)DRunF#veMhqFx+e}Z%ban6n?do>9Y?l=;w#AA>D^t zd`N9fxA-yUoRP+v3N+3TjSe%729&q7o(8N0eQ+Vz$t)YQC&P8w51^OJ$>OC5EGl-fh- zl&D@&`tVxf)K-vu%g~%8D>X;?p5c|^QoRfw2$RCyc6TyQDCM%<)rzVfYnVoHyXbvS zn;K6pTQr?aim5EzWg?K;Y;(#^3$o&5n}xQCUi!zBu-BY0P5qCynJ8l%{iTlJMwgAb zgAU!!;wjpMB>ExL5oC8-w4<*UZiH;E?G#M2A}Su`<^2m$QN4?)Xkb^@;0V!C|I}JN z7t#LG6y)yJy^VVme4X3aS9B?yd1>`vDhE+m@u-5~t|9HNG1N8AP8HnL!`s@9#*->5 zy`>zq=%-W}Fq-!z&9ne)pE@F7>~_uT?{-Ihky;QPJ|naNsS1wR0>F23ld=n?>2*}N zV341iPe;W}MvU>(i+t*Ia&9q}j`G2vzOv?9ML#Q!|gfiMiCsT@$Ot2E8uY#GzAgw#k#M!j&i`@#mfURq0Nx(@q zo)Qw%y4#eLWD6bXQ#?nTPV^KTQ<8H=CNWl$CfL}FzLE^s35hG*WuxxlDA~nw9%JXG zWqpO7{y<{k-{~*4?R8aXeA%eRJJrgGc}e1wG3*ZO)eZ3Bef6$^t$8yT$mdNDC9Yt` zJD0R)wGQ4P-o^tMa~-CBMzGi0b?Qev=6&KF{F$HN-6}Vsl}U5-2oFyhxpS)ZxkKD=|@hR{Pp3vBK#3^9)C`?oQtP; zRu<%3?&^#7G~DvGqY<)A!(#?RnQdB47G@ghs%*LXD2oq=9rMu(54wYdj)U9K(a$j3 zAC_>SNE^*&xqvTx5p;%RIcSn07bk<5bIA~gu_05I8Ycg!!W;e&S|(xLCiqO)b{#xE z$6;!f6WD83-Af0kl`QH~jQVv8_0erm$Fp+uAKG=iSkZ6hpg$YBAAL`fe8NP( zQ5-!nZ;jri%VU9j8UpBs;cz`HhAYr-xlNGSX3%JYjk@Ezax`Tl%Sst$?ZRtmTK%J43CYc^vQ8^*zt;sY+q~K2BG}y&2-=5|3C>WOJY6Vd z$OHqwR(VjGgef=WKp_L?6(i{M-90_%9X+*GvVl*$ zPEre=b>i!CG8t!ugr-ud1x>BQ1}>eFgqWac=hZSiR2EX4rrNl4OjC)!g5M0BqKWU} zNV>nA;$p&-5Yv{$5I$JqD>x}JO#U^KBJOxy^~Fw)%syTSnoM_V1@$2cMkM(Ggwqn6=En+`<$gAB_j zIXPyH;e}|TLM@%-6jqQl7XFMLLiicr^RGVMvx!i2b!6XdTbt940XguGtU42HoFl7c W{C*M1#Ce$y;irt~SbehhH2Md`07P8? 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 8a5034577b2c815c5355e097ffa9e1efc69b64b2..2ea650f12336eccd68e536ddd344329edac32a8d 100644 GIT binary patch delta 3146 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 ML4x_^{R4;4zvvbv(EtDd 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 70fc169f777c92aa36350b6c2ecd6476b9139f4c..55f38d04b2b1657f0235597b77810a73c00a4c56 100644 GIT binary patch delta 3517 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 delta 2552 zcmbVOT}&KR6z1+S3%jrjE!}0=KW3qY-GQ~Ow*F8oH5H`()L_*_DbQgVxH~S(va{Pl znikrqX`4wZIb))!#@a+4WvfHsVi=`lL;4OpWKxu)DKBG5WAG zJLl)S=X~efbMJ-0lYQJQ_xh2@9CwO%V9`}S_kOMM=hC8;kaD<2KDVe>px+)Q55jT# zTX4?u5qT2!*nAMTKIVL!`e_dhP%90Ztlowr<=sTot-dbbvgsfl$k8@BR5Yf8P|KYo zGrGwaoSQp_x@jOA1I={V`Upyt+%TPrp3shI5z46~r_qW5jUIk#0dz zEB>Mb8e4@SY5#_FIFED*kv>@m=^{gNmc#^e-hewVnJmd^u;LwZ4gRj^bv{aibdZLg zAgF%?4pd$zKftzt;9Nra?q&H+;2ocm-EiH(d%h8PK^T`5DhPa}Bc2o$rQ^_XsB!t8 zJ{09+F@9f4$%?7C#7~U!BF`)x%w_Z?X_~nRiBwk54WFeFKPsXjYVOf(awP^ZS+%*2 zxgIVN^YEoR>Y#SDYB-lnN?F+I@Co*0Ldgy#veLK)TA>czcZsz9Zjl;ff1d}C1Ej1B z-mC5;%`m&M{W&>|-_$RM@P!5Us1`n=y`mXqH^fGZ?WdvrXi%nBr=`?LA~iNNm61lx zp=~aq4t{h70}nB9);1os{3)c(g#0irAB1OIQTr|5GqIs>@Fnw_S^FRn4F(gyA5Z7U+#n(yg=IE1m9$%f8r@|3x4x= z5g8HNSuP!8{~?#j=fz}B>ds^)GMEOu78u#PoW=dCDJWB2NgU}JF*&4UGZU#X^S*Z! zku>-v7$h&V6e~}%VEpn72HjYz+HvZROpJ?(l%`tJ({MiIp2<$9B~7(TQ*lk#XT{8z zl-1-{(NnEL2PG}V6QhZ^c1nJcmGqk2k1zQkK3JLc8S9siqPfl-r!!~TMNDJvRAe{4 zZ!+Xe8mgA-cJ;$O7yURKM zYxrHO6bUoAVFUAniQRS!fec6wPa!W-@7-rm5YMG!s*oj#?FJm0C=3UqDnu#68Q@H$yfv6QLhUiwFt< zsdxPG!=fMlisV~CLGVWuTs}mLP=!{ZD!6?pc;6(Mq;;8(khLAhp=Yln>`yk9s z6i(OOtgW_OBQ-F|y=plpib+YOq9_aq1F=LzRR>PM6T7#M7x3FpB|%PQa+<(Ey*w|9 zQv9T3ptW2kAsv=e+H!Ewmxkq(tjXyVeC9gWv{d%T6SArumo+J=gWfZy zpV606Yd-uB3SoYJd7avhVu(For%Bm4IePz*gXr*_A0*#k)+V-optHCavH+gA0!$cS@Gz~7FN%$Y%0}*V@{!ey26LP!^$&e znCU;Pz( z_qL3u^~Ow9#6M7phoA27((2ehb+?;n70OUAFQtfvooz9{NxiW0`8LtJT&*=8sC zV2aX&0n>9tc`-*6mhdV1L)Ix=JvLUaadj6_i(JL=cA{_(sE^h%@nELeP4Uv%V(Da3 zN@>+M&KnF0nQS^Hsj3tgq9Z~om&}aB(=j0!ED!j9F~woW@_`zQMU6%v;_QH~dfNiU zj|QZ1i_s`GDPYiP_iPLHqcd+yM-^=(Bk9Uow&miI8Y}N%)RTfAp7r>Wp0fK2ds==G qk|^wMovK~36~W3T{897vR3s^}5EY+0g*h&&G>9)B`U?j;50l?gjO>vB delta 1144 zcmah|Ur1A76!+V9-9P7?>881@yHeb4F0dCv!$l?{mJd--$01}nBN-g^Qs z2pLhPg20FSr_%{p?w`5^1)F!^0^UwV_-K^BL`6Q8&E*xIRi1D#j5u>$WEero=hEUt zDy#HhjS?3a0z!_+m@}DAr$uElosty|w8(AkrWU3gt*6#F26olXGLtDq%+#dSv-`{= z>^qOf9;AAu!4@2Lo+dwG$0~H~&<kl#+~>WsI&s)cp0;w2Z%HV5E!L&WA}MIDkAwp)$>=ekJR;EL-`AIGi(G){wK zq%uQmgkPD1|MjdsON+4W7F>%6e1kwU0yiPyypad8bgR6H3-0tIl~RCkwLS-XmX24?tbHt4NQ=~X}f-$ 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 0000000000000000000000000000000000000000..9fac0f02df5cb5c1424fb21d8bd985ac98429d92 GIT binary patch literal 11052 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 IcV-`w|4VY*!vFvP delta 432 zcmcbwu}qbiF)1zCGowSY>sCd+b)GoGHz$e|^5GDAA!XogG%bB3&6hMXVJc(EP@g+~pOL58Vu zBS}qm;8I|mI=PR_n^`(z#pDM(GLtW`u}tRR7M$$FB{%sRx0`gvzaIAdq^y$4g48J) z|9d!6Qj3$JoXHM68C*SVDXArinK@GuC$Hc!2Zr+l9!Vxf)6Kv59y6=)Gcqt_aRZ6s g9?rbP+*FXpVxY6LKoXtB8Hzw3WN~k17LH*A04fxd)&Kwi 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 0000000000000000000000000000000000000000..2c7a603c693fbc48ae399552960b5b7192d9c111 GIT binary patch literal 10853 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 Q4V{8r5*KI0%;`m(*OVf literal 0 HcmV?d00001 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 70f8e57061d03c0bb46124a16a65f6cf0be36862..db9b3ebae29d8d92c765f16bbed35cb5cd8bfd17 100644 GIT binary patch delta 1561 zcmbtUO-vI(6z;Yxw56$(mYUiMQ+`6Jwc2R>yQq<%fDxk{R6yLeQ+Jo`ZquED4Kaln zqb5B_W;Gr>a4>o?D(S(4Cle1I;K7uz*YR=1dsv*qym{k!YocW{7z0z1C^VF zK)|hzz;;tEI7Vxjc-59>thmoPfXAF~N>8KFj3B`rhxlj|90MxKI{|sdc?jqxZ3U6{ zk&9#J0F8`0ozZA64-qQr2}wnfVnE3uL6JF0&mGQy@q7Ws8WX{sAW0xe%Ie8v5oB~6 zrsI0fAk1(DiEt)(L!6{i9P_jOe|Mx|Mvw)HHZ2J%Ua|YH`WpApw18liXfUv--P9sH zTaIr+atnewR)mU)U_OgqyE^f6*9j(pUpV)M_AwR<9~AeHrI6(PeDiJ1fFXPMcU$bN zI6xzI^J{$PsGUUi8Ig{%GbM4VDr5whH#cV^zuaKwFYE91f+G}h^o)T>>(H_UmDH+J zHr3*rbr*iC5#P0eCH6SH{Tnw;+G=&|DS{otirc|b5?AoDr^kM&+6lhq>B9Hhn((rl zE!CLsV!4Dn;nl#3;K7D_k7+wg+B3%~QWXNWUfQc5-pWjX_E zCJ2VZWJ=@(Oex%?*{wr;udfh_! zyc^)3-qYYaIV`u3X^M(DsEI%5r#%hTRP`HA_-612-(fNdU$LP|Z^s(LL@M1oKim4P iR*OaaLvhLunae_&p^`x&(t~>{A0{(}oL6GO3Fa@D$@v%n delta 1708 zcmcgs&rcIU6z$?ql$y7&w*gt7u-sB4CieVAUWSf1D-T}Zh-h(v&ZjhJW1jvy!zSPKZPq>~V z=TSux6=?}U1Cw8YXqPqvMHOmA8BLR6eqe`)1wQXi3INFm(;!8R;H%mP0Sdy5q@c2B zU_pQ>f&GEHQIXVHs8t|4%PP_wa^MUh4YOHTzzEube~5sFM(afOO*pNohA62l8QUv~ zhBy{vnB@vGj778D!6QL_W4tech{-Q318?8Wg3JTyTAcr$?J%UIMUoi>q^ z75mJ@j{Z4yM9tyNM#r}~?Lt4!Dx5mHrNR?wxLPOw)(b9>H2D(BkV|{`fR_?J$kh21 zgth$+DztTx571AWY_ZiwyVylFyN#N*QGvx>$FvPf$ytXfSqO~+%=ACg?2wYJ#I_D$ z+wKmLkGZ7^3tNVa#S+PQ-yy)!)Un3HzI6bE#!B?FcZBQkcw`U#(M?_z a=MlTC(-%l)2X}OwppOwfZ#>?20sICw?=Qsw 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 21be5413ac1486682ce911198dc8ec231828a2f0..96a568de5cf2b9e67ff0bddb37dda25102aff379 100644 GIT binary patch delta 1538 zcmb_cOKTHR6z-%=o5`!`gA|*zy-_S}tf3WA5XIKkif_gG09)!Lx#^uTnMpG@l`bSI zC>F*=z2nLU_!A^c7hSs5f-Xd)2!am~R|S=V=T6dQVx>@Y7Bh3sJ?A^$`R?Jo?|;14 zdBgeOerVo#H_$$+x576;m}4<9;uzS?&WKlw z7wTH-y3P)3>I}|NB&kS?D>y+B)sReeq)JqtVGFLHTT+uqmu4`M*^;ZZn>0+ABxr0p z^Q67JA~@J{@m+yLquCs$bT%4A`%qld(tSwFQdv`_v>U;5G=;`;dEAF6!RXkz)2EP5 zbFw;xuF2^%iepqthmWjMoQzpXBRD1H)6fL;GAgBY9CMo%ZP92<;*_k)yuxH!X0ODS z0uhbYDz8o_Wr{NTjDRX5eFA{e1_OCLYm2K9bJkB1HO1k)q*Fq$ORKQ!>uk`|(#x z%{skXgR4&8C6<&`yf&8+;aF8TgX+{@fO?c>ds;1|tx9VBS0uT| z@4L-5IPK8R93(>;*2jy0g)*n=0pHwUD2hfLhrFn&QO7qfpc$AAP4aO}n zdYzWK5RBLfpG)+R5cx#Hq!v5_DVWQKgqF!*mD+~V2t^{W473E+b(}=;S)}GO+1aF) zK#|BQ{S9MEodAVJV4|~We<(~Ylkq&+p}e%Xkwwm-JV+fDyM@Lh=rbG|4X{M%Y!;i! z7jC+eSWlE~)*YB;PXh;F^JV?v;;+Dp;OKG`e>Q)p?fwD5$}+rkLsX><<|#U?9)%yw P=_CSMNLemA+Qx<7%!Td! delta 1036 zcmbu7&ubGw6vsQ+%_fa$(l!!J(xj7mFj?EuLqIDERs^j=6k4%hi%gP@vum1-*~y`T z8bP7Lf`+#qgbMX0cq;h^JbCe|o=U3$K@jTMgW_z`rc3F;AD7*EGxO&AdEfV59N(C5 z*WJ%%4maG(C<4Dck;bcm&SLGo2O+V!jO7P>rl;}r2J@C>Ug*Su#>os~z^YIND(cDii=@1oY zJWCTO%MLbp*cqM?~xpTd>6vd&EwqajOph=$sQ19{NWE^aG94 zFEnvU;03whO5g}=3`pP#%1D5*;Iw$&!2_#7Z|I!O6Q>J2hgYv5`<(Pew2Z;3c1vgZ zq_yXX9W^>5S5Wf|t7Uv~=5iMETWa|xF6z}q!p7T;OliaXk*+UpnctB+Ee@Lk4;<9< z4xAefd**B^r|Drc)Anf>r&WLc2SB@hoU;v*xIr=P>b5Z+(XJjE{$YuJqcQr`Uc%(y zAb>v(p3nvSgrA!pUO!u^D3hi>~!sh}{TmMj9FLZ^`kYk{HW$%8+U i>n&&Vejd;z#UQ&i8>iGx(a2!UV1qhJ z1WiqRW=U!;lER*RkVTAKlRtCVXdqj{1-3;4oh1Pj0lH%n$Q@8uOMv_^nVH*7CCd;f+ryrplvPq$ zkUAyH2*l+`Ni9xB@F%BmXHLG(Z2?R_0z8sTjOm-T_#QK>IRcet*#U{-9?rbP+*FW; YVqnx~fh0PMGZcZTAj@vEu}};n0MZ!eQUCw| delta 334 zcmcbn-LKBtz&f=>cp_^DqsU}NHj#;o1t)K2729~4k&%&Q^I68rjEoB>FJx9^wAg%v zxrQ0WnS6w~W%3L5EsU{~=W@tT-o+)zm^!(hQa1tp3K3I#O?74s^1?w#46u{Ha!ch9}w z`OZ1tIrr|3M|X3fOQE+Pn|dqs>OykaXjD&W`DYvX>YQbqUo#52qlTYy)TkYNLV4bD zz_I@W3ViZKkPxnQo%}<{yD;A`aq}lyxA~Pw$Aa7ZWx~O?{d*&)NgyE0Wv!yr^Oh>h z;-Y9;4M7w|_$ii_1X->(l%i&8Mva}!ibmZ+BVUnahPpGbEC~o})-EWO5+f)WMx~2m zs9%yNg2*Yt_k*iYAMA@`0f~}Q)@mAMgT4Ndg~6`9R?$prO|z6L7C3X+dC{3xL$-X6 zMB(SyP@G9JO*OHUMio9xjKMpJhlvgO*zxS^SfQHHU%{nWP*ZB(mg5rQ9{ipXPTOrcH zPC83cSU@V;CSw+SbNCSXjPihyjQ7!mJ|*x>W+Kw^Xh9Ulp`H$&+MpZ0)GxBs^-Wwl zx)l#>BK$S5v?;g}>RY{j*@OI;gTCE^*LTri!O-8*& zeaC7Y@pt7Aif{|@&4PXvw$tNe3DaJVc+seFmfYz`M$v!zB)ip?>=D0Y6nQVnK00Wi z;Y@0W4lzHiZ^45{v$$^KI?oMoP(M67>J<{_?w+_f2Y;ky7yQK~FbRQy_4j-9wB!DZ z1iu}f;AU8els911t21DpGCP>w8*OE%afK|xc;3(#b_9&w_nV4Vrv*B1)hb!5W_|J4RJIrx2d~0v)SAL4;0|7mNU#1bNGYle;g9_#lR$Vn|y`MWLdjj?G?n-DPK_q}oi3 zG^PhR(?e7kJqIcK7-0w%MBqzAJ(%Q^&_fXAgCKP8><6o5_%fGs&$;LP=XcJ%pF`_C zh8e?y&f|-Q`KHS5SR&dP=C369Xi$y~$40R#77nSRNztDduE{E>%7K`bH9bQ5)H}3? z&=S01YEf%yo9Qje8nDgG!WZ**?>SUZz_A=R5snCPUKTly^>dP(;2PLK0KS$w>Zv!L z5XQn%I5wGeH?py~Ol&@)1+vgy+3ll|Qf%B5WY5NbH#@|nI8yY6eXuY? z4Hm5)_+Yi_b~W{9GI)0WjfZX@j;EYEa0TGL&4)?dw3CBk zAW(i%D0&J7zB%ex#hAW2s)9ImN<4|DsSGc^M3?Gb2F%V8#6Z;9k2>JBv$?8WNB!au zagv*WWtzxR;en{DIJm!~MlKYa6u4|7_0-B6_ls0}QKqB))G+nXqHcUv2Nli+)DD|& zzut`p5G*@$_aIs<>7i2yhQF(Y)(}MKS=kTO{*X$wPCtd1S?G|%lnViGV$wyL5lYCU5 XrzP@~VCqo^|yi+e4dE1;{G%FRCgcn>QJK`+9XS>XGPJw#fyb}c>(0ng^7K9!4 zC87n!3(ehNTIxh>H@GeY*oM46a4DCo=*zfPv`H?9t|H5>D+nRhP_lEflPKegUe#^g ztS&C=7MB}ackjESL?R)tkG@lwMcu}R59o}YA;DIaj6BMxuyNgB2g)$pQzpd`p{IxK zgfdTJ@hr_kKr%E9e=AF*pM*Btwl?ILqFyY}0glL$Loz%Q0c5g`lpUqCT(m5`qT{;1 zksu7m9!CenD**Il=I8_`X%}-YkOG44Og;i{o^wKP|h-z^`?75@aIHh)qMh0t-E*|Allg+pt7=QgaJ35{om7fxdxT#|n1O zWCb2^Mm3PR5?Lx}=1OZSJZhK>a;+FQlKGPlaO+Iw;pJpxo;;s797ulW^Ax zmDyb|;osu;P#N|jyEl!5=CqEL*;_6{bNi9jt%$brn*+GiO*^?r8`?;r7V#h+q_tE$6+~<)`ItC6WV0c=rAE-U zicn#t%4|I==*f#E|9}_oiWk8`MG&Ed-lX6~f0JyQr55)xAN%IL_j|vYt?c@gf8D?R zEAiaFd7*E{sOeX=+?`rZ&sxUfalGukiuxA@q{( zh0?ysDURfajX7ys^6qRPAAcn84oqY+C9O=VIg4g8_!2g)nu0Ort4eB3wxdN-(khyz z8I|R-W(vu%4d=cyO8qq8dWoIDENd3gJwSWx6o~~&u+YSofi0K|4_T#I-l(Y0A~l`w zD#QGfas`d>Z|Zo8rBGKFO|k?GD|y;a1CO1S7ue$=b^JOT5Qr2#pu_VaK=!qevaJ-# zIn&fi8mW1WbwjbOMEmXLyhC_VNZw}CElEKnctIA(I`w+U+&FgI@!0WGOKi)<`Oh#$ z^Pnw9@P<(#qQ^L!RlHx*8|(34TSc+6o-I4pJbv2IQ8wrT6>&jqNg(-R&miI=%_(nt z640J4K!dqi5Bu?@3Kk4qCl!l-L>Yb<2&(Kgz~Im;7`y=ql79jc>~@uH^ITW} delta 616 zcmZoL>DOazV4cb$K9RMLz96S^N(OuElnl-umXOqnk|~p? z^q{HPc!-6Ok!AC7#`}zn^CvH7R%Eo;e2Q6|6~>u-in(cWJLerqJuR)Y%$(GM#F7jx zEd>p&;*ugQO$A+Dg~{`IL?=(+VpqPS**K+kibe)&k1igyQj<-%9Ts!~!LO?#p5aa$%Ncuz>>>;b#`V{Jd0fXlJP+sq10W0!e5=;z6tj zq731NB#?tSVGfQ1@^o2m1A`=b@y=#$rXYg z3KM~r^swhAWtCJGq)y421mbd}q!uSb`I8?AW^whfrKFZ5X68&uoa`lJ28`!MAxS2t x6O5bZh&*CeTLjdTH4jJ>_i*MV=B9#l76YR&3nbB5oS_Je&8&Hwmq^4g0s!>x#HIiM 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 3cce4da58d2c89158b147a951e6a2ad6c637ba38..2fb55c82f7d9743976ea19709429f68ef65e7fff 100644 GIT binary patch delta 700 zcmbQBwpNR^fpw~q=tR~I0Wr7yqFk5E#Pp)XT)mR~n2B>F(8U-w9_C_XWZHa=@fsuJ z;>mpMicE$klMUEgH~X+0WI`5cVPu-Tm3<52(#csI^5Q)qIhn;J(O@DiCqJiGx(a2!UV1ud=K~oc- zS(2KIq_8Id)6&TsI1DY3E#v~*r~$N+r6jcoMY|w|_Q}GWs*IN>-)Ga3y_g}Ju{1-@ zTQoyD<7{aXP(K&KIg{%+WEc&BcA2qci1mONMw8cbaxp#wYSrZe>*ECKdpy~ZLxJ@n z$b`v!TnfCWk<2^+mOBQNI|O1)=Hyc6huFvl6kCxYlfeuY59Sig09wwToS&PUnui=t zJ<^Jb3I#>^$*IM~sVNFcl?r*KxdoLe`N;~3ijZ&?!>^`w3Mj}kq_d%&g`JRGMW6B#L`D^AdAYK^lsIZpZ>jbQWhQ0#iVi K-R3QVF^mBCi{m2z delta 357 zcmZ3hH9?KFfpsdY@I=-Qeo?plqFk5E#Pp)XT)mR~iE|~;g*G1LVq|35e1Y*ABjcjU zg6xWn7Mo8oyD`H!lTR_XPTtABg)w$=9*6v7RW3m>x17x4l4vlImXn`Y5*w?atE(`% zkjuz0gFSYNMh0gOM`~_CMq+Vh@s!C^G#jVX0tH!ngtagZNrTuHMx;nfpscS`Ju_{cx5J6aBDM5XRH9T z&vA=RZswMoynx3|I^$mtdwx<@No7Iml#Ks994V>A$xzN@F5WDz9=4R!lEloMDT$Ly wcrAf}u#Q)fiP3cP3I4~-Z2XK23|ZWhHwp{$f|#Af8Hzw(WN~l4C>+BG0I+6w@Bjb+ 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 e78701916847fe7766068274883c6ddfb9ef76c1..a23fc260fc8c66e0076ad552d19d9260a29fb796 100644 GIT binary patch delta 763 zcmX@5_F0Ryfpuzz=tR~I0SUMKqFk5E#Pp)XT)mR~n2B?w(8U-w9_3?XWZHa%@eU*7 z(#ac{6`2f8Ci}3rZ;oO)&x9<}#>h1JGW!;wPzQ&+Y)@=XW^qY0f=J8BPb`Uzjpb5M zP?)@))3lxo8BEDwkDZdi*~6cbnwFWDS(2Hb7Z1`qW%3lw#woQ^G%{E-*q~}e(A30d zmZat)DeQ?v*a~LBt#(uZ@fGsZ6bkYu@8Q(2M|J`i*bN#$N3fKn7NHm@j>Evo4xHMI zmnSb|k(!*(As~A(LpEb+hMc!(hIGc+(j=fsTnML5p2H!-Xfk;Nrzr>6A7VWqjy>Zu zn0DT&Q0<&R?T;tNb0}~;gcy`M`2(ZmTbM_N%)p`a)~IkmVrHANw*QX#K2x1cg5KUqOh5fT$( z_|>#d0YyrNbe0q&14HrT1PeMI+*Gm*fr@(A z^OLelDhpDlWEp|D94V>A$q4>rN$#A<{oK~TBo)sgv-vsqUqiQ*p4yu{p8kP*c|r)7a8I*T(Dfk`LJZu2|A7)Ah$c>R0; delta 367 zcmeyYbxMu3fpx0A@I=-QM)Ao7Op+5<@Pio=8!xgjGO}#G#(0O3ami#|c11>u$pP$b zn`2lmFd+*tGETnEzJ)P%au0{RPzGBDd+d~qX_}2wYNu#qu=e;*UdtiQqM)m*FnI%) zsXRzlBZIStBQ>`mBe6KMc*^7{aJ7M%$zBSlXvi1 zGqM1Ukl8H2_m`2;bTgm8V`epeMh1o~ZXi+I!4EES58Js=*DXD3hd6^}d`FZgmy;CMn(QKSjJ4GXdHG>VRMg&bw zd}c{%E|S8Y6ojo{7Tjt_1rT2$KTV+^fATd>V>M(aaDm;R0dxdQNoo~w5fyIRceu*#U{- g9?rbP+*FXJVxU8^KoXtB8H&KfkY%@7R49fK02LqY1^@s6 delta 350 zcmdm>{ZWmzfpuz{@I=-QMv2J}nItAI7lbf2USeZpWZ8U^@jfHt(#h8Bii{SM5QWpG8xPnvVIwI zex*qnVm&Sjj~XU}jP&9|kxHHH$R*1<6{zFTWJ5lg$rrd;CjaDCXO_-b0q6Vk2r`1z zO_t?#lg{|p!=9g%RZ>}yIwj+O4@XLBaWa%Mxt%wctA{NmwIne!XG-GaFT6IuFfink yWMVYk>@Dz^S&g5Ofgy_fO|A9y43;+xTP@6PVdZVRzV+nIa6 zbIy0a@7z20+_N`d5N3ooH>{c!Uhit!k;$cc6Vkz)lxojs_7AD~q)u#uI&o;$=j9`L z9dxY8hz~42Es^C&cP0MD26dX5Mg#QQy1C0N<9VA;xX8vnvvqOT*_gw=QTUXNam~Sw zc~xR3^eH_`1kE*)NK3iN%{!!|Dl=iCWC~{OaqbSS9$2{gEo6EL#%v<@2Sa@{k0a$n zQP-f)5#=6G6!$HhbwnAfTY#)qJ(`t09zS$g${kbu>+@eKT zZwe%5ocA&0!qO=g_{J%^%(_!Hz9O3}GB+GX-&$+mlBQqD?w5|4}BqMFY+MNx#~ zZvQf;Gak?84X3yN3R$$pJJms4J3MW1@VP?RPzQe$n*S6;d)AE}|Ig3^cJk_J9pu;0#33%^ER zME*KU-Bj@0O!pI*@rGefv(-Lll*Klq1CE}GWgWxWi4kSmTxaI-&coJ5$zjN@oP-`v z*b-IV!2cWg-zwz2%W_xBdzZ?)u2NnX%6q54;{!8~I+V2BLh#TN;UBUB>kTPsP)SPV zV^i!x@<~X1T!<3CwiBOr!uh6Jp6B7irXjwbhdS?a&I7|sLa@ghwYz!NATH=^4#Rox zZa&1r18+C(y_j!n+(~CkGS(t}9!F>=XO!LI2;CUZmXXDDE8g<}yimlxD6{umPDJMrW4Q8of;`;-M*?YZU5B`ceMJ z3|X!AN!ls_WuhoNeAV3PC~g=5{%+pOU7@9>M+?A9_3&DFpntD?{`BMdILG{8NZhgWVgO)EVK;u3BYJel9^c$U~kGpUrE z&ckgk?l!(4$}e;&0p+$?F`8taVl?{~6jfB~8ht^fY*s1<#kU-w@{~08V8lK;f;SL4 z?Rkm5;J3yYBcTDf7wG1#7W!#wNP1jPr8TU$*^D8Evuv*nnG7s zcxW8Evn*o%GLI*c1-zcmzj!{Zc9qBN5f7a?L-C zJQjKwO;>&@D7iR2|Ea@7EM8s?^Gb*d9JSL7zis^||c5*B;Dn=s3{rXr;;UL5c zy+}wMkw|z-hx=~d(yGoZ5-9goj5d>d8*3)gQ?MRyKXqbvWFJ#6gZq)Hr|hS%_Ayx< zExrR0*SWT^m;iCn4!k19;CFF7UZL@dJJ%8UhvR1F+Lrxk={SVZ3Zd*YM_NK7FsF)F ZQH4&NR!IbJrEDG(Z6e#}wyu1R`wxRmeN_Me delta 2514 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 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 a9c881f997927ec7897812ab62f69131a19e7de9..e74ffdc55a333317d74b2fac65985e502941262c 100644 GIT binary patch delta 1986 zcmbVNU5Fc16wXaD`P*dE?q-v8^EcUTOOoyegZj{QyKbqgmg-t)eA0D)l8HA%G86Kn zU1*Jc=tE&Z=^6E{f`ZUOt?L&0DlI}m5JW_Lus+m^?SmF96%oO6XEHNM*ShFDBy;Zl z&OPUR-??Z0c=GlW+?(7xHxe7%bwcd$CAmfx;W@_v5`|C5m_1X3j~z$J5!e`tL(I7l zI80-7fySwWCX^4M?o8VYkHK5c1J1h8qCgx|KK7D-p8Y_aJ4#kG*E8H?=q37chwh`V zSSQdW_>9ZgNfCbMCfQ%sH4!C6mAaQy8dmV_w0cTCsbsa27ib-qmnUd!DG z|BriCLYJX1nsw1nA4WvnBBE^sQ8Bn3gI|J+o-5=k2wuK>ESD?ha{LTGQ>v}DS~DwV zN~`UvEUox>e2SQyd5X5qcUnT3Z_C!QRe?`0!K(zzLZvEI**VL#YOAe+n$-#As7qtn z+f_mjfR?Lmq27m7Uf3?f|C3#YdKG6|Xyyk(rM3yB!g*gT&S@w^r-3%P&s2%fdr0!# z&KeCYvDs)$9E10R8QATAhU|r!e-``q zyninlhQf}~9it3l)*uEEn(E@s5(Anqz0=!t>&02>_Qma~ziD)XlK*cS8r&OhkLs6b z+s?EuwD>I6JRQL6W2hl6uuA-_l0&^p;9!Ig{A@w!ExhJ&FB>B_QNACT1;6c_=9r)y z>=`*sUdLk#6K#tl8`5yYth2BvO9H!6@YP7_5uf?!1^sB?di>lrY-L*WgA=34{ict8 z%`)^?6Xj$mgB#s2+fRI(6W#F!~hZz3`y3(`p5cx6znhzz<10^TbW|k;ARU{pOynqojJ_# z7W^6B*VTu;cynv?q}J%}l3cF~QvZxoV(B#BXv!s_#fIhDIxltVjrFoz;?rp(m4C&U zIox+*+!mbj#NxD<$-S+aOll2#5s91EiNi0P6q(@zcAHIc%WGnLy&V1p^$pi@zD+zCv z(%&9P(Nn@<&Ko8yl zw4Un2X6Rqwm@Bx;VMH(*$yPaCsu4n)n|i@1;KHzG=IHSzXrj%y72uJ>1d1RI|?M{wry z5$xvXu`_e)<)1=lmdIB@_lGkE!DcFI;!;~ zyP}#zhS2SP{KaP2^&mKX{O8a9(>3N z`j@1R{r?TQg<@L?^Zs^`Xb5xDsOd^%cDRpmlxjm)%H${8Z=)!WV;RF52Lwh>IPVMf zt2SLjG?j}}h~&G5)=@rxYw#If@x=tHfL2)b9fNneQV)HJ!7kB8=+a1M{f#k4U4V#5 z(%qAlvP8uYmb)UOhB`TrRZCH;IM?LPk7?qd`~iKicO8{y zsv`k)fZbQj6XWSNZGfGd&URFSyWi^M8?UgyXR6951J 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 ef191783c5f70e5a694e851dd64039783e668d6f..2b648cb16ac9db88bd1f974112fab29bbb7015dd 100644 GIT binary patch literal 7784 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 HR^9$L&%bDs delta 1147 zcmb7E>uM806wapEO=?SOl_WOVXe>pNwAlqkuq9MMt(202pg+8%vdK<+*6xkHG^wDq zV8OzGmYIUDAWFgZulN#*_y~e8;p`?cwN=oCft}0wzVCeJ%zUqY%%`98yC0H~@WV;f zYWkk0yV6ePaugyvbukseyr+3OqJ)+<=~G$+9_PsBus90wI)w<1-9c@S?RHklr&uD% z!znD-ii1p#!pWTZ+DVP6D1=wVLq=M%Ni3uZ-)&u?@mDa_T5*x>yiox|u%zwvj! zdb;$(x};DT>YH3uewCd4hE-=)^UIp!dUTtt3QK2#zsO6 zm)&DghnSC?$AW4Zie^$Awbv<*TaCxwy3I;07>LzPWi=04E?k4RIBr@&D;L^yJJ2^9 zY76dw*y*Dl5qXgwA7NAs9(jtUQw1i-yY%>6H`O3`kjWhACN~M;)%m-vSa2=hVLb?w zES8+k+~tx7TILNGg>MJK*hP+;B-7cgLIFI_c4uU{)oMwd){`t}MOM+8Y$MwxU$eI| zV(*Y=S?pENkhdHhBD1+Kq$F0zs`#W-gnih9DpY+uXe!JM=879W6#I)%ed$9XxVw8W PbTFE~%?a!c@Eg)k@(GAd 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 b71ca7a1093ca087c751a45c7fe7f0fc69a47eb4..7cecdcc4bf599b6981680204f393282b37ca56c5 100644 GIT binary patch delta 1973 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 JRD+{-^M6U!Q0V{w literal 0 HcmV?d00001 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 a5599d3042ab87e8959e7f1c7fc51bf939d32f2c..db83f6207bbd024c85b382b6e0f6f9fa1f048f7f 100644 GIT binary patch delta 859 zcmaiyPiWIn9LJk9X`93;HT_H0_NA5DimeVNUi2_5S@%RP4^O-q&Dp#2RC;R z6>^!scvNqC(S!8h(Ota=3bOk^8Hg};ANZ1NtisS79`Bp?eV^a={odPN_}E|{u`k|b zHrS_P{<<|Zu4(O+VcTeqO|9oFZM@DM^E>k4^9)7NlPzk8qTaw}RHoYxc+kuO232aV$6r=ccAS@aaT4b}`_>E3qg|Gx-2o!<@^E z)S&@NtVZi1?23(Ql8Qud0skPO(^%4Hh#Yr_kv~F{$}mXhsUqQ47}7z1Qi7!vPgP-4 zXh2g)upHT3feWWA3E3wS5`4*)le+LXKM`1Bp@j}aBoL%AU$ZFr>mW;vv}y;>;wYRH z(ArO;zWE9lTDaH>0>%}~FjRB8FRmoZXfU)C)wb0x>Nv<88w00nDM*$Num7K(@bXFe zyCjs|Y2%Xr6d)^z&*Sm5ekY825G80@&W{a?xiah01IL4Y4#^LQ&5c_fedG*OPapa+ z(N%5bP{aG21=ai&iYCXKovh{eDf%rnS(Uba%S65{XI5$k-ER|%*HZF LMAj!yO82Ng+7}NB delta 2935 zcmb_e&u<$=6wW%fW5>a5piSGjX(ml+Z8wR;0os~^hy+M&Ma7Q-s@f>stjC$1u6M2d zp~e!_<$%<}9H@3d;xFLB0my+{5tVvIszeb74pahhp(j*{Rt4Uh@y6?A@lJMsd`pul}h0rfI9;t=yD$FdWT4 zS8!aD+P?0ajvekz&x|I%=bF@Gi>s&8Poz(l-?Ys}oA`_pqitA})J>NfILjkWgXoq; z8oEKfxrhxdL~Kkv?1b>E+_V1%sIvi3fJhc43NK>2j%lpKuCtwNFj!(YD(^+_MrD=} zmk_W?>l@*k9?^+S0j#IHZDKff-NZyl!*OMTb=}vA=evR72X2QF-x)sVxMxYrbz0Q5 z+H>S>Mr~r+r0xVu{tR&g8zw^BMqo=$2t;c;flH9VHA)@{l71gd{{y7=BSln+{ThCg zo6WLcfXTt|(|koMhgb7Y&knz;yLyxQ)CH1NNs~=$^Z9@_FaRN{nZKY8cf+H@dphT< zq*}$)t5s628J6yOwKL}pr`giIIb=5`7xeN93_DXHv$JGgvPGOF4#Jun#u%>S_!y%K z6K06h!ZPVrRSrJ^QanrBs6JFB4wVv|8}2B;c~MvjEQ|V!mg)IX7{%IPSxl(R@*6PTiEc6fAHl!ncT2veMm_-~#fxSk8OL5uu9%BgjHyl|dr^<%J&NQ?hwsKnB|Zrc z(EFH3k#b@jHse-c6UW)E<1k=AjI<~S++JQ>acLvD=$?nEOibmF1uVJxjFpJMYq*-y zMjGpw0P;L^fhxwIDvPvSSfpC*NaR}WS*eGJvM0eO_Q9{R5Cv>MKa9aj{9yRn$Yeoe z0c_ndB2f!J(Q2JYZYfuUju8vJ&PMk1pkiUPFIm6l~1rXO9B1J3EL4X^oD zyVi8-fkh*B4MC{XBT;zSahori`Z8!;t>NqLGW8=do|Nm!t{HUoD)Bypcqin(NhJ%i zr9y6A2-m4O!AyUN!p_KKk$v9{l!ZVgAYi()L$NUik6?+9!y{I&IQXdhLe+9jl;XgH z1J!UtK5&Q0KxICiLQWKlj zSwOr|9_w?41kFMP4zK3+9_1h4M~Satm{c`-aDu&^*AKA2Ttg7Eh2_e{!nVb?? z~{AsyAzi@HmtwHTlxJN{w>Tz$K3{w z%de=|3t-=?{UYbSjF)7!sNL09{wS8#xX^;ye=jDG1qqk2z~rKf{1mcwjh}`GUw}V!Tjp1~0I>TomV0f%Zrtn1!!5u=9!%yL7u1-B8{tiXa85Y?(^>x#V^zd%+u$B&g z8riveV$(e>bvd>A#^}w#eP>}JUxq(Vn}Ajki3mZ8RpDs{j7KHSy-BjS=yWF9bc)a<}WcVYr^bf|ySmUMuP{H;mtiFTNVT z9Ix<-uip&3$ZxTjkAR|OT8`l}H@+V8c_I%jC#WaurvlarEzixCn-k`wIdwf=F)Mr` zv_gj|Q~aK)JFQ%-t>mhdN?7Z%(DaOp zF~58OrNlws4zW485ypCCK47lrCfzX4!EsP-9N=y3(QO4Y^E9Ic7W@%LegS-I2N`gM zptx2ePhJ!-B!;tsAw>*1IE@l>g3qe#Bx+Cf4JNRJ0#_v_qyl=u2`hXC;;#1qT-t%p z(S`zn;+YkkRN3x2SAw2S!8wg30rR(5OlEotyF8g7?JMJ3KX|#Z{mA8pV>KH+F-)V4zzW$qm~ZMGmLjxa=%F5je$*m+1`R}mDSp*^ zJ68y~0FB$JdF`6?bG=AkCwlqoY5J=SP6XN`!mkx!?0!q1C|^W*;uJ5R%q@RokmaYz z^3v?nwDn$#n=hEx$h_ak&1+uI=c&|xw^0HuP#60#=43o((5JYwT)z0fTT*48ej{AKAdz@9uo+FaUqyU z*Dse1LO4N@3-_J0ZcM!R+XXL)PEV?)PI7^e*|Gu4Qk&&T2W6u)xl0A+8;FnY8WaeKnrZQ4;U*BaA(PU2&BkAF3FdUT(;b@WHgr`(B z7W%xKLT%4@F3$zpLEM$g?nUY$MDpB6)KU%-OM)(UrXovn)BSaJD4i(tTPk4rWG>~E z!$?UvNCX9$?DN88`yZ{O)x)_~QFE|EMu;@yZvH!J+D9;yX}Q`LHKg>Qh*`0x)aAgT z3_1x`dv5rZO6A69uF*u=sO=p?yF8%gi!{kV}0n z{?3IC`t};^sswpaob{Hu$0FpUg#mYe!CfCK5xPeJsL1NJvRrjz6#PQOoZKLO$o2^~PqA5sse2jHL60Y3FC!^?`B9e3Gt zZq&C9WmFt@_D^Yr3_k+xC)sWb8=lL=8CA#8RZWhgf2H$Myke-%h$RYnUo4K(e2NnJ zkcy@437mh*9&WG8!x1UNh#1kNM6X;4Z*4puG8t-RPlTuSN)#DsIJ2H zZdl3U+Oe;2#^_;4(2XG;I1L) zCHZ2k^};(f+En-%O(CuX`6c*-q}zjcLbgja45X7eiMjkQ|ocu<@` z5jCwC?>iCPNV9UnQPz>Rm>;rjWqm1C8#T7QG^K&GQcUiwRQ{rrIp@!&S6#kJ_r+oJ zzrV9EfT)Z1m}{W&r){GQuDbP9xe(HFIAk2WaQV8UEU{k%43m_3w1@^&De|a%g~;~3 zW3KRVAqpSu?Vy_7+gT@g6>B$i;dzO;EZN%v`uhhepM+khZ^ryfw_ln^ZANhG>XsYZ zyV#mfVIbV;p^P*xi$+Ov9>??VA`#?=t+ZQs)LYgm>+i6;k_0#7LGK zjuoW|3SRwj--bn(tk}0OKcr882+~3K&CI9vo5WQ0$%v+exK;}523>t`(3d5jK=;g+3L<1TT%4( zjD1=`w!*X&+JDQfy+|Hc=?mum`<*lQUq8FK|9MBuEi$vJ>HhW}ct23Dc9e%)p;*b) z&i)7&`84w+uh;v1y-dDRq%R_iV}r4&y!guP2TQEHh>*maQsP4KWjTS*epih01N+?I zRWi`k1Z-b|W)$efT$_#}o1ZS1pa9ERN;zWv}_hTrN3 z$V#YC3QDwORV=x);QZPUVkB?La{HmdNfMWV^Lznj{WsfkXr39grUaM~wAu^IbQHi$ z997)C0LvGN#hroW%>!&a0G6*|>FvWZ`AApPwjY%D!e7AwlJxodxChh7cnG zrQCjKP?E$FlmnND_twqv%(s+ z6V*a5Us(-8&u0ccl!-BX=g=bu6&?Cimc9Ab467ApA65T%0^~OR&0%bs6;4)C!=l8a z9{PM~dAZi}y%s||mQic&)ZD1s+re8|ZFyPbAmo*SG*U7k@FNHo9NgxRTp-f=g>dtw zgDNENK>WuglG5IgBGgyp`^zM~=y^u*m6T5!o_sC*7$Wj1v>b@nLi-bX6kRFG^OWn! zzOG$9oBT;_TRV75TyVYQgME+;AzI8Y3c08$Eh)z2lJQy_-FQiR*}6DJ*9l+i8NSdi zl6)8}(3UqX=xHYzZCiy&#uAgP$)2?0dz~6yS$CefMr)7o`BvmpAD@`83n(<&MkjF?Y;m7*`mYYYn;ypnX+d47xsbSbeQ)Vn=A%*bu<&Dh<< zV>NkNwe5)LK>GZwmmOIk(DWvSC8;HYKR0%wQVwPjFEZjkm_kkZ9M?X zB{{+zM%DH}yJ>}{CSK_wGImTBBu$7LeAZ_@&kr?+Z80alI?Ai2?qrV>{21!IuvLhT zw;&~&;1dRGMjh~*r!oRnYQUH2U5r#hAJr{VD!#?%Ew>ki8gpA7)pJm)h{E>z7uH1= z%$ee(#;D+|nYwE@%!i#xR5Zx&1uqJVTqXpUn4j&N>0@C(FbFP7ZiN3}B zDCrQuP$o>|h_1LfM|V3B8rWcQ1J#vLbguH_K5Kctp&5*-R@jF695?tR0;Y{-A6UdP zG_=#Tt!;E3@_9W9JuM&NqZU9lXCV1#8Sr3OF@RPE=DR3vg3W>$fpy)0+@BBi0u~vb zhVDI39YvYP3z(*^6ewwh+LnbTJOR-K&9DN!>5w9clv8Oym}`6%$^0%by0wN`sf8d-(x+E zs#1tWq+m!sOCwDkvQu#I(`Fd^j)266#Gvk%4mG)oFef znCxmdN4=K^Hw&+BYL{ak#~gi)Z<$IbKUo zOnbIvqNk<>$IEzwm4ykhdNb-F8B?RQ=zdP}z%J0^wJf&{45W!+ky1qvHT&qSE`ita zbQz7*ue=!pGuOH}34pmVBbwZ3B zp&(7^q}=L=q(d0M+uf$;WPlK)C;A36>PmrQCEZmlS}gEKzV$;&@F)9uB{L(uiWJiF zB1#bG2W)wc153lEI7X(PNXFlQ9bS*0ML3|N4uJ);2Go8_5xkgXlEUyzHY|KNW4SFS VG6*vrT2(bD*(G^_&fut7{||^xK_&nI delta 1885 zcmbtVU1%It6waO9+28CYG1<+}CY#wbaW~Us<3rU@YHGj~wGu5xq~x!g>?C)F{p;>5 zCQ7wFSekml>bZg_6>AakvE)IaPeGAFYEhvNr6?ibyCBsEDR}P8&Ss-63O?-pIp@sz z`R;elo;&sSgnU+hzp4LS`8>Sm9SBqJJg0u)Ma!;gW6l9ix|2Q5C0#!}jdoLL2bZNzxG8-_o&zHH!WGw4=vf-0$7nBg z(Z2uh`ZM<|$)M|_9dmTPN)OV-J@0e@X5^2^8>sGqfF~lKLESq15b15BHS1SUQmHP{ zH8|nvAg_xRUiCagK7cJ>tn)&K4k0i}{0+}@;azy(!b51E2S`MFBaYG69PLWq_)RstT-CRY|F4wUpCl z^@2H~;4-fcE2E?EaUdEMR)tL7wyKzAOQXQ0mY$9PuRUyVshZ1a=3-8-z@)Ep0e5pz zH?=$mKKv#>!&6jdhyEp+GD9^*iox5pFn63^!?Nf^)$mQjoyK_Jb!4 zKMH8f@Zg3xN13Fg_*>kLX^U+tOw;%@8u*z{%a>@TqE{MoYx_t2u-1G)>bHW78-0HZ z(le~=o`w4-+z=eDhDTbcgTD*Yln9)T42(8e{^-5xl0oq3RL9011ogu;sOvzm^aD&| zUhyU=BLIEj9+(NYOH)=6a}H9I_eV;I8<8^Njfu&sczOFVqRfSt29RI20(3bj)dMIt zN=TIR{0ccrtRp zvyJt9DC$Xg>0LZ;5GchH9=d~R{{+vsACeg#HT10R*}mv+mV)btULq8&mv6BxI-YL^w0at+Df*V&*%ltq|!QP zK@@0frJTO3n|yX8PX2u&l!AQ(}}EkO(~Hc8C*u>ruXeE=q+O6U$k zdENdTLEjlXOcZ#heWcrnOQP029daXx3EbE`H54W!jYgyO8Q3fgVLCb(`W8=y9;q1dR< S1P)G1k3o*mW1E}l7s+2dv|I=P 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 4ea4342fb6ce1297c28c474ac20e50462d1d7619..e74a481925d9b8f9302b4c377bb266abfdfb6a3d 100644 GIT binary patch literal 12232 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 I;HX*u57U(>@Bjb+ delta 1834 zcmbtVTWB0r7|xm9+1<(RCYxr{gq_XqY%bl+G}$1CmSCfSCKTHSYAcFu8Ya7woE`U) z?#yBqX;UABMo%B~A5jWI1AXzSNFFK_grG>EZ3LkYrFdyT(I+3Iz7)~_%wDn)m4XjD zGw1xb@Bhws{@t42J}h1mKlmc{o_HCqcn3PDch05~bD!2%EF0im@6e||1_^P)Z{)tf zHsKdvf*gW?bf}AJ`9(duq>nc~;DnTnG#2UR$5Hf~Mn6~=dSP3*Nshz$0U6d^Gr)6o*wZ6+NzL5&Fx$?`U)wiAmybWX|T9d9=-=gL|Uk*Uo59W9R&y>S6CE z7cjKFj+Tj!8Pe7nS@u{m8mnTqN=a!RaI3| zYOZLhBg)vAa+>POqL$H>Tvjhyxy77bPPcQF!;Z16gi9(L9(*CA z`V&k=l0c;Ad%U79Aw!(+kT~GjnDu7}4prR%$m8Jj1Pxf+BQbs#G z3`U@@qnk`~jIY(nnEGcj_;xE9MywT+sPa>6Qh+DZvLgjkan!MAEMh zO$dqrT41ym-F^yH3FRPoG#u~09pAJ6nB$H`?3lHulpY36utZr$! zyzR_rrYs_5SqQmgP*XAd=SoCl8%wFjM0iu!$f`T8@s}~PaS|UUllZ9Q`AwXD1~;sk SG=cCOI~IA4&TLfDr^sKhyG}s> 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 d9185b17c686458c9b443c9397756e075b457a16..7c5dc804ab0dad72fbbc224acd9e739c0b1d38ec 100644 GIT binary patch literal 12342 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 L7w8NQn)Uwx+#z6` delta 1849 zcmbtVU1%It6z<)h*}v>2WwS}l{$w`4yJNEB0dXB2~@Bk21N?CpeaS9wA6?X;)8wBAR>6~>~ACwf)BfM?>%R} z^PTUUbLZ;PYtzm%&bM}A7oF$f1J`hXxzZ-{7>;9fO*a89yGF14(n*K|{v>y8#+R2I zadHq6o`d_DoLiyURXWjFfZ`eJZ){S{#Z%}vhkkH2(Ffn#J|oYn$SLPg_X{jtVGpy#RsePasPi3i8eRIKR|q*zp{)v&LUg3={4ySB zm1VY;JZqjZ6U=Ei3UZ#BmLji$CXAAI`P+T$O_`0LN@Ms-rcEA*gP9zxqa6$`gd!nU zKY3{vmr>V8gIo}lV!KQCK>%lDxs{%ey z%O1lfCd}8(nxeJiTEQ1sYyllShMVR~Ox6^wJ+9NrswRDpVaF8PKn8fA-sryqMUvw7 z84$tij}rmj4;<)Z4f*Uy$VOl@6o*ej0&Mz&-4lCjGC0#r%t-CwVrk696pJgOj(W?w zURIVXI!#$*6RH=61LI_lQ=F}9F|)T8{J32UHHHTbSq-PeO9j6Lddczje4AimJ>NGv zN65_Xd>xqY6Rmt_y9Q#0P^-0R5XtJ;zv``p+OQosIy?aDU6PYGn;j;Dqj0Zlh!`07 zzzX{r;nq3XS~K#x{?Xvc1ZzB6syP;lh1$&Q&PR~AL28t==GJPA4|$HkdQC4km0{Dc zzjM%ql?B<+KjG=_6uHl-dhYQUVf79t6+3Ns%5)`L%*#r_ zG;F1+Y54Gfu9b31M$yf6!-ZSDTB4?5r)wG0^4I0^D%DMO8=)+Jtwb|8v>Eff;VD(8 z^2KZ=hgx1U+_=l+WKBcd`C>VLSdmxDa-J7b{Q=*eL?*ZKX-%BdnuE4^;gNqI zcflw`LOybvw@yvqt){@6?E+s24FuR7)cSf21ZyIUOc4<#BT;zZ?tDm%*|-)hJ2sII zsodB&H_}Z=s_xjj&N{d=JlQim_BF0%>af-&SXriQfZx7xyj+LUWrz#;wHP v#P*79V@uk$PdtxM>QVgD3=f}e4yfTLK;?#Yjm43VWk=M<+5E;&sprT)hOS&% 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 0000000000000000000000000000000000000000..dfbd18d3a4b04bde7d58fdf8ab2382a56a9e30a6 GIT binary patch literal 7572 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 E3%!~Ul>h($ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a031d3e0396f884017a1e5fe32a6eb001a682ffb GIT binary patch literal 9347 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 U67oaBbR9h1jkYa6-@BXn4_L$g%m4rY delta 1595 zcmb_cOK%fb6!sm@!;WLec^WcKJPy#<6Y~tAc|bx`2oVMIlDZ-ZPCRfub%Kc<9t&Dp ziI$=vfX+Y{AW;_m0muswl!sU#AW|g|T~|e72kNF050RF0$M(d5if$@vJa^9d?sv}l z?m74TuHX8EW5T(Ip|ipXqQV_6cJ^kKwP=Gqf|TcopH%Wwqtsytsfna^82TDi804;T z#tiiHVbTdnzO$Mp(tEY!K5cnv0YCGta_M84y%#d4 zGnMH84N@m<`X9L8@EMY@xQ`1<>UPtiDcVLy=0eb6xFy^oUt5qL#d_f=`i{UAv74N+ zY@$>zOj|ZZ>L8abTSn>>E?Kree8DzaWIcqIEJ}1Z`i*(ij8MUFsp^-961m)@Nu?pQ zoQA)o7IFhQWcfmZE*UauD?ZU7lV!!CT*dug!B&?_9xznk~$xe@@Wf4;>X3$=?_y>Z5Pb(OY!9hP$5I9PNegDwWz9 zRZ&$|!ALSSmQz(FqC(KSKvbj3(xnPK^RB67h~4-rRQdsAeRWp_bsL`1sdQS)!6Q#& zt2>>_=0;LEZQKOY7HjOIfvS3Zvn8nBK^zX);2Yr95(qC0!cUF)8JftZvgJuMTIFHmPuIk_?KXQL{vLZzRC#&~P=Km6 zp0X(L#21@W(~0@C!)5;>_|q@IKmLXqtnuSgHBq}tWAs13?XE&w={<0%x{Et#XWLuU zV)Ea$VCHfy^lfM;X=}_=;DpUtQo!cyDk`wPx*bl|ddTGb+Ig&f!mfQ~T}#*y3oT$8 zL}mT1$5am?JDZL!855Nc%_i+>wlC>I(aGCAI8W=^HkMS9|-cJuZ(qnyJxSUfZya)xFXQy%AtGvP>cd}~4l*;;PqcY()jl+xM3eT_$h5fu%=-*7}FS&=Ab!TtyyvIdz8 zM5}YDPK)Gs7DHTzE-sODlq6ZuDZ&NyeP>-}uHciltYa(cK@rrulY#Ynu*?1ivw}}J zhnvwqw~MP)1vf0XxrTqRe`XTxjKP4Lk($Igv@@w;kPUS5@ZGWI~do30X*~SS@25Z4{8P;eQ?L zUA7|bR;5W6aw)vm*@t&J?_;KLt9#718FEHmaT5%Hx(78MRke)+8NTQmT_@g2GbB!`jk{DBawHU;#=mk)RI=a4yYvpRGGVWr7ZN;`AI$2ttoy8a3{UxGYuLp!U zze+(X0`eD~tcG~7av2N)ZDsTvAaasifA3KM+(6=PjUbN@g7n&zW=J`niK)si ze2&>wP!%f`r1(Ty6=y(KF@r!}%nGW~L_I2Y5C{v|WFnT3)g`)qn9rr*t2MhAN@e2t zq@bcJiUnr0gQ|+X>H(pJkonxaAgc=ya+Cgo3|%pWmHY^%xhE)m>1 zdBhy(qbs5WgD8`aJaN#g<40{B-BJT~^Z*H7ZNv_;a0;B>9y>nQvEx*k9j-Dvh~KSL zZY?&`DQe@|48h3zsd!d#x+BE?Ou!!X{-j$f-9dinrZ@0!9p~ArL~W!{egF5DTtWVX z$|W)=UcaBq<}xusl7u)nyU3;Usq7-0YR>Q1nw01Nb+p?Rs%SDA4ALx*`pDbXA5rnQ z?$$p2)l#aal=3jVN;$_>^4iqOgx4t78S;CGmz>x>gwWQRDK#?(dBgBVaBDNOp=f%|jo8h9toYTqFxi U67oaBbR9h1jkYa6-@BXn4=+&u-T(jq delta 1595 zcmb_cOK%fb6!sm@!;WLec^WcKJPy#<6Y~tAc|bx`2oVMIlDZ-ZPCRfub%Kc<9t&Dp ziI$=vfX+Y{AW;_m0muswl!sU#AW|g|T~|e72kNF050RF0$M(d5if$@vJa^9d?sv}l z?m74TuHX8EW5T(Ip|ipXqQV_6cJ^kKwP=Gqf|TcopH%Wwqtsytsfna^82TDi804;T z#tiiHVbTdnzO$Mp(tEY!K5cnv0YCGta_M84y%#d4 zGnMH84N@m<`X9L8@EMY@xQ`1<>UPtiDcVLy=0eb6xFy^oUt5qL#d_f=`i{UAv74N+ zY@$>zOj|ZZ>L8abTSn>>E?Kree8DzaWIcqIEJ}1Z`i*(ij8MUFsp^-961m)@Nu?pQ zoQA)o7IFhQWcfmZE*UauD?ZU7lV!!CT*dug!B&?_9xznk~$xe@@Wf4;>X3$=?_y>Z5Pb(OY!9hP$5I9PNegDwWz9 zRZ&$|!ALSSmQz(FqC(KSKvbj3(xnPK^RB67h~4-rRQdsAeRWp_bsL`1sdQS)!6Q#& zt2>>_=0;LEZQKOY7HjOIfvS3Zvn8nBK^zX);2Yr95(qC0!cUF)8JftZvgJuMTIFHmPuIk_?KXQL{vLZzRC#&~P=Km6 zp0X(L#21@W(~0@C!)5;>_|q@IKmLXqtnuSgHBq}tWAs13?XE&w={<0%x{Et#XWLuU zV)Ea$VCHfy^lfM;X=}_=;DpUtQo!cyDk`wPx*bl|ddTGb+Ig&f!mfQ~T}#*y3oT$8 zL}mT1$5am?JDZL!855Nc%_i+>wlC>I(aGCAI8W=^HkMS9|-cJu~`giTnFc~#+VR4NDM-R#OJx|b$4AMux7ox=imE0 zzxVe%@Acn_3kR+5Sm z5;l))r4h?^N1hYNFn-aamH{u`#Fel8ct>Z=Ed9+|VP=&;LTjJ@5Sgx!L2`IC9+{zE zwSLdMtC%d?I<4=3ZjpXw8)rULWdDHdlp^!kw=w4w*!*tBM@LVr7W5bh%9S~C zJbF?-AxDT+vd3aaj;BPiEEC%dNIsx9?Hie^5F!}-C`I~aWHJE%(HR+&!bPrt{|UO& z5o3NrtFDzbR+!!u3d_3n%c4Llt^^h}u%Nixj?2s~`h`<$nSw#A&aU2#Y)B3CxJwHe%G%6X=k2^#lp3hly5gZvJ-K(PVR zx-6@^4KjMsH?)O+8ZCM>NbF!dsu}|_>0C+>vVc!nmn41G8>D96AoCWkF!6@E0y@>g zsHm=%s`DkS$SiWdj`B7rZKow5;dRWln%ohHJ>B)|#yd$ei z!=~El{`M~4;ikI-NWR^+qd&rL2bX#d9;2-aGryZouG_(!(xbQnUX3WOAd3ABD7pZ} zWyP3(Q@2tbx$_uxw1ylS){)~EboOh|8in*nfy{_uKvJIE@+xST*MNqJd*%_ep~eh+SWG+py3BVQpeSoC>A(u z7&abvs((uA{3e~1S|h(jCz3phqtU5h&sxBQ#_Zi@{sE>lW@K>yD!2y`A)_XEIwV`V zn9p+sk@lKn9Yh^WyvM9m?t+URu6qbezz7${zXS2nPDAW=?b+TBH=w@(eo?;$T^mR| zsDML(j&!nBw_-)^s;5MP^d^8=CdnpnTq-9Nbv+{;8qaeg8J|^8EbSaha+w7#i6bgI zR}nd3RzteE^?WL=x2|gD58IK5aZ94jqpryz90^B-EOXK-srjp}ia!azqlQM>7$)$UJQI`-?N`Z``pdAsHlz5D;QL&Az4B0WR)UOL}< Gkog}B7z>^N delta 1659 zcmbtUU2GIp6z-kfncZo(D{XiCH_*;(A>AFef3!e<2&ECL(RM*F@<6xEY&&{)+-_@U zD)a$G6B9HeV9ppHj1dxFOnk6u2nhywAR!@uA@JrC^4x^9^X)nJr{k-G{8|31<>oK>b8tay4^m&!p`z`5OFwNn0AGlmi+?o`;)Moog|qL& zs8=DqFzfBDqFUx1ed=Akqp*QRZ);=W&|ciUhPYP{2P;YhDm;(K2y})UVa@YujDu+Rs}=bE&`PcZJ4ia-Qy{6YCM^I6UBQkdIu*4?>tfgT4j0CG?YvuC3k| z=FhvfJ-)r?LJokO~fy1JD+3)B5p9C1XD> zsC})?$x-K1Cl@bg&b3{FHYE@s+J1d{mTG3&EX}L&zh!|RtK;M-i&dN06l)+RKRFAi z*}gz&OgK~>U;j@$m|Zul)U?20h#!`Wb~jUF4=#n8m@Hcse1H};u~S>W-|csWjT!@R zy{eCVzzRH(7jy34#boAEF^waoHM~f|b1Xt#UczF8K3784LEWVq&TZ7tiyCGN8p4rK zM6rcjuQ@hR+4LE4mRxQMnBq|veJRu>xP#$=Uqi>pbxfhB<=Q$DTgGTDDS`^QW`iML zO?YE@f|{7g>MHyet|t#!DK+_0eqnU(%Z4*|`K5?}(>~rX8zRmeLXb3!Rfdn6p<{({VFG8Mk95|(4 zY39nxY~M`Euoh-@$B^04Kc$VyzG&6ogooHSBsBuW$_I1nKfrBNyBArxo5*<^OGcP;Ol zkOOjiK%&xKqS*=+2_f}Rgb;_eN5qHJGYAA+xFEGf0`c)5pz_|XcRi*gM=T{?zj+_O z_xrt>*?ZNGPRp0%tHt7h{H`>~zmoG4uhq5{TXAXfqD#|G{Ji#-?Q+-g7Ny9|ud|XA z^Vp;q`)RCqk{IPBYqi4PF3XM3&wlzzwDTZO%imjUlq?*0#zU@}1 z?3~_QnXw`LGAVmmnwm|`?egk8S@EJQeYa+{6jfU$p(81;t^zOsSE1w1kPzp-<3i$> zz+RwdXpzR~)H*$}-l+qM;lX?&2#NTujyv$=rSLMm%Fo6oCmm_eRp^sYund2*7u^n> zqpx5AzL72RtFf|lg?}C^MHiR&&#@Ly#nvPfBG<+!qi>*d6P#c4(a;88i?2(UVZF$2 z#%J<9m+pYeuklJV-d7;N-cs5M@T0Xw>;rzeutx(t4{;lJ{Fr{DANCqG9&Ypl0CtTZ zq>H(roA*YnwF%gLn8e(HI1JuzX=G2gsh38WIkL4?tL=2#X4Bg= zwc6I!LO7i2|4`rK=5^do1$uvA=+jQJp~Ji=4RI7kJ-{N~VES{=NZ&4S{ugpS@dp+F zdSRQ0g52ltXRA37gx;ek&csm%ekZwkGP4oPs}&RwP2u>lN2Evu3e1kM5qP2nmcuVd z$2+O%t}|b)qJq^bStc(S`xyeCkk%cuP2N-*I(WdzvXJpBrSZ(!(G4AqwT5ot@f8dO zP4v#S{J(r^z*SRlbShA}E0#XGYz5CspnD)kDnQ?xiL{e|88eMtvCyCs5ZvFP8BbXD zY>y+tp7A+41z)HIP4tOG8;CJ`mMx-_FGv~)J?T5Aos2iQ`i?$$h{S-`KqK$DpYt5% z1aZ1-19SShFf|m1e0>UqetHb|x8cNL#05nUcL`-AJAeF?@uC8tm-kyhJOH4D%A`aUr_&DQ?5sghDD z7{DWa{27GGe?nTTuFz@RlqGl_nBj%waB+|X{~GFvJ_R62?i&F3eE0_NU3N@%qOEV0{#%MJM{hqkb~jeegEJe2 cf0mQR8y`a~c(Y=-aK)k}zzOTOQ~6ElA2G%~VE_OC delta 1170 zcmZux-Afcv6yMq1nVr>jEx$-t*R>DaH4TCuBvAk3l?3e4;}d)+hBehf2XC=}U) zq;#Q=dnjXrG1VmYQfQ~zY3+5g3Ia$3i|3?b*dFim!%QM04{A}(;!-x1xsD{reao#I;^VV>uG|juB9T?poHTVU&Pddw=D=oY%Z)q5W(_^p|&OibV zKr4ix4Tg9^Nr!{!jNsSSC;bTXpNQR&`_dF&h#Z%O_zv~thSG>ZHK)@~Wr;&lBuDh3 z?WA;vKTtQfRGj6>yKCJGYO{35BXcxftH3R2W2?Bz5?*?fv+64R=Uiy($@EkqQ zJhJ_<_H&?kV%^SM78gYtWR}S4nv?43Neuu^ohNx6dC{!LZks1;8kJRP!31LKHmbXv zsdTxiT^044SlG41l&AnF;EPXTCwxWV9q=;$iJmVg2*p4S~}k^Hdj zSfygl4cX_nqi!v@Pyc_eNd*hhaZPyf4zY675ym=1@#1ZhYWk?IiD?!!Cw3M}*|9toFvV1~ zv^=qG#64KD3j1}Evq(YUpcoO%P9m2Ou3pDwuj4B(#0c@%HQiCSy+)uyc&WpSZikgh zhb!BM*zB9`Yly>j-0oc-zNjBNmwqa|@kCPU)jcqY19_-a0L=Xh=VoTX16KBUJTXr|nAcBI5 z;vOusUd4+?sTz-ZsNf%hAeA0O?4c^vgY_Vu6n&G;FNk~Co%iN@-+b?TJFmu;cKa{* zZ|)mh@L!E?IiwrK1Dbl;P>U01iD8lXsfF9hzw(~@FC~P!s&COMLU;H>Z>lS^x4PmD z`!7}45_5kct6%kmV`0pk3z|)9XU}LW2L1(g(lM1bsr2M}q+Q3XqU3loDWSuM+>vM>dqz;>1R^= z<97J5fu);jbNkYW?QL%D2}-bKXxXx*8WpS>WTKs!?nLVD)F?U(61+Kp3=4zU46Jtegdqad z`=V}(1l~QRaq5L^rU0W4w~h!=8&Um?vhg z9`k{2o!{u5gqw$@cy+z|H$uOvpEs|0x32(}EyK&SLnXCHM1={riHVJCCQZS`V$0Qy H=oI=3oCI4_ delta 620 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 S!^eh}B4eD`8`qzE8~qJ^ei~r_ 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 3795497f2253f56b63871e65369dd4e327f41e10..2c2e25372b5dd45c6d24d8b803c275ee4d5d4bca 100644 GIT binary patch literal 14778 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 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 e387abf0702fb23ff12921c192816df4e8b692ab..94f83fcbc61c7e1ee3c91c0ac33ebb2d4c1ff44c 100644 GIT binary patch delta 1422 zcmaKs&rcIU6vsQ;mj2k*(po?$rMp25lp;TDFdB`<7=z-;1cN}uZCTu1*)DdsLPLy_ zXrjqtf>ZT~i6(mRpuw9a-1TBY;(-&1nkYp53oyRfwlIxK58Zul-jDBm=FP4hUOw); z<$U-iw&1)Qj-A$W>M2>ck`vSe*TtM6&WtWRiT=xPd;M__Ld?_eh(Ry$x}9fwl1o0v zs&mW2KF2&_@MG`S(2IEds#u7}xg(sMHM|_h;RQAp^~U4EjHp|F-N+?4ZOV|ftT0I; z9t64=i2Kd<1_I;agq)Sh+SsJ5<8DuVcevVTjLC+m7ICqCu6U!^COOSSbx-`x9}Rem zk}CzP9@AlnITgS4HR4ykKGcIbwzIhl*=$lo>3~N*E!9gkcZ#KA;KQliiKNm_BBIi! z)H2|P$bF?qkLk@!3c4;&$YPF`V291(%l-y*mefDmU#d^CND=4(ncLf-GNl@#Q~J5J znJCC_aa+!MlNfC%1vL}9q#u-?VSFvv>K-b$!9BqkuJt>PwU!%}RdZnG)5>0WY}MEP zdlDE020dkNN*rGbG}+sfZg_U0n>4jqt7Gny$9S}f>zM$?+E(DG5Ve7G~%N)S3)pea^^ zDdfZ-g6GjEsFqBultlqo0<@75W*&k$HAW^THNi+(^FAMnobb{=YZR3jl~meI^}!sZ z>)`vLrcS!X*11qsOqNQ)??W;4i;zrGvm1roZ$Ju&-jQY#G>j3N@V!!omTpHz(I2OVt5yI2 delta 1025 zcmaiz&1(}u6u>jt-6T!htj5r2(`+^dH9ICjJ*gLCy$F>agkDU8-83tcF=>Lk0V@dg zAXHez^462!#bc`?Ig2d_{sp~w(4u&;>Qyhb&SaCil|nDO^FHQ%{N9_l7dFmG3(}MI zu_b8{DX{HVmR=lm53fHCAtXNEM1Hgk--R?f+mXc&QeOaBd<0L!Uq_a)it$Zj9%D6& zYjYOX)O=orTqKzebCZ7CFuOL>x|LI#Evwd?)9XF2qFjLO!85_ZO1oY+EO;3n#RK)4 zXvP7~^?VThO`Pp}&Cy>tv?}yH#0?fqn)f^K^f@Ev$SL*iUkYL$iF$C72C&)NY6fgdlD5I&L7l0#B zpcM%t4JL+j5%Pm1$re#21Xk2BSc+!E3@=!g<0)%jOeIWq8nqeEeW*@_x)o<>9-hgg zur41$gx7kd2c^0<6t4C{p%japgNM;F5@0iW6}{rAFNNHzE3QwO0cPW-N0`_z zoCLbl`^Qh?8&U2NM_6wXcJHBRED=^vztQ@a!q(rsP&6B?aV1Y?4r!XyL|bSh5baBY&f#13kN zrVgP=Ls%2zm}huHfKZw8${s+P)|Vj-BKmA|lf%9LE5)y20ksE}3 z1Yd{b;M{%fn;|jW-NDV!TOXR@lO!2zdi3DqcBwXK9z|XJ{lgJj#$Bq*Y&c+@m#~D9IFC%%8 zvAkjfnBR}x1ZFE$L-G3eP+U9|^&c;lpL|>=@n8JCJ>&6UKAw?$j^CIYT@>e{;FWla z=q#CgsBifgCRM?tnngW}lh62xU+bD9pwuceC*Co~74GwgMJplX z4sHuq%ecBL%q($18y#b!*uaZ0IXn&T2~U%C)ITu#3G*#Y*J*}^ID$#Yz8;0qKl>4d+fJ$oDG4-~l^q)T=GnCNpbcb#%xO~|SC8)M&w);7@>wC@s5ifIqjm71!RP4?r`pGO`2IX1{_ zV92J;GX&G^VcvA_&orsbSd2j9be^@JMtnryf>h!zHKcCsT-rp_u!4)PT|!8?PvV;pv*>k(#6E0yUd>&Urfh`) zA#ln0=44n=`cG@4iXumqfuXb#ljCu@8#K9J?bT$;>~xvnNScs~jhk6B3U(v(-x56G z>JVS>NLj1_K7$`tGCklmish(z$;`7*49|L+f_AHEzJu4Wk%9uq8Z)%Oj|~P-O#V2A zf6FVtui$f+GUayKZB+3NR~<6Wx#Ply%kECmgony@)WS3H>mgB81OZ4wFi}Lx-ePi# z&lTw(99GjjJx*^4)bq?y__;B(L$UG-{wnv0cIFDQFntemHG&NST@dWD<_uXPiKSWM zEQ_+=CFpJ(uV|LIInKMoHa{$pmvOD)xX_3&Uen85ewfem!DG_r#L3G2B85*Y6Cz6> zAGTIyo#!o}p2B-oVJWrVg9aC+SY90#32duQ;Dzcoaff-g-_FBl*cD3MxKjNVb98!? zz~aA{%?>_|Q|2_dRj(fafo<=3m76npTO+)|Y>(j7H^FnH~+c@{0*2P5l}LRMOa@x?Y4UVWyayu9@5Nf#_u6Bj_mngo!##R> zbVM`t4}5g?X{p{nXH0riE~BJROREEeriw4Thv~nls`C|#x?GFzm2Hqkk$@~YHDx%4 z)HB*ZUy5J3zDhCuE1Q>W7@09j8Nu|Mm@8I(A_F0=;sS8PK{#qnWieZ|`V0;Q4u~0? Q3;5|Cp9E$_1V@7K8z>?(ivR!s 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 fac226eb51cb9091176a942a56eff50e17237d7e..080c25bd9f1c077ab02e137e419c4c25138772c3 100644 GIT binary patch delta 1228 zcmaJ=PiWIn9B$fVUDBm>x)tlz`nt*1Mc1i_$iSQEL?(`Tl8xFwuX~A0JDW^aMAUeWZ*$W!8uS7ogh1@_=iBv zw@yXog{vLg4i`)MAvHZ!O6$pUxMbqFiTT@G|99@W_dLjP-pXrkh2!qfN4~gs&p!Iz zcRu^`L=$!NwGCInekfZB9K%b4reo33|=*ke`*|QG*joL*47AJYumw} zcLbcm%RoNI3g6}yzADvFd#0ZSNH43smV&6CXGI23LX@B#Pe?cMu`Bd}+@6OC^Jj~? zj$xcOrr+v{$I(own8k*Hb0||rg;{;3oGWHgJYMtH6yuB|I9LE}gO15v^ta&e)b7F- zOe`=HZr{7BX1>Tr&{Ozm`HLCNEYDzDd&ah{Ic#LzJsl68rHjFXoEJu_yOId~;<%rc nzV>Bb-z&gsORyN0SV-%b-7w%+*4T$@28qL8tu0lCIw!b4zV@0& delta 724 zcma)(!D|yi6vi{z-DZ<*Y*$J!wpli4+hj3~Er?a{SX6}m1GSX28T+y(wRWQzq!15+ z;$FfVPaeJWqC)nj2u1O3?@_@Jq$lxgi@r%r=t0oS@V@|Lmq}e=nlz9^hTo4n>YcE%}fRGqAy%h~wG zNKM8BM3w~v*#}}2V!kW+HNeh>C#3DA|gGCf5o4p(1x09rkx$SNyu)bJxKK+ zD(t1qdiS7SOUX&Fh@xOc!CNnC4>h13T2b*J2)@bg)~%NAVfW4K_rC9a@6FsFc|OKp z=kGr1UgB>jdrnnq`bn)YTPx_ftEgt8`KhIQ2lv_!th`EaT(GguH977fT@7V|V@K&m z=(wOG10P{8nhg)Nu^`uaorkEQg_lG7z~$X=w}xp{nni|<`zC^PJ@#&~TTz_i6h%HE zYh_cE;mPGh8%Ogt7OeIXn$gOdsa49;bDCk=)E>TJU$e8A#}OBk{0B3wnMn5mt>k|y zu7U_Wf)zGVO{c$vG~E`)xu0}JRJwlP6#iN-;w~JyX*+_jLGzMwW()V?XW$?PkS_oc zEK!{+7=|{Zp_*Sd1b!SJT~;gJVIu8ZAOJeU$A|1dpEeg`lIF}Or0_k-*>BYD#ee#vtg#R+X33?kWqUYkH98c%tXTuj*G8kWc zgHvRJ1C-i-xBm{uu_?fT&-19WEiL< z7Z>DmU9T>bDyp2xcn4%(jB{{6^#PP%(6{jvGjhP4JYHtn?!eNm8g5Ca<;Q@vqLm^s z7pll6t85u7AwzZ7bW5sI+&0byX=fzec-r=xV_KF_F6fA57;x(d S`*Fv>8MuICt?@EB#r**y=5+Z0 delta 664 zcmX?NxI~Awfpw~+*hJP2Mv2J}nItAI7lbf2USeZpWZ8U^@hKzY&dK|k6&WoiYjao# zW+djMrKY5(>cbe5b2!wcU>rR-!vmJV|OOtC#27Bz3jLn*jQ);JZWU%%KVXB#|&*jMY za&jS;R`l}>>5RvvNf}~2ObQxPTBksC0mU+8GMF=D{W9eIfU=xD9I3el8HvT2#Zx9v zfg8;Vwi05YSPwJMek2qAg3Oor4L6@r6G`&%5I zx{S<|yLdbqRVFKN>rCQhRZwJPU;wI%1*&5JI^`bB_6#$Nwq?4t+jiROvUIxz7Vv_ih8PnhB3?*9f!fQdGh?SyJ6&}{ zSZ^_rI44an(OJ{<~)jxi~7fbEq_{b)uV6<}eQn z6YJ5d#p3H^saO>Ei*mac5JeGI!kK&^P%LWQ2I-OpJF970t0Zcjo~*U2Ehal2DQ%}R zxm|B9Hb|wdwaLF}|BRMT2TaL(%9Q*@xIvn7Tc)lmEm`lGVD5O&JZsKMZplM6vnYz+ zBdW+fqB@jDX*6*-A5Mp@5Y&9UN4hGkgp%+<=s~UtSK{;24Q^~qN-3}6-(pP?B+rMY z6&ByYt;zW#r>P*VEYQEqVIOK=wzPgDP;XUrU2e*x>rBFh%&f8mgRO@y-=Q%No~6Dl zKelHKjqZlkIow&*D+RRK0Ai%Eu#At96WC^!`;2;qR5awKDV~RNwBY;1jss6j6~f2q zW>^PgBZ_#(20`^w356;1ACx=NYu8)X{AgfBC# zvh0i!8tpGQI+^EwpaBFMAT=5QR90YB$Z~U-^{#PAFzBKb9HPHI07T>cAAaJ(`e8hU{nf;i{&F!)4H1OLDP(up+xK1=z&(e}(@ZOfQF zrp#IlehVDqfhp;I^ThD{Q-;fLU$|u+o}9|ZM|n{@BuKVqU(zb+(oGin^XryvEvD4LXcI%`e)|SNfqS{$%Xmv4{+n7LG zYOL#l5x>I%b;x=0Ddk(MC$e@9!;h9{>0F$8M*IaOhF7a8y`>H@l{LEcHHcof_rN7P za3=W}$HVUEbpOZXU5<~t`d3poT{E{(tgPchH~j6YN~npBgI=Kr=X5EDGhbQn|C~L^ F{R5@XCyD?7 delta 1504 zcmb7EOH30{6!lFz6ev`_ous8@Xr-2MiUNL!3JVewu!5+NDDp`^52wS>l70{tDw0Sv znGLyvhQ#RBg)uQrG_G*x#s!IPbfaOxLKnJptZHRX=wM^$ur`i4cwoPCE_2EBj}rY6)0OV-Y6DWpu|=oNghuz^?B{f>gs zYHWIm-znmkoil$b`8R@S1R9$HLhCF}rt#dwWGI4Dn&b{5uvL7vzZZBxn8Ndd!25+* zJT0{FfdCIb_qz6#)2l=>ijz31UxyP3MdTAR=~yBjQglxURtEgkFBXp|nJAu!C*t^z z&JQY&S*+oVqTn=qtaJ!vN-UM0h^6tg23pHa?V9G7SoP4(1-b2#WlWR3XwRO4t2{~! zn6e#55g4oq@F8MKPI;UxnXqJ68Q!nm(sH=;80zdkH>=asC>U`u5za+ES1Asc*@ok7 z;Wrk5s^UlE@WmE@V6CmhL{g0)cxtz{WGR%W_U}eR(XH3BmE1iFN~-kB zVHl|HK=)~F{dtb7daB%d^F`R0-RDAp~kX=n2KO=Q$g=Z8~T2 zf5nO-eO3+jX2O0&XW#P|_QSjGjKfE_uvdq67sx#Zfekhs2BA*`tzDTYelR=xk6@8)D;*#6x;ttYoJgbL5rPBggt{s_RlRM7@7&uoWa$VHTDGLk@ zlEz2`nGtya9@g^}bPO+(K^P;m56J52&b8f^-mwaXmrxiUeSY=8BF;T}zQ#PYZkn&C zAxXzJ(_tcMM5dd8uQsvNlPm26tU0{2ct&7gg7cJi=FX46IOm0=lY<{NH=JoW&1VRx zYDt9U^!yCgec#MH9(Z}q zbJz1I5nc8?2p$<#HF-qjvl=g_Zeq>Ax34ch3Gd~1y?EzC$X#4T-w}FBUsuK4C;RAH z)h(}GSDdL{@oWn;*@3z24ZLKL_DgQM>ibs6ClWag3!*NnN+Q7xa-w1+IW=d1%`f^m z_^xcmxdm0@1XW=`qLSs5yqw0G&KWAF8ya}@RHz;MTiW3j%Z@}--hYSv<{#d* zzyXJk!}Qe#)@1stK1zSoUqC&yx1p!C8@XI0B6Y%FK25^Jd*8D60U!O@l$@73SVkLJ z2MK(T8M8C%OrNmG>$7m7o1!pcPrORr%PfD| zWZfL!kFEo-A zt@p=kvo=ctook8G8UG|Q=yQL1U`J)1bW41hNYJbfG@AyKscWK?19%$rJ?&xfYk+wC z(3B0&M4)Re(SQ`KpfKfISyt^)J1Y!Ef=&jK$V&@>3G|BTc&6G87Au9&R||&(k+yNtK3=*uHG(S3SaH5gW+WEla+)e& zUB?+Ny~JL^+)_prxL9oShVGkVpJ$+`8T&W259f$SOjh9yz zaWPov9Dxt6Z>4)YpD&0hNtKiw&(jF6YK0h8@*3JgmXFe*A$p04G?P^XjW(cE&7)IB z5(~7bifJn4C^|~HMVe6x%YvriG42`_GeR+|sZ>*_hC!|g*`i353>`s4VPrm~l$P^? z8ow|zc4qS8YkL+46sB!kBr6+Ow~F#jvHKc z2O#E|A+u2OEQJ2`EwUr>sEH5imcKsO^sTMEA#qE(K6v4d!De?yyB#s!T0VNeYna&K zc-J&puZucvua&e`&BT&8EGVwrgJxYm*0$%Hj-;iOHYeq@m^lbZb8KL~I~q1&5sT~| zz8T2F^FssVab4R`Roe|SvGv<{^`WZB7;>0wm^?bzTO{!if!H)8;UsHN>Ktfezga)~ z37m_F}^NDL+yH4A#d5UN=u4d*gBG*UN!u*}?jquo`S8bBiva~GSi%T=?TkDWQbY%Ht znjn`wY(23Nc$iJd&!rZ&C;3=fWXs8cIz6tFl0QK#|9}dAlZpz@NmYQvwlue<+S6*N zWSm$!s;Z7gTra1D56AK($0@p9N7KY2B4(;gJfAZ@dWB!+BRGLu8$Mm@e5Qzx>SmKC zJ+e;Af9epB(vZ=q1R503u)-W!O?(n+*f~Yr`npNq%fR*=Y){1( zJEIJ557oh-2+ zE9lbg5~q2_rF@;!Q~;P7vAA&*+^7tIUvm(r@qm-20YFu!OiIM(*8}?{&9&e&<<#<~ ztyjv3JWkV12R}^VYwis4Ic;m+9q$$zM}@|))jL4zV5n6ckEU0ESpZ>x zKSym?J%w_~HchxE*k@^fC!W9s!8jopGsgJ_QxYaFU=Tys9u1wK?TCc)CrcHJ` zeGINi7=Wc8>0grcdg=Stl`TVy;BMR%`Dx11pxMxM4{kX_7_NIb3zCexOFugb(r*T4 B1#JKT delta 439 zcmdmKctee~fpw~{@I=-QMv2J}nItAI7lbf2USeZpWZ8U^aWM;H_T*YNHNKS03wMRe; z)kLky_c@gqPftF`r4@WKLptMVhD-)?hOA$PoL^~DhFFiP!lQ=Cgzapd05P9p?D`oNjHFdKJVj&L}L~Kjj6+yNy$~u{x?3rWc!pvmd zJjkvOg-XwZ+j9gTT97{W#g;%H`qo0BFBWWl>;23RXMEp9et}QpBu?S<8IBb?_79&0!$;lT5PDa=R2#j)2%|R?XcT(s7r~%4+g9koZMBu^ZVLDaoE@-%Okw#M``b z0~g7hh!JKW24sJJ&gOVMNJIUsZkvwg)fSO$BH!)S=8^8(?paY*^%O?x+nUqXbVIY$ zrQoKP8UBPByVDOFiT+KTS47?E(U;-;PmF2&pbtVPUlKDUbuLCXIml`n*5bmli&{gq zA#IVCup!fJ=s;I%Z+Kmxg^lyW2i?&Lb6%QF1SmA_bUBrs?o5zij_@96{3-bEJHtEp z72*l(B5|O|lUbSqW=&h?^a%S%IqbWK)CF@fGGqasrV?TusgRQhuM(25Z$tqBX-W;>}`lGTV2w0iRM*N2YN1NnU1|rdfCC@UEB)~sLyb@pS`rNFG5_eV0srm_ z{=5Q0r>Q5#z&_oAi&<5XMBzvHl*KTWt0D>Nxf!$vYQsf%Hab#xMaP^HN~LI#HmG?r zB{Y42)sdaCm>F^0WFDRa(dC}U8m3= DPgL^W 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 dfc6d830c025e55d430bc6317a475e71728d0805..b4129a1fa501b80488677cfa6aa72cd201a9a9dc 100644 GIT binary patch delta 776 zcma)4L2DC16wYL`&F;o*X=_6@sok}q)~YFyf;|k69=?5{9qtrdz3S)?)g)N`Dw{5ddO}F$I(-5~3oRD~b zFpW^MdxU->^bQUMJy~9ZV_{u(aX?mifSajHDo;xNaF=DTJ1OD+(a=fdP!jG)AJ88B zk{0A>-S$F7(=;f{MMD|?PK-}l_@V9Dq3wIdBRk+bT<*kA;$E}`@_mig_3n4TgCj4*JJi~9Mqcp#c52e2cr%=gGV*&`RWXGxxXZC2R~ zWn=1175Kt8@`+02aC*DK*u&QiN4#XxH z?hPprfp_4QGDVnfy5_qsW_Cvx6XkVXYf!(2g8*AvwXJzgx6!uznx^X~YyA^5SeN9T z^C*!BswPY+=L+OLsWizIXO5jQCoj2^q2D>~9=<4BMW@WVQQEIMVY`82=Q=MX3kS7P z4c9Uh-exx0Tj)uJZu-n`l&N!^iYfIe^s+PEi|W3xw8;*g4Hkk(_DmP^5dr)84sW~& Oh|b=Dv(Z(jE9ei!p#f6> delta 481 zcmdn4^-7Jkfpu!U@I=-QHd(j)qFk5Bjl7a#8SJrBGB|r!LQ*SArc9pFgOJ*IpNo-^ zW%Db>cZ`htCf{UMWVD$4huK0fBQYl}H6=Y&AI6w$%c3p?@(bgj38Or$+LLeq%;2Yu;(Xbl~fi0UHrd?BPF#s8OoW=!dt}E!s?=kR!M-uK@3y~q1GA1?4u_}%i% zOa2)-N}gV+)-1!W)^yl%AqC! z1}W%Ur$KwjLpdZP719^Rn9pV-)j5CsdlnqBc2m29b`ouOK>DI8{)ihx@<1p~eH~%@ z%+lZ!xh!u?#~LOm^c^Z7j%CPe`P3GbBQzb$f^>@E=6prd)VAw1A;wTw8(r1zSnaOv zG*wMIp7y_(cne4|&w)e&lly{FLU&QMgBHy^{h>NuF&zW7`A#E}Prk_Ob7qACe8Fj$ zUbhVc^9l<^9pdINCW~p8yiKpsYw3%Hke~bmKr7@j2i*J`g`2C?U|+K97Gy=39)!sf Q&oR>IZJ4X!WVQ8i^2}!LenKF4w4_J8e1s0Bt&zKn* zSvJ37e8_V3RJhah=rN3 z0fumWa0bi(y|UDzlGKX$+|0cAl+^U1)YK^%a^8%Sl{vOB#!kM$AwSuYOORbNGp|HJ zS9cPpvI^Kw8bD8Rq~;c6Bo=2D13jkMIHh)qMh0sSs}@kD*5vb?;*6&!-(iuOyq`lr z@??f|#?cI!4CV}3zYICQ(xeQr9(9FB4U>W9iA`yp0?~}3W)imoiZ@w-Z!w3Ky{Hrkl 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 15530dd82e35e99ff477d4e2b67c48b485ee541b..e4f833f95207a42c0d60c4c2abb7ecf753d8b595 100644 GIT binary patch delta 1932 zcmb7FO>7%Q6!zF&|F4}tJ0-T0HEBrfIDh?tDh()VX`uw7s&Hu2x~Y?FI=hK~;&qZn zX<9%65y_YE77!zy~> z``$O-yqW#_;9sM{%fef8(uVLxi*&S5$~~=Q&zG{f{w29omM@&yxYGV_aoeZY+6b}3 z@8o+j4zD}DAY*VZ)CLpIXT)PPN{`SOb;Z$0?jU>V z=Z_ayXu;763&Kfqj`Q3Sx>`=tGmEsBo~_f-48&dUl1m(N%@r0d;@kyT@W+zWL@!~a zv^YhVldtG&dJh#Uu9A{J|KyNP-5DIO!Jzvw@(waYTi3I+E2GnH{7+_dR*Ufgth09;R`c zq3vS?=SSgJ?^oncpssnndjl1fR#l9Dg`BuRoB z{*JgWm0~7T<7uf-EGvb4cAg`K8v0-~;Pr=Q*FRp#FwtABpY{ydIZ#*TitrtLPJV95PE@^as=`@ZyZVSlS>*}VuBUNX8P?#^OHlN6 z9PIa*f80m4!;)YuMcr))Rrc07cz*Zx{2iO*t)XGADUK%^mF~CnZYwIjgY>BMp&ll9 zEq{NthmCQtU$6JE%??EDt#@7nQg2yJy|dF)R{ScK-XhA*i81Parpvb19jWe4m`0+O*hw(FrU!cu%ku5^r+dRAL7stQ~=Bi8h&??@1HYYO%4ZlY!n^@Oq0zXZB O9(hLSk7%g5cczC*RkWDI->*E{ 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 W;$)pAaHFj}a=yUwYv+dFCJz8JYVF$q 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 1dd34eee4c9275a879c2952b7dd6bf234053d176..70430b1677f8fc9b187ef580c16832a355a4edad 100644 GIT binary patch delta 1565 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 NO~o#)3;I^s{V!`TLiPXv literal 0 HcmV?d00001 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 38c01009179c24486ff03fdc442e4cd54a0274bf..45f44e1b98faeec545585c3eee5fbed1488da5b4 100644 GIT binary patch delta 2234 zcma)8-EZ4e6tCSRj*~cD*R8a)>FiagX`1z8>ZH}k*)BAE zC@={`rHi!g8eWiqH+W>~!}@%J2kC;rZ{M=#b~`+{X|xTZb*5^{aC_2SOQLl5%zT>m;NN%HOw z(!L~p!oKP?>+TY8{W)e#WQWEf&x7D zyv)8-f6P5sD0tQ@s8G-sb*t(Z^_t^bwW?W3>AKEtq~=YP_Lb4PRkgT(rDA!0z=Fv) zgV%#Rj^hMYmIJKPV+SxRmXB-!NH6|xAa*l#dMpndF(0{IYm%)s>_YmSG|XPriaGL# z)YF4U$N>CouHiwPcq@pK0U!H3TYQ4_b3_jBL6J#7Y7tVUsZz!CJZs%Tu9%tDRX2-g z4CyovHBM%uP@I7CK{z1k6bdBl3vE~`LIp)N2$dM5p_K_bSv><}r`YXGGS0JkirveO zr_Xno+2y_y{UqIt(abr?QOQJvlEIi{39TT-*_`&Q zuH~?eSF^@KD*A+35=8(+`_p_c=4mX9MrEfSP{paA;$j8}KL&$i0=|>W!6u#}zj4M9 z@(VQXM4Bcb!E&t>(6j7)>1-pQYUr>{s~V8M0ZJ8c_;m*bG!_!lG&sTv?Re(y+suGAxVBwIYC+|Fl=s@c!@|oeu(GAiNIz39*W@; zL6D>Uj!{ZA+eTHN?Ma1eijpD=JopGX!>c;knyH-OzWKnZzZ2)f9d0yk1NPtyAddrU zyJI7Up*wD^ggg(G^|iWQ-L#!L>`dJ-qVq9GABu@aAcS86T5rw7C-{rgfPFu{%vizyM`_0k2 ly%SdeNg6yPRjVc(5I89wyt4^^uJgSC+!>L__TnUJbQH7%z4EE*PY|K z;fnlHKG;F?2EAhHFn5RCa>(7Qw%+MmgwfIxf;W+^@{+3B#(koyxT+dmr;dAl$LMu+ zORZr|!%&ac8&O6>Ek?iB9PJ@I0nniXxwn=FK2~-Cm_>*N?00 z37dFLKGOn~Xt7C4O)iMIVbbYS-8O6n%-fmVhX+0_{%Xdnq5Brc%y+^l|t{^Unz#Z-~DcubtxM1T(!;+kdH&N2_F z#ghS?RPZ>Ls#)f0k8?)#WGZYXi|C4AEdOV`ya#6-M@7I2yWFl+_UZ(7kbdJ}7X@?J zCtNrs3{n*-PefZ_`Eiky%h)aDf}@t(wlgK4IpXXv1w{Uz_&O%=V*huuUA@ zu$T^;+0#gdoAJUhoBMhbLCIQ9!G z?QVDVS6_W~>eQ+0*B8FGvNa=r#Cj4rZm`#~Y&!^TmSked4!h}q1w4Bv+j=8=J!^`3 zY~4=6H14uY%)p}SxV{~;AiI%?H8SU}pS1G)iwWy;Hw=c^odu`nEZ)ePPF*Z;m-|fn zBu+gS#)B`qRzJ1|ty?VSZWmFIJ?u=p0s2%6_n z%Ck9>e%uZt4mKsA1`k8OYjqvgesLej2kpmOk3HIY?1}c?lTWmLx6_VfGNrZ?m$Mx> z-?jRzU|gF(NqC%g3B#lfc02MfMu=Dp?l7Z>i4=t1rCt;anby3d(4P*cklyM^zPzCk%%C>sZOXw}nBZO9Ip zraRJfabzZm{^xCwBgKz89Ih&dpo!Ez*<^Y()~ehnBw{qVjOJ71Urw#ZO}j?azgqKsf(^AfXLVB-K4uu1{lXncS!{Wa02Hbef;A!Nu>v-NaY`4p=qla%B&jkB7 zZWQ`>ll1eZ;Ug<*Z0}@I< zlBM3F7OVoxThWrlcaMx89p|oMuh@UsxSQSyJxYunlTj|Z1GdGF3HVpBY$N!c1UhYEp4?Ld1A4YF>gDd|A_HuqI8%i z=6()S)n-*zAD$RetEKvDRpic0%9D3+>~%#fu(6wC?x6?kD6Cept1es@i#}$=vE^%) z-tsIurrNPtlvTtsvLx<0eLZx1Y>IhVu$YbZvDX;w?-2IYg)VxU&7niH9ZxxPR{at&T6TMjR7W*0co21+lXZpA&2H-wOvyT)-Vzdq^M|6< z6j>F!)-(g}Gn74VENN6}tj~=&uPSoWdl28JY^qPgbgHKE&XZFe_A8VyJ?!2#?49?# z9sKiJ^ruY@7G(7fM|PrE=;Jdr#($-DjT@iQC$ODUIRh#7M2^~5@?N39H@)llHwh|D zp;a7{L)R3VLjR8ny)sR^a?kQLUUM$rtKVG6Dx5w&-su=}e~s`|26s5`Vmbx6r?*@{%vHvcb2bJ>p4pIO%PyT#(0O2P_m9fRY*?epvz8_k6B|7{|Px! zh_7m<6}W#oQqVn!%8z7Kst)v3{RFswiLCby_p(;WDY4F5AnA+;Sf3P(0r=M%z?x|V z;NRRofZzM@0RR5}0IXH=aDXQZptj3I{7+?_#%Q-^;!81f=F6?a&O!4tgF>?3KLRIB zvQ_buBi1CFB36<;IZHmN{`VA<>VLszbnaWJyVyK;&WPd=^WB8mMrYp$(m}M3iIj2f zoFpaGW1@|k?;-T{xtW>d=p&UJN43M9PkKIa)QtbPsKjL@S!0f2Z*fSN*L!@2H;M|2AW-6(&%AZ8HYV~CTd@%6S$4pf{Xzme+8B*5h_&GB3Nml}wn<|C*jHY3UdE4cVDQDgY871Z!@*5l1#7fNM z$)V3~F+aOHD;kc4Q^x#tL2R%+7g%vzAxO&91)Fu!KK!lGY@e1)@XM?LQtCX$T9GQ1 zy(QM%AWFH3y^xR=R#;J_ytnh&9eFxoNuC1_?EPnG_`~wL=qEBVctLtFbU)rk+!>q>H0t7dIRvMb}N+O{|Vj z70IJqEINdk=~ zi3iA11^`PFr&4GhE^maeXy=hfp8%d~aj!e#o>EHp=L`3=cTAMsWpT@8yeG>*w{JUq z;G?iQw>s!WHdf+Sm&93ca$pX-C#`K^+vkfwVQ!6gATLNh4&GH!>|-T5D#==wQDjA6TXSFMcjR% zD_(Djjr^J#$m;i$tR09s7TlssVq!_j3HmRnh*85u=isJV;7j6cASh6aLsdZ=95B&c zGI64kO2@M@8Qyxs7uwFC8)qW3U$)LPQ|UKC_8imwDzDA`a?oU(^DgfL+g6QW4$OGOY_W)jJAHD*-!sn6#W&9|W<4kRCY4xkx@j-zRZ*FSPEV#v4j$7h5=d`!u{l7xq zCA!5xVd0i`qutolOq->b0q+EVr1G?87|kLvTJ46hqc&-Qlu87fk>wL1oB7vm_PKD+ zzH8^1Z0VHN)wW70`6uf;=VcZLs)2|J|&yl;t6L`+?mT>mRcjCb8KS zmR{k2pcT-zTTC?@rj53{bYj#XTHy>3vEfL1WW#EKbazp>zYIQ9!bSWU3Ca>T;Xx&t zMI-6My(k3V_qA(MyM6`C$<|M>F^-nnWj>#{Fa*pG>CF zA{FH|*S7pdO>f_BX}11Gw1K*2ZVr0X|{&~)8#b>>HWUU%DJk2yhfJv#sS=%r|l z*F5c-?}lERMSKbrZNs#6k2%rhh%XX(VA_5oZa?R*FPz_049Nfl>>Yo~v!>Qc-?mkk&FCG&~=2pV>Mbwu~u0V>&w9%_&{l!#E4u8t0(h zJMeoKe&31T^CUCW=9xm$HE7Fpy096)m{=zpXYIVQmWeTtJEg}0!`076{Js&Csr9q| zBV%?uh_ujnm$8{CbK5urlR>a)0JeQVt~JywQjO}HutX4g1;D+(T6Jq=yA9>4W{2$J zw(H<|hwb^|@w@;d^}itcC#NAxCyrvw@P&Nu61%5Mg)u%M&z1y-lt(MrV~rmL_nUnn zm`32oXg~o)@y-hNs_pjd3w~cC|C~n?pLthVL|S_kqdXEr@cT`-9{`3vFcrA2-PYO$ zYd*dQ^El1>8~5JRxc7nP?t30++GeZS7sXWC^v!^6qVpZC%Mz$IbuG~Rzzf@?UcU*q zFvOomfA0c882E9zirZ17(Hlkj2GPqukI~aXWD$A~2_x5ps>^ylF{lYeiqm{hRi^VR zRXU$1olAw!)3671Z9Ho{M~ZzuQ><}0<@JQ%6>$eP3z%n{aKjupR;a%r*h--#p_}%R zZ$B;g5dm>ZB7z{UiqhOLIkMASzGU)$cDVffkP~TnV3D9NLeO0V$O1a^M2SYOg3yD- zuE|LQzEIDcD3+jITWI#M+ zgMD}SVEmAKP$l1nq%>TO&zg>yLGsF{n2`)KEnc#bUaJ@h9^TPHJ5Z%&3PSRee%SB3 zUZDCt%?n-#-2l;fpX~Ds$qaiN_Nk?T?SOfvsVbF1ykt`RVYn1SjPrYF>pQ9KhnV4S z72W=%pbnCoj6mJ~GVN9>TX+XxU()>FD>{F@(D?{mW6ZI2J({o&DdPB?gppjM4`?(s zukj-Qbj0fvoZOa$`0Jd%?>Q(-KH!B}DR;;tJq#_8`J0`PrwKUn~*8HMAXP2xhZd#te>W?QgXc~j^ zMVZDwIFZIL67`C8K`7q3kN%z6n##-2a`n9&qx|*tb>eM(UAdrONmEzw^OV69DkKmE zcurB(sMpumMer8%(o;7SEV{58((JUcAQ{k_I{&bo0~FI&D1eDBDf)^YNyE>YPH?%@ z>B9=uP>+OVwyT&r{KSOXJ-<uC$V|IujXRm&U(>f3WyzV>Uw(mF4|57lBJVBl6ql ziF!4G&pZJ2jO??<>mtw!#pfkC0^yS2BA&CMKUW%h_%e%zeu=2%crgbOyqVE*!%8o+ z?m(M#ioA8Wxe^AeNHV^^IuYM8)a6z7WwftaRFbq`%%rWFbBXk6A}!eD6Jh}C)A*N4 z|FKH!;JforMx?rUlHaV@K;1)j@`Uh8L|&*QKf3^Aa8ghpjRQ(3;FNdUb7 zfPG)|X?+&|Qso^l$Fl@52P-m|{I0}EwL~$zY4jA{)|YZj41)B=Bz8-9o~%(O&tE5! zrwIF_Q0$-4eoWX)8&q4a2z#>JAlP4AU$2}(#+W|VibzLjmOTyvda;t?c5(Y){d*!M z#xQ?NXs#HysqF2-9A|UZo1)Jm%uf!OWE0d3tjoZ0>Tr>rvA|9|j1TtJN?Rp-j-bjo zzI!5$i*P0d-huXG!ddEi5;)TU63*4Fo+J&fSRWV0tk(Hsl9U#Jqh^%%5@|Z4%wT|b zQ;FD-SntDQ5*Xvfto2~7jL$v6a4zPgtJm~B)BPtV(tW&ieS#XLTtNtHJ3s6-0p5q5 zz01mrV*NN`&8c*-Ibt{lj2Dg@f*xhG_Eb!{zU_pLIM1gwY3MUu(R@WyZpWSq%evdK zLaoasru9^gl{iutreF5}cf&*XLC)SLSEa~xyv#%5GY2a&Q#livs<=M91<0|4n~a>v zp84OYBa!m?8$QGvFMm@a;f%M*r{*(WrUuA|~}uH-dC>kq*~epam3VH{Y#M~#LDmiKJ2 zy+=IHl{?@^J2*|*OLnly`H7;t%vT&YP}nZEqZAkflOyB8eQD>DbzE}o`J|gfHCaKX zoZn8QoT4kAg{58>_8sZUcaJAY!s)o=nH+zbNRFa=twN4J3OTBw5xbWZc@p;`Mg4k= z0b=+1)fl9)dl5`0bFW(q?o}}o zm~Y7Q(~?s@ext_`@`)SRK67;3F{-<`dC%MBmSICmZ>#Y+8;4q+X6G7NXOF=2x$DEc z>DIVTXa;m1{ysE9+P>?LU`8$S~ z*}o!P;PxD`wMAV?^PVg-FGoC=Mwd?d_daqZ4g_=Zxt24l2d#+gbh%=3pQfapCV>TO$y3?foO+2*CfjC zp{uv4{Lhf$ZiMm$)JpPJs=s=ADy~MzaZU;$2dqYLH9d!`z(N*Ra$Pp+qS*R6Sz*Px zK0<@JBU;HvHTT68IB|bma$ndZ-Wr4Jz~nc0dbxQBxx`^UURXaRsSpCJLSRTr5qy?Q zV-}G48nwPL$o%;Ty{19`U|9GKn%)p(E|p{*fXcgJp&yT6l^{?=CAIp2Xf*(p);Ca- z1aNsmFfJJXG6pB{dQ}cT2^fj#Dli^cYE^@=Og;dN|AaUP!I+d17)zZL!1ym}ePh7* z)(E{;fN^g6MuD*;>i{sW!9s72VD%svsntJ3s~Zc(vyi-MZplSPIs7DGB&H=8t6RmJ zr-d=JQU?usE$?dz?#Nfpom2Xri%kWc@wN68C+zk2u=rHYof8NKDl2K^8X4nUf_nVX z31i7Tld+Xt5Z*g#i?=E^YBE72Nf;@&S(B@@Sz6k+x&o*?2ofDMOS{O|=+qMk8LSj`P3S5>YO$Y{&giTacG2G=ZJKCjihh~aLrE?0uv;ggqF4E%>GZ=uWlr0r z{VO(RVbIxp@21G{x~*8LGCFiq4b9PQ=0VTID$>9Bk{braUS>ou5nnCUl)A9KLJ(h+ z{boEQt#2zZY%?Y!W2qaxQTQV}mb1 z7#}X6iEkT#nwU)Om^Oq%*8FLD!XU`L7D+b9+(vIYOnwyKPr%^v6%bt}uL5$ME`Vs8 zJ#4ohJN{0-*k^r}_TcbE#9?s0KqV~=ypwbATZ|y+`xlx`6#K}urp)bz>vfwEKSh*+ z0Z^()+JSlS@dVPrS%34cdmey37rjoq)IF7C-QS&bPs!Q@*&XIJOcr#+7;yWh5%g>f zRtvNiyhz8<#@0Mv1txoH>Yk|ps?12==g0j$C(w3P!|WP1eu3Xx2m?=)?(GJwhd&2wPASaZ_u((A*gr4J_0d)g(5yJiQ~XN(BrmErvnTmf#C#& z3O{U>=*%90*LF4Ojr2*#4$dxEuf=q@@E%w&7>+ac`KdOjc2tI`!&Z^|kHmL6iGP(Z z$Dh0atae9+wS9hsIale^5iF-3jAcqHV< z^41gG9m5%rfI1;YmXMPsbdv9UiKK%Yz}mf*Yo~w^q&JlcQ|elw$67L~Xmp~`KjN(y zP=G&G?kldD;&p_Owi{A_K(=e!wQXn`I>j_HcPTEv4n4dQJpp$>$|xKQYW3;E2J+w& jX(TBWA5Dve4Ud{m+YWWYOqW{KbqaQIT%b8PY&HG^io}^s delta 1819 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 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 ed1bbee65608e89e94a1f3f33935b2e953c39aad..c7b33cffc40e275b2f90bf24a7ab0bd3e0918e24 100644 GIT binary patch delta 942 zcmb`GO=uHA6vs13*UfHPqtyiKCOV77RzV@fb5Vp|ycQ9gu;ydp%;N5bory7sR1bo} zLQQ9T5kW6SkIMGuO;7~!AcEjgDjvM|Sa2pEP3)nE(mf3GKIXmOfA-D$nHLw7hss(f z+fknIBZ&+wTAo|9DqhpAm3@L}h}BYvwP0)!-D4pSc{-6*Vj?N_?xz7jJlX==0KDZJ zsu?d_;y={Y==IomV${@#TFI4_bGNT-|Sx$6@a}4g5z!PptK!H37ZJS5&C{ zlKA|k4kx~h2>RTOeG;(`a>t+RGwGh(L&En4=WwFy|E(Xb3*~Cna~$N#k=*%zhH1iv z?}-tiVlpai=r)~3yXIA)X%58gnbTv(hJ6ymVw68q4gN||GxiB#3W!w+(MO(=0{F4i z!n9ow(LnVoHfuLfXwOMASwplsv^h()_*QB`yo41s7u^^aZ{~J%{qSbu>=lu2&x?fy anp<{|JVeDn+A{EzVpGhfJs(+FMUqS-j5 z7AVNtBdCR@PiyifE@j5klRt21NuA7)&N!MOlfj%J>z5(t2eenLM?>LJ!(_0@VpCeD zK#W0AH94L~fpO~OwLIR;(itlzZ{$&!tj;SqIgv+h@>gCr>5P9p?D>wJ$2mm#4hMxcc 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 a1d3b89f2e9de47779ba445bf68f7fa3851c8f34..3bca333901993d368a71b435ec0ba565992304c7 100644 GIT binary patch delta 726 zcmaJ<&ubGw6wV~sY<8js#I(gt>MYo#DuNM@QmTj-4_NhtBU&(~J=fZ~^T~>Ulio8IrdHBTTd(N&zfPj($pLejMjM$lQDNf-bHVCmnM#_KKBRM#k%1 z*;w!Ro=17|6C=~INU!h9?+B<(+C#zzUTVL zoP^TAmNKw!cTSmy@A&#@w=T1h?zi1=*rUR|s9@fvL1&6#xiEltg==zgMz|c4Bfk+^ oi|3E+WU5zWxw|Bp0AnsCJJKjKl09WbnA^-pY delta 342 zcmZqDZdPY)V4YeaJdw3yvLc((lj+E5mWGH8{CvPcN4_iuVNn&Qsl*GyVcwHD- zfSP4C%k%wZWHj9@EAW_Ejh~T$A&VPG6!&oECFZ7rG#3Lskp+_IEY45_`X`HfvzkZ@ FBLJArbbtT= 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 0000000000000000000000000000000000000000..9c28ff446c823a3eb8ae87f17e3fb8d949f52ce3 GIT binary patch literal 7248 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 Yy}p~6WHUn=wO~@P%i;p%;H202A0c9y1poj5 delta 1588 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 I!AYm}A4CSYQ2+n{ delta 1868 zcmbtVU2NM_6y8nd#7UF>q)qzcv~}7wjlE{sLj_eqVFk8!ZC6nyAt8}gPU7vxbC*yj zw0l^$2{C@;mvPL5&`{qHFBPl0F(Cw+D%ca6;04h=AU2+0z<5R=xYu?XCm?MS4~ehO z`ObIG`R=*LpJjI@ne)s$w+AmVZ@>?1{L=MS`q=!n4WYg8H@fT6zl5*+F*F7b{9|oc zQcuYFlX9xMfP+oLJ=K>3yNfA;J4|q}xi<E&Nq8t@;9>F;G6rR)(FU}5$I*u-W8NEPJ}_---pA1=rtNF*7<0q4#kgp& zZWkbyaMkiM!Ppv*EKjl<=z9qJ^1)|uFJ8cXGl=*nwl4Z22>niog=YL4@uY3feR#d; zCQ8FpV5pxL#nQ5zFXW`MEQ)+W%t@*$WmQ=e_+*lYKZE<=qreNW(aI0_MS{*tWyu6) zi$!&WFP6%M;%P~>;px!qf`PrHYMCs7JEJ4T*Yl4#E!%qaqSki(1UEbVkJVj< zjzoIBls=l6)#Gj`gag%FmzutB(bDN) zHM?iIl3gz3oUP6tUX_+gs;pUhMD&`Wc5k}iLU;09#6?xc4%V4~d541eVy-Nc3!hbs zxl>MdcRHP}5}Rv_lVqJBWLj3j{d97~$W$537`oRcGU`UGJsQJG{ND)#;V#Dqf1*Rt zE_MOd6XUT%1gd+BS*3iYBpb>EeP#2qmaD$QABoZ6Q)Uc@1GK$hTzJB-d-8HwDyW78 z6=8~e=g2o<>yGdja;>y!A% J*3YTq=pRJ6UWotz 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 0000000000000000000000000000000000000000..29d1c4f0d30362e4e748b6a54c005d0a3538f919 GIT binary patch literal 7683 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 literal 0 HcmV?d00001 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 8b07d3f7125a7a9f7172c1fa4664859fbd2d7c7f..a643e54c8d4eadbf29bc836e6e2e6a4f59572011 100644 GIT binary patch delta 250 zcmaDVH&>pefpzMnjVxOj8JRZkWVB_T{DQSep@+{czbMxwGcmm=F;}mma!L MWbXdW%zR0V0Iv^Q5&!@I delta 248 zcmbO$|5T2pfpu!sMwTs%j4YdXGTJh$_XrmkWMt-5=%rSa=#^!rmM7<@q)zGKhcV+5 z^O7_2izXjo)E4C|N=++CEJ{x;nbM;XpPQdjnv+^Qc^R{U>XaT9klpa2}{Gwc! z%*6Df#9Y0K$|*f;K#7$6;Tr*@cm@{O1 zS|+zJDKZ(FOg3X##+U$B@|{IhBswFeG($Th4xut5cCrDh7fhl6MWT;&CS&Vl4K@c} z=M345*bF&uMxeaI9% L8Lpc}go7CY$2z7% delta 358 zcmeyS`CNmgfpu!kMwSDNj4YFnGVW#SX`bBAtjK6F`5s%!`8L}C18FJo?KzYZ>A6aKH&X_!rOG|VbP}~kGJ{e?tX;Q}Y%>nFLEFv%|W}p_R zRO;l1jFOWZcvyHRg3N)q7U+P9JXTT{d)V`nvPvooQm15G>fuO9El!4VCO_pd;qo9FZXWn|>oJeU75v+|>id&NDR kd5O8HAd`xx)K1BG)LERNSUW`{;~vl?n+&(ji-m(30c13Il>h($ 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 0000000000000000000000000000000000000000..02db9626ab6aed20aabca227e99ae8042caa06a8 GIT binary patch literal 5524 zcmdT|QEMbi70zZeGnq*;*<|l77k0Bwl%UBnmN+gsCJGu26V zSKC#+JM$pu!*Xw+9>m)he}E{02;wggA4CuzL_`Gf-GAYCs(NO+C!4JLW*|vd)v2me z-}%m|bLt0;kI!$d*dMd4QV}MTJ_~|G23!?pJ&=AL^F$XP759Hwe7`s_?To!pGS7To zm=#F)B8-BJC&kmkbV*!?k?NQ8TZ;QSl*xR$Xo#k0JuMDI+cb2jBVHLY-LJ?j{%Xcj z(PwNpEJzZ9Yv1A%(%{1Q%fji@Oc^xLh1fA|Z?3YqZkna0CuS`Q6JDI;LuNWm>nt4R z8YiR^T@M3A+PD0ODTPjaHxd@Ruk|2L7mXqF&oVwDncTEA8`DrBw#6N>Dej8vV$ZOF zkTD-*d6MvK@Iq#117F4|Qyv?u>L(Oc1D1w^F^446JgAKJgOH6g7OQ?8lYXXf&U?qJ z`B1EwMwkSAQi0H+D?Wj9iG6_gDg3^L-?#C5pUw!Fve2IF0O*9t7#1*xg!aMx-oZlA zSM1-5xfU|GUzkr`DOcLAd7=xJi_eI|1vn?-9!vnm*FZ1-g5C!h>C%X&LLjU2tVWL; zbtn$*TY}J}O*@HrOXiqyRWwXzF~zazcCD)<5EMLi)^iH78h{681L_>6pct)gwrDfU z72D=DfZLNeI#MYk_gKdi#k1$UAQ--eUEV7>^3#D#HF%<6bS-7%Ghgt*H>SWh8GN?? z&cpsYj|P*^KN>{gaFE(=>K&+1^Fu6t#>RZcr9r?nQ##9i!b=UnnpC*I{d9UnEQ86D zaZiqV&TjqsjJ};w{;hi7z2j@vSZ#~$GPG+87rkvI0vLIW*6r5H3-%`D#gwnh~o;nysE*T%9i_z01gZ5FVgyVLGI< z9G)Vc6?Ka@V;SV+MK@pJ6^JC3DTQgznFwNx@+fiuEQdVP@wD_k98Rl3ysS-gAb)_h ztc+XWqEirXkHww?3`hJD*}@vqxrr|mT@C5gnA|2*Eg!0ge(o`g{5(R4>S@7yY!a#- zi{PR>=nZ9_1Vpc)oDjuGz!7TZaR1}%1(|+wIhm?vrE`Cb0Q~>rT&u9nk4xLMO=lGH zDDalZT*h-;mUg&el*K(-&a`x>xIya)M?grxBDzIyn|XTy>~H>aV1Er|e+5$g3|_bb zGR+kp%3xYi%RD@?gg<&##+ot5ZK$(p|I2dntkc6!zu&3;IQ`mYJK&=*2`OE;6oogI zWIV*fxVrm;D|dg@&XkF)A&S(NxqHPnCYR5Ftw;ezVHv2?C(f;79njp8)!mt+z*9$_}``> zh(UI4%)+D)|1vGK^fW~joW;8h^zcal9tyj z8*@DmtaYsDgnuguc?&1~%T*^O;XhY||Ku3FU{lpZHbDg|T3~Q3_nigGO93q}meY-E zD=Xs8={o+sMyu1N6%|mZa`i0PiM0P?Mf*RzW>N8b;PJcH3H_El`gPm>vfQ=_;a|8| zbvd6%&!0ok1~swga;eizoY2({$j9#N@AuM7`W%Ti?v80M$>Vei4)*rcPqq_TUe&7XB7nbWBLkHiCBO^KOm~F($zHxTqc3a* zLsw*F#AWAfRuRyW9US+%3pnC|t1T`!^1P-J4`}W+)AjR=sxNO|Yi-VYT+LJokWPW#TpO|)86UnSV1Nkafn#Cy^8*Uq15y=^vowAu{ z5n5Z6J5h~Bqu8$DfHS)zDRm+>uM8evGh0-if`Q(IfGg0`rCd4nO3znV@{a4_5vN$7 zyceMso{hLr89SB}%F^+~Y-T)_nf4<7oJYm+s_6(8&6^Fg!zUrI(x`6KOsHWR0UzdL ztkfQRF$Fodko?uB3 z@eDYVsz_hWw#;>Xm4;oVFndcQOG})7Kost}br(9!X5Xz3EKN2y=nM)#2|yIt3TZ21 z$v8(b1H=Pd9;}#D4<7-~ZZ`6lmZzS@@}Hh9PsJrs z_Kau!kn54%18zSMI*zbeTeBg&DA1xfUN?K-WbDn|bAABN)zIhWhMFdtO*|2f1xgM9 z{;oxmsK2RVR7u|Va`?3ZP&aMcHN8mstb}&Y7bt3c7~c6CP___a_F0}H(9*M&eTypN zz&Y3>{V*AU1GB)eOQAyL!zH;eCh|s-Id7y_rn3T^iHAIZ3s0ef;K*Ul%`G2NXCBAZ z5P5j1K&eh|O&^+_@{J5+jYcl4otx`Cc}}lYX5EDo_%Eo4n<9jBXwPLvmN+|53e?hw zsz{uX(a@uo*{$_bX<)mt+GyUO?2n$lAl{-*_kGIXTj zmetd$vM5NJx&g80BgrX8O;e{Mc-KJoJ+TBE4F95 z+DW^$^$~9~O#%Ma@>=D{is>MP_$X$Q)2vQF!LE!8F2U;m8$4Mw4*&oF literal 0 HcmV?d00001 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 e044e73929df83c2bd928df37198c986c5099e69..85324f6729c596c533f8f96041f7659036c197aa 100644 GIT binary patch literal 12113 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 delta 2310 zcma)8T}&KR6z-kf*T?9!jq z0zNct&BUZRW7KMpHriA}RKkPy!AgzBL>~+>P1D4uzVyLZ<6~oLJa=Yy*o7?;vP|wd zXTEd3@1A?^tPb5c#Lw~XezE-$e_>}?&&1T&!6|u?w#)H&Oo@*wI&}`})UDZ%D5ugo z=vscv(k-44JN!hx<+N+?rLBQH3q9WRaGtwC4nwz1E`E**w1zx6&LnQCR-yR|OwoIFmLKuIML7in`NIFCEZ$N^Jj(Rc!pE;f+Uv2XCA{06I zk`<%2VP}B9iHM7E#`!c^MOz>LtFiX`LpwHPuxfQl(y^0rIz45S+)BTL7hR3y50+K< zWkby@!+qpB1J_*=dALb!_W|=3=jCOVimc^0B4suNHIBJIAR&0@-d}ux*3uzb_dG#= zHyrYO!nG5))fj>mpU>AuwrxXyr|DNC@SFF0j&{Q3A~7_8K1r0MX-N`WB`T+=Je*Xd zh!~BEaJ;0wiaAddc2>fyzq*VCFePH~#7No*gez55ya55Vl??$8ix|K^Q!y*Vk;yV& zeHeTtZm)NEI+;|`v1B3zL!Mw8KGU&8S{cL6wS?dQ*ixfGV=vSwGRlUl3NB!!WH*!l%X&PouR zS(o6ch{WFI$S$zFc;Z{t zW3b>4mLWGhQ)|>dwMsmg(co%f4VXDs19cV+SxvR|%)ho^v&=2nT^4iJD^&*jtLxd@ zk^Ou=dw=hyJ=Id3zsq-Wh+hdj!~Jem)R`fAw=hv=emv0{iFGoO;GK##?tz6_nb}_p zv&CSEz24|u6Z`IZnmp3Holmpu%`F@ZhnPoJJM%y9yx`3Cz|X-wT!71tfvglhu3+CY z^A@FOu`sh6ZejLiHhjMNHO|LDcWGO0pF2>3B98UBi}g9KhM>e>U#mIHqpxd3VnbeK zQzXbJzuYVun?;5VDszRbZhOBG{kZnLqSjzrbw@vBK3n@(*!<&w+U(|3f5HKVLBr0VcgEh|Izj??jx(b z;AK{qpyr0){P)7S<~`gZ!Z%BG=1r`AUNEuHWJb9OqL{>YXtly4-vhMnPE#ruqR1X^V5&Qv(!(HwClEhmz?3?GJf!=hj|le< wxBO@1p6!X-2&Jy#zm(=4m&X(an8MEkl{qe^XajyJ7=A?Upgqg~MqeTS0q7sPWB>pF 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 3b4faff71fcd26c71eabb734c8c18771419bb089..728dd0dd6716effbf18a0b79ac0d95b1b7611eb4 100644 GIT binary patch delta 3712 zcmb7HYiv|S6z<&J?LN9|A6vF`AMM?i!m=%WU@2NrDFle&VNmf&ZMVCZ&JO!xcWYY( z>mwvZFCxs<0E*%-67dfqA%;Y%BqSJ-phm>RKk&yyA|?j(7tu3w_wL@?E{JWq-8u8k zIcL7}-7|CF*m!W*@|xv6SNDF)bgz4DI-6XVjbw0VBo^B`luE}W1zQIdY?sYXNfUX6 zDzXt&abm`TkU-C&FVH61Zkj>s=?R;cTFmQQk6|BPgZZ1K#J`6Txk;t3~j)cu-*(uqdYh`wl%) zDWdZnb$AYn#bv0EDY7m^ml+Bjr{CH_Jo+gL(c9-lU;MhVO9^3%Yzv3Ck4N(PEax-? zu?Fld=#RU^x(=~+(ZlvIy3J4x<@3JI;<^lRnPr}4$w1bHIsm(y9fy!euRB(|R^tF3 z#7*lF%&(*mRedfjMRdQn!`6)|DvULowg}iqme3yOSqoVS)AW{8To8jVuqSCU92WaU z9LeFxNJ8om)0uocor)wJqA1c8u4X|L4^(fdb2!3bw*8@4JeucAXwWm?%u$=`THS1Z zEBvY?%>sPt*;wz;#8@4Zw#8F%7KQG=&--Y7X*`sO=ki1Gyp#m77OCHN*EH$FEAql19I*St#t~5m&vfMr2+JejzY8D{WWj3|F#8mGl6(xbGe6 z)}A+Gk6ifvG(A%55RUQyZne@{#x}_K2wmCGYWtuNm^OP`tGAWHvu)AM^$oQf%9Rp1 z=v7y1Sd}+P>JxDp@C8JU9;jO`oHej}23E~x_Y7mV&B(43ay`wlMAikO10ElJ+}$qx z%)Ry%7-YyIgXBZqf^w|2z&2X!s@Oa-AGwrLv41Pa9n0reJ$I+eaOY&))s2^xIgoeU zv%y}_AW71l^F&jKEn-*%B{{)J%827JNLBpktL6@K!vQ<}Dxl4Ptc!Nna`jNR2pVA5j#5_1$#_NNO_50IJBudRVhSR znWl;@&OOIap^2=tO_wye$n>S&eyj;NQL>Rlak>p# zO7kAsp=~U*Sl1|if(iwCLb92AmW9luB3m<)OBff5H0ugNeq`Z%+Y`GW%_EmsdPO}nL#7wFX8MepW)tTD z3Qyx)O~ct`ji!@HDV3*}P*}UE5y8Z_{ttJkb&B&`hf_x7GWX|H_lBp{Q%*?bg`f#W zuQ^q0-+^OISEQNcWF1_lkjrJv3LK~|od-kR7ntB09ae$@M(rv6Qn`neA%GQ>c zV21vH7R|2eTJB1#YNLtu|5^QrIX=hBZ7=kruecQIW*}df({&lT#oI3=7{MJ)gq27? zs~r|?kYUfsE8aCoc$q_+jmOeL-70`?H_=glw=m72-aC5jpuhN!2?tGdcOX2azGIO0 z@03C}_+^Y}dXjy?pqR;~qf#y>#l(?GF*TOVOu`c`27_uV^4uMxo+Xg^F>q_jjYQ~G z)YwwEuVlj$~_kgzzpxX4udclX6jQOrLG) zbw0w^_^=atJU!I3m|ke=gEv0p^q*{QzKw*Nrjt#}q=w{R?z%O}hX9 delta 2124 zcma)7U2GIp6z0zUZ@Y1qZhvQKXSeC@cGy-5NJ=qnno3QCHh{(#+Ah=Xz};c{Lw9Q_ z3RVNQnh8qI;7|Oci2)KZH7SaTHWH&DzW8L~gGos+@rehG;ejCPxp#Kg=}%g+nVrlz z-#Ono-#z!e21bsV8#= zK-gPx;nu&z4!6jnpkIcwC1KJES4w7JMpz{K;gUTBifym&87k6l8lpD3#e$lJ0edG= z5Y-Xvqx}(0tZOv}7j+=}B<8>c|<0xwet7LGp;=8wzc}j$-&U_8Y7M#&QF(Z^C(( zM1JI`_gA49FGF2|K4+Bt!cgQIeCCXE_8WlgTUW6+zG9p<;?$wLW%>A|lFN;AJ>$sr zfjdI}ScmH_a-D&DZkhbUP?c-feV6h2mhm!6dBJi5tIjV2s(a1z9tlIYx6Ahw-9iUw z?LLD3PI%k<71;rE{w9A5*|Z5=?WRj>hMlF~3A7y^luEHQ`eX?kQKw{Cipx~VQe`ls zCZy4^TzYgw$;gdTQxkOf>fng)`OOT=T27|YLpdG+Kb2QGIY@%}U?k{ekUspG+N{DX zRqh}17ACM{a3YgYbID9Pi-Twsq@_+ap>Z5h5A!6`Id$0L)?vefCGZDcXwkM~dxfNr z8U?eD?IPn$xx-^jIZ?~t3sCG@HAjm)7;W3mjowZgQTuW6r z<&Tor7)#~Z6)cmD(w%8w9gM@@0WZmb+uszhtfCETq67j`ByrS?9pV*g$M98b_rUrq z6{}vRj&_-4VybH=z+YAe2g|C+r>wsAyb4!2$0`+=*{Xte&RRr`%;tm0P!~*)MQgjo zbn$$<^TB#}81#~>E8BHoyPxoOo7QRfrH!U8YEIp&No6jl`5LlwGYPXC-374`_=@h9AT^hK=|{8GL9 zaK2XfHWasuS{K3gBW0bYwVA#0`JlJHO*qc!#5Cg(HLDv>!xC(A`@+xldxoU-1BZ6l)95 zV}R}&9n^ADW2&Kj&OY5KH9J)JhWoLdz78HE(o(j>ush!9)txCdr=&B60)z2gc$rVv zg%-YuKP1BM!oqd=j_vWAm`eKw|FXJgL>X3D!Ytlp8gsm!rD43*xF54VNxK(*XnvOb E2io?31^@s6 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 4c8213cdd7f5e07b94b926d88246bc7225f02822..e735f5c57aff0ced959e1e7bb3c46d6a4f9e13ad 100644 GIT binary patch delta 1272 zcmb7DOKTHR6wXa1kD0bflSyCZ(Mdtu#}-l3}Hstjn6NR7g#t(MEI*L;7;tjYue30j3O~JLc$D@z~69kIsnKv8_63&c3IZ6{9;~Fot=)e z`RS|BJU0qRR^${p%u?7?mI(?0y*aXj-caPjwn9b+oonx;pMx9++hUHyU9j_}>9h7g zfVFg<1>S~xd2+TDoIgu!;&*WDX-KOhWQ;k|(BViT<4hsg3nLLHLufMSawN$; zfJ>(9m~%BfphFEVpzCuE@*X`CP_vI|$&6&Mx$VbxR$J9J$o7Z@oT}FLsLG1oYrtA9 zRUvR^hvxzd0xQ7VAF}r#;28dnRl%VZ>4?sjQZ=il!+! zX`w0=D}{13SISDM)b`{3C&r!(%CAEg8hsaz#qkw9Tfqm(JF73e&iZJ4A91Un_u{1V z11=4JX@Rf@ZITV<26Bp)ZTR$LRHZMYr;!`PiPy!B-w5^A!(CrJ2YvyTY{8)!d{Hha XjG@6xC+wo8;S@Z2vQ^&~n?-*BsTzYp delta 1367 zcmb_bOKTHR80~GQlbI%Mnl`4Iq;XooCetQbDi{}bCt55;Mbw2gOp?)?X&z-}g6*PM z7cL3|Qoa#)J{Cd+QA#!({I5 z^r5n(tHr#m!7F}npA$?sf@vp^t(Tcm1|5fo+@N>T?u6G|?~X{2AO9;y19CTqR8XY6 zT*=R6E&5p#$4?^&w69%!EDECNj3SCcLagQ#F)5@{f-{RykaS7Y)mmP!sj@)Qa$Xno zs&Gx#t(~tIwX`&dSt74mx#ni|xmfMiu;F!VGH;po z>`^5QFS}BO5XFirLGr5QaM)-S60RB=#xd-{eUmsoNeXy_lgl$$(u$g!vdyx-LFOSw zyFf%rbT+Yr=txp{zX1PuQZCdW-1iT6;n(MA(F~hhRd|Ka9>$Wn+$o6Bgkv3u)MGp^|h@bWEh%hC~?c$f6vD z>vfF!1sAoAf=H);Cbo-ai0D&PG}jOf4?6ev8?3#qrh!DWhKCfE&d~I!m9!*bFd!li zoC}PjyHF0MLYoB4vpGPjEpORg^wEzGB 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 d90dc279d809f131d09e2a2e018f9200c24d1511..2375c06d33e8e1fd081d56136e93ea2f4dd20e46 100644 GIT binary patch delta 673 zcmeyYyg;3`fpzLs;f<`@7#W#1?_oT^$hc&3Ewdt%p~>d?%oCZ+B%O0o6N?lQb8-|) zGEx=NixLYm6jBmP67{BJu*Xix5bMFFVsaLn1Kgm=^O;*2nI;FbZ(&?InS(>VzDL3@ zKQEO_0SNT;xR3$FOwJzul+?7$yv&l!{Ji*_%;J(Mlc#7lPN|)uk-?h52DX>8M+8kx zd}c{%E|S6?5wI9tQO^QWKRJ;@g7Na?1Qw~u@7V<`FJ{PQEX|Pf z7R`{(I9r+o)W(Id7RfTWtJstCb8}PkN+us?)SCQx_t_O#AA-!79LTA_ zdm72q6JWVxK)FL8*5n@?>iiHp*??jzGGsECLE_oVfV@c{UWTk+hMXVJEze;=(j%>? zs8CRppPX7;oSLGLRH=|xnp;qrlAo-gs0fQDylPsffI>GzI!lz1fuVTv19oYU+XX>x zhuR4a1qq<*(^Rr_fQow9^OLelDhpDlWa)yq94V>A$q4@BOPnc_9k`5v@qV9OX7dED xzl@AYoBMbkGppGEm1kLk?CIgmOUz9LX(|TVo&}QVEY45_Mst?s=IH`4i~#z%;3oh8 delta 341 zcmZ3W{#lu|fpzK&!Hulj7#UeM?_oT^$hdfNEwdt{#pVUf6Pc`}opVwXixd)bauiB3 zQWf%2OUm<$vK3MiOA_^_WU$9h$q?(ou4ZyNn*+?O$qSg_0WU|=ZnNHQ@RZnoxo%&f-E$iR@r4kU_uIP(&7 bQ$ZSwfsW4tNpu!xC<6VF#lG1^D25RL)qQd$ 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 faccea23abf928eab89350a7aa0e2a9da6ca0757..2a934a0f626ecb5ac7da217b35b452ffd49f01fc 100644 GIT binary patch delta 2917 zcmcguYiv_x80Pe{wp+Ij)^^?6ZQaJ8bzx90VZ$*Xpr9lqh>1T&+0NRteLd;Tb6R9Z zQ_&Dd_%zCUzz|K8L9TD`}yp;blv^CAJ#QS$b>66fsYh^KZCoS-OZn_2}PQnXCue?7M_v?&&3amv@lt zE|PAtr{a*r;Zu9WX^BKN;)rYTTTPRX7;5=xYPTG(3kP7rxute9X(4gax?Mo|M)<+G zN$7-~u7Ec;8WzKPbncA!DHk-F1qZbK+Ot{&O<#kUKUzhO{7Y7AXJ?hjW%6k$BV`L3 z!myyP!;GHd2ss+nz1!(gkg8ws3_iAMWv|$`a_#EGTCr~#JW>6IFbR>mNW?Q;5-TIN z4#whI1>`y8&JVk40wtFsjV5y$F_qP*Gm$EYg;Wk79e7+A&r2G$;*&<1T0vCCB*gX} zmp&ybS#5$gsKtCfrxb?NjHnczEanQ5svTtIIE#Fqz(j1A$fS{op9(!D7?TA4@~lrbsN&1MYS3=H=X zKZ4F}1xcCaY_ZwdgSs;v?K@M*?i$D(X@sJPX%iTt%ltIR2wBMOD=f=Z@Rqv;uGdAK zHeta65|jlHJP~-lrmv3I)hNHb5c)m+I1J;S#RB)#sCzOOvjGcn2Rz=k68YPx8auj; zP3of671GS;bWSTh?3GLNag8hxlN@Wro zkwiVBMB3OgYmaNxqfA>hF-;_$I3ZngiiVT2H^^*eWEMx{QSb#~!fn9AT?eRC{pgM>^7}tfcnfX-725ZA^Q1y|HO4M-h0jX`_9NUDohb zlmCB?=nggs4pVf=?bf@|CZ+$2ccY(1?Bb%Px0#rH03n)4rq?g)Z({!;5z>+q~8 zW;5!di^>=N5MJ++B4rbjY3S&@LxyX_ytqzT;JCXfeR1~u*wJq)smY&Ux3aFC)YG4o zui^olb@?Qol<&Cv4tRkD4D`)CwDSAtaz;cxY*Rrcc(tRsw1KJhv#-w(jBY?(Y*#UY zRrWe3Go6E6K2ap??1UL0+x__JdQm>btXXb+Z*n;D1w1R#+Rz?ULK10DlHc3OABog?8S#(pq5s!`YIIr|8v=$L__=7hn<}{=l{R| z^8NpR&W97f?GBs{oO`9`O5h7YsN`P?*M01Be!-s*2KcA`fhJWkPH2T=TQl0iVqRHL zR6{Q0j3q8q_Vzh@={0+4XMMK3Zt}N$L!F%yT47LgLsOcn@SlDAgnhg& z-pVKald(OdjZBbs;wK&d)gkfU9O8qOF9@<_;)BY~^{Wpc+o4X8&Z#1AkJr4!1l5$uW-#9izvQ%uuAT%}mx@QhNL|T@wx|?jLtEvPFyxwn zx3ZCUG4umW&>lyA+d+=7U{1~F)Kz|0B0nyo{ZR(JjG%QG^_*PH8?(pdd{HrF{!{H! zL2?OU`GZJ%j5ygo0V_He8`>M(mDga!VH)y361X7T;I{+gv2oHtW=Q8=0rp4vmf)z+ z&(&aar^B+S&53e}a@RXcB=KaCvd`ax&q^Ag_}qKr1rZKvn%{s=nXy%odb6rJ$&p)#*CSpBI~a&jk#Xg@DUcu=b*{uyvGf?2a$0YG_sH*??Ijd>mB@b zRWiKK_Fy-^QYCGqKKNo0AU~@u$T`)dFLN=r3+j71)+2OaT1QDfm@*d-dYMV=SX3dO`%O4F4WO#GzF8u zo>9=qXKKcU+ep}^AJ%NasM`R25n*9>fSEj2`%bg4&Fw6BEBo^RL2CZ8Kdp&~_$PHUzKD<4#J7Y)K6HRS;$!h1*dg&tz7E`x_%~I7zG5L~(k>9ef^2g{ZLHPP z4FDkgd3U;10i?xq`MZs~x41Q^fO%A@$<7xcjW7FUo>h#gKD(xUKxzG62_K zxRzWUY5iLeE?ymK|H>bR3WHj^FY}Q^>+*3xr3HKp;sa~3$Rc=1~j;?CC6)$r-Yd(^Pkp@q39(y`?I%h`XzU Pe_ZK4EPTYTcawhrB2MkQ 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 0000000000000000000000000000000000000000..47b66536ce6060e3a7e280c2e355c32a21eb2bbc GIT binary patch literal 5690 zcmdT|&u<(_6?SaTjA#5Sb~Ywb;xHCkb^`HCRs^&%D})FOLKYT8hzpzT)O6QOwcXRz zbX6xa2P8N|yO!#J*k17$fRGRp;=&biKr0~*2qA=oxbt7|y{ev>?s4oOIALj$uBum6 zufF%aSMSviYajLYmh7L|R*4AXahC-_ECa4`vld7{8}V4@ALjRdl>Z>_m}bhJE19J} z&&?7fd=W-L%H#Y=Znj8VhmqE_j*?9CcRj}X{hX#?#_D(Ym{fU*;F1%3kvlEx34=~L7dxiu%?=?}Ouf+k#H>bP z%=441&rFMHorZnvr|cP5!a&h^8h*r-LMOg!F&nwBwIEC8jXv|wQa&J=%rrC`(oin8 z#ci=6?uZq!Z^E9CBi>81IOb{ZxlGS`bUda!HdN(LD5`oa3422hNv3&F8tn!l8>Vce zx))HgXYZy8=e>Kpob|<$sfBUC$0cwb?&6cMp*R4VpTh5T{NBLt9-S3%rJ+4x2PlQ{ z5VkR&FYI7<=-g{}=8C^WpZ17rA%lCl`OKAaQ|lJSt)J+eW#Y5qa1PpuxC_(ZAgdsv zf8iV*jBL?}r$QjEv$R5_TQ7&GbI&q~CU4lu#B?&(l-;6cTJx!nc6*hsf?!be*jd*p z$|}Hi%sSLMOh7?e-E7ikmP@wHE5J9$qv%K_j2vnWQxs31@tolJ26lO;;LvY-GST3X z0x7hVk@3{B5?wb#~Z$9jezwodZh5cS)yQ#OQLd_4c_!%4WDc5=d(@g0! z^9eUqZFZB%5%CaYh=*-CXgf=Gt8=Q&?pMnTE?D>O@ilA6rbT=a?u|0Rrhr#F=a4_W z3i36A+~K`OTU~@&d{4YfxV|^XRXl;mIQ@35eux_|ndWH}!ktRIST4v@F?89G)76uU ztMmD!w;6d}$E-lx+_Xq%**`^;%&V-Zk7SUM2i|yzCm|YHHsz){V=Krr$fC#rus7?j z8pE_aEqxD%)G8M*D$}c=zmK)8tXuGMhax~9iG2qoj{aq`ku|t;F<-{Ie1Vj2fF_}h zn3jk#(qDY!Vt-o;-e%)a9kK{c&VzPeW^q8Y?8`AxlLRWf>`ocvYoniX1;}wei>O zw#t7_zoyv^_#li!N?tBS;k5-B53zPs-u?cSyT5E_%8OPJeJab`xoR1wFfO!&Ti@`; z$VN&^h`$!eQzL?UDT^+S?M;JBw+v4{x6D5;w@k;Z+6~QeGNJoxa_AycC7O|c`~xQY zJCdz=C|t}y>QEdvPj24&Z&M(|EW5^tg>f$aWg2MdNrEUkjhE}_;o~F<{ZQxUR^T~H zV|+Go?-el@fe{CBpjSgIEw5QRV9e=Z6C$uW7(s8j`=fWKrT z1eH7mz;n&a-T+mdz2y%n3Zu$8v_+lGgy@)E6qj;8tZNwTpjTlnysRlr4d@2l!H;-NTb-U=72Q211WVZH7^YwUo)Fj zM1zsun1IaDvqjl?;uVoVVaeOBhew=ZgYuq-T6i`RLuKq(Oeo6P6SI->M5fw{_%j~m z$IGTASTt+a%nl!iz)GXCQd6OtsRg{B4YA%91x;WDiIlSudYU>#1w)6*KQLQi3^RK? z_9dljh@qJt9KLmEbKX1EL64`YOg+KkAmS--CRLFRn{Aot>MAw6N^bTSMi!PheV-`3 z<<_0+Fr9s;I-3NddGMmU^xRD59*)TlNyLVb(X0+@Uq&q6S`Yl5OX+cmvN`mBI< z-xnx`d>G#O8&I|oV)j{22{&W;V;#v&(HF2eect#<(7G(y5%& zyWHdC;0Cbvs4t@#A*|?Y3!O9RW@W|ZbXPlRx3WIsZK^52-&|a)7+Eqcgb*KPFnE%i zbzepikOro>MjDTb{ttn}i~KR%0rfQ;3$QAB{vi+EokfyL_xh~c+HgIL{U{5FGeery O3MkkWals{A-G2ja%X`EC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5821b705ad99499b516be2cb24b1b938b59bd622 GIT binary patch literal 5666 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 W$O}`SFf*WCO`n`y?iXyW)A=vq9vFiF literal 0 HcmV?d00001 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 d10b967b7dc30958cbd8696511db9ef4b3c8a18c..c8bded820c1c9fdb2f9e523aca24559b9d80e331 100644 GIT binary patch delta 1245 zcmb7D%}*0S6ldBkZI@!{C(;(2Vi0Huf-wONK{4?Iy^@%K+AQtj>`Fh_-6r&4{E9}B z^?`{7=rOe^k6i?$&()kjc;~ayJBME9%kpw`@Q#m@AqbwMqUoP zF1l`wCKg@SQ3rjFqOnuyoS-Svyg}Tj4dT_g32|OCsG*x~)bQ|i5Ftn9Bl?QaBl^~v zbPVpj$qhH1RfHnhZLahf*X=WR{nom;9IGsGgB;pNUwOLPk1{CE3Yws5N-3k26tUkb z7u8LK%S6yo@A&_e;7G>_2R+WOH=jwR6s=qoQz^V3(+B<`j>j0&4S)NDSNCVd87VJm zQX!w7l~mSS?vhQ$cZ=>2ftpd4U`cJcvQ^Z>HiLV9&R zGb^a7G$VU0jUELJp22DKnVy;aCS?}ge>gif}^I1<$(^jiRP zhwCZ)0rJL1;}G*K2e9X0H8K4e?hMOK%&L?1R8d?b+dK`PL@pW(jdL0^EeZSscW^hrSyQytHkUSNU;%tUe2m@+CFn|MmlH&Uf9JOPK=0PWZE7|{@NMR? zsk!i%nykdN8j7h2_GS7k*z1tz0NmxbMCVDId?E?rq$q;vkw{<$=IqWCaycF4(H{uys65{O-r4;fu<{pJ cRNb2waw3aR;qA)Iv7nM9JY(=zmJ?Ix7o#(Tg8%>k delta 1667 zcmb_c&u<$=6!yexuh(|$I899&$ML#Vl=YIhq!&VpRB-?l6-68>IH2IJ?P+JHYkRdn z)L5c*I3TssT+j?RggA06GFOBufq*{%4hSU5FIB44R$Mp$f|=cQx^7j31P6O|-n{p{ z_rCYde7W`Rv#EpBJEfJkQ`hLPa;<>mJ%$t_orC)xqx8O9|M0sk0Mht2_zi%M>G#Px z*rM+#TXTKrT^=}>PWBAXF+0$ux0JPGk+C^3HX}o8Jd&Q5z-cNgtMYCbN$+Kzc*wG; z?EHrubR;d(Q`v9ZAL**DN11h9)wVm9;kw)BuXYAK+i;s*!!umZ@jIUHK(`sybH1T& zY^c#j6+Y^rQ!^_d9dBqu0jSg3?9*vI2%vxEDp^ihuI*bE^yopZJkt1Hu}s%%nI7yh z${KI7D@;Qv^78*(7z-x$^&|l7ygpOgw zK=8UqD5S`1jwTW-=P6!ubyFi!kekfdLq;<8a3dHqgJ_ipuJK=EkNN0H+zfluX}ws> zkuw%MCJxDX+}~ZBFS+J+_x>WV|wg*;BeV+`utO| zhughD*S8=;pNS&E?m6lU1E=?*W7sIn;2F+E=rK~A)?nu$5e5ZoqTnjpLn~)Nd??k1 z`ojTzoJ3;;P0x$g<>eA50)53nf99Y`4m!)(IHBc2YBGHB+c?jciI7O^AN0P64h2VE zf1F>fu$0#DQI1Jp%C7?~gtjvg+JzwFBSI7ADWNGO1A8_yT+@x|gFF-5K%moCW?SH@ zKwiXeh}a4~M6QHv(ORLr_(1Q|86KfV;s|X)O=dz31@pBkNr$(a5ugVnN{eI>o3vVd z6(p%&+yP@=%I4gS@KDT8&912>(1 zKDPqC5Z$Sh?miXJ@tasCt3nhUZ@n;mD0)-Eu~+a--cw@+-{9RGPoq1if^Lg*`px`N zdO}{J9~?QW{?4(9JZR%U{P+*C&2*vLiT3o!f}bVnF7yo3Vg|jo@SG(1ZG+yNKQ{hl u;ZFcgjejctm|V-xBoa8o|6HQAIJoYjI)4lK`S|YAYv6B4L?`M1 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 f2fc5b2e5984405e2f9dcb1d29bf9d28b82b7f94..b07d1e032e08467382a1692f62641e389a273885 100644 GIT binary patch delta 1593 zcmb7ET}V?=9N*c8`*xe!O6T+rh35Q7rw=mIQUd$5LP1Q--EDWA9oz@r`5+`36eQe- z;@qIOGAMe8C>Df71c7fp1@+WRQRG|DOHX3|vwP>R(*pN!&;IB9&j0-W|KIPN)xN@@ zX~lH^S<@?10U>>19c>`ALYEBzeNSIu&9G_Qjp&+zM|%3(@}>W7C={O)Lm@80O)Tbw z=}3Hz7sW_4o=xX?u`9vn`K~kYiOzIz*<3!A&G2(Jj^pT*v(*SAN0*%4%QhLCXJl-Z zTnQnW%A^=>b}l96Wh%Gbl$YcnHsLB2Q&)kRP348O1}NP*EGHu)MXx!>FDpcXz{Hpr z=J#anJ#1D;O8?jfP(8g@-Qg!kkxqwwq!xyS81~|-+pO5PKyxEN2bVTlRKqeMu3zZtn~Zu_IWky^_09BDuVE z1StDyv!l&&nr-lrlk|!Mqf2zhb%Jg=&UQ!kQVlCqy^>ucvnF4d6*x$`m1L|iRwuLp ziYu$BDNYspb4h$@9ORjxJ7zOt|E?nu7KpFXF`M>RREL-~ zDU`~HLo+3v|94ipg(YYP1P50K%5W)E4 zBp2xeS8K^0@1di?S~3L*CF{J9Ok~r1DkGCkFidyNEIV+6L}4I2`^4z5yTPsTPy^`q zmZ{RuRMFf6w(thFfDTz0N;>SbM+@|+)uK9^1zqUp9*0yzqVJUsVVUsAsr=$ zz{E>7LATv@BXbAr;pkAc#cIbsyoDRF0cLuV;AS%jkQOr9cT4gG0$grB8y7@TNN}-5 zF0+u%Ehe&YE)Y=OJ@5Z9%Dn^@KD|yS(qX%gKB_VwA@vXffsc%UdJ+6ZYAc@6Ko}M! zb2diu@GQ%umxY#uAjV5E-SP-@vL*}<`B!&i;c3k_(qnz$N!>TY@ex3iQ}7WbYlcq? XY>x=fFkuU;A`ZZd4C{p#$EML=%NX+t delta 774 zcma)4OK1~O6wT}8JNb}LO|1EJlEyld54Qf0LRVH%TvSC+C<%Q@rc54bQZlJOsEwdV zb#`~$2|{;*8<~~Vjf94hz^6YVgDR<*-pG)LVL?Aj#M7uBZz$^%m9jnZ^6i z^rxJPR4#*8%)`&n6fBCK+-K#1xn|0m%Xs>qxYO{&e})9$oxhwHiNm2KnH$q;O^X|z z!BX>)xlfBdcpNB-M-I-|3Y1ehj`LJZggEDDkJ{!ZkvI+IpyJK%lS@zyYGfMT2X8AG z{wb|hw9I8<-`l8^q|QpO*=f_3BJK8JpmEx7KcpQh!Ie=T5#Vb02F91+ON8RO5{yS& z;pzc5ieUs^#ZtZ^zYaZ<;A3PWWAdA2Hja~jZL=v$M-$3XTaVr0l>e4_kINKfHU%%D z`JvQXC{>QJS%ewBuDaCdEYoJ&WDimN@i;rj>9*M%CU%~O3mAY#W0R{|kqx~0ir$Q% zH(frQ(uBSLB6CmnGz4r`cL5!7YoBns1J%(9zk_3vj5`7Sa85{S-!MzCbSMIAp){O~ zU(9Y{)9`d^tcS15WN&%tZK!&ESi|$UDjM#F+M~^uNr5Cz5GT-J#=4gHMMl08Ykq83 jIJSd8_5p)#_}X+?UCZLD#J+Viy+Hl|0DkKO 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 415a3eff9ab58faa3afc527cff003242050aff88..45d05ddfae2945cb97071d8ffc20c2fe9f22bcb3 100644 GIT binary patch delta 1972 zcmb7FU5pb|6y9l>cBb2(Ev#js-R+&FU@1~zBL?eFc0-m8KQ<;j;14T1oetia^e;10 zlT9R*L=s8n!R5~C6VV42eS~bX_^2<4L81#r)JNls4;sS*F$9d~&QGUh%_{TI&Y5%0 zch33FIrpBMxV4{smtCC6EU@nD^uo5$8!+gwcAASR$XyaY@O&<-Su;t8SB{(ZbxT1- z_}f{bG9D|pD|`H6Ie!s>%aF;zW30+E0|R7n@Hv?NZwGV5b;0RA-RoiH zF2JDrpOhc>YuMq*ADP|)oQe9-n=mu+$QXF7TJybIl)8(o#-2)ISS7DDYMvG#a9Lj6 z0dF)H@=6@VZulnnI?a>0Mmo`#S=v#StVRzpuT!iY_%cqb$El|SIRF)W*-bI8Gz_{y zWGudAcf@_1Jiqdc+)eq$lg%7;BH8%JzCMpUzST7ef{9nI{qC2j)3heAH+{p9UK7%5 zSJWrr&qHv7`ecqkz%86RB2?JMyw^`w43N$M1SKo#l4V0vzJ@%$XuO(Zg}7@VU{_$j z0O2^f5Z|6~n2G?`pV1+s{?SVyop(o$+>Mu*&msEm@fGm)HFncB1H*pa&y#l&DCZnc zHAU8u(m)25(W|c^dcMm=k0#sDy#szr2+&U8snZ>W5ig28fniw5x(poq2b!4{1k}=+ zlC0};6;yj&z?}qk8U$R}&IEqKhWMgsI zmnlrOs8K;z3lBB-$O(8~-3Vv3$85dSO?#+^YN_|X@KQvOvEJ&Mou}x)1l>zdmm%pO z)N{RR;QWrjB)34WgG-;V9i?76NPT?-<8jF8 zOHvS%Zes~y+dRT_DKG$W;}g;a-;BJgFC12K!eKrbON|Kmd~E14teNV15~a2ch4@H> zkMqhsek>`bQ-v0DiTPHjM8p+){|@E*HxzW3JwZ!Fx++R_PAbcJ!Q?b=ps@9cB)BFTryf?|e3X5AWeIT~km()xt3BYe_G{=@ zn6!4FHA~h2@v<%*Q4l5O?q-EqrSe=Merp>3>|O=eIy^O(4bmdtGvwppOm&E3mT5t% zK2H3wS`%qsqHfVgs;U$>tFQ%YssU6l>nR(uE0ZlS>%edK9tu)Z(U=|`r$RoHmq1dp zid-14h1HI0aZ|2Mj3Vp4Ch;Jnbc=25BR>Z=OW0xTzgO0W6b*3FZq~6YOb<7Y_gi7X z-ejVyO3`q|!E=kK?>?>qCQzYZ(GerVjA^%+l$q#u4D}n4r!1-yrfPU~F5qsB%c!{c zd%#a}tYzDiZ$e^#i;jS87FThFd=NHjWBd%V77aMqg{kqhB;I6O<8V5kQuYvVw%fYp z6gRc9=0n=K-(1uWrwc-6L=s@m*@^!=I3~+qoZpFNl`Ma*+tRk)K_qb=fAU3BRv1k) bygWWkkp*V*)Q@jejw9+}+Ozz#v7h_`M=P zktkTDa6#ox5frQxd=aEbKxhRkt?h$P_T4JjR#Zyug9!TMIrEduZp+%hCVS3&=ey^8 z_nb4Il)ipC{AT#f;p~^;3z8HXU6QUz(r4mBITtD)6&K`pN6RzK>7eHwDI}ha{J3wW zSbT*Hibb`eQq81Vtwo}$s)~=IX>mf4Pbz%AK{j+lxAcxtZRw_E3w!Y``whE5!*rI) zYc^H*-fftwZjp8X$d?~*jQBX3f-`0_1z?!5NN-Do>_vz(%2U$c;<{2y{zX&tUcW|@ zboP|(rT`AnOcambr5SpeW?zT^Ss}s4N}v_|eFR*yBKXNZg4=B9J2656t51Tsq#TPq2)4 zjCeJnCVmSPavLEEK#j)7)(o4Wt&aGmwTl*B`_|rIv72U9$n|v>x zFGbytTk|a+<0byPZ}Vl05%0$jq=Nwk`sWxi4G6Im-zPDwr|irA2-LIzne=Nc3qL;m zK4lI7dEQqBjb-Weu`mfB*@S4UbABR>LyX$&^0mR!>K+gkM0r>>=(qt6R0hMuGqH#g z1p%+pG@VAz@CsPx(W04Enq39mrnqbpqP5IU;9_~H(k2$ItT#xrM@Y5Px7JJQR-bOH zqsr>i(*KED7zYk_Wb>GUs^`a{J4HGP6rhxNmlzG*XjV6SWFuJ59+&6EU_ox$3YS|j zvpua9z_ZIBq1VRoi3Wv5don85;QBHv1wP}P#Y5eJ&E@Xk5DI4#nuqmp5dId|Y`oF$ zkTAu*b?+*xKz@x*-R4Kc+tQJt&0R-Z(+!(l2N0J5VGX*(<}(f>kAZ`1c3XN~x9ro- z^VhVV0sku9L8aYk^jpNH=XeAxX9ED~bDduMSWoLx_W(=lHHl^O=%gekx#2gMojXg9 zLY5c7gw{y%P)Q9`jP79XuuI_ZJD%^}dR5RKj==0{0L1Ph1#ZqHk9kSxMj;W@^&aY4 zF0dZ}`jD#L0VvE)cIc_fZeVOs(tpwM@RG8dfT!o!E%;%#@#|M4P{t`cvfZaz$ep{x z{&GMqzkp`OJAlqqb2)cDl6*&uI}eb_lR#_MG`b(( zkGVDR`P^FG>#67Iv^jZsFmFCH-|x)qUf-NBR*XkE z>#6aaF+F<0UNg3hkCQIDg1gCw(WDMq{|94uBlYRrH0SsIF6T~}gBOBVYxun4RI3iQ zGd8|UC&nPEtjc9s218u_51hxJ>1*r<-ZswT{+a9?dd}G>i_}yzf0!Jr}-HLOtg34+s4u{w@`QQ!|;3X7q zX#{;mH=AF3{Dv?k8w+A6r7G3Tvb8^@*2!2q5hdI@z3|{PzgoG)D@xJ8#{zw!l~>9 zjXLN9%~iw^;OH^gtV5roy00PbktYuj#Aukd7Uw#6}1%-JSB$e*O;o E1Kw@R8~^|S 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 68ea9e55c4501a11c6c2305d85585ab2880dd225..6140964e248c2bfb0900136f71987aa95a921257 100644 GIT binary patch delta 2116 zcma)7-HRJl6whQQo6O{^-ELDgyPL^MX%aWlwN{s)f+7|X)(XCLOLmgn-8s+EEd?c$rX3bqv$Tl*kB2#V*1(k?Lv0$IrBST zzjM!-YYXo_5qcx^{#$eJh2B}3ezw(V9_*-XT&kn>4nivxO}B9Ph=nC8zJxYRi&^v* zRN&NCq96nZ=Y;cu@FDv)oDD8M!mfpn51tX6)pv^h!fBc=>S$qc1Js$zc zZvc^~Tx+O?p{;4CgbjsG%2;i~{qLYEz`nS5Kx(+=g9<6=(bg zIsC^EF#!ms$M%TCPN1;p5xoni$r|XoRWb(;&)^n*ir~H!vF}BSa$!k))p0fCCl0PQ zK*#w>y8O7lZHjhy6!Dlf2dG4VB~o#P=p_(1GcKvq=Uj?ppzwz{B<$(2^uT;=>KrPBY=x_8X-W>0;`mFvb&_WT{~Y%@D_ z4l0PXkzUvI^~y#Et@+DHj63nhHr#+2?5GWk6^HXm&H!a@Ya&kBxx6(TE%FV#-jeRy zpQEB3g$CO_i-z01B4^4%crUD=eela4vAXyH@-=stCSSq>dN~uNlaO1zRkP>;c3e2n zx2R+*nkwusvJEgA28G#cBa4c*PZ|XU+Gsblnr2#?_WPr1M~9=-?v!Iz*IZy$h7FBQ<9z9=Mb##UW$7l$In3Kn}h}z6ko+$&94idUB+|EaJRnz zg?G2<)EKp+evq?16uHiQ@a3GMF((6#1Y#2-W^Vunm|e_~3vjwiUVjHD=e0lNm0aT1 zep3JDin}M3Tn0QoL9W1qT;>0M<__dh-b40AXv#NmpTDU~&xj_7eVL)4*BC3EmH;b{`i01HR_PH2?qr delta 656 zcmZ{i%WD%+6vlHixtYnMNkN@jGAT1wF&P^RHNF;Z6%o2}Cj}?=!pWGVDHEZg6zW2> zFev3**D5Z$6r4XnTqyY12rjfjU5JY=Tx+1`M)Gjs=EAw(Ip6m?m;30_{v6-rk89>O zf4~mm&G?ZCeMv$pOk5Xh9f`P_oO1dzj>u z?Y&JTW()Uo>FjtGdU+dr8G~!o{SCLN+R0X!hM%%m*>U`ssT_U>1>a$@7!+X%X0F8u zZx`FSX}wx+b<|s|PMn_a6x&um$iV>iHQ5jnV=$}=_aqB97M+^j(@t*Cpx>n<2vaSuDb#pCzra_* PRsart2-2f!@di5pEo<6z 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 b1eaa37de42ada9871aaae9832a100f3d27b0680..912b1c62b83e4be72dab3cce178a13171b63d44e 100644 GIT binary patch delta 1334 zcmb7DO-K}B81`HDZ}vxLe_VBU)miMv7B$x*rJ^z^5l>yiTG!ptZ$@Wln;D@!m=zQW zBPQQ;3Osj^K=v$j%0ris=+vnaDlZ;FCkK3!1d7e z;!R@3^(@?SQ&yxAC0D||1%6uL`SF$2mZRRf_00f6j>-qLjnEpo!lWFT^JIb<^iR{+ zv*t-&F{i`kSFd%Bn7oyOGvz#aZdl=S8n1FW&Pv2dIZYAnb5n{efz!m2b#L=OB7b^E zj}>y_s1Pe}*2-((_Av+f&3p>pO{W#DT;kJd?jlEag9A<<$8n^OjgbXE<8LhRQ$kVD z1i46-{jm&Y^k~hMofT9qD`>oA5aY}vW8Ub(F8%glO5`IMwh8#$fi56$YP>=N$VNj8 zX$v%yw+)@Bl}vXP|z0)N9vTu;4ZJ`$ROjq&7VN#cu| zZC&(4D#eu)InS#q%we+373ZWtvX2C0u3s8&L#-!@id9=!2}Uo zR76!&(iF268R5RePu(L=iu4W};ty(i3%r`I+9VQ{i5|U#9AueIR=!66AkK9_nS%*NJ@w$lizg3ym2l8tG$bZ+;17VrncXc^gcuSpJ3H^=_kQm;Z|39Bhhf)} z>)FNFvg;vggZcW7<<%zhrybrnJAl?^GsU6u;Ohy zUcy)J#6KDKAIZ?-lD4=QwEGHzb>Ej8F9j?Jc9J0Agdk@mp${jMRh~E}YNDzs<*Zg# z2xe}Q)vzYxS)!Rfv#*q&<0#tVJTXz=y?@AM;=qo-ClJV#3k9O33waf$ylwZ`s-^Q9 zDH>q(-8b$U3F^`>{TCtz^-LRdt%@o&p}IP5N>HEfW_`$|Sp&8MfkdFDoRt*OJ+>0Y z1H)n!l_IbdO6FQQN>mE7rJSJ=y&flOVz`;csDpM*((XwX;M2XNI8Q}2uhw?xGS#gX zb1*GyKm=asdg4H#bA9;x5*+g|YEZ*Kg99+w=yN$3{{|RsJe3GoHN0jsQjjfGwe<9n zhuGD&r>TDXU{tR)GM8nA%@>wuuto`1h*~aaDYM;#bb^(EPl0yu2V2n;?{(A`^{UC^ zFHyOc}lBO$hh zR}CH4lA@xBi|k6w5q{mq7%Q6!!Wjw%2x?K;wqmNp>kw9g~;@P!ueKNLZ4k65rpvIE8(gje8N7C$l;~u2iuX!sBf|D$h$(Ay`A`O?{lTn3Dhf6+U z11q&A5+zAuH^o9t^nzs@XkFD*Q*CS2rfTrGb8lHEts;)$5jUYd|G`vM6SV?B`pg3& zvG2uv)(KPOMVUx%v0su;u$#$c;ZL?0*~hlUvD_axkMDPDIEP10Sx#VBVCOTXXYb)D zd;w3tngGbp07+7@-c$@jU00DF44?4IV_RZAMzTUEqNB_WzA{9wRvgCuBzG^7g{Qp|4-kih8%Yh^*NKv5)@s2xEpxc zfs2rSx`VWas%=y^b+jI=VRV?o>*{zDT2xn>HnillGr0hIx%WBY)Lfji{H7z9xweau z!cx=@Lc^V&MdO{`0$0gGcov4!0r<@wx4QUga*?y;$u{@85-X(W2&C3%*DbotsIc6( zXwqJ2DXM0XD*&T$STK7XWYMV2NmH*K*4;OUllyHilTke2jxTHOXKYtu`fG0%uVPxqwd-4$mj`nd2|In)NsgyeD-f4d@4NH nH~vH9Ko!vB7>`bqngV?S4P!tD6TY!!U>OpE{lWf;*MxrorR2vE delta 618 zcmZ{hL2DCH5XUpwtl1>nu$8)6vI)CZFnJiIwQ4*l-c-bX0qJ4WE=;ybTiFQa5R3;w z%OaF{p1cTp@Fu$8HxLBr#j{#y1@SZ3s`FY+hanCk2&---3JS zpoZl+tjw{Ri;bYO%1^c;Npkp3{(yqU3#ByfDo^Xj(9^5ATLWS`hjxm2bJUeQ%O%q^ zbd9Gs>9*<8TeA)teKoJc3EC{wCpNGYdXP$C8RxNbBgG(J=w5L$JKI|Bs?>wA(`O`R z=Q;Gw5K0%UioG_c(zrN?6<$=v4g-egl<{arJD%BtWmASN6#pGixW*gao8di0YkdAg zrxg7?hj_=gX_~SsWZ74}HqXV`m1fxOtp+mesM1&rqJ_UT-L;qU@u9__>$lp{r)|3d w8FqG(#?f6!KZoSPJ?k0{P9`<+0oNBqyB5*|h9@t3onTq)mz-|ND~^8f$< 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 4b0c630ea9d55ba0882ea84481e45ef41830abae..f2ccd91dc18e5c613820fcb43be3bebac1d8708d 100644 GIT binary patch delta 2916 zcmb7GYitx%6z=T%(XwURE|0d`Srocm$|4FOG(Kt!4@Fi9_zUWGc6Zu4H~Y%YuC@xU z7)^ZKXviHB5{)tZB$^797=tDPAyE|kO@gAJiDIId7^4X$o^xkscM6r1Cfm99oO93l z&Uel|Gsibv8g;+uKD1Ll=zcXE*;1+$wpNrfN#@kNT2=QRd^d8dwC&hgpCmc>1?h~G z;tx1?yVTsI$`3gom$vg`!R7phb8E+=q?c?aeZ)!n*-`$aE9O|Yo}X~M&TqK3N#nvS z?OxfvhwQD9)#T}xH5ucF-9vtKX%O$2!M}1x-DZSe-7BJEB@`sW%*`vt0b{=r2Ny30 zzYlqO-1}fR#pPgM2WfV%??^}Z74MdgM@T;zBhl>==tubm-@{Ur zzvo*TniR}fv4t$$khLIu1Q3QilK?pnf^!h+G(YK=hq8$T zrkqH~BXYG?&Z~Qfq7x;PSBGV5H5QO%ng0=7vJp*XMVA%1tY{UvG$9vDIaStjYO$(K zXlg}I227xS7Rsp;T2ZTNr6L~>L>?o4*4+}N^O{~wYgM&iaAU|M(#_HfLc^1R$hHMT zi9=vlRjteka1oXW>+-sA8+j$z;I%Gt>RiGHLMki?wHq#F4q?aq@dp??S!BnJX2-U5gNknC`I} zrwg!60Jd6&M&V)kXvFk0Z?;q@z&+y^r9@X_meA)hnO-^t4cX~oI(R7IVzA*P=I z9pXj+%Xyed6(v7ceOE&tVI8)t;zPD#o`z!f-xp^t;hZ_j(+2aFr`I4ChDuh#SQ&)h z(3k;S($6tsFa6A{Ltl`208*}$HP}Y}rnIqcFuxEK6s>5`^I*ojAgE54RfD;NPZk7$ zI#teVS*>ckCiKrLl_D(t<>`?^DObxw?;T-2*ojdDPMdF9GeA|TOsZ9b1#MX&zHWLF z0h+gDDFFT01Uj&qSnZ0^S&+`#u5=&TUy=rIZq#eS4>T$sZFZJ*=h5ef!e^`W%&KUs zXXYt;=go~JYEC}|XVyicK8IOFddeofyD5gLAFyJ~sceUX&jkC{#p%~@Zh?gjKrDRe z*PDf<7xA>cs!PD;4ysBog9CDeeh&}&1OB^$9(@*O(O0&zEeA3^P7{Z%ZYXwu^v>$G zR``Ls;n7d;=LgA=N4~r zs1AN&aiVU1L(%N5W--8zO=eY>^~Pdyxl+oix~}Hr%(Psr70T0arQ}%58~~Bq+n941 zfL9@!o>9oae!eOg>6<%htqCZwuEK=HTk8YJV$__C@F6)E9*MmHUYNI(q2kU`hFf1w z)w9-~zZ72I{-8M1OWH|)ik}G&^MAsd;1d@*XZDG%eko54hmTK+iq~`!gYQtG2S@jl&9mucyQKdB0UXfw delta 1972 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 delta 936 zcmZ`&&rj2E9Ob*M-8$C^$~MBr(g7x{IswH*)PPIOh(9t9c$CfJntZ6hfI{B&El8RDgB-+SNp-uIJF&Hir*Zl1fl z8C>RWHw04osj-16WdaW8)KPU>U49hY4Zhs)Fy_J!Y~5iz#W(I4JC0x7i@4%=%r0Qp z{xA+YQ{p)YLkc3`gq9lB9lYckU`kQ7=4x-e3_~+;5VBPtnM|2a-N{+YM!UXq_NiH6{SB=+>omT&= zk`{|gTk}Z0Bfc8tHs15fmD@W>{e@;J;eB76v*zK%4c}STjtydWCdTUO%44ddil6OP zz!$4jr{PNH$JJ85-?qr$Web(<+9gfp`dTkVB&@pHF)OCHCeVjjZyQ%2@CYXNwes+Z zUSsIrd%zin_qgnr#C58?T9IE2oTgoB*pq0?S}rvd-Nl0+1HFz(hQ6R2E^UvN-z^i0 zzR&4!vh16|#?Xn_0!a;beps8Hols3}(fah{RQ;;`jrmZI*k3#o2A?%4d=Wb2HTax5 zt&EJC3T}pa=|7=eEp#{SFvnX~=xW|_c0M30ZG|4XA&e_ys%5CtW@#3&phJw7tjLq= LDM%HP(LweXjLb0$ diff --git a/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree b/latest/.doctrees/api/generated/compas_ags.diagrams.FormGraph.doctree index de7e8325895c05f025f08c8239f3b9e83748fa56..d7bc4ac04b5d618750e531a5a8c2c7475b572e28 100644 GIT binary patch literal 144114 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 literal 168497 zcmeI54ZI~qb>R7$uQ#6z!$_bRt^*8raOMr);s^)~3^3rJe2L7%OTT;jz1uza%iDe5 zyoX}cpaH!aSD&mgeuc0~5@HB3#HcZ9Sfa)lmNmw>uImyt#x;f**BIlPJ?B(+S9RUn zRn^^ZymNoM{(jhR-aDtd>YP*mK2=>+{n};kJoBidkHY`;*ZZBi+nS%WYqeIp=J<>K zm9=)Y*K}IJ;yV_%zi#oK#d3dD*FNO8d)=zD*gpy+s&%(f>pHE)I~V)wP&{xO{$!}X z!gs2H+iu0`^=0+t^%Zw6mg}qf%K|rOIKrR$TdM75$M&Zx_N+fybM4u#-Sj8-w!6)1 zx^}0&h?<~y+%3*L)+mxcDoy?ki&W?OvPd$u&N$3RpM6HkL@oH8@s=M zT*GZSi~D=ic7MVSg04H=3&2Qdlw;kRj|Ny#ZP>mKzl5Kcwd^MQX=Sa~;s2Pns|UNz z49fKSD*}5K|Fl?NU$^RO>ZjI^t#9d1?W(t%&aQ5+)pEMK4z;@ncQMOgL&YDVqW&(s z@LM3rL!)(42(k&y}7@PG#2Bq1AAKa8<@4iYc!daR&6e6T!$M?|OUHhL zcxC=y!@LG?!VVJw2|D+tVNn%Xa`+#U#_gmVx7=S1akUfdLwD`3#Y&Ky>EDiM()z)A z1MS!1_NzCe+OMM8%T-?`G!x;rxi9=CS;^O{D!CFX$!fR~Z}~BKIA+pP;m2bAM;1*73FwD8)X}DE4SiGME4%yun{J0AI8OC`15v&jMF7`aJ<7PAmHsDi7R1f$= z)#DGV`v>(c_3uD7gx%$_u)93Y(p-3|+;l~WxjgR=Q0oHyM?JN~>gX5!P4P26E-KDNUl&WQ;=R)h!AF`?N~`4~3U+ltK;TkAa+e?xg> zIF5}Tf2n09SeP}5>2DnL`C^>c)E~rt2f2#i4>?`&CZNVFW2t|z{-LBte|vatQvaR$ zz4Z@!yFn9g0QpGRZX}$y22H?ng5QgxPSd%tlt%^CxIjqAh0Kc5DtfprXMIY}sKV!z zcOz7xzXGx@dQ^EY!GBV^D*SsztIdX`_v77PM3Ihojyl>ZFk^4J>xv`6{)!hcY6Aw zDczZck_&g>b23mSmV%Q|Bqcga%tL&wids4S33h78-^?kvP@da->FeF76mH3tU)&|aufCr+%;cqKM!qgwS^L8aPl z`#2Tlvv7l7F$4CR(@vM>86tsFxnsLsO3Wf9iX?wK&RAjM#?4i8X1k6vXr)$MY|C+H z>(gyk9&qp$jy2C&MTUtJUrWL+ce<3jRC`^i8i=10Kt~ zb3*)F<>0U4E=jR28_(6J+%-;6 zYIjRMTp(IvVM@6f9l#aIf+*sl3@pkIiwgTuTvoH!2wdoAyhN78CyT7M+g%u*VyBN8 zHSbVaLU$6RqG18RuZtC~l_0cB9k4Xq83qZ-;%jb~O`22T$vztYtuzNRV1YsPhSQo2 z>O*wdABJc&-5S+pm`=M&6QofKBGDnG@FKv-#A?A94WS%6Y`NWNL!?QK_if}{`GD`< z9XlH1$wd^nGp-YLH*`HTz6;g_yb`-2mow80X-%5V{PF<=3qtieoE?CGZo@-Mpd#EU z8P#+{Axgyn-BE&=l|xGo(>T<`s{6b|s8b?RhZY(a688X#*Z9}TvJcgrE|?Y=U32lt z2E8C^HufhH#_?+DP~EN8;gMB^2RFe^>%Cibffu~J4176Dj`o!X2mvGmyN56B2?ZBqkMf zNE!bRf`1Rh1kLJUuVhbI*74E9knONk2F=vzw&$Qr)}r(TAx_T)zf3WJg;82WRXr4% zHBSGC`ECo04i7nq#F9M?j~=RN6tYyJ=eJws8Mond?4X`fK`IO0UAT4wn89j<(TR}@ z|0HYeyZOfbB`gO*BQBVwpJjF_S~x2uDxT(l%Jlyb^AP`4*N0}Z*o$o(IWfu*L!`0E zqj=H@+AzI7EIF_r&g+e9>e1ecA z7nSjW4g`ta&0{CoE|OypJxnm8;vl?Y&l=kZLl0wB@^7njsR#XV~;Q@8X5%eIlwRrEHMIeBTccY{Gr8^ zgol-+<(FGS^};?o{9zZ}mQt&s>WSN;m~dP2OSuJ>aptRyUd^e%_+yTxG1vgWDonp% z3A`C$b;5RpwQ5lwhmM_v=UxT=D<4RNJj(-cfP|ws98$s5DIvCLcl?OKZj~OJtjf`o zCoTs^BWO~5vZ4t7Ty1yZ?L!A2PMES{JVuoulZ>(!b=&88GDaUIbxsZA?>2xH4p|d9 zMHJF#CN`)AgJ9=^CShUJB4~X=Ul7H=e2z*U^eWCBIP-W*_B_N}_?7c&Sbk_niX?ns zQUpZ7!5-ud7mR|>OL%|j-i;3hc&>(zaVRJ3>5wW&#bHH4ilR|tId*#*JPuc?_8=y~ z{FFRUT!z8Q>I0rEC5N7@MCf`m;lPYXM>wGX_lLd+0!$QJDOB7bB&6D7``L_xXh3W+ zuOsB>B*ojoZq9yNiCZ_!ZW?rX`DdBN^L!@CiSHPYFyh)UevR_8MizkuM6h^(> zu3-cN>u`Msa*i2

n5#T`8(C+~c32Y0)2sOismr8m=&OzC|<55*Jw+IxC`?3kfYy zv7_m}*d5#l#U=)$J4ERSzF<_{M3gi1baabwc4$dwoT9Rc6-zK$ipm3QGk#!z?x{P~ zgYuJ9B+P(TI=eV`pa4cVHhw@f;w_!hAs5~l!a!vJ;n8glf9J%m!e7XVzh_mioF{?ss+G>Q%f`$rQ`w38|AF<-XQ3< z-5R0`-&35slUBe*{6TU?jTe7ciS)v|?FnZsu=watoX2b~T1cmTH!a z{?04ImIE=X33FQI{Ig_qgV0JsiAyp|mMmK{OU7DSXqJqMsF==@6}_QimW;j2sI+Io zAw2?B2r~YvgQeMKFbIG-`=Ele zNigpNlkqV4ZPlRJ@kCi91EYlJ}d#}cA7Ak1_M|J8nXa%K@JQ(6!eG?fn!}CmUjh-aVAZ? z-;BSGr(EzBFqs1bDZC4VE!YJo-;qY_wEz~z-T{kwUn%@uE zF@(Gp%Z2wN?p!!s6HjK*Y#%EiF}DXiWVHt?m^LPZVy^6(4S4&g%KWk7KVE96s~^a4oVIc=cy-&v#0ynWbf@m zr%_=Nn^sqoSE#EAlXS^yvW`gapXgmLnlTDQ<`kTj1D%&amx0F@bfc&-Xyn8+8`PK0 zhY9gQPbU6yEQ*@247>x(9QiowTaJICh=5z(68$MzrRcXX+8$5|9bm)Thp<@4*TlEQ z{Kh?qf7VfkTTy^o9KT8lqb!_*VI`miGnNpgN4*Y2vQw!!Hb75Y(r_#NfyKHr zW5X**n)eajL4xICZ4#g^&+7qC!NMgbTV_xqDh#h<%bwRpueQ4+(mSO5Us8i>wY_Gs2-Qc0!cSWm)N|(@c z9Gm=Gp_pf9wm1rHN|zh!qP!;;kWlm&=b~vAB#6guKd1F zSovN5X8n=+w_uInw{=Ti1Vu_ufIIOXx<|X%En1*xA{w{X z`#V;LZ{a01(uTBkRBn5QjFrKzO0RhjvgW^^O7(sNE=d=Z)o$U4i542_5EIE6ASMzu zFH%O#nq$DL>LuUnP$bpyW{8=9GIH!K@lFE0!-1H{aI|l0gos&Ac2OY)B}D5hgOw0- zHfk`$981L;b%moyR2j>frNs9l4Jd^HwDY}rVhaW zW0pHbYk{ZkR6h8l0?cnD_sYA_g<-FZO5;x;@Pp+|qe#JC`3jAv(jNQ`&^sKxGH&XK zAN+TaU7%N7#Y2J5^pqgohs-djji*?IeC zU17F*JxUUc<$0#?POQA;y#p_)p?L&l3UAA5VWt0ylIqq3sc4L<8H`|mLAfwfz|96( zIhE};GN(Rka{2$&E_-3@9ldfs9r$49&8xU&4FIG~0A6xS!E% zgS@hWcPFCSW)w}06f>%AgfjAsiAtcCi)xeVsjYz~kC<-j$UZ=~Rq=i|?uGt(1~nm4 zEDtqAuPCFQNOm4-Fp{mN+ZmB;C5fs@c4?uVc@fnLmcj{l9X8bRuE9%c+#W%x*;QG+ zq4af8!tqI6+AyiZ8VQ9g8=N7&Fh*FG!em&r(31>SaOehX-sF9Q2-Q(~+Kf;QjT6%H zuDd}m7okp96NvgRw!2D8)Cb z`0gn_5JV}%5%L>YNz40nyo>`v-j~&qNzFBf9e$Ffk0#GEtgso~F%Wq>m)!VT)& z`u(*m`H7>!@=#jrmC9Hq=6oA97<2xFZe_%rPmrjZIXg2Q4iKd}8MQc<{tq_9^8O7k zv7<8#;Nu3P7}7Ekari# zht5FB)bKEaRSC+-Gh&+ry#r<^f_Yqea8q0sU3Tt1vb!59LHx zDC3)0bvbGGQ%zz-8EwOg$X2Kf&b!~kMq1wQ;$<9o_efSxDE(ZNcb5zFfn%pMZ~t(y zaYVFuBp~tZ{2V39#QHKilM(AUyr+byuPA+OhNv%T+>nN-XFx9(qPFS~1efxP7j}ic*r63&@Z8p`35qU&OwheEWyw(QMN>=^OUh+ zMyN@R+tLVi3Fze_ly>NsZ1IR;bvBs?V3oR58YRRIstjua)PB@pfI5qcHv-fdB&r6~ zHG42#*cPMsM8#-ZwQqhWi)LPC;l3>+WdfW_F_i3Dw2CD}^FBh!NP^VL2Lr2W0d&w&L z=_!;G`lL&$FPH3qEI=zz0k{>H*!?$uN5Upq$tXm9b0wIc7O%F#h~EjrE1$#aBpF&7X6V z{4qE|I^s|cP0piVzy?{~bMP__JlX^mH5}A2t1Eq4lt;J7+z8J?H%fxSL!P3ErSz%t ztC!?1GNmps=bxEj3?x;#6<;tFQYK@`GPmA^4rbhnzQO<{O3-?@G78L~^?=4f zY0!EI^m0K!v|1=r!qX3x!C;1`XElCG!_&_|FBhJ+>vF2t=%eP-_sBHBr{(PHAl&-> z)l>0CVh9JzLs79?DubC2wP6KlFhu>m#s$I<@Y^J+MpP;KVovzsD}Ksk_!Wopp%pEq0O^#G|)#Vm(t*KJLnxo_)u#{Jo&wsOruYZP)_WT$~Y$S zc&Ne1vxjbClpI}7qH6M-8j*+X2adtRjvS1zqmhcE%zGVH)bf52FXO9 zQ;nH}%VhcSe>&_Wr8#-nx6tTd75cE+&}}W(EYVHneCUH10}M&)k`?3+Wunr<%3v|0 z(nA_QrcvoJ(91=o9qN=wYVe4`^Z~LCfN2vh5SKr;$KAmWTfvvJ!z0J?uq3f#E4u@s z>j~6g=z1?z!w6mPCQ&uIPREbfz@fo-uBZI*HTXBWAl`mwB+D`O->}k__cwSM2aJ6= zt7VmbD~hq%6r%XqIOcPZ;n7g^u{^jE$%gOH<9lF|{V)5CWtbhc5+Z@YY`s)A?>X;jYm8e%bkYL8M2RaNo32S!U1<7 zHo@}FR|e}5v}fiVsHoxCkl9)3#iD?-lYkRGiD5)IL7pK_INl7tr7<*1<7cu^XB3La zeoGl{cVHASxNVS2m*_U73>Y)I-LCOv8r^0nFyBM+IIr_uS%*PY!CBhXfg+uRG zu%VXs7QCcBp^qTwy(z0V4lDHdCT8j|{6p26d8?$f2)w~rd1)+~`yMjkK7uY6$D(n` zyi-y3_P8=O%=q@0#%*bQ`xNNq;+x4>ls9<9bo($_2k54sp+`}%qbkFjGP9>qgQ4uV z={`m%dzeJkC_76)S!~N8-)Lu%x4CaD&++v4Sb59)JG_hop1zsY!b<-Y&B^%dLIMu^ z=#5cs#6;C#;xqPnOP7(fZWXwhA!)Txro^KSD3uxvW;|L0WvFuJG#;G{dbxO{d0i;B zcEm7RNv1J^5sHeQPzE!>Xa{OA7%ijw7{TZm5>>)9W$dLLBx|%_1f|n=}>Ir2$m=Wqz8ds$e>WiS4i%^;+pF(3tjHgeKWdKjB zqv4IkZ@i2Hr+$#t+Dcy*HjdU@mO!h(WcPOaq`=Stj2n zD76kLCB}s1p}go0Wl$5KcB2LZ)CqJmBS38+Q4OH*#UCCX?AG9eitdaHpFL(9k8yPa zWKr+|)LOeqiyHiRRRbL7nMI2O>ZRBa%exUTsR4NejreZJYHg)2ivmiTY6`y$Z!!(e zM8#BUa1LCeQ;yPQI?bV*MLMxEB|6P3gTahWfyPg1S=8%6@37G+Z0(5Y)FIOtjq*@b z?3T)4CNM3c1_M)*?qdWdk3`jA5+{+uP#iL*(@1gf{5Dq9@_rL9;{cuyX0@i$S4F|I zCo$Dzw5lmwL^X8)Pop224e?JUV7g^msLYtB(4&ko%cvZQE>9~xZbp|cYMhZqm#=|d zF1lzwmB89LVy=9ijKZ=W^zpE)hx^|0P+shM%77)fd>=I!T>gx1W(1cfNK_4%ZPx`( z7rvQZYR|!`2blh_5Cp;qA5w_Z9aC|Rn`Nt^>XvsbUd918M?pnZ**(NsbZ{NBuhM%( zaWj*|O}6#u@OAHK-5SexaFL#{6nzJM-+d^NlFK-Sf=mX1g81MznX@qv7^P?#rywlx zYKJmp%y?DScr%Sx7lB?bUKuRo6k9xEa-Biu0dk#K#@K*$oV2u;1x5m6r{dsE5kHoP zWr;mp*)ND{*P;fa+HCJE>G7gY0$ohDEGnFC6>Ng#-HDfRpxYf; z?X2`-QM!3)bTdnVINstEi0U*ZF(TbOiKRHpue+5HI7vy^mzIy3(gbxi=+o?@-<8 zI%b&_iLz{N>Hr*rUvmSu-SPo>e1rky5kK~joXzqp+3zOv?d#}v#y46x6_zQX?HkJA zFhkqdG=57%+jl`P7upQw+N0Kvm}*}k(*V^r!H2WrKwxo@NZn3hNaHezV6i+bNbJPQ z&?lVz6g3#m{)%d0gtMnfRE@K%5oc@!Is^L(57pgjy=0fFPB*aOxXHK;(WXNfrpCYX zORirEx;?(-aEVIe*gIhjG~Duz$ICciZyi+Ba4^ffqx5}I?6rqsuhQu{H5b;dWC0*o zVknHupwVqA3HhhzDa05Fd080<%#{X5xEEt|Fgl(%^ga?NcPpdGjFT5>9G%9=t3WRo zC(qY!z79FbO*QJ1Y0e`f0WnV~#{mOF-hnAQ`jC7qA%&FXVKHLwSN0j=G&-gm)DgZX#!pZ$}R^MlN%( z9EpjG$_OxH;@dRNNn_&sKra^)b?+*uog>Z~`(zY07ABu3U7koBY3KITf%MR@JSon{Z&lwAr!ddob*ig&+&v+RJmVG9xHTU%Q;F1GGy0;uuPZT~is*1fUvfFaTXj z#T%tyyGc|Hp!2R{YiAcqcB4`1*e+W_8^wJ%vj=&XU1~|ks^(GUn0gg9$?_KPG7gxU z%W8L}SBqlmHVIP;)rNi*8tW${8l_p&UB^C1+c}1xpu^up2+C%#3hyK5RUbfyGg7S< z%9JqmpfW7XF!er-$I>wM2fK}-VAT5Z0U-nuW62YzXz{=BXSVLh z@=#msv&u*(eti-(7{C4_-P(v>izKS%m$erj)098W*wyf`uK`l2g*cP`3ae>({}nIe zz@(?L+EVGMqD&HUn{K;V!AV*zDI!6}BYF)mm^AUvjp0eVSqqi{^b_VC8o812atBq;XLirtSj0Tv?K454X_R5p!xkSq3<@qD)>F zK}Fxih-1O>P*&`b$~Y!cby0(*MAy@ej8dX&NmNa$OW7yJXvB6XoJV(oU3RM)LdtEy zEIWM74c-`*>}mYKRJ@HK##O;mIJ54@hFab)<7FI}b#GR0D1BX&S$xqebqvo3mzf|7 z1sSns+=kP!gZdC?Nr_d)!ewNA7(FZ|R#=`ytVfkmU`DJ*G!9B5*2h3E7qLtdD{AYA zf%PyM27onDj+`zsi*|EIf52$4Jk$_7r81NWTVFs8hOPfZw==@lgCwfP)|JB&EDU-$ ztG?^n4LF#9WmLF+4A+*yKWScS-_1AfFJZf4b}dCw9AJNoO}4!MiI;Hz*w?fAMd|gT z0OKpTVt_#!jjLBoF~-Ch%-GLEP{y}E6}^p&wUz6^?+k0}rLrZsO`v3IgqXo?Ih3Kw znA7043G{NoO|$(;Zt;i_cMO>a5Vx|-LO}%F8XP_H2(dhr79FAtbi&&<)L?k~ck^!a zQxa98aCUEN-*<#cx)YIhIr;>!%h zA8YNZzsv5pyJj7bgtenJ;jfc5*M{{TO@DGPj%5fJ^!NJm)O0a?f05Z zySs4NV(6QTp`xl@B8=^sZ^> zU`HvAfy9hFZ3`fgVS!?KSWq_Hy%seX?p{u{Q1a=&0`8*ucs4_3)3=9U z=8RfW>N?O^AI|TAbZ&Y92cj-~ohY!oIL}rqIq)AlZcI1}Kjz?Jz6%HBe?&uB-aGM< z`h-7%&i;9OR&O3wK=RXG347s-%& z4G}-4LF82d&Jz^KsEyItt(TM zgh3+Wk4};u2qDWuRnbMtu0a^Q05uo}*V28BFgQV?Y7A~qO$MprEYZVrv|{9C(BOEx z9vfhJ*Wo2KIFFztZEsd9D}7iLZ!b@dV&M(95z;`8VJx0m#)Gco0nE@r>xHS*!ndWgys4Ua6VWQ&c;&w2n}|YXaI*a; zY^3G=242R2Y#+$#38kNllFd%yhNcs$jdoAF-;#L3#Tn;FlWj3}X1fmCbNSBWjyn1% z{2!u7Ox~pT61*@YxN`BqCI6qtU|`@|FI80H-xri&W5&PFYCM|8zb}JcF8-Okm*D0Z zH3pv`^8f~qFH?K~18Wo=i3z-urr-s|(D;GQjYWu^TiGQDecwS1hQ3eJ{f*G~NfK3~ z@5WU0g-2=w_*$?44iB;^O~U}zal)OMZMPMKhj4T6#A)4D7x>OrCw__MjyU<-Lbd_wrEYaX3DE<}ASS3?i5d)Qr%>@mP&2e*k zsBvP%ggJiJZiH%E-fFyz1AbOQMOFDeL{_v8hS^r>xuW=)j;F4oM=sjeI58sOC^5o$ zd1t=b=+&I5O2e_|;H~4GM(I+Xd&*=w4+B6-m#AC`O&2Hw#SBg7XndH4rprJt7n%&y zCDz^%vuOtz2iOE(5P)f_Fe1W$NK99;F9^_7=g_#ZJS)ylp=6nhD3Fp6!biWpIB z8;PnZcHuQJyn_=FU7z-44tx_X9OZ?dhHI6`88Oy!YIDxbV#6%Y!OJ*sZaS;=mA);? zx&54T2c3lq{HIN^Lb))#I$-+7aW-@LGRgYrVn(u+QE3vy-l~iOGl;!OdOJ`SnJ!3-D`gnL9nfEm{&W#s3(cTY;Kl-&964(dxHQgVE}j=(a|*dM$~n zY1LvM*Y$x|aF#Moq{I4lSp5pe9X9QbUphNH5YesDCx6anGgZ;4+HtU#f;R2lgrKHb zcYHHhZFgZsZ3hn+hg~)T=E`8S(=_+xfvgt=-2I7U()z0YN~hVW+rH~BzGHFw>lW{U z*I~>08|3z|P6Z2FlI`TTr;opWUMgN~{?DQ`t5a_p+WMlRMvLiQyr?0z(uUutc2|6Y z;#Y0!55enBXcG%{WlM@a8u;R2A`r&2(X#;s%^nVX8*H9C$d8AgVidB+!>YJEDXxE} zjBB&!!%s9`N_#%6JR#@vL9-2(w{^r1h#!$*@;o3=Gus2=WH4sji_$lqdFb8^vW8e@sb;Qqw8rcP&3meNl@I5Zk2|b?}Jq%X=?g1gtBYG)ic_JFCT&{wxZutKw-6>=Y)cY$V5^1;e}{6Shf4Wh+(A zUY|h63XH9y~D*QYU+p?^+~b|Flt#Dd@a7sUNr@8vqS$| z9?FURPZ_mDp=VHoQRw4z6J?i;UU7VsMAa0!fKx~S4uv5cjTi3jjgB>!4-w9%%z5;$ z*euKY7rcxEkA9fd_Datd4kk@oHi2iu z;dCq}5vhbSsopmuk_Ba`-utBy>1@!;MI_B|nzwbtNIHoO14v3;rJ&;*DUmkwn!ndYNW^6DLT)v@Sm@80VAdr4dY}(ljbN>>Pj1XJ+Hn>9Cd0k#;j0 z$MRl^m(-v>f|e5Q&+0*Cd=y0*Ke3$kpx&Gre0p=KK;!vU_9Er{Y975B=2uZ^63y;b zI^K+Ca~hwd(d=H(%SAKI%cHodBZgU*?4p7hN{HP~8LR}e2T+5-tWCum!K^`|YM9-s zff?I)PP~c;HuwT)4!*?d%p=;^=N)2{9j4Mb$bJV6V|l-gmvI2u!&$wjjE$lo6R6`? z&eQHyb5ST2Vf-6_B&S6pD@=yh)96VCuVqw@M6NF>J#9v=r!-DTBiGkKFBiEq-vDIo z95J@OKt@qv3nj!(rVLHO*0ZR=u=P1A-UwSylBgP6mxcpEdYg@(mBF!K{Cb*>YJrRk z^Dvm9s<*rD-MEbwzCM%utY5KGIEGf72o1HoWq26}3>^a%RgFX-7Ng-g^M=ybMKQz| zKtoRmxBbCUU7Eu?McGs+38T;4MaziVfnH{aS|e6MBGsfa7|cj@w#H9sq`DaNa*;~2 z06Nj!5d&)**+vB{ln}e4GKdLS`%r@c>vSsK2v{W&RRilx5jB`Wg|k%ndHOiytbS2? zy(q4(j9>9V$ADcHGX|*=iZM`yFL;0>;vph0$X%vPsc)cD8KqW)^^*|wjMD99i2Az5 zBWZ~G9_Zyl)S2o%^HEDj%%`uCS%6QPmwPBD_B>_05~Y5I8jMnZO*b*3)R#z9O{r5t zO2HBX_yQG43)IJ6Yw$)T-g8>H5`XAODg?Tlq>v;pAgOH zh)jdAq=Jey`~%2KaUYpKyV3cKKgSQ0FOldHWuTam=wgiz(@3-z^m36%bE^Gdn@7x~ z3&=ovCZU|zYn8E1Ou8L47?aMWn;0=^l0?-^I!k0yyuvAh)8K&3Se~=0jg_~&CSJyY zRbEyLEB#lLRf&lmoYk|t23ZgjOdYTZ%L@ET=0ar|KaHl!#)NtGuCq@~yIDS5d4Y9mG!^=3}=ZUP=R{F9ieqJUHmsroP#Lh7W z5m!k?(o2{8Mlzcbwt zLncz83nj#ks|m21D1kG#&tONAG{0AyGBDULd1OGtY!;HtCTaW2`_49BHRx z11;~lco_$zZGnm!j{cYzls+zsw8Ub7dF|$SK*jt*Dz*}f0gMZi(R3|(lA#F~1I#Z- zFxsc|v>A-{YMhV;qgy~P7mW0a0ic~D&YZ3!qp0wM5@IJ)h9==>1~nLdUPQ$kWloon zs2V@d6Y&F6NbGAT`2OFI)`Z{wa_QB7CLNBLd$19f_bR-M17ha0T3YGHqKM%~aKI#V z1$Xo6Ql&^P1dV*)09$5>dVoaLWb!quD``TBF9BzZ z!^877l4oor54SkG)a&569Cm5oxDJ+5;W-@FE!oX^+%ILJz|p^we3jg~y!J`6 zi32@&<>)+*uS-R$eHm`t#(L1k?Nd~SjUNMjrPz>mX=89y8?K+GhO2E9Zn$Rgu53xs z=L4VALk!V^ZWDl$U}`GLC-w3aDnAxBoD@G6R>kE>A-EA`QnLfI=fXNDLp3%?doEa@ zm+QHpnbhNL9r1%;bTXiZ|*I$C0S|0pOT0SUg9L!5_X) zn#4cr3w+xUJA$rTvb$Y-As$8lobDEL(7PH9XL)<@k{a+w&_1HevwBwLEbl8_;FpU+{xb+n1<>J;E8g7xvMm_ELNwSJ6 zw?hfBt0@DNF!T&+FbsX1iZ{a0M@dwTq35#Pu7ulhpc0CuhK3n{EGQ$-`0{Mf%LO3K&Z0zfN1QaBM79A8t;N%D;1Dki zf<(5oX(~J^2M@gGA!2!`D!N7)>%^x^P=oR5M7pmLpEi=HnoqkzKGAL?+8znxN4E7y z=ox@4w(2$>MP}CH?7A5n1LsQMB{e{gpz+}TtQJ@Lvnadv#u-f18?;|xhy^*dRHx;{ z;-;J$@=>aJbS{I`s<=FfPz>H9H8sDU)NcVzXE<$N$z<66njHfOc2Joa=d z{Z*7T{BwA5T*HLBF&02pMV!Ip$j@B5JT7}09W5nCSgM4cFDc`}3_VY2T$P5NuY+DL z^cW^b)Z7u%=L=*TJ$+D4?3c=DCi*;!8jL=lqnjAf=SdP()2A$CLT(F2!t~XGaC|Tf zL*@#cM=MT->cbfjco_#C9Rn3rjQ}9dqBVfb#!3$spP96gm#PVAk^m?kRi zLk&iy)9EHgR4S3EIh7!KXW_f%@GTWXDybDXm29j&91MY%aiG#vRvRllSd>bhFd_>M zwYvu^cFnV^POG|L_@*wL3LMa5teQHI{+8~*VZ67@u{UCPFpiy+R$~ci_bDUF3~Bdj zoSlZWw}W0Tq+O(*1y61Ii0SrPvJ=p4Rhb1$Vlry|6ih}XA_+d4BY8*JONet1p$6mJ zJ#;%G&fQI-YR+A{r|Z}Oti=s?cgI~Q(;K^jrEnsC92*K}PvB)7i1>I`Zzz3Tl!%=H zDutV2-8nbN3dJF+dM?_By#_KJzk#8`=y*zmh#^&%0QrnEz{~*ob&c=S0Qo)8%LT|6 zm;rKF>qpGUuac>(yq-fhrge+7B=i`Z| zKqKJ{4ZMs4A2&cn4ac#}6G}f9o^(H#e|ZciTq1N5uXwT=tt2kxlJey zzMkBTA;CC!;?Vm@1iVBULS_WKSmWI^0`3L9Tm(GdjDQJKje6b01!SZw>_ZK)cPsk@ zvF~=&VC*}WZfC^4NfK4FZ#QQj+YdnHoUzK8g6U&;#P412%}oEKvNbbwFY6h zh*82|xOsThB^o}U3@bAlzFp(-G#Y*Y^m5Vg0y7#WjWucfO>joEa@B`B#(!@GBZXyqFzmJ}0 zBs+efdK6>%@42f!xw5RS=56T~i96aLVG@Tqr(&<=PILHGp2 zUqz8Ln~o%YtWRccaMe^y4bIHPnBv-nZY-ngT8t2BW^TwmC5Y`)#+4bw_G(<72C-W} zFBilNXXb{re#AJtl1!z-8A^y9UD-VdXEUh5aP}f9-YCPmghbUi+dKR)5#Sjmxi!eX z!ez9Sag`3aK^+$=q@0_*RK;;P-h)ktBS`Qv4se{$>K~=|i^6ek0FLsOJySr*deKNV z-e#BFLI;!*_h1gb-IdGBUk{m*4`Qe=O2%(@<-19Ud`KBxW{CWN#_?&0{4nU{LZso_ z-GQc$n2+xvI{_by?$N}8L?kFX5@GaHsKGG$t5gdkj6Oi3YK#`yU>U}0ks>%Q{~DVJ zCyn4`9B}z`RzE1cTojj8j!Qfb+zw!i?Q}2DPv#}085(g*)s9ljZaTEHYR+!-hEL&L zvqU$QIrvkI0mi{~IMd9VBhl|?%3v|0-%m7tOrzh*Q*+X9hi0lS+29c~??+@EVjhGA ziwf9iMKO_>pR=aIomRsm$MUcwv12Q{13~X(uy6>yf7Uoj7z#g2qH5@Ey~YVj?QY43 ziw$3%i+ju9CMy$B4zY8w%9ghaFXI5Q9Z*rj0Wq_y(rZN_CJcxZoj||4Dk;t}hTHxS zWIkLeX8oaiMEQs9lDNr!V;N<)VI(k=t(VG{Sa!QIX3SW2i^iR4ESm$^37paEhG=i`un4j|EKTg>%C12`3s8e)aWAH-7-ez$NK_59 z?E=u6y++`68V<+Wu$>bbG&tVgj1927`|&akcza`3D=U3i6mOMex>RkqyKqE2t+>>D zLX*fL$R`13&ja7?oEm%`!Ostp3($^P5vYk9%3ymGV}OBegIu~qw#Ss=Vn((PYdo1o zwoiawF0yIP4;pCli1W1HBKrW^qOI^46bYgww!-s}u{=~2d$Y0+5XZiV8jNEfqWc>(0Wb1XW5gMGT3_m9E6%s`TJ>swf1%llirj03m6k=3e7pB3fSOOo6&IS!b*2MRJ$ zO=->p<|horibjNDcaYIEu?5`B(6lNpPh!#4tX&kR`f|IY-5Q1bEg zVn$>5BB|eLx9Dr6i$K#$C0{MUnZSFcBGtYO&jiMLEajQNa=WxKII1&&cV~@vWlM@a zC4`N;$RVRcfr-xQQ-S%nnYpmhvmq>2emKlyh_Q#m1TRr~I^3;{L$jyDoW?t8PltO! zFW1vS^KE9Ku_Mk^yJQ)7Jftq0L5XaSfd^27JqFrTyc!+hQP~X=Ri>nHRyjsX=^l71 zxD|dl1OD3v|CQmtv+txQ?H>RPAI^Hy!`c_6j4ghVX4G+FX+Fvv99l|K|FKTiJILMh z3+PAIJ=xTMT(Zx~R$2KX34eyXli;9q6W-fN?mE5X3h4gAu% zJMnP1cvC+fMHnA-w4`P7G3n8#fe|e4-zDoQO@Y=MRkrcdte#TFLD6iZo*a`#r!k=8 zDzNRJIoD)XZK$S-e9|o5P<@z8$V)FmdH|iQlgyb6=e@0QeK4`jFhL+O_X?uRs)|*qH0o3?rAqWxIlmg zcTtZ491<$S!%c{Zkj?us46~|n-W|ZESl-L=k{X$Vsny7McUx9_E4^8icQ+<^=i5zu z!(#$CCK}Dd`S{I&VebmAD0~Asm3u9Ent^LIfs55dBGv1a@nAO8dX2_aX?a{9^m37E zy8)@f){YoWcav!VO)JX>(D#X1xOHq6j>m-Mp}g2Vl|fC2dLL>qL>;1=86helQ8l72 z#Fv^jd>+t;#Tt;O)qqm&jO%p6_nBS0RfA6m;35wAbE||w#z~b^n*-|)uwj<>`*;}# zU_F}E`bysx1(tBKB)Y`}Rd9wa3&@%s*h3-3zg9}VHY`*I(^t`>3{18!RW`R!C>@X=w?PR z`XY&{VYKbK!0E!f`ciw&>9Qn=;yTWlXp?80Cz*m3>hqaGELEsF}Ln~P1byji@A1Kny_ z?X2`-QMw7oTjE29Q^qW>66B*4OIp&XAY5`0S+RS|jC(7F17jR5A`?rOAon(9xgck-h%C|M5mW9yvJX%W&f}l}iI&C=;oNB~RaeB3%c04+_ovt(%lkB5#({gEBvWRvy3(gb zxi^)Vl=3Tw>Q2{a)+-c^Xa`62)!e{^uMxsN06xM1@`zhKlT%=M?k4l?JLq=CH<|(q z%aqXeU1e~Xq3zomzont=hoF}WZ3a_dQENv`wP(mQKsDI5$peAKK_YbvKds4S62W45 zSdiF>m7z~KTmD?oU^x398V3o(rLU2w8fRA{&WKZ`8F&Es`6h9fmzA>uG99nP=wNg_k&W7=`$(L;N*PUNoV;A) z=rm652fbXJ)E!ef%)X;uzk3N835a<@ISv>Y@(xVdos2nPEFp!Im?^pI2;^kea z!Fc%ss)JD?auJEDd3onj@UqnN@r@|FlCYc8HM=y^YgI9;h{wi<`7WHVhtN=#*Tc&= z@U@%Oo61-z%2(lKY7dU->sHz`6{j|9@RlMe9;TOrtK)=O!K8+koJsM))gbRdk27Yj zZzY8#TE0&i8)me8x5jO0w0s!!a?w&ZD=4*i#F^y-WFFvT>OxkO5Id+ctO-)t*rFn z;Xo5h^L0sI+%-r%6PohfKu+g=gdQJ26O}EY>Bq|0FhkQ1HEv5o(=l5QH=0kFgV?~-UPG_knMf~H{_98J%|23X#9yo>{ywn0S= zN2SclN*@+Q6Mqrl*X{EzyhxYJFsTqk2W)?;0%w9l{yg+O>ht3vZ??i^2)zV-%OJFz zl_as}CZ+Su*t1{bmo)ZFfnKh(=nVCGv#_BfM$SI63Ls}~8N3}jJ2AmVThONlLc#J- zRqT<$h8_T90-O zz=9ATMu9lN2J6ln;V2Q6!dSK&v+b@M)SGc;b$D;WiT4IHljZ#qUdDlVug&U9Wuz1( z-faSu+FkfET2SfOL0u0%L74H+5A1FL)5%V&HsqWRzID>C3#u9KBct%Q(CG|?YZK*4 zM0`XU9A-p(SmU=eB0dg!xrnIw=4rCMBL?F`WE=qFnli-!g~4|2h5qqVFpnmMh~=T0 z*lCraPEhawsGCZq2 z244OGIL!VBHqY|@J6^^CW?#+f1Eq(H!i?{j@|*3p0mVovO5dXIZX9gd^YmJ**}+t9 zN2zKz8q;?5ApAHvIjPI-GTm7Q+Ht3YIHhq_8XG;(%f&{` zkrqN@N6g3D$uhvl)#V;IA6}LQ2?o-6M+0$Td8jA$Qe|utZqO^tHAn@Chm zxeIQ_XoT}{YxGV48RxcqryH<$o;bBuvKwt+9`2ZLIIY=$zbeS5%&GMbY?kHy2fT~} zwccuI`*;4Y|8Nxj4;sgupmcFjdT!)<(h&6o=;cDxnVP9NX0=hT=y;6G0(?q+Q;8B{&r^mek?6~) z!ASJGRJ;+19wAXRiME8Nc-W;dP@+k=7Wv{ zD>M(Pfl4T50F|r-%23&O26!}tN?4Wzl}#v->T@%wY=AOUDQX&2wt(K@fJ)TT5hp!s z$Sf+TpoD0AWtb9F&Or?Zl~q){5mc6ws2VC4>}j`PtVRd^x2HWg90#!mfPE96;A#vn=mwyrc%>5i}^fGOO*Co-GQXTjC@HBHzO|FM0r> z7z5CZ+i-BQl160U-5^*PIxORrVK~P8o*0wSa{owVAUG@!3lcl4GQk8n>k} z?rG4=#W>A-#bkR&OuA2zae#Ca4K{ZU^XHwm z+k!6*^AG&Qs9M@WIks*^Gg#iucu9@kBWQs6lB~W`MnX|+@zboKtAy`(=MA#4NHi5* z2_8n$nF^K>b~k#MA#Al!S&3q=R>pxD#pX3GO3S_82zt3FrrA<1wsyoI3&=DokfDUw z5tZRfAbS^TFp#~HiZ=pTi$v8RJ8w_d!EM91eBn@OKU>0Zdx<8~@fBZSx2g_1C);Mf zjd7Jnl|$)wu}PNqJ9rrfDE(GeyDPm~6iSIfB5iD_z`I$qjf&V;*hxW=Mk=ECX2?M$ z6H>{yk%9Fk^gaXD#=$#C-1@RIRLr>bw8o2R-1-LS<>J;k+U!g6#i-u~evvGs!WT-2 zT~-FXMo! zY=uL*6<*XzLH|Hqb zZHAj28c(F*W;f{N!i{FZXxPvZXGmqTiV86(A$B!ofD&SEKn;eNGpTqZ#B3!|HDaFo zGT5HOrq;tG9p4SYboz}~?n};~8%T1fRI$RAXX9lYpz?~WR#p0}C{*|f(h$-#qSl^v z7z?JNB|)mph01`r4?W8Ovnsx~#F#fJy>G^tH)LnE6F2-Uu_VCQ&tJwh5VxFgX;hZVJ&8=P{<@95{cBRkys4<7FIx z^UPT4UL=9@bi7pJ1qE#+d5+We2okP_}NfSx?bGfN4uVrf5ynLJk%DusWP|; zO-G#t8VpT;qw$F_0QfSAs?oIRmdK_wO_V&$e)u0bcAkUPvb+=VG7i|;2o*IPJTcoT zJyR4r!aPsp1E*$81*c|+9$_jv=WS&CT!Q{)_*ostw^NeM53*FI(YHuP@HPueL75fRT+Kf+| z57%nq$$Rl&Pb_UBkx%ljN&#(`i@X0@o&UrS9ee5H_;U`d@E1WOiRhRvkT;L)JZ zVmu@Wmei04_5)@3m=Wyz8qcN??5Ci2_y{I7d&C6$F4-s}!B9!;+sYn61Y1`I4MwoP z(|AP~8h(>R)dbs;Mld??AO@IDjPvVEtg7Xmj+b%ZR|zU=I9z1*RC=o@zl3C{1Do-j zO3ksg0Es0TtKbZ_Am~n2;5>QV5e2}ntSnz3numnaeG24z5)5$RfuuhNKg z8|dXClIDm4p|K<8&{bp^;1C|q2i_;=Cl-uH$MZ>{VR@)3_Ecqj6OHPq!Dw^^-Pb6e zx{O5CG&=oO3P`pM#+k8ujes3j5NB8Xh!rDQ&ZS?(N?YDNco_#S-JR94O1~B5(yRC& zEkXu)hZZdH1WWr4FYYlzwGH_-`*W&{%(;g!b{OZjs2d`&?}N&qGh^R_ns`WK-=mL6&n1}BpYvtl0s)~eA_ABDyXHbLj@Ym?RMm&5MiH?kie}k2_yuZfFIPmaG zSuLyd+hOBja(I%Jhmv+t9!kX-=XeaxlJ?-3^k*15!+9v_N<2JjyDI3+c=%IIJf!h( z0`C2D;Gt}Q5%ciJWUX90L{*Ux%6>&Ww9vhbhyPpSC1JGs0}{>7L$q|sFh3lS<@w?H zSZT{UR~ec|&>ovfsHow%m04Elx1u~89JjWN$E_{fkaPU}t0?)%b`v?DyB&Qkjayr` z#Hu@#0b$0f+cdsPV^t0Gam-xDf-dqJvxpuT0|021NNrUez`IhBKRGU|Yw;s%(9z(A( z0(JG$rC+)R}{`eb{6^er7~7uaXc>g%CgdB_W@&a5*7bb2fOI z;b?85T!~5RP%bqh%$PI*WvKGkG$x${dbyaSIs7Hr-VuXoIT=R{JNK_4`^KT0SoaXJ>AysGj?4vsNtc{zH=_o!rUDB`Cou(bXSj?r%5p@MN z%JN=>m(+kff<|qZWVO7~uZICqCI|4vU4zU3kl1|cv{S)n8(2fp%#`ER_d%EE)+7hF^dsrC@L&^|E>j&!%yyYPhuRq2t z9GY%_Z`yk~{9*g+7VlXs*O&Dtu7J1S?sN}6_QkjYr>hCS;y(LJ=Ci-Z;xq5|L>=lo zA(Gz&HE@L*0Gg0pC9KX?_~8urZyWqqhX2mKbJ6ob)(hbOuub(udHvR|db{cD>h@YK zr@IS3RI-b&_!NJvwX6OvyW{SfbwCmpk<^60PS#u-&IW1vlY3zY)HU=);I1F+KKH_N zc3&d+=CZ~5X=uNBq4u}m3ICXY|6O&(Emz#U=h~}Ze8t4XE%+rodZtGUx#=-arzyFx zho27Pot&7!^D5JI=rqg0GcV(B^C^nkf5nThHmnAmhZ3Hf32nCns1?=~TT}}cIu8CY z+jDDp#m-!FX55yG11*1I;wGo(W2i=r75)h2pg23XE>aF3lI<>QdZZTrnm#vJ>)JCx z>G@CqE{>jZdmeIYL4EQ135=~@23_dZ-y^Q% zE$NQIlHNB^r?U4OLw@)0!0+mh$KCYu`29W)G~LLCOTw6m%vi2}IxdmV9CNuWCCXXI z#^-_gSQa9525FSE358OLZvG{vz5v{iy}6Yf43E*%$W%OTvbPtj z4vV<(k{WB`GbU{F2p%WowkxvQSLwYdlR1{Tq5x_5<4MN_E~zFBm&;P3Oqzq}*pM{5 zM2R#_rT5K9<7ym}HrP1?dWVBFLSr#xKULo{s*rWaGQ&uNe-V3~GFFK+_oD_Q%`_F8 zOpm3G8j+?#qH5AyF-RITVaYtHiXgNEC2>Bz9~*3W@5ReF@af%Iy`uDaQ9fN8XF|L? zV7_Zk6qFvuDSjwsv65w8J%Ns9yjqtmSz^|c%7`#y)@L-%N@LbjpqGnTJNSre*g#5Z z@QAtfNwUr`ZsA|V-l&XW;?^^$!MOEtD%OZwA0<&Ww=Nvy){p_DJaUUzl~bGZ>BrbG z%li>t#(_`&oYneD-xlT51u>t+MI@ePW7)D zZBBtQ@{Gl{gI+G$Y*o{SnmJ;|Jcn#Dj4}8Z(c;QDB*wfDH5g+yQL#phIi5t7jM2=x zu@RBw-H`RB$|e=t4&~R#N}!;@=DQua?IC zX;1T4gI=!wb-Jd1q1{J4&Eb(zhIKIfi)eCXG*Sn9D{8O~HcQ1Cb+8(VE=31>f7Y8S zn^d%e@n;v#`Re)?$_(pX{Mlt*irl&W6#WuDyRa0gZ~bTdbHTp#X^rXA`qp29Uar2S zd3I4VNBr#iW3tJxu7!UQEv}41>RSI3HCWgB7!_;Owf>Mqm!fO^AnQ$)O)A>8_QlT} z={1V3mr3HoI^1>a4a@da5XM_)9~KWV281amit%;V%ujoC(09FZjuPX`^G=V_tY)ETQF< zO7EKuRGS*dq&@6k1$w#AqIqe^%{S_7+9k^jqYC~->~+dmC91pyH5gT9s8}PaR7q4x z6~p1``?B6t*`%V~Z*StU%vU*Rri3swV&P$(kgp<4h??|6pX6?+4b~z5h>A7p zkdKq7vP1T_;>5ms1yA&_HxcEJ{2yVJE$@eTNe#0j=#l?VS?#LyT2bck5j?J*(jft5 zh7pF3;LS^sd2-4mI4~T+V<{3wPQ^c``qvC2zW`3A_ZJ=U z#@;QksLQ(-oZ#JxKfM8ex-I_cW$@Gec#9WN@m76Jean974*gTv2z#eJ>+g(~+3v&- z4baEKs=aR4 zX$6(=_xt;6qTk?GPZ#(1SHc0Nf!mt(7yHM<%Hdw%HvGw%Zo3sYt=eLL`E7Qi2g{}3 zu^29u8Y(=XP*QkZr(s5G28rvXdV`xAA$5&v^p|9EHK1w#dP(DNgq zW&LF}XSz2F<*hqpcUxd6kbo~PHsLp`;3(^=gY{m#ufNW1b$W1Qa;w^|fz)DuRWF#? zdGSu)g`chDA1h9`+wNBC@WsD|(*+}ARja{be|@_bBuiOFr7ZSOmHr|X;r%|uYkwUp zm)9ZEwvvC4l=~a74L%sE4kl_qn-=?P8+L29XU{rd@f!U57^k(^KcVYX+ua%*O4xzm zfZMoa*yYuBYX+JL7IAA8_$2v^JHJ?8-d~67$t(O<{bOKmyT7*9Yj!Ge)PZ5?7w}D8 zr`xh&6T$xediqU#P&ofp$9HeX%N0>?sPF8rfyVd{|MX1{D0FQoR+(`d(6~Dn`7?*+9z~!sE z_M!Nn5TeIpmx9QFO$~ME0!=qqeDQ{}`s+GQrvgTCpd(gUB;s$TZKyl;jQ&aWAn5qJ zckO~-`;(o8px$mxw!5>t7W*fnBvk+;D}mDl_XOaMmGJwWXP$Eb*mGTXrYaSWzv0Di zi;Bk=#u%~(o$jRT1T%CG=<~bkL9+ojTLpVDpcm09@s<5kAtsxZxO>J8sQ4X>ko)@^ z{DoFv&sXa1Y`p>hLHr(vJ31EoYy74S9qpAp=+{0N>IC{X`)8%muG*n#Pp#H%s1LZ0 z^*69GnGm!O_BwEjbx^y&4Z!}41NTGpw5x7w24Wxr!$w4f-?~EWo|%juXJ|POLWC_Q48lM|2w%yH@KuM2h?R$77M`Yu{K^(TNL)piei`eJ`IY-VUM55ZGw#h&o@?*NOuVeuyD5goe=eG3fi rllP(O8)KLxel2|20=>D~ZB-jRI5E1>o<&Da)R1=}8t@t1o1Xl?hIpzP 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 25238094eec4bf4f5ab1a01fe08d9bc96256e2d7..fcdfbd6d114e171318e5b89ab7be072312a8deb7 100644 GIT binary patch literal 14601 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 KGzX{s?*9UfH@(OJ delta 1574 zcmah}U2M}<6z;WahmiC)Bq?#yIEARGi=hRv($Wc-=!Vo$G-*TKrmAyOxArAXqS&3< zsng(L5@^<@a=e#GAR%oMleV!b4|^Np5nf>82{a*<*9o!bbwWGWNrMAay!iUwbIy0Z z@0@e*rOJ&7;k@we_kHWa#mm9O`t?ry!XK@H^@q<$YxM#7hmfD(4xb@Ms!#X@accul z_-{ZA{oQt7krm~fzN#p4PJ#bIyG3O{R#h2>+s0zdR@9bs&uH0|x+&eA$n0dcPqo5w z%~+bF`{YvDHcLgV;JLxIa5fN{TP_rI8~zL@GQomr*|VmtFS+0jTyQ^kbB5r|ZI^vC z?izs^mx`pNWy_l$!wr1hHb<jZXE{N!%I|J%P*eoDp+4Ip==q)}U+0M$+Jo)RfUX zg$_YyhrU!cG|RO76eLeKQQ)g~m3+j2NMke0RIZBaJr+ zoQU?pul>THM2~o!=r}H0?4AAFR8va5tn@R+0QKkS1XMd!@&)7dR$cI#2mX>^cI+2S zKlEo86xKnw&=n`^evu6@xh^u@oh54xWv!@erJ?NbtCbyn?JV@EO`UYcUK^2wd%Fal z=|3AeKz?VG->vJfzFI#!-d=x)(mbRvv@1hyGuT+Y-3{1`R|%ZpB#d^4NVQQ60gG{? zQ4F{m?aMl1ZN^=PDDJW`NZ(*AQZ&kz-bpqX2Wt^eqoag}@x%d`j_o1OSZ25x3UqFI z0mck^;~3Ln_^T`3HG^dJye+TEQ>CJgHxf2tr}uhSBG=qkPuFu-1s=pRByu^brt7jg zxaP9p+ zz#i)nhMH<--PS*;uTE4drHc22q?5^`-V7TpPPnWW=gs2c>`Fyn@ZCN`WFF|yUcjfJ zq7`OwN=wB>bOBx3PtIb#;QK6>MBn4!mYVJeBEo!WNi&PC!Z 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 c7c891d7f294b3b46186ac3929e74446dcbe4421..32274437a171d3fd936b934963ec48411f86bc40 100644 GIT binary patch literal 15158 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 C>Zx!5 delta 1740 zcma)6ZD<>19Pg9MC5?G$)~-pL%gbH5F6p(IHZ?GnDXklHPC8#uinW$&dhO*gZ{{vt zGZ<7vn0O4+|BW$}ewVR*3HVL$<6tWD1@^&#Wx~EFQol)Y==0pA;W{(jmwWDc{;$8^ z|K*GI`!BPb?B#`{P4*)E?%|rB2k8OdI^E5?eF4{xrI^1CdbiB34EV%bCu*ZA? z9^bG2Z$w@c-<2Dp$frekwQtxZj`5ic561%00F{-clB~9+{R6Big++ffMTP59vEG&z z3#zs-U2ZH+@Rh1osFbCmrMvAPb$gfV#iFc1!WR)dRCB4I$t44fvGiG}?kMTA9VK2T5Br4a zg9Kau0KqofpF%gNyHFcj#~p8CBc61?%D4ah1xQ5YQ zlN-uH?(ih~k*54wn}OTi8KBSq#Xz?Xh45es-M916ac_ovvPg_bTjM#n6^T3Meeh-YNQ92)=~Z4+WWFlZ$cSokjWrWaw z4cEBI;K5cH5#g(_Kw4ogl0#3?fPA|ZCTKwWpoH|0)$co86ivVb?kqY<4Y(Pq$>A;r z^E7_UHX9G?;1{=I8T97=xY+doUCj6;0a^qC3R;ihb?k_(2oH=kxkM66=<&{EtZE2$>uiAEl;-VTv zAy6cXt0onfRIOGiuMriP;g6AFA*}RXu~;!kmWiP5Aud)bC8Yq1j4ywc&jfC+u2bT-ynYAW|kM|kM6E4V>4a6L$AFnvYOw& zgJ-Jxgzj3AHK|ZEBxp>XKu%~zqOBjM9w0}EX?>r&$E0?NA^wegRNX^6lA5bz-(xEH QNL2)~`iZ>t(=!X`AKF9^OaK4? 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 cdcdb35f68bc27f439c9b234b1470dca08096acd..61dd630cf3e7bc7c9b2056cf4316168e95a01c4b 100644 GIT binary patch literal 10506 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 delta 2414 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 ZlH*%mViRYE)T?Dvvdi)Ut-(pZ`#&Z}p7Q_z delta 1760 zcmbVNT}TvB6!xw&>&&XGLYVIAHd~~-lbR3x7+4fkFM;$B_#lhTx|4Uu{V8YG5E2av z5{5v|L=Xf;54{vrLJvIz1z}|LR1X8`zw5A<;h0T#rfRS7EwyZMNZ6yPYov4#|E8*MPrVDZD- z>B;zMYut)a-XxAc9skLK-lNu8%W(|Ti*SVxHPR`CZcbRV4S(^3RiInwDH^5#d&Oq> z$Oqw0O$b*3qW&A?9z64}kf#g?hs8Sn32ia|P@P-pkJWXmsUdYBl^#(CjdVU|(a0f! zd1v9aaE82hGl)xQdqZ33JfuZwA|*?*T##icCR0VHN;0F$ajBz2Izm-xSRIq{$0P%{ zx}l61QZAoTI|B?d`e%rmOBDeQwW3*_EMzjOF_1~?h6NVV33EblLS)YaX+zCAMu+vT ze?6CzWzH2z<48q?tuqx(ziy1=b3@+vyd57w4X6{7y)2|wjnE=t!3j-dfx?;}mqHR< zeNxQh%gnTyR??PU8tFv`(G=9|abz>Cd-Da#1iP&!xRiUsZTKOa0yp_uY>gnCuNQWe z&LG95HwArUkrbK!vc)T(Z2ArX641mUMtyHO&#z?+l7%64|~#mdnD?FL;kg{3kZW=q$Cq z_PkqQbs`0eu8!32Ou#$H*0ytIxrn+wcn@e(Xh3)ZdxA0dc`b~VmoA`L(7Cz&)jc*TiLdRIBgOCbW_YJS(Tx6{90)2#gtB? Nc!lBnna5H;`3@J3PEr5> 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 0000000000000000000000000000000000000000..412ef6f8c6f0ba8cc2e3a20862c6a4f08e8b4b40 GIT binary patch literal 8608 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 F{ujDuXomm* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c620c1e488d76937d135591ddd955a8a343c8790 GIT binary patch literal 7107 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 Y4zwQwJ^~po95!ecqJ;HDE4@$p2WFZFf&c&j delta 1798 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 literal 0 HcmV?d00001 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 a641b5691a6206d25754facc99a6405062084bdc..318ddc912aff12631585a031d7c50c296895b83a 100644 GIT binary patch literal 8684 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 YZ+VGLoEcKDmQBen%L}vyC;je!0SeNI(EtDd delta 1865 zcmbVNO=uHA6z;Uy{I<4LFin%DTYqS~wpCHFAU%lMi%=*C{)W0~rcS15He`1zf+ZCc z4eq7PiXeFK=2fB>uPTaq5!6FPXchG$c=89N=$qYavQ3Ls56RBYd*7S+zW3gIKJa9> zFe_XeYM&FXpfJnTN9JxfTZ6VcFFXi&O0Q8IdGtPUn*FH1kM6NwzAiM#UN;OjXR&rx z$xm)Ce_6!S9WIXtobQNj!$v*x5(hDfFJbnOI%8c5tK(xiIWJFP4d+c}_Fgb&U`sHN z&W;M38j)@plZ|}gsxY~SoUNMJKxAgc3Rq8@mrNTgO0Kif#%Q=GldTDpbi=PVVd`WX zIZvX5v4zGMYw`No7r}=x%e6;fRzmkn54|CTo`b6-JS82*|6h882jVft3*y_u+%H|_lrje7ANsJQJD}m7^<3_*Tk%n!UI9> zGQGA7&Zf!^Hj4oxl+-gBtc_*Ts%F#8_WD{1d^(oa@RVDE9shbPJIFIf4(dU5b+*(2 z!>ej}C40t=FIf28X}xI)T$PN5SaWM%fd)82lzQQ#C&8v(>~R_KWfCI|q+^7{N5CLp z`0-Q@SWK(#K*1`pPB!@+s$FoMHE=TPY>lzzHve!XzSt|in`M7c#sybPTdT7vn29OC-%^}WR zSo9EA2|Ft72d`CB;>&K8Xxxqdm)acVk+>EID^cRBYEemfmlCxnSg8b5C>`QTgsMt# zt7y!w7t=tJ)iQoor6b>=b%_42yqNW*g(-1$7hEQ9`Ne^gMMqKMwF}}S%Qf{O18&t{ zfObHOoTLttfUMvgep_x&s*3L7rFwEAqsUsqX%fedpAg3tC7()XWeuxN!F{R%0D?at}_r{sC z2a#;h@TRaPr!%I^cDCO%bO`_e 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 4bced44b611e89f1f94b628fe5ed820ae0624dbe..a4717025f1eb71121c92a7146f0ab86ad9d255e7 100644 GIT binary patch literal 10666 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 DbM@v_ delta 2251 zcmb7`O>Em#9Kie1*m07zP1-K&=C*rjCz`sS479btREk)8m{cS{h_$LFr*Z4Nx^_vN zz+fXo0`Z|B$o}TW0VE_Ob|{bo2R5lnoPm_ z(Wwqov!ApI>l2L?+QUP~8vn=rb-~*MbKzT_5m^`skrG@G29A)Dqeqq>7Wm*AE%^oaMv53v(qL^|LPVVZ0~vR#H5F-2~`W8yvJCe*|U;Zt4K zZ@`!0UF3UwmZ3XxR`|}9)sFX~?vLazn3Jwo#vaz}Qo*FQu2I8UQSH2CQfrl}bkoY4 zHdPJFT%)Q$Zuc)sAx zxYI)1oZ?}7ShZk(fL=Yxh3F&2@#U*MfzhSkJ$u7UN68_6!LTpYy8E(R_B zPnb0y=G{#%{d>Y}7H|ONl|4{~5#>`D2uC@+56YX0vPTyLn&54iI3kYjDAej_2PwT9 zV&`EpaV*Ip+JR6%;^$mw0Ily0l#BlxXj0kHuNW!F$wBh94=~ZRdd>rgjeHiK?TnK; zywW*Oe&!pcpSTa1)gjXL48GW1iUPjfYVebMe(*&1$)T#~4Fji26sM$*uru6NU$BNx z`-+pEn?6(=JT33q*TW?^c1u~-i+}z4)fF&B5c@~5J=q3B@JV9SyNqN;;m_1bc)dFuZJ_N4!E46{ zB$utsdN^n)#j)ab!_yjW!3Ut}x%47NQ;k?zW?$aa9Ja(CrJPn=@t@(v^m?o+<}_Q) z8;%OM(^Djj{nJ~YANZTZYh0mSD-^5(Bu{nKv!}jl9a={rTf?7XHEOCG8n;!%&jZF^ Ryj;}N_@#jF>knm?$UoDeu89Bu 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 eebb6921ed64d2b41c2b7e3d271c821f8260f4da..63fd020d264df0f14054edd11ceb27eb5fb1e223 100644 GIT binary patch delta 1802 zcma)7U1%It6yDj+?#|CncH69*wAmyxn$YapZc=Lv1`<@%Qi}1(7d51l-J9GQ=Fgo8 zb_Iz)Xbrgv<&F>jwIKMSP$&yN`6A+*R_Q~rV3GPq@kPPsqUX-+&(uV5VVQf+J?A^$ z`OdjBw`V_H%)FF&`;&?DnKz2%$K95FvZZ^tj+z_j+4Jv@{?nGa{Ds7E>CP4IJC6I9 z-Vn6(vHR&?0_i-(pW~C39WG6G#P7#X)M~!*0;<*21=VnZBdY5KhU@5-q^c_YN*bjf zNI69$g(g}z9D|+F3u1W*i=;F#ty+d3tQrBbLmF0J4qpssaE2WFS8V#VG%_WHIJW|h zBH;tnx+7BPMbe+8MgAa{O3_O~b=(|*6&^E(;jy`f%Q*X57$*Z8t>=#{nfsZ?IQ|7s zoEE@Si9JOkH7wotjdcUHk`$FYYNj8_8h;;zuxyLw9K(t+7$jr_oI%kE9GqpP;A{QT zN1(zAkIRHDMu!G8AB)kCDt(HNFw3m03J-PD(cg#eE}1gh4GIyuUUD|}N_Y2kCqKt! z=x6y;e85bXgqrpTkbaK2#o-{8$-%Zy?n(N&GRa2`)`zC+Qv8d$VdfH!aaCqMVIrql zEGN-(%2Xv8IAb12x=k`SdQ&;hzX@h0=ZR!%hJoQW900S26Jfh#oPs=6CL>!+CuF=3 zqjqIf0Pa0zNyxapOGcLT^{!V>##ee#DOfPsAZof0>n7nbd<$3bK6-ITrSpaTTR25> zK0>=A;Vd|>&`u`KPyca+>I3es7yHvw__(oZPT;4-Y z({MIc&$iHdf}!~XtBy^mNOBfj)0S@Sd0Zw+qKKJlI2hbp97qI>Jal}9@DV;qd+m_q zy!KI6eu(fiBsdKJ>PonY?=^poCH*OuxFVA*uxh%Ekj&G!xcRM+h>^k84JS1J1UHfc zL(uk6Ncaeo$Y4NcJ}%bey?MOa-EVyh3z)yFZ2s{0GM-ol3MIho-{LV%Q@xhkK)#Qf>RMZM zHf^sB`l^~14@8;#r%&8lAn^de`fEC#WUp-v8hFnNU6K`6&RyMddPJhPmKI%z^}8NW-ha>&_sTtx2IPM7Jan%Abf3R;%zSdYP$2zfgkrBUIB0OX_lLa bjt>2X#{2N;FxkPjk2RnJ=baDB&v1VOL*_8- delta 612 zcmdmH`&XZ}fpzL9@rkS*jG~hpgvBN<6@V}{o@HWWWZ8Uy@dhK~%E=En6d5fxpJ5he zg>fdIVeXmS&v{4QOiQacvno|fOF=^`Gp|HPA-|v`Ge0jeM@v&dS65;3ejf433%J-d zuW2?;shy&c!P;X=P>0N94{i%ap2>~ex?x<53=A34S!_V6G$})@he<(WO6wGeSrFk2 znGEI(S-%W9KcE869*)%9f{euC%;G7Nr@-yxM|0a`6COoI1&{^ea%dLFYAQTxn5;1Q zK93S3+vHQ+I+OKyIT@KJALI=Ol9GI$jP5{vI+OePSOr`_dSx?WGvvI1uFGPaEGHlX zl-|fE&jR+mwScCeMwUEK72G9?S|DjIttlDou~UHlkq2=npX29di~%`E0qUFxkjcm% z6YGJx%UVEna<2dvV+6=;Y#CR9ffG8}Ku~#dogh1-%j5?lN^BXgGo&+KO#Z;DF!`3C z;N+X!vXeE$JQVwZX7;e>CuNmX7NkzengHT*q@)%n!}yaYisf+iu%)DyBxdGJNu2yw z%#x91vZJWX=3w!^j7-NEHwQ^RVpd-O)R;8~NEG*Q<|XE)g0vR{BR2~q(OI0K2#jZ- K{N`xcXhs06OuCZ* 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 0000000000000000000000000000000000000000..8733b062e5709a117c576159764e2d8c1e798da9 GIT binary patch literal 8640 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 Uab`rl+BPM-EHBU+oD6#Z19l~NHvj+t literal 0 HcmV?d00001 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 044097680ddc3e3d9af0edae124113cf2bf7c10a..f23be20060906aa0614a4e68969af31abb31ed30 100644 GIT binary patch literal 8673 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 delta 1849 zcmbVNO=uHA6z(M1B-=EaD%GY<;#AQlYa2xo^dKl&FG^2>2MJ|krcS46wq$oB1tk?! zEbKv<6+!UeLA;5Qn|Kw$AMl_TrC=5H;>Ck{5XCpU*<>4we}`md-@KoB-}l~|r2`*# zO7qf{rQ~JlBI@IpRzC}fV{8vhu$hZ_7=a0u<@kAk~bSBP;+ zt4?ogt~?$ZUf;Bx;bWoaig04nNWsq1E^AeZ=qDy-)v7u}3{thZojYrvfg{O6 zCLfbF_8`+yrt5@YPMY3DPqkHCNA%1u640*M=WW;5Aic_a`v&^yf=V|RY&s0TT){T! zR(hHaQqDgmQv8P$<%?1T5q=|*gs;2k9={WQi=GHmemjzo9?`V*hr~y`guS(yc%GC_ zl8G8QVQ5vGW)33=`;gb7=gRVwos8JUWVx zQi7++9M&eW0bAWrs|K!UC6ezJCbd7CkV>g(;36wqv7%Wn6Jw%0r5i2<{8k`dmn~UH zCZ-HB<7a03zuwG^^VnmFg-}}%q##orTYVQx3Tq#Eb5`{bGM#WO3l72Uf48hie&)W81G`HZl z@_%K&r&T8oHd)r~zXNatrRJgLZ#Fh2C?Xz3`@w1jiiFrt5zF|!|0OZUL?l7P!B&*a zibS+iY0U)Id4uINgn)*+D0uV1 z9W;2ds?A^%8yc?Vn;b4fIj;C@TU^H0`=q|Iz2Sj<_mkyrD_kOmI#sq+o*meOLj2R(Ok;lF8$z+h>D1fc@H?<$OYo;#az#8# X;7x}&iHU;+oeshC1m}$l_&E9rVA^ha 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 c1ffccb9888345bbd62e6fd95daa6fd10757855a..08744b4155d8f3953f70aa07b6d7dc2e6503874a 100644 GIT binary patch literal 10887 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 delta 739 zcmZ`%!DG)YsD)ahhuH5n5VD56k=3PKcVTonmg=)_ET8PiO3BGQGB zB1ObmRPIy6t^R-vR8SX!3&FLxav@o`EA$5h-y}^MO5ME2yZ4@R&pEuOtFJEdUH;|s z)O&sx!0&#B?*MP{wU~xW_(|M$3;tgmoWZat$67|`k@eu-c}fCnl*~B&YT%%Xcf_S} zAOKzo{+Y>WRm*DT6sz57SS`J&WtDth!M)J6;(+F7c8fly8NxetO{?i0UDK5Rf=XDC zE<+fLiTte)OiYlJDX{Bdm8tP58M;jeWP>u9B^)_bCUTh#1Rc@XXcOIT*c9n#>C{nu zcq6QW;%zt~AK9>yReD|Y#Fwx&DS?39=?enKMEC&pIT^o5eq4_ffx{P(5|kK8P9XcN ze-))@%J*Bto3WF)99`tKehN!*oFs<<9Mh*$<{VQol3N~8fQFl~by)M1E*vPW46_jX zLa*1Au|z7^i?6_aZ$4%XoQ>uSxE0Oen?xk;mBw>3+xRhY4xV^0aR|fIbPXzf_dIjA zI__TZF}M4QiaW_5?nESfmn@*2lu=Mi>0QR|1gxsr*=!rs{NO#snql7^zOkj&Lyk~0 zI(nl?b^M_&f*+S7v+n8nzu?;gcYdMAo&Cmu=2v#uPOznK7#`ea-^lbD&uo%rKZ^C; IT=q8n0|Lz6!vFvP 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 e5decdf949bc2fb4d7a918b5d27ae8b6dbcd56a6..5e918fe314a8e62aab012847979aa5db716ebf18 100644 GIT binary patch literal 14304 zcmdU0O>88`b>{B!Z-!iw%e7XPxm?X^Bb!SvXY5Fp<+bHl5oAH2#W;$bKY88TGhM^( zW>5F1e|AY&vSm9)M4%D_Ry(>R$0P?QLTn_l69h;A9dZbeLjVIYk^q4(x%rqwfW-b@ zRsU2qXPPssjR6xN*b>v%Rad=!eePR7_~?xI;j7WmcKpM(X<2??u_)z>R?tfZ z%#YJI)9YVJUrV=mBQ)@%4g7{XFHx1GC#eQ@)hbHJ6_bz#xF#y7dwGp47ca( zd3)hjx@9-`TVbJVL?2x!Q(RW7a z`}I`vIzKeQS)AGzc*7_}vCr}OOoBZ=>p4D4_mZy3o5f_2ko25mMI_Zi&oiS4aNv5* zHwW@+(MpEpP1o!lgse|}621_d`}8QaSM3dZ*}iO_vp2cdv4a8Ygo*F7uyZ#E4?4YI zFf=2>+>g{tFdB8tq0`xC=xN5xQl7Rg$J`IiLDa5bRf^vZBZz!u_iWO&XZW1sTkKFl zSt`JO7|OJ-0@G{weH6bR!0&Yu7l?(95ONDZIsQJB#Ge!jDJR*w-r6eJAHh{?z+yYF zuBUvbwx85=NjSCV_u|w{><`*IC3<`I73c`!%)%~vC#2cJlNEYmL=K>jlTfp(C&ps6 zMS8l?x?_3?dulK6aecs!B5`?L*c_2w7Np57NUOOk*mJyD5|##fNo&gN5Mt~~BamX4 z8u(j$2~6({VW~u&pQp)$$%%WWDW`Eb@NPy!le}*cLn0R5VJU(2JZ5<|Gqtxn!7zro zMX;SX2)v%zvsve}M^K30d93~654Au1c<1nm$2*?W?F>aTwRR#WW;-B$V8Zz_qw82^ zY({aI^a$0c1LGUo@^5>1bd!t~=Hlg1!nt4-o`4 z%Tzn%h}=QP5W2c6(*gNF={%WquNBYc#Isyq* zgerb#p2{c0RXN$8j-QO52~I-t$B>k!Yw&r;7g<6DpJGKm&8)a7XZn84Oz`f$nRu}w zk(e_9Aw?FO z^Dv?e`h-b2c#EHdL8rV)!71pvSU9D6?4KV5RzkV>;)sNbrHRNHDQ^@x2`QqVc%BFx z{Gp=xM8@S!BMy27f>9i$?)sUT8I8z^F#EfhM2wJ>H^x%lx-L@FGxnww8!&u|G$fo@ zCe>cx$Lji0T_83nJc{h0y7%^TEN%s1E5bk1ZxxF+N^sb}j7nZp7VhG?qLcDbHnf_nnxD;+ zWf5-FrV{gCnhNu$sP~3@Q$X+jBK^CvJEO|b4Xh)DQU3Sa+r-=UcI##f>y~BkyB^jD z`PHpk6{=6Ss6UY;D{eU!{KEm{VbpF)i*E2$q!Gt=h?nttdQYX3f#uymMPs{yMhy~K z?!XHeRy-P!#hggdWgf@|{=Pbs-pM|(U~&6XDc+Kbzm0#;_9c71v><9zy;cddl{X#o z+AmP=&D?YrVNAa*X*PIM#8UyhD#zHaSE(*9m4ZCz@muD?lLHJyA;OyK?& z{uRjnp+%QjLOC_LS8;h3!_?vF=}@ziM;!iqDMqFEFTTyws)=n#OpS zU`&4|Xu4m*zXGW9THMMlqtaR$!#`D6sFx)(Vw$%wV)yrz=|>svMva1U{%ZS_-2VGi z-0G%Ffc+5TCp2A&ZM{Zx)1?VUneMM{Z{I^|I5jP7=~j)9D`y#H)cQk;$NK8u{lBSz z%}n}#1e$t0rnY-E=@kI@--4!Y($^3?-Z_3qt%@Ejk-Q1 zx9^{dTiq21=xZ21p({w8OydePfpmrXQNKp$ZMeT8lwObb3$iOM{!Ys%Pg2(+qs(D~ zk5G$v6LCL=%RE?S3t9J*N*iBzkzwo0FIKL_eTn_&rouj3w!TP%3a%i8yQfaeg^@q) zAKhxb+M@SdvE{?F#of9m-Yj*FE)k-W}t1_1R z*2xE@QvIovs;?v;gpIkvp-#<)!Os|@T=eK?Gw+XH|3hg=KYIO-+U0hf`{k+7)x*_A zp!=#ow?0Hn zB=~`lpxzuZmy*Ix<5C3CKTI$|=2Cw*LD$Ts$TX*OsfRR|s+Zz1)H@I0?>=yQAA8QMcR8Y#<$|mygSFdb>i9 z9w-F$5z2#Nrg84LrN4K7W~3w~d0ldaArS^j5ioCCZqQbo_4)fYfsja?-wv5?VXb5w z;*4HZ*QL>ON&jo`1rIxBq3J0@+=tJ>9;g=K5?|A0#cp@$i`S@|IQSoZ<~u7`;b(_O zIB_2y?U32%`~9>Pa+RoTxSRM_w>0PTkP9cVDgXGps2jkpz92Ke!ZLN+n3FG{AwC-7 z%wbkA$d}N-4u_u8bK>+^Jilv(J}w(L49*THXQD?z0&6B07L{Sm17u z$VH;L2I(IZ(gW|aH(Cn9)T|=xUPeQ{kmnDM)NFKHTKOYNS9g~PNsV668HzNOzEGJ^ z50qQ(4xUe_(C5*0B89p)iKwcV-=K!c_2PaC{e?o@r|IgK>CZDnLmcZU{x~`MnNFgv z4*7c($h8170`mYIWSFm41A_+oE7WnkA58=L0Hp2_^e+-%_XBhhGE{JCQLoQT`VxdZ z<)V;q#1aID*b6u`)GE31leW{2l-)ld6>PX~o&uk;%PaY)=U!iM6ZdP9d+m*qWj3X! zxiZ`6?Mk+pBK?g{L*4)XnPq;`ohZ*px?rQi*7ry)St8PVYYy}`)b0K_&|jTm0Yw@* z8MWTQ(EH**E4rv7+~-l4(su->CsGDAt61pJ=P5&m(W?mwwOu5{NRKQpWASVwHCEd9Ut z4*3$exPOoGtw6qbeN|X74sFGYm-{uk6=kZ* z{emCJvhHKPoLy4Y_7UF05Tmo2swis$-u5R&+M{ChZ2zLvB!8%ns(VppwIi0|JH;*p ziXyX`38mAC@-Z_n9jA$!sPQ@{bF6(s7NP4ASkGBm9lm{o#-8CTy(FZHeWR$)U(Q=( zojzZr&1AgFB^1PQuC8`#}(6BaCAp6{4k1vNzl!JQg4)fC8v%G1WC>_mi z=lBKer2?xM1@BSWI%lzNvJZMI^lDDq9-zz20a_Yyh|+NqDt&{mIQ}q+4d(X(+8n{_ ze-ih1p4<^-h?n(;2BXbg!!~`(V6Sd? zqc7_ZDuekN$q)f38xVP-9R9p#`uhng*MYc&9gDO0CWT)NSuY4J!(y}rglXu*hCMzH z7wMzg5{NjKfjauWbBGTQ_==gtfl)T`vkr{vyoI=96ov<2MS}yI3sDM21Xo21(Dfry zf7vvQSYibR%J$J~4O=Hc#0+($u#z6?fgM!e3lm*6EGMEGF$j`zxsW@AeSK?|2XnUvONaD@=lq14MxsJ}dw=3o2j2$2(BCyoHHgAg_Yu`1>$K&lzA- z=Y_Qo@RcDO8nn{`Uqti;=gZX6HNiVM2Y;^}$HVAmr-SAQp8?Q^1??c*@1*M0mN zPXh&KP!B%e!Pg3Gxbx_T9tWN)VZT=)Pc0?+_vhs4O9C?40~WR&7Wc&*aQluO4?IlP zh|Mm%$im*)?jqlWO%9C0JqrO0`N707UyF`#Y=sLFsxIk zh>~ulpEDri^#W6RBYl~4kiupLU1q_BkHCV>ux)nCALyaifx(b4JOiJl;JXYu@p*$^ z$iBCNv3h+O){gl(=HH<&ocN*)C-7gGBJzg==ZFot87B6wRR4FK%c9l0KJ0_XTQ{*X}pr2C<=~{-{wZbWaajNW delta 1601 zcmah}Pi)&{6z^xpNwcJX(lkyQCymplG;z~E8se`85+J5Z8%4mz5F;CI>eew%oW;&q zq#*^NNky_m%kw~!(8L*uamZ~aPCFn#6XIC3X$LL{X$K_K(|DhqhGc5tkbHjMd*AQ9 z-}`sp_+pi7bJs(;U2dD3I%zbjVEE#@-;DJH9)9u#cK03;UuTc(6Y?#*5z3NhJNxXp zz<~h!><;+Cf5h)dq9oPisv=2ZUNWtQR1g;zMYuPX%pRk<%d+0|l*YPN6pgx7F>12z zn!$;Y^awTjKxvsS0JNh8e;1-16X4cJFc4aA>bhbJ`(vSh19<15V*%=OZVt za`w^@Aqc!0C^_0J85%mU)!st^PLG}-W!MQXZpbLAf_4Fq=DNz;jF@+>IUcZgt)^5~ zO|PlbYiJO(hm~qwmCcIT9{}evcc?eSU@;ASARkgk@#bTW#De&s4Kz`6}y$!qJtN0!M~G=|e%vNsMVORxLM zYM1fiAaC}VG*~})7|D`b6qfH&>%nGSYFOM9?2m=WjUGE6vb)~TF8ua?*502SU}c{@ z(pqFG)1RYB;3lKwR~pufUAA`*XG^b-X1gHKP9zfCn|y)%-e15ToX1jxb}R+o$BvP^ zJ(?WS{1Ism(<0*cS*VX^a<<>=W5*_v(^MC@T#0xk)8 zzo0#ZB0S=A@QaXT&Ur-6971Gd`IORnwb3vd?%KGS&cSb@D5!pSmWJ$69f!Rk>lbmR zjM^3s9qgr+7}Je9c!?qkT8)Mxma1?b8*U3Eo3MI$(cZqp60USn` znRc5#8QxIL@_`JU<$4V56-%z@j!aSPsZCt;TTu7K;FXm$ZgzQPieVlyovX(mu=774 ghIR-4Ogl(-IYlyYw`x@Jsi|gh&7!_@?dkL6A4%Bb4FCWD 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 b5b00ce162b1367d38994f8ad330b48f0aa1d229..02b2bb612ea783cdb163b6f661d8032450672396 100644 GIT binary patch literal 15677 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 qU>iS9ZLy;v*5lEGaq!^) 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 4c683b8ff243579113e66f8190195669115109d1..715edf8e317d6e945cbd028bc7979c4b292309a3 100644 GIT binary patch literal 14229 zcmdU0+i&Dn8P8^uNoKN1_R`%VWwUrGg-J+eT37*ETEwcfrKF82R3T8ics*m!*pA0G zzU(HbAb3DDa0-aJAaQ>MUQvbmzynYG1t56i0Ux~nAi zIp6utcmK}i^XF$@{qp;!_&>HB`ljXXb~IggJ>3WsHm`gAcx1Ry@=CJyh2*nIn>7RN zPUyu!-$>XLAo`}|=z-xTHxsr*;F0Boopk(MX!Ik?bMxWmtl2Q?o@ZTcB%bE=*e_msT7M@n z1_TqcxkwvQS7I)kE9M#VvU%EEWoFm(Mn*S?UDpV@cf4Sy+xJGk7OL7XlpjH8*wuWi zJ2U{PMTRc*c63V{2HGg>RAeMr?*t*(y|OhO_sl6aYq`3yD@j%e-Fz$9Gp|CH58&rP z{JaxCYs4y~6ltHcHspB2C7PjlUZu)iifU&h^mO$lvBMBs7BCMnWQc3bQ<(8rhG#o*%)`LRd}Y zc}`#Jn@0E9J*dR(zNho>L!F1Ob$8!;t?O95uFspPwHsQIu?gfm8r&^4w=Rh$jDomN zvJJa1JKq$)JO18vGE*3fJ5;=ZB2?WekLd6b>2JxMGo@eII>q(dI*N?IvEX5nAv|~_i^>g3 zSZt0>#EMBT>8vQS5T%oa5}%G3`uhmWG9h~mvbh;*MST2vql7wf-QL|~pOEJ?AYi5Gn23qVy>TS)5 zjqaNzkL8LX@SuGAV)jP17k*X`c_c=s~Yq_ zDWN|^+?e%l#66z{>{Qr=Jf_#zGpgyaAo;H~B#)QKpCOS#iw%(>GUVB7F~NUoCK#_t zOmJl84+r$2#55aZK};I-h(y`GK5SyIk6jghCvl>0A?N#a-r@hp|F zW}XF+lm@Zmh&X#OZ!Tqd)>0#{uOj$GVPY$%rlv{=O2Pe0K+d5B#{0)&Y_IVI_?WpW zSOx1JBJo3GS?WfBjO2Bzyzp#N80I-j4rz}+X+#RoJ<7lflsl%?Hx*6k8$qO5E;3!Z zfKbpG0+eUJY*C?Dp@NKQbTR`uA#AyQ+3$wfYD`R8%^{ZA4-xb#dy_2-rp*<5GvyPy zY_itCG8|p4#I#cqFy{#@Cb zl6mNP`kqASCtd^0`g(3v;rhCAUD2(6w4q=rhlQ%Yj-8` z3J^<&e_JpB;uzDsfd3*$=c0Tb3)KzfhP!vOGVP5Nq2?5R9V&j{-3C@&(LydET^YnK z-@hu@9q@fHO(pE6$(FIquv|{qWDC8o0;FQWJ(BEz{rWH?xElkwSLL68;<=P)n?Hla zbBW`nGRHY!1KRT3p)8znpeA-)h1(P<-j2xY_?~;*rb}MPQG^T#dc}6}2X1=FY!t3f zZ89P$k5)F$gvcT2)y(Hxz-bDc2wyy1avLpiRd(|%4lPxh3xZy*5LDhyRyq3$K?^EU zx(KjYvM+R%=SBl zmDH_633Nc9B@6HK3G5;MG?`m_w&2K71)N_-@37R>N6ZUr{ z0>;ILCr?P188at_uaLr@jwOY%_mC?7fbmE49-*~*U6;LwCK%^E!=o=??tSsnF1rx2 zth{&{=Sbr~C=pMsPo;}4DG{HUF8e~g8KzD(k3m(ZqPDwrs&f$Z498h^s<%*<9k(#d zEOIhHVPX$d2&?BXbu^;p=#KV*dr))6%01yIxV?5PZp#jJ7HW8ytD#;-X*v=bJB~w< zo`plzkJ2bAtk^e?;M~s(P}uZ86M$CCUOO}%2@D(p;bLhTpiN>dzGFOZYN4t19BjR^r<=-)is+jNfoqeJ z_uOpJ78NPs7UkeubPAGQsnC|t#dRG&QBjJ$n$nIpl-p}!k6Ici_JI?}X|AqVQ7G>W zu}#yIwm`VSJJtjP*rd@v?gn;GVm{4irFF~iCUSc>@+h%%R9Tb;{g32OiTO{TB-dHI zIa#EI8@zZdHz;q&F2f^sc>p?eZS&QV9{%sj<5F!S%bo^ZQhI&4A`R@Zm-$t?ikoO$ zm%F$sl&(=4!Z$M=Rad~@s$i=R)2|ZricKU?vS!`mxO_bu_BVkv3zzH=s(*A(R6k2p zpQNAFXs13am6PQqi1y1|wDnp@lcg~0`U%RbPjZI%2ot2q^3z8EO_L=ho#Q3T3!tS) zmi1iR5ScAI8#Y(-8Ua+87`VjuWQ%|CI@Kavzr_#pZ*3^@tGI(!agmNph8l}oJcD&Q ztrUnCt`uYVs~9u3@gSl}NvB=jEq7(23e?iww~V?Y?iDIAeB(Gc(rAMF5#PYAg*#Mt z5iVr0Etb%Uc+q5Y4o)ls&5N$?a;gJFo`0KuJQv-glR!Gq`Z#C`P#DN$lon+)mA*A=>kC z4K~AxV+&|7c74a{TT!yl`%y6B;<1T}i1f}(+-%LGVazQV%@N@g*@$q9#$`rVSoYtE z%Y6NK6%7B4GmOwWy&(sEYL_n6KXo#cj`su|_0*SB1X2HIL49eN z{NdEZ?jb;qk776O8L3lsw+ec<3J^g_o??}EZ#XpTQwH{84NuU zi=X8jjAcp&0Xvn+zLd@smaOB3W6DSv~I2q`ae8U$!b)=6ceaSQ} ziXtej;>$<-620>3Q|TS)M$~8Tvoq-dQ)rT1 zq#_Vr%e2W?HJhSho|k)3{Ba<_3*D#g_VU zK;`yoUR-}BYY|2EY##Me5w;xoqTn1XKzt%Fz-2#5wDg2EK2CL-VX?zl-e%3T2p(mp zc){tS5k}g`$IF741|=8n4qjX7YaBRuTckoWD$1u`OgAgU$j%QuFLF`qDRpk0VvF>B z0t{2#B{3#wS)$rzUrm>2AyBS}7Q-=U(H5$AtjJXP3Lhk6#&kgXt-v-r6BxX{)G=-w zPO>%4TBe3t)bw?hoilbV$SOkRdRVm1>P9af0^bsCENFWMyoNSHOEU^k{Y^|IFR>-d z_2WpzA&*C!IBZ_xXt4SIO1rlBtrwpjzNF+lkuBx3251qaq{Vm8>47Dt|1G_h$5MzyFT-l)0ZL9o2Rg3Se} zts;cWyam#ALsEay7~r1Nwzl2SRB zIfS{v&VZQ^E}-$RVPG{Wm^!c=Fb6-qL{FFm_5B0`4HGsUDqp}CH~A|}^c;B=EXN(f z5FKlTE$K67-^rGI!!J$%i5cwleb_r_C+A>qF{8*2uXnp>4pGTZ-v)HNVAw^FAV^LC zAXQW-K|K-w;K1-VAAIN<%oh3?E1In*(z*uq~`8P8*P4ssfuqN_SxBR&yBQQ)wG7DgCE%Mj6-!o>=E;ct*K7a^c`Vjp3bzFQI}s3H#R!+N~FR@J9NqXeWWqjCzI+7v2L2rh!fWKD*cl)Q)N(Q8+3p+VE)weO&Ys zJC}YW1!HvvBCPGR(}sJSK2KuvBAmc~VT#Bb7Mvqe#Zdw`oO2)wrWGNo!fa6FLtinm z^QBf^??=tRHppM-=!Cv?Li-#wif8*l__+Nx{0do0bxB;|1>UmCX5FGTrN@EV)EMaVBv+_abOZX9Q zgNOqB#VW3}XNt8DLi%1z0U}`wea~?qX~-05WbU!F{T0aJi^<2}4yYl9W1);Pq)%ta lgU{!Yq}05SH**~>SZ?2mb+VZujcVx>?9#YEIXLch{tK|ajPU>f delta 1555 zcmbVMOHUI~6!y+g`rr`|S}28b3o(|Vl~)we8hJ&7JVMmO1rnUn;&d2jWri4Ij1b>( zLc}vHWTBW4f*Kd5E?nq8U_sm&jUX)UD+QFOBu=- z8f?cKEmZ9+`9?4D6X&-)56H@d2e*x18vM=dqy4beq6x-9O)#rD{z*v+Dnn98R^TyH zbi}Nh>3%4r1jjVcYNoX-np-fa@Bb0Ne(2hLt4VAipm$~qw+cGZ#C@wb5FtJUhbWO{ z(l6Ll2D`NzS}dWMSSS}*p`uT4_7MfMY6^};1YQowsfib4G980%Q}byBz-70hnmG zNgdqc1$bNRMbAhcy>Zmb+oPu9RMg@PB1jTlz-2TFJhN7zH^gm89A46GuMQ8xwCyCb zyoD>9;95+@RX@6e{_2eNR~lMX{C`J2V}c$>X$$&HaGZ(Lv$j1wRQzXp%Jf#)b~M0Z z_n_}7L?r{X#fkc8KgO(W5oIJqy-yIuI>cc>#g$mij?I&%B2JqWYDJzVR3Wy~#o5im zm$Gw+g+50=!!dxY9(Omrafo}FR6Ww~;#qQ$EbKZ55vLt;%bN@wc_=XSSIk)TMo#B= zJ3X7O=T7gGzNAA7ml%kiL=2dB<}j^#etY75<0JX$LujH?fxAX<$|(BaWo0jOS~oDA zq(~g151MhuZfcfRk5i!HT4p3e^$QLlA3QAe>a%4g<_Dp0U$toAtP!u5c7SB+u6s9cH!HF2IEO@W|1oH#?IPO_-kfuO>NB#nm;buB0hKH18n wjrBhfv&uvp8aLRzPl=(pM1Hbr9_Pn`)LbU-o=7k5$bySJf#g1V=)eH_1)7B2$^ZZW 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 6fe80afef1ee188b5c62f3cb66ac91f61556ecec..a530018094aa4d7a9e1d65ac227c48540a2846c5 100644 GIT binary patch literal 12966 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 kXc0*&!}GPx# delta 1665 zcmb7FUuaup6yJA~o8+cRmaa`^bJOHT(wf{hmcgubXk9yrn@g)@J~%NgH|>pIE;mcN zq-;Yv=YybfLCd*szums~f8_~r!zTHL zGn(+KKSjo%&uzk&+$W>}iX_6@u6*z@D$+cSQy1-bpf-tOAqMz#?=!TxOo!-P2S{h3 z$bUedM@S5Eo(R8!zH@N3C!V7%^cl3&mrL|)_62jr%uwF&FDMP=p}eBkRg-#)Xgd$D zc?QWFu$mF~zoO8AqDk+;Pqt{XdMu|2w>*c)J64@>Z-ig7Y)^UbCm&h1b?+Gep=AsE z`UB3=fQBvRONeN-h|DK^Yvc#`#rJgZ5!z2@Y2r9R|3vd~Axy|7lF5eX@8}tCd2U0Y z>oYPA!GM$=BYXD9k}NNtRu?MsN<)=pDI?D-x~`OTRnAJeoCK+Gnv*2>Gnj%m14rSf zKq|#zSo;>dRIBO3Qf;wOshv{vR#10uKJ2%2p@Pv>TGn;70q29U`vkpGZ_HI1Y88ju z7W0cca=4uRl8RauA2`6M!ATkOMbjRmZMN5CnkJ?ZAQ(Qi zx=59JrS4?t@5lld_r}Q)mV5uij@*~C(#;FNG+T$2ZaJJO&6Tg9(_9 z3!|bYS){ZyKHA-t|AV#%TH1Cr!O`7mBF9}B?OwRFF9zjU52>&Qrdr~t|1J(QJH^o^ zokYX(j?u$v&)wuXr!eijg_bbgy^jVu;;Y-`@uECRTOJq618+r={f5WhAJZT*`zdJ& zM$6u47c50i@@%(Va6R$_xq{UXCN??%oVnKLWc{NIOVNT`#@&Xi(NXxg?_|#|HE-+! z&4sr&KW!oWvc2O`qrkET9EujJl|y z?MiGi!s50K;5#(HOe{lw+kq~N^Be{_w@tu2pW1T18}A|;D5h*lCBV<|5#hF-n2y6# z<}h~`2dU_AZyd~>v*j-=6JbIQ+T*7KNfkA L=9?!DoFM-I;phb2 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 710b1d8f4dd59105be3782fd2db7f1a591d090fd..193c93593fe5c95780012e454d96cb145b49e1d6 100644 GIT binary patch delta 795 zcmZ3dJ6WH#fpuz!_(s-kjEqd1_b?t|n_R?MpxDFjmS2?XUX)mnp_iJQl$tW7hbz7$ zKRLc2v8beYO2)6vKRLx28F?lPa_cg3O}6Kr#LAQ*oy9)+8g~PuI!Lr$m63q~D5M0U zWV56|l$iGx(a2!!kx0tV&*4%40zEx0WH2Rz zJ$4FEAAd?}T4r8mNoIatd`@O@36kavHmDjAs2X3GqWH{`)LbN$JtAOhuvwu2w1cH2 zwFpHy3rP9o_dF7e9w2`?xuJMS6zD}Kpa{fY2=^gb2zMHLa(-@ZYF^3Ys7F4F>Co3o_LLx}42d|peDWHf3+TR5gNLcn4sh5VPWdOFf8Gu~;#Ygr!9B#-ns`(Zim zffnM{Y|Xf*fOylmR8@Bn-_ESe^vi@_^3M77QZMQ9|IHn{bv$bzPt3XZI}_#c8Xc1S zAjOhQwX`G5!c#2{+#QEo5zd2nBm?o)-9&~O+A6Ni{YL0h;h+0n?Y>oQF&%r zGfNsuO^XB#Y#++qg4G9G^dGQkL40WuR1}3$(1HkB{6RqrO&^371kb%QvpbuuiOoZ1 z@11kc`JVGR_s)Ir(&JhCS^GtK@Phr_uHIQ$Dae!neph$!GR#B;jsjHf%cb&?Y#YC-(+@yc4| zT;)t<7=_RseACg3FME6r^gW7{pDb$c6GbIy>X2ZPdaa8{NZL|i0`&^bX1V@ zcm)*rvV2aE1Wk}7eBRsJ(peiP@tdt(t20lnWvdPvY8YZQYrImh<~g>r?<4hzR((03 z2C}qd_2#a6)068i>+MvdECv~TE-)GiFg66&4Bg04?E{#@Z9Su_eqy1Ma)D*5 zZVA9B3<0ny*3hAC;OJs(<(48ZWd&&|c}n4P*2P1Og#8VO@z=W|6A7Yb|#{?a!E`=_aGXkuHBCA3GJBo1md*-so@@pG$V zx?@r!CFLzVpvd6;$f;}6@z>~-RGPpytb#Z_=f2%B|WV@MtSmO2tE7oGJwh>(!T8f#oO zI!5>LE1~|~=uZQW9ge_z1RZq9UuM~LvBPK+pXnZDf1^rb&%O=pei6c!p2U!D)%Q$F`V!3C~N`*u@Vi=iJ4x5V%DhXIL&|cjk-6j;W zaaPeEFuYwo>lWz2>V&UNftNJPsag(2qg+vuGrX$8B`CeZNu@$@B`asRXw>Z5ZEf^s z2E8AEJ~f>}{cthD?|C}miskGQFTre03O#Cvh(ZUt1=BC!`>vpS@OWjo%ogD)^EkwD zS7Alj36~LVrN~#r4Kj3Pc{O8YR delta 2963 zcmcImTWl0n7-qJ+JA3Q)2HVT*wo_W@cH9;uMFnVO@ADTaffwwR9M|{r9&! z>%pQT7Q~XQ&kwq9r~TJ^Q&aMsG`Vw3El9O?C6k7gUfLh{oH>YQ`(H4Rm}wL+nwAIP zD54`3m6%t>GJ_IEweW;#+vCs$_$1JgM5jcwj-b#-e*F_>8Qq7TLmWC^&Y@SJKFBj) zP_;+U=^C|{9ksI+_kMzk9TahEZ|=DJhT8F=ci_`thB*(5u_Q#<27p)x46z?Dx8NuC z^my0qnVdAq>qz1qym+}_Z7Gn_pqta*>Q(&W7%bMOARB22;|Q~A6-pT^)NE+Qnq?&# zRaP!!ttd>?xsO2{W{Ekt6h7v|eXfrdypHb$nLktrvVzl?%FN zt9nUboye)GlHt{&E~^Dmv5$^U@w8eQ-pY+HYjR<_LUEpQT;tV(GCvrxF%KKjTv<^h zJ*&u?4%fnK2Eufem33*x1hYbdy({Or`QCY2j&PJf<{HC~QvCjia_OkYs!Ia5;mkY5 z-scu#10JOn;P41}5H2SSAD{LpQZY)RI+Pkionz%3F!jkuUsY9DCt4V;Pj!h@pH7Q} z;mSSMB;s}?l(#)*VOOFHZrAT;itto?2VwTB@m?lH3%$oNN!tuhQ1uj=aM)A{w6&lA z;V9J7z~gTOj>iUCY&u&UBR1+tvJVs2J?UL`96QOQoWsN9;o@lwFDFvaW&<$IiS}yf z-=J3LAi{g$a3cqAH?C&ha^W3y;XPwHsezY@z3`GD8#op54bJdQQ4HMUKyjt!d>(A8&;cR^a9mkKmMXtoL z!6yDco=hGe*Y3iJ0O7<{%88K63Aoza)oTRpIc6G+VD;g48ehuWMq8{?o2i^ka&oF? zGhd^Wa?&C#)=idfX;9E^n)O5mN=wGy+2>z!%VLayMe&FBbo*A7fswI7Qsic=q&L?ug_T`f$LaRa}#4*AQTSi)GNL2$T8^6OeK!X;^H zQk@ayf@%1Q^QI9c0%@+O$az^ePZ=!P>hnd(H0q?eylLs{Vrg2^O*~61S^8R0%F9!7 z-aLt4Bypiz_!xQM;}j=%+;dnV>ehV}u%*{_z>Cq=V`uiBzMrK&Enw=M^) zx`f=iP`-vZ8Ugu4p?whwSR1qphS~OT4;|?*Q83~h&(np$k`E0lJ^Ufvh9)H~@9bfW zD@Kgqq@;_oVv2B)+rjwZTvKwXHTfqKy-D@s60Hr~NVP0&>in#3{g*_DuaG~@2p7Z| ZiJH<#j+nkUrJ-)}J&Ug_b*??g`~{Z*q_O}2 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 0000000000000000000000000000000000000000..8d581abe4e24fa5aa365564928641d3d7194e32a GIT binary patch literal 5736 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 aIxcpV8Q#)q5_deeBhoRN*|^mIJoy(mq*Jm0 delta 1378 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 S!wp5~BUg?Xt-arP8vO!BKKAVZ 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 a06e290f583cabd4e3ee6298ef76bf8af56d3d7e..bc8e07e40b7a4a25197af7fda389fb51d8f671c6 100644 GIT binary patch delta 1762 zcma)7U1%d!6z>}P2=vk(SQ&;X5J{hzY;zdzF5>QgrB`_=Coy-tG3Z*`lfA}4{y-=Bh+zOdEU#33!%Nf8Mjg zvt&FGBX>iV6N%3Q3|8dt(?{a`)F`jKE1gYqbx>hIbP{1t?@ww4{sOY|_b$=|g>9o5nDFR$R{oq?jEw|)Nq&+%J>_C_hF^g8v$C9efLxO2 zQ%_F6h;CoTLvZ{&PNx(U7roB_s9WWC!fm`o&@583Op~@c@(WU!W}Izx*-iYiU+jZ1 zNifSbl3@C$5T<&PfOQV6B?YAbu$KO5z%I%%>_;}w4uH3~%_c;|q10$PR$vBVzHHJC zD_8JQ-DuIyW0t*jb|}~X(`j!16uRz(4|LidJb_|nU$kFoConF46(<7X@r(O;*{n#7 zan3KhBLS5V#6st6VT~=Wb*l!G-y{6$gxWnhUNJ*I6|+~aF<0Um($v|RilnW>sqy^wYp}z2UF5=IZsQ_=RYyNRzToh zVCsNCS$sj~K!&3-sV3*g`x#R4UYvcG%q3JJX&>R&$m{eh)N0nJ-jU8pSsqyr5d_)Ks-c+O!tAOz?AkLDgC{{Th( BC=UPt delta 733 zcmZ`%&ubGw6wV~On{1lI#6S}BW8DavWT7W3)PNubQ7J?vAgHxw(@Z;AH!)-*=s~HX zpt2sq8~*}-UUd&%1o5hPkQPx;uoVO^67Vc_#x-^+c$wk7_r33Z@8i8V_;5;G7Vl-V zL-7_o3#Nt-;{1F11|cLkZ_z0~dIDv+h^ApyzT>P4b-|lJ2;R$|qKle_TT9r|G_|b3 zyU0#StEiKcD%_1uDPc;2XDL~&T%%WLnTR(2KYBlmCaOXh`F!w7%);?h{78reBxeZh zyVxWt+pm`CP3m&FX_6-aQm7H7#sIP%!kr$`t+qvh{+n6+BMWITitH5>4}Utpg}+)+ z*O!4y-v=AfaEuS$oB+eL8eJg;@|7sF0jA3bwd5Z78PiYzlx;_aLu2kQvH1KC2AJXf z1!6KhUtnV_iAY;)5fAtE9&yd`*^wUZw%XmLbC>#f(Ywj+>Vm0TR<&^zUdD3=8g7GZ z2hH{X_jS{QHRkzjZhp%C%f9Jc(-oQrF;SXmaA3}u!H)UQm{Qo z5J3!ilBb#Pa3ZOSD=blGK9tZ5jJEHR$aj(>-?&xqI+*}S6*1P6-532~?l96=EWxF8{Mg+q(P4d_2W%lGXg-lR=~1bf(>`R4b% zAG1F`boE&1Te>CGiwYSD5-*P1V_GDA~sI{30pqt?KReAcwNZS6qy zUEK@|g4q2*I3)__`C6(V&OgZKqo=!{4}8=w9XzV3hN-t}CXrO4RhbMctwBtx7{uIY z$plpqi7Y?=OocR*b-Cu3hHeLBL5)zOXpyzgwk4)NlPWNK){F?foFxv z1c}7dzz8{@H|D#Vtji5WRZK-wSJxE-y`Fu|e$_705Dk0b7~6qaRZO`V04`ePI~cH+ z@*)P>l=UX>#HY9!KP*h}zY_NoHZJt_(JUK*PrFJpG<@E6Epll*m7aZ?B@vXTztO3u zA^?uN;HVX=txJZXG!$76SZMV_Nc>nk>z>Rx)Os%~yIN5Y$_33Jtmilg<8#B4%lmeB z%a?yQNKfriQ2RjY=YS7~K{ekD=hAI@fGzgSX;)=_Wh6JoqMmJ@&tVTALHq!2o=vO> zA^ut7grI};`9oTd0YiDq&#d*zf)l2NwVKv!Nk+LYnNs-}yw1hZX)kO^E3#COcXC%=H==#kP)k!UULYq|U|b#7 zb1Pt2;7SJ5+r}+w&bG4b>V=1$G(IQ`wCxQ!wXt;Vm8op;}BGI38%d!ly^7^^S-n- zClNZ~=?}J%o0Hqy2=gU+_+T5|L^Hq#q&aPboe*fFp)}3X-!aBMF`gcwa3u`F#B9oH z@Se1?g#u~mT1_?#xlXDZL~S=)8xR;$DEJ+CSBx8UFjWUrjjF`2^-uC&!-My*77)Oa zpWJLa*B$XKT1YPyF2K1p2)`QmdttM;a2u)1M$O;zPt%NNMi0TC0=U~{qkjwHw_;Zr mzuv$9LqN03@G`8ZDm7)~G2rfJcyPg>1^5ks^R7PmqVNwYitFA0 delta 1151 zcmc(e&ubGw6vsQsZn|lkHci{m=9d#Gn5<3FgFooOLu{$Ps9-hUmsC*DC_u+iKVuxaxpn|du_Lb+zzU|WuPjEPAR>oc0dR=KiXz=l#*NnV{-vOoe|P?EZL9E=E5+j`)Yw69(aMuk~e z@UAb;$#PE3D$yiBl;&K^4rC2Ap85 zmz@Yx$0l>|e4JypIy^B|y*SuX6Xkt!dC|UMC#Yzd{{w?j!2Z@WYJmrVfkjP1O-(ec z3G6pFLxYwJC+yqyvO`!i(+G9b=opQSu>h|nDTNXxhH9|3CTnq`mHI0QYeEFAy`_UY z7ruci#?jAdkw4Ifl6Z3o{;4+&hYRqcbpTcaUeV2TX@aivY5oqbYnn3#k;5_r;nL^v^idJMj{M?KD+6R_S9j#{CiOr99V z(DcoWUMLY`Fv~IqdD^rM-#fyQ%luqEK|xF4<_5eORy+z*{-iWryZ#g-+yy^^UU=#s zK?T_IUzIL6T-NrC@n_$|XeYUqHPh*HhHLd3Vp~I%NiKqizGGSA+X{%TGy>Ec_s}mi zOh3aXcLe-C0Y3J2!fI<29`+rJKVlWEW;Va(^^#(1kNH;0Dn_Qh2Y*Owu{>GDBx>F! zFdsUE1lS11D%H>ya&4f>T4d9`=Q&H%p0ST%d5ff=@N|PcNsT-18Z^%4hxscX@I~|s Df9`^j 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 7cfdd07102544e512c514d914471cf1d6199e076..668a0445a25c161cb19dde61af44bd7bd5c3088c 100644 GIT binary patch delta 2423 zcmb_e-EZ4e6tCSRtJCqj8B zDG~^_89{fwNk|ieN06p51$cuA@xT)Z0WVBEOhZBfiK+j<80Xk=?1Xhi0!y)T?>(Qt z^E=1>V*dAo;q~y@7iTuYZ;87O>qhm6A=gNuZ0OY&HqNK}_XaM1Gsbaz`zojM+-df# zkmVnmXV((d_K%^`E+=p%dJ|07=m#JQ}NHl0@FH-QZx4eJkESPZKDSA-|I8r-ngt#FZ4R zXt5%jrdn1NBN*u*0K#sJOmTZWCoNiVouDdO0!N_kryNl4Ao7!kkR|q~>DBO`2Y%!S z&{3KUlFTxhUS_A_A|xxa3$fuarm&yg5@%v`uOHQ!P6{E35t*10HeCEib&q-X0W#40JU(Us8?&USt!YMxo{9}Cy+PnqtU$) zmriVRbjP76TuzEK38m*gCPb$HlDTPeB$NZ!T%h_7%TvVDnH#CLGprI-lE zrxEr?g2cn!H$kYeO83E|7Z&2Psn=6WoN!6VHE`=l*ewq#=QQESy1tf!W_0X&p7)ZT5d&c+uKl<%sqLAx) z@xT)N9Um`&XRpT7IJ#Oveq;c=Fuy%N7XMQQPGmWt)ZJjFwOs`Q*&^R>-|zU=Dt}kJ&i(I&C?_ zpGi(tl=X z$#E%`ZeJa{$?;eC_Rr(j2j|`cX?hNBrX^@{RY4sSJ}4+2oHR)mS{csU*LNJ{{s!pW B6Hx#F delta 914 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 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 48c3228dddd5b0c6f6332ebf190702a3fda1c4f9..5e085aad4592935d5456a6354c6e7d6dc063565e 100644 GIT binary patch delta 2303 zcmb_eO>7%Q6wW$!ob|tx)TDKO)=8TE(xLqvp1d9y$E*fkMIShCmi-uJ$F zZ@xFrzI*my*>lBneQRdl^G0NRMOG?LDft>oZz^)-rTuqL^x6hK`6k41uGSA+!Nq+@ zR{4bM%sH~f@3ww(=iRL38s{R1{H?^rRO%9?Or?a3P!+Yyva+?EUY5*#e1ag5XZ-VI z%I_6>^*5U-E*U^XO8tS~@*`N$2)AHLJm zN#Jp7qS6(|x8umR|2+2)xe+`q;A7mt0E*)%Jn97$Lqo3{Rz{YMEJha|$6*SZM8BY^ zr-uRTx4^vaE0*)BDs4)l!e$uhJqD5uoaC11hO;o|c^bq#O`ySgK_qv$kb}JfVxSRHk zr@ETqJ%WxhSO;ot^A^j#PP^?p_q(}PSQ$pxb=@*sA*$X;l23BL!Cx~tYO zbZ@P(NUJwQbP8t5JiHgyjXHW5+r7ZK+P%Ox@kca}SH#VdT**sS1Bbw^d%>VJYNDaL zO)lLJ264MqmWq;Q?3n(`d8KOX;1*5(Yy2rZ@MrYnCS~+98Jn9k?KTeT-UCp*kSA(j za*^pc>N+%CeL4<*1s-ynoA2tiIjfxZ1URI<)?_CDB|Wf6yYA+(KCRGS$B_q-ePmpQ zOl%pK7G#=3Km!X9L*LebOompcKsYj&M913}u8 z5;1=>XW5zcLiC~l@w!(oVDoa$$)h8W!CwrR*sZ;hdz|Z* qtF=3JdvN|HpmB?4p!3x{Tur#6D*T7Q)Ul(Y1SAFi);r@ba(@Ht?#x60 delta 674 zcmez7^2wOBfpzM0$%(8TjN+3OIm9O}6NE4}USMTpWZ8U;F^P$B^<*DTMMjIs`JBC* zU$P{zAPX=uPX5bzN7++LE4?VOAVW(_K|?DqwWK`1D7!+>CDR=&sHvc;J$`I>eQqY*vI;C++?Gz2D zaE43Qc5E@6W#Cy-&X896`| zAXoo~xg&!ugFSXi#uXU9hZP(^lhp(ixO-Hsl5-M^i>(ssCU0O7o2($fGdVy&OfC*& z7D$&ER5g-ol7LpqPTnq{!I1!Qe$3#X8mvOU@ s>?3CN?LduLn}I}e4`*ItZYoH7F)%u_KoXtB8H&J|1AqeW(CY0pij^5f6yM%sIQs+6}FuMvB)vJM*2H zZ@x2UeRJo{!{!&v7s^wwo6qix@2)qiv&}+7OqZMW>akp{UJ_cza)nyySWYON6k3XC zJ+6p$dFYUEx~&jJ9tbh85Ceu7KK;tiamJ+|x#x}C5}9_yjXNGDbB@QHCvk}k{UobH z2_OBIW}mb8Y{_GOdB~sGRj;+$%}%k+7kK9Vfjzd7`Ko>YCRZRH^9W}ozc{{kf0;_r zI#Ve=%ad=MnIQ+y^JKfbu*Km>rD)ykS=<+k;4?m*c4$m^N zo?6c-Mst$J;j)%TdXP|;LnAXOCCLeI#FUiMaLsUM^h|UqRzDM6WMV?kgcH*0uvKSu ztCBHaoQ(K(a0)_Z)Y{RJ)h->;Ig1um`H3uTUN%p>q40jX6Y^AV zPcixP^#w^Nw$l#wMen1~S#lo5P4YI2t)Jm1w z$=vCtP}ZqU`WX<&M}de7zfd~Eas-PCQUGOL&3~fjDf1|?1QWJD&^sdC0LI41q2Mz{ zgOPk3%yTq!8w>4-Q_`>K$LJ1&|4+#9ux>-3@jCc)7NjF&GBEmxXP{nIKv=%RzMdFw zB(Hg=Q0x{jz(tK@)i6HwNG?E;?ewl%sMHjxfd(rW+TDhr$U_uPc7j1T-B_#?D{bW*eg0gbSyRqQ zek|mw6o88q#E%dH`0q@from+Eq%%7Lipfz;&FF-S)_H(H;cC9VA6$ za#|A(>gEd6rw$p1wj+{Wy<9#7k4?+v{d>ygGl0E+x!AOvbt0h}i9+u#_h|EAOBknl z-3GXfHNz|sqjO?x4)oH;nqSWvn+6;3wu~6~J{OiywTq2)OiL{@8{1J+e^hqr-^<*q4g3Zu!#W`hV#xht_`S5YXi!~1{5M5rAE7Yb{?V= zt#=T4j)*_>sT@b3c8ti8c${xE>qVi}5=#6+m#=lIjV?@fJ|3rygU;X8hn@D2K-Pqk zD2QYDiXDd?F>#z++v3JS8&U_YmI&RM+vyQL8{QK?0Fkm41}Hr-q=R^CgC9*r?VfxR z?vTvz)9_>CfOT}~{O~`V@fFk3t0Ui<5(V&z;9N_LLptz$ J>CNao_a7Y>XCD9n delta 1303 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 AKmY&$ delta 1467 zcma)+%}*0S6u>*}mI5sWm28!dvIttbSd5=Rj2}cm1u1I087)g$oE^6xc9($hBXA&5 zGY8FEy?8RwiziM00rlcV60aUK(ZsJ16TO)j6K8h2y7+zBw{PaXdGGz^y;(SUXK!#W zc)dxw7QD1&#KNHy7OtVfF?H6oz@k6d+B$OYcDL=Xg zJwiL`g(E_5eO@(Z3Z>HbkZuP$1I9uYZ`ZxJv`A?66Yd5!f#CTm3#C4KYmS*`jKZZCtIMRE?~w!<+S5Ev=eVO-0i! z1;!HFkpK_Hc=>kX3-X`#mv1Fs1rmeIk@T~VL2L3#PUY?fdoBpyxNP8d_HwZO^4-*N F^bOL{-hcoA 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 16c91aac5d9c294dd8c10589d0508acc685f036a..a819cc809d996e7fbcf2f2561742d84d965ba5f3 100644 GIT binary patch delta 3665 zcmbtXZ)_7~7~fr6`fsCMdu_4px@$IETec1mms!N|Z;&`aASNa#>ALo|>+9O9y;fbK zj+vNfazfxeFd-5J#rQ!;aNpGMfdn-YO!%mY2{D+EU{F3`G%-H!{b}#ImIy9culGKG z-{13lo@e`X>z4;@hixZDM~>Ov@rHK^)za>2uEM8ht3v6;V;@9Y&$=#t>!T=o`6sGM zQy1_aYnOylc45vz-3Ssd>P_PbK4 z0ykIXI7O#et_`z7rB)Qmxp_tBeD5HBy~pYH6u8-9xkw~f>IsiA&G+nlQLJT)HLfIM zIk_aiAt!j7G}$RO<-&J+nDs81w;uvcr(~^hRg>vxM^hO`S3gA^z)Q?XbRX5##YfOH z@Tkx5L4MWSvKkxC@R{JqV^0%>J`^L5*pvfwcd5Eg$)#XXoGo%yW6oi~CY(|d2K5)|Gre1|K`|trz(orYk2znV`_xIzo zp695y@IB9xUm(Y(1YZJ;fn-rtC)qZ|cDN)Y-h>@8!rw7biUBwuu|j0>C4fKox~NYG zKzN^jwT;~R3~}oCP;-i@(12&B$+ZK=dPC8P`!E4t=pArs6+=__$KI$Vf%e051NDuu z7?;6sYcVd9Vr()O!wqR&Qgji5M}ssyCIaFkzBu(W@gLM6AvPK$^%?XLzQXiV1CU&T z+@E|IbT?UWr-1?qciV`>GM$WAh5CvcJPg6FWW)9GOG`{E?#upfSB1|{p z1Et`qC}T{2qCt%QKycq~G7P3k7qQ#aHfMzy#N}&gm-?d+4Q(}e;8zhAp-ID$wAtu1 zqdC2g!vvZ#nhzSyH>>7q;EF*Fjgy;^*sruZ1#}}A?&MSKai*4wbF!PaFnTlrI!o1!UifwrJF@R;@-8yx9ApIDK=Wg6Nku)&xGlh9+U>+e4 zU0IMNdu3sSz$A10TA0N{@S8j&6E0~3_#ENo+7-O~0&TG1BI5!hD0+l_ZF<{J0R3bVJB0^M1TAzAq)5CDL=Y>*UD5@r87z-KPqYu*z%P%e^c~T%kt&$ nFP5QmppDLwn3A)cgADM~;s delta 1513 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 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 08263b75a8e3653b4de3614661b8d8a6efa2d3ff..b9014d328716235af3948ff9674183e442347d39 100644 GIT binary patch delta 2737 zcma)8ZD<>19M7e>Twc01TbpEE*7mY)+N5pTZJo6BWz)I2O`Hlkd|62^$)c<;l?Z!X5r| z=!5==GsI9A8?w46Ta?I4SP#DuPVuW@=|PKo{dAST7|jIfUv!Xp(!V77A>g;?@9 zs>+HfD{@Uy4Ow55t9psZYKc@Wbx|dTnTtfS*^+9IqD4xM*MhE>$7Q`{sd`l@JFfEG zN6Wn>vZz*7l;+E-i3DZdw%@czsYrv!+$d1jzdp;n-Em7r-EdUeU0O{WrVHi!ML4TS}vpp>>Bi5Q%8i5P=Vy+9K*=x8_!V*+1` zk1uDM9MPd?LtwVg)eN&pv8{>TcRa`I+dx$4=nPjg9RB znL_+FA)fdyVf617fov8LAKwDvt@Ip&$*mZ)vz-Sl$G2nK)3qi}uR+TEy11LakO=VA z9Z~>+<5zm*r$(@twxSHvdO_O@pY^0)*}QT2LigdWQ7y|?w-3R03ciQRZwTL3+FDX3OxmA z2VmGjySc};FmLov3O{0{4szY?hV}XR^U<+( z$Hu_n8aV9W03&SV03+Y^D7JX`%`0p2fasxp(!;|x4-c?5yiD)m)!=OP!P9i;H0*63 zlT1RCvZ;GEHcQS`h(+fX;3~-DQNMuL%emavAn*I1wQIR-Z$Le^QPJ&RAM37>YDujw zaGW!Ltzk2% z)|kMOZ9@0K>)~PeXXfoX9n(%=#FTc7?@tUzSrGCm=|!7O^Gm|?vdzMdprWW%TYDK) znFIo>Q6n}BI1X791mr@ktQJ+vzU-`@SBxqQ!?ng-MK9IM@MgKgLNIfVd2qV^tZ@Ta zim^m2n}u36Ihh^x_pEQZ6r^|H@9 ziO|4D$&7prd@xBbXbxT4mpBcTh*@mT`N^clZzdlR{J2wBVmsFa;rErEUB7lcbPIH~ f8<+zNR~6tH2shysqv673lcpgp?Z!%S=&bM`DIa0a delta 2026 zcma)-O>7%Q6o50fcfEE3u^nOuZ|rR12szvQkd&6RKte=ug-`=(5rwKzWycf7gX4|t zwP{f!r4opO7EtuIcTOD0p+Y`zDi!LXLaIu7gabn5z@;~YgcO9Bne{q$W20QWp11F3 z-uHg?PUg=AX-m36Mz*EvbCHZuUO!#VZjfn`tz5$S_pnX;D>eyOzPIpY(+1mW*ZKAb z2_awoF6u|V>ZDeKUpzmeui=xxD4K_F0@vXU-}laouyoXes_>dL)`zN&*Qmt=n^G-_ zYK~xY;+nl_r-@{_5~fmvN%>{)gyXOk_rq_}d2|!DeQ`J|$IuQ?`6Rk6&bQ@3=@wDR z4*V=1L%TvY;h&f83)z?carn&t6Z#7-C|^Wp-p1v^+7+#^rkMn5C2W3Rl;4Mcl(Fuw zR5%j|c&Q)3wb(F(!XZUMJv}60wWO;cqEZhN!}Gz9JY!AOh{jb_nh+LrkZb%M)P^4E znyy!MT}$f>ILYRUSf9|QreLWzHnUbJS4^#BiX&9%5_?p0Bx-rIbc-Sv zlVRc|iDi;pW(omI!Rs3gZlTh8^WZ*jH=yEHpvB#VX58pIkHtMYp*`FJUZ_;JT=(z4 z1hY>}4LJQGs!x)yds!AQK{%3{eZg@(FH)i}vWE-DI@Pt*XSI`f96l z2AuVgn?D=0;m`@(;CoeE<^W$VZskkgZFP7^s@n&sHlsb)q&nU;zkRG%J7D!Otd}{~ z#s9&&qU(nmhIwZg+8WlncsSz)FT)KF`jZd}#XR3Nb3W4`T<=Vni@OsJ>5t7V?1skJ z%5`^AtkI@T=ZgX;pX`%xFC0Ym4#*^i>?TL1xX8eWjEq~dvjA)h>2{SIp~v~v60Q9^ zC#;_3a<<%pfuFTsG6h0?62F~M0Q$o6k-E2o`0JuEHrlIo^V7~*r>2cr?Ur4 z+pBVngW;?5tAS}%^mMwtIc0%Phvlb+&;V@35`2e`GtCgP@Zjl`(qOR187P8*N{7TD%JX1f1rFZV!wzsOp3yQapyfAm)V#8RZF-s? zl{~JjHqMYzY0#4M*vuA+b{0NYk0T%K#*+1i>K;Oy^^kPg X74`|G{KcmgGRnTD^j!Uq(TnImZN*S@ 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 d367a7776bf93d6ca527a456609f5e546e5057cc..fa5eddd975bfb9372fd256d5efe7cb4edcfa7f77 100644 GIT binary patch delta 1797 zcmah~U5Fc16wahcCX+PTEh(ur$?lBH(rmiBTDz#E_}W^8h){glmh2?C**n){W|*1K z4I*0~gk88VdPnfF_#!^kB7r`L_{;jBB7OG{|L_OY3gVmKxp!vrV^<9fnS1Uz-}%mW z&b{;6>er7XuO(l4s{BH7Z=-PDa{3n>-Nx%!cP}?htAl(jU-7X*6PM7A=QE$qI>p|2 zCn-ts(Sh`dB)!TGWG#MXgZ&`yj~-2Y7MC7mC*{?-Z2=h|6{)Z#g^lgY=cc3fq&TzF zpPx8et38c|wVGO2fe6-HJ(N*Zm3@>cvuldHsnEF&>Kdlu8J5}X87^nG@|^#yU&TqB z3Mn7|hfmY+P=Csi-hW6M_Hm{JIZ~A>FWN)SOoSXpumk0s^e2-twc;PRgzpSmxQJ8F z`vC;bPeQ86G=x^MjA~FV@xu~-pj7mNluEz zI3C9iFehbBVTLMIzi-63o%Zm!BggICvtLA>3 zs^WXtSCijD{;&8OyO>>*lI&{sqVyy{o!M>hz@X?Dko$6+eW7JpJ>En0k~2W6<*4WN zo{QEq!7r%$yU0Bx|5LQ4_lod;53S*5dC(#Y z@E7H~OT7GS>Igi~ZX7)+Ju_A@2XH%pGp!=&GA*|>AF0SQwgVS64MLJ;xJZ5hiw5{E zGdr77GNADRF5@G-2h7MF+r=>|y9j}7)>NPAiFzM-xV{A=)I^C4$uSG7(HquvtyXs%^e4Ir}&V!pq}sm$~`!7j@~ZFCBrl`H-LpC%vhY$ft;AYwU7Q$VLibhUf2#{j0iT!mDBr>wT*;=)pDk3QfaG zoL>MP-;_ZDPj|MF=Tm-eg-(Lp+tRV|akvLqz8SDoABe_}8*hQ}@bOcq+_w6CWP0qj zR4d?3e3_Sg2Ld4OmjG;hTFI@MIpffyFrS#So1ylgC|bMp_uN8`F&9(|bqONwv7r)d70Bd6-% gOdjURsbcETXK1(!-v`1s_Fb$2AJ`v#dVEv*8^jo4VgLXD delta 713 zcmaKq&ubG=5XbYnyV+!$RAa+p+$8Rng2~cUs8uSxd1w)#r{1*a#yps8lWf>c(Hsix zL1#$4&7R?#RdKH_+g4tqQ6?qLBAW}A1ddwkGABjqnhG)5vq8}jN!-7-H0-Hft+uz?}EmKu^C;(f(T??M4y zLGg;f-Zp5Ap*WlT^1)vEEf4?--BiwJizrUTp#18U+~6g?yOpMoJP2tWp|D0 zj;k+N4UhJhU4oy33F2lbH1R|FqT;W zW7QkX!e`kFL_}jWANneCwCB<`epmKhd_izv&wNZ9PMhzK)d&F!k&eXCMk zRaV`~bPEgmFzg2IgSfT&=#!$zg7_DRf(q(``le4RDEL?SJNH&~Rd+rWd@zut>fCeB zJ@=g7IrrRC-<zmT+6TVKAC5X2qPSJ;}C3UCl~Y`n)ovHoh3f z{WoG3iIy8UeDK)fPLF3a0sJ#x<^xjX1lyEhd!88$=OPAuWG2>B-5PB`Tvc2pq!Rn3{atmPg!WRieU>C3;(0b;ee*Q$q*3|OVfJCnyTp^Knq)m1 z%EXG;6pP}fxGHX`UR#8H-j35C;Bos|7$3InuphC+V!fpL2t|`Ni`;gPgOf?_R7P8l z%X%^EC#?w!>7BRY1iQVxKb>~Ol$zD1tC-bTT)c?gi7i<26ZpM@-@EwTp`F55v8(sD z4I8;Z4_;9Zv=}Xad#AZwDt(GB%|4eRbapazKA-Vw?$o&hnXy#7Bz8-49f;d-3N|qV z_}M4+u#J&r8nF@=ww7r;2A>Zycoa#Mk5F{>KoL<6=PW278dP;=jS z)u_qFOuDTWpww;z=#g}_M2l$*>32S6^7^3f?d4u5En6z$KVQ z2Ck4w13x{_!1H8aW8HaL=A>c8Bk`E5__flC;t3+d=(etPLw10JB#(U;VN*fDbPkm< zw^rR&NRLiR=jEhV8ATWp3AD{rgLDo%9`ax|j)A#;=%f^B*G`EoR^S{vPCNP9yBBz#&tOoekD1Y{-fq;wbq43g>C~`#ZV6 z>#6}W`;IjcGWp4Zqg)SH99^FB`AiM8O0d;(AQV0uy_e?w+2zgqQz-ipfcgW(`V;^< zQn(X3!-`t!EkfNRH<0(5GL3xxNU%h(j?eEki>D_~8cqCsp$bqWMIAl6=~0fghWRn- z*VT%{yKdl8t#hW4u21k-NYnkQa{HH3?mtkBs;n7gy0KM0d6`uTw_J|7^x2;-@3TMT z{#u3aes6qM8mMBH9Aw`$^(Rj27ca0tq5Fk=rP}|vyxNFl4YLN+{yPfDGVxE;RTTDr zHG8X^4yQ2vwql6iTqN;Vkob#>n0^kXkJ8Th%l;%^wg%=OnLs~(Gd~2Q&Isbxs7^zH z&zYZu6@RG*dsGhYJ*8Z3>9BdKBdXPEa|unT)?J z{y1V=Kgni9qxy@uK0d4gO7@Dr-rXxxQ~4F6<|8I!=ASxzLoJqDLai`@k9VIW=z9P3 z%5X+6sivbLs_kgFOZFMB1^^bXMN&4sm+gk9sXrul#q{1)Tj_LZ7)o=6x2+ zsTv4!7@-)M(YmPx5cnYSUE7t}u^xZM;sB3zREv4#f&yb6Z>JP0w18xBk4scQrO~Lu z^>%2RCWbb!-8&a-m%^w>6~w=#`NiJ~mygb%8p^1#t7=h=oEf2cJ?A|ljW)fnUP2QD zbgseq!BxaGX?)vgd=ksmFgORx6*i4!@6!-iY~LG@^0**-?bE0Npe^T*f%aXRcs6Lg zJ&a!xvflvfr6B9QK|-tWdyfd0hoAQ*_{DSY0ROzV=+E0EAg^sHqfBD#WAMNcc+S(W ziZSAkHUA{WyvHCHcF$pV)}?v^THn8f0t79y@a3RIiW+F0&yN$s`}oD{doO@zGQ*E; zS#54@HKRDRIr<__vomZ4X+Ihw6*afEibMBY9+NSl&o8l7a?aT~ZocBw(dTaSqI2!r z*o3~QAj#x+zi|U?8&uCxrVE|%JgnxN(B#EGLq%1?%}wV;?=SSKZ=IF*S`g~sLRwtR zAE}oz#QRDR=C`9HClSa#rvr|?3{D4iooi?iICcr?_PW(i*kN77L1Lm#O)LONkp8I)iI)yJ_`x zV|@#BGBx)V=BMZ*jmrF$169x4Sz(;v1uX@hNY;<=vS5}$xf~qgwUNK3v5&VUy2es_ zjYhHDtTCcm?}niaLdh$G`&ZNw^%;RiYd}WKKv|}CMr7q@LIRPShQfVLr$k~sbEU9~ zCLdPJC*)nf1GO0QD2%1$^CRwO`_rl+m_K@*Rcn0U!d4P(sH9+;RkIH7q&+OROy?zR z1&)}rJ}7k=qv1oF%HCJYZV;u?;(;B~ofcQi8-~*QW;t$Nlm)| z)sllGV~v0Z!)gMqa6ArBdP2;Krog&ELhdg~QNmLvw9sq=*DC6nFrkXHoT*V_OY6u* z&rCyf#d6$)E`-=fu4SzV2yss>VlxRsfa$I_P?NJ+UDwwgRCR-%un1au`ZkDmAf!2P z`2srUaJYE|MAs;)fSjNQAo^|}mDZc9chz#lBa6x}#3E8HG)Ltc0q@YAfPfi zb{pgb%{yubw!*mA&eR5RY6ZY);d%-8NZn)P(e9o54`I*cxNA>{CrT;)Q-yfy{}E&l zdE9cj?CLcT_H7~iJ{GG>)3#B~BgUDNO8)$&7|<)*!53-pw1xX;8JtgKCl*@tO_q)Xo)^hbp} z4;%wMq3s4;V4z40>y#>zv@^ly_6fXx$V@cS2ZF;4nCW-8gAg7<1;J6y9;*!-T!$9N zG2vTiCZjP$p9$VqYx&0xfYtAsw05kn^5BR*G^lx#P7uF^wk3FH6og4?_W5wynoV3tLj9igNvB-z;PnB z@IgS2<2ZU%yq>D1s`s?GC6xaf>Vz0Wp&%{zjNVm>;lpVKZ}&T)KLUhiy*@!4ao5Kr z){9m3r1dfR$hWbi1ivvUD<7d^&_PtD6y}*)utVR6rD0PXBemCZ`UkMX^Xwgj1KN}b sESNQ+ZaIDJSs!JRG4jHQtbMrP2DYC%gqa@AYB-ea^1MK2aN2488;9>X*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ff8fcebf71e4185569f2b22ebc5e9970aaf36eeb GIT binary patch literal 6935 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 W6ffK$>d~%-N5L+S3zUP?PV3+Q)E+GW literal 0 HcmV?d00001 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 5fbbfcc521eadec030d0cd532ece1e418241ed43..f9749d1cb1de22675428016fdb6be96939582a98 100644 GIT binary patch delta 739 zcmaE*xVcuGd=<~%lWM#kxr`I)6A zFJKp7oH}_Udp|2vhIGcH$*vr=jGJIGoEv~*YcpgsmQMc0Az$Akk(8gG!=(TOdU{;Q z0Ommcl+?7$yv&l!{Ji*_%wmvRH5;eYPSMC<&0vFiLIh1sd}c{%E|S6?5wIf2NNoo;_dKQrS$^M)YjF({!x4Z~)bcUR_D9{6EOOt@wxDeJNSq66%dvbnmZfai1 zZn0A#HNsS;cbRmBDr zS&<==!3>mFNuLB_Wytzv$oT=?^Bfi|J<^Jb3I#>^$*IM~sVNFcl?r*KxdoLe`N;~3 zijZIx!>^`w3Mhm#q_adB85oKuPh^({xnB_EeyE+`kdOemjd8-{1THrP9iYk{_WY!* zlFEYADOtK8E=NjgaWa%Y`50IFWOHs~Mkb)sWj42S|7GM(0x9B4Eh@?{njFY0ym=At qF=jOzpkS6IkSOlq%uCEo1?evax+V)G(OI0K2#oqH%gud)F^mA&XZKYA delta 534 zcmdm>{z{d#fpzMAp^2;=di-wrMY--pi3J&YnZ@x&DN{1oW2a=BJeAq!v$Nms6Y4!wQtjOhK~;cmq%&MIWHOjDWc@Pa{3icqDH6=+?%|3r$xn_iNGvKTo{}+rb04cXBjbw6g3MBr z6S#yXUt;THWdv$mJUNxUmhmuH`~aH(=Ru&@z6{xn*vVoX@>UsaV6QLNY@AX%MI(c? zhb1XLKL-{b9I3el8HvT2#lSFut6y4K`j?yygb>EM`kiV zCmS=+vdQvX3aop8@;gDI!XO`Q2RRJMM?e*f3nv?JyD4xpGBEV8=O<;AR2HO8$>ITV zIZ{%KlcD^{)40>Qde~A@OA<44rX)`O%WVvd977&SCPt^t-h7Xl)ntHLvLt{+aSvx+ dVs0u(V=>ToSs;nd;tWNgN3$e0hX};9o3^%Tb~TK|BXhFA6b{Cj8z9j9v!awy*gVb|`lu4AMqWhX_QCUrcB$WTQ| z6Vs}qkhD%Rag(~nP1fQp+eVuU5-OD|OXKwNGa7tBkUJ<_|#S+;lO4;8}0H#GJ+Am*u4lc zN<9Xzlj0(C-ZF<7e@iX>P)X#-Jl5|qW@9C0<6S9*c3y`^6?mEE-3o1^XIUQWnz5?O ziF|?ea1*;0i|5DUF-#9)euG3%6uw&M5cG-uw^e*zGubPY%~^ji?u+>?uJ!ox)arWc z)%OH%x9u4ih3|oWzKyG?DaY5aUS5qiM}y&pFit0sL%Zz`g{g*7chzM$u+VsN)NvVX zs?cw$xGkmRR>%eu{8mS;p=mkfR`?WL%iV;}EBnr{G4u`$43r0ChiDIGwy5SO)RY`e ztNB7wi=QQWv@<6uM2q8VXDsH};J$ErIvVp@C8>-S14;ca5IZ$AEDynpRU0nb+e6;F zG}mibPq{FbJW;Cq-Uvq`Vxg#}iKdZ^n3@!oQob;mQPW~1QVHUZItv_*^N6d#yeHgF z%S?_gWzxm^>lPMmm)$M6;CdSSMFmw27p7L9ED%#xt*bjjv~>9nM&lOW05b_wAMF^0 z_l=uC2=(JmP6XR$$3j0j?$PYY=5KYIFQKt~0T0daD9JprTxhtwWJ_>eqY>O=OpcDW L)4|zX+hOh(-1-2d delta 2091 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 IHu>!S7wf3QI{*Lx delta 738 zcmbtR&ubGw6z-&%{M2em`a{yhtquvSBeT=O)yukVIZRYoU6c)z)m>(Za?N%vg&aU9I)SU9 zk;GxAg!^=?dnHUx`zhgo+3J*d$17bo`3>DRxb%o~>6L=6XWH zL;OMS6_!`IYu45^516L{*YvjQ@|LG@tI7?-Y}GZp77TDFlELjr^q&|r5I3M3vgI&nN8g^nQuR;W(YZ9IoHsyw#1?q>Z zw%wHdX55c)%K;`#AyFP~M2f*m@nC0sK)59j4rJg<-^6F7@^N4%10V2PM5FHmWo#YQ z=u3rO^n1@0>f%D8NFOP50hiRr6w(DPNrr~}s9kM%>kgNVBS9H6xX=eRy6I-Zj~Luz zW>Yf!nqDAb+)U7CTPUZEU~oskv@+e8?48S8 GBfkOFQ3LP* 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 f69203473eb345af9c90132b2ff37e830fa3196b..d27634eb5993fb042aa9c449ad03d2691a9ad657 100644 GIT binary patch delta 2587 zcmb7GTZ|J`7~Yxfb$VMCSlMm2I~CR~1&X*xLLp=m14uS3A@X35we)h9Gsm`5XS%pe z)XIY>dN7(ZCcX*#;2R>Y(cnEGk4D~n@It~R@e&aePHX0oYzgJ&EbN`Nu%EgPp@o{oEZXJM zci}UaB+2ZO^ocaX#{1uvrrE*p2)ow5H?$8&@opT${dknV!y0lz-m;aQl~1zoTvO6f z;kL~^zUm2lWFBw8Pqw}BEYsbuOV10J5zlJ(v#__oPK071-1I&U7K2+>JCMiWy!ieE_&A_xsDT@=VL%ah`4SeI#9Cw|(k;ld05GsGdrx z85QSDoXeMxqN*yRN-VE9v_y(%POE4&O|N82n#mbjf5LjsN@6$mG^ty)%qOeWP`SgA zZtigsJFP_5+Q%e0{WWBC#dw=B>?QvW=`UW=(4SDio%uW-!k!l`I|(qb)4|k%+rYvl zV8I72zkrLMDuq(cG_^Sm8J(&4oKo!qhiKc-!Xyzk6W*91A*rvA<8f>ovt4KhW|M~{ zhZh=!+G0LI&X8D)%jAB5+%y29IBAkGKnI0Y-)Qp~HV{xlKeavZE!ZCO;2V&`HU7wy zK+4UlbhGV&ebPY=$=(aN8Z#WhM(%?|e{5wE&+B@Li>e+n=8>u!>YiN5L}|tTvpKlw zxHk*=*;&&O5q|H`B>tWID*QH37k6gC;2MeW#2$4dS&5@$4icQtlQ?`i;CHbW?moxS zC(NqBVYWYhKi0uPtudP#d?FTSO%O1YL#Qz1q01>JqqAuGTH;t=2bj0xX2bVS-M;XZ@@NqmEqW zhegSkoZ`el+z+`F^@2qw*-2@#VNu&q&S@2kTm>iU1&><2iY)39h%^8Ov`{T+1+8YC z68q2Oj0!yZtMyD-FV2^cg%_z0R-(@Vv^Co818Ob}lQoehAjym(@?b1-)EGl^Xk6O08^;W^xAtAnrFCt#v0kj<`_Ho#fz40=%s@ zjotgc^w53yp5EdLkS_q<=`a$Kh3Gph@>LJBg@@?MyKZTh?1M5p5RPq0l5ZgXKdK&q zL%HgWrt0K-9@{B-3_Sjafe0qSpa3d0_U6g93JDp0TR&k zYiBKXCJ>BucY`xQMM)2EQbOk-xhZ?D!Y`oFNG5R>u&7th6Vd!+kuQBkWEPw?TZn88 z?h-Lk9K@qD>|!LzevLdV$xDfWVOjoGUfMZ$y?^rs2qo|G)TqCbgCPRb#Dt$Igm0WO TaRRax`+%|&?_SzJ^qBMy?Y~g_ delta 957 zcmaJ=O-vI}5a#V4ZRr-ZwzO`+ZKz4R1~3Xnh!#lH@9 z)Ktx+cms9G?}N%-2i&&MV_Y0@5c{RTDYis%b8 zVzEe|6gl@7|GRjXJix0`Qr-u(&eP4_#C#no{=Q}aH-*D zO*?IjYML6?K(|0or422iHZ-W%UZrRrCqIMv#ARp9iGyhG_zzsgCHGFU#N@)?sQlM# z3W7GL#+_?Uflp(2G#IP$tZLy4kHWzUBdz~cCPfqK;smlDA~;^<<|yx^M{}1<@VLi& zSY&p1yzSl3#Rzu$BRC^^aj04te+P;gB^4D#%N4YbFC_;c{o^Q@%4E{aaL;hoP&317 zr=GTq#=P-3ESGq;q%ojY7)a0-*lpFA*~;|t@7{&S{Qgoeb<~sDQqHj_=*o}9UoaT; zg$0&o_QV{;ZpRP4dhs)JfNJ#?UV#N%SEI@=>1^f-0+7T@fi})4n~u@M}Ym``n7Qv6fZ308FM#{_LW(BdkIwn7+r;eh09}1zi z=sgOyD>Er`WOT@I%xQLY4I0)!>5l!OX1P7jQNYXI0`G_79$OkTM)Xr@N5?mz7Wy~Q ztC~3anph*UB!H!R^1Jqxy0rp~`kWy|ojzYo2sf2QO>hnU-aD(V6WxrQLom^mFfhIm7e9@CN?_ z&%aAQPbtDf4-a=zN75sU?xePPfqs#{wtuzJcn%F34Y?^})x&DrKm}Qr>Br)OWsy|6 zsHa()uh|y8p07TJMY4D7Y8jg6w=^G_0Sy*k4qgiCI75!!1Cd@56|oN4X&<>JJytkK z=L?VUf6-4$jq0CR!gu;@T*cW}f(Qj1^qFE~vkM=Qx(hP@?QHdB~>grGvZ#+$1U&GHF~Tp-~D(H1r1mXleTW zF%A6?VAARAY^jeA>$SK5JzAE_KaQjDZ5Be`DyI3H^jz^2pP}CrpW;t3w5_XH($`pG zbT#>U zhGm$Z(}|v}b|(&GlICxMqcwKq1bvOZSe~y$dKRGLSMV%OF%bG$dCwN+NX|nDbhIaD zrrI=-kDD8s*D{dW+Xz)(Uj9Fc@4GuKP6260%2p<0x_}*la-`%StE*XOTbnNGO_0$) zg8PKM6iLp2m2y?%p2t-p#(e9G6LWe6q^+&iNjk(Of-?w6&KWGR8wLo^!_X|icX2&n zN`K0VN&2N&!y?H7o37mn$Z`4xe|#$-V(2hc%?k9dA&lg};SU@XkaUPiir_$-j-hol zKR6$rKd-tL{1lx*)3m#N0|oePk_Ri?SpXe9Vo?EKb0~ty0Lc$y zlC1N`l5u1QAHYF8j*0H^I)H>7+cc5o)1UbUEoX8i{SHJ!(l0UERDmnh>o&%4!nPQlZz-bPt|(ogJL_umUvTeE7t^ G)BHb+2Q+j5 delta 640 zcmca%IZcOGs)($&|@cdccAkZ*ej*vTT0B_?(e( z{p2&uii{SU-!tp5z&MlNGf$d)k>ie}iI!G&YNeKzf`(Q`VsS=dQckLtrh=}n!sP$l z(vu%>vMX=aY@AX%MI(c?#~6=VnaPb@R*Wwv$1zJyuICp>eV!qm@whZ8L#&5ML1Rkm z6o?r>u?(3E<_uZC3^_lbEN2f#YHk70;>=>8)8Q6zA>1-0gFSW%&=d}s>yXU)3$sn| zH{3QwO@&7dlR>UmWy*Lw`45*C@1_jdj6)f6-poKn_b2D`D@^{&qsz!VS)13BMTL=p z0cMKG*$n9{MW6sseJoHt1JHr@CLiRM)E7(2&(8q`N=Q*@szQE|f?HxvajG8JZ5kPW z;O=JA0x8s*tj{OGVu@t3EYN*frXZ7%JulWH3~}pTK1mjkEXcL2n}AABD 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 81c3f3e0cf5b44fbff485830a52c6af6251f80db..24f0f3fc678f694a22ad2e2c8c0e4c10927e1e14 100644 GIT binary patch literal 8331 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 delta 779 zcmb_a&ubGw6z(Lu&5x?pM3YF8W+T|d6q8;=@E}xF5TSSwFQsfJyOX?Kve{*4qwS$s z4}zLGSZ2hlB~ZQRAc6?usp3WaaZpeFKZ?$##@+v)*zxJ?_Th1))M zXrtx&jzk`Cq-3)pS08ir15S@*_%&s(!qU_OtGim4yXvsB@BG~j8>bPrw>+>&Y z?qb3xtpNLN5(qY{JFeO55c+owf~m5}GJhYzH>MWSJ(z=a$io#VKop9LFtf-ntNt>s=Ci+f^SRHdjF2cmjS3?=?7l~=c+$o`Y*v6<^gt{Lz_>@?qro#UA!ry}rDOA zw~}}RMOfxb@zMpD9NqH#%)T_0DNWby>>rq5apHK=1B=QJ^5?~5Eqqer^V8V~{0L{N z-{j1%BeX5iC%%%_)Q{mFe&evFzLx0KsP?E5sNr0`6!2EOWJW}MS!mxUB4@EAaVI{vCtrTRVos)sGL>D_GY^Ty| RJ0u=bC`;QVKb$Wup4o0hK5~mdKFvW}Ga;Uc}TRJNY8JtiY5WuK1Gtl zXAgUFer|4RUdfcnQ#2c=)K1aJVC|7sR8%M^%1=%$E>2BRNUBuGE6pvaOvz7HP*j|f z!5%v$Lkz!~)+r#PfcC5?PD;#>2brn})TIo>s*_){a!W%!x(wzNp!1gkoi9?Flsfqi ztK{Sl94x#OKz@M-j}fPp)czj!{G_as%7WA>83%eeQc{bPp`6KWoJKr$V8zlIJQ=cn zlaF$maA&B-PU(?N1IAYRNjo^-4V!Ai)d+-1MH|O2odgxpI!$0d?S*GS9;gii!>n=f08pi(>~!z;*h+=yvFn?$iO64wLgU6cbaRNhlMf> zg00%n0UBgs5g+SQ6LqlmKLBf*l$S(vSOTxOF%-KEt$X~n&c{6z*^ z&44dQEXeaniaxvGyX93LzNc173Oz=i8;9*~GvdEuhjLp& VZ8wCjZP^diSa=*JEA-(kxdp*wuuK2| 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 6e6e03ecd7b982711101f41215072287d321fbf4..a273682155d4d5f543b71a7f9a7a3e6e0e868ec8 100644 GIT binary patch delta 1655 zcmaJ>U5FD`6wV}>WM`61cEOEyv%9@PU1Owi7h5R%rqT^XkUogkb~R3to4qq6GhyyT zH>c}B`XKb756VJO^g;X33RSxPfC!6%^r4T^haw`@|Z&;JAMc+Sq^jTR}hh( zt_nhQ<(hC^5Po6Hu|jnAefDGQLvfLpV2@(6WA49lr={qMsan0VyIv{AbJ6*ohq0+P zd&nY+g%spQP)o%WsXA<8^yyK=6LHyNk+V0-U}qDbyrH>Qa((lvN?l=72cqn|cHyeGVJ;FY>`y*nFkf%tpny9KV#yoM$Ge zWg7Zon26NR4IK9->3r>YqVnV+E6C%lBaP%9kUY89t&to_48r%=7nxG&4w)nu$kc%$ zfZPU%WXrCvYE#8#xM7|X+wE%fI!5et2kQ-0U#u>fxEaQ73(rP$bJ#!9r1adiIcK}I zM!i}CLN9^ue(?nmdB!efr`R`gMbsoA5@D8D(V zA4z(01|tno^e6s9a02Y?y0HbWzP8`ztL*}6WP-%VTmqNpT4p8J~ph5f{;=cte_9*q9AhLA&V4MRP8r~A8A+EE*85;-A1_Zh_Z3p}WX|K&QV?F$S*!e;Mbxfmmj|{?(`Z)9Tf_}NqQ^B(+KS^10Tv1DL+9z zCktH8udo9=zW0urds!!4J{K|-^cMu}Bs_IiuY(Kk@`C9{>OV delta 1006 zcmaJ<%}>){7~i|L8)HKlXeaK&E`p2_rf4*TgAq+2fG(OCPa>49@V1m~X-nJ^Uwl#h9s7Z5*7oamZpH$Q9ED*yOr4cYYwY{sCId5iL z8)>}iU$>vx8O&Le&0D4Z-wIYkiA>l7Z?xtuH%I%0-C&91eTXvWAQ$PF+QV_YyF7<^ z%P(X+6}vcr8Jx`FRF2&GtVmfd7L?+`OhuRHZLm)S_x)w}rmNANa!^xDS(h{q1Rppf z2|C3d+HXWy0utdq?vM!k3O6DND1;~c_z2#IAEP9V^p*=-#sl~>PU2}y265se)-N2a z!M{;^Sa#u8NDS2o^bLVBu+nxPG4Qc%f=wfz&&}ra7LKba^24F z%hFpamaCD{OK{Y2f!n64U^Lpx#PM6W+$KOR8ijCc3i6%f!Xg1!L9$(DwJh7JMvpB8 z*~mL**y~(qwE_j%loZXDV5sXVVrk6v^{$`D{~FcT&KxiopAwu}ArHd}6{RJaq7Aa5 TD!q7V;56A*wNl^ceuRDlucTH_ 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 0000000000000000000000000000000000000000..5308d108c66631fef7041d843bbad37ec1409155 GIT binary patch literal 8377 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 MCA%yy=qqgdza%az*8l(j literal 0 HcmV?d00001 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 409d486da8562fd7d89e21fc46fdcc28d581ad7f..ea9e5d30a30e0fddfdf04e2390e7e4fc6937ad93 100644 GIT binary patch delta 2336 zcmb7GU2GIp6z-jNx_@2zv+b7d>~3eVP0LcYk^nU;Aca7wKouKbl)6l}Q|^x2-F0Rb zEC_1UMB*ycvnIs&M|jkPm?p&FgF!?M1|NMBOpNit2QelPjV7Kmvp=&45;xh|o_oG? zzH`5G=H6c0`|=*~1@Wyv2A9NFd!(ItePKdZ3Otcj3RxwcQF8m2&aAwnqv_+T?TiWV zJ-f=L;9&D5wj0*DLa?J{!avC+zJrH(Gmn(c!AC+&ShpU&6&~;%q~xR46N1e{ZPs52 z`w7Q|mGHPY%??<3E{TKPPxAdmzJ@C^*_vc0acxw5 z-Lh5J82bQi2|jU+iSJo!=K|qQUdea}SM=g6KMXN=nzBbdNHgoixCRsrV$3-C7-Kr21fl>&xW zG{a4P={dvx1nzy*znw?;43F++=-&#Lz2okU+jUhjRRcPF(!c~MD$gmVVwid{Z5DMk zQRXhJK3H-By>%e8clNM0IOSXG_Ohm?|Jx&1bhp4I%>`F|pNm=uGr&??|3K-Rcsz&m zqhvEj)OcJ@%Cq@=c0|q>%uGI~WWBO1!&?8tes4Ukn~Mb-1MhZ^wOFo;{(fKkoI0P$ zWhely`$FU0bvu>K7-lMCstaW(uYR$7tUS!c62Av0B>a<|mK?*}Q))3)ox&l}6^55q z^uk!z8k}7eBD{x$khER+gDnj5)>q0l2d=@%;M(z>mQvPsu^Dc}ZnLqTk~f`I3?nn2 zQFUi+D;oC?KX<849=Oj}tTW=!$?$7XOxVno&1^vEPYj!=R12K|i%T)QpX|Qfv8oMc0)@d<&jd>2-OtFPijL zK9<1RCI`B*&xUT^???cwFEY^(KHS(nZyju9M`@f(^_QbffF<8Zvaw&ixM{aw4b;8V zk6LimfEJUo7-HoH%fhj`*{18}Gon<1Z>fc_|ji^Nn=dP&FAk`OdA$18Ik{e|9 zBRoPYcvq3TOCkdgx5^riOu;XGNnxK=Q}hw!Z17h58Nzn?AQ!r|0^eg-7LO@i$nJ#pHsXPpgKZ&dIZja;~^gSe(nJ7%g5bj%N{S(`5+}KH)wH+q`;<$0zh@Td>4GOJ7+mz5kC320@TG5|bKv0Rc;tEnj4@Gd}M=A%TA}X~)h)TeTLl1D^P$4mIcb%-81bVR7 zJMVk*&3tcWp3fZkG?Vp$Qhd9j!= zmgaQ$l>3?-fEkDA-%kZPO2gDaBmc{=X-x(=)g%!S9fmLRy}_e&qDD8<%(82mhHd<} zWC0PK(C!TJCvj~ahMXyK-mtxiws#EM73Vf`)v*2P+|FM%Y~8_dfLdN>(Ne8V(K$Hk zijq@s!WAc9GJKf6Ez-wP$Ugk^Pv|TJMsowf=U~hkBj1^@ODkZEnZd5Wkb8jKVK9z< z0>|BPBY+!#0r(pNV3ttbGK1SK4KY#Txk?_u$DV`!Jv2hoG&)9bedJ>ENONj;saRDj zwX6#JnuYkdd5W=|sEVe!R*?pE%BrDFYXtYK0e(Y&T|cSEsUZ6y(3))Vl6C8lcG#qq z-EhtO6-S3**4Gs|(u<3USfXAji9{@($|_>DnwmTXC2!l9MKakROD1D>#@KRv&4vf8 zTv5p%mza;lRH>v4#7bo~Un+`9!q^Qz`1h@6(26==HenF(Z*y9!GXdccmb`bWrYMq{ zQSwz*`Tb@xJasY=;t24tl}uih3btkK;MzGXJW39R#8uhDwJ|HMbha57KE8AdS!$0g^F0FCW9(grX^L^BH2=*ELI1t zhJlk__e=E*vEAhf7VJ{bEz2M2kNtWY)+%V5IHLqI;Q@OSIq(>t$K-qAd^^8Gkar

^y9 zc{I0FC{wYTui7d?Yk9asVPr!O`HV5NUt>N5d5K}%)C${oFDNZu?$QcLnh^eeU6S6_ zCCU6p-wO?mr={11hTMi=C=Hwo2yinHBzIZR!3DEAa&8;Ds4zLk+0_dW}VO`$fehqVcF=(AwOwxY@(<3$!D}O&YX9n(+y;eHrhlX3Wj2i^W@Ljt2-xEv(`J@jy&yu&e$SQAFBfhMTeR- zXHHVZyrPRR8Xd-ecrzQq*RMwZA>{t`%dy`aTW+Ew`5XMIYM!E4keItFUi30sI9sLN Sc;_4I=yWF?y}tO^E974|*+)|V 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 63a7dfc8e52f4abbad36d9f28c2ecc2079ea4a23..cfb9fdf9575afca9efbe7fe6cd97f1b841110d93 100644 GIT binary patch delta 736 zcmeBB{h-0xz&bTmWFzZNMn{XtH@J^K>Rg`N_6ylKkmKi3J&Y zQ!?0Nr(}rrfW=tBVw2n1tl>H)FJ*3HWSX4Az6B_x$RQulW1W*(ToRp;Se%iVl#?3E zr2qtu3Lrs+{4|BU{FGFM%#_r;lFYQs)S_ZNE@S|)jkAY8B{eNGFS8^wKW}n9yJWox zf*%huDL%6#HFwJ7DVmK_YNu#qu=bdvSxSB4`MMYRd<5kl- z1r*>J(pgfB3=GAS=d(%6WJG7glxApWNdQHF?wAB}2h`OPAU{lI;c`>SG6c%@u;(Xb zl~fj_PRTL?aXC^_i<1%j$*Ekaldo`@08`UEHkr+;+E*gK4w;P1S-$60}{nO foOy}4sUS_oK!;?3Bsz;T6oH8#%WkudU<@Mw)70_G delta 388 zcmeyM(V@!Pz&f>7Xd~-RMn;y+`xy^2GA@~XfK8FnV)HWQ=}e4@lkM0f1@lr%%JYk| z^`>O7$4j8_hLq#XIuvx=2ORiFGJ3+GzsW31%*cqlR;+6O#Z;h#f>CA`5c!5>r|kYLz6%9 z$V^_q#WMLMmpZd_#tJxJo?CG81unVCZ@Jy1Gye6k=O<;AR2HO8$@t&Hk&;@R4CPD? z=Sk)2VM|FZNzBZdk~nz}j|njBKJrL1F`91X=6}qr#?Q#Wki`uoihDTo5_3~Q8jFEJ VkOh+HEY45_hDH|mW)a~SMgZRAgoXeB 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 5183f6e3570cc9546ed64130d008b0d7eb7e62f3..1462191c9083044fa180190e331dcc9680e5cfc0 100644 GIT binary patch delta 2070 zcma)7O>7%Q6!zNd_&4!SQbTLUUB_t~yG=q$Lqn>niYlO_C`ceAptaJqJ<051?{0V3 zq$UExfkUM^RGI~G;{xKqp&%crggA2nwL(Gy38_>dS?w!C_!GT5Z1c>0L=c4x> z)63;IP`g}~mL)7(SgtluRFWk6XDpYGM$2VW(Kh+6qS+@T-LMs1lN;RSt=O?dqK-Bc zO<}9+4aK70gfoj1!)x}sVxy)*ozi>G+s+IQlKFjd(!XNaMAX5d3b;gwXd|;p=i>+I zbo?oCLGbyg94Sqz^YDhV>T!6qsyKs3-gjJ7SfldjiKo>P^O(dtIDat=o=05I2#MAj zvSle73NpQ1!u_i0kMW$i3f?TyS@i;gal;uJBm;=u!aNXogptM%2IXa;mO>yy*fTe_ zOR(aC&(iM_!64)II@Qv}@Ty~=CF3#OuLg_?P9=h%gz40H~Z+&9MDvvAb!}(u+SHc#kr!XuX$qk z2sH_WCnLP)I77IVaCY_j%*A!}VthXF>b1r6ihJ~mQ6X6jxA1W_&jMGH6(LAJPQE1m z;Np~MJ{9iV2BRl1Q}!U317#Osg6&KFfvB({msTXUDCrxLrq_|A)RAWMA+qM8?vL|V z4|{;zLWjGy;9{@!&R8Y-h``WJ4>B1Wrbs_cO^JVi1MBdjw|^PX>ppBijSuZXmZFp- zg8W%}AbnKy`8k%Wc@i*oyqe!A(z_bZ`03T;RLV1V413A-=?&f~Zgo!bc>H@$Zk%6(^l!rA;E-nv z1<5e=8nP@@m#S?^Yc-8F=qeQo{j2DqKJEnt1U>>-t19Ee?5kFQwiPS%#l&cCxRyQ_ z{zaPR=O8_Pv2YWDNl34%ykF`U%na9&RqNaIo$)69dwdzb(^u2E?h6w;f^e_9nzG6GFM_m(UTdg{S)3iyG`QPC1+gAH z2h|q&41x2AZ52ARq;7L6coXNUrqDU`0ym@cF_kG`c`|INNtZ&2j z@Jafa?+rrU&U^F;p{KAJRMDxaZ8qRB^W|CUHscQvX zD#6*Xf<^YG(YoGE8!fAdSKF4c+Nw3XH5lgO%5;d4;VL6RJ6vCDHg#*cX_yuRR=CS< zvpn$;zsTo#K@i@B$0twzzoUG_!P;}*(i6zzf!Rm}&A|6)agi2zOwzQ#kF`3Pu!nG- z-D6HC=bFewBFX~EEbxM$9ne?WT$o|@F|tDkS^-C8bU}b0rRVzf{jAg6BP4z_A5x_E8!--?RFeUqsC52N1B IV|)eu2FZ{#`Tzg` 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 4bb702a049ae65806ba744810d425c4dc4912493..75d987f80a0dc699906eced0c16c3b5b39b490fb 100644 GIT binary patch delta 2635 zcmb_ePiP}$6z?QW^FM9fHY-iqPPQyfvuSMIEroj0gNq0e@uao1lVsX&K9iZ4Nw7hd zte}U=2Ohpz@ap1WFLfya4?U<9cUc5c5j=Gjw!7l$vhG1V2>y9*CX-CEq3nW%bmn{W z-tT+w_nY^=xt`v6&U4Xo=^t^=b07$=<_+N+LAb&{bSGSk=bHQOd+zp%@4I&d7k|Zf zc=Bv2^@dzerNkAHNIH>nML8gfBHsGTPSjkScF|J+InVzM_CjQY_TVtkA`Bi&e$aRz3m+7cIMg8DS={&i?%2yAk|Gs zwU(n(aIqu%@HQF}2MKaE8j1%ydc55xFAPxIfPv(NTI8A7$lr*~A8wepyhI;RNZ0Mf zO;{jn;GXmcfZS^&PTUyG-wls8$N=-|vMd#K%^@($u9V~|S=mr!WsBsrioUMZsvBwX zA+w@xAlG6h6Xq~!<+?{K*I*Vm`qL1A$lQ99Enw)uz_*U=$3zZwPT2R!j z_3eth>8yXeFPv3|pLvVW?-i-&h@c0+ajOA_yI4!k8691(qZjZ`CbMKJTg&l_p~%@J z8#MQ4u5#UA-g12&$v0$j8V1rV{N~n-8aYG1#NZhH0@d6L#)E7KvMy+OgDvs*g{6kU z{HCEKDXKxg12^UcL$zL(4K`?EvLG1b?Q&7cD^+91eEybHQQ_8KuCJ7|LaitpViP zRw~JAm47d!PLNgdI--udVD}h(0xn&11c4B}Vb2jnZ<^@PoOW-X>=DH3>^@D{tDNa* zDd$v}K8@*sa&0{`c)GUDwxFmdLUif5j5QqkCLT}Hb5`ZYO8PAL{Ew1i=Dm_mpri{{ zE@H}-bOMZNF!q&{M$!ETVYXMyS1p*%p@0x5X8TY;ToeZepQ0O2NO_-PdJJXc65?}OyGI*x3N{>Kg{ELYXATM delta 611 zcmeBlI;O+gz&h1hY$NL-Mn;y+Cm7E&GA^GygIST$V)Jh1H_R~3MBf*=a$yunv%gDJ0)YYX5*CFDH<89J;r#HD@^9( zGGlx>S&&c5<9UX3#^chY46z<21&t}KQy}_*Vi__S%o(zN8FGF=So2jU&@Tg%j$cZwO=W}y1WjvnTz@^2xDML2nP==g0 z^W<2bKt|@t>v=pGRVL>P%1++E$}{-^AB)4;4CyRIMg|6;!dRd}2A~`6!K}?-L-VU{ zPG)gQG%QqN!GSV?Peu`>Oe5nDOkaTFiJ3W55+?^qnlrLYPUMlhBhzBW u%}b>pF{{@CHD*-;iQ*p4yu{p8koIC=glB;yI*T(DfpHI%-@Hyfnh^lZ9m>Z5 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 e651f234765aaa40693cbebb0ec1f4f0668bc171..01b4c1598529c142bb0daa1a842bd5454fd50749 100644 GIT binary patch delta 2034 zcma)7O>7%Q6!toH?6tiKfjFUZes&$9IBt?Q{6>*Dz=5hkq^ZOOwZU22lgtjb*VGi1|iZ`fT~g?!~qGFH~W`$C{RnbXWqQ` z&G)`}Z)SV$~`Yy?sKtM`ob0}L>Wz98GWc&d;ztKMR`fas)^Nd4W(pRW~am{ zNu+~Sw4pULOVb`DmB$K zwG9m!;Z2i1dG$Jf}ZBn!LjiS%(H&RF`Wa2zleW>;t*2$%7MpTL?U|Iy6YV=4FJQoHKA<9>(g&;Fb)>tumQ_KTo6Oj2v_1SLI+1^!bC`|nR@uF4=vS^g_qWYc37X4_nS(3 z%Ub73%JcL8C*Z;T!5&^GyoU?ufrS+<{7dvdf*l$K$SKoAjjGnzENvNRBb?Y!FVvHU zx$bfoX`%*gW~jB0JGsaU$}QV;phaOORJ>opA&nm{(3rCmjW*jhO*GqcTt6G(2cYDq z;XAWtx9~yo1;@*g3ve`(Y1$9us(Qtyi|kEdv13!wG1OJ9VUx??N)uqP+D&BBm;*@D zU_e{VnpV*)`;4>xqG~i?C^p+mb-miEAse5gNtiip44}d7=5AoA#wN0093eyc zxy^GwaQqae{KlZsSviz1H}mSj<12V#1uFP+Fa))q?UmOsoilY5CYM5vfYk&&KJnH;C`3d-r(AH0&U3-4-E_ZCpX-^uw<80Jx8v>AGyYVu5$n>P>-kR zD##tZ%hXqpx87mD@44|4aPs=zSIxU_paLs;y^b0dyCM|X?RX+ZvQdD{k$a@Q^a?UfRF%tZxzVaO+fb3RqPSfF zxAlMdxOX^gz6h{pS;dq5eNv#_r`Yq-0M8-o<>2#h-Wr9oXE&rH$}tF}3B635DkrOa znyezT;?LQ$19kSzz!JQrtI}9EKlqmr-HvvZp&$FEOW;jT@~xqmRcH|C6ce6E!WYh% OSOGS$-YsTN2!8{=m$>Nw delta 646 zcmdmL+p5djz&f=`Y$9t1quAsJY+^!FGT39MWN`MdgrruKOqo2T2Q0kt919~O%jV0B zHy9aLO@6?x$Y`bMNE{9Csv5w6wBQE48!~G_*1ji!&0Fa#FQ46?AnK zCNpv=s$^`|Y@AX%MI(c?#~6=7>B;t7){HMFZ)Dd>eV!qm@whZ8L#&5ML1Rkm6o`JH zScXgnbB3&6hMXTzma~T=HMan0V`eeX&2US&5RQQOORR?j<}4(${(@{0{0+BBQB&bj z!(@}yIwdO?#N|jyEl!57%Q6!toH?6tji1F@UdNxGW|?6_@6ODQCX3kNEMl+r6{WUuW>W(Rw1d2JC3 zA;Y0kD@}{qSq?}Xpl474R~$G{RJ90ILV&~t@l%Pk2oNffKuG)u@n-+BHU%0f$^5+c zz3+W*-dl73rANZghhMrleKveDJ@HthRX@^Fn|NMF+Bz;bTE_9SucdE$5qRsGCG+UMQEQ{R&ye1Cn-J`bsEB#+ z4z*FM&i)d2v7g1m!msSb@NQO@c4U6RS-jOL;|v}>VcH?#fPE|#4&K63_%fb;A_^uy zfQd+Bm6~c8+M0%1{=iW;Blb!x8zw0s5ODBQGLc}%0XUcqvYiKju)T?0LKbLdMbk<& zL#-W4#baSIvkkRFdV8A>*~6ZaW)ft|0q>L%D@jw*ciSfTCR>$cVUsP#j|pM+YW(rg zF(2B(M>tECxx1ZY0JweaYEB>EMObmuTIH2GCrv&Wvwv)&H(YC{Lf^Z4dSJ+#2~sxa z_s!#t#t(=Ef@KzI!&p7r^9l1bpZ!6i#M zk~v6&s__UFu$m2T!m0?XT!c&Hs5}0lqg4#*c@ z9kuaN$?K`oK6&`4sOcpxu{=Njf6^9)eO3HuWI^w zaifLS{8^3t1L;wlxkw{5=*yN`^O=*&Afi*GxF!7Y`x=B6- zLmGjDcDIR48nRGn91hS%v!+$Fwt33Be@1QTuoRo!rFx^S!)k{OzGX`~G>9?*CTtoU3ylqa9S@(vaL5llN}OW~fYF!_r6`{n(eAKbaT zWE1T1d2$2(k(>O_w;UkhlIPrQ8M&RSqUg$Kwe5mC7`VLefSofKT=l#UN2JoI*OA_4 z*M$PR9*)FFItZv)a#xV8NQyTSY>dH?z_I(@NVvd9NRPb1NoDbcfx=|~(+y3tiXt~# zjS4ahRF%tJS?|=FU3i?bqS%cBWB$Kv?9PDT4*{%ER`DMGF;t+$v+NHc$}aCMG!Ckg6$xJ7f&8k@Od}d)q|IW=Xt)*_xpL1_xU*yYMa`< zp|h>sA$jO!3wEv{n8DR6^k!dx;IcXQ^sP#Wn!YC=2zd!a)jei9FUOcmkHwB}aX?=i6*{3{G#X}UtrqH*XVTzp2FPoCW2o&?=< zn>ire6G~X^8E&0|?b&&FXsP-qtRx`3wkk@Iy}-8z%k~j?XO`i(bHVT6kms&9d->d2$ zRn4B>8ESI~f#u9py{dZkz3;uMu736Y($}xPJjegBjVQ2e@2IC6hUXh*l(JRBA0}hd zi_^#H?XRR?PP?oX>W?Bn35RCN<{&Y&Y}W`)FMTg%>m(lAZq&=#uSDiBwtcT?ZY^2M z*2;Tn*J`n)*p6LOs$$Q5#t+ADgnD4{4&K%DI1cSW5}PSCLYu`em`9{cRdh}g{c0*S zT@G~U6{prFYiY$qtOd55>3^Rsy0&Mg_mhFn+QnEApXY*YL^P+Bp{qv`z`*wObldzRoKcK4A+OW2*^VU^s!P;Smeaj!4{V?%7GweU|!^8g29|wA* z=?9Vg6^cfEJ+S)+CM5OPG^E;|Ve1E>K8|`SQswM>VT2i9+n-Mc)*M^1J;OYbAQtFb zABQEa>p=8*{N2RgE&Sc4*#fZ8=5y=u^C&waXV$Z zjdI+|WxuJld_PY0#QLPQS3-B+x&{MbGK-+(@QJx}QL|1pT4V$FI0+R>^(O(vN+`XFQC`mo_BVY$h(WRljEQ~U z9qL2N?7w{sLwNm9^Z8+xoqahMDV z&ZrN{1(x`~7aZRsih?EHLB}6;gn@f%iym*0{a-q?Z0c+K=eSi{9Oo*?>nh`NpsU3t z*bkb(UL~*v(yKJwlOS8aZ@o*1{y~YT^&Z?v=y-|ih;Ra9#b)T*@G*%Imusn1FiEhp zXf3x~Kua;VIl%!Uu~r46l-gqadpYetnmlcG&P#QfNHo7c#QcsB?i4o4LOBo*AsE6y zk3`r9?-#jRJPv=ku5c@pD3$wgvU1i*t!j^-PPKOFz!~bLhD*FICs6jQ)ba0T*74h% zwws(1WGz3SFztu3UC+Im4~TE&VBeoS7(3@bX|3=-2?K!NAWLydi4|w)d$GLX zl6Ook3L-qT%4ECoh8cJKuoK}!_d3NshN83Hp+MTpX)=vyK_X}6+}zw`9?4My{BV{? zdWZf0TZiVYZD&54DtET_$TnR=tAu%Jh1(`p27zn!lgpc3t5v1gEqO2}`_ z1bK&~x1Al1ymOg8uIv7{*b`kgyia_-#e-0N6+Wa$IfYN%Mfh#o?*D9c)Oj_t)K`A+LX;Wv?wTX|WAN zCfl>A)nxRatq5t@z>MWNc5CKXJ3l@wJ&7!0QCGTH$+{>cmN9?dJCKJ_WMEKrWp>`2 z$&zmfOTLB=m~YEkE-67}vKLArva)+8FZ@lC-pRSJ3U<6I`fRZ_kA&Q|@;p{^BIL|0 z3rZyh6(uHbAV`S^BrQhHbP=2^Ehi};oX1&4n_^q>Y@NMw{pu@AU6Yw~6=6#TEJXXJ zeF)7kC})@qnl18cB&t~CWj=uO3O&!?2cXu^1Sg%}l3TClt+UGCo?Hp0ik(~u z*oTmo8P;svjH-{(s7h5TlRIh#My2W+2=k}BPe;c`0n7qCFSk7ZUh4g~mEoH8&PYjP z6r^;%Bn?$Z#OEg3A=jxvqSW;JGij<)l7RU~w4aia0>ftHRZ7wTb(DN*azH0k8iRRP z)DL){Dn&0St6ffvN@+=k|EQ=i z6>VwU>1n&&V4z&TMwwFE*1QT>v$iUA39x0fpOU%)+gYef0|@Fiw|a@t+jf418?Si= zcZDeJsZNXR+ay{<_9YB(g-ZB--nojec@WF?ht74WjIF$5;&jC;HiX6R68o2D!amy# z{wg&pw8A8u7vy0Lkd>Ym=;`s4joB`*&tyA~EYss#zER@wL*0%Yb&|+5I(mfXj2n3T zz&7dzwvBDEp>sYhjhh8mWzBn6R%J3{ciT^`LM05XNdx9?pp=!+e{Lq|)urrXV8UCR z_NT5dzjKz;&ZqSD8Fc!S_y0l|^e6BCWv@KKa0WBsqK1QKfQ!a)X?DSEb0r{bc5HPe zBj7(f#Q<42_{U@rH7N^gfl_;k;+UH4*r!CaJyLL8EKc$=fE<~qtGv_LG zD!a>jR4~1}I5!|~{oHvTAI>k+e>bUvjmku8+~Fpuu@6}~&0_Pr9Vz5cv5drI=w*u3 zK%Y=Y67-U|0{x@Pfaodx=cPf6`SerHoexF@0i3Ywk~^wLD9hdwh%G*I!rB2iuH zH+oP5_@9-4U#fblg7}}G9pWE8J>q|LCWv3G&a@Ho=J2TofAWzx`1ERmzw-iW@+c!7 z^rwya-#Y~|Ddvmeo0V2$J}F%n^UaJ$>i+9&_ht2K!QlUXYqflvchzBa2P)W)lY z#RB-vinxOO63Lwn^5@XiQ?AV$X!_BS->6Jv|ttI$=3HYU|yn^^!XNUNkPmlQToeAPRhRVn^Lf*W# zsS7g2q<`Tt>1-Ed{}jli1z8N=thBlylhR^AZf=zwHvQWa&!|6x40^4e11Vb)wtfA2 zCkXwai9~LrGdS*e$v8O1(|zaqb-oB9t~bhvLkNuX81O`=r%&dOw53{kg2CO>j>P8p z!Inr1%hSZFZMx#=Yne_Ed_z6sV9SOt&KthPDU4Sh{Jg>WHvQ!3uhQ=o&lf4;C+vLo zl`_DOar}TMrz{sO%8Fon>(}|>LwW7liCbw&c4dV0eV(4SM;p<-;;0OnjajOSBvZ|| z)AJ;B8m5iRxCOD!S-T>gz3E9NOX#^P<7t~$ z)k@8zmkpYwdxmRn*6X6*Qir_tRkfnhm|dhf zL;%VHL@v*;zu@ZLL4ss>Aa3B8ZXQ=#*fXIy^g}~4OgiYqFmy%YK3j%^jF6oQL~KJt zYW~PR!X*Z_t|zgtl|^jc2B|I>h&oz9JOIlJY;Z0_mK=4s!ApRy7m@kPq98I8!`E;V z08$rmUg$@rCb#4)86v0GMnXTQ=!Rz45heIxBAJ#exkFgH>^vqD!3A`FKL@PI#I%v^ zVsf|(vPIu82<{v3j6B>`KyL<2zJ@zMFu3>$if)oufjQm*i0Im5oMgUr@fKST%s`{# zP52^WFEqzFaR9zUcXAGP#fsw~y4UZcIKs^Wx~tIh!-IaxE|Vlz0FoLq{9qnj1Hv(= z8SLG>`y%jM4@bjF_f%4L|B1YNx|~3iJw#TcZN?)$2Hd`H#bXzPwPJk$FEVgmyuZqJ zz{#;zxMwi|P29maVHcxgFV>GV%RaDN{DHrVE@cO@^E_)>%hIMlKsI%mMXkC1P|u*< z8CpmP9m4R!-+(fQ5YmT9fZ$6vsrdD%EDoH2J^s-4M&Ljm7%ow$h>}4?&K?taU0)a8 zNLQQ=Q*dTHFb%lyF;uWj92cLk%R@*VY9^KoSHn#gT=k$gkRPzk?AjK{>W)NMJ7Ei^ z_mHkiu~iXH;J=_ERu3D_5o_WQniFReN`YE2qAC(Ok@QD5s@Nr^loCsMF?t&nKj_e% z?p;BAg$l)Y=R5Fm=kM`f#9CBL3m6IUij&B?j_XXk9?Q}z*6RtoAX|@jcLB%ioa)3F zQ9@3d%L%>Z5+MgSfVIa1-z^BiMW3w{7Sb)H$5uWnZ*)oNAMrMfDZpQ@_LbGlu{J`; z&`&5pq-<^IyDpFhrdUQ+UdzfK1Bb7s@4y|991h0mN|7wn4!ziwm>{CxhPq0x4x{LI3~& delta 1664 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 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 529db824f7d24c07f9bbae6ca2c52131e506e43d..72a51ae27e961a394043c033170a9d81ee8d298e 100644 GIT binary patch delta 3021 zcmb`JTWB0r7{@ca+3Y>tP13bycazzqZIaDBtrC+I5ihlk6eCpBHYBsVlbo5(&TMxk zG)t+gh+^URke;a*ynq)FK`D|)!OL5p#8U9dK8RL|1zX<~Ecl%>lijmvTB|mY**Ryv z%m4eGbH16cC(l3Od%<^h-|jWvtFh!`M!C4ZES1oRZWQFBYwx5t&ozC1zC#c^>z9P< zf^d#}>&&r8|t zF}ae>ic=zzOeEzrIV6fAc|M#@hq75|RW{i}(<%>%M#)kPUDBAvr>zs@RI5K4#M=t; zlA7gdHMBV?iI4^c=Ys?F~HRCOH%D-Ph}8ay5%ET*;|B;indO_Ld7nK5HG{9da7kG;p09WBfqo`3soNENtUV+=)2z=g?LtT(WN2GuS|MJ~kV1s@rW zKP7xm6_Ims|IkHO4q&Ey@8u-nJ#^O|S<(#2nrD0c_jr0L~IDb&%{R}QJ8I_;}r6e_x&lNwQsMYChRw5S<*~{ zI}iBqR8h9j)FSP93nfF*t;HdcpVOq0Cgl}L-!!kw$}-9sWn>tIg}kg=WkV?}(v=WL zMs8k!>Q*Z-$0xcA$=$@8mhKSEQoVaMI)@W@MoO|?Q1s=6)v~*33z$n|=^xpttnSllS6LTF7>{kPRX1>uo1{*Sy_6oB0DgvERt4 ztfQ!Z(qW(=oB53~@pl{#)1HMpm*BH|nOq2LCm(cl!N>JC9i1M*yZ%GsC+}`AY=0kI fOdQlDXiLzaO!z!i12A{mL>UkU&(|+^9ufWqBWc)x delta 1187 zcmbVL&rj4q6yE7}+3jwDvV_I`nO0WVEi8&gA;cKai-`n`S3BF~Nfg znqJ`5ga3jd{>Waum|)_;lkw&WO;k<><4rFZXSUs1G={`WU+2yH-uvd8Z(dJrjfGZ2 z4^C#*Lu)7n=umq7k>LD1dlyECZG1rA5PA-8gAy8p_uN=#T{Um$OY=wF2vT&Q*Zm)E z#c8LeQD>(@{|kmXn*cq!lUkESS)Nx{WLYf8STV3tuBmcSER|qBmKEu)a#J;$+lIL` zBUt%f5K^NbXJn@g_BJdrV?k4PO@s54l zF5r+hfC2$n;m4U_1S81|tab?c5Xs@RRwQA$j1v|k7VNvWgK*L~gM&CbjdRnafU_d% z!Xi0G)v&>Cb+)3vkLGYqSdrFYeeKSAb9*QLm@5^XMVvaeEZ`61>@`YiFvn=iVS*rN0Oo=aGg;|(&9_d&O)7#!Xu zoL^9qM2U@f7;VBtPa&Ar0wf-WhdpuN+q3XAdtUlZs;sbH*36Yf)z*H{Wu&4SS6gdH z=B`Jrwu)*h)tarq{oEPElD?V7PVOf{OyjfoDcH{h0vby`hQ-yD1(kvg^1`$T$=x%s NL>?R2Z|vr0(J#i7X@CF# 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 0000000000000000000000000000000000000000..f126233b2e005f59adf8912a0ddf450bcc4af04d GIT binary patch literal 6600 zcmdT|&2Jn@6?g26?HPZ?&WDH+Cu2}pJH#`)N`z3fLP)CxA#1JO)rw0tG&S8dQ$6nK zYPzeFvG@=iR;;DEZSxOsBaJ;> z{p!_wzxR8us@}I6-~I9R8S~L=NhJJm++m&7pU##lqukTQqe;`6}SGSNiJb zWjy*q%pzeFyzOvr05fO;G|C5eSI~YQf$trBU%+>VJOx;>Z~WT^ zMt(RzRP=ocq1C^=)84L(KEamuh$|tzolKuDXQEmJb$(xEEES&;yA@pf;ueAeCoY11 z?lB*>@n)6YIEfFeRT@vw=lV(DY#;E$9YZ0Sy=-O^!6{M&sYOG#s=1bL*CvK?Zo$$$ z8(3>8n?QA2FTt+e2<#*6dW9AIB35}dr_cAh zGE$&W0zN1y1DCmicV9mQ++p{A=cN}rFFojvKmDK^_`PmqhH12$_=@jB`2j-$M%|@p%NJ zGV zF#lf_VipnjAdf&(xB5O0JZCBkYbONrzJ`7EDxW%?bFJ5l)Xt9$DC4!E3gzFPALU=e z<`2Q3pP-7&fH|ezJ?S0RjMMk;-bMYmd$;|tEm$I0FW{{y^_s`~e(2L->0~^x?3F1Q2St8VH=uih0cS2wN3n~jg%g?pLui^q30hqLZ`_oxMe}K@3XD$27eAxzse@0WK7{|W<-rI{(dr}o;^8YewYn^j-~Yi4%q52;@R*Q^k{B3wdaLU+I#(xUe15gwf!(V(rcm253xx; zM0?_A%@#(Dh#cw4GJU0wK8rcm?$Rk_*W?Fo9r@N;dtX18v!Y`_>M7!Lc9#_QZ13UO ztS&n*;vUVtpjX{ArXGz`c4U@|5!;#3iwRc>mr*pK)~SbMx=MW$Y!u;P$u5I~Rd|5MR{ogA0iIUqwn3d7dW+>67DT<#mr{jN z@!HG13wniGT419yCJ-}>tkShPa&i_YP3$rn?T^(FEl0Z;-E1*TcD60mTPqOSqOJzPC!(R zb37h_A6SO^S^Ih(iP6Uu7Kr$sgDy+oA7^4-ud-B0ryA0;K1j9Vp~yHT@c^tD@WHt_ zWC1B$Gb2DZOep--P?Yf0lMb3Xkh;XjkxaN#pJ`a)D(8uh-i)E>n&bHiT@v6(ZskIe z5aOO*hBFCLfSCp=Sd)u6eLpbGI(?0PVG*>B%)J3^Cus8!@+CBB5peqmimp>ufjQv- zL=60qud>%Jy`Wbk9ytJoBNtI>VfiwR^cZZXd1J|&Gc20 zGzLJ@!9@h&QKpy0quo0%J^-Gpao?R%Pa~E3PZsK_&qS0x;Bm+2s&Cdn+INK-1z4=9 zSPxm`DUt0h>P>KRz?Gk=F@; zx@?~9qZ3G%<0_I3K-oZu*#~KaqD!rA)4$H^z!BIZT|exD14Uujpi+^f zy(u|=MC1)5v)M?!=z|QL8TGh_6h4Frf^&sMuDXyqa5%P!z(LazT|4SXzpK~tzBn83i)cV#N6Qgvq zHp9@?FCXS9h0q{}_yP^u-^1S{$A`bepF}rlm^LmFGB1u2v4!5Vd5`VrW$|jNSL)F- z>Q-DI93XqJgdL$IE#$1-^${xvZxHQKPX;9+jOdlA!BV<8p|M%4Y9?(==tsSc6&3ia z)4K9EGrENm;>wf?M5dQq83aHYK42SJcqJcy4>-J&y@_-{HwlRaSQF~XQXn?UN-{CL dR1TXMF8QGwr0B*6azL|M9u>R1F4!wi=YLBUv+V!? literal 0 HcmV?d00001 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 e66d646579624e0acad9a27bffe46cb8f0b91d8a..64601b9b3235c05da68c7ed5c4e2489cbac378c0 100644 GIT binary patch delta 3320 zcmbtW%WoS+7|%M6UvZqII8j>XF{Vx9q>0-q6sp{cN`jgyQoNR^N(B(B_$cuIUTyK8R}*J{9$?VWGF_xGFM z&Yk7kmj-SQeEjE$4+ri%pI+7U+L|ucNnX{;_|3x3Te#_v=$1p`c6bwCHy!5K`?UH# zyC0FHQ0t-eNRmEfgNbbD>~m}>aei=zdpa$CSu#8~E}ru4?^-)bYa<*FOB#DUb|Rsa zv1%$61?%iy?2`1-K4B{w@9!N0b&uf{GQA#RUnG998Vd_`9hVeC(bRxI5474JfroOVh zdF67x9cDY9@EbX7m2pK;6&|fnRSe$L`CHDrPL2$ah}Z4(KAnPM;#xq_uJx{=SN<0c z6!4VE=Qs>Ztk>9$nV`y=To|5|dNQTbAU!zFIN#wTU76dYu9a-F_vs`0} z{6VJI6QG%OHRE=oRFw@wj67J~(4L97og26JNjpJSc^b#*MK=xZoX3JxAV8;)5P^1*B{=a%?$gheZrKRBt+VwBB6eP73=*aUrP5it11k)a)n-%w`=s zc3Akd2SI?Z*Q-iNF`c_&|C+3;@EET*S87_hQN<2u3KmtzN{Nx5OWqk*mj$29l zs5y;!NKxh~x`2yAs=Tcnnzob=HXFcsI@Qs7%`FJUHn}yxl-(G4Hce+bzBqU%J*~lG zuGYA>W@l2%QiPRLSESE5Alc(o%xZOPAptrDOaHLj>t&^6UL~?YWO4!V z9nMC26KNHc<8-`;cCc2%KsqG^ygZNUvZ4d~xF0cfnhCfUTw*yC1!VSGw~+reT#lX$ z`hKR1Z}!gcob(Ov#zc?<#-NS6U<)02mHnQYv=$GOgU<(tGwPhN#}GMq#$>_@Lz5q+ zVzFV!>nGR+RJTE}djJGH`-h&E4}vefHGm*0wZLR{*u_> z4+KlRY3%gDaQVD2-Z$3K1Bz~lB2?@{nPx-KQn)Bk(oG8IZm?a}Xl_1m1W$q?=bp1U zYJh2nd3ZCP$UMin6)=z0W*&NzTL)?94Cn-DM>u>k?a=qY0eL{*hd+9U|J)TG+j$G- z3((3jKtXuMO$03mUT}OP19A>-aN+l;{cexKAZu{ZVc$y&?AJ&%N!LLej9&Jf#Xb7T zgqSswwSxS^eNVW)_nhnbr^HD25ufa3tqRH!5bH8{!c#vmcwY*Ghs#qh*zN&CjW^)X zV4!Z>dV=8^==^^$O!utiXmdYACSh6?H#@WxKnRx?LEaT1^fI^jL7LlxjSoCGJ~oO1 z8%KiJ;9e($I7z)%Q`)n#j=%#D(RV@G6M=km+L>$?)pf0e4Fi`^vB__`^(MU3Q8p{) z4zuj3qPqJ{<%k>O@HLE?YJt#X@}c}0oQ8E RH|`oF3+cdqYiZ)D^e>HvI^h5S delta 1053 zcmb_a&1(}u6z}At$)?68q^W2=oS>!2lBA-DJy|?eD@2f5&>HMEnPhgGX2b3lEwoq< zg$jF-x1Oav_8`{yPpBs^BE49OLJxv>vEZAesX+^hc$qgd@8kD=zxP%r)-HHgyib=; zKJl)R2+X*mAz#tqlI@vf4=e{9TYL_zzb3@fd_%Sgc>()Uii`pcjP}==bze8;Mh-0W zd4^*L_k70|+A;Y#w%EMtkvznNxBj!o%WBC|^}1p#QuM%ze}Y^)+HnFx(w9HM4t3x< zwhQ)N6%ibsyiQ;<@cH3gS#B7tq?!mX%QP*UmXW1;qt#AL&d^+rPI5*oHC?gjVJI~l zm{d`jK^II`rfQvHqFS%gif+s+mW9`Rz~Mr^_nAk|vXkasd-^x9iT{TNd&kBJg>%8& ztt9E`;W6zLnuS?DXuD|IS#{c7w7+?ryLqC(lLZXeIc%{17y4}igLV+f!Pj7voX7gv z+x%m9^~)K$y8{2LQg>&t6S_z|@GN`>&u`%yAoYh}ESQ9uK3`}`uuAYE&JJm5QP_*b zt7BqyrnzErWwyq$VhTkuvn#Y~r}T2pq*=}@YlFM=b<6%k=~eA#hS1cq5c6;Jf=;-OmxT{lk4B^jXbXY%oXL5Kn)ZnWfGfKE<_w-CJgsqShP*3W-Z7=vE}&+(_&b q*9X#EKfUW7eu;_Nb39C2sw=1smNRizHQ{({@)WKu`kR|)rpXWLm};Q_ 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 24fffd0b087adf4aa9227c731873f7d167aa05ee..fdf57b00f5004c4499cdab4ff033d92a549972f2 100644 GIT binary patch delta 2584 zcmcguO>7%Q6t)wu*LFkAPvWL=ldPpyagx>r6$DB-&;#^mJIUbeo!_sj-Bx*AxMV5OJ_x&&k z*^aQx=hq9_?AX@LY;!y~rS1ui=JCa=`^v1;^6gH`L9XwGWHY#&?+@#MQv?gz;JX0W z;#=YQuuc?)U%-CPwLA@Jy3z3s+d}R@^9k}b6FHv732BCoE#Fu-u z>^Zij8`g#3s&4D`b{jCUehc(xlq9K1f49!}U5#kVjCviw{HX{bosn z&xy2>_PWsHh}6eHhU+y-@)I{$S;y;!W%$O>w(gqxWE>R5v9xhuX^!=2 zv@{QnPh{7NjYQ{t3`TJj$m}YaTZIy3nCfASx}Ke?4?DJEVxO$6iI!^d)4nG9uF)t( z9;|O*ImBX*tk73+O=XSig2n4A$$1FFo~UE6Al)$sMUAzdWtYz z$YwIp30Aw%w=U}La37TZ3Y$ohsxKy5(MJISJnF>IosWj3!jpP8IIcc>kp2McnQFJGIG^-Kep}G7*GcY!4^<=BTX-rr z7Ky*57yiyF^ue)AW($>m8egJ+z%u$fr^1T-<$y2t;N43&E_kE{?1X>omAx-#{{bGP Bc@h8s delta 292 zcmexqx?P^NfpzK{{)wy|j3SdaFp5lEEC^w2JjKMw$g=q?V=S|Jk8p88MrK}xUTQ^& zURh>pd2)VA>XaUS7&AUGFF7N>XmTE(mRJvGQEFOAVo`c($&?-i*EK{^&r&KGi(&RE~Wo}ZLeQdy8XC1XPmM@njOGL$pmy^>1?042=y6+kR@JtL%m#U$fwIWb=%qr%V- z$K%)zW-m-1rprRdV}+(6vP{Iq=Zm8OG7XRm?7es-0xps)ATu$Njgm>%2HT2@qqlug z+=6{EbQA1f=Wp!m_<|5(;l$&@GC(c0Pw|6J&_m$dR@eF?B|GxcYE^A$l2KeoY6F>i ztN1jknyS9a(<`3FNUTd*U8>5GBED$v6l2bx!_4;{pc~$g-kKig2HJ+PvxQyJ^Z3^; zTy__K9e0LkLPJVTR@TcGbhKtY+p9uS=Tta_7_LL*=~CU7p5AtfrncwA>ZQI34!yqtQ8nS4}0i|(}pbJ`EuF9r$*;Y6&=?c6?wN|O2)|z!>;cMIvhbuts z4iv|NDe3FTv<3qdy{y~LD%@G8WDYQE(;iHy~G(Z8dqvSJR%6eO?XimGE( zt(B`tF?Ch0IUQ0g4)#IYnRdNKc*+mICx%_4{`PpXYoxtL;n{KJi3&t}DW-?JRtAjN z%EaWl_q$V{+=7)m-S!WXo}cwK(+|9vmhz+x2b@+4Lo4xY?bt~-L6vt>yW2^G^3(n{ z`kf1UZ4|TtckUu`1@!SX!r(zH{&STBBnMsZ>yb8GCWoOMuY)STa%f;)^hL(Syf*RV zDLi!w8m5oU{eCu`y7Teq(HISMX-wF@*qSbZ5q`m@Nj$)kqnW#-Fbuf6Q8)oQ|DVEG z&+R_)9PZlNk>^rs3@|qBXKeef+=ju09)lU%mA;dQyoT9lIeE4&W7hmfvEhIge?w?1b4H z-5jWIbaV7gE`%=7Z$xQ*{+#mHEuKOD~$`@1k_Um_>RPUK#Pvox$$ zhH~2DALq^qGv(A{x=Esi<0p3KNOXGhDflmXSSN7c)o_Pnf$(!6djVcn%9k|C0 V_!cI7my=%d%kTZZ@ArM*sku 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 ff5faaa8e61ac8831cf8b3de57029b010aa0ba57..d3f40c19b967a216dd0e7f46a845635e0a3fa248 100644 GIT binary patch literal 8906 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 QhE2&X%?q>!$KCdS0k?naGynhq delta 859 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 delta 616 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 J-VJFt&|g@T^?LvS 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 64bee34317b66add4f1b26ad9287b1c807d8b7d4..76aee0089af8a6feeca7ba4216e0a6a3b921845a 100644 GIT binary patch literal 14144 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 Qn`#bsEBd#8J9UNp3#yObg8%>k 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 c474e05cae7e25511607030fd28412c5753540d2..3a6522c8cc8c6418df3c340d314a4c7bb2dd844a 100644 GIT binary patch literal 15833 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 delta 1690 zcma)6OKcle6!n|&_>)lA_%kscdop7utuwWYs^Th$C~f&k5%fb=NF^kbWRjUzCpMmO zAqtdsfmEbf5bmH#NG#YPB7uTS1ga=)7i=m4Ss=jz3T1_=RXcLAm0RVK5xzT5o~;75P({htu>H*X@AK_9`dtc*sR0sph1 zjsOAw8U%OUE_|yH=ORM`Kp!ZAL0MZ#bWaVLPNP)pXS~Om8*GZ5e^Z=w9T|Gy`wnmqs3uZjk~AT^SgEun(=m%~%PJ zB_bS4s(Be^5_zZf>TZbzYg=U1L$*_eY_2Fb9<2V+6xi` zx#;j^Cl%VhkmAs=Iu8fpeE&ZL-SDF8#?QCWZN){8?PeFFpJ4pNi}8V{6lJG@kow%z zJvi+rceKw0JNUE7H2fKgG58NJ33s+9fnM)SLRz6yiWJE5MTTWSP82&W?Z)f0bc^4E z?sTDY1nO@csD1(05nLM*B|FfXaK}c9)6nsj9U=YOME) zR6he_gC)jv{e*4(++Dm5vhXQPNhy+OBUuU`rsN3tX$I6pE`(cB8Ge!S@RrO41UyOU zD5i$sYgtC`y1ZTdH*bURUM|cM#^7Xb2)^4R3wppEZl4{gkawo8R;J0@R$X2sD-Pf1 z_A{GqrQu60gc~%!7`4N7ZDGE;q#DbP&D2)l%aPCTVdD9;lk!zf<3Pg)!f&FJUo}n!x#B}wC<(mgC1%w zcBmn9H%aF%2if5PxEmAUaCw-+H%MGC%92cf>|k{kyXE71R1D2)=3GaH56dt0*@1b@ zQjLnEf^cXY`Qdyj(>!zN9%2r%&Bo|0cJD6M=fh$0G3_uNIqGhb2OCqxo2D+4x0~pj JXU9&VzX7RJ`0@Y% 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 daa679f9bd85e177ab6ca4d0669d74b9dd5c445b..a5e0b1d607c5f96d5412a502b7413f1d7e92ee4b 100644 GIT binary patch literal 13026 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 delta 1704 zcmb7FTWs586yEQ|xu+!UlBUhly6f87ZbF1qMwv$2Y^W2Ej=RLIEl%t4$8wW`U3C*0 zj0YqxmIgYWwC5pB2r*HJ5CRDVec*uy1W#Nfc-RACD}wUC6GG$swsUDWY4DI(KIc2P z?|lF7uPeXI@@M#SPY%Dyzd{D#r<{Z7?1)HYEZ!~uR}?^ASsjgHgBHjpmB zJpUni(SZ~KDgHG2PC+uWuRuNYI$Dgi3Oy;kWS_Q0%3G0T#Z>N^RdhqOS^Jfv^jfkC>LKn%;@N4La_}w%|7wEu!1pTGP{ow>5+n84BqQ9eO%JXbNIr=%7 zf_O|A9w2-6$bu}dKBq2MmlRW#WkHme6kS&;x++UTp#XESF-Rn8`y&jE6Jfn-n2S|YUBQjE7~Hs7;SnrsihumS z00Y*#j*udJ8!gldI3LYw5=<)a0lm-BDIDUD{Rhyd+#c1IQv9rVjnd2$6u?l5a1?haHZnx^ z4&b9T`7{54`rAC}+kBn4c~sdaYPZ7S?tU=3dq|ayFz2zR-k3FJ?qp3n(%EQ2-lYsE z_UtFmv%I|?HLbjJ4mAQ?>v@Q%J2~Nz6Q#+C4>^IE)L_mExSFypBC|84G5vbd_CYfB zIL}1xgL>)#vVkQh1}?P$r~s|6v(>j`NTy}K%tSt&o`!Po?cMHv+YDZ~4l|K zY)StRZk=mf9lz`=K8UHbIs7xMa7|fJSwaKvbd5P)HRupt?~Wg{9;UO6zl#r(e*rOHUI~6z&wt%(Nm95s=z;8bAt!27)Vyafb^MS1yc{)MHT3nDw zyorx{WiJWFm5ITXkA)jF0T=4d1&I<}>p$?^nHCBGn>3m8`p$P=_s_t)vCwkp>3GlM z(0#fW>F*s6uoM!A$jb^t7aS39kO5ZwGO>@ZMU6jvO!~Tz9agJe`v=z|2W@xTv8rh=e zxQw!)d+ZKN;Sg@A`E(xf$!abtH8_$4PjC$*#V4zn^9m{~ASd0JECtz`-4SFT3T=W= zpGz0+D3D5;vk z^eJ#6B6zqJ3o+8{A(99v(2`Zu@|w$5J^O9dHsDjXDw8F%P%a{dSBL~szNk75fbL(E zpTJe^1>`c)cBHl*kKz!g=nuUUs19(dF!Ry+GIC`Sl(3IK>towL7cp;^O2}~OFJbr$ zp2Znn^ejh=>ep*X5m>t#g133?_08kR@tTvg1wyYcB&vFk2Z5jP4aBjlIDWO9(=(u~ zGa%7qQn73^j~oXTlw5`1qg8?CD#>L1$o}i&-wI^C3$RX3#R>irBw==a^nr9bak!c~ z74M>A<(yXuy%C=7*PlW>5zU*(8OgWU$9h$>8i^2}!LenKF4w4_J8PHFicumd*DV z?=dp2oxGP>kOQ6 zrF9BKQaa=GWPfI<$@=U9E+;djGmd7+WH4vQ`en%Zl_q6~^++l_YM6}ON`w(enkG-+ zQed1q`5u=yvvkIa$@1(9lOwnVCr{#%o4lOgO*-RW4|{%6R!L<+>XeNCJsc^i#mP|4 zWI=&Et{%3O)RM%^oGFQu>ji8XS%3z}Y`!V*myywQ^L3%e%xe6M3=CP^K%%&ZGcPeW b6{NWs=*=vUL}zh^BGAWK+?yYW#V`T@rtXX! 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 928cfd0b1f6531825a13a0f5804286c56093d95a..f004593387f4648cd566671e9c4f56a1d72d9d57 100644 GIT binary patch delta 1345 zcmaJ>OHUI~6z&wt%(Nm95s=z;8bAt!27)Vyafb^MS1yc{)MHT3nDw zyorx{WiJWFm5ITXkA)jF0T=4d1&I<}>p$?^nHCBGn>3m8`p$P=_s_t)vCwkp>3GlM z(0#fW>F*s6uoM!A$jb^t7aS39kO5ZwGO>@ZMU6jvO!~Tz9agJe`v=z|2W@xTv8rh=e zxQw!)d+ZKN;Sg@A`E(xf$!abtH8_$4PjC$*#V4zn^NL{>kdtmqmV#`}?g+9Eg*HK` z&!vla-z&^dAI0BjyEq*Cf@63C$7kAb6n`$~03>`shrW@{3!QXVI@gc8Nat}B*a6^g z02~c_XfmMf(GRjB{qS)SU6x|4+YQM+akH>R-^(*?K7|%=eSy#8CT^i4;f^W}5Ya(M zEjngnKjM=m+D3D5;vk z^eJ#6B6zqJ3o+8{A(99v(2`Zu@|w$5J^O9dHsDjXDw8F%P%a{dSBL~szNk75fbL(E zpTJe^1>`c)cBHl*kKz!g=nuUUs19(dF!Ry+GIC`Sl(3IK>towL7cp;^O2}~OFJbr$ zp2Znn^ejh=>ep*X5m>t#g133?_08kR@tTvg1wyYcB&vFk2Z5jP4aBjlIDWO9(=(u~ zGa%7qQn73^j~oXTlw5`1qg8?CD#>L1$o}i&-wI^C3$RX3#R>irBw==a^nr9bak!c~ z74M>A<(yXuy%C=7*PlW>5zUv*T!I&EF>)>_Y;Qhj-D|qA h0j~NwPfuh+g?Yo^9e9v*Zdi425*X?0o2(-v`~$WS%NhUx delta 397 zcmdmE@IjTefpzLrp^2;=jFOY>*(8OgWU$9h$>8i^2}!LenKF4w4_J8PHFicumd*DV z?=dp2oxGP>kOQ6 zrF9BKQaa=GWPfI<$@=U9E+;djGmd7+WH4vQ`en%Zl_q6~^++l_YM6}ON`w(enkG-+ zQed1q`5u=yvvkIa$@1(9lOwnVCr{#%o4lOgO*-RW4|{%6R!L<+>XeNCJsd!{Cqp@t z1qJfBde~A@OA<44rX)_T7qDey0U98)`KG{MMn==k*M%N4tMM~3Fl2E9iQ*p4yu{p8 akmh2bH?u$zoy8f7Kp$suZ+;*a!w3MxwTwOh 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 0000000000000000000000000000000000000000..14dfd2275feed100bca55b760c80bd1d46b71455 GIT binary patch literal 5500 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 o4sMFzNnW5mIBM4a2N>9M^Z)<= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..deedfa15db003b9f893f8df76fd00e2ee4901494 GIT binary patch literal 13286 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..294914bb51b052907b170e6e7ad54e4ba9b9d7ae GIT binary patch literal 12500 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 Ld4cBOXs7;Pnbq#( literal 0 HcmV?d00001 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 cc630df577183db87cc540e98be4de22944b0c83..84b8311673f1ae970895231e527c742d7d2125ea 100644 GIT binary patch delta 1494 zcmaJ>O>7fa5cb<-*Y?`$4gLuj+hlEo8j>^+6oeE~nxqN{1^JRAgkU>so>%_E>mY*o z7a&DiRNC3LLLeH66P!R%RdK2+wYOFvq!y&ALaju_1%!I&iAtTfyLQ$@#Ru=syl=jl z`DWkzv)df!FYsUZw>;n<62ifE_z)@CNWUQ#$~j#x6-#QvU1X?J1LzB8$S#)aBW)`jBZSBV+__h=?ZOsUEV^iQh}T=3crzf z#JLXIZG>XrO?Fq^I}DETF&x>%_%Ez}B1I^Fu--iv9cevPzx zK1ch`!k2PyvQy%Y9{ZUn(qp!2Y*BC(Er!R^Jm>KkUTnI#R98(+V5VdD*4boH=Hbg#vsmLhqU)*x55c!vId%4xmV}Ew-h+()E#y{QgS92AWk?6Q{Gl~TJ>GbNI_$>JkS8dLH delta 1012 zcma)5OK1~O6zxkglO~;{ACp*`ekN8)J54J>#ad#tP#e_Rjfxfeang>yjBS&4QY31z z^|KHMsop6r1jU_#LQ53sLZk?;+(@;$lnPSlRsN-mOw2M|#E3GN08iGpO z0V11KN!u<@AMKx{O>}Uxm=3^G+e>oQEJ<@-ZVI_H0M|}tO>7OZJ0@n~_mRgYc9L)7 z9+}u(zDCH2UPM5HuR^t#=8$nja-OiwI)9(MgX{LNtCQBy0a|;EAm5RBZ+8>&1$8CY z3KEeVu?%yLS0n<*o#M_5k|b+`T52Lbc3zUi1}Tin>hlH((W3}=0dTU^QZNVZ~Iw&gnM)ovk%5);xoNt*|Q?KmrWt=UD=irtl3 zLxY;qLJC_-m~A0YN}l>qLP_vLpijL}+Crgu=tCPCNa!DEADTWig`U~fN-N8D4G~D% znK|>F?|kRXnf>y`&t78RVm};7U1hI?kDQd`(vr+oa8|*Rtn!MwcJ+F6ulcT9Klm8N zvGX&-GRzP;>yEJ#)oD~Cj~rhxH^}Yoq+{+W@@w~V{sP6DHGavgcYMHj%9_7RhA)zL z{=zzq-6z>G2U8^#Hr2yab?jc(aa4nePubcqQ!^(nOcW7ApfyW{+3o76;8!E9zN|LZ+m}> zlrouWCWGb?<`m53io6dYM9%f4qCQ_HQ`>7PMvDDjGUfOBdpG$lp)9C^R3;1lCys|( z}pwfNWE|RdC^5JhVWfb#RHZO)6%Q?@hvmGCas6A>gFfO0qHPu~D7}uo-fr&%;t8 z&yrigQUB8|WWq&80%BLg2c=8y_k{=MIx+=bqBKpXeWrGz8}>BQ0GdH&8!Lf*R;Zda z8@07IHCJHQZZ%h^nlpAa{Sd@?!%{qIchjz*LXl&Zg4EtrP<#d+4b?^(@dTZ~${P5{ zCj&m_ou*>c*=4(86p1RH z@X8CLhoE4fB8qBWI&nZxnCJ;|C+K|Ab|KNVBe2#u4A!AH`v6r0{FTT9cbNRa42JM3 zUZa#>rQmV#j1APfM<^IAz_7h5QZEt97}}wSmSMj&0hH>!Fn|jDj#eNZTE@f6!00uY zv>0jeWD-?m37VI}Z=&2bDpyOD?M*3VZFimP)9yIKYV$2oOcRR22#o^^Q~|eo3ejGyB6{r%gbJL!8++ zZ@%;9^WMC<^!VqGaXZ}mpG@v@Z-W$R2PSqu9I*%ESFVKs2z9Rm4uGR{CM6VgL(+^g zM6Cw-Gw>PslzbGO232x3S{-d6<26-#dEU^ZSCOVm3K``KY1dlmSu3t(jjV)j2r-}F zJU0{O>~Hb{mxs>K!jYPVlcxLimi4A}&MM*zK2Ls$r^!X`*_j}X#&J7Wa%MTRZ%f+a zZYum8pn)z#OXKPWG%$i*WZn+;WPEUvsL`c=K4jUGy8DniRy70Z##&o4u!Sd|0pt|F zxBaaMMbTX)im-TWU6FMC*qQU|>Q-CQD-FqzbVKW`8yyYlm1PI*nG&3vgU7wdA@hPg zw@QqO+WeTLh$S6Mbp?s`s^{s6n+?=5nj1|-R%2rm%$t(C+n1b-rN{@dBN3tAQ50kl zl}`hn+>DKFuKfQ|JNUoxGADE#t{$>M&#ux9QoNt{xkGElmdi1@9ImnY^HZ8C!CO1z;EM9a94220C|OFhdq!>2NxsxaXA09&8MIDmzWGiR+M9Y6~3q9)xiEvAfILx z@SIx#t90=_Du9^>Du6emXsb={NK^ME&W!c14Y?N20*z^>+H7@3?r9esZuA&susR4P zMEzd0!7LmErh53jOXPb{%tsG*C(W?ae=HM-tc>wr{o=!a zkSpU;9fP$pBOTw;&K?i4$#gx|@-BNN+CC{5j1^;%+$^-gVLghJ?^uQD5&NG@GAqh<^sFDk2URH zRr^~0mjL@|zRe&<=!MP5KQp+~Vf-5%?~(R>`7r*8zMwx)%8*=tV3gbta^%9qQ?L+V zO-8NDc9W5d>@!LUt-IgvrPY`jZXiQyDwagl^b!csJY>6HrtbjZG;@z5O;a_po4vn# oEBi(8!74S%i}Xh~`IfYWn37JPaG6cKqvL7%n#+sbtMC-~8+pIoYybcN 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 775464e761d0960f81a3134f949ccebf02798e8e..52f15760faab7d55d0cddab2d12e6242829a82a7 100644 GIT binary patch delta 3202 zcmai$TWs586o6+pX`8f7+BKK9xztXYw2gXM){Kr$FzsO*qXNMg5~$iTH*xEDNgO4a zv?3<0z$7MuwCN8LLVG}H1Br`7Rf%b6h&P5dq&*;BfCp~dBsO?L;)My$`5ni0;*LDT z{_S)9&VSDD8%ICL+0WSDx|rIqUu76}^Gl|SWj-V4+&r61k&oQF?W<*>B$40UNiV&d zsT35YD&>l+GjzRKwxyizC!eEFIe}Bfd)<%uq^_fN$yaNC_3{=D5|$3qs>5_fELO`( zE?bwvi!3?RfA5L+m~GnlCYu(@tCg(+|0lHDB{^#DthkaZ<}f3Y z?jMmn`Z|s2rgK%XP$%`t_4?`hgk-PrZP;3o)v0d; z%hb=-Rd)gT5Ax~YbnqUOOA5$$;c{|W@=2Y#z+KW8pMK^x3WVgVcnL3dgY3_$tfS`4 z{ zF^n$AEVrHYv1EgbI6Rs+av>5Sqkg+n&xd>w@&_M%$W|m5e13OhAFBN2JLHTv&@mz3 zhwCh}2i=7l9OuDRE5~`3xZ+d0%piLJM@vU61zM+$J{a!yJb1Q+MCkbflV1RGxI>;160`5l;qu@m%I~_&2+hM3 zxCSWiKl7eEz`&kku9|+UbC7;FBu`AQX7OMM3!`DyMwNJ4HM{% zCJ=P{x(UdV2E^SQ(J1sIgM-QTJ&YIfF?XD?lRo}1^Eoy2Cf}96qK5&86ii_GJL4pB zKdlr+`Vle%N4`_tOY#o}5vdc8N%<$kqgoHuGH3v63}B--&U}lmTRLtO0==a|^g;`1 zb5J!6r(0J>DHPy)iQHfkgmZQ|<=-%DI8aRpZnYyo%imBT2O@yg*SMNwu7K=>ewqyf zmRa&kglGG0MBwLU`fSbeSaCVD|5Qe#-&_<98IJ8-KtA+G>-WEq_Uk54-J@w6`<46} z-N8=U$j0DQz}#?CkV*_Y$O>;l0SWp&M}aj2NU{n9EVby?msHuhI(jas|9$TE0vXuSgD9v zZh4I>o-CBsvPy>Id2Me$R7O2lz)>DDtdM6t0jzpJtNQy5_l@>}`pnWu7UD5`jV-O! zNjA>$uYzu^3%;4FYbCKRzlO{1tXRotYjQchN_^ufh9!bKxVbw1fa$r4QZBJvR>~wf sIk@@C*viJrC?8$>&<|0@G#He~P2Ae96GyQt zT4|`A1QMIPY11)C6G8&el7l#C`SX-+0{AYJc^Sosq9T#8#DYB60ZX5jJGU>8v(xl{&$A;KA1;Yy|OSN)y{ zUOmCd@-&y2BT78rre(e)2nN~%BS=tC$GPmRN~V;FnStf-e)xX3$L*b-mt|gq$-35) z9;}Ru8lN)2h@3HAHF^c79(iC^hTxtuq>m6_YqE434S;L#_j+w!h)!tIt%@;TH*$;l zr91F$Lu~waG)wSHzoN(dG!oKGuT6u^LYv?a+9!m-1QK}kDn6AFI8{{bfxB|w6~-HV z)CTt3zh2_EIl|mphRq+nXfcR~qHv9=aXC;(H!1kHJ2dc1&e6{#KIbl)CU9a~Zc@Kq>8_Y=oW zCYQY9F2V&Dc4I!$!Z%_d*cKy1DiM)38WTCPJ&_%DM0ZPZ)ts;~xao`0r%0G%W?7sp zpFcKloqsJ`ycuD&B}mJ}Z?lSR7)CrbD@NqA|Sgdbtqoi;b~ zoWL`th?(IMnv(4+Qw(|mg#BZp%>*m{PWlpwf5PN)p*$CC-kM82TiSczwYD(*ei50x z=N6MpPkVs6kf-88RL&79Pj5pdRp?DSb+X|=85Z9ZSit!}Km8pEanelwYWd``dF$jG zNpCG_r;zRFrmq*}pLafH=HDI|-eqeNSMw;`2*uX~#n3h=P8Cq>+@_CKZ-$}2@IO2} z?6&&JC&4h>3%1b}4tqaYFOLqJw?Q;u6!+nuNFRoeJ0GPS@LT7z^axqm_brzAr6C8N zAWR`OYL(KD6m+x(Iw~iWG@pZ6)Eiwae!)V}>!V*HemrJNc%F=^KFoPN0UO<6&kxoT zDAtg7EjRiCJ>XK$F?y*ej??Ahs2M!Akl@J`0$(}c%gBKN@`Z#7eOHE0C(*4SzL4c- zY=@cP!U`m)ka`E?ltLIB!RoV`{=iGfnLVz`K7l|pdCxP2l+@UDNalqI-OZG zbT2aS3mI8Vh?;R$ccY=UnBfiG!7n5XqSw&1f!7S_9ps7V)eN5yXT*f@hVIEM9!V+5 zd6_q)%P3*J3Kbb~u#!!UWVwt$zL?>t*oPyzh}@8~%1KUI+n&L1?Byji!I?=1G5|A656HxfG9Q YtLT0t;TLCBA&9O@=>5vrffuR&08@{b8UO$Q 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 769a62ed86eaba3c7b83c1231c8e3b9ca325c2c1..851f132628413f9c41e9aebf7227adbf9c77a5ed 100644 GIT binary patch delta 2923 zcmb7GUuYaf7|&jA?=G8|H0j+XxyxPV@~25I$t7*`a4m`i+NMdhB9vmRA>G_Yv3Tv$iPelOnzug5rZ9#Ye>|m4XjGhy{bC7C{ijh~Lca-c3>y<3Y0X z&3u1;^ZUN}W>z1$G9z9RU-$OECcc;s9n;E%sj^(cDZP}>8BfhC*(Jro{y7UbnBG&$ z1;ZkixmB%h^>e=O_8QkIRJ zR@CiCDO+LQ`;F~jLL3(Dku3JKv5^fUY}(UT#AnDgUrM+}&b36zjIWdY=}QamgA^f; z`a|M-IEo2b@*fmFVRIk()8fZ$?(w}{q&e`N@cr6)pjq(Xd$2y_!*_Aa{CCLXJ3*dj zL^(XgPk122&tyY-UXaLSaI_^L)YajrD$-93Z;)bX;Zb|N-QHwo8qjuqXOs0eVmE%;hW7EO_pb)>t zJr^JQ*!laVN><-)$abM^qa4{>L>z~6z~M+UJq~!oA?Qi6+T0s>!a+``}ZBIkjC~k`LNa4R!$zs!8%rYkU2mIu73fp~5HdB6GSqffs244{`}?1QO5N z(Wm+7En7|lnQZG7u2T2o4)xT^re2-pEbpT`1$f5-EC*qe3WuQ0Y~qMwc$eqsJmqK) z#}U;)bTSa9QKM>vsdw0dNLR+{9Xvp~2pV-%gmM8|y)blXwc!n_4Wug;Rsild%)iYPx_s$q|=D&Ov54lHc$G^ zt)xG&8`AfMM};u}GJ41%eZ*5e2=|emKP~5%m80ddR%Xq3dJ&y9&XQllofSzsdLg5* zPVFvLTYFANMa@7Zxoo&C-@bt;^X#`>-Uc@(ZkUU2$3~8C@<+I}sd@w51)D|}DLE;+9EP1(OO2|;(tukdRs?IW>kmF7uBf{l)mRt&r zv{suBjei<+i5x}^PX9ULAwPtA6z*_Qtw|f@rUsO*Q4EOwFTJ$7NmJy2@CrrF-x<9S z@3I|l$4c(sRaCc8@2nkEkX-{Dv2Ot|j;tuadSeS&ml;{D99b0nB%5t?PQ^p6jnj=r z*lIi1jzVDLwj%=1r^+%O#(&e74!h4{Cvp5FyTJSztx$mH3U_;%(L@53%34OzbtQ`y zR#0)dP+G}q8I(x4d*4yV?f?McYXGV*$hez)E5<|WS0L6fu*+&6MJG~p>*VcN;+W|v ztyre7pcq)oS_eoVi%pc*SB#ZuR)7|1Gm#+8XT{xn&M zrv(pLZI7+pi2o%Bv9&MJkM#q;gR=S?{L{^bq6~4sg${2Tl`g!b;{-f!V14aY-x=W_ Dhr^k3 delta 3156 zcmbVOTWl0n819+v?4>Q#va|(ex1CY~?eu0*>{_oFxkyP9qFm%+neI+IbC~WdGqX!; zAVq})$i#-6;YnXmc~FQ**2E`Nf-f2+@@#@p5}$nGfhVHzKWAs?Y`5DQUgq+j^Z)<( zzwf`Cxm`DQ^QZYs8#i9$&!N@iE42FJr%k1g8$WRf)fRt2&8RltD;CIK+%5D2`6$+b zQsmoMDw0*~6NY(=Jc^}6@4Mf~DW+^|M%L=La=K>s`P|z91vXM3vH-S5}fLO&pqXKsl4M$U`v7YhhHUD(>n5i--)i1KjH$}8*V{Yi5?zC z-;v9Fg4_AEv$J$0~3qz(j}WPWfnUEEMF&fb&9YtM`edkK%2t;eb7FL5OtY1#z_K&+gyAsG zaTstZd5Wk!eubj+af6WHnbG+?anHJ?+z{|~if-n03afy(!Ye-xsld|2$3pCuIR^TM?OC)3X|v z@{Z*L2PDae9I?<2RaEpiF zW5drf1fiM-Rs`TFE(#A1@LZ?xM16S3gO%+YoN%cPxDJxsyxN1GqsL1I6LvGxdYa0i zzkycgW}#x!8ZWB+I8MN)pUhr2!5!qYRRic>8pUf~r+mb0s7IhIpr-L)g;qHe-B8V{ zJgzIyLCIjet=$8@EDP%-f0smV#S>hdBfrOc+dbSGxpL$o#n;p7rsf&~05*~j*Yw6p zr7PeDGAMLLz3?B=@H<)f0;VxnjrUG-A2-b0&w2q5QTNHE0v@WspsTDkl+Y~4rDvb4 z=ap@yX_$1jya6*s)GU|@@XE6JLcVWp+EU{*o61C>E0&C^HO@+yc)}908(Uo9%0m&f%CAfp!Z{5M2VPOgHGlR_D0= zM(euz`9ZX&EGtH7R`^|fgq>zts-$hxX@$*UkEy&U!}u zFkD_r_)tJZ&aUm^u9flgc?CcCIA~Pm2itU&(&^LlB?xc<9_R20c&ZQaG?mQ2gZ76K z1NaL4rIWaV09ZM&3aL+*d@n3Wt(hJey&MzPZVKlwXxtj-B%6kFDG zS0?+DDO5|2HzkVKlK&v|X7P*m`=L#JpohERVL7p^Jf%==3$EyxE}Xa24!EtudhzSd GL+C&G0>(uE 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 7a7b6d48591a05aeb23361f1c3ef046378ca4bd9..69203116c142de9c2d307c56f209dab77f839373 100644 GIT binary patch delta 636 zcmaKqK}+L66vv&8F_}oMf>trDPC&G>r;6T0kUj2K*rnQb>Li$?bmE~0!96UCkc+eIp3Z0mMkhXMa%J> z&sy%Bhx@Uxc` zS+>pFouDC<5=~z3a(~Zjcbh?j+xF8D-_`VwE-iPK3=OGc!-6qQpK@m~L;i8fA51%g zv$q!9Dpn#rsJmgeEn;^iO^v2djh7rY%@$mkYxp-Du~I@u9|+k=NdAs4Zlc`Xz(qyO Z-}XdmQuyF*S~yhF#ohjEpRs4>2BNWL!G=6q_QW#pJha?VF8RrZFK4FfvXqW#7UW zJ6VfEesVFVV3cfeNs)rCu0lvgszO?RQEp;MNotBhacORDVo{~ulnnORDH<7^JshdI z1sRFOnZ;8kPtk0gQVSGh?P1jdYSsd)$q?&d26CpfPJu{DXPlm_$f+fDGDAA!XogG% zbB3&6hMZq%5>TPE!lQ=C3X_*`D)OO7rA|J`BRP2j7YpOm$pu{A%+eVvCNpvA$xzN@C7v{{9=4R!lEloMDT$LicuW~t wfX2vdzQyyGkaCaK+~s%N2FKl{ zYo3UEjViZ(vmVx5kxd35d*0Lk(Mw@3q(LV&gs~|DuFdkh1fJQ z1lW|UXaUV$oWFoFl7i!QAw8u(#NE3SFdgUTwo0Yzo;2sCt^Of8=6_Rs7L78loIu2A z6pbT;=zav>f`}1YWC{rU*Q)aSqft;mNWn@-YMK&5T8@bk6f1WogBJ8WjyV(2vZN>| z39wc&43bJt<8<80Ig2wwUV)Iv+R^KFYaVVn`l_A)gd`#D;sO zO#^FmxGi>G9%2#u#7(h(t_dO!*^zw7pHc+FkTMe1>x=WiaaUco{%e4GU0Pu- zjn=!=3ob3&VrJ^av^o2l#sUM}V+J3rSi+KQOXSP6&>1eC`EQ9;tNsb8*Kv8wS|dGo zTHFkRpF-^piJfa lp2Kdp%O(G0JSAQgvY2HU@Q%oAqf&c|F%6&&jI@fT2p|T4^kYNo*0?%P9G#Fx zyr~6&4uum!oL&t-TX-h}S)Nujl!FAzGKkCk16agV^ci57fcsLKavhaGGOMgZrVT?&0wYHhLx-A+aBdomnR%21 zR<#A}xFF_kj3oiiXQ7@l5zN3eLoyNbSct*#Gy~ys+w0PKO+$pfsq0vfG{qtl3PD-M zL*kY*@5FJyzVW|05UsSpE$(}{1hrrA`RG*rDRF>*7=aE7BFzg)w!ocgg1z!-+-}!^ zxO3Za%XZDU3;S_&6nBrZ0Lc!aYz{+9vAoCY-H}qans&Qq6Zc!l_n@Ef6gqiqQ=uml zV6{O1O(hp7b*%PAlop zyPW=QE>{Z=-N{@nJlbhCJ=A74QY$iQC#%$cXz7dEL3e;1TacYRKA?8Q-6ym34KtmRWpd3`0D3r@F*nQ9RBR$QrKh z^Q3fPa8(@QsG+0v{2Tiol(|DLBfDW$*cA@p8EJ@n<{erHNc=jeD>3qt1(j-R3bLW- zRG+hs$-)vXH1>u3JO%3qTf~C+H}1q==-Z|QooGD^elnk3%YGhYHisPb7hi@l$eJpx z>8n;HYzH%lUD=ug>0sMIL8Q%*uHs_bnjpx3fORo3^JfVv^*lzL7pj(iDH@PP(>itIoO0o}LrK zx>m+Th7=9yDT>n!F&(MQK$^nTGCwPK1QacU45f^b$}4hwxh^yEk%gFi&P^p3f8>8# zA^rV@B4%u&zaQ;DDP7MEAicm;T~l%a1kb@NI#n#;0mKMKhfW?liVRj%wF~Hyn#-XS zMz%Y=RE^=xV9n_O&MKuGWDiA*DmeoW1}xHk#v*<*n!#CBQ$>VxIkjRii(8u}tt(a^ z@e*Ghw7LakuyZQIc?Zxu|F5){k@7}6=cV%PgM>W{7xVmhFu_NHyF6>9wl+TP>EaKA zu|y{vNSv;MS1Cn0i0`^(R|0qZNoZgXT_F(N)8rEjflNNg3sm=v=9}znqmPLe;Hm|8D542ODSMCti${dF0`oqR#TagW<60J z^LzOFkXM$WsQtn)FZcNA-g=dMDB8Q42F0nVpK8m1-XeMV?(jhm6IXVZ zq80K3$S(@4O#;255*!;-XRe2du8r-f))5~JIG>sxwB6xok1Gv1uFRz1YT+5yF8qb4 zkFIpOxxuX=cXP z=KR~6@njPAhn~iUfioyIfwWS-Fp<&ID4A>&@lTAc7KERLEDU}p7*CMXWV}Q+)7Q1U z$gIetJ^%)~&^Iue?XYm!L;+j$yEw`jY^3XF9*ODvW^5-c%Xv9beINTRxq4jH ncPl@-H~a!H{RuyY>DQDz7A^+tF)9pG21&w7qd%)(I>x0xpJeem delta 1006 zcmbu7PiPZC6vjK*Y?{QSO>B+T{BbH&lO-uV6e{RJrJ_}chqfe?^e|~AogI^G*qsU$ zr0GGZu&8C$gV2LVuacv9&_ltCP{DeUqCv!)UOX0@?V2={9;9C0?wj5B-tT+!txmih zlN<8WiJ^6Q4V>h4&#Cnn{d+G%FSon^c$?ec8vtwkl{5@4G(Zu z_>OdkzYBa`$*ZaWU~E}cVNxyXdL<3@y2FAhY6@mDaH#LJv}5!ed4iH6pQk}r2W8l5!_=EBNB;c zNg^wL2v~kxtrKKwrp@gRYUtn|_$TEofX;|Hnm91xQVO;j{D@oXhT|0_&6RKfNc?qQ zPQ(-aQ{cK7ni>2hG)+2l<7A#BZV7D^@JFH8;$VRp z>qZqZ*F{NsMl|e5mQ~S7ZTm|SNf%ndQC?^(&pRO9TZ~xadn?$7Xf>Yw1IGTv7QkN0-H_S&&Z0z}GY=FNM* zdGnj!yqEVfzb%B{3}3xB`gVACX5fNREiYD;3dvc+;J(xM+jB@UG5!d$4hq9vZ6wgOa zhF!PIkw-e_IX*8*JQ1C|FZS30Y)IeBe)OWqe~o@BT;tbbV`N$^GC94KG?6FwOg=u6G!}ADbwd}8UfqKWS9iOK3yjP z7By8>DVc`N&Z!W~|Y+ zdBxCl%k)6p>-cJ7yYA;cOTP0igFVnCfn3gs%aWg(Zv6+{TL;4RdwBW zHkuIvfyPxw=Spz7Ri)H*J;{1n=g&^qJGLv86rBPHxRT-NkOR)dO3h}`O6_4}%~r`c zyr>NPPF%7#$yu7i9aHoyM%|Ex6D$HL6^(+;X8Eo#Ten%?_Xtt4dXeVZ2hCD;vell4_G37K2%#q?jgvHeb8Dfu&S8RLf>k z>r_s90~45^tByg)bKK2SKI7>WjcG7~RPTD!H=j$iV3f;zDl*9Tg$D=7GFibRFC%1% zzSw|@fl3_+6l&cQD&mg1xUHLiq9vk#Bd{(aS?EBlA5F8a=;#?p)H^&I>VWhiI_`AR z=S^RSiKDnA8-#ZwcbuzDT9?5Wq?MYYb1*ujvR=a=P*%OEEV_u%ep&6J;qbDePlG?% zp-b?GK7*fU5upFzyLU9?N~rFXwIp2YE8q-rNiy-A?0Yz9#@a(hmdNPR=2|Ym)nt9MT&Y0=kke`B>Oju-^>I57?Ajv+0_K`R#_(U3G`xdT{0FIb zxV`FnsW{pi!;E=f;=*Zq3W8Y_-i*^&=xLnBpoJG&b6!bo@cqPjLBt2KH{0`vAigB- n&Gg<4W@f;jPGJHpt}D=$pgoz;zbP(UF-aP7g7v-m{$=5B@}7CE delta 599 zcmextJ6)Z%fpuz+@I=-QLm{{PqFnc)#DWaHlKl9b%)Hd%DH-gsQ!+SvSVB@ON~TPn z(u1OA;{i5CMwZRT8Ba1YZkRlgS&`9V@)l+b{=C$Z^8BJ~eJDNoJF~htl&uG&{UB;K z>$7MuDfk4XmXsFdDU@WSDuC@($WH@vU?!Yk(^CgKMXZMiwdsUhqY85cjE1@f$=`C` zjFa!MZ()p`Jds0QD1!}b`!vnQDYa8HGFW?3Cx7HrWmeGDoqU_acJc=dNL!smgLC{>5QWpG8xPnvVIwI zex*qnVm*!uj~XU}jF+5(P>!M~buuHX8UK4YQc{bPp`6Lr#L~HX*iuqU5;JqABu=&!H)CW08Y8oL zg7{xXCR4`E{gRKE)%h727_zv5L~##iUSe)4NOv(XFtR`roy8f7z;FS|Z=N9=%?JQ` C#MY(& 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 300805bf6735c33d96f6674eab590ba50b5fe5c1..478bd6445262e406576455e764da2ab748260368 100644 GIT binary patch delta 1351 zcmaJ>&1(}u6wfwklTEC(SVL)=cDL4=Rt$b&X~mmVP$+m4ni4n3q_b=GgWU}_2dy58 z76(CRD&oyzLG&c?9}qz+exaTe4^_c~2mb@nH@iui)M6m8@6CI^-}}AyX0DF>JkWl* zeL35Ev;Erk_>^huCvC;TY1ho$yxZ662|RwfO%U3uZ-ozn@Q~gM%54XaRG$TBgAI#5 z3tku6=)3TfqpNt}bfBEWB8e7NR4Qb1W}(6;8@<9VvJ`G7#|`9OFzxg6=@Y6)8kHo8 zu0@85QUAwqc$PtaR{<4OLv>Zt$d**cZ34j^wV0kwF#$#ubS}J__6Suei2W1`K%of`T+OiAU~m}qTLHPK*A0} zO35*srT0(j$ivGQVZcFL3-{cqdsniaNg8)WVrN`Ft!uV z;0zZ%!x0nO*&0#|wylQXE!>X!!g1t*T2SOU7=6AmxS;iV5cn2fJe-`y1JmW4mH}tI z0+Ntr$+FEnavW5Uauvxa>sAF?E6K9I4DtWR_)`VeO91QS6gjv(oBk5F54NhQ zm*U;TWI5+4p_S;=u(k~OBy8q1Z))0YZbk~o$#2;7b5x_#u?cvzU<<1EW4{IARduEF ldvIhG!nGA%0uc=bCJv)_;O)}*!IFbzs7hO@KI+a0e*p{w)LQ@m delta 378 zcmaE5(5}YXz&iDh&_vdb$p=}*CoUBLQ5(-PF*34jzQA~ik#Xf@6?R2Ni^=Zn-J1hh zE-@hsFfvZQ%)W&&c5(-YyjliZ27Bz3jA@#UQ);JZWU%&_=B1XD=NDyH=(%LN7bO;C zDCp`cOjhJl)6vM_?BPhwEyzeL&MclXc?w*MkQTZgt;sVuRTxiC-pi>abuvRb<7kFV z26Kk2Uxu7tX;Ow*kD9`xhRGmPl_uwMad9I_PoB%Cz&aJE<} zpk|rP?1Fz8xlI`v7<%|pi;D7#CSMd1-mD~ij9HBzD44|!B#L`D^AdAYK}Hn=10xG0 S(OI0K2n?4j?#+DSF^mAsP<@mD 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 8111dfcce38d02fcba5d7a51f29fdcb0009e249e..02c6beee85289071f45830b6b07eea26a0b4e021 100644 GIT binary patch delta 2908 zcmb_eO=ufO6xPa;^&82KZTUxbB&DRb8%L?Bv5Nztq0kUaL$E_hYdf+mtvy<#T~)hk zEoiFb;3jDYN<7=1ddb0%QVKOL^x9Jza6)lP>7j=Z8=6xCA@tn7x1*I-w&L2f2CsJB zy!X8~-+c3Czl(3Z>AdRv;=Z%TTTS_5!wvfz|xTee`WF;-CGl`^}o=J%5MN!p> zYgQ*7>bNK_X*$zsU4V@T*f7Ah_OL||?CaaY6G2#G8%;6$@Cf^}>2=>C!k;vrY{b#; zH{Rm>dF#jS^-mlZ?83{;?TQAuktYpN!{+3HCtarwgz6wiChY7L_xHjod*qIE(v56J z)uxTdLRLv?v$Ni4G`iv&W7D3P1K-)EZ>q=3|IBp<)8ax#&S)7$W{*8RBki?u01pePk8Z z;~`=4pg0d0-dY)!zvuJ)KNq1a{B@4FdAS1ZdiZ;i)(1Lt^x9qduVl{^)7pQ zXd=j|Y=)UTq?a@y0GkQ4mWhqJR8dT3RmDOny*!>1H8MW8P*8GQ?I?DBIOb3_(Rkcj z@zE5}geF;HJ!Ha*yBFl0kO_YSSMFbC)9fp>jmKqnZicn1u!-cwuib>N-ihL?2Nl@ z#oopGoG!ogDFTM2>lGkF!U%w3En6jw$ZvDx+DRO($!q_DYao@^8sd~u@1W%uD3=RP zdKZc^&oFJ-31m1)mn}ZhH!v`S6{24Aqznw|wFCYwI^dDqc67cfWni>V`FstoD4%jg zKGFvmYt_yVXxP7Yq>sR#EK675NBS5aWdv}WWgFVHXrdc7X;rY5asNZqJ`}aA3hc(J zNZ)yKlpjX!WeEyl0?{3hyOstJ^NSU{{CNx z^Hi76m^(Y~7{{?=n7s(acpI|s?nTmPSoSlazpe*$B8Yj7Vj%XQc54qpMC?I0;m3)) zU^s_{O>d+uorO2JPFL{kR#lFvs_h{hi$(JVB_*n=n2yeuqH-~pFF~h|#$v`Eg1Gne z;Y|Xvo`Pak+%o*yiovOPiB0zL<_;$?SSyA~p$u)CH%YoQsDS>IJM^3_}1GkR~m$ifwH&qgYN??Bd I*N$o7AD$}G!~g&Q delta 846 zcmbu7&ubGw6vsQ+-E6j7lZM*Vrkix5gv3arc&LS1EJ&?Tj8H`nCCJ8Zoy4Rm-3?XH zwt`ZHxs*5cKM=gB#FOB`f(I?MDgpH*em6oamzu3PNK26Z(kI6L>8o&=9Q1L!nvIUZ~Dr zKG?e9rJU+%*;((-xo=?A*ImCUp7xfyXEh zTY-K!xhou5FBdI)$~k7rRm0Bb^??B$wDuz~qUZv1z);SFTpWd{g<836+OVlavkI@e zP_)eo8_50}^g2yriJZ#(qnK$)4#F|jfAp^R6u;p;rrA^jW@Qc=R?+%fsA~rySZYtA z_wckU3WtK7oo{g;Zqy1mLWcF`GH~ocSX5QDfi*1PSPsW?@Fl3jXfPlN?C~pjrs}&l znYF>nwmcHDkby);zsNy(yZhXB|B!xnN#Ff0NH_&30~;NOeR$g=3UQ(z4$*l|#Kj`? z7IlZiQaf;otmGT#k{m9^tL-Izcg~cc46We<_yvyPdpJJ9n|RJeoPssxt#b=L2U9{H zzVFzhp)h<6#$mj7JTZpa+K5~&lCM})dZeZH9E_yyZ=(W0uf7-N-VwoB^nPjp|)u@ncX{=WM<6F zYWG1>#e#(^qIayIqQzPfq*&S4O4Vu=?LMdvBKV+!NI|LkDuUbVGM^(m9+E+-Z1Z>b zX8qzwr+SWj73@cG-$x=kwH#LguJi%)X~M^KCHQs#e4Cr568!i!0v;qPX1%T%4*y)r z^X0KbiXIc;(<2B*rUiyD(SZlr-3KZgVprj954?>>5d%~je5Zwk0x-T!hRHIJ7Mmo( z61Jw5Yql9q?6JwZ=8(zbGYzwjTtDuE)sjO6)O16$k8f7n62q)&cByPsOImfdYtJ%u z!?Arc0ocuO1>{H@?v+a%D0n3t#(bb#$+H__8A~&&x-nZi(a>f>anV;1N3RbhYEWIp zM!D8=e~2l5?75AhM4pF4j!fiOR9I%RHSe;7HNOSnay4=%w77Bj-+0uWBb(?sFKuTb z6Ju!>2WP5g#bw+0)6%x4%Thv6FYAU&FM=vdfWVozG?zt%L6!!AcEYOZ72R=9i~YyT z4Fg_N*8F7Mtj^Vdbf;JnR-#0~XwZ4R3!HLeR&!jI^y3kpy(aYswQ&cKsJRFR+SJ6u$hxLqs%Vi5i=ia%X>;e_v8e|q?(MMI?4sc+R%^C%Tx3U{Lqi_@d+A8`VP0a5l~|-r0seWRB%u*d9xZSh3g>3K0-#O$mkSM zr313H?L2gY-UGaqasb{c@TK#_fZb7ot7U#qW_asu;W#LBD>HgCAjiOi{|@AeCC=L+ zNSk7+3QU(mib#Xh?!s}fjbp2a_JD6^8@@Dn;3;;1b{A^!`!Z{854Rovh}+)(1-De- zbqKBittbM6?IdVWh~ZBH!yXf~qd_Ub?8H#A!SKY>XmY^sP-qf66bi-sd=5KWlRgVF z7@040P#s%f&>hxgv#QlFE1GR z-%G;_yZZl<BS1H?Y63d({!?Z|mU% A^#A|> delta 702 zcmah{&ubGw6wYLSWOq|-thP;>?Xt0lCL?KxsN_~bu+)@@T2QD(wq|s)CfS%>X%&Q2 z2q^49`&KXh0|luldl#eNLHrX$ORt_hikHqd*`OeJnfKoJ-uJ#YZ)WG*%M(IJc>Z+! znee!fIB&HZ3vHuC=N#*XwPt!Ww(3#Y<(J8ZL$@Va>6e^N7{L}&+6 z!z*cJ1ohb0L>1#(wK{1T4#il{V%StP0q6959v(;~^aAFk$!H%I4`3bQ@zc!btOFrf7gu3z;$#b7Sn!IQLt`Gnax;suKHV7{gZTw&IFa;uy8M zXTY!2Da5ncHGgU9H;O(&{-V0a&0c3j^BOyBS8f^&63}h7R5M6Cv1x|wm*xG-`U=_y DLjLF; 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 e959e8782b63b57e1a681a1595f4aa87e13aa228..4b8fb48037adc5da01768c5699aee74fb2a1532f 100644 GIT binary patch delta 2802 zcmbtWO>7%Q6!to?yDJ8A0{HRUIbRB>qzRRcl@fs)8s+mp-=_O9h! zw{Zm+4v|_k7dqP;LI|l+C3>mS16-)6P^mR7kX=db%S+CC5wHnUb=2D?%>V|DOIJWHIIPHHOt=kTB zXirq==51M$!khP``;v5>{T0oGpPOOhu@@6-9OsyLvVZ!rL*gy(KIge_bFM!hmL}QT z(e!|8c9%+0VT%YGyB$5XBd+RBb)WNI?(NjmXT$7f?3Q$mt;!So=o=N?vKPf;wPI@a z^0K0;D*IfXX}JK3`|dPifc&*l)L2FtkNm>%Sz1vC zzw27@p68bDg8Pm)VEdKqu$xsB%-8W4?(6t;!G?X6-C-}eo4 z^ifIV^I~!i|J07%_lQ_mJ|ViNhK#aqtQFSlXtlG`a}ko2LLpB-u?h&Lu2nkzE_ad+ z1=z?S4LULuZbiTYP#W&QxHjGV6dAt$Qqr(rxFm@L$mC z2E4{=&DpA1Zd8ziH>eDwQbn^Y0B!dccL7_guOZu^1A+aeM4nSTPgg-Bknce+U(n%E zU+>(W5qA90uSok)#!6+2*pZonc&&7 zE6SNkasX!07zjXIF=UbtWw^~toiY1U!3-r{=ns26X7kI$-%|Lk@a7j!J?zV#fGOlS fU!2Ab4X!A-t1S4NM!4g$g)@*3_&2{ET9p0;ZVscQ delta 587 zcmaE7Ge?cJfpw~&@I=-QM&Zc`Oriqpu~RZQdssqJD@vwJp3(yn6j^wZk&$KdDaJF5 zj2kC^U{hqYn7oVGf!W`4rS}XXg`RW&894ROpI!iC$h;2!lb5T zfb0_M0gJLjMJI1zvnFJT8q5S3?FX?$uOvUdAU`v&q42-9@A``QaeQ>gEfN~IaBksPVH1sRFOnZ-y3_6TcXn4mRzDyJ&r>B$G#w4_dENM{_)kjY@qkoC)u z^8-3ftj9s&QNv`g9g1)}TBkru057(#fZl&!kO4df_U$ObRg9cb?3FAthn7KQA9-3d^%3>tiYV z98_ZI-lwMFL~PgKd-Y;7j<*ls8?yRQlYxBq?*)NrWRAFi_c+!d50zJ{}6fHS#^#&lUV!?SugWF-mR2P%K>LPA92>iTi(q{)MaG~IogfN) zH~3O;8|mp`iWY~<(Mi}J$&<(7?`RG#MPxj~S0WQ+2;PWoiEZIwElgSz!yjwnwb5je z&u)6ofD5+Wr4F!O6E~*ZQ!ClIM{I|GHN3oC-c1tfKk$q>Eq%3D5U<|>883@3vzF(S zBAn6zj}p8;OywKx5cVrxdMaJVp8U+;fR0Q_yh{=kMh^CW*ipIpJ!)$4I_?HND9cYR z-dhWXu8O;o&4xRFF2P^?Ku@sWecK)tiT6vIWPi1y`U}RmuKHr3g+^O|^$wU%`sZvL z!nM)SSkzv`KfhG#+678RwW{hC{75n}Z|Z4hI6p=ElnWPa3nvP7X~(Ot@u(0Vw5XqU z+!vc&LyHT=6NayPa)nXiD}1o?RsCDEF1lmBz{U%R@oWc1TS=#Bt!|W5lTVq&6{mwX$(iBCsf5IG8quv7s^A_LDPp2M#jeoQvj68{jA+W2Ja^}gI)%+_vm hICe-cR#jfZ#L1&^$C}B~IQE4f3+-n4jZ?`t$vvl2Z}k8G delta 2301 zcmb_eOKcle6z$laamF4eX`Ci)9XsQaD$bNRAn~a}NJ(2#pp~iAPzjOW*q-#wV0(;b ztSXD*umFKH3&a~X2!T+xd|J#`qC!Oiu>f_!h6NN#1%eVq0+wvJZ~kd3Vj(s&e(&D7 zpL5Q;&lm66xQ||=U%r~YKz~M25&R|fX~?*Q*TY%rApRnJaIhxnXVu1&6M93eX)9`@ zD(bRY(=Zzu6&zds23y|QU-I@%{Cwz5>I9ze-HRU$A4@!fQfL+pp)g8!nvCBr89p32 zNr_g9w<7!d=g~qF9Y9NdCbWouiF`t}ESHP)F8UnUR$pS$oa1{I)*7tcZ=c%o?VZdk z)H?o(Ih;6((r6K7j#FTt!KvuXbpM=-4ljCznkc$pq5;}9w8Qqw+eSgQmc~QSj{^f-Qf`K2izJXAG6zJjd-zHsYp7$$_})0 zh&9-Xtm#X#E>%rzj@ix9#)JP$Gj`7R+^A@SKuwY|0EJq^mt%=sJdnwyBI=09^wIx| zpuhhQ;9;{_1hztaE@0iXMOr|aLbHfJjt`BFc18f+h^L2HYR3*o1W|_=Kem#<6WnZ9 zocN@aD6S`l@vB^c+Kqqbra)=A#E6*wSCUN-xI&ZfeLdPu^o{X9t>G>F`-xGYDLmZ6 zd(sO72-oq+Zoc&^{Q4Q-_{~MwcZTq+5g+0U{0o68jirDG!W88H2G0ifK>+ zX$M_%CM1#R4@9PTZ_gM_W@Z>a)blX)hD+?}uOZ%R1U7r55`wR|}_-#Hs2x5u;_cI z4(MlJIE6mPmv@dFJ@0y3Glk5oMzh$EOTmnELDePAom$Syn_0?_ZV|03RuL!=^EeCL z`rTy%cK|PId{r&WE3#DP<=S|?B9^4Qo23I!zk*G>YkW61NRHA@_x6ebH&!tgzi-28 z#%XsEU+SC8(jm}pR4pp{YF#oFhAg|vl2&rpcqn;S;*j-C3UP!$Jf9R|22+-FQLdOG zelB@0{7+fqGVSk@e^b;{``caD!V?1!N$G=!X0SC8t}uwN!3C=j!wVY9!d+|GA?OsE KZC~GWiuwml`xG$% 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 0000000000000000000000000000000000000000..a3cc4eb7c0cc7dbf73adc7f71fa6c0cbff487324 GIT binary patch literal 7125 zcmdT}&2J<}7592QGoGec)By;rYZf4lbmch_drpInXt?s$`~Y1^J}vnY}Cwr|B_=85F(Wa~T0HM$dMWPc}=zo zUK*3vDpM)+Ao;HLyO!Ln*n3khK+f#|;3V#Hi8fOxQ)5=~M{_cEccQ?gfSbpXh=q?? zLiYI*cDbLT>*qZ`5I|T2xCq~OEz{zx_xb^R;PpP$edXouD|dR6Pv7aePQMqZX`1at zj$qqhzHbg$hQgk03NsR6Y>^?O>aZIe><~hM5pUS>2OaI*Zgov{*nO?c@TkXc?p{#N zZ7QQrTYNe9QHBso1=r+}`NH;(PP6?y*o^g@O4)M3k0tRY{4| z0^bQ1x(>pv1dw(vu7Z>XNe0h+)j3uuR1lzzX^R}Y#WguSUD)GWC)-0_@Dj5OI8yu@ zP<(=%SV3)>D6`OG5QgU=433(T72IDnDGedzLfb^P$U%O8gtH^5#zKAU+cBl1%g5vt zWM>saiEQREijWz^uB*L$J)b@TLD@2dZy9iph!Xxzg~Jh?eHS|@a?N(_M7En-Do*e5 zbqycb;B({&1$LcbEZ-C5^R;|HHVG|A_5m-W<>rIzXpB07vknDbCy&-{mXyvSE5Pxy zlfhATIpN|bILH3aGtDfV@Z;18P1zba%(acF7%tT)>V3)l#jAAbbZoX>&k_TGq!U$n zsxbTS&u{kMLgse?qF*2f%>X>P+sEY#T**N))3Ci6v{c|UvEW=5|h0{aREv*?ncVT8G zjgjf?a^*&AM5IdS<4dVIC5fEH9Rc;x!L~jFD(40iA6+LlYon|9ciMR+>(C4JO(H+@ z5lV0z5Q@#%bi8ErBKDLGOo)R3XIFMgEntRC0@tw|ksK<5CuZp3v56WhJ?U^3K`Cw9 z>cK`k2s0cqfs5Cavq<5~q_EBzaQ0~V48>{55-kBP(q#>ek0N+WzDsWrKh?KF)Wvr{ zY*c39@!=U1SotC;a3WTYIn7i`CG*@rhk5R$=85~K$Jl#?+4NDaAEj`N|8F-lL(qoR-E7&)2=2L%EnfQmf_w2gb7Jrx%GRoubt8S(OT@1C<)M zkW5}5ptq*(7TbCGx2-#E>MlmPvP5*`!enOsBHD;teo^OLep`2*PKI^feB-xi?FHGk z;*i>OM&6WL%w}|RPR>V62oxRYNUi_?y2Us^>4mG4oyhuEOgBcuD!+s;@5yG`JoCc@ z1Kg2VB+PMu!Ghif#j3ZDVJjWRp^MQH-2$nZM{luRO`B7$4t!sDzF?)7yBFjV^*3QP zV?yRkFw>^SNMNM7Ap*-aJ;Pi^*&;HYID#9hNP)=MF<{swEq3XCnt5467y_U@r7bml!UqnLK=o zsUTvp?Hg#^f$9=!JU?Pad8I;$C5*=o`fm!N%ZBYlX5S@6QYjl*K=9jg5z0ge0o_sp zYEm*|;J8o@v3iZ3unF3O>Mn-XBDmRb`2srjaJU`hsH&UXtyA z1qPL*h(#n_NRC=R0Nx=x1&4f|3lT&+y&k3`v;nEL*!9C|(Q~F#CuiTkvFeUalkF z#zr2VxdMi6nI6hZ(Saw-iNT#Acku&$=UlqA$;D`levk3>7;zoJP?yzM4-MD1%+$2& z7RR05g5!0(!OF^nSiK(yNWb*mLw(Fh^S~j{<6Dk500y$euu7>Siu+S^&X~aK`lgOX z`W&&J05ju0vk}4v5P>t4_=obU1*(06;lOYWG^Wv+rH>MC$(8gY3&83QbXq%<7n%2% zK5NK%olX$HfFjNh2f-l>eQ{90S%FZ1mOxg;6&}Stef^NDm044Sab}?{P4_%J0W=sq8()ZV6W+1$9DUfVane-^~G`NUuyy=G4s!$7Z&xTC`f>k9->nO7K^wd8Kb=WD6<8@?%O6 ziCnOJ*M+5FQye3Wd+Ge!u*1{j4TJ-Fdk8F;HKNWtMeu5#Nh;F|`Ly!kg5z0kY!haN Qw5nxOvP<)VuKK(G1Ipo!*#H0l literal 0 HcmV?d00001 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 6d00e1accb0f13f5c5fa38d58b3dd7a45065ba08..1b16f1dab8e7dac9b905f61c3199a3938fe5976d 100644 GIT binary patch delta 2024 zcmb7FU2NM_6t3GiaemyaThlf;P3@_IHtVv%`Yof{$BPi_KcAGh`q`%z3>%tg_(or`#xk2!_V6UkRk{9Lqs66BuDzl zsP!qB5vlj_X*e6%%U5MnHcY)$FP`ng7$GiuZVh8#CWRxtB z{9y*|GcdsIubr6fqnkwhW~znp&_en&?!~nk&VGTYB6|SCyq&qehQ7zFad*8|=vw zHYDT8Hi=t<_gIhDOr`F+P(E1e=%#RP3S+4QasqKgOhpf!JGJ4t@N#+(`jW%&dH-}T z`ODL6=uc$%cB@Q=NHmc2HmnU4cHG3?xr{<^=yC&H;#R^TyS7wQ^zMrL=TAp7U?;Qj zVNVWv+z3X*mXRJ^UhZ;Nhrv#dGXmV{ABCN%NiNIu^bkSKz_FCZJPI>gcEP_X9ve8x zkB|3V86eQ|2`Z_A>%2wQz68@ZcVSC)x zb-Hh(F0*}>)n|}_ojeYW$Fe$0D@oBx_IE0QRbJ$O4P3}|I`;4r7h$iVEI)cHAX_I{ zDi#Z8w;p0%rK#IrBCBS=RS(kfgJ17-=vumeUT{v_u}E}%?uh*2CFzj(o42-hhmtCZ z5T_5%I6-dtDfmzd?>f3?Hz0A0ROzC_lcc(ATaN+hggF{-=(BF zFToti&$Y^@(|KP<9wD5kI;I019ZVr9DbQ2Y%ac+)>8-f$JF?M$fvX+u6R7qV^h~YQ?m&YOXXDTm6GBxvFAR zyfwTtGM#$bi4jPOjLyN=BU8X;pTs9wPUY7ZvVSwo_VpKpYkj-^!D#g^{uoxgA=ed} b!@yZqso|7CBn0Z%G0{_GcKxNXXPN&16Nte| delta 2784 zcmcImTWs4@7@m_jiQ7b3m(W4m6c;)*$y%2OK&2Y3!lh_*>ZGk84cew|a@u2)*q!ZY zs>JB_zyp$B#xXAlanYnct{dSdgpjI�&7i8$wKCLKKfc6HFSHEt;>73j z-@fnv{I89CS!6G^BS(A>T2ZA#;1C%EgS<~pia#}vx z%7L?wp>SPfz2k7Q0U?aJAzUZ7g!bQ3;<-j_h=ZA*)=|Grm1)gkh>7gA4mXKOQhPEP1w=luBK(@H_s?g@7 z$eHa6^=cIvrK+SG7P0b97A%g^667#va&)I88K@T6HlO`Z3CwsDaiaLB>Gh81H46Ew z%2Lo}d%&d!P|P)C`Q`u9EB~=A0OM|b0dNfQxxk6L4xguR?^Jz(v?qE71`dV*8B1gz z5TSPJ8zOc_fiZ$%(*W`DHSb=x1iZ zYcDGwg&ne%=<|>}2gv2paz8AaoQ4)FYE6_BOI`vjhjVfP*6~&OIQ+h1si!Lzh;>y~aJWpLW`pTM6(P4cF26T^jlG-HGwZ z9>n;H5@U4_VjR5dX;DK^$`5I5@YS_jV8HJE{R?H4nkv{dfU}Owfsm&R$*7_duo-Dc zDWjmaa`SGL=l51t`6s(WZ+0Ah{6`v|AEg62h$%=d6J(y3h7$#49@~I>>%h2y2&D@w zJrwT7U(>D0P2kscr@QHAliK6Vs8(Olq;fD=c1ksn?gi?;`KiZ4V3&S^A=1?-ytJB~ zY4(r-cW8h$ zIz{}CF8r)Jy{th&JG{Z8%}bruH+c=-if(=9$Xa@|ZwM}#F?B&UR+f<^3-mQ!L3-JH zCrswi0e&{;O{0#_yzGeUb 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 0000000000000000000000000000000000000000..03e3745af13cc26b2ad6ce0c7407cf7c19124546 GIT binary patch literal 7304 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4e9cd209c2a4b9f9a96cd5d1d55edeb97fd535e2 GIT binary patch literal 10044 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 G)A}DI)kJv! literal 0 HcmV?d00001 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 a3eff4b0adf777a5a25b7a7464590ec67338b592..04a774b846c7ea2ada2ea13ebf1ac93f53a46540 100644 GIT binary patch delta 2708 zcma)8OKclO81`)Zh#zaGjpH6jfU;p-Fnq-A%`xd&CJ6CA&!vX(7G( zGW}SH30rs251hBr9EV(S4TfJN(-ks84mOZvhTd^qKraJiv+E_8U!dhs&l*xg9)%gD zk|D?FZ|*Q!WS_Llvld-oF4vLMX)*|D55fPY8H2fIE+})+w!#IbX-~J6K)ES_k31LA zWqPpnfcOOIB{QUN62ba7z1nJ^FL~}KLT#=unzv=R1ORgXR!$8oP4=Fey+LJv z3I*vcakM9Z91aqdTj2|+ju7{&h8Yg#=vTqSX4%aUz2pW^(+WtzM0$1Kd_JwJJg6;6 z`f#9!js+5Eh`E1$&~(p?m=6d6hK+sN42heo@Opi>;nj9$N;RT~={tdbl!6$EAc5-C z(|ho|xIQ@6h+4^Dx+XL*Qb&+`m5hu4P!AMeQ6aidl%!$VW5={w7?WLDq?g1|G;OEw z0N__rcz{tjY^Tr<6z=Cpd80i*3uuGx4R#`x`P@?DjUi3m@=kiDEd;FzEN!<*vmJ8! z403|vuELa8_so|H1!xlbJBnM!gM5>1A}ZgoF=G1QjQCAPnCENf#Q`_D3!_h96d-@V zh%rzj%6qG(KoMx#NXu(tf>)qFh$9Kkm0PHHP%~E}leoHDQA+$&km$+w=$89qY^ZL? zjDnVt$s66bHYp6S_=#;chPol=KFDNshU$Gsm)iTBtQF~EdtBJgw-Kth*g9~sMW9F= zu$s(t$q5UXgt0(ThKYGNWu1I%lE$d0ktSNCb%5k6-#wIdqST zaXPP-Y)6IOn<`+9q~_S!*SN;!YO1>r#dWRfV8@&P}qtUI4jP0JS!@6@p!G{c8C|3>LQ?8D(?HYK+eJ3Ah zL8I~lu2avNbIk@XlkTb+v2$=tcJP<>5ZH1 z15c}GA{{QSAbKPsNq>W1-BZfQy#De(>}P8htMj$r^xeo<;8AWIB>~bqMQ=yOXrl9R zc<{lCYWZyEJtXXCSw7SCW6S1Xi^C!N;X~EE>~X_{EeMJVi!ENGx=1Fr}@xDr7DnAK_rDXii9XX(IlGKlRQuTi^mqR zQ1e+JwdgH?I|xL@q6^kEWWl0h5rI&plnqiOP(^7|u>%B)!lJ6geKQ`%K@mb?;qjYy zf9IZe?wha9{x&AAiyz!iy(eCVb)OuezFCt7nCHB<)7{Sca|El?NpWHloLe*`<>zVJSohPz@M-gTb|pQRF=q6zAz$(AS+u6kZ4s^!%# z9__k7XKVC0o!@t+bMUnRPtd)OlaJu3 zcIn7FDm{wukKr#pYx2xIgUK_54`hH7u|(9_Sw2ub;QN%^fX{rdg`cBII!9CI2-+v0 z%Wslzu}V5ZchE52Fx&()@C6x%>7e||vLY+WMXjzV@_H~ zlXNfs;i<%!AP<;tn>HqU+t$DgO>w;hm|rWDk&2w*q~qA7e_;z&+lGX0tK2C)`Hyn( zw7jm6y4&w(56bi5!ij$&}} zXUunn_hQcom&KnBuhe@`X3R5FDr#0&2ix^3+|caTcH7t0HLKw+r{PbU)X{Oc?(g&N zAcl{5Pdz^Rz`_F~v3|Eie}wtY)56yl(ov3d`@bSRc228LRw|_mA71E=CZ4v(!^PUl zS}~g|F3qo0w8a)xH=1>^NFHakqUPtDa|9Q=hK0LU6G8nBhal;p_HxVk=Gl{ zk8hd0Y8V(eRjL%uRMax%$Ep8dm)*rbYjQM4OYyKh7Fgs}Xrt!wcJA;ai26n3uHHtq;> zvHtKkxSD9Bn}f|nRMa0JI@n3bGG8!XX+gJ0(kHP1^Yf2V;~hfDli|}=uteLqDq%W# zGRVAHt*YkorV1O$XYu=n--xZd$wx$ZOW69Ud(S=cGG@|W#D~EG{8Hxm47_Z0Zn$F5 T9=vxgJ7#@`PHp|(_Y(OVH*#eB 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 1bcfe23456e2f4e86cd26fd1373f71b8635eb1e2..6c3f8ace983a133e65c4e43d6c91ba1a53fb633d 100644 GIT binary patch delta 2566 zcmaJ@UuauZ7|%&_^S?>crrFvg?afAQnr_v)KSC4PTPkv+qFq^wsWt^z46`~ z*MM^loH)2XxN~I;UpCMO^<^XAWDlaqP@FI)__8q�MXQ3F;oUIlpsnZgSI=1=^fH z-}n2z@Av&Vc{l%H5BE0rp|<4%?!A5d3$jw(s}yTwsxGNmTU?gpGG1IRYMLUH>KZnP zZ^hSC;h_nCt5K@zT(E>uad<&nIwlgl4ObA;m)A9Op#B$ zgWQ{Nw??n`rDCKd{RW&UVEHJ$?Tw>j>^~jy^`kSOliYNwNX8(Parm29G8j5TpbVk6 z3xQsXr3USjT9*f3`aVII=^_6@@AD*0mdMB~g8Ksf)_)rP2v&0358W{toErqbqwfbU zp&N82$Ul8BmwOF2aydTF3z8P(;WJM#&uHg`GL|&quz;1RU@(`HidAe1s+z(C>48Xc zbC7-PtVGNBupkMVAWQV8;P70$vtOxC&XDIAI(!vV_yOc3a=jvI(ALIoGgK zrL&VE*D9Pe)s~a6U2Mcu)yJrR>IqMie4s>CO3c`KS;VQ$$%bQ ztrS(&4A1FO570nwhc=;cX5gSWW*J~=3Cqv(7Hg-4kybA@Z@{&1hW1plIYpkh=)-`&%|=*Ru?^SfVknLhv7X$4>NQH zq_%ho@FRX>E&qY#1)Ay~i&}LW1L|(EiOGmOev^$9Yksz8txv_cSW#t1d+6zW6>B8F z!e&cnqOX`UXKKnSmPax-v?0Lpm0(MIU6Cg?6ko9nx%6-iOJzYivb?6?!wx^i5jRw% z_00GxFtLco9xMmpci~9%d3W7pyyEGfT0J>gKANb4Dm@2)qQZFHEP(7%g5cadZw%31&Q>Sj$cCu+zVlVmO5(!xlFf=V{p+ce(KOu=6`?YTu|6#91 zd}v7zpai`GWF7*6Dz!oMI8+sIL6sSL z0rp0L9me`6@X9U<2`wRngox~cfGN4c-ld%=m} z%<}E-$f08FZ~Q=qrNOKshtLCj@EGBkeJb}GB5p_uo%xgoqh*}8MxnfnL~GSE*nhYfn@go;%bAQ zF4Zapvnsf|-WEKB2D(}=n?=(W8{CgayIrS(d+2IWIPrF&afaH$`UFv&_-36J@fRtI zb*|Rixk|0nDpSEO!*|1pS^TN3OP#bA@Zrp_;*42eAEc+hh4A!{K`uz;Rh+w|^&a}A zfXZJ|EGR?{`q&Lr^(Pcwk6g#MtDVo;94set$xJmP>QSy;9i*0tFn_m!w!Fw3F1>P9^UU^7yuvzUi4sBak(MwzvdJ3BZPu7(cayA1o5nU0BMKFAL*k`AByJ|VCz+Y<&Te;R zN%x^7J`@@_qUDSaeNhTN2tL_VP*9`~MW6f+N)Z(VLC^}4idiV5N5JLmV^ ze&;vexw-go*?Z{yaAW+I_hw@9QmImWwIY?}OtqYs46>QclU=D=FgCL!zehH2eKvF& zj1a+*q#2=occV1hSd-*BP)J5J7?nqG?*($x~}Xhq+&8NW&3*R0Jh1v=oI%h zrdfImU2V5|Ajk&Ztv(#yawk?S|J#gq9{M;Ru=7b>a}(Bu?FPc$^|@m1(_eev834MdLE}MUx;* zd)G-225t}(cN2tIB&cyLOrcSXZF64sLu`Zl8KTY|{0N&ZQb9!O1ne}~>|HNu1m!Mf zGC}*tx<_@|fwFsWUqi%lbUOk24lgPIgr$80y!sfqns>`I4(0y?aHyyaUjgdNm5N28 z8LXF2vxk0PP>t}GNJBjPBl=83K^UUJK+H`LX7~%q^dmE1{0T-{Kt>uK?Aur*+yzGw zL=4Ft&4b(heFw6K`gB61f?jgSpH43ni6Jj++cT;$eX?39PqH{Bl%1+U^zAyU|Bud8 zo0ta$<8;tW#-0~$s?W4>Z{ux$q8=J96D_Z3d)aFhvg>F~T}6uV;|Bfz?(dKE;=-uq=J=@^5vRIedXFT5@`~795PP8Uuw&&%9HBr_C>#j7d;Z9 zols=Hlr!lvyT>gbm^5H*6eUG7)os91A8Z)4GBK%OMWi9vAlJ$TC8rqXk#)W=RW$fF zP_8W$OZjSnnDTGb50*6{A!zgQu@e|lWsevp9XZiw^29w`6|ZB(&CxXof?BpzI^)(n z9$W%wTg|IcIAQ(#giGz$U1~??hD7_^YRA~GSl~ci?n{<+u!yw{%73H0<>7UCWF69D zuI3OJOeDl|rIaJOPV(YTP1LHzat$aK6A4=~ar#7zJ?o)>I}ldik>pW)q7rbUV_WR~ zNEdcAQ2%}#g*2Y4XRUs|>t7MS1ZV0i?WopOs$Ze$&l5dYx7peFA^SSM3QzZ8WaxPO usmC1m`|;S*KXsh>9ogJQUGNTnG_o z6VA92#H~9+c0vCF!G(LNH7;C=8^s5B?@W?TEm&r8=A8Sx=keY1;Zpm&xn+L38S9wa zP_>JlzK5Ca_aH*1p3@jNqSr8EnnrWrbv*BVGyO8_0|>z@#~1%+Q4qykqfxtAEEO7} zC?rH!b04&bNgzvdJ3BZPu7(cayA1o5nU0BMKFAL*k`AByJ|VCz+Y<&Te;R zN%x^7J`@@_qUDSaeNhTN2tL_VP*9`~MW6f+N)Z(VLC^}4idiV5N5JLmV^ ze&;vexw-go*?Z{yaAW+I_hw@9QmImWwIY?}OtqYs46>QclU=D=FgCMVDNij1a+*q#2=occV1hSd-*BP)J5J7?nqG?*($x~}Xhq+&8NW&3*R0Jh1v=oI%h zrdfImU2V5|Ajk&Ztv(#yawk?S|J#gq9{M;Ru=7b>a}(Bu?FPc$^|@m1(_eev834MdLE}MUx;* zd)G-225t}(cN2tIB&cyLOrcSXZF64sLu`Zl8KTY|{0N&ZQb9!O1ne}~>|HNu1m!Mf zGC}*tx<_@|fwFsWUqi%lbUOk24lgPIgr$80y!sfqns>`I4(0y?aHyyaUjgdNm5N28 z8LXF2vxk0PP>t}GNJBjPBl=83K^UUJK+H`LX7~%q^dmE1{0T-{Kt>uK?Aur*+yzGw zL=4Ft&4b(heFw6K`gB61f?jgSpH43ni6Jj++cT;$eX=CKN3u93l%1+U^zAyU|Bud8 zo0ta$<8;tW#-0~$s?W4>Z{ux$q8=J96D_Z3d)aFhvg>F~T}6uV;|Bfz?(dKE;=-uq=J=@^5vRIedXFT5@`~795PP8Uuw&&%9HBr_C>#j7d;Z9 zols=Hlr!lvyT>gbm^5H*6eUG7)os91A8Z)4GBK%OMWi9vAlJ$TC8rqXk#)W=RW$fF zP_8W$OZjSnnDTGb50*6{A!zgQu@e|lWsevp9XZiw^29w`6|ZB(&CxXof?BpzI^)(n z9$W%wTg|IcIAQ(#giGz$U1~??hD7_^YRA~GSl~ci?n{<+u!yw{%73H0<>7UCWF69D zuI3OJOeDl|rIaJOPV(YTP1LHzat$aK6A4=~ar#7zJ?o)>I}ldik>pW)q7rbUV_WR~ zNEdcAQ2%}#g*2Y4XRUs|>t7MS1ZV0i?WopOs$Ze$&l5dYx7peFA^SSM3QzZ8WaxPO usmC1m`|;S*KXsh>9ogJQUGNTnG_o z6VA92#H~9+c0vCF!G(LNH7;C=8^s5B?@W?TEm&r8=A8Sx=keY1;Zpm&xn+L38S9wa zP_>JlzK5Ca_aH*1p3@jNqSr8EnnrWrbv*BVGyO8_0|>z@#~1%+Q4qykqfxtAEEO7} zC?rH!b04&bNgh15~sUJ4EOTQAGDt;@xQLRnxQ+~nY!S-3u|%v z^wRthOMSi5qn8cy)IoC(wGrF1=_Y&4PgcJ_*^dC& z6@E80kqxr>5F{KWVSd{^;7`S`O5gHZ@kOc5k0xFl#XN|zu4uYx5sRwCs4}%?6*x~E z9ou7Zck2qjkvJsX0$@`K`ZJxh1)f<)hKN5Qqfp(OVL!EB0q?Fy&2%HRlnw9QqKZXo zicYF3X`AXQu?$i(08p!4vk1sNOvG3NJ2c*Gs$@g6sOv^(GP1H#sjPKcMx%m(DwUO$ za@dWv{~^BHqHp5<8K<{l!qNQWxt!=mHk;2JN1OM7naJ_5VWB579p{0`LnP zqb#i6=3D)xEL4R4P7j}rVIlbE$)!@}e9)a{5J41$&BhM$JDC#$4@r>-9cNj*fh)e8 z%606SQVCftmB<`ov#*3213A3i@8V;9AT{A5qdz!#8MAP>0 ze{?E9R6|g-ix9aZhTcDH5q!pg>mDDe0KMN3X*&T8X6Wl;pk5^)x4RdUZdKV+$WQJ` zkDpn%VGU@aOCZXi2vg_SNuNC^L>kCE;VGx>jN7r=n$|liqQGfT8~3^E^Cb-0IgkE4 zKUfq948FS533>R;cK6=sUW5e!_f`l|$V>$oGlRI_-R{Dqs+jHFRIZ<`bkV`|%?-0@ z6m&I$3uYjJ|(@5P-le}8G}SW zgD3!15rT!ABv~^W4OO@JuTp8qpZ4r)&;+}$;MP+GbaY=8Fv6#yreB3mLV;feqzz3+ z#VYg(Rlvm#OMqH1=7Xc0eFMUvI`()zPns>GrkXg?tD8h`H=3KPMvdh2LEG)C<8>ZH zz5{N}szP(P1@ka6j_@zi2PS$+@J<}RYbF6CDf|Ecp9xNO*o9KNstQh)ouVx_HywVX zpX6h5Bw{Dwpuxk%VR3v-;dvdr^MhHPU(P-aUsrIt?(AmoN%EY$^V`5~v@i_XY!LoT bJB>#>+L-XQ!*Jn}N%H_4)_49GT9W<+MtDZM delta 1232 zcmZuxOHUI~6z;U0J}3dgqav?PLDNzNS*Rfx6E?*KhWJV}!3x9l!kM9u$;{Ni!hj1R zgu4*#MdL=pMoH8}ME@_OKloBuVn2doLWXsO?zR@EG@@7uQ?ijr@{Ft& zOiNNNwi-HfvEnQ*zBuNtUYH7yyxh;1_+$QvC$ZCW2jOsIeE>F~lO7H*>qqZ8vm)cH zxuM$&pWMJ2_<)}G&H$HcW3v#j*??!gm69TD&#H;H8jE;uah*(^cV zs0Yh_cB>pCELxT2wxdqkFp7pvUzIBlt<^~(s}^P^<_t1@gs*BL53S3o7BS@9glQSY z!i*h~cGYM+UfhL$lIvg;txoWGs?#)tYSDmpEzBnCV+%BlII_h&zCBL8`aGu*ydZOW zPE}Nkuh1Zx*1S$Q^^rM+JMorm%n*xf4Oq#EH+7<@)2hOkX;_~h$``Yx9O1A;Lue^E z*)%cnUc=4_IkweUH9OoYdzSIZ8k}9`#^)ZXU=%qP1_7*iK)0YD>oHtXdp{0S%lw 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 0000000000000000000000000000000000000000..a7a9c62abcf3b3f539d47846fbf818025252ddd0 GIT binary patch literal 5056 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 literal 0 HcmV?d00001 diff --git a/latest/.doctrees/environment.pickle b/latest/.doctrees/environment.pickle index 5862f352b884538403446a9da1fc3b2b690ba8e2..5c62a1fa912372f73c8c47aad0b96c581d68a042 100644 GIT binary patch literal 13428064 zcmc#c2bdJa(qxV!XHe7y6^?MbL<5S5LGqCRM&fRXYi4EMHf?x(6BWrx-fH~)! zbIv*IGiQBf{i{>W%pE*?ct5@G|9-rl?&|8U+|^-MwLP^}i~{HFly@^iyBq8Q;i8#zZKAGZ zca~F7<#v-r1&z5wW|@`CC1O?{r(joF4FxNmPh`^h(juG@QJ|p^j1&tQ99hZkqsSsZ z=8LIRB-dE-v}SX#@<=at>qNR>{wKI#&Mc(EoM zslyR_nn&48@N>x?;OazrNGj6BRJM`P(6TF%k#t>=54V+t z{kPBNGGIlKV3m{S>^XPR{J^B?^GkLIHppC}E{+ugcS~lXO9Jz(ycNksF3g+%R~&lGb}E1WOZ)+QRbsJ02_7<0PikVm;< zv{1}hu>umjWVa5cVkNr*Il3g4sZW=Rc9(*c$|fVo&Ttm_#04W7%47>DlZY%<$Yhey zNHlJR<~A1MnRIAOaMZ})sIj4j?Z$?ZiJDNBe`a4p`9#60&PJk382>`V2&NFD!-cqo zszTUG_KN=(EJ*T5Arh9zBodBleKkxwGig-yJaVa<)eubRU`QI4?#jYc6k80W7C5t90!0+ri&iNc$wgA(BpM?ePcNxGVWvIdNHT$A<91>jcLi4~ zra94EB3r<5qITr!EF2}XghggHEk-N_lR_yDCy>fHq%pHH?dCV49Hmh9qDeHFt)~_; zCA;lB>=*yrae5Bt7SCj}7S?qZNKhq(w06(2R^ns6F)k1Hr6K?^SUc6E~C@YMW2#04#6H~b0SO!v7fxfSimX9`w=bpgqizk%gd6Q z((;DuEOagigDmUEaI5bgO2_xGd%6s8IECISk*?$Bpq)_BQrxop#S4XOetd}gqM-O5 z%;f4qrP)W7j>i9E&V}h~DGv5P)mVHA#;j%1r-g*15>(NyAbXCErY+|ix<}OkLR!fT z@;JzA#>9fyWhjzOgt#0`&ZJUkS>lCMGPEGPZ9a&9mF!mA=5auIyOMnu<^u&LkKU{% zf(|>0Vj!y$g``!A53wtxL1%);T{dc2$!;TTe4BXAsznev8T?o(M(iF==N@sXWI(7X z%tN6Rv)fAE~$U7+REyh&g_w-C;^1A4NNl0vJEq9>j1W6KgZMVv1oz zhE><1YFjJ>5&T3feLPq&1W`S#i61NbZ8NuV?(VG1ZPYZfjoAe6LAos0$V1JCt|W`~ zh;A=mpD3WQ%yH^hKpsiRiL{UEJr}7Dis=^fR!++OKhrE!7e~LsoQgD-`5@~YEru+k zyd&aLd=fe|Zmq*Klr?snWTq~|htx5V!d{TA+~sZ&&KDwuL{v?Yv%EfzPAr&3)v+r@ z>lixAQv7UW4|AdMAw|1e8Uu$q1jYHqtSoxXnXQXMR|aGWMND~kqGiZ6>VF^-YY{Vz)lBPnWTiS`;S%$0{auY@yd==DN;d-5E{yK7(8!dF z!wz=A^6-n1Fp(|_`bOhuFfrQ9mEu?1TezB{m{}|mLJlMoDP$UN(aY6BurI%?j)C@c zRpikTM++IGc=uRhSul>`z(pdEWk%XfE7UNQtZ;2H9WCv*ys||L_7~%O03Bi^Yt6Ij zrZ!}&Fw8<@J2Y@eWdQ$|v(Vb71L9*4`Id}Ct*X$0!C}KEF5c#l6;(r*AGmPQ!i9@M zbt3{p7B1Xo@Q|T91wx^~HiH8xE0WF!FpLS*$1_PQz~$PC$<8WQR91$D4XX?c!$6Tm zrTKu2VPXNs&p<8mHV_HS&cv)Bwqgx;Z4oAe=XE5GZ5fMX5DTy)Y zP$f}SjE4bM36K#AjUp}zN4^kV z$Z4BQEVBYQQqHbKZJKukO;Qa@e7Oh<4d?`?ql1b_+h_W*k z1LrD6u)u^}I5bKFV_VhGp*!(@R=5R5beLdkNk)O4IJZNA$&qBT27_vp2rG@uWr7?K ztByb-kHbhrmsqi2VBbVC8K|)W=nV2GF-(Ry>OwqH2-G7TWXnpN8OA=vByW=r)a4>I zyfv2~bV@jHF0z4a!iplVk?FjOcO)RwLkbKP8u3^lkq%^vg>13lVk1|Z$v9BKN}SDP z7SyE+Blz&e=;v}n#9EBNiJ&T>!9kwZMv{4JM1a{E)`Ms@ix~^XaOCd@$rw@Nd}V~0 z%1n#5F|#QQyD}-0(V}2ag9eQVFdH%@6P>~=2>+x6U>PsMvKLR=KP?EyeHN(l93IW4H8E&aNznz z>~1_m44b!gPl3i3%~=>Q${8?SMO(!pP&9DN_VeMOB%-rGv&BcwyJwo97@;V^BwbJf z(WR|=G(6no4Ov_@Brtrv+{DjAhE@fK4IMI+cZ;?JIVz3gKlJA@tBj#dMP+ES-o>nu z@@N-?ATnYyu{dy%!#y$cX&GDwU=5csr?M_na512Hr9*I6oxsR=H9b=hvgpFeM54-R zqLhg77}X${&n6Rvsv!&0Lx#F3&1DRGVZ8=6P?8akF-bIAzC7R_xG2h@x;tf1 z-sy`zgDi(r#ZWoDv$mco1+&F`yvhacZOcX@Y?`1zJ}`K&8(GtFu>M_4620^395{NB zx9etN!(iF}n!z`pg0QQidB8&@Nm~nJ?|so3@#!P)?d*8Mqz`*p!_AKnhoHO^hRQiO&LEb*gG;V8Vn6 zfgwZu_Aa!Wtj_K%IN;sprK3j|BqRq-C0d_au6^j3(g7%;FV$386$ z91*AxpM>i%CcZR^eF<%6vKRmVVp8TmBv)!Bd%AY2oHFhzHz=~d)YJd#P+f^*qQyb~pR{o2nu!{g-9@Z9 zF+GTpGp?oO+*Vk}_Ujz36b7{;@Y2Vsf?^RAe589E-p#~;KBft_WGnj|V_HT#51 zsOn{rWYNm+f*|eXr&9cRyUhX&ADi{fK4QbR(^%k%$u}=%{*|HTX;ZA_IXW5``^ta| zMVvy(?%kxCf5!UOxU6D`y})MGWS1JA$F4q%mm!K&U_LU*2O=cok-4qG`%#dIP zusIU^h;#c?%akEMba0c^at-Y}5rq zA7;H$ku+vpaOzb}kcw*DK)~#eyCuR_vP4@<5_H?9a7ngyXKCG_(+q(+$TVpNarN^K zi)yf0+ej`K!OUT2o*@sWF}cIb?bToL?+|~MDp-*>sZJ)A;EYw*9DF>lLFrz?Tzops7V9)63<4kng7t>49Y-bF5<32H~>W&c%+q>g=FR@vN_N@(@1_O;( z#fQS?qHTQF_#_1v-z7d#{f*Wk6GN$sUrk>+@Gsm7&sHDf+r+n3f7=}~haAD(Bitb7 zX1%>A=SvZ4(oc{htTr3D4-iS}K8NHonZk2hcKAaF&u+I4|r1LR8B3?}mx(dG$Mk|3y7nV!yP%P9| z?@*0Ow5rrSwv>*UbHmxyY(DS~@#DuaaZIb2`G zG5L-TM|B^cK!4gja3eRIso^Zembrwxp}ke}TCoWy`ej0h3dypps&9J>7DJ=-W(sU$ z5EG}h80(^W#JB_Vex)_kuoK&H3JXa?`qK9<*~U7ykCw;Sq>)ce$`g7~m6{|bqlij6 zI3wupG;_ARRQK`G@i9t3?XGJ7HC%(o0&qKhHdS?AVp-X6eI&<%UH9<1=ZjfPjG_`# z5RXlfQNczIkA_}>iCp}!B!yUpBmiO7DlmyID5g4Uc|5FGQb(7A|Gv-zvw>_D!5bHuAI!tOr z3sf&WYQ#?OtR`M{RGJJ&vRg`;;rw_;p_1%1DbDk^aO*VN(^Zd2O~%% zNkfPi8CtMiCGThBpH5QqWVcA~Ea;Jw!oj)HV z6m}m$LVl==Ewk0ZF1t;zfIGGdzb!_}aH0^W#aROuVR|t$)l)qXjU^A=y*qWHUoONf zEg+1FGdw&&f~PTfwZMtJixYxQ8#!s7KoHKD>f-0eFQ6fcM1#oIxnjk(JXWNc#-Ai; znaB`clsQIu=*?~w3{ZQOzu>1YoVcmk3`M;wU{aJ5xeGPBD0+RiwalXd$s87$$Ap1k z+t`>Kp*ab$W=@Bld~oq&04E$_c zbREBw5V4SkAG8#z?3})d#?p9Pf^Cy8%LUU`A(YOhLbC0yV?tJbTnLu})u~jnI?4u# zjU8h0I0R2`x}BUNR2PL%nmOjLTP>`@qdNpYTi?N;5a9izM#NMGZ4!;;$4Q+`}YdvY1Mj)(B`hKGvoIO)^I2;(LDqQOIEC z4bPW_WzvAHH)o3$y+n(q=G@b*%U!p^BZ;D}rvT)2%tv6Tjgf$;>murK%bzdW(0hpQ zeZ+T{cTsVVsP8W7dBQ?!JyVzp%ug;6CyqPdyfe96rXEi-3Yd-(MucdyTeWB*zRU3m z&+V8nQ7NhIaqFT+4jnly4jQVVcVk9OoSUL$j)2(QsZjx#TTYra;^_pmjkqb0$YIum zIah_7aIp9ng-m?!?_kKW#3IIoaVx?@c?H_t-9)U|XSNj3uBt*JWuY%oym!^GQ*mr* zFtcqlAUybqkqo+cQPa=CBx{^?pWSNlKqcb?oObMJCK_`*frR0Z7{T;ibNBJ3gy^&b zYKV+9gk~Y1*^xbdhO4)8AUxnY7K|o?1>}*LElICBvu+$|mD0Ew`dWh`Ta ze`WB@zHHJnk1CP0gyR;+C(*!v>UKEYQNuA!m|;mBaXdj90oPD52IOmmOHc~!t>)l9 z84|$?xI$L8$t|;Gm|@)$4;)&Ub50{y@{W1vp-`>I8gx^2&6P{ltY4RD{0@EaG^k9; zNI~nZx=7>C9Eihaj&J>5IGLH?)QW@YK2nSfB_h0SqcUBQod_6oQQ>; z=)8kqSk(pz!u_`r?zv)eyhHV|NV| z^SMw>0uR(D*wqLJ#6>UaSHN^97**jw1sp^u!fcy`nG4L(GwH?cRwlh_P~A|%gzT;_ z>&8;oyqb$`cjl0qH10&65gn1V+kBPC+pT{w>(n!+td@kX#lupJgqS+5Z%DLA=_Xro z?d6Gkr-x3mjz?5%vkY?w%bX=rFL(8N)=BYj{2*ob;`_%BpuZQz7t`N+$M;cx+nci$ z1`>dIW3e~v*dtuTNb?xqJ-!G1ePDbc{XIQCgZ`cxpQip6w?|mFbaO?ekL|YHC^>$r zj~anY`D2z9Fa;>BL7sxFzSK_$zhYt5oE zh}u3)YNPDDgR8!`s#n`(!g9 zu(-cgcr-kT(mr2^jmObAdwB6oJWJTOLN+sv&9i8XZLnfY6=UWHg9Y~4z^_j zmsDqgiXaN!KS1{4LQOSL`+-iAW_|D_5c=K?_K|HA+k{S&u7pP3uTZdfFiYZ(G6!ol zV81Km*qS2_qwi0xuK|}&zWiaKwOW+mtq0k8ehG#q{308MPIO>LkN|I4s8%fTmP+JV z*e_9uz$bo{laGpDLy4pKwUoY!U+4UJz4PY{F1Q1pC@gVA#8{@61raEG^)A` ziRTRP$TJIuRnkf|VBe{gyFqXFSu0dNbysAIpr{xT2u5PK)5&wl!B{Sn_+|IN^#i|)%p=rn zGQ+m_g#Pd5>^pBut#}kH4LPbG*9@|LWY*%79oSw38^zm`EQ5w}kJ0{tk?Mm-R__=N zRxcV(7Cb(M`j7`(&?u$N6LY%+2R&~glNKiuMrg%Wx2@Sf z%8NLcYF$TJWKILmvIr&Gf-t)pF}+fk=y|hZv4&;GSSFGmC&Vy%W=nR%$n`}msjyqS z9VVyPh2z=r!M4149;8)r`?>OFxVp0+uZVYGXDRq4F0qt25wk?2*=0%P%VO%r8q3Ya z5)r(?k;(_B;iZcyq7Y=KUQ71ae+E(j{5*QNmK|8I$LND`B@$QhcKK&0_Xv@u=;y;} z3r{%Iundg7{Xci0M$5*@4hIzQoWCBV8#RZ<^>CzQYYrN3DQDxT{&@8pqxLW!$_iU} zdIC|8*B>;8a4*4aegpQuGu1s~MCXH}Dz|Lm?d*yFJW3=`)Kb_abE3uEGI?`(lvWQZ zK`0iIU`AVGu#7DN2JikPneQ*zJ8PkG2Fvegqt%ie8L0)XMv6OJC3}h%h=VbP3x1AH z-i5Dav@7}5Q6Yhov~ZJRGtRICx<`&QjDwrAJOOX-^v{UhK&Y#(g@=6HKv@jVWfda#YY$ohv|_jPTXadxUTKjHAIWaBo|3x^7L>k zhs3x_CQpkuia1<^SX^GiEpg`O<3 z#Eu8=aN)~#NZD-sXrUw7cyI;tLvn30;h%@0M&DEm*+FmL=7*c-Xd;I}gwKGMZSt|@ z!hiEcZ2iVE-uONfCUj&@o$Xe$Ju!afns3!;s@XsVec_+?srq{6r zkCx4IgT^DtTCOd)-G&chX}T2Q9?*U@U?{#(%E_37yw#hiBUp$MpIkug@UL7-nq5Yo zinQuZzW-XkE1L>$?s@(%& zm&uqgYYL$Z%UB*GjCY&a0!L4S9NMuID&7EQ{y`6^qkMRDUq9W1vveT+WNsWN3U=9@ z3byFi6H;fcEaeo>-Zo% zLFsmS!m0*>eekTPZYbjlq`moyjZrWa25BTG-8y063yheG()6H0B^;B&NQRu&h};y7 zIGbeTrqTvJV*h%Jy*#Oxs&Hgm;$t@x)LKw49G4stKp27e5^9Mx8DZCN66|KFp80Ub zO)1Kftr6FGjDRq@PJU94!47IUcz$w1m*8Xz906h7h^Y2|bD>`CMv?QW-njLU#x*i7 zHSl3Il>^z$pL)ARm%WFH8*ZpM8iGW!&)k7Zb@^CCF38Nsqz$_z>UYtbPvH^2cvyG@ z4a=ZLO3pwlnW&&#@uHrjlfbaGfRH#XSyKo-@w96N5XXELJw_Oh zuP5+bQJ=oze~C$(%t4Bp3YIhiV^1L9n44O$3#Z|*JRK+o_>CZV=s;FoW7x_{3EFWh z>rzk+iBlcWa+w_x(u);5pzAYmdhv$CI+knBy@$mc_x% z=Z|dDRZ|Dj<@bFWMD7P%*&bX#`c!nJ6&@$kT_}@Fa>d9RGUm1{V#p+7$RM9eE>0%b zvKN2Z#vDF+fu~qBV>D@3c}l~zLh$Jdgru{VzBP_YxaYo9o6f@ilVGs?iC;^gGPsdQ z4L%F52TlA<;OZW)0|+aq6)h9HSj4*}h+=QK^V3}&cnFOg9ZqKP&Yk~bHO)10 zqdd1aTe)G5Z+Le>K8B)2O*c_c9i=DIU{8uSA9OnjL*$$!uShzc3)OE=q5cOC#jCm`LzvRAEZYh$Fex9487$XjT_N&ZS{ngdfvdnE)AOR$bg?x z)d&jRZi`7T7bSJjL1QadaaO&Q=r>WoDWnkVX0{#jIFYj+VWr%2k@B%+;UIJ%HKaii zhfmVk!FQ&smzE)k;=~D$~bqzjXZp38SkX?D;s*M z>TrT(p+#WiGkoJiV6Q}K`2{uOCfgGlhY#F7kn>v}oz&Y?b|xw&N%#K6iF*yAtC4d~ zt1wU_Oi^(7v?lID<9lsv@Vcv*X2bS@7zyTpW0)g1&h%D&4y5A|RXRscw8#Vte<*ca z16C2tIpoTF(Arb+%sIn$!!>fM9v~?mZeyaM$Zp|On~fS^YO2T`+`$o7Cwnj}C|)6B zKe8O;zR9P4h#fQ`Xd3AOHhR}mLqD(J0Fo8Z+tpALPgyy<coQ&7Rwn5 zpXDsHRF6Pp>$qIF zUMkU5JaP3z(?#5wMxVb4(l90B4;^;0%(>EXH}E_P}J zW*)4Ju4+}K>w3LBRUtOUxEk@fBJp}+4Oe`=;Ui^CoMni+R4jg$Vzi^Z0u+p*jJ|s5 zL{D2CUWwGFFN-9OG0Owcdb;D_Bcm#oyBdfUojGKFiB&J2WAc#^!HlIi>fu+U@L6Sc zFi}o*!>o*{q_P?-6XT6oDS14e-e5_BrJoSesCDDSt#|lSH2Meo+;IfOP+C!#q7O*{ zrY_yC)vqyU{owf)_Zt|!J?nnQPxv*OJjboU12rXDrQtgW^75yKV^Gk{13Cs*BaNc~ zIVGL&-7$a~_FnbDjjnw3kX?+{NLDIP95)|t!_nM=@+PKA~6b>lLmss}y*vXST#G})`**_}Q% z3az}0BNrU4+D+OpZ(_=CIgpId>;i#?4R8UmpY%jB;~P)P_H9(mC~x`e#V}F@=)9Z{ zzB2OsZ+zt%@806qP#s1u#n(a{Uuw0|%;#!C3Wev4RS#h;cg=fmu()2(xz$=EH+}p7rzV{hKMHPYJ^y2A|U|^54?fPKl#x99JyiT%7R)%~i+kedmo-$w zO*8nOD}}s6%2WBc@?)6u#zXEk5{m9y5ffG&ZR zKPt}xDm_>t5Fe`Y?tTw2pzCn%hO2|~+R?KTM<-0-cB*7+Y;C(G1V`?PZ376?&&2_u5aKiK9;ui<)JeIEM{H2kUFT;x+Vh!_yWOoSW zxy0tz#`+L-MJM6KT&nCV2AOMZMWQ4UNU3 znh4i)@r+L=cb3rqu^_2!t_a(g!`n!CU;j}e4H@tdz#;wYe?E)jCVi9hIFbe=jc6`3 zgv#9^k&iBsbn)(sYuyF$Xykh1E{!uso=*PDX`wko^h zm?#Pn{_<_2Hp3oF^cx+Ba7vzu(r{BAIS}u&YZwO)l;c?RMBXd5>fD*eSQS4Ip;{el zu4+Ww)g;vPx$DhEh~velm5az4J;&pcK}-jDj^yYi7KvQa45|YIB6{@8Ea%5)G$0kh zoBY^-2CGm&q_QKk#6GxRay8?Yo^(0%c4uw$&T@K4%@Vh+92s6*(Hj7D!hM$#RE-6K zqBfhjBPZHYs=%d~sKuqGhA3!0Xy>H2#*`H#!^>%=rmW}09Deyn&7@4BCusJLfZr80 z3Mmbrt?F23`YTcIst$z)f2v(`&&`=V>50#^iL;F73ghcOmNzTi0v!^n9>GTfXY`AJ;n~QNYNo27k%`WkSP|yTy_&M(L&cTw^Y#QvCN-{DwMB zD5gJTA;vtNA~yH+hU{n{+v(%cpigVN{Sr!*$TGWdNw5Xr55c%L%OzNAZAL1u1*Z8_ODFcWVoGecXTeK1|6$UFV7X z@=E?HCjN|bq<}x4sKG0mIpeZSCF;%Bku%qpyoRfFlghJ7*zmbT{25Ry%P#KZgYz>< z{L%DGdMf|DYfT3wqd2ygp0rZc$3>thIzxC(WG-m8kT(lLgSFe1ElINg=CaiE4O_av3xoN7ie&NYn$rF4U zyJCu2G9=JYbGOn7(eS@2m+TSuWi>358s+*Po%6G?C0{4puz85N4r4hQz#e+hjB|t> zpfM6V^S&2J9?JM#B8o`V^^&&_+9+0PD7oT>%UJuA8?`C9k+GaBwWntoD28Zqtws+& zL9gd{vEM+7RMfMN<5$tSp>R<_Z^=UQkluv#g5j{9fp)ZkgSj#R{IraQdML5sQmPik zKGsX9RPtt}rcG7|J$K*qNKK>?D&_jQ6%GAh7E;&&TJ31qIFJA040e9lO>dik22EkF zOGNxeVm!SkGF3iF*6hTL-^n+5C|QHsiqoWB>Ik|PaFAv-`rU4}Ydyj86w4O`{KJC41abNN^c{ z`JAbs5~f!07Zvq%Mw%Ixp75R-X^mT?C41;UZ`;JqjUBtoS&wl8+(WV}RugT?O zBOA7=?CL@-8q}~%YN(wncG6RizFxe1WvV;fCZKX9u5mBXt>|Qp#e`jtEb7If%9pU; z{L`g1X^#>}SH{k7GMI_wdJgLA#T*U=k>^Z&I$7bkWcE*Uo{B__84O;_7%L!W`$4I_);(q{B*E}`lh37=!Q+4@^g zm>t3LB$72)>rp_yvm<_3PlMKq&SK=Q^`sA2E>Z65b$<7gn%(ozNc50%VkFn-TgR_Pxryc@7jsipqqOZasYA#pdtDmjpK8Wftg;; z&Ji6ByS^uVe1yJo^eUI^SNqryTv=W1HL#K$F0{N8t=(%k7~Rs=8#74_N9lRMM|1Hl zw2tSowKg@H@mW7bpyuh84xh@^j5C^EOrdtp6KibjDIg|IP0nERomUM%q`Kf!CNt*$ zF-~&cP2NlQuM;W}G4r2yC_JoID&@K{>U!tT?@l%bF`OixLya0%M$xm`PNxQ}+q}`L zliis1dy;^UT++iiVCciQY}8(-RZOx2y8`EUa=n6Q$I&Kcw8Ybr0KZ;2bRpS++6S(*$C7^ef{spqfT*-dvwERgtws| zHq^62#QzP%`5Rv9H{H18b)DmYfm!LApe zIek!E>Gxq!vS&C7JO~icPF}jD-1BI@M*a|CouM~>oJ7Old3uoR6^&5Z1BOwJkF1+B zU@o<41%OURFD7%~(cd{6Wwly)${()H>_wN*F!YjIQ)pc(QYAB%x*5%!N?hZ76Ep)?L98;@TW<2=Z@$8|a zOk=|M11L+hGELM$kW-Fv4qe2C&jFMDNT662SawR+ggBU-jU)9gght$=sGKj>#PH49 z7)uK4`65T6rB*N|<0LgjS|N5)o<2q^bVyuU&=4i0kuzEfb#xadWcMf{Wkm8ZT6e}z z({l;M0t|8BECP|eLcUSs1Iq&W~DWPR?J&dQ^kp=-hfS$NVBR(ZycDF!c zMGvuIEr}@ytRT6H$&g0_q1PC3tn4hGMug`kJV)xLGR{lxvie-}lKM z*SQVt^{9JQM^i>af$MYJJ;+Al4_FBWTDa=f?@kj{%c$>%Xb$5c~k>Q$1J`vUS z2C8TO&l@U8?n(GhRG(C=iSN3iRAqO|XXA-F}1RLHmSv6J@EmXNEDJ*xSY1Tw!T3gJSTf)-VKf6*_WYoqHTBZ25b|(&o zC%+k7X?4-Az+Z^Rm1C5148CaFqQ&${ub;c%+nSGWha{DvV|Rv++o-zq@d@bAPL(oG zzYi}^DLe0FSVJwBPVWa>P%pXRW1tn)<@@giai{cm7Ji^o;i)@eH1*lg`dPThDgAOf z+)AZ``yUP85QanGD9BLV^8L<)XQ{N}+=t*XDy=+XfB2j5tvdd9_>y}0^psW*qPoxW zf52H(_hn`&oK2;#ZrUA+)aTcqt%V&4?wdOfg!n zW2x?!y58_A)%`m1ZCF8dzm5G222!8DFHXTpRQJbaQ(+L5{`|#)&8U~ZUYrCysqXJf z_Jhu3cYhTDIPQf4H4WZ3az+%?Yl} zk8|M_Dz$xn7x+kF|E}E)UqUacYk$NnxQj{^OHP0ol{$<&7upkC=U{&rPjy|gufWqZ zvaUD01boMm(7)pKiEItT}sIJ#euS3Ks{Wb%7P|M!0FNXVQ zwteoL1Tm`XyJ8SLPj&qkRlox3rT>N3z*$t$f%Mr=B@F|t56IE~(m4f?!41)+mXx1v|M0H~>z6=sn8k_3|&k!ZX z9ex3XscySlPlq=N`wpGXhZCvK9Ugfa&Y`*;mnC60f*XI`-!PC$J3W$xxdgZKiGRUk zgm1#h-QZyAWtYYVxQ^f^79NF@2yWLCtKb(ZO_%|At-K7n65QlPyF!p!P8s&FzA2hP*pWFvOQfbD655a6|x%+ijzz&3OkHgM@an$F` zy-$O;sczP0pFlsVoAvdIp(oBz(SZ~?(BIOi@{Ms<5%cRh@zx_!?16}nR|`yTr~ zJW4J1t3!>Wy8U;*40=)NfPOPzC6&UFZy-yhgZ91|Mp7@4eZuf3)zvH>1s@Ui=*%l& zF|~|Ym%w7Gvv&LyKBl_bs>Sdf@u+UpQ}7|x#pfOdpAlRlG86ty_@LJkc#rDf!$YAf zm6qH$4q8($$>R@$EvS^5*Z^-4zVyhC;X&#%)9Pw?j(W-bRRPCPDf?g+9;cQ|zj_x6 zRLT$86Yir@VgJ=Ik4nWOcZNNvv~1C<@DP>iCmsy%QmJ9&>+mz-Ys`HN$5ZLx^VY#6 zYI(>lL*P-G!}6D|fx2?#K&of}^PJsN|P$B-I_g<#PC$#(DHBH^T`umSa{O1>>l+ zdik3$fqGdJzYRuF-3cex!j@EbVs-rIY(^1)oyOQ>v@rS;D?{yQiRz z>el|+7iJNLQ@2mU=2SW@u@!7ieV)E<6pSIbGfwUf`%~#myE8mXaA%dWP)T+Fx;z5w zsF$;^8VPx-J7?uwIF{hfJzxY(pwf9K9Sg71sLy|U5L`uY7u>uWCQ<3ai#LaB2=1c9 zl@O)U#oG;m!>M%1ur6?eQ~KjpxP?Zx?%o|>Fx6dpOdGhB>Mon`B+PV5pO1rcsC4Guk}Mzg(k^9*FDm+SVq2db#$ z^%wjK^Qm-0@me^JTHZMDJy=T^Zv1pPTtTIq$IXWlwY+88O|UhUZrySk9HmO%4}SVX zxP?kX9#{-5RWILH)gKDB!v6ixdq=}DR2ueW1l}RI;g22*d4d~}dk^|jUG;#OaJN%> zB?$egm*9~t;ajQ;J$^GRq|(S^CqV`EIcj`sNK)OXPkY1h)XV6#Ve?=wK6Wk6DUI%wmX~z>Hunm>QFFYM~ zCwx2M`r&2jWv7qcg69asgkj&oSJZMB>jgNCdYL%wb-0IG?%MeXSV?ueKKBu{C%8!$ zEQCX;Znyjq5T?4x+usA!E01E_5C669hIg%G#0L=mea5Q9JZy> zjK(bdLNnUkS`J@PX^#ncxQ(#STo?nJ`ka@qgZ-#9|E@jZ1u88#WP1n`hP{W)gjH0x z&pzM5*Hqd!dI|hQrTrQfz$pZ`|L%vv8mc>>_0uqe>JIp5A{T-CTO3}&p!Qq52wplNz zqPo~;FTlZ6vaUKEPN$Z&x7EUQD%GvJ1WHtjPk99XMc5OQj)fha(zidrV^o5((@;kk zmK;(AM^Gs_X?JL#Qfl)zV5(F4Z5^y3eCbCP!@sDMIpH$+l=z-qu@v5*x}~v`AxGGA z`|b+|QeA#QUzkA{3cL4&FR4_Va2K>DxMdydU=G36cU%Q~P^n?cbx=!ijjQ^?hXi-< zxUtaLDSde)JVPy)_vr&YsFxL^SHgo%>HX0#iCP|d?jEq5dRbZg2Hv33Dys;~sO4cZ zUV-1JbolH8;4*4?#NMC7y;OH(_zKvIN=MDQ4PGVeM~}V*stN9x&Y#1n)N*yja_Hie zUOO6=65N^>4~HQHckJy$p^-|*UAPsrp_cY>bKpbb*zpT@gnOyw2_yH0K2GV^nQ#!n zo%rkoh*RmLOIyO;R62RtFu0Q7PMP!=JWHiB|6T#_Q0c5M+CU$g!@q9$5dNUj*+;$x zFH`B98E-;@Fr4$oRWOt4&RsVf-l9IwyL>WKP~G|VUT`y&E?C|V_NJB>PI(9(r#>(0 z^gC=%Eid}uHaL~)F23SUNK)yNLLYdWTCS_x6ZWIJOGiHd&rs>I&|Fwb_%7f2LHM3% zeMP&wp-6RCwmb`#Ii+u|hS#Z=tA5PG$%OCfJ3oPksP38*GH@8dU3=o2a5B|hcS|02 zpwjg>&VjS3mm8ul!@p@PH%@pMI#S(D9sYt*)aOmFPlorY?&h^e!X8w*<TVl46VlYn?L9lg@6_`4*Vn;MRJybBM!1by-ZgP1oJ*yG2zngEOe~#36&=BZ7N!>Zx!z)jid+9vYm|SGU1h!v6Ga z>)=Wn^)ts?up`wyJAN!YKyc4~at+)`rRUb(4%4ah{MqlqX;gaQkh@?W_4#7WP0)`@ zFKvH0d`{zh>F@pE1j6_7V|Tz1YWd3Rb6`I8`RWHZLpv(Hc0+r3f?B@**17N`_3~!F zi(xsH-kRPLR#WNi9WI2a)XO_t$KhYp%fDZ21v^pclaJGop_ZTiybWASrO%!?7ba4l zpI>?vJVkY1ymc*nK)rl5WR4o};;c{q`bwi|W3)dMaE*rElvmfjbDpcai?^ zAHwkc!~`NH_^XhWAkb3#~ z)!pDX8s{$;90u=F%U|P{!Dwpv+djX-(Ny>QK1<*VD*bW7Bsh;+{`tr^(1Ec3b>X4bT7S0{oJB3scEYYs z>8lyAj!LO>mcrHqmww|b7(;d0);q$-G?whEf5R(OTDt0Hm`B)i!(N8BsV?`?hwwD@ zSr|MVKBAU|*M`GgR98Ga0S(!KRE<7G|mh9z6no~WL@xP4lbmY7e4qN)Kklg{o0(VIlJW8c|r*(t*PU+i^pe4cGAGjCZ zq0$2*FNaFP@W8#Fz&Ql>;9<8z8!A0ywT3*E9-d!-p9$`fefz`JRQKqdub?eqcr0=? z>`E;kkG=@AsPx3>=V5<>dlJ_H4?Cqd;_x7qo_gS9xQR+npYt0`B@EA8v^Dgmx@S*3 z11=^E&o!iAJk>qF_%+y{>RzaR2!>NHFZ_N81gY-D`v<^IRC;M`KWIz6ylkBW4^Ziq z(SJhBDgBj#O9<}OXFJ1xsP47WyU>d8y}r-8usyYWW3yM_LaKY?laFCvf_wA6$KeZ- zm$&9jfw2Vl)|;Ed5`ugCqMcz8!M$_->CixR?;aY4GpX*q`1UY>O79Q<1rk*Hp#31Y z)hWGl4BSBYK78^NsHeJ*Ze0Ll3Bxzfc7*ZN^4k{%L2s)2?uK1p3xfOp*4tn()%|eH z;jk~k{W#|Wc!XyA)0`QwgzElNKO8P6xSxmigLA3RpFa=6%hd9hZ=QfBsr2i4ec?bdikTznb3(a{PFljFoo*=yz72AfJ%Suc`oFr^!I?v;7>K`A6xYO z22!e*A6vZhIoz-C{n)D4esHLQ`?2+uqoF&sY_n<=^rX7B*Drt@sjl56gW*G}Yrm=& zd`G2pXT*TGUMb!j~hCR3?v|7+lU>ZR-3 zyTEWNb^CG@oJaV&KinT?Q(cb}60n+j>A6c97Er0z@N?i|D)nx)1yoZny`Oj)E}>GN z#vnXOefAxF7BmuE-?uuzb7csEUY59tsYwjcTip6&*NY^!40Z94OUWV>&5550|d9tv;*Kx zg4=e--JvtJ9K7@2Fq}$5W_1UkmR0l8P@rCh4jK!6ozgGMU=Fn$KH_)ykxC=#L(rE> z)q9=-?~{B6cX}2+b4q_sfaj@Y=;6oVG8)Uss~&^r3E!yI!(kegMo(V^;|Oj{*9tg~ z;Kn@iIP5~Du}i;()zos_oUst1UbY+92_C1hY~N{L_=H++|I({)8MWNu;!$ui)$MqA z66R8A{K^6FI+b?1@gR7W`rP@Or(kEQoAC5zZ~~QfLEnD|jdS9JN8mat?b^5+zNeOx z?C+rqjb*o32F{?CyZ!Jp+(dON?l}n#qq;+HycrIn(#lKUgF~rL`}b|3CDolUDh9Vv zFDG_c1JBbOPJHa&a1+6ublb;p7_~fk>8lW;x>JTc4_WGSZTq*O1=X#6@dbE};7aS3 z!b^nV)U`uk3BjF~Jsz&5(&-CoU|TAkF=H|epkB`0@4Z&Ud+F-buN|!x-1&pB5_64NZdWsB~YuNwAqydj5X6oG{#f*dOpKl^&SA zH+)Z}2e-W!9-&b`wB_}1om2Xw6FfqFKK#*>Fp)}+99e{R)XSs0cZOf6?y<2kxR!c( zJU9tHASylnRtOeS%O@T_3f`xdPu_VobfnT#rwxMBspZr8OQ0i_p1JvZc$%<3`_mL?qrcvp|RjsG7*pqsB zcj9^Q2bJEd>j+g;djH}p;0G#w@KSsDhWh-d`xF4D^!0Nvl*ak-yYE2_)qT=+2>eC8 zeA>AUyy}!5dI*lA(q~7X2N8n%e9og#M|EF}odgr9?u$Q1!c#P(FW+wi+fvJ~-q{l- zQ|aqFm%@t#_syy6;3*pCx3w?BfmHY1xGiBY!F}JY1g}ut4?RzUPpS0dwogHvTK=@d zQSb%T{bxcFc2yXDYCohO^iXv_Rct*G?pAO=Rs8iM+(@Mkhy4z3s2Tm#;pTzxZ|bGP z*FVELDpd|$1QzvKnLQhBcIqx`2?6S}W4BT861D7j;2daAEjzBX!E#z&I}9qQu2aP{ zc#PmW?KmASb?R~hpbNouy6n%Q-6>{e@hKcU#muiTbY#ChC{8Bh#e|MAt2RnP@kT`)T}xpT?t+glrhwu784cxkxsSkGG3o z`^^*fY4a%Gl)PNFsg)#?wQ~H{6;szF-g3)JBNLF5Ua|>Cz$^o4tx(m^<-`r69b}%x z7n?^p#k{)SXuzW!Ykpd;cW}cS=&7+)ao|o(yI;NMK^2pV}QeHMCj_b^G>m>8s`o%oT-OMX{ zSM$6KnkVeb<_Y_-d6avaCoFrv(r~E39?3L}a<+NG?qFUo$C;Pdx6RM8pZQr1F^_Vr zd5LXjewGpQ;gb?$GI+$oX`eXW}c3t%}Yyn^Q?Q+JYiol zKg(X`QLZ$PGHV{?Nb}!3zf2Rb@C$Azs>9Dd*-FLt9g{I&5P0&=25brYA~#$51NYM7b%A)BpoG4lqx;KIWs%EzQsJDD$&C()=vhuYeg2<4-VeU&fh7Il;X6 zj50sVEzQsJeW@gd7c1S$gZ5KNV8gRzKhMX^f?>3E=EZ52d8OIB3@FWemNAl-xlJ9w zy3(8VRx&1n*!|0j{aN!It~9SY>&y#PUe0n;M(xL%XWj(!DA`Y$8V>xfGB2W&%%i-< zJTIf>Q66p{f&M?o*eaz32 z{d%@x2b(c3K2_!kJKsFY2pwm-|wV7Ph@;q98 zi-g*gYn_(nS#FzG-($?9e8;?$1HIck%Kqjh;9EJ%@;!CFP>#TG61PIi zp<%R1^HO!Zd8ta7H`tFz!uqo-K}nlU>Ak)-A7b}6PyfHn&$8aUVBalK`jfJ4HVSI@ zjgsh>B_I5a@Hz7W^Obo^c$#^ExyL+VSDK$?d-J?Jbfa`CY<{5MnwNmB%}c;*=4bhx zd6ZY1C+xQ7QT}4ym49U(#3q@i&2lLL z{s#JngxZwn6P8J0Y)TxznJ4&V=2h-q^RwK`Jjz$iYk9SKUY=^6uwBffTxy<|L(KEC z(LBmF<_Y_u`9;;e<_X)!Jj#R2^D=H8<=*B|UTL0}&zeX1j(L=Q%zKhQ%%gnSJj#Sr z678$DGvyey0p2n%EfwbJc(ZwwdrQLlTYx<-8SW2idpSLSP^WGbuB3Up{kD1T?Pq?L z&zMKK)V%V4Z$4@)nxEw|^C(|8FFq%m*UN{@&+;(yygb?bEO(G7O};DZdUyY9^P==` z^OmTi`B{!KFTL-ZpXDCrQNAd}$6w4f$NWIk<|W{F^Q!feL}~bb?QN2{hS8o|9<+m(!7~p zZXV@oiLyMe^-qTDm z*wN+*d$jpkUSS^PdFBb*!MrKB)ch>pHLsUoUVPS?=j8|HXZf%cAAiRk&XTkl`rqI9 zPkEmB-&F!_$_3Io^Gw^?yaJ9fKg*BJ>-;O`QO+~3fNz_h<wua$^k6Wb@p(-#lsFGe1k){4C!!kMdaagbkRV<(=kdd4>5|)|j`F zPnu8gTxg!K^~MQ%YReWaTd@DZ4(6wOs`2T&+9kn|X=-(>%(p%%dD>UVKh8kMaof61%|sEOX{(+1vaq ztIaFPJLXpkQ_S=7F7t%F-MskhWuCD6m?!L`=26Z!kFuqCUcO@{phZ=RPAn@9Ped6YMqM>*BJlJqt| z%Ztq`$$0a#+~52xhnp9lp!r$uWFBQ(^WyV>d6Y5pC@(S3%m0|4Wh?V~xxIP9UTA)n z`$}H=3gW+z`4L}0VC%yaBa^Rpaa9%aHj%3IB&yurMUsW(5% zvF4Rzym`X*Hb2WP%=2=v`C0C3o|li9-vC%*ewLR@Uixz5=SrFL1@y9C zX`Z%cnn$^hd6dJ<8=y|+4bT+xvpis9v@BN|8xWGKhi_N2~Ht#quF^}?5^P1Oa zo|l)KpJm!SFAL@g8#O=610+hr;rlaEgbbtITk_N}+Kb~ZU&>ZuW{LwthzUEQBZ$5wfnR%4Y znA0+B{)H=H=~i^S0v?^Mt+3JYi2ZKg+r1 zQNC^-<*Vi;c4zamJi$E5JIveI>&&D4-aKKun72M>NW%I$Q*@IY=a7GR`o1m~$;N}( z#?nb}n8dRwS4Rg)9EngSTL{H7`GOTIWHQNUBpSCua~lisOgc0sIBH~Y)YwqNc4I@y zL`^8mKeMl)e4=1gXCu)ikvc0Mie^&TNIn#c6e9UTt{5#8bNH1{N&G7&cBm8+qexqp zW2U!Bt{a`{^U{bLMS4>?czT#5ui!w^< z{$ODFx}qG!n@|q3d|)|{-ct^*^dfB&@{ zTK0Xp-0UOeFxl6Y1L-4D{)|U56D49FGT5$M;_!!!Q}D59=R*2+Z+iA*{lf=nVU z)6nG*j1S5YS1&AwHGIDu49K@R_CuWpmPnE-cZCeiVPA&)17t6v^X=n}m zkOSph4Wk__`Dz&LE9IH(r{zH#FNgAcQ4ZzVwH#4Ok8;fPZpqV4>8x**I7T$T?_)JY zt*pq5Te(~&7muW4Nh>F!r+-T>^baRe{7#M45J_c|R=6gTPeg;+bY02rCBNlEBS)(5 z?84AG3EQ_RY_5_~6VinCQtKbV9h21ru z#rU-$7>UKwnV6L?*%jEjn6lD^(%RC{!?2qwyF)HgpU)I?QL7Zc+OCMk6UkW4N|zRu z>@KWzA(6}n1vqrXpO{yGa6so4E#gb>D%_RE!_?V;|bdk`qc*YZFP{3QoZ;B6dY8(hx(PkC$e) zLh44i_Lqj%PVFMdL}d*nD2TgM{2^mkhu22 zsoGtl#T?VGFzHbz^+o6t{ECLq?oNiFHkU~kEEH0^-9C|I5v76b0n?G$@vmpw9Wd!* zsM@8)K5tgmn^k&o113=z$w zYZHts?UfvJLAN{M;PW^bzF&{kon=e(*3yo3!nv-tJEFxw4za$_9<{W)GucO`r|VF5 zl8IEJP};NG5NM5!XG2TI+E)0F-8*Y#c~@bS=5WEncm@R@oh*K@-ge|z^zZFBNE-&y zmVtCAL~2kZW6We$z*H2FHFmdrW4aJ&2*(q3@g)8~3PYP@1_L7Kh9Ikc9ZqwG+jcO-2}cN5Ai$qM;9phm>gxBpr~6IMt`bYXpL%+` zU)QTwuc}_Xs(SB@PL_emfGC0^fk1@mRJnP_%=FyeU=@@CWed_;t&amWrI-Y(@pe>_KkU z1-B=>=nqEuo3Kx;l1Dp7n|M_y!(K?UPK*_|`iojS+uxPBj(#TVsfO#2O1808$JE@1ZN&UBP?dR*I#vu7dZ|>krWNgLM56 zT!RneI;Hz*GwGx7_;hW&=bo~ZhAEN8SbbW-b z|3ues!c~y@QTqE^`1iN*Lc@0O&u|N^eGGma!*lR2Sn^--5*vks@8E}W_zk{`CBBE3 z*l-(sA0EmvHTXCDWO4R^H2490FckbdTwxmaBlv+a>?h*qKg7?^#m_Iq&owADSHYzf z{K`Br;~%~XPykxNe~I_M6+gd&AE;sxyn>%4;%AxoSs{K_iJw0Bfi@g~KR`qH2@Zmb z7;1vU;1&QJA%2d6pP}Gr@yD_Bhvt76G`<6_l_Ca>gUp~oYEAhDXyAyyWP`^pz)1`q zJMgZ!!J};h4!3kOc!2VW4ItSE)n!{6P2({ks)$F77JF@!iy27owgCq(z-Of1R|6xE zQ{oV?YG-QYCYUp|;ns9z)JzI*0q!&dWcG0|Tt;xhL$=*?*BN{6I&+WuRpZU85e=HD zJCF>oFQCIVp7FGeo6x9h%}jxXJ-bap7yad+!Xa&mE zVa5ZKuhL8l=2cW`Cr!Pv41NPZ+T3 z6W5mp2M2lmqYaqz;fx9Dli&r6lC&-&SUAdpjR{*LO*dfT0H|V(>bpU06r!UrI2g#I zJqMgg@O`+VJ<)8yoW@;7dK*^)zZJx8;C-vfd0C$vlHaX4?62Ssc>MwRaT>`v*g8_r zElKqd0hYH%8e_BR?O)n#>`E;`R)L#@!s)mg<`-x*PET?;;U8?Ap553O2{vxG8Mw5G zYwbb1$mZ?aO56G`-Ugfw|A9T>3T(PS`yp*fy_z6D^F;oUHCi=l8qwy7Ot3{9RSjT z6~0@H-FJ$gXVZ`5ihspgNWXm>?vl-C7l;t2+TaA3qj4HM{P@>YxmuqK{sVx8E8zi7 zv**I4hzIyTz-_sEx>kh=?c59LHM+OJ7rPp`V5%`T1L_TYg|rPCPVi`~20zE_M)It| zbOY-UUV^!B4KL_m52eH(#YW=L-AjcHCJ)i^VWOkx;P zJqzQ+Hn30N2MrYX0ShHMYJ7|199~fz0-B4z!|MnxLWYYD5l71*BHjqDM7HMV)BfP6 zP`B48aY1g*N*N`F09f`>B3ObgU5b}wa2X1grTSeO)?dI~;>Z^s z8JSL(F!&{=)Tw@9oI(mb|2z%0bLS{=!Tab}1PZSBJ^Z66!H|p?ydgS;p_~n3q`$~55y5@%N$__3PQ(}9fqxUQ zPJI&RSL8`>qQ(9H>Zxn;Wjz0FWCd<)#ynuzop}ddiWBY9br`A~jRnbK@0jNLA~v1l zP>g%;b2i{e;|_-r@-@(W=cFRL%OiL*lJG5Xkv(ZVcaHjtF~ZL}J;8Gqyp1>LroJV@ zO^1L`Vx5iRn1ibja|r6AsDWjI#j z6jnG2PD=!9RfI$k-^-e)o>}EF72igjsg3cqs%nj+@ln2$vx(8-f0^*2zi98E?S=da zD#Lm3LdtqRli1P%=8YHWX&ZK?5j<t3_)v&+yLm9>%ml(5$TsILw~8G=b-cN|Dl`wq-Ewtgqo`6olr&8g zK`!Le`T4F3yTnk$5ghXyjL zc|^1(vub|Q<(+2(S^!81XZnJv+c%{U(4(>Qs&3yh^lB3+)-6Tj|>6vZ-DZ z9U;|dgUMc<=EArd{v@(jR1F`UP#0ImpU%&fT`1#^=jNjnW&C9T)~zy*M@N!qwh$`$ zBSfqem5c>?qLROZfTJq;gM^BQmNF{&??r1etK_L0BH36ycdlr$BIQ2Mb+cjO*D0Oq z(E;;1O#HGaHrYppiHdWWFs`>$wQY(;1_|k>+jc92)X`J7?Y1-zN^Djj#|;BGbN!mV zEKj5RJ<`gj~dj5ba;i;RDx#L*qgb z0GYDCHii5iq|)S{4;RceMRlkLpY_58b4yg&JHj3=W$P%WmHjBDO`$f;tl=HdGFPe@ zHLl@jk;S6(0@U!1nz&xLD?ej)F)i4Yo0U?g1up<#J<#wjk}brnphdJ28vZ~QisLziLki<25&DhrHe=S)_frA6)&*EeHTOb{S0vRqQZY<_ zLZVafPN>b92~uQU(^FEjlxT)PE9NnuVlEu)T$;JJJ0w9xCm@mKT65u9o$IlU@XlYk z6niA$>fb?lFyZQl^7lvb_s8=0C-j>$5$jR-DBqOE;u({O)rn`~@)90MD~$$lQx!~r zif3er*Cq41o761KUdo=Dwfd??d93uzGVII2Y?jD#rbAa9mORKMiMC53@Wi>K^yfH#FJ~HZ)>o=6m9U#H6r04H`cpW{r%45nqezG*kK1YIdSzf(!`$qtn(y;#l(O&Na5e?v$L{#f0@r zVw5~1Ov;4yW&qahg!Lq(PPwHPg$`Q8>djQuJ({Q_olA*Ik*VsGbbqhqeTU_GGF80; z0Y_&-TM45){U+&Vrm7c;MrEF=uH7QWPd?(f21qRnGy%==9W#lZn?g*FhU;l%FU=3d zFwZWkd*UWuengPpNrRK%BhWHa z*F>t$8XC*>L_?p5oDtQ~zs%ivmJR)L(WuNCdQ;SfPIj)iohn*TNNINmis|t)^2>~K z9grl?yz22mz&)P>I-wKy5j{R>nY~POmCr7la#f}C>Gd0XgMwz?xSqcW*)OW+X~7qI zYMo8z`u>*uyxWDozcDwrrRe)H0M@O(U!P!+yD7I2djDD?S!cbE<$9v`cOu}Z-oJ)0 zN-ze}6q~WkuM&;QtoOHO)BEX8buB=o|BC_1#(@{5bb$xC=5-wSqoO)>9~lRxJ1Ak4 zdl^Z|I2J^{$TuF`-dj{OTgS(Rze0A5jtjI8pgk@`8pg+lzsb+fU5pLy%FTf(W5Wjk zShr)t=|~udw}y`mQR*$k`0!35Tj%is%k^Y@_yPisjt}<{Mji^!j1TvUMr9r!F543E zttZb5bYCTgKeaH?7*QNpHctFYN>_N0ZC=NTZx_|M`^Y$Pt5(id+}j!#tP+lK0M~P1 zggkvchgpJc!OT*t=F+&z?>i!<@(;D(a~1yt{9xV|aIAvb@=Z2VRQyo@tXmZyUxIB@ zYavwnG9r^u>G8E2BKv}OB9>3;L=Q33`XuN_z){t{m@xCuQAV}@E~jcg|C)mGOh}`5 z4UH-CO(}%;Ad(^cN$A9j68_wx2=BoU@qnlY2$Q)hGG6k4NY30nCDj3$BXhTu3dofw zXk}sEt21{U8GC{5&w0z-9Z1cQMMEf>$~PCDnW?-AZc)@a>qpF9o(nf-s)>E1{BU#O zW{;1x)z_$Z%2BrUeFpOjVWORnAB+{0n@9JeAP_?aLI8-r`*CG&x3NF2^HVszSFr-bN~Q1XCm3U-lufF z0EAl_0(eU2{&S&*f=7T3LqX(RD5O#FC_Vk(d@fXf@CK07;B|O;5SCyBpTx@&9It;5 zx%|N^@x?tT%<|YM@xfjyyq5~@r9yjW4b-)R+i2ceNGn&z`ND5qfj@|mf|gM&i{JNu{~faUbygw9bR zddx+1w^O?V?c~Z{tB@-fzjE0k*cl)Gi4|o>5edn=GkHH#-S{S{E8`}6hD2uLPIv|a zj=B>LCmcLn6vmHph-gM;7yY$8)RW}e=|u&sdxlcF$Agrndw#4(QF#c}l|^-r2iF*H z&w;*J7;leI;(4%0_V)ao2A(8B=kWIYBo$CjZ;!(&33PwXleZ^KUZ(BPfMt1x#8B`O z=-|6y!jET6XFfXO`MJ3w#Zl3TdU4JPSCFk`FI6_r(_It}%RXkrW?!ScYO6Zmn+??F zG1DGz0lFnA_avrv@uKuY7`yyUHsDB;4(YjF?x?>&yZp?o%ap@UqFpY#q_6Lya;rL8 znyR!W2S&=R%2)|beT}T?#dWvpe1aC7gju@q((7PhGTK-g#MP-E0|0HYa|olA>>$jB zB^rh{3HQY_4?arLU-a1u_Q|WVo+RtPzX3Nh?iqZd{04%4`ADoNLjT~inyu*1ks0d|6Y>Tt- z-O5NUT6~PiO_J`94{^B+`xQq4;HY8$Ey5vBS4nai!~UN{Gcp_YXZxsHEdXS? z`+;D?>#<0QeAD1Gx0g1~dp?vY?l}q?kZ)$4&~qLPWo-V3MCTXaTrr2fLrRO>#CaOg_wo-LY@S?iwVVV!C@Af@XCf$7{G zDFpT)h9>a5>D+oz{pP_=z0kQEqY6?_LlQNlE|IEr&-DhX`7N$@UxSPj)w@psRid%s ziuZN-nXC)N`>Na=k)n9t3c$KmywMEBsNyx$S}@If57Ek{dGSq8H1B&5a8&cYlyLA+ zHpbo!MKdyM-m^Pu-n2=*uy?&cFx~s<6cT%oL+jq)eK=Q%lK2xvk+=XQ=>ftxqlHf) z4~S%E^oLUCSvj21f1e7-$2%W_1aK)MaoF`{=f4DX=M^7s-HCGRl(-d{t zsFj(r#b~s=QI3)Hz12sH^u0d$djS3BOw;>qZeg&x%cSXb>aIAehO1N~tt`Fhn{GVd z;4Zdml_6J3(o00Z8JF#pu19G*e9|6qU3;hNVOEM975As>JxnQikHpjUD0AoWkgj(M zh1zRq&yTL2=IKV zprkz7!b>LQRd$b7VC6-l9!ok)D8r1CtB^V**O%a3afx}C+knF>y2$}Et@KXKTe+oH zZnY{gGU=y`Ft^+IcklVO*I^j&x<+jV zdH3RGv(fD9y8#1$?FQ_;*lg@7wdBiE1>d$xV>3-m*&D}z9z+G<7Yul@LV^xOZ|&O& zd3&In=OZCc){_*HDsL1RR}xzm9Oo(~nkI=+&YbnH?M#6s9i8+0i{XHiUjPh4da| zGLDa#IO)Gs6zM%U!gz=0e6cW&523m9V3F+jxHA=<9FC8jsep1iJ{;ypp!;*493SBs ziGGhn?A;V|d9)oRr#M-}o# z7^+(Ckc7dflRtuHD}3G(!N=Plfrj{ge?;&Q`5+Sf5j0tOJoqElgUkkN@p1}Y)}RRM zrGof!FTIHPAE+>i3KkAfP8ZhefMNnOj=jqOn*x>s9xditm2JandHFW6zMPrXs?;J~ zYLO_#tb^;3LL|XMcvqa~;aN7|a5VP>ccN0SG|TPE*oKJd3yYuiF%60W)U=38VhPau z29Tf0r@Ug$dFodaUhbLer!}Rw&869#;YwJe)~tfV;;_=i z4eAV;!RgtJV~tTbED3!mjqwu&X|*P9m(C{YU%(7^=UxI9V?iC=!rS?K|&eU z6R)tz(77j8VNZx|ScM4Y>4BH0^+514d@H7ViUfxd3H0GfwQ8#!*TsFQmlisDN_D;C#(!_nc26it2 z3*G@g5hWTfCzqcl%wMLzCOXJZ7$F|SdUB3E?}u+PQsNU(v|via&Fi#b!_qBp!R99E z7S7pLJv*q`J7LViF=#39-(1*-Qq~v=V3qWoTfK!V#5gn;#`gu8+&+1KxN3Z+RwFhJ zUJ3BSzTtLbbQpx84ZiswA-4GV?zwO^y$}Me%nGhp`qwJI({B6@&4_4=M6+k`mF{mP zzhVr5<=(IvZA@|}@7Kf4LlCo%vLHL;N9nj89zF5@G2FYhle8CQ-x*Vuh)((iYbbP5 zobo@qezH>H6jw(BM%N2fTcyg5nQ~2p5h|i=00R@SZ$KY{R)3FG#$m^RF?DJoRa7cZPuHrW6sRaoH(=W& z+HRm+8n5n#qUGjDwcRW?XT`gi)$%xNJJZ%HkBv%iaS{-$K)^JnFH2y-+d!R!edERr3NELDd?=5Xk-!{dc;7SiF^qbEqY*6nf)Qp-v4lAZ!O<{r0^X4-H6+4$ zWRx5ujj>tY)bRFo>(Fjlx309YbP3#S73t@FCHRN3i!aquK3Kv>rAI5OxK0I%mNyA{ zgMFGRgvP-nV^xeDX6TwDVx@dtA zv8t`o6v_x4Hr!>!_W32c&o6>I=wjr!*k%X##*Cg^{w#YzSPE$t;{^yV##{#ozS|^l z5Nt+Ms49q5Ge#`7^n-aG*c&D)<&-ug%Npp+3^#FB~bG{-ktRu8jTM{$MdaaRG>s1Fv~ zD3`R#zW95nsY_`U-RZ$1E@_o$32F6!`BbDFsopbuTed-iKtsn%4;_afVuRQ!f!5LZ zDmvLb9v(!*K(keUP~vaGmDg6lI~vd9(@z-({fJdVxODQ5rHyFD`1=6@jx`N6%IPs= zH;seGu&s?X_r$CXW?%Gpc1-!ge_CA5;ZQYkEIs~oQ5{O2UsbkFUrr!3D$-qqt>XDW zD~^lyXxF5689*lp-dO@Q0jV=9qW-Mp;El}w8DqJli=~50X&o-;a0Jo8L%SOjLy*!# z!MK!`?4I8PvwG=LqqKhG3&JQZ6wtzy)*)`C-36LigE#*J4N%Z-;KI2u0n!j<4ZZ_iFw=7Rr=e^Rt6^7qO*I0(loyXW?XPms45 z3!a6)53V<)&l@{)Iyci8@5)|NV(N!9A!PUJ93% z%+8@Fds}+fZhRMzBw#cvzySNgrsbeefF3?^Ibc(0T8=u4Aw4Zem2#!!ybozb^7?MP zW2z&Ms7m29>t6oW2HcCZ9Mv{gTFxkt-8B&lJX3Ol1^_haIIL>VbQ}g_&Xtbiprh99 zK|7&^{lP4MV^VHdjs57Nw^MGO8~fPGp<%up>n$_e9<}*E<9-wmLT^_Ca*b2TkSV3E}%zI0?ytDdhyN2ql9{@{Da=-*Ekj32@) zXRb@|WBl?bC<#BoyJuhz;GcKT1^9iIm@2<3#h&TzE`#M6^d<_Q0e*!?)0M~Ct zn>KC9bPOj92QU-FJcvk!MJzR;J5Wq#UFgA{DY#3r6o785&(1d&Y-+9RemF@-=uzV*pybaUb%0Weg;Fnfom_vriI0JXUB$ z^X*WfRYb&%9D`S@*gi6W!Uh0_E^!3>@r}_doGmOpnJ3_Hm_f!$?hrV{1BEP(&sdqg zVZ8jJ6r>aEN~e!OT9778h&UQv28w0&&O1W(tTB%FtVw@TY?HJ)46J^54fTTunT)?( zbfpJ-7=OEk)+C{2$>=^B(*HoQ-DM>8y@Cu5NyRrkmQNS0=g-Ztjgp$IsGITj1) zs~L%%LS1-B->)kFkp4iiq&6Xa!#l?c-dPJZ7)|t@0%znDr&tXOp~Z#JMBkOl?+|@g#l(vGPSJNl zMSBPZsXm2G=`Q+?AY`-mN8b~o??mRuLG=B86pweH_E6Dxd=iPiYN_9y=n_|$;3XmAHZCJ^sh`w(d#)b57&~OVAf|yoTpDfa!h*10@_6al8zKT>N zN&W)fF{R=$N}9O*mu$dcBkOhpxSzm=#LbkV+hr))kluhY2?CQcl&dR1m?uwB} z^OTtWnvU$p^+Sg8OgXGNF}HH)5By{Oj=l(1A`1IJtpADmNfG3T^&bb|3yW|cMZkI$ z>p!QrlsL0^O2mz0&scv)_O$BxDJYl1V*PzccZ&7jhiuKbrs+dEYs65XAxdHKI#MyHLUQ%oynTX?y05EW#BjSi}l0?$dt9fz* z3^T~wfV%|_@rWbK0ARB!_J-+^dsC23uvN3=1|W`xmw{sQmK*S%VwY^7~f7y^2e8?d2R4l?H0dIX%o9J`(` z_g6C*J2${FcYu9qqxr*P3jn`u0G?^K0Voy)|6GF0itQScOJI0S2CKJ1O?ixr3vhdY zZpg&lQr&}NO7Z4m>E=?3GWXy{qFYx=QIOt4fw@c=*_{{qqGgogdA=ZwQbYw%m{OFv z2XUq7K{u0oz$e6{tF))N%iMz(L)(q==Ab>;#pE71aE@5kp1B9F1#An>JxIrMo^lWV zJhfdpa}Uy6)NSqocfE;mGvc31l%rg^2OmVPq}+oK;T`23&|T-;0}2jO?g7P`SeP&_ zgrN#E45%T3at{Xd01jbG?RA!NsxykI&uPY{t#$xNqR=4+ zVLg7_F$Y2Qm}~C<2Yrntm3{Akb?L3>eeS^#C*@|qZgLL}v8xOBW@XFXHevVp zUIHhkb`+o7btuaez>{o(Xg*3%0NvypIOrdoj412_`3C3aCqxnHQkLvdoKbehxQBbZhwA(e}2K+i|r#5wY(Pq1LrxSmiWf#8_pJ%9?g?qV3Gs8Lt(j07TJy4e93GglKEX#*+m$n)AiYK1 z<`Z!DniwY|KDb0V%9T&>5OO8u6FiJ}lutl+o%0DOz(@H66gy&}zPJ#EDufWrC!pcL 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⪻*}M|j+fq?vI1Am3$5 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%0D{KHMy$gFrVs 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

086rjVnEBt{ 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 z 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

D+&$R8>!Ri?oV)-xiNN^? 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%0Dxrqh9Da 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

Wu=*S-41J;_W-(aJFHB`ke`#3!#M4* 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≪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

Fc{;eS06o?)6v|^zfe^fx!(B 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%0A{tEOi2G@$0b#96%gQwO1F7uLM- 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

JmCK)oAV= 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

k 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%0AY(Ld@<(d>?+!8{#GY;pe=O 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 ndF=-i=4Dr z<;dCWnw}B6F4vJkEA<~KrSA0$^w)myf?(QM=0G)p2&A~|2O23qP)IRz+hkIWxi>7@ zSjnUsz#ivLlfFHeyamhR`=PT^G^x9U zuVyUQ{zs=;y*YR`x=)w*={{diefm%A{T08@#m`91WFP^jT9w@5q+{D>uy>|BTRIh+g4~Nip_012QVHef<^u}&TVr*n=l8va@%(M za@$mhPL_YuOKKbL$ct0k<_!vAJAQ1rWO3P!b!MBS6SzfYUj|NhXxpMtKV8P|8flrn+)wwxK)( zX13u^*!0>lvyDKMYkYDyhOqXQ*@j(c-G4B%&6C+iXg&Zk+ipa$nM9qEX13v*TxJ`7 zOGrX6dOX3P^ZCteL!kgw`>c{O+a79X7i}9>)d;=0ZI0h8(7*9!xBVI7k!1Om_$1U# z#MXwh+y2zEhTHj$TYiRYF3<$csq67ux3*@hN^_2{ zRpx95_On$aAjhqn@%x(P_IEZHW%KZ`XD?Z9e`^ode(%11`J2gh1$l11gK267$Q#?N zZpCi)^EReB6DB^_%|V#ta|pux=DK|+919`2Zr_CN!<;o%I2&L8_BHCPFS%~N>Mt7p zU-@V-chZr$ZXMau8s~PHOCNLH90~FEf}t*eTXjBIyN=E;Ftcr+en|7(96JoFdoauE zT|8&JtJsaj^w+s>TNMo3BXZw%6#(hk zz80Bc|37-opbK3I(6>7Rb6$f zx?e&9zhA#fSM{lL&vx%U=YQ|z1vbbNn=42tvBqt}Vh?beNoXZX!$}W`Q2C;A8yAJj zz|z1ANCO@M<5HedqK9E{CEa3cEwQx&tbcn$xte14e65mz!#(j%kKI!*Z+f-j!E()$?*!lZ|_v3nv2g!8iF-*C9)e>xRmv>MO*LD}O+9FG zsqb9hmN8}>2N;Q^g|wj0>)$v4>Gf|X2-QL_(3|yde-N)JanSWUB%EQ;wSBFB+waNA zq0PhiT_X>@)N3DjQ(E6{)b&bU|8_9F-J?b9&Z+?(uIK7?wNUo*WsBW;jxPyzXEfc? z+*z-GE8x!IQa8~>gkOs8U@f#gsblugHP4`)j)XHf^Xj#Zv)%N(rHmDDDzo z?U@lTb`t{SuZ2iQ$`z?AAn4^+8_0085B682ia?I}yF4peJXLOsU1JKp4z5Wp_ApEi zLP}^Q1tG17D}CAGAat282@XQ&a-{_!y$;R{LLPEk9Ibzr0_qd0vXje+tC>RUUi|n@+3c_P503t!Y)jK}9>(%Pozm)Ck9+<6CQ8cYBJV)5jyT z^4F#x?}5MRpCA9NOr=n?|6$9T;(;n2bUon-jQ6OP_yAkNFJ9$n4h!M|#NhfrJ@2rZPi zE1}Hv3cAhcD+w#;;`id9p7a%TV@R=oQMI01y(!*z4G=3Os%Bh4$L^;WcGYsXCZ+VK zX;z8mOu64b`?iSPPc@(<_tQej|Zeu71*UGsUB(9uOGr8D` zw*tq)S+pDn!_6osBI`Wo=UqMF;S!e|vt%49sTFkK3Ieb&2Ib0j5S2s7S zM$7PMWl?z)PO*p$6}a2vv6i>;zV5<33uT1A(zijKs*6Re^; z5nbmvj4R+#*vJ)hkYg(v z*VFji_24Z1py-3HK#7spUV>L5xa3LtY8U18a+leJJ7c|FFNe}lZS2b`xhE_6t2gFb z8@D>c+Bj~F^VBzoe4_7P7l@yRL+aZi}s z^|ob1oF|xEku`AF*{|!|)$28IjmcWG+O9VyTF0OshbFh3Jkl5j2qzwk+}Ko6`X3sp zwyW^v)Np&MS!)fA*IJ`P{L>-&DSo*=ZfYs(;r5Zw#S2UFmQctmYzcK&i2vF*heCpX zMivs+zRe+1j4bSS!w`+z|CxT9;-mhF5W}1Eiy_bAw>JX$e7X6Q#c!`GPV7y1eiscZ zyDG#SWd>W|^*vnmb&!ZG(x&NTvwPwF=2|al;Nc3dWr?I*>$+lQs6?|3Uc}ua^yJys zbuGJ?y60AgbA1UFkU6D?7DGq5bchRG&^~CtlDawyusb=JQE&Mz@Ib7REOrz9~>k@ zJ-ISgZ?!LPPfd>1E{Bt_R#o8R$}0y4>43EJ;U0Eo^k}8ps?c*S{7NTc;83yF(EKQH zX9p9Vl#}_8@$gkP1ac@JMJ8mPpSEX6D11bXcxI!p* z+d4T`AFj8jZ=?sdRGSmiHwL@!3w&U|nT(!FlboL4F^SP_;~ad@fl#lze#SZ=vUlQ!#Xw2RYe$%X3yUoJ?On1<$^Gr|o5Fjs%k&|vY@90Od zdG@I#7MmT7i4E!w@zTg|qimZ@DJkW|@=l4=a}=AGfizUHc{yHDv6-&A7n`XHL|MVh zuqP1pAk#uR2W^tYX3STwrtuh5i^c3xKB_BMx*k;xu2sicUPpiQtYB|2UKOB-rKn3% z0t=A2VufWSq2INuu$)j>CNb{>h2n)nJ72%-E;9u zgcFZWpUcb7unBh>eJC$uViTL$mkRSKy7UpgG+&YV*sMk7ki4_b>=1NR9L!N?Hg{g7 z>UQ|zflZJoURBvLT5HzU;PAKyRp;m11{1X-!4iv9oyYChbw0j>R-HpNr4*j`H7r#| z4C}6l5!c(I>aH38^0PxT!HbcF#Paigrg?^~8?bjD#Ye;2fmw;3E$*tRAAKd{adUoo z$#DEd1gk9YP~9=EF|oN%=0L_52! zk(|N51y^@@aCJJoqnehOIUXKRgI>+mSq4|xk_Vsj;O$w7ymc0}rY0vF&G!1%c(vJn z{#2t4LxLOi*!i>3I9;)9P7>riKo0f08df1<3~=b`^45DsL4x5FW+3=6PTqb3AMQ#| z@C&%rS>)($r$;v!Foock`0R4WaEmscRiiD!IQ$$~Fn-*z0%-_yI5>@<3+WJxc*@`c zVKXqa%#L(es*nxX9S(%S zd2l>tz$x%f()88pGep8mc67S0E4HO_^_BkoCN}OQ* z8qg7)-6ywAcXGoi&LoK?P<9To7*2s{69K2V0Ep#>Q(zZe5}d*^h|_X6Pa7G-DbS|O z@Rb`Q~0+RAQ4}azYlEv0?V#}%(t{fZ` z-Ar;96AIf7y#PQ{H24t%CDE}SQ7TjOPob!PE>}?;R9~h9;0UUCC&@NEl;8@gx=jC1 ziU%{O?g5>3C_5z>`bNm*%_&Ugi8+>2B2Vm;(CuUfHyxB{EV3~v&xt19S#A?uKC1Qb zUebey*w{yvDm~1@<)fOd1RotA984eFok6JBq=B91pw9O5y&^tB{n`f_*v}|~cI8pN zS+2g>)xS#Wr579HC%n^RSKn7nU%#YyFkO9-V{jfyQ%TDCgz%GJr8L6Brn!Gcp8Z0> z`DL1*lt;Owg&=30mTV0kf^-F(g~}TKO4i^(lLL-2sFDJXHc}OEJZLhiWQlLf7*&F^ z>O_=*bKtByF@}xta7V+&W}_)b<2~rrdIK9frd$i+Ov5T9oFUV&CW?!;{?EO97<>*%;n$q+4;_rpqKD}I_yT)r3<+f+ToAQi^4(l!x*~BbA z5N*G#+_t+y*5g&%FQK*<3Ry~g9^u6`M$#%d!$i+Wfkw#$*lVkkHy zp}Y58D7XX^9Eo`+K*7BOo#ky9NkSAHeiK8%;k|(T0_&pzmQ`mK1&2-n1BQQ_T@DJ) z04Ytv_6)Tv){m$vjoN1=c38Oqi*x;WR`_GJ_e$*4@|Hvsd=({2-u(bxiLm1_CSaW0 zmuv43t_FuFRVQHyn}!|^l5qVXh(Z+l>?8ax$?uKJ;j5! z;&?R0vN>q?#G@@%S~0gCfF z#asBL;BSKme|JGwl?ruy7d)UQ;)=gg^;C!$;|9CNDeFDIg085CxWS`ybokQ&!3eJh z<(V+TZhb?DDqNl8buN%$ET$_}|3>uG5aqIi3=hAUhBpK))FX1*c!oC)ZW(C9OurC@ z{xT0k-wLRqE2o`spD5e6!;eNZ-teVDKA^st!5h9_uu*uj#8rUTB4Mfmyc(|(@rIus z9E`>c1Odch_2saU->S+P6WeSYAl^n?U~?OR2w~7&-#7&z>dKaSdlW6Y-mHW+eNA<2 z3YHh)7ED*b|0+o5dSIuX0Qg|DHeRhy;I@Mk)p7W$+T1)f4wy#2eVNv0ZuuD% zpH_!GrCqgHAl}T+na~&abLk_xyUH~vu8e;W2!oqAKrnbGX~J*yDtVBFY`Gd)_&&vh zSs7oFWV4}YmB^AG6Or@5l;$MN_|htkTq8&B*(E`inc*@|^s+$NdQTccG>?`mny6C= zEKUD_H0>d7u6iqD@i0IxAz5s_o7l3Ta93pya6*$ggPR>m7Rncg8n?kU2@fjAm_KW9 zRyg(-`kwpLWY6}{4F{9mfv`K6;GG@^6AhXAU!}|529p&j&GC>R2NUGpFPNO*VS=Gy zDSPpvAPj4$T(P(UiPrMbWN99v=0KthrKCWj*;0YTgC^Ia@9+(gT#Lp*Vq%dpty5$8 z42MV!pScAMGfMx1llKNbb7i>}!~^H&A>j-I=f~N*E=69FdB3HFa=)dJfF0Ue*^G%I<0b&hmTVvI@@U-vw?&sy1WziYqp~D499y?%- z^^SJGz`;=3xpo6tsYDzaJIw~405ylJo6L=5H-7O|VE29)HcS}4j*J!tZ1>3zNdh!3kw9gO%MR(T;v zJf|zB&9?ZkN(Z;G+}WWp+jz&o?rFkFJ(G=z5lpGW zjsdGFVPBc7)|)Lj9f9goSR9}Xe=G-X6sLOg3Xw0^P_95-`GUig`%4LfK#iG9FOHX- zfYz0Uc$N(?XR<53W(JISmQ_zhJyse`q@Dxu{Ew(>I$rXh@QM)6bk!a4On^f|JQFHS zKo8A8(>Yoqo~b0eT9>Y9=TAOmvSk6F#gDtept|h}N^HxXJ9q@k%f;}}NMaWrI(P`G z+UtS@JT!@UC%{9$0$r(taVEq=<2NxpG~NryYY_JlAY5c-@zCfL5Po6X=u&nCb>UoN zcxW6adgGz-$H{o;51?epyWfphA}A$HrPBrjjE8=oO}MXkXk%>Mmu*B%JhZ_>kMYpP z+nji4hgLYdRT3WB;A0>{aP%Gz{cYRmqUI%7a}hlBH|*E#KnNs5PdV_=)-TiW(B{Kp z==?KVg54G7kB4?BEchw1utVUXXPucpR_B0+{sja9eOg{T^g<7=a)4?zSAKZtd7uHh+T@i0IxwOedW6I)g&d9320e_F1-Ihg!N$UF*(*s0NgOLJEENyUAydP2|08!BEuf`E^WTZ)Ooidk`?iR~uxfxuIB|txE$Dw! zLdl4SwjzTE9@?Z4g%xuV!_R=VB&UtvBd0a-(8gO#JoK-ScK=-V7rB+6;0f}MYeq!oXq>ZuShMo4#!Q`URl4`$Lsgmmf_&WTKbtn zLZHN%K}**J8-=G)4EorJgvoxd!mC|qX$#``*hEYJeYpn30LK>rVQ>=%z!C2x_5W56 zlLC*is!nXV8ZCXT;-R+y$6HdGlQ0KN%WN>f5xHlV1X=EIXzAO_6%7|HEKT1=n)VPk z7vhz%co-lT;w`qe5L;F#d90$PKVPoCIhcG#$0TF!^Chb3Ck@ zg9&o)7figc&LPBuU>sf)#Q5}g<%-1>NVJxJLt6F_H3t%9C?y3F&6Wxz9yA#$(DH2= z11oWmm{{OU>(m%6%^^~wrPmA9LNC`FwDjTUB*zI4ZS%mnf`l^+oVQ1`^r__vh0)Ti zWep5|GQ25m1Y=+fxV}{iTKXCEb`LePQ>zAeIG}5EpoQ{8U$)q(kMkwLPK^d!np11E zwCU6ya$~f#oO+Y5McH}_Eq%Frzg7bU*SEc+6SknW*y$zY@};2Qus=3&((!vfkjoCz z&X>zAf|9;5x4ARq66@#!C4Dmx%MH22>|!!XIyd-|1Eq%U{$uVIrc8r1&A%g>$r|5c7A~;5KZ!6C-WNEX?VD7k1V)hjtpedw=eBrMRi4c^}c7DL4I{ zZ;RMXRRcNG~}zw=1U2u^1!m;5Oin=CO;BKC)ba zy0QcsBP}Hi6C0xo?FB~qL}*=U7-`u6GsqRiNXv?+q8=-YCeAi;V5HZgt_dT3K3)+< zny$KIqzQFE7-_<%2`Hi&XgaIY_Ka4g*ff;1__?`jv|YjOhLa}NW$zul70b)TaMDO( z7fw1ICrx7B32@REqdQ%Qu_nYx<2Ny!G~Nrya}fOzAZTP}ank4%5Q5)T5>9%VK!Csj z3H6a`8@7su&uTPer=hp|NdQITlOlipLX;W#?H0TeA;%*v#pvg2ZNi=LUZS5vc~B$! z0(CxJyfPE6d3dbaYE|$QsK&_3>CRABbhCJc6UyumG$*05Lzyd1<04@WpxLYpEo>lo z{u%-K?>zbPQxAs|(Ap-P&wbtO;ZG3^j&Tf^Et|ANn7AF6;6k+8z!L2*w8+;U5hyc*9G#h3}AP)9kAn%EWecq>G z{>bj`4ZGE7*lbjCq$m?#EAN^RR(Y4YAoZ0H!6W%akO!~*T_B%tJ1NWY-iBC78i0SR zI5CE=c2$NsxDQ?pukRszb*b=9X|-xU-`$^XV^t0F4uPr5lZm-@>y5dW67_3@S-^NH zI|}uLOY|U!&WAz+u2eTy>l3XuebLw$)P~zfwJLO{H9T4yuNntNJuwS~N3Orcpdsvf zACOgvW2k6$zx_pe4LRLQG#E5yp7b^KoY9&Rdc8%OXjZqVf44`g?aFX#8W06v3ZM%_^W=*TPkB*7FX&yYm; z_JQDBqY>64%DNomgR9DwH-q$^2ZXg%kKQ3dH{MAK-5xg0I1^UvUdpB~Q9PI+y*)s$ zq3o1k=o`W0R0@+G-pQavSK1ELscyKw9t+8rPDP zB0Y?QOTLzIT;$6Z*OH#)OM>w>7?$$QTy_7!AUbZ@TxIsB08Mra-T0-?A)L7CBe>(hFqF+YwWM-+#YgcFr6IqNf+)%6?32S zN~~f!8WS7luJBR>pL{E4%ql#^rqzkmb5t=82WhA(<`eLWs+e@uy^2YN1e#4yYFd;O zObh8Og<B8gq~ z$@KapiFqfePp(Es8N?_O)+h0sSbY-j1>_T$-U~1*IJ5OhbPDLMPoE3Z{}T3bI!Go0 zYfUH$!M07!8mE;hvEX_R_GiN9#I)dIlo$Ezv+zm;5|3V%6-~gFss!K){$yMDelH3+&J<=iEsDhJYYo!$qVV5(rHD_i!_yyeREOJD%>Cp|wCM>}(@!2Iw z0cToO#6AYEH-6X=W*yeUjN%%HOII~4W_xN1-GtY0rw6@r_G;KsXEnwrr`k0tl|UVT z<5aua+*ZMk73(S0igM4WPNMRSnSUkh_A`Rb!hLg;vfHtOpst7AD}(_$o0)pW!-9>% zI^iVPw~#O;!M=`H6e@AxXx1x^9UO#UN#%1)JJL)?fRyAt*Od-wa^efY8Fru ziN6BV(A~+~X|s8nOc>bhvW5ACPR?UzAROUOrP zg*eXVv3B(~CI6*(u!6?* z_%eqWC7zN(j28K@FIya9*87s+5QFYiT8NpijL8f!9&+O%iX4f`p+P^2D0hH>N?Qu% zXiTh2T<)a^E~3bZmI{)w*;pd=97U9SKpLuuaxY#{5rwY07f~qVNkxF632R%6LpU+O8RhKcR)t@(;7$2roFLk?Z@DX7lMibK{> zsys(!<;2uCV|is&WuiJ>TZQn_soI)#jfq+h3NB06<~GS91(yTt*L7~+{tGUl!KGAP z_A`xB#tHkjm|3i}-&1VOV>B8c_oU?v5Ct&~4X* z^_VL1@FR{ToAME*I>#j8_;MA+-Z?~iad{`+>9Kd}AX2g^GlUWc+%g4qMV5e9r- z3X>iN%-)GS`FZC-iN+!ulk%Ks;`7RFqRU6M9xf$4c!-Tll1h~&`KV&+rdhLgn}z=c z3C{YI)J~gXCFa*sI&9l{_ljtSO0#=b`x#}Wu1W26bc^W55AUJQ6F>Y2!J@H1XI%W18*-n(Tlu!0QdB>A`X> zh$mxT5{{BQ8QY|{lDV#e6^t&kq*ZhuQU~~KWy@%7f>6|(rY44QmQ{hRXlT2dY721G zhe3X!U27gj$f(G}GOzHyN-~!0y{qOIVaV=17Kj%|j8g{KxF>?aFUnOVBdgdp4^$!h zClm~_PdUynQ+QG!7nDHyk?UWpOy!a5UuW#5^Vf1^>I$%nluZ9bGW7^U9AK4NJc6NX zilbHiBVV>S!2ZCO1P53QCZz?~{gl891lYM3R_m==OIl+1rSQpB&x}WL8aQ;T+okmv z99~x<;S9O1)oW|pp4MzORPO3L+^;K25{)!!t;$5BU8!xYx7rvcqZVb3k}D(nS!vq= zZ_kiM^m>YQ{IwA2)5;a8E6g3NEaVJ$Q=ZJqic}HE#&vmCwD^*8TkHx#%Ts%0Mi^KbZ*eCV_yXLbE+ zZja@oe-P>?&gyzI5X*h^57tzZ&+6LW5}1AN509J=R{{1_)F_q0*nO3;2bE4yp_#{(AsEeby=cTTN@J9`UvtFSLfUb3Hg{cK^;iWq)c_BnxMrVPC>P(loIWuGHN~GC8A3QR*l2d%}1Rz$54<6u_ zRhkxM4W#G>7nM?stH8KjSxv zZdV71B)MJu9=Y9qlB(%$6G*Fn?sj!Rv=c2yDgM5N^`TLl$&kN-HsGD(=>;P z=1jTS|M6`RyP0Z0Np7Zv(#6fpxo{RYGk%lkX72=vB)M7qo^mru)pWD>BCYQ9JZnjdn**kK#BgM@$&9@TGnR2tQ`L>ANOf{e+H`78FPD$Apm|lTt%Q09rE#LA$aWZ zYhm9ZIH2u1`lD@ZZvZ^0kV34vf~^*9BjL3)uMl&)A&5;K$eTPVf!-{3d-qM4#WH&u`P`cj)tB_*7!v z308wIMRz$6KBCp&_)TmzINl4$GjN$qfU9d}b~QLU1yuDOnGIShVLM&dQkvLmaHB}< zdOEfoye09eXQJ%Le^13L5nA%3NVT)_dhpY2!ky>$b3J&gFAKugSSk8^E5eV@y&}Bj zToUdOcZ34Su_XM|)Kyz8UK8G;)!=$%xcWyAmWFS#jVNkWf^`;I8otqfUFYpP&eCuQ z1kvJY^R!AwDJh(c(S*x!UjPKAY|(Vrg#YSrhbDqHvJf@U+?{uMv^v~jn&G6h2aCjC zo?kF|7Ky(U$mc6+q%0Eu2O?%I5}%K2Je1T}Q05-SbLgS)z6O%3?}VYeskicYy=p?< z)zRgbPq@K$_vv|`zuJ$SB;PB5&!X(3`a%bKg6lBN}YDQxST9+J8X zwscNCu=!o^fSSvE)z7y6uLoB-Y)f_9$_~Hv7XSh#%Y&P9-^w{Crd*cXqz43TBr^hZ5k57%Y>yu+OUV`6BS%aVJmm)MA0um~59uol=cf|3ZUW>n6 zhy*k^Gi&ir6l@fpVKP4XI3!HQyBe>^cyZcoZbtqdxr9Aji=Vt(xL%UqqDA&&fLp#C zmUUiftg}C(f_KQ4L&u^OxGh@JuevlQ07v;{A)tQdwNQV%+YkNOGcanmD71;Bv*JlIM>-Eo5JZvzIxZNYee(0kqOeV}}ouD)w!g<{w^2GiC63V<@ zzsnxyVxrjPSrL@CmD|)PCz<)N~IoV!r&r{t#gPiYg3I=)XMwh0Fx42 z!eO$##sQZ5(tK=ike@LZ^xMxQ&*c8CT+)m1ZS?&vRha$0?cCwUKR`Fsn7!cN@sKiF=WO~%<*JbV`v;^kR|k!EdhFlf zs%^!C+rOnoLV3ph+jv5l{$ElW;bEri-wz|(hL8G(9oiy9~fG17XF`Ft_AVT?B@C9 zZM$4wNBaTjWtEdvIDEJUEBY%NXehM-m;2YoC)?Z9wg9-YHQEWFS!+)rKjj@B-N(+HD~1?X-BdD+l3RlqloNT9x5O6V7{_ zY)p*QCpK5w4O*7ltUVv@wQC~=hcIgm=fzh0Xd{IBrb@kC=H>^_y(p7%(nO;b(*vcX zy)~wggg2LM5jJ0s|MTD4Tg#Aj27k$Ham+|^)e zX)4`iNENxANoWWIYD~1hB|Hft*_5LBV9sEK)OsGIY&!FFXbs_>$luEe_vG8`A2nRtgMh!(CNGnlt=T1f&lE<2-Jr z5ok9MOxoOo2efx0;qC+4&SP(@m9La5QrDp2P!;qaAgjwfXy|m=K1EndmuH0${jl5? zyMoXms>R=@78eRaN@yhoA+3n}ec9q5be}H?4npX1r3E3qw~ZNuJmj`Gn)u7|tqeBS zRx3Bh7WK#X9!c9xCGDQI(~4ZuXWf=dk)qqt7%%%SD$gmuC26bJo?ZIu!ZzD`s4Pi( zSNIca3zZ`;gnl8u?E>u*5m&IeGHw8W5v6vd)g(lMB712(0bZ9cb;m2?5FRgfP&pom zMRP6I9bn5WCu)mGj;~uHPW`)|MW(U>=DtI$VzSdS7J{zd4#TUd?o?!!( zXQnXK1Errw0!kq49Pp$l{Zb(2uk_$7Ygu59}I3YGYYW0!ki28fz+HahKM36A~XUoE`|;@E6w7 zr9e+C^mec`%v!uEw|cBHiE4m{P+W6LEtG?lP|OWf!q{gG9MXE@19cB+{wV4o%`H>j z4KELcY;Ktnzo*tX7-Y@9^G+nzKX-d?ZhfYN(Yt|IDektfA*2v0>gq5DRGfTQ?uKZ? zbh(P6p%Pf@nR+?)kj4Gq=^4Y7WDpvq(bw>Lt+LU3)mJ3%*TykL}?=V%`b%aM*|r zvmT>K@CT5=3#SA8CbowI-V4Y#aKTl8>$GNe4+nG#s1aXR(jE@3C0SRjA8s_70MDtm z&7J;TkIxd1i<-jAPy4llI{cba|J#UUn`zHH-gn%>4C_TGH^ zIGm7mABWf*oEtefBp&q?IW}@QHojOe>=R<|Ry#RVx5B#bqqc6l_NX3g-tbP_cA}Of z7-f;o8*aB>*LlZwzj;GUB`Lc%glT{AbUd5rdO$>okJ{4dt_=VE8yw0A?m`w4_ixyj z_HST=4CkRe*s|fl{IbZiWy2SNe7-T0mGpaCv?l$2B4%&d;1ZO%Wy5TID3qhBXQ;1) zW&FIi()h7zK;8`-{^-F~jz#sFD|1o(9EycfWcoWHvw6?S-`^HrRgrwh5V$);fy zBF4+=ySlseo;QPjd$_FLwF#COJ_U57{Q&6ETvzW3rQyQ*L%a2=j+OPXu%~i3w+YjR zF=qCa^@m?bm~(=1$NGYl74?~ZA#D4258K`fV|u7-xTcvAK4pjOjP+9bV}wjVWizvs z{#?OE;bA`G&(21|gg<*KUL`K2f2+q*dhCS4)9sBl^oVlD+puJ!0c#YtjMj%oX{AE- z>Y8ceYJtK9Q(@HwCS?#HU;1!C84FGqFA2XC?0sRY7m`s>gI6(=TNnU@4 zJh2ymgl2pJeW%=}MzJ`s^l>BU!$W*r@lq=FFcU5=TWnoMY*`EF8-s%hVI^Nk$s11W zMKybdoP>i$dsVLWNa9fZo#m>VJ^pqjM#qYKywhWk-$!};TNDqb$1i}rRk&LSrKm(? z+!Mo;ds7(qFk_Aa$fsWvxVR_ACq>eucL>pbyS$9{ zQOAQO7ymByZ5bn!aZr|6wo2>Kc;zq0Q@!%{453=+;(D|4ch1GhQN=^sJW$;o31=9n zo<#e2Y#M7++gH-c*0VU%j)O&9>7`P>baXeIORN5ioGl5kY;{E^#NU+jEp~UZcZ^!Z z3n41R9pSDAmn&=r<*@avP$7INyeZGHXlb%MWaH8v6m31G+_t(x)BdWhtEjCW#>$~d ziOVC5xCTU81qb@F#i41DF9{A!=!T_*CcWK)8Jaxg#)~K9gq+u0Y;#Hk@@B7AE;$i#7(Arm2e zCt$)MYwqgXP)LpC7o!y!1Hm?Vr*pWov=hF0;2J1T_W&dDfNdxd^9dGM1S9b|`*oe$ zw||U8sD%`SM7Yq8Jzaza`?d%K58HC-t_FW}ghLI%caVidbi{15zbMk(ZrHB8Yrz1- zZ)q~Aejr5f+x#NP1B&<+kS`4s@$=%uxOUxD8RjrExEEgE!`k(V)JUXvgkN-tUAeZ6 zJgi&0%i*D0x%PvPnWLHy-zV$?y7%l=>qE}2kJlzzP^TNKwOTswQi(iuD6(s^&8|-i zvt0plD6tEV5&}D5Sk$%Zr9vX0sF|r%A1~M_JhtK#;4w&;Qh-O}Rbs9B(80k?5HzXu z4BK+^{&v;jS_N)oC=y%Az7+;dO!(s>9!bwm>p=-f@e-Q4vq~f%(N!Y+Qtr0(ta2sG zRid>(80^JSCBi#NUS@^IJau7Kp{@&`t9UT0L|N*>n^Kre7)zyP(YYdoJh8=rgfiEK z7YG9hm9L9i@}7ulTgq)p6x9Mt-ffb%hj=*6sZ{1+2At-!*gD&nElzVj)t3aPIWg2E z=D*Txhbu7LGF^dL1vJ@}z?gbdfq9E~O^M<6O-MLH_&tV-FHzJT5kmm(`@_P^{Kz>n zS6+@*Z$LN7Ox+I6bBIdxb{c}{?}ST!yj+2Dm4z*2u^MT81m2V<$ShBjfNWU$qoTcE zD!09^5VSzG_Y2hCLLo?rtfUa6)$l=Iwm1a6&zA&;Aau9VLeP9&+5(#K5ab~@uC&PE zrVKQ}Ghp+ISo)^24uOAI)0y9;tgpcjahpzmx_9M<2esc*Sg_EM0cD<0QQ$DfCQ% zboQu^9A_3iBuY0p1z3QCvH$&+-DctA$4>`)!X+hdbp>J&o=}EEZP^QMuiXvgL!olF zA<14^b3N?L6*dl1%t!?SKj#|4Jpar_yEQzzs`AWgv)))$skH%TI#e0FpfR>>GiVXc zyd14eHXC4!E!ZM^Xs~j|+R6pE`*-V@vo1WVash0g-C9*S{@CM=<+;K@@R3*V7S~yn zQq=M=)b*qs>PkcMYh8R8Uap#ddGwB4%1h95Zi$$ zW2_Pn4x`6(cratadv^yR7^6V_R?9Dc_*0=@c9WDy`x#WoWkT2!~R;PrA9{FH?DndMw|UNIgfz|K%VJRq^lO6;=G{ zs(ZzsN^w;2r^=2f%9;MrS>deshlx$I>ywX1_5Rr7t`#hM!|w6Qp@=nEFAP42dC_9k zek8H0+MizSCow;ktNj?2VF?uu@2aifziE?%f#4?eo>$_>X8gd1rZfyd-Mo=*+%QF3 z%i$Jt^e}l2mMH?NZeS=U%0wW*p+f>f0B==;SupYqc?ot`|Cp`*%vFE(RDb5fpS8OO zd*h#3!9MUOSO_1my~AJT;+@t%PG2}3JPy7Ba*tPk4uC)Ff&e?Q+U91>fDE{voE1JPCLXAXJIF$7PB7(!Za7N8>SuN0hT8dbAbV37O3?0ZQ&KrYi9=o zRL*KlO|)qN#zd{Yd30k#orzWr*JDJ+OeWd=abd5=dDv^F#p^p*2-H}BAt4UX)68H2 z&Jk=B9yc)-;4CCeX^7MDDiI5CY~FS2kr8IDMs0WJuMd|ibcPA62f{k-Wh@`ZJ4xeX zD_(ZbSa6MuwX0zQmn$B8U;@{sFqtr(O6$xRCV)J#F@l6L!vwmVsUG(36cD>SE281c z%WWzr<1KyMK>F|yAHxWgNY9I@78$^%=p7db3qI3mE zT^ai#yeUukIViFDQ8!4TC*?U2b{;LarLM4}p#wjlmKF*-N?0X@9j$=R`?AGh=QF+} zIP9Q{l@@k1bifQd9&%&ofE=C5;L?wh%>kE{Sh8_6Cg7;O+)EK$vXK)m6*yzFvP9}R zN;a!O8meS7gjZCup{wpC8_I@K$%e9QA}?xMNN1_5WTW#p;rux)ONwX1dQJ3fda;I> zlF8cO^HD0rdub+;*j21aFV>KlAIrrWRh|h>LPt3fqe!?k6TgWq&BS{F`2=Q%0!%6; z6kc@6rE9TeH%GB0N09}c0)_@}DyhigN=jX^9#4=l_8oOSI7>e$#t!RIV&t`#;gtv_ z9{oI*Sgx=McgFfqVj*GlrNZ)Lo#Li9<}0wQ&RSqms&&;@9P*74pE}Q?kg-x^IV583oQG@txwJy+UG)Ct6^H19 ze?b-!%PVtLv!Vu>6&CZpS!6Nq(?lx#Qi$TM`9+au0p_hhzF>8PHxGV8abjF*>8ccS z2pL=puMdZcJt(yt#IF#5wGiIx$fjZUcb1-GI$gH`lMJO}I-gxqc~3_$z|l!ku?C@!!G1 zqb|ODQAh)nH#5bT9}6}LD}{?Mk0N18;e8*k5{oZO1_xCT6-zOP7*ic&F0wq{A{8TJ zr{(7J<6!`|7hXCZQt)DDl%D;(xJMS2CRbHv0b#Ha>>rG(3f|!$AYW;P#ynLOR-3M> z`~~y~Jor>qmZdP6FosIYd~;O=d15OA?h>mi#ZJ+Ek)}Qa$=&wTx|A|sOB8?hJe(T7tS%ma)fv^EJuWordK0~rKmSk z0vku>XxQvsjX)B+suAhc2om#7P>py1-Q<3ZAz?KFzll{N@LoV3feDlV^DZ-6jX zf!&8;tw}xfG z-q@pRgwmL+8sU&{lvmDCjX1-V2~;ft*gYIu(Hw#83`W+RQypv7aO6HbHZ@XPKhc<| zsqcDFtyp?_ZksGptvJAb-42kBQyS-~mQreS)OSK=Ef4OBAF`>KHfITG`$D9g z-kM-xkFz_9P#gn+X=eMx9}XW=wkB^0;dMNOmt*194Sojq8V{~=7@X$H*Wljj!Ci5K zQ%sj?aD|9*VYX}kW4&j8kYG4z?pI+}ci~i+{VcpcsW7XaOD)XOBd)^i09uCXbyZ<@ zkuVjQ!(=baRuFAXZ!&ALs!A4ZETw$B`{Tmz9~6ugp0VsmC0K0;Dxsp(^d%t;P}9tm zV1FXmD6AB&G5iP#Q;p#VctuUe8TGNov6>I&UH=9}Q9Zh$qV2{;V~h{!qfH&p+f;c@ za|$LsO+J!XS#^D)GQ4eg47Su#^CKu?48kf4o*H!}sUNNkHm2IG`bce1`wLKRgY#ff zB183fz}midyIZ3-=L*nTdHDsdChrD>!44eNWW1B~N-Lh{sV1`p>T2>|!6bnPpK9{* z6ebfUT4_~At|lW->@dJxVl~;^{jbZqJMT4mtIKU_6tDwJAA@8Q9^&KTlv1gOnQ#T$ zV(U-JOinRE)_JKBC{OeW$INzlbMM$Y_^ERZPFzo=&GnvDu149Z*OCHVPK|eZ?9}?i z&T|zHrc*DJJwzx>B_{Kx7_e+gVco-4+0~I#KUY6Ghjq!8=K7@&!|N)GY5y8NUg5m zfOmQv9P|;6|Dt#(FF5>X3hN#g%)tRU^$QNGbD0~P5MgEZw|*@52K_`zdjoTy)V-qN zarhQxee?9FS(5&23TY2f@-C>zvmR=87C8p$l8v+$dIS_#oYThmG2+XkX&mR2J$ta_ z8t!PeRGjmm$yl7<(}>BVWsJqaiDM#2BW)PT4~OPZr9|fu zR$QS7Wqa@=^b7#R;!SG*Tqec3GAG`{L zT^fEcY85vomQpy(OC!9Wfy|$)s2fYNCsNOWADjYdDE#0xct!X@y6TP}B=r$~kZ>dd z_G6lg8$YOW(P1eh6+ak0nvNeNmZHv832ZiYxGLS9uO{A^+iFZThhZOFB(V!Wn2sML zG4BNU!55>OT!%3v#1G;(G5jFj3&LaAxs?=oBzs`2C!6@Pn>(pI5Bk9N%D- zW^u0PW~t}I0OB^37y0ZP@k)ddkItUagSXm*J6HE%F9Q@sU%-PW>BZ#u!hG1lRatj3 zAho)ngAU6() z?`J^zXC$2o5ZpUvfpVH8?g)SXmMw_xa`%S^I^-Tage)ka0tCiejZLr@O4EzlWo~Ma z@SKfJ+AAU$(V_?$`(8-s*ZC!s2OaneAP>#X3xoS#53X{ck~CK)Drq))zZ9GLN=R&< ztMd0D#W6{WWpk+O34;3xX(b`>I8!qgqK+|1U5(yi`jhbba3J0TOwy91IIj=tUJVK~ zAxR>Hgoq^9>IE89xBy8pKUXu_dxQ;x6J!S@OL|+`?@n5R5V0Xu>&ZlZ}ZH0DR0J++1sn*V@hcFdm6KSecqs+f5ADn(ZpU zH==kEp`7$FVrxreLS~##O7S2or@pVz0O_9#MC;^hPEUDF9^2QmG0v|e|DaEbtIN^^ zD&j_3t1TDl4)chTS36eEu6N=%QRoJQIWsV@s{|W`=L4L%z8nct=K4~+N`!$;4Gu;Q z7;eU4z`8C72d5QS7Ks2w90wtkYhr4ABbSM-2c`7*>_e3yzWeVdSv6aif z$R|4vNG&rQY+boV7|KHThEMjTF8ic6rN}M#9vrb(i@lJg){rZ->|A&4@N@n?@SL z)09l=>_z_?hY`zk@F5`9nFn9Aw@ucjJF|(A&ff4vZR_M%eYoD9zLD;4sWvC3Zwz+F zEo5-i7tDq$W9S#m!S4)FY5u>9{2NhxFV!GaWH<&ePuxvYvWHhkJ$=Alt+{wZZn5f? zahXa51`oElOvP;JU^D5<7MH2Ud`WPb3j5&1vPGKNaz&k6Hdm?rxj>TxHW)x}D(Zg_ zuPJd{@;fAKSTx$P2~U4I&MnmDH!!wPW%V=Slaa}=!JgFtc z#doU2h^m=sA)O^KOC7F_)T^7D)$!FTXTO?K`(esYJFa{(+`C6VnO=G)hGZEpct57w zik04xgdQJV0-HVt?}v|d!JYK^N8AzRLvX1F=vew&H~PzU!CiFwqxAVP`usS226yAf zC*Wi4ZowzjpHIP`b-_LKc`to_8gIa1z4PGDoZvqE*PP%pbnCP9`8oK!A(#jEgA?)0 z>-*u~!RPVg3;6K>eta?d?n`*}W&HRGemsaD`@(NWj|jdB*Xu^-uM55g7qAcGpRqZ3 zB5?3^yc2wbKEFwy57Fnh==0n3`5pRv7(SJlcY@M;8=d6&7(v3)JAM-@z2m)r`~lP1 z0cOExw)Bop0fUB>Jv~SOb}+7Om7@q(mVDNF^`ICxycQ)!UVAfMi7?{P$8+)h7MpNi zw(g-e_NDqB9wb0-%vXNTe2{?Bn5+KokZ)8)%~5}M?!2vA6q?jP@M5Dvx*ACjFLD;cb={AVrX*P$&d+ANnSh-jh`I~ zpA9dD&Q?8d*qA<1zraalQ!!rm*HZ;>OMC+eaZtEjw54iO@*M0)EK4CIZ%_Vsoo|b{E}$AvQq0pr8S`a}W8SDQiD`%xO5Ld;#n4M<*`bF50*#$RjYr5@2Fx zW)tt|6fpnTRMMKagGEwPjqbsL7yQkSj#vhm85IoR?HOD1m-AsA$OCx>KSLA)fk_gYS(BT)-`arFH|5lH5=nx zmk8HrK|!P0sE=SZuikD|CTjJ~qZ=E5o{a3CthWq;!uVe(8drD>5G5vez`&~O6xRxg zq|_+}auh1&Ur+`3Q>_gZE2+@<4WXD<3N{KWhRYSNK*Ch6csX7rmMf0UyCZefu*@mP z?QXZ{caduFvd@(Fqtq=b0$XhOo5m8AWv+JAfe35dwR9o^Eb+EY7`IyOCMh)eRznEvzAJw z9%jOo8jG!4ec9ryA9jEyyBZiV!LZZFRM zQoGu8NEhN!3^NN)hoaaL3QzHS6#EWv%S?vDBlBxGUVz#Y7R!-_vR0rDhxg^1LU08N z(@>%Ubu18zRiNf5PP&z#aMYb#f=ZH_j`v)QVxQCpA0LvtX_}_1qti5(5zXvf$zrEj zM)pK@k?@S@CC`WVa(pT5_^z&Fftr$>=PNbtI+Tz~>N>RGm-w>9UB}~nNpRPJVY0NY zL!&CpuERraT;!KC3~49*SP1hX5Kw6qIY(n+L!F|hSj)M$>il98^h7o1sL0&}(ohw- zoAHV&a&*sd5@F)`KriFA?Y;r7w;pASJRtc+e;_(o@8-F~#GDob*+mDPY+D zgp!uTR2;d*E7p%!w_dS+q_(+PGxiR1Jw6K`pA|kXMicj;^vHuhfmb59cuXU>I(Lsv zxbyrzROg_jx}kk3&#lol5q@pH`rPqZ>vQ}9XMxTk?x?zwqd@1f9yA^;QeNLsUU}~4 zwxL9vCs<&S^4yQ@*LB{$-IwQB1=C!>GV62uTec`?7moWP7W~N;O?OTBSLhs?2>ysH zBv$B3UtiOe1#^5AJOT`cgQy69hmVLR+(ed&W7;=4lYP_PlE-XY<$Hr*+Oda5WMja~GFNG-|1`;ZuA^g2sZtEj|54iPu z^Q)_<^$7!$w2}cQ#gqW8uBCg~jq54QmR8DnzHD()>}kFvI4Op%n3yd|6Asr?xMh0t ztK)zshw^+0YTd7KQcMOx8HDu<1Kzkv0Ayp<)j#kROer+@TNRT zvBNMamM#aG6U*`g;p^9w+xE!U18%!ciM6Qh9>Zczi7D|}-AbO67_+5Sa+NPzoDzGU zF9}YGp&KUVO45QWr^L8rIwf`v(B#=kzI1|>5<5{4lL4q7DY3W0`%6oSIT{nQ*P`IBHr^HCiJ3&h9v*<9N#%L0z#PFL~N(}D>G( zvnerj3K%pzR8mUpP$yC>T;w_0XpG1qh3olQ>&5e8MDZJxANlal@k#_3kKUh?V!yNr zcUpbGip87S7qr;v8le+^alXXZiCOVt@mDxgV-BJFq{db|j851P?&`3rf+xkTIj#r0 zJ1nl{Hp(J-vi4A z3x)mU%1585c172lh`?d5fXBqm&D)Tuit|C3O}*i{f!FjSAspZq(SX8Z%qVNMV|LOy zM}4ypN=lBpx0{8$Q?OB3H=L?|I})Z;^=){Sn5uq3-pxYh4-R4%m2k!}reM`^#%R;R z#_?Bl#&LaOcx-Bw2u$B9!VThFW!{wRUQ&&N8TR@ zyB!(t^w^R2R!*}(@nAZ#aWHte*9PsIVB8ZUid89$d&r8N8~OBe?p1kgDzq164EcU4 z1hJ-ELAYFBYw%>!poehT^_3Bn9?Il+N@v**xQxfa9&z`AgyR^GTs8Z+d~CL4BsVlnaQV4=05@3au**Zz3DOqe0b$9p>di zyaY>T^Az=1$}f?64!p^qQP+ew`3qhV-h{5Y<4vdtOy*6cL{SbleY;a}Ey0SXT&x2_ z#4o}{SjI2XmthfuvR)nh4NJ|%FegZ27v>}#b3$U?2{0#fHiJ3s4j&Qb1iy)4PVinp z{(*&w0P7hui#b83fIxdGp2B`9bdIrp5>9B>>msg7xG@k6%R8N;9p(QkME(DY^}~AG zaXB({{ZgV&X7MjY|FjxqN`8G5UWvft(M>ZBWzZ(vxvtMRl&H;p0i- zB?ou_?{FlMdbZ+m9`FEb zSAz#Wr+6@Hj#)O|`e_Q234^<|Di7Bekta4rkkE{S2mVxUQ={M*So-(_>BB>OTtQSS z^)M4o&RcBV=gSr+=Rf63f|K(Yr4n<0X|}}`L~fa`AifJ|va5ly^`?Tjay0%L>CqnA z=E!{{63!60FHSn&3=^S?CRse z>FLjslP=JWDvztD*$=fL~&O*i;N6HJha6HP7x zV);)r!BKhgi6#j`)7fP{(1hJppMh~^?v`nqTne^mo<=mY_cBLhveC%8$VxK)MhwXt zz!!(6!ZE|u>*xyQn6Fg1*HJ<&sn^lUKE;eM`7`UAPrSm{19GIVUe!77Zxe2 zPld%njGiLDZ(2xaWw*lO>aZKNDvaW%t_mZkSh_85CzfSNA~*$^FIH+q61z%`>7_;z z^G;A|{3N>3$1%o)%iHmrSg8^31>`Z9nhY?bIkTlkbPAYB{0E#3S4OGPwKqPO8Vz`l z>tU`gw&b|Pr#vRHG8p%2zl%E^pzm|Eib*xqE!J77k_1yMYq+U4Re%%gmuy$C$1;>wyW#)qR z@Wl4mv+tl{nuu8|+7~3q%3Rn!Pd^t*Q?0#-z70r zwHMUK5ZwSgm=$L`q=r@ILsCh)D$B9prz*?ygxSE*GJ9qD(Aetss5eL{BxiVDSoA9e zYlVl9QIcv0?1*)(_!UATpsbmx72hVxMy+WzL#{_7 zPi*iYp&747|DxQcMnN~Q^zl>DhllvMGN4rIVJ2LUw%Ga*v1Ki0ziMzWC4!U|J?u*3 z-mw>lqdulS`Wpj7LJb^)$&H5$!-j;-Wya)ty~M@G3G|$a>--N_eSf>qXRDS z8yxk8lN}riVxE?cSq(>#2&>h|ma#f)_tj8i$&HPviIHk^TR3VQueC;3(Qm2~YCKsR zsn83mV_T}*T9sD2+HAKf)rpZxZDOQV*-~$hs*i{izgwTJ8ToW(%*<`vN`xMyw-7>3 zuGaOSWp@7AYVIB-Q4d4m{SF-5#^zLjUNQGOc<#t~|FQkIogV;m@lFUH^1Tb0RXV`K_9$V4i&t&>0&y2NI!H8s|54dEuC zl?L2uLN=yd8EMp76Gyd&=Hu73t<~|#G05FiDvJ-iG?( z7BJbExCU0x0^8WJj*V4DtJl=#H*}kjQ))-7c`f+O_#|u)F%rrXq_(*Z=_9#M#B(=2 z)}{W)^|x#%au-qmi{(0=E9$RMDRb$G;COx5VdG(FU1>l#*#Mq@s=@GpSJ37iHe^LX zQIC}!5~=3^!u<|)O*?G-H(n7Cj;^``;RuaFKsW+72waNUn{-xeYBYyyBlYU$W_5hE z8r823NB=Dg{3aeZ!Eg9@`raDEnuN>*|AT0kVt_X!u?z5)4tOIm?*xFi|3!ECGscn- z@P^;S0B?9NAkV;RXn;l3nFYL|Q$UFQ(;npj-j>05VYqg-@@Va%0C;OO$E#yLN+<(d!VHk29Urj#~% z$GY}(RfWRQqg7w-5OIV@%7Jim7vkx)J=*``8MbXij3*df5j@*D_Uk&gZU6gUD8;J| zbTR%5>Eo@qA=%2?oI z8)2djc@C9+kS^Z0w~F9#ix5-c@j^6H-O&PacoK&Y2UyL_fSTSZ*eI+OE;zj%2@|O4 zHoQs%HSLTWVBBA>&>4ns9}ospasZC-4hJczXDfQ=0UWV*^%>5eQaqS2ge)6iJd(m> z!ssrooXda%)F>JTmOg$>`tT4RLj{ydJMB%C2~pOv&3#3eL@ z;TTe&<=@@{2kgn)TO>(MXLxyk3--pPYIJ@| z?xty)3~{h%of)Z{(O#*x6m(#X=>ony zJkgge?k?o&B1-rvhr6Rj-T1aQ9vtXyPfMFI! z4`$@EQME37Hoa6wOv#jga3Zo-tW<|2c9rVVOLZjXouE|r5pnCwfx#^qEoCPo&_%9r7(%`}Mi&^>?Vi55| z6dk$m!+0fPipPwBD|X+v33tZ&P_ZMa^rc|;WL+_#H|DF?tm2fp>Ml9T zb*`OEl%4dbS~qVzx4{*u*6m@xuJe}dzFMc$&NVHwShr8y^yIWb-V(lkfGvy2WDg&8WgT#U0$9UxY zPvE2G%zg#GfLonKj*vDzy1}To1;4~+4{}x4w9V6Q^XEhJjbC=8VTXk}7dA!5ua(n! z0J#bOb#5>}Nt9rqUM8bBuJS)8P62Vg89yyxU?_gn1 zm&7g-(f|d`OiAo&!A4=FaAI{736pJ(;MJ~@*xyaRaC$&F=MCiwol9ab0m5KPj*=MO zNg57YQ8G_SjJ2!R;9swJ@F|JCK84AIe%u+jb$H~G81lr%2ojp{lGuNi+ter+29`eV zAbog)00X_7sx%~qcH@+b=3I2XkF~=F0aNCMCRAp#WCNV-~WV?OQ?;- z?@=ZrVH0yPWcpiv9TzH%{RQ5aZ>Z0uG0X{x(%4=TKBX}nAt#r{5`?A$K3B%rDfN2E z|H<7lO_M8Q7R}!g&Fp>2k|eW~6W!#;gl!xF;^i zQV*h4`Ws)Bau4$Vd`WN*g3+?H9z^f&ZuTG^a^otQoM=cp=|`39Qm~%Vs$`DF#6~0)Aj-RLjZ z1$WWykJ9JI==0<78QhH@pMa0Gy9J+Ae?A3&)&=*_=e_j#X}qy}u=hOpGbgwY|1~H0 z4Bh%HeSQu;ZwThW{oq8XN(A@Azk|=?#~1M90sQ!4^xc>6>dW}?75sP*KlX*+jvf(w z6|UEf&R-XN4KCp1;6Gz?{(>K0$2-9{=<}QO`4D}6i$1?ipWmU+hv8F+c_*lmZACYk z!Wa_P$ncw3jSTMvsz!OUJe{wPtFRT6k~@s zpv=f`UxQa7lz7Y(xj6PZn{Z#2vng@(r8*WaXH&1tS02l}oK36ORUdPRI4XAJsE-}y zN>%GNwd&W_)*RP^9op})%_HJH!S0IG$nLgZw*xGo(7NYpl364Rm-d7Y#`k77?g_7d z&=yB`>HDu}b4Wk<3bK$`CY!4aFN$jBInBoXfxz5=d^Qq@eooVD^_7srPxH$mPrd9% zKpx_M-mS;~;K5ant;aQ2=GNo89Vf*F{}!^E)5zab6yI`OF>4NLJ+~bH0qG+lyf|}w zR{fGoj$Mt~V)`TS`W}`XU4WRd&sVDhj|3H(HAf>%ghfZ^>OkEoII4~@Z&rnkj|v+G zC&*rPtejD4!bW(F@rrt1xQP)a3~BQ{X{X&E7iN5{hZ%2$VfK~N&J8`HWXX=!o#^7@ zY9S8L)65hfpC;HSJPhUH`JwX zGS_H`;r3XX_jJz**rB%HVR#{e4gULtXVD)HW5luiO9GoqRqAx#`E+;ItRjaOyra88l;xF zj=3t2P05z#`>7Db%gPl*6m|nkgD)iwdI*D;Vym#q6j^C5>9d_W4?TZ_hBWW%a`(C)|SIQMKm(18|7O4T^1MsFiVXLdW zWvJ@@xM=qe%WbzSJn0hJ_o>~5!jlqRN#RMW<9=VZI6U3wOM=4_x?*YJNte*f@Z=#k zE}_ZcvJ67OO)rzD%N=v_c&$Bp@`l>T=9->}ZCF*&U*ZlW;g_^C_z(jsGjHg9bmliO zbvsB5WTg_i*g#;c1@0_zkO-d+ezZ`?B{*^t0kq{?~X!tx5NdjT#5GX~%mjW?=4F_jo)8~NJJA20jlv%GHq0H4I zYg<`Pf=Ql87#rV0$x>^$3F#3;w6;~6BxU|(rPG3?q2o1jt3~@R58G7(JcQyJwrimr zvm%F(td$;GLMiEr#7d652;E zL7c)a>_+fyki)tlhTR}B?*!P5_o1V_8>2{w-N0{R*bTfFkWXNhB*5az%wjjtDPVs3 zPYB4l6x0?wHky0Bs}gPu1jF)9XR%de#|*Lz#|h7f;qZ4*PUNd!$14#)@{DP;V=`Xj zA)9b#wAYK7shrbnwe<<)yMw@oVI`YW*4alHoq3RzX~J<#(^tZ%q=C!vP7KpB`A`}w z9V`BZ+?sR&G#oOG%IrA+8izXHI51LeSJ%*a(LKOt%zA!qJ1c_E_>05({$u-I!>s%_ zLNJ)nj6Fk(lRnO03%B0aN8J8^42QUbg~&qGoLi+EcILCSMGZ1R8IEThzzif5kx;-4 z`bx;-i2U-%1I#!S$V05j3(PpdgR30C49%4Z%*c8s{23nH6$fZ2rp>XdCqQEb=_OA; zX3Z!WpwZRHEvEkfQ79Z(_h3zULjSI?85^PLCN_hEMF`6{(A^a{5E(IdR&%&NiVzFd zpB<5L!hF;Iyu2VIgcK4r9QLQ*DLQ zsE&-(>EJSbKAM_M#|wC{5;5wQGAH0SCvz7a*;^)OcJdx@8%jPQ^G;}od_+S#>~8np z%hfhRJ6;2X!Gv{Sx%{qfSkW=;zkXvSO$J!FDE;J}*Eu~TxV*GTuV&vK@TYv`le2Of1lL|MASY%=opljyw+s#8mT73n3xFm&HyCnuXvo~l zFrXV5lJHAmKmRRWQeqeNUr0DZ7j+AO!z$NR+EZ{W<>dqv8>tVsFNXsuS5?lK*mmWW z;c3wuFyd~g!10$fZ4b}j+}hTQ;bYy=ko}wIG^gOyOYGq$YWx#8h_hP3jm+RcOz81e zDmL`8`pAVdcWD38wJi`~aqn{nGMY*wz0>G5i0 zJ|EtcC&&jvq!~;}JfBMip#%q1C$I-lk~QQ*Qlu2j85Fs^&Rk_UA<@KP$WbXoJ)-w) zU_(h7xz)pv&R|AA>`#-Q(vKz|hfU6>f8i2o%J%3IT|Kqlj(a&N%0t)OQ!B6XV9V80 zYfqi$%NF<4d-#&zo*Mh5(t2vW9kSmqk7Y0J2dM3OuuH{dv2EY4oQw36Bkllo$Ah3HutcZ{k5 z9zt<-j9Mt$lu%ANNDlbUDjc`d0_;LdkVx_q8LMfv(e_p1>??0z@Bt&JrnIuyyD#roK;UFPVyNg?fb{9|p zQez8KwFlzE{Zs8Cc%3g`+3Il*1!ASBmSDlwA$H!teibD_ubo$_R8F9u{v7S01u(KI$A9h z)zNy;dVB%$qh7YaFH2RRb+PJlxG4|I>$W9$e~$oNeR zg^c$C@&tqe1&AP;Srjrl1thF*FA0TQal(hLSRY{}q7js;m^dGw6?d8W6vG zV4^w>HO*_PV^g&?>lzbq4VBCmUG@Of{7c)8qE;msXc18J&+ONA-m(3Inpr&>mcJWB zAQRsFINMZZ>~K9GqQzfr>2z0yKjhh=jNmWGLL%gOS&DInZ5;?q5cF*PRe0OpmQLKI zAgg{LM6;-!Kak!9fbFU?BdbS0?}7)^jCx-npD$%#B_!V#5!;)HSz?&aJ{=0f#)8kG zhr;_Rt)ssa@;JJ;@;FL0Auk&IDIQ$qK!ajx43ko1>MJ3!b3J$~js;gNoAU-w zEO>%p?G<$pp%84lnvKtdw>8Ruz7jIp;31Lor#^VIYpz2PB z&!LO;t*Y1gvFPt%NRfU0!Rm8s?MkCrX~CcB1S7j~&!zFHv34DRchRnV#xjJQzZDVU zHV=Exv>IVY90lri3AYNFfEs6JUBX?0jly$HUYGD8But>s_v2OKx`a;+4&qpj)+GSa zlK>{TT^D{C?gbXj;sB00I7ovXdcLtSs13XJn50J>zsCK>&aQ2$f~_Nj3x@zi5<4}b z7;PD5Y+QLp1@9n59Iw~5#t^2h3_DfYaF{`(*(ps9J762Q32PRV?D&y$jmok0i0;N| z{4AXGp>i#O*DQPu2!nm&Al+EAfOnD-9ahNCvu1%!P9xU8tavcjEbIXm7s^fvhQ1MU z`E?4D36tHl=>xA$K%Uq`KthQXnum;<-O^-hk*!I4P&9J4sbo!fG?EdCmL~p}G~q#$ zffq`d9tOhoAd9UBl!2JQ3)s#!CETDIl0uCYWHGM-6|LDIQEu-p}j{LQyI)*|&xHpPa(JhpDoUBe#A&PJ6^=H7?oM zd_NU}SX-_jTya1HWuH!Z^bjt`0c8p$#Q|+z32|V};9%+)A=~)Cc75oc72QyS&Q*u< z5oOV8ZZ4EJUas=k@9U&1dau!g!hSsk|ir)@&*N_MpkQkI(szV2**Y zxiV&)93>(a(ngOhL%W;V&*UU(43$po+d}0Jm#cDys_`gX z?-KbC1&!!8GPNBEe_IO@g>1Q8Us>kL3)1`_zMK-xffRJEpw~8@Jr#ZE3S$61k_!0s|cs{ zIUJ&wB4MNV!3p89M$+j?Yirw{)@(LZHV+nlRwuTF*|@OYT^VV>jv^C{cBQrzQfnAu zBbUn@VULeql=~%iklZsQ7V$yBk-ru~ep0zYb_K;ll+7FuZ_1M$Ix?FqWGl1&NXX#a za%JEOR4bGW&L$ZY3RFsrB?T(2nqz#~;y`t@F9{A*=$54gs-^Bg=ge+ zr8gvP5!VG}zb$OBy{KzR(yPLsSj)Oz1{Nxoby1Zxu3dBSNC$tB4+B|bedZ0hy^t4n zA*fWWx4jvNBhd{9Q;tzL0N`<+Y~D-<`rzLgX)^@;gX8351>Fp%j&W1c>>oJh%;;PD^t4x5VVF zX|@8#vae+^mEy93c)(0l>VwE;T&as4@zzx9*YHRE^W-nX>+*r}Qq=lAAXbW6$@&dB zXI897-|HGq>acJ<2`G7vZ7e$~dENCNa;rxpVmK|R8sH%m*NjsO<%LQpX8CWa_7ZE% zkk%6)nDC>>t&Am@!Qw6KR^}N$@q08K+27#Bbho8QtbguyAiSC>P_Fje+zm-_wg1oFnZQX>R0)3= zuAzsS;RZpV0D)ncgHv?4IqxCN6B)x(lDNQNZBA8{tSzAIC2x zuV7FXK1b#dB;T*BeC|btK2d+vhJT8GX^3%YzP!Q8rO!W)3!drC?b7GooUDC5H8CYq zS)R3`xq^qPc4|j#nK>@&)&w~B5?4PbC_NmAbU3%^%#77IJzDWn4cp^Zi!6jxB_Z7J+n-ps!c zI>8>z3Kk)(Wc2K(gK^P?@JyPlB>oY)spz=I*Fz79HnybDqgC5UiCfv!I|-L!a8#$bYWTA#hU-X=iGjs`EklR^Ke~x znEC19RKW0O(OrowH_su*en#DV+4+w(rGQnp&a(5rXvHXO8#zVw zk0_X?sQwQBN?msT@fEamT3PiCOM$PAtop`D-xN`c$*Z9c%Z2EQ1YDDlAb~|rF%htC z92T=<T$ZCtS6sx{x*IFQhRD2Wwp2}bM4?Tlsl+=p>K$#UL`pB% zq&K;k4a+QB7HH6Vx%z$vkJ77Wyi=>@>3*vj!o3-@)v08w9IBIJd(7N9Tu9DXi4|)Z z6)Sek%Bg%UxdN34mco@R^d0U4;zFt^TUo>#xY&6EBnzX(7po@RWaui^{2EcV@eNEl z32hv&%yJv&3!JZEWk_!0x=n;W)ixfvLv#LT7%Gv&QDqy)GUsdK`y1U#uVBW#T2*KK zRyC=eb9=pz?3F`(vYj)Ndur#rSSjs%UMxtz&#&=h`@WlOmGlkAE3@3b`O#``V`WHg z-*BR$5(?_>pS>XcQ9~tiIH+vjSmvDVdzKcYf8B3YliD}8*H_41In*cHH#51X_RWjM z+IJ3_a*od8yfs@BuF%15Q|jyzQ+y~Fq{|3}FG&Br*2jZ@adsA@Z+~NYi_c+g*_B*~ zg0s7lSKPYIf(5j`I&xYqEKjGO!?oAif^}G=hq2dW0A~QyVUc-d19gq)RNMN*WPh5i zQ^$M4#p&I8f2!NYgKAM`rP^utgGRg29@BU8!*Wz6K_pvCu$mS?nchdMFx}r7?uix# zkZd=kp7L@iWVc)IO?KKfEGIuTezM!y*r?$$dvUlt>u0l~Vki--vskU)pq<-%t0egIXSG1{0KXWKv%)18`O?aL;Y|+R z=POPF7d1J<-<^)_ zk_R$ld3jQ6Ccv#NXVod@L|13eg{~e&UCl?D8nzEH`EHIlGbyCroux5XlGo*MTp3a` z80IKeQfiC?cJI8!k|Fi(c}2*O8pB6#A@wdy;RQl!u~UdPsY?8)eF>if1yAcj=diU5 zsBcEW*#Y&;-@^7Guk)+qq;TUP<}_ zn2>Y(km&Xxk%gtb==I2IxbS)y8`|$5a znsFQrov?d|*cU-e-jb8n(szV;5|&ckJYs*%$Sfm@guUB*YnmP*Em~;Ye@!itO7ZdlGNMeO8FsEN_6WG zvB6F}U@(1##nxJ}r^NR(O4sI%*hF}DY$`r--=>wS~`69OvF=hZF7@UnQM24Q} zaSM@z$|$o=kIj{ekz0u9%QjfLRax7SD&1iVk%K@RYzvWt@h{p!g#OCjLWEZJ(-tDM zHe6fZA9b=B+!Nolg-9>9hlut>;xhHDO+=`GI+2@y#=Qe*B|+{@L{J1L(BC%^N!dh% z)ciNFiO7-IXqF>U#3my6i?WFbUTaeOz!hjsT)4J%Hxa=`0i(-1ZRckbkwX*Lr(HAL zXNDE-!g|yrwdM2hFAX+1K1XshkqhI3XEx5sW+I)o zQrkJ%PvrD4OQXGe`4KK#ikx7-rHJ;H#9c)av@eGP`udItVG3e-b6USLlk8F8P>O~j zUgyF7^5)Hv=a*<+Ebe0o)5tZ=D>ucRCoF!7R~Feeq!)kP%meda+YrqThMhz9O7>6P z9%(mehPfrKscggK-#;Y5FwN&<5mNULSt#AH*@fk6H*Hzo?8ASr-Qu((gj^DxS%hdv z)@(xoXK_jNAzGVCvn;KOehZW&x+*%&%wl1*Ws~QDnmmJBF$?Q{PHL_KpGNz&(MPRo zv}-i=S5&Xkfup!vt&05giM67zTg-T5U9|h-nvdV76}<2#F&uKAw@Bg3qVLi40tQW6 z7ClRo*gvMdzp!28oSP4$V48FDF#eUg9{OfERUOx^TuXDtV{1NewK7fa=Ds>DCv1yf zDw`Vpaq{np4$M&xogC)bvFYnD>wC1(Whef?p+Ee8A+OWM$73rU**S1jY*u2M(&CI| zPbG~{U0xQ^VOS?h2F9*x4fDHx9YAK4rP=pl?D{6W2^>6i5GQ)r^i{K`S6xA~`65l% zzx1o?5Q0sq>z$ace@41aiRw(tYGhK6nJe}o&R%{lhpc3=xC?wOZ?R-j?@M__tO=*} zAevIsQ6}ZcHAk{$JMg?P$dp|^x3OIQ*_ZQ<^pAoL<>nk@9S^+8W7aXDGK#-GE|(!> z)=>|L*at_6no^}ZWF4Of+F)776Ywv}I?`X+Sx4&rQ`V9Cj#?rh+OlR2NzOWU+N)%M z7E3&856Q%%-igV|JyJ3Cd_^-rhc1?TL=k__JvP4uJ*D%TDY-{d^WQ-3@hRAJPDZYX z+#~*?qWQE%!LBhb75RXqm@peL>7P>X6#; z2>zwvCPyqF^N#hn;Fv-EX3t&|m{4Zovv#RIE!pxgPs$yoxdb>}#-)kYY z(E))oPZ1pmB{4VcmV7)uPx5g(G4+^WfG|bmu%U6XOX)QfPUtW3I1~4tu<$8vStRlJ zg81uZ?wePMM*u;Xi;HepEGI9@Z+rwC$+u`dk=Mm_lx>pyDaQnpG;hZugw>30S?oRK zm|28qJl1?J6mS+(j>$XJt8I~Q!}t)CBbsnbHnB)IS~c@nvQaSz>(e}6a}uXyeZ@}TC?AJYn3_}drut>-B^czW@}npWmMz4%S-{e`U}(~Dn2 z!IWP768@E%UVKWJr=!Fors2egT_n3>9w}0T^k4BgY+C0BPm-_9|GIdRZ>LafSR_jC zDZgtC;x~R(FB5xG;d?Sp{1V>elGr=cN-cUVEuYaeu<%*n8UDiI5D87G0iJGqj5LrE z%a}4sGTp|M82bphq}yb%xM6;lw^%aW_LICKWV#KTYHA+Fq#T)UlQrY%wl9NBY1)G6 zHXV{Wq~;>sb{zPrw{yZ0Dx>)8KDi7b(`|Z4zyPeo4XM%{(rxErt9`+~(8GH={zd6F z`YSu#M!jB2w^4sd>;Fbu*33a!>9*-uvQ2v=DcOdPn9mBMBI-nA9O;B{0_Ham}9hT@|qF$n&voMA4O>svF%b((bMKWox zkH2o_u6dA26AeAgE=7}Q%Y=A&N ziQgU7l&cmvD8Fky{A5FcQ^Gb= zUTip=$%f^VJ`CEjo?KbU@+ILT%=p>2YZX4nZ-qmcHe(igDp@Fp5@qI<899gJ$cc`z zV(p!`STggvdtMPT^NNT|P05)&OlDqX&G_c(k3~NVv$MJSG!#9pjpwko#QsJUY=QlY zXt-r<&S}p?$1oVFE9 zYE&EjEia@SHU-`GmKQb`V($mT{PdmKQk2HSdAYrlZ2ymA;XK-yf0k#qxmMS*$^JR` zn)G4jrFbbTh4tr-&i6`bB%!BK7uR^F_L2J}l))pSl0I@vn9d)i+NSua$sy%OjwvjM z5t2S~+z2nuTP*pJyEU%}`H@4Qd;7=@F@;Azayj%SXY=bFDLq`Bi{ZsTf`YsaFD6t* z3CbRy%MfySQO^~y&$NK&z$U#oh2P8eXKovWFKb>rcarltc&$n80#lq#%#3c`K}Bp75U4bFfLQ2qNFp5Z>@B!%{VK{Qhye1s zlncw7RsG6La%T0K;Z5W9Ze0%{l5btWZ`ERmGf->Pa!ja zPO6h4dQoG;#<)hZ4Um7JF~I=MDJ()*wdg?Op;oRbYP`G|9fn*Md0yTb9gZB5cZ!=> zUQ)fFDR0JIc`ieeF97lIaXI!#?YlCw&B=Q4;NM!QZqHGwQ{f$fsgrjM+`zgmyi{jI zO0^wwLoXQnNh{l(Im&iHYT0IX?@dikcDnuH-bB#t-!Rqb!_HbSx8kLWy4Cjd4boM{f75jKy&R=0?pUnQv+G!k#OGHiVR?)Q3+18Z%&G7PO+CNM zp&ke0{g$~@)ZKSraf2v0E1URHE8lj{b`Mb_*)N8&+B)m>XFrB{={lcV0Dfruo?P~us>Q- z;wH@W&bt7YPYpRz(+3!SFMWVKT!KBjQ$xWz1%TD8hZJ$7y}4b0Pny-GD`Yq!w5`88-n-2hi!;>+aW$NVa^w?2#_io#4Z+G{3) z&7vqnD^_4|M70~~bXt+x!HK4qKvP^kx zW%Ure>Kgce?Bf)w^Xgu|yRvdxds;c#o+*}#3|cB1C^&m&&hpsSU*E{G_Gw9|(v=&tG>+dEv9bpXi!dNQG`v)=vAprAdXt|?xiO=g zw!v=`ma~Vh0l@&KgxN!QB`xI^`=Yzd9+Ir!qexeDPQ#-1Et=b2ywFj%H0G zM{|?I(Xv>)xm`-diZOdM{p;oP%OyN2j!@_&vd^cyB?`~jEer+;35dJ>T3G_~ZA^O! zz{D%F3`{=H;mxcJF<|OJhfpI2X5^yQCO%>)dJg}Uz{HZ~1LnCNole(;SIL?hzwB3y zNoe67@CEXK9Hx`u9nwV|N}D;DsW zThC4Xk6*(}+Wa@!ncg0m+>KXenKrw!^u;e&8KSh=2g9?Z9*0ma(^>j$TGLtlob>AC zaC1o@EPXx#omjvZbsZFvq^arge$|vj7=Dud4yTfH=`it;I?2k^m5>w0Wmv{1jGv5-8cuP5zJ>jS@g1(jj6!6kkoZyapL6~C zk4yzU4FzYXf@aZCoNvp(?;BP5*6_6Su$vwpL0*W9h<*WKhqXW4rAdG;F!SN8q!jhZ^=%p5|Sd~v|G zPzpVgm@;Urx%~=#7<~uUNQ6-K!AfET{Wpkl| zRj2~%rfF~Z9G|hb? z-B~M%e%W*AP0o_n$CT)k8_srW-u5CL5Vx&`Wmw~DH?RX-X$sbcl@AH>?&*Qq+}3%GD)g~M6SUTDDodJyIX4*R5O%S4Jp zSi3rnYLxN?z>8_8YaG{rtbn*+8+pI;%hqr6hg+xl-8YKZi`&`~Hk`yvb{} z1$wQl#Tq-e5xdOnchErywIE>Rp+6oGRU63HYx-8*B;qukkNh0#1KrF9AOpr#w@* zOH2Q>^_o#9o7oTMQ&u6v5R7$$iB%#5SjAS1iFxAu)1==lSAdI~ljadG4p-4ovGg8T z^CB!NOpaOP33=)BVt!+{6$#+j@O#hDsUM@6IV}c z-38#-C?JXds_lTn9u|Nfz7AXSnXEO34U{hchs~u$E>TBx@>6^*IBYW=KBbK>Rh|bL zr1rco{-t5YCB)^8S1t?RKQ4G?^V}^9m-U^K1>$E4=CVaC^6hR*#h>iBR9wC%@hrCl z8^}y|AJzgYL4BB`S>Bx1ugsj3=#R0Qh90Ia9G`{d;%CM^E38$D%NAKK{*?IZW*(d` z%f%H3k*lkt3&+!Q23lu4{Wgs#>*M;$Hc$S=weZ{IVRS za#$_POOK>+M9`q<8ZB@BC$5bDDg2-0 zZ5NxrfJ-yGCw!i_jBki6gKho_?>*G&qsbT3eh|tMkusBxTd}M*IpT|bmlL*5R{+WS zm?vxQ1hK6B0^1Fq7T8v%dX4rNtjlc$6C<@CTuB#Mcsu*A(@6bEO)-Vz<8V^RJPslF z(%eTi&49~nou#?o(~42pKyp6jw^1<7$NW0}mAW){IW5f%V+2}CS`AvQV5C*2=^D7| zGMrgineI$gHU%(c5Z0#FaX}?a3XyAY#eyX=euoL+@X-D%1mErgx3HMd~^Wj}A_ffXxKbZetm zx`!LXk4`i7De4%XDY`_fio7qnMl1O~HZGSIQU1|yGmz^ieg}g21jWeu3A~b)I*5I3 zU6!}X_Qu!S{g#y>x_)AjXe~mOOhxi%jpVyNKfSmq-NwYhJf7*0>m#sq5)`1T)M*jl zij1SZx|}YotFx?y)Qo$uU*m?K>8A8Wz9jWPc#~V-iaU&)`^nrnM-!2wPqJ9NiTs*1 zk?7PMC&$re8Bl$~}dwO7D$O4zJ8I z<(9G-{3KR}DCL$$mYr%jndn8WQCw{(dLiOrN%IlU>&j706J8~2YHaycV-j2V;?D+o zKn~MLwlF91#1`(Dj4e52%8~7#6P|L^OwKFEcszAX*7T*`7Z0(C1oC{v*f;Rg9gcp$ zr+YS5jJ?jU|HvN7Yqe&W+C%yKim}|Q;It)9*2_}#6>#xSV)ha+jcnPsYq)y1Uw4z! zfMm?UPi1(3aAhCvmUYG0qXv!TUNQDLgU}otlq<%tw7f&+Z^hWGsNe^4p@JeS#!R)& z@wrR-vhxK@A0?yZu)F-Sv(}cQSV_GG-h%JVTP*oyzbmf@`DMrNn71!GUwj|^vggp7 zTrsAnIw_V2hcsg=#$Fs>-y}z2vzCAH^1O zCl!$_Y7$>+kaIHf%3C1x)8?8h`jZBWPDWmhkA)GV?g}Z*yT}@|74SN@Y=fL@j?ZVw#duC!;6Mf8QYdCbrJx zB7BEt|3m>%`>!_?Z5Hf*0jViPaAK#&VE=1DSbqCA&&I0L3N+ib1}Rq0!Q!MSlzY;_ zq@wgFG&1Qqoaf|cE!vc`fnw=ER)HK!N&2vJr5wnV5={r5!4a&_R+FC)r3uI%l_tJn z$OQPO6qPO-YaH@>C5sjh#9H@j&{x&gy^CJuXtVxDynpVnew(w`7@GARAk0g%j&9%0 zJyot5mhHL1DEdf-Ne;kc!q9BwW|Vf+kTv)JB{5mxdFU5S2Gbxw>m2E_kLko2$F9?sKw| z>nMDa+o~-%op53@=nV&Bz14gTZf|wma!JQ}Cg@RSmhD$)9Ta=pa^Qcp(Swsn=q%4! zScbJF?gC-aQ+%t)GOU-!UpMoH@-D+-Z8cnj6kT$)UA!%`pS0$CN4(D2D$c)@DnZ4~ zH)9dPYDCZFT&jCn2&d?|h$;8Q&ql=Qt;}shS>Zw|{=253huk&fvXJUMARch;x^(Ch zIZEZQbcmNKx^&3y@XfE~C|mJ`L#)Wr2sY=!p?8v1QW%q%Vu>wplM9D3ojz9R7sKmk zap6$HH@*35T%GhgcyDx(5QBzT5VU*zGmx$@-4-`(w5}Rypa}KubE_iL!0}32Pb&6>a9QjkJ$WZa;}xt7(P`jIG#?iFWO|BR z({y#Vq2Ml`P~HWU%U-aYvN3|zte3rP-dgS|w8r<2AD-oM=-ZQDWiUi+IBcIZc!(;* zMm%dMUL6zLB?=zBIHQK*r1(X2SPc1QyIJxGye{uV7R;t-6Imufm^v&*1i@rk}BO{Ao(EB1{+8|82_SyWcn+6 zAeqK{Xdsz}7_^a}sE5q#I;w6TN~vj);NmS-zhyPQ#XLYvMbHPIn$N-@tk?iCir^pV zzYh?n3=or={{{w#kHluN9GM{oi18O?fEceesRdxxwu#B!tvf)BjRHb~N4NL0Rp>G; zW13qdH9!xh#cQIzocK&yl7M0*kMsqyr{@9 za4-J4nU~o5R8CT-VVXO;uTkddv?0D zMjLh!>xp3uvD6_l&Sv$5=8gAh#Vh=U2z!m?Y_WV0?H;YtV3V{#v{}mgd`x?PVWrEw z&xcVk`QgL(SL*25KCMQtFBYN}%kAtzqTp0S^?%~ql90c_+r?$}>Di8c(!BD!eibD1 zH&QKovgY|sc#|oA6X_6pURw4udV9(@)Gm|4Di9-R_V|=c?8cPxwYt!ZI$B5pH=OUA`?~6QUQW7fDl( zMgIyiL@A%jROt?xl%qi#ER%8!{zaJ-`YSt=LY*VZq)=3@b(5kkYi5}m8LooxKm;lx zkD}cG9g56p_Vjwam(~o>QHy0!P{iM}D9vvzS+L;zW=a-?)ciM)ML7|h#FLO0B8!5* zC|MM|)+F!8*t>}#`_|2(V55K!^X;AvTv-fVxCwsViXMJwSF|XkiaMcoc`g2>VIjvi zTV_u-#0Ae>XWPTYp6i-mvax2Y-mZ6{Q&3Ynyt4nQ)K_Ls&fB;x=(MWm1@go+GdtGX z(0#7=wp_bqd9wooXI3b0tSqm#f?f{?5EJ^=M{JonFyUvMPam2nDP@wNwy@{ykTTH> z&gWAsZ{BdSo-8@$>XQzE&6fLXD~D5E4nJjO<)m7@R~_y(#)f;7Ff6*Z65did{FGC! z6@JC%o@`Ig>7D;uL0Fo9-U{ysOu^HQa082#u&k*c z=0p*(Ik=Odu;<3hI&-V7%Nvq96FkFXo6`yJSDj7fLZT_NJ(B!Xw@UIYnxWnjuY73r z6hjqBpe5+Kc?T9DO!-8zR?X+*Rdr^O)<(3tJea30`O{aKb&1Aj&1XRYMMzdGcLZR> za~_y>XnyviSb0>|EnAwu5tm{)AVt@#CH;e@Ga#^i4(No_gI*mrhF=RgOXA7e4bMvQ zNzn}WCobF+hqGu$E=C8)r?qnFAGp|jwWIPDAvTZgtN2>g+jbNmX3f*SZYW)9tNCx( ze|u)(T(U4g{^RJA_^YZyl1j0E`q6BVvcidas2>iS4pHJ1d`W<&G}uzbai@B-#}dxDppv#%a6?s#6kKi;WD z=lzLaHE-ApC50|q*c;AEUrLUqS9%TYStmu_-D1k*vGH%6)@8% zwoM9e)q~Mts)-^K^~-7p(s5A?)*0_qmV$NYRpMJTGz6D7*42Wc5cZ=OxKgVMCAa}C zycvuX#?<%dP9pvDfs_l&o9{`v;xKwSv#8o>ZEDo|<6F)h;$Ho35X+j?anN3&>3Dw6 zRcY_}OiF#0H@}#A<*O-IVqe2EFpTSrG;!5Z*z77NCB>BJL)?W{D>t7K2A9zov3VIN zNB4@3T!73+Kw(X?$U5`o}Qn7E6sZ z!;ki@d22>NF%4ThFRzHGa$>z{LzTGAz5wl<>Gxcw-`Rl_eA?_G)$bV~buSb%4N~g0 z2&DQw9a0aXm^p*g{mvFPKxK94S-Lh8=EGG#k_ zD~Tu_q`sfGW)f20$txnNoRUE5v@nvwIGJ@(vKb}sH6UucnRG;{*9cKcpGPOuPAFy0 z2(<&e&0G3xcM#@-P%E;+C~1z;0cxSMLSukB6g@x%)MLfl;Gf+9HB-szw1-_k^5*Q@ zwN%RSSVK1-w@a*T<*(B*d5te&$qZEzSYD6-OOb@hjO%10<&PN9c?CKIA6$rbLDg&I zY`exJ>jb^l-Mb2OM6YtTxgo|I17SW0dbB-3xp7Jd(#xFn8UyJxI)Vz)^?7B=_IV+R zu#WU*4o?E9XhTX8ROhMnQyNxZi1i&ntlr|wY$d_!2^v-{y2uDTQ|I^{X!sO-s@Djg z+mkdMneTM>oC3(a&)J>^WPSjI`9NmcW}#s+m8q?49pby4bs59t=g{~nCf}Y{ro`l1 zNQ6BmFF4EZ_>GQJ@6t8weh>9GfY|-EFE=P1c4=%cyVp;*8KTw&FGn{UgbAnx_wz6UOuX)>soD*{p8ehfkpYqC-*!@2eVU1lmCNjH& zB}Y4Zp8AoZ!IISpB5qr_V4DT_Kl3OKmlf4gNvI?fl5(Pf1)9Q12?jo0jvkg07OK~X zPebzcI;5^aDRTy?D--N&Hm@Nz90g%MAeEVrRCHH1QeEn-P_^yRveeD!0V=63&MQ;4 z!3#))HK}HfJi~tKjUN0tJ*fqDFTi@cdH%deQ$F99`AUM&OT+$j(v+)gm?k}C!0J8d z7AaU&uMt-FND{6C_5pV{D-Z?V>uh`jVBZhId;s>itbApn7R!d(yPQ=UL+xkL7gW@~ zEw4<8+B-;uJ!(%q8}gF{rYP$8Ei6q#@^?``1Bm2r`7(1!kbJB}a=T_h;C9Ub+{e)9 zDZo{)5pcJK`LQ}*w|l9x&lKS6Ht;rYz3inR%m-f+m!qgNMNw&G!|7l0wh7tCuAu2v zoc=MdOo`LqlL%{^&Q%}#C}+P@KR(pQUX@owR5>MqknCE^$@1AOlJ^>rbQwBU3X;@o ztZOYr>SVearMP{~3XtgvXY(2&zd8u>L8i>EwW7PS0qPQGg{n=Cy4IV}15`j=lvk!~ zgXfb7Ye3DM7{+_<%SZHBuaG1y&bt-$;?^?eMc4azzRX(^#6CHU^Pru=G9oLy!hHs` z-i@YDL92R=(7FSAt&Y|E-JPcZR^Q=lQUg{W0%1O|dRSJ6n(M7>NWIfpnK7h(2Cc6m z^{shjN~FG-MA##BxrS8UH27gw+G0ALpZ1Swu>20zcmQGfO<#s92`txyu)HCglQ$R; z`ByY}3L@2Ogvf1f(CN7C%bdNX038>=+q`v$mw+%IbUY}FjyII9GyLbgZ9#U14@ASO zVEjW~nG%e@BN5hMoU6|88fULlKO@u`UYS=!R5>Mq&(R@#Hcw~MXY;fHKbN8-rQk=s zM)-+srF|7X?e?`Qz@N*V&1i_uY9P!9e-6;~i#w#aO~vm(_dMV;M^Xn7St7v_~I z+t_&|qI3YdC2!5-%Dd<06%kdA2LR;|@#%1dG24j2Ma0Z@u(3mL%ef1=3*8^eI@-7t z>J6|k-?&fSGMF#KmOZaB3fjz;hHK~O#1@0UH7u2J1C@KAP|AT0@)LLqyd?30!vgg! zRM6!!Pj=f|Qr*NM_p`7(c;-oN@5MRPY|Z7CnN#yVDpst_9P2ItitP9ln}6t9QDs8V z%;|2$OdRT-IoeSOjOVzP8M>)_N0}`%$GN?ZXA@=|w>Z6F%gj-3FMzH^yfD} z4T!vD%lXaE@c(|6|MzqJzn|y-{R02*7x{m`#Q*zc{@<_g|9+MK_iOyWU#I`po3Dl! zp7R*|ulZW|>-^?x=>NW+iop@}eE0_=%OmiRTaPD3mb-C-5sE^MWQp!(wd>jK@p>0F zL8?{64pt&eqfjj2x|T=y1(e(|GBYJzZFji3ZL92XHFLu(Z?|&v(Z@U~X}^{8VN;^$ zrdo#`%Qn@zq_dvRx1pV;@VF4%rV948f<1qNcD0U2nbS^qu&op9!xRJ~BXDQXs!p|F zOJTY-*bHZZ2Cc>z?8{Xd=}fh0+pCezX0ewO9_ES9)@s9}upREu&}p?A?py_bi<8pn zyieEz2lkKRcVbcMo5j8CUukzYK~lRqJq-JAbsO-^8J&sADN(u_zX}Jr!VLxShEA&$O!n%u zjTRP^{ZnjAh81jp1x6d)9^b(XzMD1LN~^wkCGKg4_Gp87VBfKcI&7&0)tv0WKS?-M zdzc$ZRRWl3mB~a{yl}fiMO25(tw`#?X3p^LWJAZL(2ihrW_Q@|YaI;wSH`-XsYyDa z2I_`8hJiHng&w_EJRwf5F+3!0k9xS7#g~`KGE3-kAvZ-+EciXq`1a*Yr}@6dwQ)t)~(kQ zOUy1Mm$e3a$Mqqsq1JRJ{X;Y;3{179yx$M1<4`N|QqVfZR(RreV+5L;wu2t{Xm|m27uk6)yarC8ELWYFYV{kFEl{Bl zN`4Y~SUKkibq+gpvc2q---WpVVqMrd59# zNUJ<^4(+vR{?Z!`{aSPTXk!VR0hxhUPkGp?(WD6Jw1?>%9pJ9~iXVm+NAt@&grX5! zVL_w}ASN+Aw1wDL5^Y(BZy1+^yGYU-hBraH$Wg&w34>FWP2-K~IJj07@C5sN;zpIV z1~y2siziqu{0%nWg&3tfC0a+1$sC^S!uPNWA4I0xqS7lvLzk`^igQM2l zeROI>#W1G=L^tC>YZNQRRSvgR@TXPyTLr#5LX8ShVC!N*mAE`ae*-?dO0yR~If!HN zlM*3d$V6?Puok|yHwh3OhP_f79e5$s4B8X^1nnAr!p4O@#Qrf-?{BIDWAGP7Hu?}fa z068HNp$d@|!bfq)nZ*uJCiWB-3QdSN3Z+-4x*G%BVjDt|#su!f+iADzpdpeLUKO{q zm4I~_fup%>s5 z#j3LLu6SjI48=W?4O9uL-434m0**tJ7Upe((*!NuUhKE{+a_B9MmDEa=#NURK8pK7 zS4O6(q@q0$C#dKo8pYthuvX%w)W{-E!hREXhfW=9wv(OK^caSX=m-2C@uFtLFq#c} z*Vi{Or(FkStcZUKJ_;`gMtYqVc5#FD81%%uQ2&k47sM}S*a3j7-e>>;HT5-R ziYz!IN0Np%e*41cQ1!mtA*L=whKG8HNq1p@Xbdq~Eu;)J#0({%3KBw0_N)?OvIh!< zn2OA3h*?y+A;cVQH719v)9_sf>#u`?%uCkAw`We7A+RYvk=?uAe6{2X$ ztTCQp@H{;U3}pMqpR@jg^C92FI3OO!4o`c`Q3!hov5I1_<4IJ-&BNLD^-AhPyd95p z#bVLj0I^;batRFMNnLj(SP}0*p<`W2&B+?GEDP0;*$Bf$*}jle-8us&J}YE_nzTBr z$r{O3N&(5DBKO*r3r;^r(_&|IG@q!-1?$#nk|tZw0u*an7pijM)34MeVV*F_CfpSu zM-)u81Nee=8|=Hnx?mUu;!z4DjT`Y`4mkuwBH}%GYNr)6;D&)1E>^3H#uL*fOx-opJPl1TRdyzp2 zzED|z$Eg zSqD@=3TguK%oTo!1E>%l;xV%5WJ7^NuZ62mcwV6K2`M*j+6OX1bI< zG0P*MmOu`bU8KVB2T{3|B1R73%xEj`h`vI}8&jq6qbT$&vMAc?MCMJrQWZ!UDr2GP z4mF3BDn|HdSSoTntw?5JJwCc|88m)4b%eYTbwzCyavhlBL5~fCMN~1>rpHs->XWRa zj5(i4%;oY39%b=IL`8;%^vA^ShDTA~*oyQA*{}E*_gMZi%EI!x(V-|1E(-}6?GURE zk7KZhH3&pJO%0tlzj%|wsG2Q|Za}XastbC95{EB6oBk=Ki3S#i=Dd|Pdc)OL2gW1x znua!knzHNo3bD63^dJA5n`&m)U!; zK8E+OX3ky{sHsPI$wbg@jCNWE6^J|7tJpwSFoKDdw35kt*fTdw1vT`QlqW#1J&1S6 z10c;YUBUawti53#j-)&ZRpK|W7r_VGV2abNTTypNgTxGhL?56gKig;b_zzo z+VG0eQAk{av8e=7G#m3xmTNg4+=ZzJIDm06{g* zrBEZ=1lQnimLo)hAcI+d6s16jizCkPrry*DK0t`}@R!#I!u;^-ej9yk~b@#6z^ z7z!6(aSosnh`nW^ALWZQBq5)Q4U7^qWXO9~RyJV6oUnrW({+*s3&LuEGYbaA#8XclMT$G7&aIa%D@_g zGT6sgm%u;#;dl;=b?ccuBzq{12eGV7q%9a;Krdk}U5}5Tq9P#X%mowHV15UUwXGL_ zle;(CFdaxhh95;WG;|@j7@n%fe-Q4-X$4ass@DUlpjAjQEl=3K-pu%~;NZqRDSbf6>?pnO;)Y%*#pK{1`UObwbf8mJ&sExrb(Q1ozM4#q3QpP_-& z>%$OP;AANCUDz~aw4}s!Z@G$8kiTxUzA%6#sa*Y_$SpS`oW}<;njF~ z=~unD%4c&5dJJ%sCQrg%ivOY)uwNp)n1a4obf{%$=u-TZ9tvlE;B(LtIJDSfXe%{w zpY|A$5LC#XLUZGYjU4PweU9BqPj0HWYSf7ZFTb>n|H2T0HFTPRL!qX;RXCNn8*awp zMyo#wYOllaW8#n#JWJP^eb_yu0cD~WzEKyVYXyrN7eYk|HGtoeh>)m~lEtvQ^wLm2 zh$;n>BcWr4y(ZPiD!~{gGMIT8xDM~}lcQmp+yu_|6mO5sk^rc~oHRoRUQn7e8R_x=%N=VpI5T%qJ=ZRmvab`UmT9tM@RFydc*7T zU2>>9?0)DY`cb8jcg8YZVfT}LMp>dT`Y8GesN@p(7|@>>4D$J>2-}z*G0`d%keXrT zRa3IBltu-CNPj(M(Xz4Fo1oXm^087oeBPhLqw*S=l;ruE;%b3+7{=2v&Vc|M{x4x3-3%NF+6R1oS@Ii}R*a*= z@cGT*=-BFT!;~@}IllPixb$oGj~wUknbjl5PY(AB5Q~zscMTAC8ukuY1u7DY(xNB5 zsn=-1+9DxP-@)V3bLa1sdf zv4g;JO3y*pbF8--bE_~-vbTC2d^5z+@1f>m`v`2Ub#Lcx!8#J#Mgr%f1E?Db zEYB-bu9ZKOL|AVmFmv!3oi&$SQJXn+LSznAc$~-P}CU9i!^oYAYXw z2VCvTS}uDEa4pD#&ktq>_i*s}@gXX4v0pYO@h$@*pN)1;*^UY{{6^+l#D^sFznnc*6@i=`gj@^=E z9hUh-X!v{(H8F_zyx*5aOM*`sX^KVZ76|3b*9{o`8rnYvqv|ylX^L0tDE+p(4;4V^ zH=GS?KivIJ0in z5V^xE1{9IoLd8=1f~FujYNe7OQto7rtqr>!FcTp21a^6^0h33d52RpHy+)X%Z9~}W zbx^K$_oM=#Jkr^`22ef;g!uqv=1%s~9P!QlwsxodaA%FiPWwl_@bgMI!7mdW1T58v1S0wQ?~K?LhPzHC<#uqv5O+*l+# z0)@K_0R0l$Jq4iZH3H~%I5$U!=GWc*rT{d*;%rOk<=L%N{@8M&9`cJybNnLh!Nv@Ulu9}9#06n;<#$BYr#gm z%>c$}w0sH})oTRC?dhdD6`$qqIt8fs3}<^9sQ3a9=7WldX7#k0+DeDSP0q@UA@O#! zzKXB<^!Y%9hl6yqJEQhQhnCMuUjLxBIe8Nl^Gyi9&VbaSJ4>w;Ry- zIrM}SG^*DKjZ3uM&vit8+1;fIAo2^&b~YgLyCBR5B3ET1QZ-8XI@q6aR%#5Dzd|oi zQTfTdG9@Y>B@y%Y6ARqLq zbRetO2*^7labOowIx#}$@nI;(&7TVJ_z-xTw~qW#Aj}7kS7!5A(O&5y*8`n(8pHAF z=maW`AD>sI#PQ=ugguT=JVV(K8|QU8oMWQXw~!QFj)wGFWS zCJ6HZ+cnv+)ht;);C{kctuf&K4E;a_?!V@hDS`VD5@8SA18F^f`e}GNSTpa|0QyI) z-yj0?_rB~@5`bQm08pGuOdAw9FjPEa!07&4(lM%DBaH4QF)BpsBt00Vxp`Otk{$?e z^Ohi33Br7k^cZ`RhB_==^tzw3W@9it1zkaf={|X7N|^3RBJ5#$a4JlN>LVlnHV zJs)f7=J4~Q(|@inYn244>!V0jPldJV{8RX&K4gIE4d@jqv8j5Ept?JUsw!Kj>PB}b zD?rtrv*iu(=|6xlA5=ZolB${#ONZ5tvua~leI@#Wiq%$LnG&lF5@C;3zcPLFE1 z{2kVO5OMkcd|9w0xKyTNO|@F#Zr&C#sd~EsppUyP9iZwp0_c*eDpe=x0Vv4Lr3#RA zKX{wB-u-eA=7XfGGUHH9eWgR{-p)#mA$2W!fr`{U^2(G*-IYYxBlRfda2BgWRCKJm zKdzzm9MphYJD4Ax{-^q~Wa-e#b`-Z>e6QVZKHz(?yE7F4=*OHb zYyjvNL6{GKW=@z=l~+1^e#lv+F?{|IeL%(M!+B*&d_F`X?D2WXnbbtYc{p?|hB%vm zpST_wbFz9u1LtqCo`VR^U;DCGNx&()_Ppugu%pe6dD`s;c<%Y?ba<-QMEptgW`)r4 zxi1QGbEyLO+#BBJt!w`T5at7)nO%F$DCL^~wY#%YV*q_3dVvbiUGmD509`^N>;Zaa z2vFWwbcEvJh;_I!4Tmnm88mcS2b^mPr&qzzn{dh;?6ueEM+oajq=w*is42JhGCxuP zXZW&sNf3N?IPQ;Ugvld;vcp&XeglLX=nE+kta^sVwO0lQctQ{J)uGLcC6{Swo$_f2?>+88vv}eHRBj^n&7*($kMwdkjqI2}4?v7P}qaSj%wt=Ic1z|oo znmM6As=(5L^aIXnje+$0=m#oD-6N#`#>&eRTrAku}$HBr$cwIQk z6B7pT|K(w{iL@;!O9Sxfs2jINGCz_7r~0ySNdO#44%8amdbQu^v@P))-fw_!9ep7s zs#UKk$$?O;j^3ubR~10-n6s%3L2Vy|`9QB-azN^@bl|NzYc&SmThI+u@NUQ}Q-b$e z5@8SC!xiv`+7>6l!(rUX2?FbpO@reU&e}l?0}818NF@@SB@C^Qt{O@FbBsJV)IIES2}nOJ8Lus&*z{E zsPMcduS^NgD@lYkJjd@9o_zhj3l<#l>@7EKS>C*A$$|y)LKpspzxLt3*KTQUWdGUB z{&OSy&okM7?p(HDLGv#7KfJ0g}=q zxMjDP-E3gg`#@R3vOiv`S+=QOBStM&3ZO&k5ftP0xhnvv_d8qI0I5%aFdvZ0oH?&5 zuXL1pud_;Hl=>F>fJ&)%<&`NL;sYeYno=|SD@jG(P*Quv8TV@8+<#%+-28ifgmXXf zWuub7@>G4QW~G5@O~i7 z2PTiOnwyDsE8pz+A!migAh`-XK!xOvd1XpSZbu^QA-SIlNo*jgh&0}*0rF(5mz!tL z4?wQ;)6`N(&oI0E>kx zV~vgV#A!h8k83D>1!`arQTkF}mMjTM<;qM7_a+)OHn?UtVl8erAobno2`NZbuMtw0 zXob+R`jERz6~O9yo$YME>c>Es53FXc%+%FaI-*?={P)OooC zrMP)g0bUNl+r0JD_Xc4;cxg9a&2(2fSnlAg(HJa`Ko?M9xouvV5|#@{L?$e6+kU|| z3-Etpj3rEK27Cs3(CWat_2e0nBCVNnuSU!#VH3C28ZncN0Wq06Gy`{MDge#voGok!GOq_=KA>qg2E>(DI%;0!tkM`Y zZ$ckXsd;%`nUb29kcdobN?4v&>B54Y&IESYv6(=6lcq>wUp}&{$NuJfHCVm`>o$n6 ze3363l?0ZN@RBXzvg?%7y#`c1fIg6dO7)r&UXniT zc*%5EI#Ax{tkD=Kzl1KJg7TicG9@VQBoX$YJVNPZp*za~eSZ9qT-Z z0R6r%+m#id-G=QTQLhj88UVW8>(T+LUef>yB6Wc7gi_o*sQ^HCfVX+;pYIOB<`ST& zyV3!4p|eI~06i34Kn3Vy#T((D9RYf@VVsB>LdHN*j^{O?9*;V3YXP)@X-I)q7^(toz8-mg?5axra zcHMWbywXASGG~>>pgN5{ph9(hUYW8XUPvPBqf(K-#4bB;D5;TX#=ROWUx;-ZL|ES9 z%SI)ErM^*I&vm;^I(XjgtkxJjKZkyx!t?EUWlDIyg+$oHQ{C?khKIr};xGpqZX8FGnj(o%mj^Yh zeh+Ish*AtNKQ9N@KL#fKz?K0M-Tnlnz$)8iAEIic$3QQCpS-wDOdA`p^z{+QTEAsdg>sHefEX)i_j7f5?E_OVBG) z;#l<>;db|g0_nuP(%s1l5ce`?%Nt_ZDhTsI+{{zrlayFG=w9rs+E_e0g}$Id_kz4K zWkY>BiLi(6s&MlS(mKw>$7%UWd*Xxp6ZPJBB&2nGR)g*HvF>h>$NYfpb9~vbB(S|e zTkolIbJ`uXrW54vM2|=Tt$K|>yK9sYk>lj=b$71}5GWYrtqG+yso&N$^a8=}@fqZg#WRJ}$pr5UGOrXH%GKP18)pl4xffCZ?dFs{34yipy8 z1)^0rs4-}?E7eZB)}SrH;bISNg_t$`tyh7Q=lb2LdIYbYWNPqT<=$TAM^w84D(05D z<9-yic}d`Vc_gYO_zq8Y>$OHT=(}N9K4t*&h3FY6Kvu62koRQKZKO~-nlE*CwE}3q z*xCLDG!KI?A80<_F2aqfv2>6=-&wgaNZ)|ophEiGyfS5jeHw|dhxD~RAYGa2;fbL^ zr4>w!)Pl0fx80ordt%cnqF zy++X9zK+s#NZ;k|It3v8HfMVpApI^7<^$4)Ww2^g)t4L9L}PKQ5_GuLA77+HhTR=HG)>FCp18Q4eL3Gfc&yAdzA!` z%HbcICtIBwoWz|yTE_1*VDkUa{wbJLuMs8})ww{Olz(yep#r4*qqAWRq}=fhen^>p z_=nJ3>0tRgXMM(C`8d#`2Fw4KSEhvJf0GD%SgtvXX_!!n174Lzn~tjQVLG7=lggpR z;PpzGPJq#*VFm=G}SQ3a{9Y&dWz`-y--=I1@JRY=0vE!c2 z)RYGehhA2Wa$8Wjd9P@~nS=9MV{d?tyo2k`MUPzH3ZU}IWEt*NsSx^gVztDGtVLnY#5kx2ZSQ-%iP zn@|^n2;&=l*|h912B(3pjm>nhNE;Uq8esg-=p89AR<9+(Sjg95{8o2|D*)p+J9~iv z#`lA;tpVduk)?z28=Tb}gYieuA5<8>F0V`p7PwIAHcE2_WT6TGr5dlaNpv?glV%#TJyxBL-kT4Lu?SnCdkG z=B}~A=-@oh-MtEc^BiZJ8^C!v2=ft{X3nIItFUwcUFWRW7(g5732IDwMqZf`pidzY z_5i(d9pv0#(-&+yun8eH9XKigN4D5MM(X`dbvQJDrq|LrZg98&+nsPC*xZjp z&=*p$tzIK+FV)5B%zl%*R~2CP8=OsTVD>#A%m=eq+og7eS<1Kc;dW=O#(@0@x`7Jp z*W{HcfxU%9*aQ1uWl?W*zl6lV*X98Yp`XKA4kAK7?aNvvL8#nzMrW7BlHJGy28jMQ zdP53C)oTRNWf8eLMgP~`u?kT1x6al!Q1men=7XY{+s;H4Sh~3PSI%mUVRYAjj$riX zd1XqB{**-6WAq3Gqv0k9;pQ_G<0jJ7;W-Ve2VtED5vm73#R?`BnC(geRk@0cnqn2^ zrP$1TRc6NQ zF^JaD2h>>f)Vwk!L{B0S_7FWr&Aw{;ar0&anSzO+mrm0>0yL~np%w-at6g8#ED2WS z$%A3T>~yGW~SVu!Et}A%OJvWU#M8YZalL| zN#H2=j%B>-bh@=h8&>VvCP%CC2?Hjdg8q<#N%b0Ga+hdPbXK0_?pp;|dAhT~4XnHX zg!y1)=H9U}4VDg=r#S012Fw5*L5)36%qvp@^GPJa9++CsTxknp@L$egO_^_%M}UUf z8&C^_h}yOo@{QoX(pjf5w7v(OKt=1z^2(HGogoqSXgy6FVh9JFwd#G! zj-uPb*)e>H4Q$B;6RO5&(v@gVe9{%(7@1n-L7oQQM^Q(E2;PtSvUN$o8<|2?o$783 z`cpQ09x_Ub`wj5@Df&VReAR0NUp9p*EQXHXU%Go$0sQ{V+0+L7{vL$+z^~mDDyhHH z#kN0j)@lsEJH0sq;Qz=gQv&$kNQ6Cr_dl~SQE&Geop!4ZgHy!bQ0o!6X56cR^Kn?W zK?LVsP_cr^0cN9;fHRUgt<}f6b=!%j>}CTpPeLz9L8f|5$(%BoIxkOiccucoJjL0< z240>E!hG=3E_2G2S2|d(byjH%me-;WsL|>Pd1Xpi9!DbVVR^tAa1uzLLeX};F*ZKZ zfxcZ@3N`Cy4VM#GyFtWd)0dS>g3HL*{U~gH*2WK~-AsLPy8)RmM^8vWrh1K#$;R%5 zR2`bPxw}*WXui_f&IV|{5rp}Grrp?msJ_x+^QF#8jbZbh=mjb^Uz}H_#O4b~ggrJ7 zQ^)Rwwng%kcEU>N$=g1pVe}(d+d;(W2Yp$sBp5wS&y$XJg9+Q9lkPPD^hf9eDF9Wk z5kQBi_fH~qdj6NYCl#RQPn^wbpy&SsVLs@&!YV_`bXPib{?J*YF?4Q!M+BWe$SYH# z^SdO%9-VvOSUqbUX>n%qEgBa0#F`8u7I%Y+73_>Nib+JMNXf-oP5w98^j{gn=rPjuF543k%)8>kWHv3X@m zOddrd>@m3yVlq^7YL`6yHVu~ztkEFia@3b)N`lKs?s6i4b@Q7oyW;F-11M+E3sOL- zUQ=?HOr}oBSGYS<0ZP8q*}?`&z7B->prl>yk}I!th@;e+W3N3hyGqM`E*Y51p-T!04|*m=BEFt(R96SUQw`-&w6Oly38u2ui<` zSEfYiH%Wv&N|&oB1%1;mB&Xg{i9j)Rd|7(;8?W!uk&)Xy5D0jwJzYWZ+4- zhV8&pc)tO$-$h?YL9BX>5X+{|hhlZU{=2(Z72xalolR}v>(4=$55C$BJW2hP4zAyJ z)@lr{e?d1;;rfldG9_HUN+RsxdXxg!P}>rwm7v<~!0f;VtZbrV*CR9P-5=NRy5y|` ziq|2iSi#f)vt&u|8X2f+!kl(e}|8TV?i z46ts47>i!#%SI)EWn^yXWGjFp8|~)T)4c{%J`a5$1(oVGLM59UN+NYqzR=y13Xt*^ zXY(3J`6>|RgOql2Lz(VM2g>I-YcvMRx1tNEpu9P+ObN(5ImwihD*+@i68`j$P_Sww_ z%zhKSAO*APH6=&)t~{aQ55I7B+D9KS7ue&e}z!TzRDf?bn@E8UyVg&<9k| zekHF=3ED4`2z$`3QX^8{QuwT?aGR2}2-Wdf4W>K2Z9rkV15~VF_nz6XBruKa`ZU>T zO^L4@Uf zzHC$ySVlG(>0Mvny1(5l5XFD5^`5z$6 z2Quw8841-_I%s~`S*bB-{x5og3e7L%l_{b5SrTCn&Bi)h(Khw)!gCu|*8^xVG1`DUYB1I6593Jvusr{+6^5$ta4Wjw=p4RRgZcJv zA5fStgo+hR4lv&-3CtsNSTSQ%-#i?Q+8?E-K4O6Sa`cE4sH@iq>TC|HDp?2nDtGrP z0QMEmHaCF%1Q6x}>~?clH5HZ)?uR)mHU{^z(Gyg-ACgz5gnNZV*u(uSb(+IzQ=$>K zVS04G)3wY?M4mFB`I+b!DQH%&5t{eFe%^3IxK8J1yZc!IIzP+V_y#(^7=-zt^KsSA z#AMJL4#s+`YmHzGb`a~WUI!EF&Sd{sov6jq0s2N~-Npd@dUOUA(3|qglz{G&2zx-U zO9Avq9ro|9Q+Vx8XkS7#MBj_r8bn0j?aS&VLG(q5h~^GuHyw;Kls#j>^B2)4Qt+%^ zBRub>f`y6J;rums4=VuYFFTvv0OucoFduL}#s$t?howXF=bbehL-TLY6;w2TCa+A1 z=1-D{K}7R5cMd3;|LV)?B|-C*iD<6XdvMfwEr1=;o$xH5Ga&j2=o=}BR<9AF_fiop z#p{?p!rj{nVEQn4n_E`PfazmFm=8=p(FN0r9!rPngPpY-L-kqc4l1e-%qvr(`tc;f z9@U;w5~7_@Tks@Pi=i(?T@7LkeX%c_mju+2fkcdl8@K}8p3iu@0n3}w6H>6OUL#jz z1Bs##I*o5~cc}t2zR}sv1{&WA!hF!!ZXhvKU+Eyc(OIc62>&B`fePVXUYQcYlO)0( z!h7T7G@)g=ls7W(BK0l}ly_l$1`(8R^JSNkfbs+_qO}C135=gb%cp=*y+&Z%9^=)X z4#Y3HyG{Whe%{%h1|WV1g!usCp*G=ZuY6~-e%e`?F%bR|t*?Uc6M1Dy5dJHPum|BG zXTuORoDyH@01YXHOKyrt#1XfI4P&jI&;a=ttmhyC@{hjkRT4nz`^CbrOCR>y9>Ezk zRi9eqMY%av0el_|Z}Zl>UjxE?;L~cqSXF_gizp9p zR%;BTr=cIHAl)yoObOC`NQ6B|S3I@eufV8s5B?Ltw1lwf07)lc!WkZYow#GH%YzzL zFTz^8d4F^Bk_8K{-O{{~{pXqVpQt)#ZdfzknW(SnPPO4&`!$<7-Rl)EQ~#`Ws=YPA zWMj=(9qxp$NKLt#JYd`H_17MK^f6Cbdr~mf@ARf7CW7wtDO)t_o$t$fCBf=>dfX|o zY8!$oPZ+@3M}J6(M%8Ns)?Mf`uL#!3I_>UT1<1P5+2Dr2^tm9+2U(A@3QScEmJY35 zXT3&Q(7X*DK}BmPuS|*77KyM&>(L5YLzISqrNddnpUJHw-S`~OYoL8A>R=E-`(|IZ zED31WM?l+Y50AiMzO|s+u+4||hP8(bxcwx0MG9`!YlPd~8E!S%I&nYe?qmgs`)Oy( z8;JW25axrp$J!BBS7I5Ud)v|l+bqEUX{7wPvyNl*{V#M1mA)U#D^t?G}!I2=$2XC#`KIkee18p@R?(3}B7-UaIPf#Jd zcV3wivU`vSd&nLhhb*RFTb=e8OjZ}LosI;y)=z0*JrC>a=K1p@Z*Yz;yOjj2`gRJv z;Z5Upm}YI6ilv(kFr7p%NC{unYXno;P?i@!$LN&1GZnyS*V)2`u=QpT<^!Wv+bIa; zl@6e7XO+eP`U>;`6`!_P9p39dKTsgSbz$P5h|O;8`W`G8&-wMFafL*t9IJ8 z2CW3!4P*)=AR%3FwI$dp9C5GkA27vE#PddQWYdoTsGIeb4k7C@MsQ|Y3 zg|~T2OdJlvd|*2}qE?hwI#}=JtkM{)pNu}B!g}|-G9|2cArbblK71W0nI?fzGpW=X z-8zAm2HeulzqNi!1L)aUUpJqhA1R4-zU)>KfSxL&V%Sk>xY@JX0ax5=fM*LmASL=$ zuMs?V!tI>sYM`fwSqX&=@#hf*zoPb1bh+ z3Ct|M^~2~5DQH!%5n7jpXk`V_0sE-CV-*1G zN1d&00PGh)m=C~a&Txz>uymOHptD+InEiM30~NC$$SYG~_I)J69<#?eVU~GwBu9`> zgofJRpe6@; zsQ_E|g133=_a6ene6Th9z_HLAMI0{iJUV3Uw)r_-%9+Aw0$i@L>bsIIySXkU{0QER}LP{j8UL#O1Ay5mc zI;$t#U8(@9o6dGN#KD_Dm=9KGZ)Bj_uza{4byjK&*DpjbP;p(&D^ucn1BtN5^@%ZD z6Q|is2t={mad3(+ zE0+_olP#NtXV^W3I}M1fq5V_hSoNBMSP-Zqw&CtW1rR&xY*<4a+XG>9hgj5H=@2{O ztj`!?pN|fpB6c{hOo`ZQNW^R-_QI!M=?}3|n18g5AiF*kq?QJqEK2Ei(w>c0-K2^L^>)Rj(0x*^ro! zs>63z6y)Yo1>n0B-sUZrupbEX0bjczu~2=bi*|>cl^VnED)a&szdPoYDe=1AX~>NSGuG9J&0g6LSSyE|3^td2Na+Yr-sK$s7#+ReC?hACfMd!4gdV_!&oJz5?qzh(LX*FT0flsAubQ2(THt z%&iUYH{kT$=nE-0Rj(0Fmxee^m}C2pyH^#U>3f|`ZJ_DLK$s7juC|(05SpcYFn!Qj zt1*~<4c$P6>HT?SN|?TbMA*ah00~o^W5}iygldljrdc;@==?F(ZV=J=Ltj=Z2|6Q7 z5_;nStPQkV_(k^`kh$pobY!a62$^h20*Tav&m}0u&65h?atPk$txvx<2=jqUyCn%s zcctsl@8GP_7%GoI7f?~TZC;rYl?zCOJt~(=R0eEG0?(&Tb{iA0tJlVQg$xjZru}0Y zKA(&=c60jq(UpIqFUyq#pOM+Cy?)CUp8b{qo!6lKQ=(1v8ljWTUWHfd;0)Y-r~o*x zb2h9Y&b%Ik`2eTg>{ZlU>9Bc~vp!?kya^pZ#pdOCWlC&bLL%(3nQt!C`b(bfZ`5B3 z(-8X-)XpFx_C>y|ToS}yt#|IlT9RQ{STf9(nAnA@@dph6egM5A1;FYx0`T6{-H*%H zdHf!ChbzG22c5mZz~c{rFdsZV!K&Y%pvcnU`95d$#_;?l^amBs_vDo+@q8zVu*dV- zSX8SnE`aR~`9fP^5?WYGjV==B77?Uj`QK41gNWtt`?79Huq-EIja^@#9!3wTZ_W;W zm75Lt-R^;O{HoUozl#-_I&ybHF>cOO0J%HB+q~rtb_ZcTkefLfOI2R!FuTxMr7_GN ziawxX_Oap(@z0K!z2V||f2s>pW?=eNgZ3|k0|#MS!=PW82qt@#6=QWc><}hoRV&bz zdMj`emfSZS_Is{2da%1}rQe~w5b++inO7b5Ht2Tiy-D0!9CmCHoDS){yh%;uz>EUu z&E|MiSxU2M-gel61xGx4%S~IBH?M-D8)tTj7JiF}o9N9;^{VMFI@$1|pxFiS_?kXD zC~_nFkKy#lEl{*(8*Xc24W>p|-B0(RP3;q9Qcn&ze{(4mcoIsz)z7>b|R^U9Qsa)dE3Dn%YU43Tb+;?w1z2s2zxIL&cCv8zrgXp4P<`g#9!;n!X?43oZcq9WO$?w2clSvD@GnLfcJyw4JqJNuMv2cMda$_{g}IB z6(H}2ovm#k@8>|65AtSCZ;L9hbm)E9S*90bCAU^jEIhOWNSL3bBtrN*FpEP8U1U@aEiAZa5{>fkP^qL*CIGYsX9)t zcXz1*I30JkvmuI|0%3EDQ&L~)a9VR#Y7D2hq8F$*4f4vAIK7TU*yHqK!YLlkgDE%2 zR4XY0YCHiPK>;}f@o`&O;Yoz>bRUu27I#FjI~y<1@cbIo;vnLAi!W~|37)SE=Y|MZ z8AcDI(a1*CW^?uA=M2DpKl(-ru+?h>?7fo3>*W5BySEh}_ruOEU?BIWK$s75KQU`! zNQxdyhw%3~Yd41Q@1Q%V2!BsrnG)d-k_dZ*pAaHkj3_2jJcwk2Bb?4HMT7CrQ6GZ{ zH(yEKFbiPfRIJ4$l%sshm61>WW@`>;O< z^8sD^;Wnnf(!q9TXRXFyy9V7rh3!sxWlGrYKqBm6dwdAnc)ZLS5CqH_sLd%u1MR7( z3%4dQKavtB`LbzAKznIC>Low1oer&Ykv(OA?g;utO2n&PBk1mtBwR=Dn7f}9KyS_2 z_=b4*1`y^0y~kO{yNY4Uw@77!vu<3Vp2zuGnlVRokhwC_dxr+`+yMxb3JUaiCR1MWUl0Iu(I zHmm`zkAg5CaLrux7iz9_5$(I3^%(=|H_!o8puRJ&ObOKcNQ6C5S6>FZoQ?7s&Y0?@ z-6g7>c0Xv)Ea=`OOlcm4>CV`8B3T31hc$%$C)R!t5&9!vRxBk#Y1}n)86UP=ywiZt zp?9StRJ|qupl{=py z$#9(0X8p3f*8tK7(FamMs$L_I4oQ(ZM*qd#lL}z;-OlDUVDuv(%m+p@cRo{eS2~D3 z;H=RYM8ASAphEQCyfP(3?7T79!+_EX+#z~&C`PRFKtjbT%Y)Uml3rMP)g0ciE0h|M03dK_*)*e?s1x z(Y6D$;QqM0BBIJE387>!nYp=bXs6z7pwzYKTq(hwdX4pxRiQekMo`Y2acbDv$cFH) z1;TuADzlfYX|Hsoy4qQ%F;YDXoj@hk6?tXK#&{`-un+KR8Jojkt`Q7D^QmcL8s4C2 zb1=RojlO0|#E7+eyAQ)W^=>Z`AkNJzwE**_sA;$6Hb0V_FZSgzCBe5`!3txA&?~p@ znrpWk0RB$&gcN|Q*9hQCG^skl-|OyD1tQINIosJl@DGD99|X@_!K$mTbO^uSS*bCE ze;K_%Mff}N%9IGdi$vHX{IIjBslY5zfnL7mijA|^Yczlqfw1jE8b*JJwH-u^{=k>j zN`lc-!?B`9Z@Aj(^uP%+N7%z#4fx#tJ?Z#VuMs|X3MK0396}*(Zd3rBJHp$%b<+0$ zVLs4#MAi_IR9)$?xvjH8W7s?lJwV0gg1j;%Hvi&?%>yq>nx_P*P1ar_yv)2?1LYI3 zer_H}Aj}6(kF|(EV@fO?R_}3EZ49fQM_*8}dS_ml602_|5%yTs zr*5`sW;{+*;=8AaRuy5Z^-~&PzmN4DM8JN>m)%MNSh>&$c{VZGx1=iGX+Y^V?@dRk zdW}%JNW5C-=ME^t&4&u`b6a?uw;ud1Aj}6pGZz|#nkyYNAIsZN!rkhd2crY1(EM{= znG%|RAQAS^JRmI=rM41bW!B9aB9C!*@A=VvU*p`8xbsG>R1!pLF(@vRaE?Kv4;jFD zDSAap460rWW6-Ef-I)p?^d4sm8xZTy4u~_=SS3eBvi~T zHO74)YOj(2REs)qm>uK}cQMIT53sd|k-IwVEv z9KGA!lL~P3?at;kaP-|E%m+s^m$)msD;-AfaMoxHqaQ~XP%-+?d1XqBzMe$bW3-Zp zQ5byZZ6*?YX5X&i^6OZ`LB!=(d|9fDxP+bStpiVfuK|~TKp#lKrFt#IB^RmV@~`fm zQ~;NMayG94my6yvceoU~D;+L>@2t@nF82jJYPkHLyfP&&e?ubdad}iCE@M$Am?3D7 zwd&Ex)BSM`rz=ncgNW0^p<)F)^30MY!KpTRX=Bi8*o__0od%SihxSiFsd|l2ij$W} zpbpZD-F>J4NH1_UtO2CgfG{6%r_JOgrn%B#^jv3s#xUAO2T-HVr{$F?F?tq>u*YcX zd?ZqPB<9SzSwrNruy%up$Y=PnQb`c0ORFj)N-wsI!I>OFZ$t01s?o*tJZJD_P~Quwt5X#Fc{Mhvv-&j?y~ zQqZbZii7Jv%~dS}xIShq{{(QI^QnBm^@tSFNns%sZ;k#@W9Ek7bqTPP!RsGwX)1XA zJ&{NcuTMT#i|fC-ekbcQ;da~fSJz*VtE*(`**`k;#%P>&=ZY$8G=X` zg|Azn$Jx?U5V@L2q=(3-uO1qrn>lb;qT}+MnmBohmg1dS9gfm#h|7??bMxAb2J8@| z-vTrK%+wgDJ{S2j6G3%DUUDu7sGjD7YSkI9I)mUthrRdUOW)WXV1sV}*j}^ctSx5Y zKMz@dx-C17)_of)Mhxoe&j@w53zonU_+92omH~m^ZY=o(1pXip%L9Q|bVJ|}2MdSB zZ!zX;2#s$;MbOdsjkYuu8ec;s(xdS~YwBa;?N*r(`Bbkjm1JLvzeCC3J%+G%W1D9p z!hSt3*%bs~)dthCas$pR!7#UGcW~7*Cm6ARLM@1aQ~epi=^~9LN7BEUD^ms}ebiXO z2}nBY)A=B2*A1pR^9l!|j~KHw1ftsmBN>SP&X%SE(O(mZ^dNf3Y1l|;9?V2g-5VN~(H9_OSrAZtif^{o>Wwj{ z+8s|tz62;e9%UZ`rTR01(s_a$N70kbwI>6Lo@gx61Qb0Rh~;6AKDnDcD*0A809|9u z%@BYNqxf|z^cl7^6@acH66pbS-!)Ek5cXY5JJbQtbO2CkYoTC$05Q|Nz##HcY~@UZ z$Yx&BDhNcLq9C$8Hc)Q#*N5qhx)io&jlYlpnr}jFhyhLg8G+{F09}rr*P1I<2K0Q3 zv9uG=^Zh_95A^Koik@6B#an%PgE3n}F#2iK106;uZD}ePeJznl52H_B1E)&1Xeuvs z7B4|Ydo$@8y0kAbIQ<&7b|%8<9eGKuz;K#!Dz9LVUPyq`-=j9fz^VQ$2&Y7s!|9*R z6)OXrK4L8G1UUUS5SwN=6$~t#Rr*_Fwuazz+s_2x^jEet6`VdqBr?LO=sfYadPc%& z#7hiL_rliBL^$0Y8kTVaFQirwIDJ-xb?UEUc3s+6i0ZwQ0II7|Ct^TVe@39XeV8=I z)f3D$ECa5tF&29QuATwJ^1#(Y)0?TDc#3DKKHZqJA!r>yRnRTfr`gg}(E1c2ksexM z`6z6udR$MqGuhxh2Cxlm^GpQTdS0?C2*4iZ18jX@pu2k%G9^IhH7NBM2-Tkvgl-A6 zIA*@tTxl|3<{OM9nShz^24Z<&=6>BU6PZ>x`}1|itPFwVEhu{(B(JiisX+2oL?S&% zuHar#am*8}AkiVCmD&h=*@!cIym~a^etGlP8DxG1IWQ9;^NV>&vLKMD7M1G5!_9Il z1!_{h1mOHN%031-^=AZ}^F*;6JO5y=JsGg`x5gq(z|Ow|u{^M|>!On6TjAjIVPkHF z;B(=v0r-5-mZpNwpA(7n@VU#0b4X?nAD$%DSDVRhs z8?b9dxHEBczIS*@X<(w{3=N@C>Xe2m&Pcrm`69MD?n8s2ec=tv@4xULsK?K%S%XZ_KqV13Eu!tO5z>{1+gW2Ra{_5}kv5EF3id z!kD`uXrA}k05t#1mZpN{9}|i6(7Zx}X2ElX%fpTOnD5Fh)dySvMe9&bvKDAUjn>71!W%tulh6L(G|sVI6cN(dosZ3Q;kKM z0H@CcVtK%6SC6jbTjAjIC}VDh;PW{se%-P?+?J+-&qIhrdidP+Owk>1!E4BAIn7q1 zJ=khDg7H)d`4}L&*ru5Xh$DH)rXYa$RArBn2BbJ6RdmIn1W0@pNb{F!8NGEDuaPu&aqFBv!m#0qEDtp7I-Qn$D;yji zX3WhH9G;8f*Dc2twlozSE+-P{;qX9ZIm(Wa#&Asi76Z#+Z0}42%fYh(vl&-R&&cfsGcX=rgcA-#Z36Fab}>$e{Dn z*s7Tbou9}{It77F&CVQk4n5+??#niCBpBpNfXN@D>|NH2a zkR@EfDGk>f;I14ScN&!@oRL4&Zr~nL*mv5jz@Km_Nvlz>mfB7H6;W067}(o10^v}t z(XjxiPHj;PmbblqhQjh9XjsPSztE6^z_R8Eg{`J37So%UEdi7dLCME}vi?kZLXjHB z}>!f1v3>6QmH^ zsFt06BwqK*5@N*l_R zk5*`DhRBrGgu`sc-og5+PxPN;Qa@v4KeVp zKO=Zw9H6O$EXS5Q+34eB@ckV{&ES83bq$S87eX zZxHNlZ#@p2$aVM=A-7ttjkHDscxy|9LF>iHjhSfkUXYhm3kt0`r%DU0m^T4hUxYdk z1FiZq9a@njht`*wYf=VieX+546QK1fAU2KAO1vu^w7$@oqakR07pi~`t)e>6i5SRe4*675S(m=Vjp@Oa>7wI8?^dA}(c4fZXq*7Q{fV{!IFgRRuWa-fyl<88G*I#u84z+y{YJ z9+=zRcdRk5aG?8bW0r1=t@(R{Jz*rz*B&OToV@R;AZUR zcwP8`!F%kKMk<#A_C_4NWlMy?>%7m;P&osf?K!-;oRvZ2hp=Tc z5gI>`mxKxejZgQNnOdWj!S!&AdJ5Cg&zb;_-$V_Ffk*ur!Q)mwMGlbnnX6F-fc&P>E&zrj^pYBN zlL&-N%*g<9_7`R-K>jZ;`4j{omF)<(3%D4#(sgDnGbVuJ0Vw?#aMYg(+fmZv(74oG zfighjfl!*6%On9B4+mm-Kx0?i(PLcUfN?)#c7}lQ1eCuHj3rx|3K;h!66t~QbpPG} zxOIh2F~wc2w6V!)fp3yd?khFQCFK3snFxE(pP9jZL%{rI)B+utTedV6FkeC>(gX9e z@&jg}=z*2|DWK25`3B_SOa$lm<)sS+0q0dZI9Dq*Sf@;b%ak(#lJ7$K$3U|Fj39Xd zKr#{JX#6d69m;^l_ZSN{0gZnI#PUGno)l;-I9E6e`Rm5~3<2>UPyuux{;Dla1;k$_ z66t~XBysK*tv8A8p}AK}PO~)bR2mfM)oeL<0T&p@W%w^nlo_no8xZvc$HE5#1ahRy zfcL-1vzZ9I|H@1D1p!`l01coY%)L^QMha%ylL2z~ zgVJ*INvr^3c|dO0185}Q3J17*8*?)RxW}USb->-jmZk#SU5P|`z}@RSI4h=1cuTRj z=wYapPCxeKC=Wxo%nTaO#MYT9x4UthS+g#hbe}7d=Tj17Tj!F#Q8>1{uhFi-9kzWN z>W%eUgrEL(s6N>2bH*!uBl5P}A?;}|Ud7mO#+tn+)Ei^Ri9dQ9&DP384mtGbl}~fp zt-4&|J7$te>GZs$R7hwX9!>|1!@~*C*hbmM*rWP01&zbQ92%c%u00u`af7i)6Rgpf z0I_Lf=nrh>*XB9R^%_Y=@44<%6kTExc_PKd(CRBtel zd@r_hCW7R3dC9AYAUR%5u_Fo$7s!_Yl6Ru)V?a`W=7S`V;~;srx%OlL$*&uWGyx>P z55%SmB$0201Ias#xfue<-=O$)ko=M@O$CylClcvFa^Ek0>#yBjk!1eeF42Iz3Pi!DtBmpc)O^l*8wx6p*~O8$f!VwI{@ zxYHDu`@!ES)Hkq%Wb`Hj(6!iZGtJ*TCgP{$CBK3Is0#Ze469Czz*&>2X5-^^kvRcG zFF`Gcu{QN*1fq+y3UC;`)LfY|z-ZH0!U-nl3~#pivW}wzRSS$UD)=S2&Qk(ONIpj)8qA(cEm@qoS0^{-Orr> zr(Z@rh=Ei68Nun+5)mR+-M?n8PZ{v^4r3uF;OTdOSRQz~EXAt3FOuR-Hs)psI#;6j zb?DsDmZpNvClQJC(76Zmfr=IMv(7#>%KMp|mBHf4*fKN4-aMx5C*~!gg23W=x~1tI z<<$>6)B43hG-*uE@M{U6Ifj}MV|(h)2sC#B+cQj^V`#%%)iPjc-B|t!M(Fc_SRNR9 zL<%D`f{lfP)b+;94MFOwQ5$qf9kr#YAhk>+(nD&Gwhz=}J8kw9T?(9}Vp%?5ho*mx zLG88J;+Y7wZ^=t?1%X;^iK*e#ns7tfSPCQ5%bEbGpGOUdfmHn&LF!g5k0OWBub8V* z1{nRKv1}7y^j;vA2aI-KV)9v6IOx3Hn4ux)d;m2-ht6AVX)5Ua6p=^|ojaWEvDn|$ z89>R%91IZujP00-fcQvW@+b%(s_RI6OzN+-$Hvp_Px916ypRBnJAEY{9Q9`ej*9~o z;SjkSk}^}Q3=p|9l$P6UeSaX92Sj$=gB)aF;ec`nW44BX@<`MJ9VoZ6rKx~&8zM2i zKzRbT!%Uwyk4gHPyyQ_3pw!mZJ={xma+AuO0FV{bf*9*je?|bg$nW3fAr6i;b7jf^ zj_ZvjoM1n01Y&uBWB0XnC6MCzGe?YB8Un^EQ3rHj9I~aUfYBim>4EW3G5K!799z>> z*rWtz1%+c)n&PAqh;?rdw%U#0NhCG|nEm-?lN&4R${>B{%1I;OD&S{~|Z zgMJn@A_ijhX9TfN($rQ^=0N)ebM?vqw6`0}JOOCG0mSkE+C#efJA?8p9^8J$n6V+a z{RwJ<4!57QrK#Zd<3wU}g4;hJ7iJ>d{x&aZ76fhs{?96$bdb{jiCGgY*eBf)53l+& z&HsrMIjk;0B4%oo0akZ_(sG;Jmw;Fvu$s>QNvtc}w0^NMLql+SC~ANXr(4_7RB*Z# zkw_1xdz_6U7j+HXWIyDzoH#o*IV-bBkHwam>GtL^(SLeg5-JEps>?md2t++db3(JH zGeZd=SwX_qK&n3@Al+Ig%Axc&bA8GHrJpetasrfo6^P{l zrCm4AGwu}*Og~}F(-4^6k4m6}>BnqoDlq*pkw_1wd!B>cgx1?-SJ95G3&3ZWybLgZ zgKe9MfcbDJQ zw?}$rdX@o57ei^e&D{3@VtD}R;oTgfkz6bspe{1zZ3s|%Q5keVU0_R70qR^LkseU@ zJ_oxI0jlanxa%|W`p&Mo8K@qE?K4yM&0{M6)V$g2lXPxD%GFq zpvsAJP#recvkag*Xe|5$>vSB5O(UoVxL7z)?KkFa2vq+Ml|cv93vFpCP(7bWqzBc# z;y{&dOb(c--7+&sy&79L6Cw3Ac}b}tka~W=PQ}=Y@16A3K0arwR?63ufN0=&O~_qMP8CB2)yck(+%b7P=9%7B%R+>ttF&=h`CjeCWI&H2VW4Z-G8R016~=h)Iz zu(<`1NDrI4pHo9F<4#jL49}_7;ifX`Gy%j+%*nuVCAP~r;P5khwTOm!sx@xngBN&3)&L|1L4pc41|xwcABaG=HW>=EH8N#1cb-pEaBk#hdB&~C?o*!`KT{3*0BDJ zfVdQ}hC>B$D8ATS7c)Td1;z@JU=NQ1u{@yo8HV<7n4^UQ~%&fPAS_tqA7?#Nl;!?6T|$ zP#&S-;)mwpB9=N)^8?JKp6%Ir{V9eAIh~AA_ zpo8f9ZD}eHeGidH52A;iE4zwtEMRwWMx08mDYn6i`$rG-PF@)tEsr??7q1ls2CzRt zKFmab{b646EC|4=Rak#zR-4}I02iAYv(p13u4bDqx9*XTX)A`NAWzYu=GwWVbor7{K2!NiZ zEL7tyuwJM2!n+cn^c>WO7&}#eMo_w4kTA#7=a}nO20T5_Sl|h!>JSji15a0UHB|$` zEZ!p6S;l+~S*w?#BIuxchAmCiIZq=J=|Oe>6CpgS-Y8*|76fJaOJ50yn(h?_r!T{n z&O|tUab6ND2%M^O0D~Bo!sQxzB>_;cM~#R9RQ(wN>XSm0Iih~ZT)i?N>IaNvo`9&I z1Y&t0YS(iB!z?VEo%%jw#)csEYp4l2q`uphrh?RW5{dMXdawqmW3Z2>GG5h}vl5Wi z=uHN&_hY+fBEWtxFZmS&V4oGVR|o6$#!#gO`@Yg6toBX<#Qq0$A_ijhX9Tg^OMK8s zbBvw+4Py<17i-e92GYp(K}hZEpnXjn!kfRI-~KsDq97;HB#b?`v*6f0F?rs=k36 zn4W4&Q-SG8L?S(y?tNTktXykW>NPkWu2~YMK*{HOz@yqVHv`fC!}iTY%k+hL$*CY9 zs;%`4NE|AUG|K4_RAf(p&-b7v#K5QijNo${X^#r396N6?SE&rx`95PgCt&BtfLI>b z*?p~Fmtpa|r`H)XH3XbrK`qdM^BuM{6>z?dNTdhO(wcg^Cf4<9<;uwDK)umSFhRR# zXV7^cws0mw=eP5cR6(Fq9Ty-`E9G$kdhP_^{0Hhm3~=ht2spRaiE`Zhuem;Dz|DUd z3poKd7u=N(ZgxE`fN`&I_U2>8JPpC-Zoo+fn}4yTsbKR@L?S(G9(+QjHdJz|RdGZB z+(=ccl?U;F_f{PuU`HyKmTS@q4cMMWZ!$1litV0>V0s`lEaPNe$gikiioqS}eWR2+ z0ZdOrJ%|BQ{TTyOBFe$^Omlt80H&uK3poKyF9c$F7@=vwRB*3wV0wx%PeWi@LnY8{ z&}Z7xRA72Mkw_1wrL#xNbZ9^`h@)aG3m|Cs>{1!wlo!FzKKYrhs?IRGi9hU*aE*NZX|7uI<3-}GwwS;wP&EpO*Bq% z>*-*<(I_{^>or)m9Vso9x2seJOOR5J??X0XK!b5paGL!Kc`A=!&=9Sxj&&8$87*{ETjeL zMU(EOBH1XC=ZfU{lt>ksgo?Q}_{GKgw+955c28m`8>y07ZGqAL-sjFGeWP%HPG6%9 zlaxl^hI(VYc50ITb*Mhr>~qE|eIsSai5FIBPkVdp4p7--@#ldOZ>L+r5NXt0A=aN!=@0Zu~M_bL*~z3_vkKBG5Eb?Hgp z`$FClm<*OTre3L|+zDgV{JZ1FD*YKV@QEl_@2!zeOfQNNMux#^D=5uu7MCzsEdgSA z3|46ke8IiKjaGAwc^Vq6dQb`U(Q39WP1PCyC*bWnF+Ius0e{dLNjFebhRU^8Ww=rX z7j)!ECAt|5NshO|SFJ!$8f^Y`8Vx6SJJ__9%0T>RUWTP~{3 zc-0xKz#j6arQ9avzmWju7oa}GOg!{w1m<4cg-@6R`Z{yn$^hsW84ElC&|M&w2cW0j za-ld_I8Z;|n6DvFe?BUL4(jLH(o~>+7LiDA1Rbjfvt0_#Z-C+9Mtw|yvxnh;>WzA3 z2$vNrt!BwzXY}V2!cfkGAcNu#a%m<)@fCSVyC6^;irE-*Ho_T_Mw>U(D+yqH6KX^Z z80*gnjJ=o*MVX`V$IR6$0~&wWSmp_6d>atU1C7(hY-lVj93063Jb86 znlZrouOtBMmiNR1tp1DxtWTK(>;fcard}BUb}p2boBv{aAU3T4t5{e#fZf8Fu_1un zA2mS-*#Bnlp#RDQu$7uEz;=0)0qo(}ZnGY+c{mdevDFDRKnnR41Ypk!2E}=koY8uH zD78O9e<=ZE&qJ+1Tg*p>PZY3>(2;`_lN*vzYvbfH=FBU22{S$ zSSb=v`O`ow4^+-1vf@RITyMW&7#dx48V$LFLN z5*q>xnty~`n2FH*gS@0!5NHl9v3cN{elxWHMgj!?5A`7ig7s$v!QK*^Png5*oO_LR zD+BCq0j1^UbJ!M$nSC}jN=HXsgZrrb=3I}CX5FiajHrHSWo>NWlSfK0)5PBABLJWlJ&j>=j z$YxOqj-SsqSE&s6d5*E16U^2DAeIMyrj2Zt>?<62KFgS?Av?8&TA+jHT3ec`L!Lq; z(u1em{w2&((Ou*&1=u8wwyKzml^ob?27hh9=w}SzbKrMp#J|8&NQvxO-N40-(-ajH zSWKI?QW=oH1o=G^E#epDr8flu^3cxV@p=Wq@6*n7DR%;lzYp~w2FCSg1mj+uH4)_~ z{y}qn%7Eh68w)uB#cu&(d7yaOox_5Ag#+>T81pm);$KB2&_VoNwlo!pznw^=2k|{M z3s`iO_;b>`QeQeuI1kCT|C8L4>X2|kwI%9YmX}^8ja4cGX8y-m&Iy>g5UQRBW~Q}#CHo2on*T6nY6vv$GuQLY!)b63G|bEyC#4^hR6(F~6)i{Y;zsTfR)cO7Hk4mUJS(Yz{;L9TMkeZ#aqZa&6uAd zm>fq1&|&gqTbio#ok%3o!{n1sYEg`9sSZl&djzPTNWdH`H%9|tnf4_HnU`a0XQH)v zSzb~r2xRiJ%~2Kl)qNtV!Bf4H0HfETPQ<{d{)}Lh&Nk=O;eh&na}CP?sP8crdjg<- z1c>DUsHx625Ad*X7U(;TIU9o3FQF>v(0Z*cO$DuQArk4Kb-8wdMDR`?|3V4RGzcK9 z;kyiIzk_X`i9q|!ykuAqpym5zd9O^lIUw*-0@OZ+S`h=a`ZI!B+AkZR&9V01=1P_U zYyV*^`2?(;_pN-eHr0OFAQKA*wtqEdZ3t|40fsWL{j)7i1-6e6iS%H5xCXX9xcX)b ztz7v($6&4<2?o7A$cdQgWu;P2WBGtPUI!Y zg23-NN${KUxXS?eCY^ivcGQa)=+&PQ^zIk|y@3NT-)*jE8G!el#==hk-VXt>Jb?Fb z3*en7o)`CR#=H%|?&nY$bl82fElmZxZy*xsVRvaH>>>$QYdG4A}Zt zV`(Q~>+EmmgRNbU8x1nBaMtXfjM*B3)g6JE3|9YOOH;w>Z;3>DSUoVf@hX)cA@y4f zQ1{37&O|`n2O5^qbs*$c5I{XC45%AM%Z-$~vB+wr{0VS+BI-g6oa)aAPPg^ZfXH$* zJ=I*RGN9>6#-dI@({q7X9+qlvYD-n{uW(>`yfIfpU^fc4R4V6AboaIpO*WB!I<`&Lv49kyR@OH;x2>xe{p z*j|?tY?sR}sRcCBq$SDoCYjkBt0M4hrI0p0IKn~ADn7=bGO(_V>AK}CNhH^E< zVPcpo0lptWxyQh_{*2&z4ie)~{TFk+$pF=VG8Se6RR0%<%_r|;o z!SZ(B3BdAiY-uW3ewaw4hvg&A!*1Z&6|iv^;&~mIgbr5gP1?wdJI>@4oZ-8R#98B( zG#G%EkQY+`pzfAe1(>`il$6nrAefv3qFIpmntuh)B4}BAz=T9+&S1UToIGW=RK=To zS__C)%sn>lwToxXa+2as7H{F*3p6K@P}F@-?)!nddp&%}TD`}w)g4!cltRgKE!+w9 z0eCCw`XTpaaB)=RgY@@Mxs!AqRZr(gvpby5uAkLvfQd5MIn?Y$#~B!yG%d{;8tTW; z`N_`FhNZ!a*zL<3Cp*WOzUo4WwZV!0F$bCo1Wa4nC_Bb2^-jl{>>OrR-N9Dy!D?N+&8$n+_8FV|5YR++vl?@lJIXij#XVf(%}CQNo# zTal<-T4`Bp$Y6bZ!dztSYL#>v=itU~i{ssWl{S>wP`O$Ld5f-SsA}?EuQxu;jNPc8 zDoDauVfgF7HbXF=_Xq3s23&s#P7)wsQ~#j~+>3}VJ7ZX&^2@a$V*sQV#a+av*h#O7 zTh2O$dP1*O%e9f#=w#<83rSZiHGm_lH|zCr<6c4a9jgq{6004L<*PP~lCjNJ@@cl5 zM$4|oO&HaHRW>yir{Y-kLM=SXsuybSLoYN0ZIp8}u(`4GbaVaGX#j#-u&^ndo0FY2 zHl+t0qo&3}xm_)Tv0!NPl{b!8>qBJ#q2tXejrh~=40-m{s8bzANo1v?#%@EP5cMJR z%ux8^&E`13ct2crTB#ck1cE{f`rZJTPR3n`zYaaXQ1|G4G%`{Ch9kKDE?&)LS#qTT zhN^ML7bWY%uc4(X2{hn}TJy16yxeYF>a^MosJso!h23Sx^5Lq}s+F5ial_dUReTuk z--SvW+AH*`*HJCi%$qkE8uwJRcKws-={8enABWf-XJ=N4V;S^Nxw5pn0Tzk(B@I7 z!Hf*vOs2= zlO(iTbZ${{bz-zU)IjYpwL`r3rG#yiqdDq~1ESi9x7n(i&r-0;9)|YAsal?s(r{QD zSzn&;o!5qJ^DH-SR5R?8{_EaoWT-R#`v^?N-O_)%O1>P!k&wOZ%fVRjd@|BaVrUoe z*F6m|RKZcFDIN0`FACNh&Xcf2ujlfzQQQp1Q~s3AyWY`g_88X8ORB5IaqE}0KUKx53Q zRfg-ZQN(o2hIi`_b6#sX1L#OF#8i0ulD0F1W4^hLHv1dpk#-fA*$jsvC>D$xQL4G1 zE_JGCo|p?tbP8S5484s|Z%Kpcn&CpI3kOykTlKIkS#<_0PR(|$YOLIVB_pzoCp(9m z&8ED`x8bl^YmW_-8~ycR>YwJul6qfO+i+P^y^m58>w|}wwVYOC4Y^ex9)|tr#h;!W zKkV{?O&Es#SiY}G6V$OKtr@FVh3#fIwuw@uxoTQ$dteB*GSK3Vq3$-@V`EMO zi~vL9sRi*Y>&rD42?bcp66#U9EjmOmB45C+DX8g5$EA;He!m2A7uiWhj#M>~%6JV_GAF?7s z6CeMWG-DsVsEIVFH8RHBz`f#@CT6=vFMB;;vU94LrP3ZB0ulBPm4}^nHON-5c(ak? z37?ai(g zgKF{IQ~?*PawC%_CWjPhI6FvHHZ3~uL@9a44PoIs)2+1>j0p3pY z#fUVAxle$Y1&|0m_8bd#dMu}1c3sF@U^g^-vE^ba zY=Iv5qCV#l=fqnAytbsd=w$aGMqLozMPbXcY%G98s^MW(Jy*UPjj z(=nOWWLlT$xJ)mRX+x$>nYLuwmg%K3-5}GAGM$j=b7lHGnLb~pm&x=6GJT;;FPG_y zWcq(HeX&emBGZ@3^kp)AxlCUn(<@|prA%Kb(~eAECDT{S^ffZQN~W)s>D4lQolGZX zdW}q9FVi>3^o=rolT6<%)3?a_tGJUs9-y_ra%Jh9Q zeZNevm+1{M{eVnADAOBd`XQO#B-5K^`eB)VM5Z5=>BnUHahcvC(@)6slQR93Og}Bt z&&c#vnSNHLx5@N&nSM^DpO@(uWco#!eo3ZZmg!eydWTHED$_e<`Zbw;U8diV>0L6t zTc-EO^j?{MQ>NdN>9=M29hrVtruWJ8doumLOn)HL`(^q=nf^$oKbGlFWcpK?{!FGn zm+1pC{e?^)l<7k<{iRGFmg%o#`fHi~My9`&>F;Fvdzt=0rjN+Fot!286Ot+QkVwr9y(XQ zm+2ld-BYG}$#id-mSnn*O!t-Pelp!(rU%IM$ud1qradw}NTy3=daz8F$#l6)dnqlu zuZIEXai*GR*R&@P}K&kF!8nW)ZQWn9Un7hLebOi`g`ZSCut= zbQh2KaM{c*2VV$wO8y0-?qbVSNPwq zgl|{4ucXfoe#*)DO6hs9%k=pbd@$Qx zG#`?=?j88oT=%Q==uZ0l8hpOOoe$65!?F2ahriu#;KyC~aW{V4uE8J}`$F}(KEBNsWcL998!u>VAvW2@9{qY}c$A9tT zfADdII}3h&g}acR?F2+IZu&Ry!dmyY@Ci!ydq^&ubRQAPpG5MgNd794U9m4Lfsdy9 znEK_4rrV;wdgz%;YX1UMy%&@2{8ME8w@CgA36wSqqProPEs{ARnJ1D3B3TFtG-nYe zz)ncqZQC#vFM0JSaIb82sXx2R-f} zf703U1n92EiSF9#M|gWDf6(b3(OK9b2dj~dRK2I-H-->#vG-9S^RioFuM?nqOqg(I zq;Ir7R_<%GVKYsmZ$rJYUONv||2kA3Z1$PWmpl&iHkvI!3aAI1DKOv;0v1LxI(^iA zXFhCT!J88%FPiLe>p-w`m{(fQL8WdN{guYbtL6eojVd)x{Bq_ZSSZF&xxl#0{izA*5@*7^%xHgU=Zf5h~v92UP{+Zes-abF2V zyB+w584iQTGQ0ru)9~hmi|f3kuRh)ajcdXxMyp=04myLQ<-Ri}KpM5a!+H-{(R;|@ zeH)KFysugr=o_b>@z=g)rBz-&?hLMXApTHlWgj@w9s1}UpIC|NN&BD0F@9s?PO}#? zh>zp&o2MXB6}JExT^(TT0+mM|*F&9F{mdBJ3b(L3L$5^!y*)icUz@~Gw~1Ato`ubM zcc3}5l@ht>J6FhTyDohdf)Aym*aTzcGxk%=qIl8X1NYnaB z_Yasg8cp3tu$Zf%Wd2S^$?@fr?w^oAT-TG>xe*B=0PBnv>U}X2J~00;kT(j}dfXqt zfTKO>?7OC3Lst}>FbQX-!xqYx1CcMKRvpgJ5lS35rYy}1Of%ogDwlZ(`93s&h!m;= z&lZAs6Kg97BEarve-+G`vq#}PPl5WS^2SONcs~rse)g_C{%kn(6VRen8K}UflZoEa zd86f;JU;Fu*l{nwY1u*&72Jbf8LYIVl<>GvkYf|i5TzrL+RZjxJ~B~iIqTsn65M}> z;w`NaG!|~CRI8<0y;WKdJ2#eBYRgKnxg9f9pgNR$SxFUHqU>^^5R_x#ID~h!@Kn2I zxjNhn2j!hTF<$ODsP_ao&|)pbDAGBmm9YwJukYi;yK|RvAX=!@f?E*^C>gALG=X@G1ra%k zmgqVMsw4U^)*5;)4Ys#!<{HX4mL!hQSjndMZq$6<2V(aI6a@|Zb7Ej{J-8qAQD^sk z_Q4JdD@w3KvotVKq75uyHH<#~tnT)kSZD78{oNem@S}MZZJ6`Zav`?jrm}a~I(=mpTN_B3ztM zw%twXF2ddc!_<3oau;o|4&!xD5D%@NOaXOZ}cb=4EY zZSKxudq+_Oi`^5j3Vt)D+)>oE3PG#J?Sl$>HcbAGqA->UCs7$n4LFH}{5%IyR0j+> zhcxC2TlNqpa3kl?;cJ}gAOuOaz##;4X9t`WaHDBu1Oh$8wR$+EAEC6|md^Neq{9lPSvWaq6l3L1$TF5i#U@+|>axdnA$ZYxPs^iFMzOt(PKvDB&47CZu1Q zF@ZZ@-fb=~{ha;<;}gr1_8v&wc@Vv^G+BHnl;=&!($2&hePzwy2IRB3X+Dgoe$8 zS+``$%6O){-nLpt_|>}FmPDUV0>Q}2yR%zF%jOAgy#Q#c$&pzfk$l_9uOJ@=I1IZ1 z#pxtE&pfOlJW0$c#sSfo$DlE}x!EEbqxHaDtOTLlY~1h>eNnTHVyPRr*|z;Yh?d-J zi}4$|+2~t$HycfqsW;K|j7^z?J*%^w?q(x1-!o4=7n`0#Ocb0*FQjs>Q3d#%-Q5>e zl}2FSy_Ocsy-iq1LTc?3UbXwduedhsRU{ck5eue zXKI_)tA?EdY|s7X!cdpPCaj&9%VcQiLOR35HvtKHgL!6&Jk0oh2J(se>Pq~^z#_&k zlC;>R{A;Vigr{^HmUsEbwD{N#^GY-Fvvu8umIjOV2qvK_9 zZ|<6dkW; z4gw~xnD~j+?XwnjJ3Y2;ogJF(@$ovGOW1^yby}CS>v-dg7m9HwtX%6=4jTSR3)$vc zwJjeiJWhmFYb!samq+NA_B&(QeHJV;=yBh&Q?dswYGt5gvQ~CV_GgQ_Wmhs$<*8M& z1)lxksZNg@M2Fc+mwFF{Uf~Z+p%(qX+}<@1-FzSqR(^1pnI{Y>Sv(v zqJFu`DHAcZ>AI_x5Gv;a&~(pPk^fp6+jOnWE82AZ6c7^k1b39F<*li)P1ha)SlE^> z47KUHfjw5(LISZbVqF;2DgCDFy;ctm!TxGIjRg0bdP`?=bE?0wRCJDRnVDj)u~5u} zcpbG?w)t4za=q*sj1wT9xb?CgH~oUy!ZRGafdwv?2&|du512rn&8m@k=B}2_&OySo zZ1ybt7Q1Zrzokn(`+Dip(#ld5Hk@Aoo3}5bC9~D^H?H4ert-!T*py9JMq9enHv#A^ zoL^o5I}?_bR@WvjT2_M48Q53tR3#C7jDI&KkQC`PzE9U8333-My-?0e&FMk6tcc=h zvMZ?4R{2U5w{H)Z;KWZ@H^SBE8i)t_R%4_+2D`tZY#+_zRsnn5;4BPvV?VA=vM}7Ni!) zlmagh&^jjSur9!*t$f|}I4M}9{mv@fNvLp)!y?IR*6;HO>!S-4T>eE;dIPIJV_A@}%D529YBsqv!_?kEP$AW_jJFxb4*l}u}y6I`0P^5fGGfX-pUq(h@lGKY{(hCdW zC`=Nnl@lh(Y6(oTps6-A4cnrv+R%j4#MqrKN!G5~(4;J{xuPSU$%Y$%h4d3>e{U&U z0rP)l8niB74N_C*i&$5TpE^T0bc-gqXT#oRm>7H8oN<0jTTT7W6gRgFS*Lp-$!_Gr z!^W2InqL^LebFzBT@(4TD{6YSM99BQ9WMQ(XUC`p^X5cnVePvz-}XfT$_}D^FQ@ip z0u;d_i_RZ4;gM`_*j7scO3jvp0u<~#xdF;{nE_?qnNFn%D{2f+ydRnVdDj?@R#S%2xnU0JW#kr@Ki<(*x9@=A7Y8wjscH z^NW0W69sO&3*P*Ucw?dP%32ca%?aG3$i8k{Ed_3O*pg7-hFv)~aN8vs+${K}wtw?g z4MH7%Q;>VjmE5a*%1S&bVC6bo))MZ0KTbwI87fy{F@rXjty@;&Kk_$xeUAg4up51+ zh~j(w#jP-&Y#+|=ml_O~+4qNlxiP^q`ZEHgtrY`cWsmi{1Cfr|#!5X(W2;jA#sf^N{Y+E)7#+>NPi8kNKfs?i7uB8p8tPjfHnBnt%s8<{a zm~;>+hm-uHvm$D%Eh+baw=lRS{t1|U)#~J6gQ>5Y55w_$xHAgJHP~=cgX0UEr4hJf zvVr%`Ep*zg`WT$<2e+nH;iSaXwG#V9<@5-{gc`hP=56Q6)?Nmwt}g}FY{H4sCno?QCc0L z7HoUhj7v8x*`PHERhgNzT&h;xT~xI5?&Y-F1lGrz{^m@MBZQ?p#V^d zxF!!a6%7v78+eK(=$k(PlKE2XsxkrpW$FdIJVw9)+kGmclV|@Z$LQo_Bs;>&PoScc z`SwxaKh*Y^#!@$kPTm!`A)=Fa!*3LwOy9akCsUXqMJKPqZLTcfFgPCaLjYk4xf~%o zbVUR^1P~{hGFS2;fK(A~{kv=Zt+>`v%1A;ET~9J%KKsGC?RrqS4H42 zT9h(AbEzNTW_B0%z;D_pW$Y9%Vjh;$*?&6+f=w@!-aXU z0}czjQbj61GfcQsnaYy@eW&TP#3~=5TyI9v%1a{-sP7HP(-TxwymACvl|woGwGk_$ zi|heIYr4af>tRLlTNI;#S;Caphl}gHyVzmM($SzIdxL?>x*wR$B=rZZ+rJ>ph3-tZ z4_1y~x_cQ`AvRcf-|m{|!CgdzviGve5{w<&60&$t#e|T4VN9AdXOc-^@>M_{M}mV2^XBc=rb+NdiP+HHAf`Yxu5L|u@wmIh7?KeYx!Qm) zJWiubQ(-7fACX&HO%b`G#@%CbyJu%AdZdMlri#kloD5AFmwOoF1qf*gkMi@E^rtp1 z_Y_u*%=1*W8}OM(n05mmhu`Aja_PDtI4Yq$LGiHQ+71NO;+|Qlj+G(sVONGL*9Jexec-Dtj~q;dpfaDqAF?E2AsbxB3t3;|*2A-Kj6h{eSxac-6n z?3={mDy5aNxa&k6*7082*@kJX$3wxPz%vGgFHER-%8>d#!LQ;7ZNyUO;YQbCx)T$0t+V$7T5B4WbUgJ{})# z%dGPFY^-zKna~^yMOHl@Yj4-{_wBB3p0)|?Nb>?~^!@oZItme_48KP*v|yw{1fd2w zA%d({3?e-4B6I(puOcY?_&dox%0|E^Q;Z)n)bTH(4pWOCJNzWRITmWK@B?dahadTd z&oWTWmo&qq{qtpH6edZ%*au27+wLCP)+baeCrpyn5}0H`Q*G-zpETY=?fU#fWN@Mw zyUQcV=G_fR1ZJ2rGWU2?Wq%sne#4N{ZmGmvngX*dH4-UYJ^W*>fJu9_Zu z0lLC!q!3-Jn7JM#j|P8Q(qUUPO~h_BUpA`Uy~-}%ReHv#Bc`7c?U~qkZWDFM%b@47 zd|Mm^Ju-&(xzu8d4yw$dQ6gah6HyZ+DTuOdwG{L?wj>nvU^mMRdSnc55PB^5ro!B~ zlaLU>Urr8%xt*lNjZqK`Ap_jj#6wa9D1;(p^f!FPP9Nmv#l3hN+SV;h3bolTSXIBo zKs=3mD~QN52!i1=`ZL;pN{)1FNHD(Q^GL-X4>%uV`bL)cirb7;Q^i-{W+oQi_H`g; z9AAN}46)&D>hw=(W~kscg_wH@#Qd~zQzXqO6qYn^A)4_h9M~Z1d&1pZ?tOaDwnYjN zMFT8)b`&B?rhHT|rAu&IV&_fjae?5rBsyMS3!fp_ zI5VR>p_6V8#Oyn%`y&v(2yp8b1f@D?Np#Rz)C}R435B@f!#I|PLfkwE*Fx;pdAbk^ zU0jNk^#C`o;!*IsETI}x0KYxNk{H5~Gl~Ss9tp&9k!*74VvJlZFeVCkrLO#YlLGHr zW3hy0!J+{cOo;+s$rJ&+7BrP9dXw#tqJrBJEj`=dwuX7Xi|ig!4l1}UqPDKm;Qe8y z8VqjxRB~{e7>_oC@V3pk9c%`AdA_O;#Rb4+QtQ6Hm2)}3bWkkfM1 zz4WEZ7~W`8!b|BFVphEOyR?e_?m5W+rB@GWShync_l>JoEGtdm$8%S$IB4M^k(qG! z^`QqXJT&$pyuNYOAqOp7;hSw_c5lAT5Q-si7}5txcjMXcs06WbNF{VmiYH)V@fSvk8@tR~-BDEOuAK8&Sq5UY6)_I|oa_Fnu( zv6}R)d#vX1xb2Z*H7S^fgBkFHu5nrI`1qmFS9_l_!)4E z`tHAwgA7Payb7|Ts@To{A~{aDQ=ihe5y0VOErq)T+uy_lT(kpeKvy8 zYTYD#H0QyQ3MQG^(`dmtrmGHg8VzUSz}#<{J-}QEvxIN%6E3cELy^Nb16rUW9)m%g z+XeNJ14H;R!-B)ZeDO6Y1`B#z`+&{}F}R0e707JZ0>Ja#fjeQhVQT2NEf{APoh^Lj zbzbY7hwF3ZsY@ z$hB7zL0G4jMuNIvQS0tvHnSH~8R!-1!?_MxQy&{|x8U4t*u>-GU`ZHA-Yy~ZS_BSq zGI)<^_iI^IGh0r+S8+2Oie#AAs~JZ?c$+57>%FWRnFXVEs$GYKX{XxT@f!_Oh}^-Q zY8NkEN+SzJd7WB;nqw>JzZzK!;fy>{ttOS36CaSLu z|7*SOeMPN=@0wonqqOf&V35h6DF+6%KO6a>x*A9)b!690k$TD*5|f9)`)~7Ynh)=8 zNcO)X*;}wnZPF3yW1*62tvFPzPuf;XtrdUFmW0~2h?pDeYmGF(q%Q5|@0eCClRKv0 z0W?*&2IZQX9n-u0TrVcaacE~GoMIe0ggX23YGr-d-#8sKjJyrguxHw8+w^j+4BSAR zj(&KwSg7dmzN$Z99rUn#*{imaD1DI|c>ACvBM6FQ1aH<((Ro-4kIT1(Q4q9^FuPY% z3o}8GU{X#HBpJWVwpt2;dTdE32*U1`8w4#B3=cw(1>e-pX>NCOpqY+Uy-R^X@vD`F zt9lWQ(T2=DtOTJ}_4xc!fT%VJjiqj|s`o13hFH~mHGZR2J^I#tRgYZow5mr=UFM7r zYDi~~VYaF#eT2*9f`I2WkV7QP4QqP=k7BnKKB^dZ=DUk=6wS86ha}{1{lp4i%nBc| z`Ejtq_Xg}NlZYhV3LpNWt?=P9m-+>I#awizZQ2z+>=a-Y+?Ue|-*z~0IZmw7_d1QT z!wrV;V`eMdj@+Rh`YHUzpu=KZSL=AUh6#5Dr*a(+T0SjncYVlXqxHJ|yRO%v)S^yY zjbNhhNO04y(QO}85%8(XJ$pUw3j>QKTkDySAH%$H@#@1q#Cljyg{K}jZl zpRN2R^HylTvzDBnZ%h0x=&F`%C0cSWwIpWzj>J@nYRbhdm=OZ%?yDZk#jL6&8NAxI zTFSq(%9e!k?_gJno%km)N4c0)%jOA&9|SZNx|)SvO4cj?4hJa?64T+|c_lO^H~&sV zV>Er;#Yzy$zr%-G0f5?g982B6zw<5>E$!OA4!@CqhrV_9@6gnY{5v!uV3V|9&+2T) z{5xoPdIpi_)6sK?8Dlp;4po5965YFeThMx^Hj;S4kK_ITR*=`aF@79k^W(se^Fizs z*CS$hejNNo^W)$%m-HWvd>7{io7RtmodSmWGw0>AQ+r2!-VM97Ta9{Uh#LgaS(t6` z9pn=A)VuK;g9?jrT={dp87ABrnL>Y#$AM|_=^W;jX5`oDiI_RE`*b|2k-nV>hWgWa z1K$oiN!=?@O~mu^@BBS1e!sRcdX>e$^OtaOop%-2zvJ1$U16Cd&g5Nmcpte6e_PoF^1lK<(G_>KHe z^sT%9iKdd|f1*hXn^XpS7Qf-yvpqsSD0aiMmMi(h0ICR|-MSB;wM65UwI2#eJmH5* z_Cpby9|wM@&tvDf4Uxn1L*Xx)9}1tj)DLh1;^Mqz)B2&XQ-GQ9c8_qg zeT9hWv00o=5nOh6$13;@nevTAU8@kZYTP+c!KrgLMPRD%G_8bU1D+-+LC?(;*$qQJ zCXK(s$25=0+{nkY%No?Xl2fhH-Xfam|5AK5rhLb-iew%x{K@3z(s89@X*FZR z^gEW$XXR%WgK{jLi-gIsbS8d_bu8_&wq6tAW^fw6{?Es+)b64kiBt@kuoGwwX7@{> z{X^m>rl*a38Km4kiY?N+P=k_^+&+Qx_HsV@{cN$?E;M%{mkXKeY!(&lS)C{8TYiMm=h-S! zDOr|YFH5qsg{r_Oa_(a|2g~McK@v|mTaukE#OB9=v*nxEE$&9l@SH99i{@;>XD;;s zG{9Z7+c&MV1v>={&UektXVcGaY!Y3sR-N%?`NID4&`7`{iOe`lWMp>AKafw)8fTbOXCI+gAh$qj1bw76l89@L98a>p$1>W$iyEf!BCRUx`RGaW{xU#W4v@>KhB>f>-`Q>#+1HTyhW>K&h0IaD8n6VWTR5nLS?ni4oBy_XIcQ?K{>uj7M$ z?=J}qzM~}Q@!2MjQQv74c*a0uS(sVA?!|yc77tK_Y}|vf3Vy?a9-!q$y6a8mdfea< zk8>EZ-V8xq2fb+WvdJFzIj{$}!=H+oAicntb*wqFOpbLt2FRPu0zyXzUJvaOZl0Ay zEX0Pn1OkdpK}KxR@}7ynPxza$;5k#vf^$W!O;5HQwWyWB$(FKK!ILew1UTi~qF)%l zF14sx_7g2dg@dyN%M&eQG-=1Eal~Us_~_Jad3GGFCn`O)YPV1sDjplc$~KoWdC!H8 z$=?{8zGT5B1J(MRooao{qE-f~C2JK_t#r=NpIOu`yJCqd=c-tlh^avJt_Dr0oE?FK zo{uK~&C9#SP6Fidyj%P-w5}Ae554uJ-D63?a&Ksz>0ne0VZ{jpWC_z0qjjcJ*T^|j z$*Gml3@f$jrAn&_laxjiPB(3on&rWIZK&j5jMl&$kQuJzE;q)?aCHg9zmM19&%oML zzN8tLECSBvIR94bSu<+#B3Hc@FlHsJdi5B@(Jws1feUNOpaM;f{rUqYvl6RDW}k^# z{Mr)<)8f~z_>DRSx{m@U|33Th*|TOXU5ZmZI{SC!VAW|hSFVemDxL<}*3sVUlWNVD zQyVPfw9=vD9boBf=~C<~M5on;8^taF^qk@k1PO@re&mvyRC z*m20wu}Tg0cyAajH>fvy(@p4iy`o0LrFH9CrB$m+D|%O~TL+U};nKp633Y{wz~rIC zqQDaTgG&$PD~E($DMRm$egVjro>pqXe|l>fE6EX^zBEv7Z77#(vSbH{g$M$>xJgRw zAE?)>f#yRs&u+BAMMByA;+nwOOY7B3adPiDQwWeMgXJc1l#CFfN}J755CPJwOZWsE zssuwD=@HnF4y?1oan8-rdb>J=jhPUBniNMm_k>PaSYxPXQ99;ztMFQCuNiek=tMYn zRiBD4@CbQXg!wiH`v{+luFALbs`H(n0)(NjMx5`APvS5>G}3op_Ec-Z3MJ(E&PRwk ztP5~ww|Hdm`4zY&zO!EnRPkR9UL*e;Y_aZ5N~!_F)(aDO73*61SAN`>a%<0hk=-Ou`z7D0bHK!ENYa8%Nxh5 zmBC7D@(RkZ!D-YcuW)BChI*iJ6??IK660iJ)K&8#eK^~=b&_U39&1eNiKtS+F=;;N zdFqq0cZh%lUvbE37MX)-#s6U?@>`|wtt2cl3!clQJ};!R7;$(s3%e4827 zo288IBpF$-PW5IXW((Dc>dmrRF}?YLrAwpj>8`f4GKy2#(JFfi8=5lbWj}i=69%5S z)Ohtgh&uea=uN?OhCk%1SPE}`LwXct+u@Tb#+xSzy!oZ5LkMpIlP`~h5^sV}Sx21v zaD3%0I*l?Ku&#D^bLWiF^~r0tpS8s-{O6yYO4iQ)X*+u&2EB$4*D;<@QtGhD_RLsH=l4TT1 z;FBpviJb*X+$`!4M2Q_D)&@Lo3Qk4lV4dQgghp5>u)+(hvmIVM#aiEZ<1^4~0%ldp5G%kzA#@9sp=%oWpg;6Po zs=SgLNa9^+iI!q zyr(S*)tymwbL-CX3cn29dES{$rCAQ_{qTNd!@(d_Twz9zop~J+4(KszZ(!d?=V|9U z)pq&#Mx);FwokNRl?NAIN|k1*R&SNYwM`Sa_^pDYy}q0N9KEBp;=qzOFDeWZ3l&Mf zKI9eCA26mrKVPOtLB=ux85>D2(=Tl9pN1#AmFZq#?SECi?T@lS_80BHlG>jMv;+%t z0xc<)wr#Z(XkB7ULV*@`(cD05AHnb-Xj$-WC*L68d*e7bO-CsA?ZBYiLb)Rvqb=3< zSqVbj-oQ7R3gFdtqQ+7;2<5&HxFJHhzlYx_l$*YF59OvfOxk)uA$~Y4_$FgeLpr+- zYqxWHyXPqSDRhLMp4E>R6A@zF?sK3j`Npzf*nEHMuJt*3NJ3ib=Rzypk5f}`q0fKd zG5Mc@uX2|c29~ZJ{li-KR(kwd`n-)kZ--C!bNKOj_&8+?_X{HVA|z|wFVW|h>GLc2 zV79wxJ|uJ9JMgc$?pNv2o%H!N_~@@i0d7J> z<(nn)F}q>GuYpU{XJ_L#1|t?@ybA1|8z$UYKc#`)#0zTTw8V8Eg}Wtz`&6P)Soboq z&$8bcY4$=i!3gXtZ}J-+G|G`t-4V?7!QUXNI}rY_H^CzU}kc6+eZZj@67XY+TCV-$4VO1S=EYo1TvO3NRyKL6A(bGpmI{>sk? zS-2~)3bAq7xnKF&wF*It$=wesICYU!yYTQQ)$wE?)%j3*;DA0ZPcM!tsRv7&X(L9X zlGi|Ex|mrUz!U*Ssq|NYK6Q=2D4Om&8!OG_PPH;pD-Vfy1rfNg(c4bSRo%lDu>_Hc z64UEJ)||{^nLh{K+>t|uMXh7(0ckIRS)mpkp^ki;8YlNgR(@vjC?|It36q9jg5Toe zp*kx9u?i#QIs|kzCVG#pZxo?VF{k^b_k}G>EFy+{*#EUh5*fey1Y$AV*J11B7!cU* z#h#HTOY)D$0W$A z;0mRJ^5DhS8aGSQR6fWM%~ui4cpv1{E?a!Ywnb{$LNp*W>UNK6Qp*-0rd(-TE#(1x znJo$B0Yos0bqysg+No7Y)iQaQV*_ZaNt#(7k;FgzU|z~4e+a`OO2G{#lz z%X*k2w~xdSqZv`LVm9yq&i)OEmJV~=62FlLkiK>I0Mdk=Jb*MEWK;KG&+6>LJ%D6! zE+@BvXXQ%WWI4eBsM)67{C`v-?n`i&pz6|yZ0-L;5>ktw@c+f!=SpmT9QgmX#!j*o zeE9x9{6+Ks;WL-|1J2-FocL{8{~vY=u(fZ^>1fBOnd621^`QGND%&i|#%4^1Be$r> z_To1NAu(Q=q#;as{|*Tg?zq$7{R2i!i}UYD4;Z09Bj4Y__@dM7?)yWLM%}X!!CBvV zW8nIW@(-ha*~85TOZ@<)1Reu^?k`)UYT5dpNI0y+!)H$ zhn6&R_1z7`%w2s5wi#W0N(H5>@3Y3u3c311G(SZ&HFT={XsQ{RSsw|x`uH%wVR$-ReLMd)M^|4& zV_e0)tgb$87KtH7vz=naY~bqa1#SpeUmt!WS08=r?&_o2Il201`p4$!!JgIGIm*?C zR;FjzdY(Q#qwnbx8I$jDq3UqAfqN_}ZZ=0Bl6b<=mwbl{vH5Y}=sOy_$PtJi-bO$C zMRWAwGnaY;&e>d?>TOy_A9f0`v?p@f=(h)-E7oe|L6~h_*gx#R(T#k{ADwlU%*v)s z>yT^IbDx9X7?8v`W0D3kGOt@2?_xxhjUqEI8pA6(th&GE;G zM>_u^xa_-d44i*^M(UQ=C{MZa+WPmBuxj{~j?uX+4#3O9#dWTqLI)s*PxVm@mBF1X zl>amgyb9=4g3oVpD678TFZ7i4``3k;(p?7jzP|_=xL0EprqB1+wF*JI$$cJF&@++p z_x%M!avDEoHu@Atn%rX{4Vr{vh*AHjtZ7$SWxU+pMU zESIjUhoB@-uGGi%?iSA%-oT`ctgZjdx2=B9cU4=r643V;wKc}{NHTYoQ%kTbG=!Kq zwN$mF2p+JlmU3$S#Fm6|YGJpG^>!pNM>(}r%cN85Yd}-YIx;%7I3RLBnhvMdvft(C z)QV_~rmtC@T6~NbV5=Ddv0^rGYOMio2&dL@_>G)e^sT#7i)NtY)S_t(n~Mf}R%dta z)RN}YaxokBtTxZFrDqNq*xh!qQMLFK*{z`hXLD{Li6@*}$<8fe^W(s|bsBb+lMzQe z=NA5=Ik)hcOT7XoB`(foHm!3DI|Y~r!#O#(_KtKwT-fhjO~Orx=-jhZZe~Zck$2R8 z>-deqip7|(TwIMX;m#$~;^OkyGA&-NRsM9&XRwi@>(KO$F0WmYzOD#%`z{LuUsowo z)wHI0x|Wx_>rG)b@#`IN00A>jIolC9_c>fWhC z4lqp&VitHcQw<{r*uJq2Fi)uiKCm<|FulE(RW9=&=1+zKLwgfv{tNFQJowdIXF#+S8O$CPi|42 z5slIGHLF*Q5BvgnHR~W&%m!YuXJfCWsLu288+pa(TX(M*O>DFCKMs6j1K45u5luYb82+O9 z#_*X-eFG;hF3xv0t#1rF1(*uU=0FI~d2m!;9Q4f9zeq-=rF~}c8v5%=mi`3 z#|}&BAJYqnbdW`G-1lu5ILHDg&(X??UUpBTH8EaZb)eH|I1>jRWwb^KO6$N)35C(b;<3n*;gg5;>m?ZOV|pF}{4;oGZa< zH$?0@pIBFg4^{d-Q2f;SXQLL^INVTd@^*g+IcOu%#`Dnb6XEvN$-+4UAs4OI?}ZfK z$8-m}NBZ*#m+7&}I_Q;z5#^msNE>mv9-F<&lzlhgQjXS@@2%N9hbZZ{-I*~3q!@SZ zV2{D=It$Nm;Mm-9tK0|#L+B5fZ2DL=GF!gNeY*?^ll!&@zs0(5FJ8Ko#+s!|ODjvK zR-o!m^#X~c%Ss0hHU|%+q(Mo&jtM$o54>nusXpGS)N4+aT)x<~oR+7-jdHVHZS`90 zb%cu{vsWm&GGX^G-0LO_^?F_8y>5X#!g`4smru=Ctm<=ggE~7$S!$2Raly?~JSq=d{zfwHAGrKY%S!MEXrlVs z@W0mU-dEI0_^#319hQ#DyvTxA zI@7T{_&;D!Zp(uajnRhBJ*)(wu6^Q@P64Re%rus|!SdjeM*yj5d2na^M$3crt^4vI zdF{!?LGEAXzYl6iXYXNl?URD|<#Hv#b1TRZlfB@r59+gaSWrw}Af)Q?p?~GG{n>V-t5u1zI56?tiQGY!azcDzm80*z?;PGL? zQ+xod&xdJQ2807({Q`}a|56+P>l2P#_KV=Gzd&QK>=!sh(l0ar17NFRRq!huqhncC z_(sFUbzYZtA-dTZ)DG(C^KR$r(+1L*+nxA{zIuN2JRB#k`NA<(byt6hE4c3+PW{xf z>8CufC#)wwFWl_zT()1gi{P^RT&#lMsCUDXhrS?}`=w4@s}Qt@+(D?IXY%B~(>)e( z#pw=jg2Dq^+?h1Jm6L>yDNP`Cx~s-Er3BMZpCCejQ;DOGPxQ3?_e#Xk*dhu zdIzihoN5-r1u14BnzZwng?t7%O0$q#@f*!T=v(($2pJ1B3!%}7nGL~S7d($nA)D6~ zz1c_LJUTsN@~nfZ!>t(iTx?UeSqGAMV%CwoEs@y#IGA;O8P(|v@Zrxo@E2{?fzMp( z4LHiUI5=(ESqF9s7yw=~rL&G!VD&Y641`?FR{1@0i2Ccp_>I9wj76B_(^s>O--HQI z&#a@>oaR|at2srp4v68g`4fGMNCibaqVXv5nOin#wz%Yn(|pk*D3_!6MqnssO#7qgCqOba>mBzbncQX_$Fr6db=HB>rXG-W*1-iS zW*wTe^O$w4Lypp{!@+Mf>!5GlXB}iL(5!<-BW5-PdtJ<|132Y%#pGEBWlWxRP<6N! zJ2!`xHvd%+F1v73K#&s zky9|#cHDV7KH-^(VhdaNF`H*xjXa?q+QDxOFk-Bebn}eYgb8;B)B2c)>VwTbXS~uk zQm(-sP&n0Fb2;~VF6Tg4&iKT%OfaA(;}b?Ri~YNYGlA5irW6rO^le9jDaCF<73mqQ zHdn2!*UGuiDQ*di-LG+sK4qCxd?Z|4=kmN`mHLL9mJ_q4(M!+h<2cNP%8@XEm?NI+ z>lNZB)+xUnZdG?C+D{oGnCN~9s}MV7Sm5c8k2S&AqEL=-Skab1#DAams?jfu6F)TP zgh@!z_kcV=v1v%ruPth25K<&-6$~kwgB_MLO#H++_LxQ8vIi51DhDl0%V45!lT>2R zB69Re2qx;P+@VU}2*rCAaQ>6g@OUg{p}YJkGz%5T;7vcb4}o|@e2~^{#k}(-rVa`7 z&K~y%+w#@OWv4mo%O$5)f}_mK<7N1$wO|+Q_=Fc$fv8ui54dpcM&K|fvsan^?hAa# z(ID}+YZhi$kRd;Nvvz`DHciOSQLGx7?LQUrb2t)4bJAUb-)Ja7tPO6pzG~@G7zZfe z=WGa~zF_5G)oC_Yt`jzs7+!H?U8jXo_>9OE)5KD%UTTzE?MAJavK?0*b|Cnt ziNCjC8@KlgejjW%8mQFT>o!3`udrzX?s4|&qLr^#-@5AI?cs-6RM8u1!of%LB{eUH zm}!JZ@3Zq&E){rm1`q~aiU>TyCvor*LVAFb8(cEK*iSDZE^)F);v&UC?LllT`yIdYU&7hK}p znO$)CA|Pgd!6lBlu@_v1*(F_0KLJJukxl9Z%2euQXORY2oYP5?x6n})`-Lj0Y6cZa z9s70G6u^* zt(FS(INp|o3iQB%Kh_H#*{>yYRNR?rnT$I-1ZXPJf?`ii+}XXXm>i9vyO3}SV`yzG z%#$s%I?fiaz$HV%4$pX;<;n3Cuq`}njHDRM0^^_iTV$Xd%z^`*{*0g|jNA+-{%9`c zOatBTp**v#ZV3b3KY>_=fzG`e8$TD0@aTlOlrX;SCT5erHg1ZfsiFf_-lNku2hLUXsN4JNP%#Pc15t*!(zHDIdj7QAWh@jt#|Mw3Tvv=92!S z3*1G|`KDbd$4&vp{=+%#&*jUY?P@jdHl0w$xQleILXJ_dy%N7M*sz!$s$IIT3KQ;B zr*icixZz*;GA+yKM-S>n8m*@<@4B9@la5?ikKnJr!fLRv&Tp*MOU-|`?#IF^;a53E z*Rrgv-yANkb93G+>k#PI9t2-~xk=YUXSgG}Q68&bTJCSx+RgHiugM83@!K%{;}eF! zGd4B&Vwf-8#bCcSA0YbnWV5Kr&=uur7d|!%$J56^)Xtj z!jl(0#}3y}^VgXY|CUue^SI^DZ#P?nkc+avVtfIC#x2TDkpptpqq*7>YBlyh*f4TH z{sX_ouEuVUdrZjJ*y|l`&JU#V0ZVUB2wtCTUThnZXB!rIYH_Sn(Gz{7k8 za6@>Qzlz_;!%W}0dzi^VM2JMb2j(gYDsE?2=3#~@&T?;Z5OOu^S$p}MwwuqHs>G4l zz1BAmXPYfcb>=ne?ZzN%P(~6@_?(lYvxv=)1E2FZv76kD7~=Vy@fXeKjL%%^5$H5< z(buqPea_e^U=C2rDLRX}l84G8jdD5qlB$S|(brS`135;$_EG%CfW*RrRX*pxg$Ylo z&slI|IxnU=niZL^&zX^q^f^cH*Y_M6_?&z6H~?1a6kkKN=UsXE#E{;zBrez8Rjv&V^viU;jo zBZrx~bZRBZCPw)qy#onxVqFzJROua|_-R_@;J6?H#$E`;2Uj_GzQ|P$mIZt>p;Zp8 zmy0Rj5~eB88PczEJb6uhY`ooqNEe895hZuOTq^BLOr5V_mCS4vsTGaQY{-!d882h( z0GY)tWK8XaQrEI-WR{9r&v?uKv-c(Na+THL0TPz5gnbKvVUx#8@{)+6f^4!0NJKGCdpi0-aKaJk;J9$3OcPVMq3xODp;3NtrV;qw2D})*1DoXMNx}e-K$pp>;Ihd zefOSwzU9un-@P+0F|ohC40G?C?|f(b&UcpYL%@{J_-p*+&1dYqPzo{D0$>nUT(*o0rSOSw*JD}c{`n400ho_B<8|8})gOKf{&@&22{`v7urC|Ze6fJkx*&O+<`p=fa^ z`tL(Qa0(7>t~ZG4bhorDaSD!SrWIxG5{y*D_#9|c zA)zX5i(D^=xjnJkxw*`azBuX$G`CV_N0Fx@v!h9VLMU2nc50y@*zBN+Rc3bd#Zji& z37{Ki{-v)ijmt2aK&F5|m8Iw$lSwU;WiO7BTS;X&Q~OOXn+v4qUJleyDY{qSCrZ)L zr~WBAil1 z(Gi(%t@?#84VSPE8G1C^fgZ zUpq(&uro2|plp&_DUg_3WXloB$H=;C8(S(rXz>AC91^5Ga#kiAcfUPc@78TO8%Kqe zN{f?}m35qZS~7&P@11@k^!o=kA^Oujy#K>N_vrhGLNY1yIQO|IZi(qK({J+W`;7~z z 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 z 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
Zy<+uPgc&R#j@u5R3XlEPu5mA$_u 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
WafT9$P{t1*?Xrr?nRf2 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�T~^>)rr?vZ>aC&h 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

B~s;AVCcNP}>pRul&|T!)*pv?xj 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 z z0OH)Sx80V53F_PG;2lymHg1BjmJ}@idIbUeh$P+6FjJB%4R#k`HR3n zX?j-(reZ=@Q?Bb16M9jlC~ z7TkggW70H_Ae!@KOqayAh>b}#AdxX?p?HjGg)$F4;8hvYzU3#qMzj@L?=zzEJu;%j z^jc{^<49o63}`I4vnmYeS|FCffV5aDjOTb|JdI%PD~w0etP{=oGM?whwup^KH6W4k zXrXwFr#up=nPHUyl}93a+G|8_11b27sC=(95+OlpNbg1>b7n~I2=2HFL;4pWmco$K zNJOHkFsAz`V|r_F3o49B(|i-roG)YgN^FbRm{bE28Iu-@GNuTcyvqGj>=c~04Xa#4 z8qtS-9Fg${=$vE~kB-KaP!#K;R`Xo(D1nJ8wpBtedZ`CgJT89^I4i1nT!B|q@km#l zD;}woiJ&qMKmesEYBH6qy+1kwI-75;S_xZ4kNm_?@kDjqBQYQyZT7GN+!=i!29nSo zW_R7Ar|yx&ybIJl9)d=(8a|4;NBpK#_lWm0(tiX*XNaSo-?~RM3W(hgB&vHn;3BZw zi>K>TquMG*ipdjAf*kinwErBG583E?yb?~r6XB{#UvTB)SvKMJNS`YoN9LsT@e~~@ z45)oPL8X&7*0)08+gKg^?6#&=jyU4nILskOj_G!Ppz}IQPX-9cIv3TCBep6OP4MVg zFV&Bm?ANv5v(r^Sf*lt%gJ$_-5tGf=LS*X2x5B`iwlq2mKfVCcA^dC_StuG~Za6l- z1&}v}izlQ2@)ns z01JrU$$dKu9LPX+w>(m~J)qBSuhmuA8EhswJUO*PRc=AeSb@=(D~IlXCgvMQf&>yS zC<*}DPCSLvC6b2;$v_t#BvD$WF6S0%0&JTnZV0cD&%1_HJt>w^T6dStwTpV;Jm=e6eYQl%tx){E!gOC!Hci( zPfQ&?SRpEpVU^*K!8;tkj|AqS?DTw`JI4UKsFnOU5G&=*yWHUzC-lA6O0vysMR*sr zt3%}rK9o=|c`!gVy2lu z*j+2B29HJW^IJ?rU-ICw00_IMmUt(jkungPeTJ@U`ZK9yW)2>6Un_YGHn}`>cnSc; z$Z=eSoIG9A)5vi&^_Yip=*Y1ai1jdXWM4tQ6;vx}_5R`1o(>}hK9o=ydBi~7Ge?a7 z1GSP5tB_ZS>Qsy;x>oWM>b?k?Jf0}~Pc)urpQ6T-2$~EyJ12IeTvu%5gK;A-RLW_q zTHstO$@ZdaCD)+F7O)2J-Q7pjimFKAFTYExU4dPhZb|l<6mexKkFL=LLpUt9b zu&^{)2c9{+8(m8|WWS`F7udCy2UvuPkh595^->go9%anpt@1s}eD9sNUIKkz72Z2N z4LUD}_k|^UE0!y71Y&6h9hQ!^8{Wl*?M4?`&IUI@({#;TG|d+h&F(`^tDVYKXbSbX z=NVy~x5Inc2aq*&LOxV^8`p9{A6j!;tkl@ODcv~{ByBvs>ylz)j zvqgxgG||uHQsHrRE$9EnTA0h@YMOr}ntqRKp!kc#W12k#?i1W0T1xB6itMzyCU4R8D&HEc@7vWi}3XS5{}Umafa=%Z#VOO04}?!!0+dN}6{k!GM)20V zGAWjmDpOCyxcar@SYf^A22hHARli!(VO9Hj26URJebs|(Uin%on$;7)S-t+;4z;Xm z;a?g66{h#e!ggTB-+kTdA&3>X&2oH)-$?dR~x_Z{Ryf4rsJMC0USG7J+ z$OSrReyUn86KwRn2xBDP-y&f`;yoO%d{wROUkwg!cbxc%nm#tMwYH^>=XT<8pDn=V zZC^VwHVr3v!U>*q6z2~9B_DHBob2hQv7=1GJa2Q;rtO0-$19;Jw4Ay`%Y@-|%@A%>cmLCr( zM`Z=o<)~wd2eW3N+j7)rS1{^XhgJnP7*CFTu}y)Lx-Lh(Pj^a_>xAm_Zhs{F{VUQo zzVP>%)k`m>UWyPXCsI^LM<@^DWh}O~5L;GZ>ZOB&Zg1u98R4nQr>|)*mG_p@!r^6n z-(lgU``W^drQE-y?MSxp4=4dSEFACj*}`>2*n1TZriHJdgLru;$t9>HWZe~t|K$qi zBb1b_9(j$k`ZJ?-D{uIKYWe9AgydT8M-|dBPb6(GCI!!V(CTRnKtHP>7$NQ-!{#q) z=8T-`0jRylQ1`8f@FFhfrYkAGPh3Pagq@qx@d&nD&Q05m-?_QxOMbl(bEQz{1~1FC z!#*YwrZ1)YT6>Jp!oeT(dzuKLvvXSogx%8@ywhjrrpuF7C>~Nex1kE=Bjm--4S7xO z+&btMs}99+E1a8`kaP7;%H+MGfq2{%}4t2ONQz9ykAE=&U^JZPw71@6qfb$A^ox;7^f47__B_;*)<5 z)=$RyA`nPy_w!pI7K-!542Ea3pIkf^(wDuLt~2^!a4RgNuSN5_M0378;=Z?{(f8yL zRRba{+vO3ppueSrVit6j&z@2zm{x)3%V$r~(}m@l6z0r^9v|Fa6*lxFAeO?0yye9_a_AbPZNcnU z7?7qpMl|QkfL07ZaVq;PbNMuY} zD9V^3X!2tBuGncf7jadtC5<3NKZ>~i3Z0YeBt%DJN~!2xi?}3AONF>fST1kKAfSlr zpbvqwqLUC0#w#k~qN~nDTvV4qMO+&ZP9`ceOeJftKtHL9xF|4Sm2mL`s*s^$0T;bq zy4h?B86hxHbO9HV(Eeq20hgzMi^RMO6mZqhB#wlSqJRs(DHU+xy^ORUk)as^O6RwL z3ylII-@jS}!T!epNb01g&fYLPkX=D|seEShIM0oNY*^lD?|%_ktvUx$h4YG;6U~6^ z+hSS%V3ZD7=y`Z097IIigG;zBvutm{X^6`~i z4#{WNBMb9g$@QXeIfPVlJrBr-#f2*>xo#w4=_|Qz?yn5qsMrpzgX)_d`dV%eOHM^!g|jzNU&d(T=ukBm2w^aFA!ZTA7hx0y?HIyN^354l3mPoJ@&mC0~I8- zA(R1T|J@gJoydn6su91dGYq@_m6$%90Ig5B8Ylo{JMVN%*Loc*1OxpyKeb-#1sgrD z))=1kH%OS^S*PRG?piOSKqCOna&N5ldQ4iqVX*Y0fG}7CE=Y`8FTCS(C6=cTsr6z7 z)wN!aP&}Am>27PiCMp>9ELN*9oD7UczSyQfO83HAuP3K%eBtmjtCyZgy%Zr(&bO$J zj!+(k(pYRgjM&=wYrS5Zwj#msTe6WJ~ z2qk5!M_%Ks{$5n;^|=b^M3qC_SwS#D+*}TUoazC{s`aXBMT8e|IX7MF^=aZFq9N?u zl#WNR<#KM?Zv4(|=c@Jk-?ZAp&h3w^J;w9}@ATQZ>6(?_D;`ohw*x=yXFftn*|{OF z$(@_GL`%)V^K@3{LRK#!iTydDLOM~-ZEXd?2ywG>Lr#6pt*R9fUc}|xbgkF1#6?6y z*tsbkk6_E?+_c>&=N3Vekunb^(~D@?x}w$#7tUUcN7Xvvu%gzB=cKyU>%M4ZMNSqJ zpg*-{bM#Ktd;kpw5Wt+n5gS2S19xA$WRIKb_x*nAJpw|tMX zczi^en4Uf}yl=|oC&A}UKONo|me68^A_5si0m=)3SP7xn<$2Q>dG(Z_u#hzBhtF|i z02x%LTyB-aad~)sirdYx zGGh;~L=@qTT^?R{<@Q*%*u%GCNw9}UZ%u?N!$-)C3;$$nTIz{a_@_^CqfA0x zvR5wU!%CpyR5pD>l_HqmmX65C2^A{d{mxh`R2iY>r>b6Q-|~~io6K6JpFwZ=oNxIa zIbYXaxW7gM#o#NY>6s~%J#XLexyImdOR(Rd)wb*c~Q_^Co@U^-Q z?We)qSNK{@^Cv{p?`sY8apDr_mA8eCgStiR2~`6kEZXG>^U6vk6tm#3eM^k` zVuMl*NMul2C_i)?ls@CI81SmbqvdKm%AfU)NHZV-pDC5^ktyw^$;pVt^+;mQ?C84S zE~~JkzXxI|?5Ge-g%Rm`v}Q2>6-K0KP7=-eGNM<|mmr?y7 zwnc1IssV|NN()69RRm35^nN#XTFwQ4m1|043f_+bz{MX)SODl~ObMURYXP8y_NlmM z3IFE}9Rw5r9s$x&1%OB56%_!|Rp$ags_LNvzzY$ADC&DmC2Q|*6adfNEXCMK&9`6j9wNlqmXL9mjHS2)}fVdZ;aq7 zpg2i$WfmtbCTo^*)87f1y*Glp-pi8|)8@o8vexYd)Gr=?;vAx^Doid<>Zte@(_`@Z zxhPLkV}mMB`YOEBC{I$iUFAv2&pXPKN(QaUldciU0J`3NdD2zqg9n^xHEQ+RXuUa# zKCuPI+n_J3!E!=5$my}>zB^>WiIzgw&rfC3Zv`7Y3!K47zed6YM*2Bk zc`KW;!NFqGp@X9~Pfm{WIUF-P+Gw`$c&pLI_WDR; zcx+pJ95sJiy;Ym8gIZ66Zr3Mj^=57Jj#i^Nw6xG_Uz*%1N7&MVxx|dw@TdI*19=1N zlN;R6soA1$^xprY&@buMAB^tZ7YKtw&K-sMue za)ByAnKy-JInDuj3cw8AUgdS>)PM72Es5?e%R_Ql zE{#Tqf+M^_GX8f9_gJvt?6c3VZJD0jR*qkRLzx+dd2ORv8{0NDIo+x~ywMz8ijQuC zi`rTA_YnSUS1iH1 z;hWQ!+7Xi7GEp*7DytOh4$xTt9;{nHsp`(5+KRC}wo6?-4s_M<&izO&f3vb(u7j(s z7G+(wXduel{T9yzr%c$8wDR$$f9*|o8Z}dyFx9o55ic-sT)j73H*&^bTaugzO zWV&IIT2>LOJand&sPsf0KJS!TCI;lfF}tc*S>h)G~>A7f3DN zgGTW`=rQutGJaD^E#tk6^dG~)8Ag%kH?@pL0gm*fC24k-J%n?A%~6;WK&a<3;n70i59)isa-Qmy`RuJY4OHAVdj_HGU?m}@i}Wp7i5n{7Q8v@ zMW}Uodj_nnSNE97?`7{YlGvqN6!L(-MbpQ_n;w#i9tHAYb-LE%_2y!FIYPwj))$ho zThF&t>#voq|NH*7{we8OZ%$N$Qqi0}?x=#+d(MWo_4zm{u4eL?lslV;Z}Q< z!F6kuU}4Ka5x2B=WYw!5K;(BNU>(dAw0aZZU{k6;v~qzsAl4 zEGBAv|6&Nsmw|)wzDjPI1LpVB_8Dh?zYT;z6CK%KyyIJiSbjPr`^(Cqv%lX^Jeb+v zy>s=*MW;l=UkiuxhYEH*6I$mWVr6`hJJxEDRo5BcV>)V$Y*`o2ize^=F@Fz5G`aAx znbkv!;Z0!^DlJCN)2dF6P#n(FT5NqyDUMn2eX8Xr+#O;22&eIa&&m7AhH`-MmhNlg zHRgMRY5R$d_de7uF5|^JeKuabso$}Rhu)0$+zNIhG@0QV$X%TA9^FA_a+OeB-tlQ+ zxR<7FuFG(B?>vHfCqjg5xT=E_8Lnna8Eynk&a~c1wja?l&a~ou#hV?d8XOp4!7fPy zEN;WmqKMtWXwe^l#Z%L25YOSBBn+lv4mUp5Y+ad;&{qS}V#DMFPvmGNLaEc~$;no& zHCfv_Sx2DYG(ESbHns((XKKOH*bbxs_Lr|)V5)^l&N0lDYRpDqY`!_1HH8~<^M^*= zC*JI_W3`iqqAe5~@H`{j#VgZxHp4<#do=>$rQ|NUpW!?#r97oz(vlYP{O7dtbh%%> z`{G+jo)J!p-LLAB2v_NvH|cJENi19JeqRtvg558=nq=;GKNU|g-EV~480aF`>vExN zZ5ejj`fZKY==x0>@6no^njD|px?`x0E7*-9MBMd8V3t=K3VBJ@wk#(H5Gw4_+(qoa zpaXr|OqB1DqdTDs!9d7N80xR^1;t=0JHTU9(%3#VJ~lkon!S7{L(}{*(e#fR23#dEm~iFCdtRHW21NJ@mygv#`9Z9p z*~fk-mIUumQR%{re(48{=zh>Set1+MjL6ZLQmEqisIi1$L^2ew7LBENy_b3bjOgJY z4Fx0GfL8<~qN~m@B0>TXjHre_LSO<+#cdzFg^#G#NzAo`M#xhsIhu$c1T>LKA}BmU zCr}ZwBRz9=Dl$ev-)K+~lF2)`+Titt`W)__^U z43mrV3o1gRfEEAdKI~Vq4OY|;cN6$`JWr>(_5SLT~eUY>uq%@TI$imUVuig zv0vA|rSCu^r8ywsAg~etioi!3)!!S3AqP4=IaYntwNkBo^+hYJCF=Kb3H2UZ9-YM> z4>EFyKYKT_-~}07kV0egC8`ZlTFT`4Arr2&m>$aStBAh-PWaT%h6^(Uw)9CL593GZ z4jNyN;3{AT4b7FggT^BCF;ZmeDg{)4CkX3+g4FUNGhjmT_R{^@Exw3Q%CO=YU zd*U}jUK=7f>s_}L!~NB*{qkuZ&G2$L*xI#s{#^cuQZN2m$ZKnayaM!VI8MK2BDf0B zFU^&yU)>FePmkcOcMVf4_gBMK=95l@7LmMTfbW=SjBOp=JUQJo_A5(CSon$`MQFY&BcTJ*MVfynk0)p_ z`uBx&Ko#Z(jQ&4@jh@4l3}pH}5+*SEf8&)8jQ)48gMA(b2T7+1TmEp|&7lVW&ee(z z+ch+XTZBHRFabS<$R117row9KcSL>DRa#q#ut>xPA+F$F|LEt4+*o+pO^K zW32{kjRuCKH=V|!y5wwxHL)wcj^+VBf5#oK6H_lfG<8p;nP1Tn{% zZ4mEj>NmhHu}z?#yAU0z>|!%G8^nK%)vIQY=F<)vxwTL6TYkob?c2|&>C0m3ak;Ko z{mJmvbcHKo1n>bs7;M)8-^V+?_`fy8g~0dOoHTrYKgENI0A7Tal#5S^Mtvom^qLAb zJ>lW1GzBAnkt?=;kWtsL{S}6u$TnDaMRU$d+ni#|$th@oYw<06!SVGkBt zONlKDxOC>=px1d;JI-ACP9xPc`5A|i8qa7WrEjH?ZcN*EY@}BznK+CT@ATP7HRAd) ziU-q3m&<`H7o-xBc~fZmwH2&KXeApiavEp2M^%(^c$(C z=)K0Ssd%T)HoaV}=3c9KFl~B2F~7{Es6=Gk6SBI!g7FBIWQ#^V<1Csg;wlwMHm{54 zMU(GL+hmtz>%RIT^;Luz*|Jr4C$enKmdCPBt6puOd7CSZyd!LbUREN;PnkCDdP?c6 zJGJrKv|Y!R{VVDzmu2IfK3nzy%Cdi^crYz{g|X~Y(!6QU1+a#Ne^<{cfmx3UonQJX ze=8#Nlg%8Njx+OB4u#4!MK#I!glN{`X`AITW!*W4z?*t3hE@HW$dol(9#bA09L$&V zz6d~~)qmb&wg=d^%mY7Wx&Y^6s{cLtr?b*_Iy-?gsgGSw0PpnK2^^@Lz!{1M(+N__&|#Qx34+mv_Ehr0;)LSxi;N@mXp6n_bM)se4^62JiIQ#T=|$ z%##%lri(Eb{sLxb-W1mHj}@#(XfjVOkkdHVa%!;F<%*<~BjWc$B=1Zs5|_i!z4t?l)2cSgPpqA|2HCe1u^FS z6#IWStp*)k$mCnXsJuC{_KKpmU!8qW7)aOU_{)fb{I%`VyMxgDA+0#hDNae?{ykc` z$KR4c`7;Mb0bSz4#>JoRd7Yse5Mg?*2)`D}uSqBow#erE^H>sW&ZxS{%=u8&-94D| zl1uAjP4ke0{7W$$oCdw>8{8v=%Er7733pC-w=cPH`*33lv%2|dU3E_Qjx}pj(*Wxj zX^gC?!SMos+^E5K6R?Lzo;rp!Z}hGl7xKH|G^AeNYdesA3i^eMqSA=c_o6c%nzl1s zu4IkUt&7Q+{jTKh<#JQF)57H=n;b(x$mXiFvT@B@j#sjIEXgK9`FY-=#GA;`=`On< zmMwO4=fsj=M~7ye%+Vd=c61SPTU|^dB#?+aP*Gtt7bjIb9|V-F#N5%CQtEwOR7Y@$ zxrE;-XI;YRd8r4Kn7vV8U?H@|FSsENfoP0xMA3a29Bv{jBGXP z_{?V(sAt6N;4YLC+3KBmC7eaXNY3TuU$qIhxAyOh3X}mgZ%#_gPj43Q3n(+!XNYaA zZ*2~ZjMV{OxUD&4^rPw`SE;!}pgcaeU?cR>Uc|);b|Bj!@3fC`y>I}PXHBhzh2=@B z#_zGUpkUggUcFR}|G|D;`=foY8lRlX@xALvFM^84`Nu=*#{@gw$O<;gHP_~e6-&!c zU8%-oS|^on2yVSvop)UZG#!eA z)Qks9b6)l&j5?94@!sUIoqCuXeNmY88Ar8nt8xcse>x!l0yU{V(+U|ZL8h&@$h8Mm* zvwHID)RPgyF6F5J-g<@NEI#)Z?|vQV?LR-V_dH65ar5lC*AGdl^xwd40!_wR15cn$7QtqYZXn)77vO9TzgN@hMb~% zBLAHVauM!o5ipq!o1e8zF&% z(n`RkocgerRV0C)lv4>Yk#g#eQOX%XlP3$e#+n^Z7I0`xHd$D$RL-0%M6{6+j50be zCk1nXV0!~AhQ_f4Jx7jY#BWMSM!c7i9boc2!<_s4A{o&rV484OA|&Gh zrL6nRwr%z49dgFtxG!c0FGBf{jXoEzgtLek$r-`;e4B84q<;uT)%H1oFP_p=FAKmf z>SG_h*hSrQF5sd=j>TF%;EbGAmYx7KL(iZGvL_ob$EEyq{*Yd|mTm|=dcWP>1)Cl{ z>IJI!Zu@oZH}xH=r~(U9JJyd(4mVrVh%teXgFcdSq~3y4PN!#vTQk#eX0v)$eO^3W zpBf#~YEywo+^cw`3`Z=!6$1aHErHGgkH;c91fG2YS@2>J7qWt7(}1qLVRj&EDU@YJ zg4=@eF;NgZ`*1GI7i5K&sgWT;Hqc&CSj8va}`)${mKtS)ylYt{&-p9*O}7x@rQ zeabKG@%f~qIR|$Cf(@g_9gS*)Ecw65#q(uqhN z^GaP(w!=qz0)^tely{+Tgi0TlR)`!jV$tdK`$6!gkdV)L!qnopzhh!8(g%xgP^gNOyW)XZK} zj3&{iB_oO5;h^ep5Q%vg2nRh0&Eg5@GxBf{ep3nu;k}G30M`Z?E-B_W9E3&zQ-J3t z3I~-A#A!`lwJ~c>PRQATcwm8gK+Fu@gc2ev{U^K1uZF3V4 z(l1LF5Yhx^T>&A79E*j2KtSjuj^yO*Zy6hJOx0VXYhd@AMys{stc&X7%|_BN(dTU? zD46$XS1)0rPus6+KRtDrXdOm=s;X9p=z$CHsk~!3Y+_cW?o~V@VnF$~!dCCLo7Y*I z@i8EWG_!9Y3*H#eL2i}GU6Ngzx_ADA{E^J8%Cw)LWgLGkB=oCr35ArY{tU>6;dHI| z79X+uA4JS5Q{A_0jJa6svjmr@$MOeMxHkV%$YifCgnRga(*ySe@-U)>)~&9N;3}YQ zRdZ$5tu7`PCxxcJ6EZt4g1g>pR~6Id^gOb5RjF4`#5fk)(G^(l`50(-zKG~!EH?L( zDi(VIbeoLD=Jy@3SbfV?vRd+TYLWd3;a5Q2yN|^_;{3@8I4cl~R%_~1H9Y8x&IW{I z&aTBX1zPpmbOY?U31@=Q(PvcP+N{G(D0YRX>$QhG>Jb~@ptbRaQO%m1x-f$c5oXX; zq3gY9P}ZT`hl-{`4<`uaE`4Mjb}ebZsc}u|a>_S^z=s7FJ$Q(GNCHPL3Pr>|L^@cG>g{?wA6h+~S9|>&C{% z@q9h?WB3nFaA}MTQ8@X6#+LfbxH=$@T(%4)caA077~dgB%P_v`X;t1~c1#&I>}L`2 zV`hD-^D#9{dnPYWN!$5ctoB483>u9SC*#;2yyIK_SuVYE0G4CltYx}Rb-UtW6YQW@ z+IpwmO@RJo6-;^-5mm9&jm0K@$P*g{NT}=D)5H9llWT

cOsMblY3v{k!i5{ArSF@yJeC~`ZDZKfnr_t6mGLO7@=Lj!a?-L17hC^i&UkkF`^e9=$5+?W z#1R<$Z1V8&9L`{d7Jdg=u-ZChf2Q;L=B>H`43JTj{BOVRr>=Bm7uR#c?4-B^EUA$; zu)g0{dh>A?NxK-u)_(%BeD6#1l-5j^DC_`l?@l^DS55x2`Q3}shYutr9Di8e`@@50 zPl|hA-TmhIgVvYN@3+2sbnn4q{QKdPXRUir?muWfdfa;Pn+L6@|Ni1PPae1KY=8Fo z_7|=DPwsv5^@GPR?!I{RWyY1CwN>U2}RjkBn#Au<-?+ya{d5E9lDrm+4I zs@XDPVzkSB#h7uEXU#Mw3NXumG~6`YERW0m!eeeYn~r8KUj2wNX_8NF2!pfFaqH`* zW`H?4n(96N%+k7+kPKLU_T2b;s`A0j(?vGF{-?&oG=iWc)Jv^cDXpAY3eRgTfq`Z= zO%-mTuW<^O0y&0M6J?aYQ^=oh+myy0qP#(qDBO^UN4`h*VMv~4Gp*5YRK(Cm%{b|t zx9m1E;7b{G7N`7x>8Snh8P1>m4Cb1><(P-u75TIn4hkE1r}#4_y63kaYWfhd{3I(0 zt=Ga(J}1=Z1Xpkk2#I!Dm0%g8jRS^n(-)CM5gfI+P0;g{iKrRQGdV9-6ko=^@D<_y z6%ZRJEER?8uB2^h{m!KY+8|akr)egdOtq9%+2LGLlC|W$_Ux>WRKm4D2^keWhhz@T$|*$ zV~?Gvwy=zuX0;kpzP5z&r+}em@u+o|T!NtuvqrQem+nS2azG)z%ySup@_jQRTf{|= z;LkBrD5fW0%1J@KQEWBFYO}_WiI#NWQE24{Be<)kWYE%0W+ca?_0Y3%qw+`6%wa8O zw1o`W6u&@~9~wTIDCl3@nt_9hn)%``u}iCj5Y&=O2(65BdKQ(u@3L1Dx9J!yi7t#t}{){R;{8 z*52R$y{Zh<<8(Cn)$Q9@HBPoiT%7IU_~7=P+inEOUNU_vb^F#{dshKv?wApvqY1WQ zcWukz^YX&IyI+R7?cF`xI?~;rj>HF=^yfT2UF6g@<6P|W#yz5a_~L0|yYV7?!!VxP zSi45q&oV0(DX@GiMGlbW;q`QC z*o-Y8Me(two+?5tuRiHxo3eF?T<--(ck^9z=yjJ!M7lFNvC_?G(YeL|5{TcStOz)< z&bz?LB++X`YVv%9T01lBTv^fKk8pU85=V-)@4?CsA+#+8ybGQcZicMf(=G4 zki;>Odb>tXNZ!AJWoi*0e&wUy1k@g2cD~1oS4Lr*M4uw3lHQ&jfw> zhECz3?eU>y za0t?$E)pm?Q)5rQ zv?Y;0(Q(b4OauywE%PFdothPV>_EvVJI4hl<h?!a_wFNSw6AFjDnWE21|kOa-?5 zRaiCtF5MuLG~H;#&1XMuIhi2tB_*y_dbOG_scwnRt8nC~W&Wq8PPp&fVqS!KBh>Y% zpo6J%`UKUG~lo^KTA`_LTh^2a+kDg*g;>^Xnl$JO(Z2iFE=~wx6Hek zZK+WYC|ModP)JeDy5nU+e1duP3)?HWIBC%GLxfT|4vM-plKsYtKm%;uNF_BCRz=2^ zm|qnFRDQ&HonfF(S`Wz8$z}{(VfV=uNXnQMA4`wR@Nhacx}^TpT_6@btON&B{`elZ zfIQ%R6WPmFp5zMzA|i)nKi!bVhn`#@Y=3*=2mi;xMRvH*3B|+(VDr0QjkBi#Al-~7 zLb&Vl=CG6>-}6`Mx!de2z4RRBl4_T%Iwb=*CumK?|i;vFAP!Td^~?zmvZv{?Y5v`!-cOM zkv@lV09&4ZU;dkUUEccIy!|WOpa~b}gihtrT4rE&g=HVxCRkuQj-&^oEONQ3aKfT; z>t3dZ%=dEuT(IDk^MA2=_^LN}X&u*>sJO`Hj|F$dFPCW}sWShyuciPEt6qCY0Zr{F zJRh}MGhdNj4AoG^4H%SD?wktw2&pVUg_4+B@3g3l^l#jz0Z-aDbndm^d)cKsI$!{@ zNqCv$=p)_m*v+A#JT*Kp@F$Gl&@g0%_F@%JW(j zbjXsK->kEQ>q2%S%pU?&UZ=VRG6Dus|KrfTKsuD~EKzNl={kOR%a`G8C-MxTPQ*!< zq4)?WZZ+<)^n7yIjw1#$T}XN?d@$2cnFUBl@$4uKwp8l4dx!|8O4DUxN_;7kN-O{@ ze`*urn4{NySO=3&;r^JKD|tFSzAp?q+*npze7dKoIHnMFRqGiuSc?B0{^7f7fFu1B z?K!}LHaZELSszIEF<%L`#h{*J{waONU%rcyn4b#h!9!h=jQ>DNLLUW%QBZVAiKR8z zW-4+?SXHfM^s8`@q&9!6FQ9#ZAT%Q5zouAh*&`cd@{r4ejxYiFmWGXMoHLJ zn|vO!hiF`S!+_0Zqgzq>4bRI7VN`Qx&N4{BZSdK)fr-ftWcfFy)bM~}mia9u^yH-m zYJfJu`N3Bh%XFD4wFt>H!NCGoZ8f#C$VA4wlSBcPx9I2yUoH6xi!ehIc7}I|S}$oc zCch9yK0k&KC4m_nh#Zs?7Nf>ghR7?dRD3}U2%NDF5Os9}@Tj=yvYVH3Ae&c=a-3-% zHmfRPm1YbUHrMP&I2^HWeY6NURoyDHe3u#>`vxSQ2&~*ddVe^7sRj9G>NRi|uIzQIVccV0PnPkP{CwJi|CW#Z0v#^P5h6-H+&MRyPs5L*clD61BScna1vz4?DVM0_}%=)VQsN+3yI?> zEQjbzGODm1oN1MjF+6-fs2&k;SmkwT2ZHuyGWEdg^cLqDL02wtv_G+do-r43J9|+7 z37qowue&A^8}q=JQWb=Rq&c3NfF4pH6C9=>p|A!Tkn6i*NM|eoUlR#K+N0rSD1YEO zqyg>w=5Jb%Q^XV>>A>bC=5b`YQvKlZ{C*(Hp%T8qMVfvtnS24l4)flyQ$@AW za%@ECpkfRqbEuKhw9uJMT(c4mrHlcW*RmDVa^ndc5@Vcin4q!j_0;G<@*6h5FaF zsT8`Q+CK>l6)As8oMp-{c(kx0=|X*rNtXrA+!avc>|{{&aZNV*NYmd3+m zQ`A_$N`exFK?{sA%pUSy1=S4u*FIG}tj4O|^9=g04m{~&Wk6+!c zh!$)YkbvQz*ga5f^~cjyeOA;EJ3&=`8iQu3DNQX=PK(Z@M(6P?etq zrQvsTC4m7JwJZ0Os0^w#YNVRZwnmZwiIlvR&TmlcP0(zNDMzGpdzaBXkYpCJSGOtWQNm#~M;sk2HnqeCihN(A!*cU+1Jd+%pI zGt(kn<3Qt==Vev(8DcYu@7Zr{88s5ZxDB#Dr)A@fkX^wUfpqMdP zSC-r$V5!dkz@?C*LnPP<6Rxc9O(MTPB4fcKk&PZr10aHCDs*5n~&W zIm>>~+ei@IO%~;GAmur0xmYJU2=M^{E_-A`&z?!Ut)GysmbwQE0IA)4`ex0HdN8bMX=~~-B+g4nFru^|;&dCUAdQXzo|%XQiY(!XmCJoE<;85I{V!$@Eqaivy?ybvYWT)ygJKbN+6=Ii|BM1 zO82bH4v}m2gmea|Jj2JUxNluo9I`CdWEtD#R5FiPUNNk^P_WBy7U8d~2-qPhkQ=q% znb73pchc!}CRBvdgD)C&t?pXrWKhYsVUapj|e4YCSE2} zaS2dF?pP+@+eu5m8_1ysrV=9)sdtJP8WTpR4fS>kfQ0zrJRwN4V;-AzwKMB!qqd`3 zQQ`#X$fFty_9?qK3^`=HGgn5+F;onXVSk!CWXT3k7|ZPy37w%UKdY3&#AmQu7b4nK zHQm3__J;MxQPJRh>*0pPy*YidM(%L~sPvlDegYifx3==-N8Lwnh%SrN#BqpAE)Dx45GI?HXGBSDO6(-m|&j^UB3I!u(k{CkYYK0ffG zbl|VUy0ed1+@$`g;gm^BlL9WULm>GfQYWtW_%{NXiqBOYHS9g}pmTDG8lltaCJ-p0 zrJJdd3S_zY$g%hoe?PIUMFu9#M4c13JE3RE+dF4;)mSMfTJ02q^24u;1T8B8rRbwP zeZfeRRurf=pabSYm+y*vDIFl~NY~p^Ejmju)Jo0Tu>x8C@~L5I2}|pf;rLfA`y&1; z>m1}E^>YU2%(t36EnmjlkeRMT2%M37YPO%){=H)R72&yz5Nqv3QC#Oqp3o6J`%Eg+sF>8K~nzXb0-NOxe{soK8%@KKM~_IP^R2s z?@Ng|a2Js$SdyldX^o7{iDBth0}2yDDrO*vSi>Z&0XCj;@oh=gK7 zBNoYrq(uAcpMV9Uw z=r?Ja}ff&=a5$NdS(((up54u|Nc5_2%+mrJ_lPya}o%NtJ@RoaoO^jYtTs--;yU?oJpc<4q$vC@i~R+ z=%&uNjLkl#`CJwJyA&ucz_p@vTVFF}>#nDSNLSf7wnHSTA8VM&sf+N|2-oH75Kpy;23M+$36p5B2jcdXJBJ!_wgYB7eLMPE_On@#)4-0A(5_ zcu>JEH~83X%d?>&w!$y48TDOPANtFvMi~s$jj=}6!iq+*W&!}_>L`z7UBw1gbO8Uw_vsar z{%~4bADzw@f{N+Q<>HmRDpzKT3p+V~=&RA-*izAg%cyu17-#p6y0re+F{3pcH}bJ# z382c0^lPX}F3ao8MWm`&HC#6Wklh^sGf0atX!p@wZO7!h@d zSl+-@T%1;~(|Sxyp%6~8r0%Yvw-WawiA)ZXRe1LWYBr=^ckfl|ym=d&`o2j23Aso? zo4Tf7F!fK{s*!8NY6?PB(;lz9?EW26`|d?Qe>WVgs(U%Oa#Q{p@@|O0#T0i_?&~<9 z8ar0D3fbtfe@!b`4q9CNhjYPz?DX)@;52laS z=ruw|Dx3~TwD@I5f!!FKo9Sqd%q%sxTv$(7r1J88syw=131@r_I*PS{+$FsuY>`n| z0T%qK&1x8m_H)}MBP>{E1~v2{I7a*FN*DzTv%ZlbWJI4dWkfDi#g^%lQls`$T|UAo zF9_4ayT7FlvMwyR^CapWHCisoW01Pp z7`wi~3HXq>MxXU3=}`oYBr5H#PIq4oxs0OprZ0g}KMT_$5D-R!^#R9u@y_Ds_N=ef zSB*$feZ*HlMEVcx1NO?`m`ijFBdo3(o6@w(+BPRe-1&|?L3!)GDb~E>9yjIty#FIJ zGOPZN`H0df9 z&k=LH$LVLn9+WZ1q-y9iH(x)RfHFrR{SSyYHXNuCj6xlll?ib6qp*7Jl3>cqWFX;R z`n2U0Jb^inN=L>)bHlqgE~4!W}KfH`16Mr}zTJxbJ{%cXq$0 zOwWviRr(EjGFqm>CTQiBXGEHJW8I>J?_q}DLt9d->M^aGwuUDw9@KMj%lGa((v}|E z?1q3XXR;O|dRbL@W@3?Qh?Ttu5`}+F&~ezaH+V(9|`r%}tRk3hjT zfhjYNh8TA`RE3cZV#snUR27-Ev0b^j@1@Zzc+}|fP%jzXW8Rrim7K9g%r=G>JSH|^ zSTs8L)~{!{ikiB(Yt-0rpRu}XR5tc$-gUQ2q7x$-p_G{W(%X<$TMRW0<5W7))ZJrn zqeB}a*nvUP6NIoKEDH&nw0CV-`HlwEEH8TJyi*7&8L;q`wWBG zO!8Zuv~aD?s87dIP{8x_b3r$EYi*mETckGiJv9MNc_SbrXuV7ZVM^U(Qsr26gAZ*@ z1`yCN_zU`zu3HYOZ==)W8w=gRtWdSp>6iE%B^5%ARbIN!=wZ&^OO`NIwi-Q!zK;0> z%FzYoyKFze41$5V-;OdY)R?a;jGzzDaMlSiQ0&8@IN2^XpDYm_IJ6&A7dq4Fjd%97 zAMWR;Z}tqu_U?@fd@YkBs&Tw`G)m4$HL4L>sf*90*%TB4yU3_ye3Lnw#6OGSP)W)7 z`RVez%cE+V;tmneY>5~NIeuXiS+_OUiBGK(iS-e$Yd*_4DqO2?2`F9NbK zkeuWWL^Ka!89-qQuMo=d@{^z9qFjX1I&u?7u`XiqOG?>fCgIZrGGGgeat@-vvX4|= z4W+KkPQfV8KJFgV@`x&bi=bU@mFnG58OuHV@-~0z>OMxqGCH6U=Po7^zEA^V{450X z_aBUKZ7Umq$Ww(7;zL9PwDl4C%!xVU)W!!1u|{&kLYe`0wI}4gJMwQ+-BAy*C5;dA zW#S#Ahaep_4oBjzZCqg1CVMrOlR(RLFA4n(+N(rMVUd%A#gCAF0r^$u+A-E7!PHD|}|7B{t2Q@_Dp! z&1|v|GWsnwFV_QRHW-_9bDC=2%t(=Onyl6U4&DNf4ayBiX{Z%n9pfrhp%xS9_lJ8g z&{INl?pnl1$JipTUq+4R%V~tMh~+iQ{*W0$(>0a>XHYO8RN0r5!6G^taGD){4Dp>kC%7Ve==1t?#%7vv%au7^LSKv>u@OiB+@@Vqu*!>1IQMPqVZVLAbWS6fjGcV9)QU!!BzyM_ZR&sh&T*Qe7;$H*9TSm0Bm zEA;Shs+B6B<%i!APs=wdE}$ljiSxY!uZ@myDv4IkaCN7w?HUzNyJDT;ktoRoV7Y0M z!(gHPwYBKc>Zp9Yi`}ZEN25mNSBXO~n7jBhoGUR|8N%M~Y>K@kSlr@A3ax}1lU0(r zidtTMj1%yk$8ec`-5!OaTp>}&heQVzQ$l1`IWp`kLd19!{=*C*Gv)zeHaV8#?4vbC zb%NDn(S;EHFEg@_sHdBZr>TNA>0lK=Y-?DKu&5Yto}AZ{DFJE>xJsEt00mlJ6(PvI z5(>ht4S)AaTRX;sd1x3y<_lB>VnBwSe1ZN&8!CYD<6H0$g7xHUv2VlTuo* z)$mYOsyQ@5&wI<0sNN$go^YvB*-MlhM>US5RcPnHBK+dX*Ny4NI|^N&Y4ctH8<+*e0Y*!}spr zeR20Wc`8y8utN-&(35i`tbs-ngka@GR#=##7#pJthUpQu7jZ+t6c>LUB@3Pj9VO&_Hh*|U52I_A!9W7opQIFg+(rB?IhufLoGk%(|x$Nj(Pz{D@sZf_YRt9Lq4QD zDRGy`c+$L&)SUU1Et4Sc3!#-izR&x3l%Ral`m#Gc?sf-!i4|v!GslD3tljETvVTq| zTwt>eF%&1NW@;?3sws&RnB~?3B5J)r-s09nOGJIOOBd2m;M1Uk4B@YO2i2gF8nd0h z;c5576-ZW0Z!nC8*_2VBV?cK7#tdp(Q} z#AK3#VFxB0#Xb$Hh0P311Ww<^PMI98x6A@f=?SSKHFSBO-9J6!a5)-c9&p06j@u`k z8Qlrfr7JQ{Y(9BPz=|tpasJM@Wvt19y{!HW^JMxE`8TI;Fw$7=LQ8bFEh7J$BlG4` zL^MIyLwG=PIfylua>}R~{Hs=LMt>)$z4Z z#&jdrIMP_N);xaHf;U1b$URJ57obY{WHt!HNh;r&xK=`j@&dV^!Pml;4jCx#Dp@ew zQC3@eK?$>xo^6B)DawzZ;!kpE@U=7p?3M1~7&befL=4DyGnDbqbg4nIzh^EYS+K@5 zN4fr6S`3H%=t?Nj#F#y*!ZMbP+sXWV`){opGo6*|N5IODz8TRes*b%N=2xu;L6`n) z`wlgp8gleGAD)_XCFAObT#Bi@@&f#PzAD-x46Ew3RiLV_e!DVV;NZ*6-y>xlsp^)! z&X=m|10~8)pSswb%KF3VWUBC#mofHe80w1pIF=4WBO~Gevr-AGT;(;A63?rWURILQ zC4s6vAFoa_#xB=?{}dcyOTLYjqdpyyIdtN!Sh$%gr$ZRYL=pA&b!0kNaOrBeU|E6% zNNJW!d>5{`I<#$GW806v-nNbnYZ6C@VY~2!i``dkL^_N2` z|N4RaTY_bM)-cGNi5VX9JsxN!-z#3LCd;_}f z6B*Zt@9F6?2_CS#_P~PUKn7B7j7_u>6@SaURp8e7F~xeS9+Fw1$uvuu!uF&uN+CR& zCpXQ3y$$+;$ZuesK$+O+I;B3?lM{VS1yflw&%?(0h*_Um(r~7~h>wsShI2*gcBrvB zggY)7Dy1;Xi(p5btEE6CT<;EMaQ90{jhrK@+X~oDoepmkh8-GdwDMozKjQTi+J3KP z_EKm`L|@`cOkTv}bQta|HqC@F+`|=0{*Vqty~3iJu$iQs87Eg#&In4volKRO+%OcT z+8v{pMvjb3$4pXH(aImv-ZSM_cz`-ErRIHM4vi(wDK7`txzv)2OSMbp~{= z=79RtfTEa}iHY|kWEN93nmL}6qS8R+)#tNau02}wPz{sAkSh0`?r6BD4VTYOH(aP3 zc2x1_(m&UMHs?e^Mt;$k;fVqbRBk`$9CUfo;)G$X7vmnE#FxVbpYZ!X4OP~q?s$wn zQORBUpjn`l?pCf*5RaILyM;<&FT+6f4dH(>fK@%rcbK1Ota3f zTn%T-_<*Ml*MGT;n_$OL2}BeA2^rYq0kh2H5#zEDOhxJWyDi~E6_5~=%7XMmZ!nta z1A3V~3E!`$LoBOt(hz$aF!=}QsBQ>H(3n>o8%|#l8$^H#miKh$%9wYaJ^0x5a9bc8 z#JJ!Ixz0ZbUPoHL{*01uAHmbqn^0d5`&q^pUXMM2Utazlandm~$B7z%RvC>c96(D@ zYq|>xFAW4;%!~>P z914nMj4?_V9ev^6$c(Vee3A?b>hw zxpKq$3q>4rbl}GfJUgIZDmwCnsl#5}Fr8r@D0uo)l4o-K%$NK$g7V3?hdB5>M3h4t z$!5U(AH6@ee)dnT|M>6!`hVf8~zWMSTCVGzfI>oCYL z>R_ce=oUyTf`j3zf-@sxzDV=kxswBqV=e2CM%bTcmvCv-OZJU_poLpS12yUSf#;c7{U%VxIB{Izk$&UI!iu z_IM*RA5D0wnwpHDG-~;YZ#=1@_)S<^6XP)ZfC@w>l}TU-#wmr}7*isCm9L~q3`ici z{9ioKd5}<#pY+?4!%uGi6s8xC0HM8#iG1I$M)KXv^CFF|bEovjQlmZ4>XvbeIZ5#VfqGh0Yb&ig`S$tdwM z+hX{*8Yh%Sr0}4VR{IE}9HBm(B@uP_jbZ+Zn9Y*KsY^){jvE7@a*>=GcC6P^bOe`{ z5T*gJmMJFCqEQ0k%+3)>e$d6izqU=)MN-cNEk8H)3gsVIR`zw<2_Qqu$iNDoMTMf6 zU|ucuM&=|rk(d;4s)jS08!mp~&h}@YiMpDHS^n_b9wI#M*;c1dIEMjp?jzoc^Wd{s z@1?{#!NMd;2$QM5nsQmt@)uNplf&Vx-$4i9-NDw;36>>@8Nen8U*Gc`{(0EN^oa|z zx}Dj`jH9hc)<5;MlFck5PM49ukb8(*mGV5d{`JudUMu0?m5D{W649R=9lcU*msvBO z&d+G&?MIlG2e2QeaJG{5fVenY1*ADqPh>IBm2=xjCUnA0xNcJTrJ}tuM!Yx?5dJhC z?QQS%DN;~+73MSNlqlC9QkurlKf1w;*3V7(M#8mgW=SQS;pYKm09f97G?`$r%F6{h zfQQ{ul?dw6erG34ryoj?xlTwVkbEio9heI~*?;*_kd&WPIUT!mE-6|(qLZ9+F|{FS zjpQ2P4Gj*XJoiw7gMod6%8Jp49An)ADJRX%3DJIA#xo-2qq%(Bz_`Sf^PtOrpivEl*9FMKXC* zfw00q@!7`Sp%=B_nYl>>pBJ=Xz$i5r1zY1BA}t)vL$t|R{ulC(h26h~GP0lf;!J>1 z-h4>yK*Qem26GUT#@!YB5tg`x1gj|C8hy}dUaF!Km@ffT`Ap( z9Ut(4Ks+bu9t>Xf#zVfeu_gEDalbhO5o7m7rd_4(ofeuN^?zg`%1e+2SmBW0GQZJw zR&RhbQHZut6;NX!^uIf@iF*=Q+*fx%4?w3l0Nx)3!-od68*F6Nkmk!~>a4U;fgT zl(+;0mv38Yo4Y?y>>K+CHW?o8OiqsI43)0nOh!rRL{9lJOyOW;YI+MJNmXEGkJDFR zva0~d@_JGpwmMY!}KpA;!T~cWs`YU^#N?7h*EW@h;<^ znA=Hlj&Tqx?wpw+A$5nz4+kx6gH^!zl6w#!iH0LUSuYB0#geG8l}pC}eB6;jD*p=N z?9-1(21pYU{zN(x{_`OVhv|!q7sznIehK&BOf_z%i%OyW5wj4aw3ZSU@`G9H6Lb0t zif_=t(wba+KPBFE`^jW_5?dn~U67q2Oto9U^2gtpq=;>rpXgK>ZbdSj?9;KYL6S@6 zX;SspXa_QTBo}ssRBk*pwe7G$ciy~2v$Lx28tcL;6{D0tv@~XRwmAk{Ut=s3U$qAZ zGaNGvs@$Mx?T{JC(%1=dE;;P7tHRF@TF*~#fc-Tw-ZW*U?GW=he9u-rhNC*;7WH~$ zjw0p?P7#D#R1n1uaj++sWHshkZG~B0k0xUr453X1rOel>cE>v$aH!h6hGNm_p&gi6 zdb?DrQabi8R!3B3&3F2U;uZ}4=$8ZD70eooF*2!>&*kGS% z(sV=G#apx$d`F;IRgU+u+E$^#A4GqLIn2)Q)01jmsv2Y4e;IHYBwQh7{N>n!aq!&b z-HuE_w==j6Og-Q-J5z4JMM+@y=K^D4%s{K?*)=UOs`O5)v%`UDO%F@n*av>q8CrY{<&%1#Nh@Tzpg5`#+of+0&9R(u03~O=wKd z8N-s&XVDt=90Mfa=eP`U?bp#SktdOc5Wz&iQ@vzs3Je$lHr2tAC8|d@tPTSt;9MQ# zLsZZi>&$DToFzvQ`G&y8NTc_0=`GTr|q780flPK|5CSmu)<^dJ&G5wmcZ0qTgFvtW6 z8yWtiHph5Gu~-nHB3{k1I)V1SCab$ho109&peprlI%D{&4>;SUdyh>sKgC&N5M82H4AC znqY1=P_HP-j!C}9PvJ_VkT!~&5cc4vpowdSKQoEym{z@8FZ4W;2q$2>_m~}Iwo)-o zu5ei`)ub`@(j9o8x9g4W$ZVwRF-a{%+F%9s-2y)J8;}m&qPhrYAUkxcP)ki`76zSg z7|Y<73e>%hGq^ar3-`mtx3!6Qq9cMTHzSkTewB4a4eRFzI-~v$-El$LCb0~c8^_Zz z6BSs-gF$u|R5s}AxGPS1PVC$$ILAy30+z~Co(|82lZ1_20n@of8az4o3CUe#0%T7h zzPC;xL7!4fIHJ^$`(*M`rO)%+LVoNbCkFsYqvP0D-=_>EzSoMbG?5@OLm?wAjf+iu z(A{KM_x=w(jmtxjR-hb3r$c}96P>}xCNgC7_XIWwp@1T^hESw*L%1VN;|oG!a+W|7 zTGz@`Tevg@r9$oEp9v?HC8|Cm3GchBk6^RGOW=(YGwRP=K=ES8rEhYnENqe?P*9Ed$2-IjaPi_6u-^WtgHxnW=4R!gV z_k5o!Lb!EHf-cx}y^gocJG3h` zGp9i9+2cM&P==@IQ)h$|wPuN%f}`X5sNSI9S`~m+3W@>0u-)Ibofg>aP6MBlU*gDk)I4D+>ihE;6GOXKsWnP+S-_>^yzIBpv7I0 zL%Z+INTHG%p(JL{hnx@yGN}Nf(sEJ!idgmgyYL432m~{b8TVUCkyCJ9r-?`Ts$%3} zr@>|9Xw^SYrE76UOm!4P>_gm>C6gHt*9F55V*=Bi(nXobF3>_DD^>@gKHGYHXj)xj zj1RGuS-Z|>s<=I#>+nv3M!Mq4$`ig7?hZ)m!V)=qFY>ECY90wrayg0NDRbJUqn$d+ zOao(e14j}u4{J=w#cTUzes80{g-pT8{q%^Q8hv-;2JVI!U6(E0^}%rK#_bzN@|41M z?-N`1nd*d|dXE|7JXx|@h4Z8z?&%vaHwoWeB?dXUE7@&R%$>Ik%ByXuDbNLMVPD9k%v;nH5JzkzT(p zuSaqd;pqY=0z>|f1Bwc7=3*2C`!lIpxf>`q&jKpnVVmHiC3#AE_Fxhx%+vxw%{DQB zx`kzr&jv#u(as#E!B)czVXU$yTix5UhouGDXrfXO-AIVq&6kK0%%MGTLkD#cujU!& zo*C9Sjc)?1yF~pC3(3=qWgS+t5RPx+Bf_2huO!IW>}H?B(9sXS#%I$3 zpOeg{mz{>Uj^1=9DZ&o-ZV=Yl7(1TA8E3}P?Wx&Cj&jXBZ>_Kgq6M8>@(%4nO;bwb z1@HKQq_^EWi}xRLTmGd{>pQa@tecQ>qyi^hgZpHEbM-A9&Ga|15u&4+1?V;@uL4(3 z<8bCQwrX4LDkd54Y~8R4vK9c{xkdfkkQ5$l7mNw8rx+`~laseh-gB+Us z`@jOZ-pTKdYHD!XA#GzlPHv4kdp3D)t8$Y{5w>cXar7VwBuxzrcb7ueg9xEnc~b6^B_XPD(MW8Jd8<5ctW(b^^9WIb#l4HnPcw-# zCU@Owf?+v~@Z4`WvjhqYhTsTGh_^)fdY08yqPeu(uQ4g3_oy4mC;-ksC3dT3<~bHGg!-uf@GU5N=**(!5#X7&h*APXr@eN+hbX zaXThL5bnk^PGuF&@lAzVGBis;JJMog9SAqn+kWWrw5o60-wR`%5GikNazVtMNgHo%WHa) zG`viVu;~3uV~S^d#r3?3ObyS<9?plC$WK2UZTI&px=g&W5?sTj6hpZjbf<&68?Xzm z^PS?URnQ6avR?j>gLPLIYohmsX1x0`JaL-;+vlkXYj}D5Y|0|w`;;orMjbgu>Oc-ri9{bIYk7HKMohai zDlx}~1$37dJ%Kg@bKC)#yW6Q=$dpaak&ofr72g$4=<=fp9U$KN6bHxb01N0Ycph5h zXQ=u00GYnec#G@C*JB@{xX8u>S(14feEbHKJMJEj2TNrSP>6E zgP9l&GN3Ib!{DA@wOBt-_4mk}O_a#YxGuu_Sl3T8Fz)?DM%5y$AyiTdW0LTr-6$OG zPl%I#p@Q>*v;s=ty7P-fZkf-cV-0-;!GOr{f*KH)#)SCMOr;G~h8{?VVG=45`@Qpo za@|b`={e;^2DIgn&P>QG6A@f4Druofe$d(6>26tJEbv+;J3@I-Ok$+IP`kQ|T@~L_ zL!xn68R3W&j=Yxz%FNIL=Vg+U7O1-kKihD?14h$>YPWXRsALnD=pw_GgI$Obp9)D_ zLVL&3O(b!95Hm>63 zM5qNSN~j+siRV68l<$c*Izt1k>i*!>9%`si(RJz>XiZ_|uLu2Jl9P;*$Z%rd;OS^H z@@$dllZv9QV2fszmU=4=nH5__5c?KuIn{s^a|%Fs{~{`IAkdc}4s(T{MPDQ&BeP7_ z@5Kd*>u)_8*{4cCYrHPin`j}AE4z{jFqxLu`ZjEIt*fdu6QIN z!b&Jk0(#iVP`V_1953yWMaFKaNlvVv7^A|oRMV*IC~`}OdyRbTjPt6Gi5yN2H$JwPdn(D5zxy9Z-{Xe7KaI_IIfBbR!_B5g4*%*34ocLnHdmxhF+}S z4*e2N6yVY#+Iql1B7VL<=xE`>&a3Vai8|JUSz-eXJgEefyYzS;o8vvyC&X9*{JE#W z;*LV9n1HP``i$392fkm^3=r1qil*`E9sE{Y^w5 zaiTw}aCxv9*i5oT-MY3DbkrfB$)v7|>j(W0m$+KA3AtLCJhEP{*kxpK{6HsuQE5Y= zX>w)J@CSoBK7}}?bpuRa9GwCNDe}ZgCnL(5jye3FVU?iKoKphHRUtE*yi3PpT4DhU zORo}*R)OJTn8E3C`==Ts3|uQVH5j@s_%U{1{UD?nml6a`pxZGM)w~{T=Ar{ znIWt>LW4T{FC!#qLD+XGAqOrbGpYsqLV8~s+(OE^DTFSfyY~+}tUTV3Zj7XHWHT@9 z#g?&Oyr5nT>tWGhi34(2VW zL4lwUi0Q42<&gCVqM7_@<5&%)4~G7Z4A=|6Yu(X?CUrS3|4oD0|9ae&hB)7IqXnvD!E$MP|0{D zW3lj8gu?Le`6BX7P&fM!WU7b^dh_fKWpLpz8(~?7Y{qU;Jztk!jX_i|%J#J>ykU{E!sR24NeHoSMjQBkN#*`%3r(mv&(!B_}wA%aY7Uq>|J`N>34& zS7NAU9uBq;m$oHYT0CMWz3MVumT6KwQfZy1aBl8l?`N2_J1}>|2Z4< z`e?EVrmfS%4WIkqC%F)8VY^G7l|6spnw;y-pPvXv*hw>;5$h6XLyORr)0>9)t z-;);{ca0q8UjHrg)o#O$33RaqGs0Iy7cVvG5>9(BKF8iCD&M)^Z(o>}S*gVCh0hav zFeL>)R*b|kpx8@{IokIjxw)uh=M#1Zqi5xD1~M(osQ1ZK1;$M)8LoyzLkJPV86`O& z*XbC>P%7Fg`Z>9(6IEMlP@y|0vacos%4eyFU&@Nf=qG6)y{Ker2siZ*-^a$wyY!%) zj~Vf(byM58U>xc_5I_vxK9(=mNRSUKYe=kwD;<9{YC074Uuvt}LWMpQLZ+_6so<%M z&6_tcIRl_%N&(k@{Dz9CXkjK75BPbacz1I*o8jBbJWihM)T|~xgK4;{jw~i0z zH#lHu# zFS|JTfmk0vVi2}sdNX4Oq*h~Da1)q_HTQHXVu@Dg6{QD(y`q~dPW@8fQ~mXZ-v9vN=*Hcc1)`R$3I!n+G7`Hq9t9`4wI z9jS&D1Td&5k!G&1!#96gx6U!^>m-`&!QF@V;=oK8PEza^#XkHKVD7gQ-|vK54(#;( z&$rfh!bMC+)mpR5aBq{pQ_c+I+v&0h++DF*2ZH!hC<=3Thuz4- zZQPesP{$`nwuXiu574T0pzU5^HO&>k%9yrfVj;bEZ|g>*09G0mk(0ecIG(GYCKbZ^ zu0p&)h^m0dpGSSw5FmqdLgXmg;mB-^GVm!R_d5<)<5I5GosE#G?0s@iBrB3- ze|{G`pFZj!z`B6Hi|Sd$GoWDSg>z0XgKa1`w{++JPt9ss)0D%!o{SdEct3Qe2Uo-{ zw!+#6F`m1)gkNZHwM29(iP_`Uf^vUnZSXV7ORXJR6_@F8rR-l;nlX}_zDtO)-FCsy z^8N|axdm!%GD!t=7nrivxllC*A)8YMlEu3+3vaf)0nFwU&MGnb7jor-C#;a}lBb{O<*C31w=ZS2hnL%0T@Wx_%TxFqHqAVJd=QKukZ= zN@b@$PY@$L%o(|p8KG91Gk<-RfhBn!D-0?nC)d&vL5wyo}Nk}6z=a12>0hBQdq?r^Uk5Mqq3`p*ZHuo`K-Ciy0NgbObCvcJ4 zi-XrLFDq{;MMiKR2jmTyJ@g$N!cg%=b}|oq$__Lf62*Oyf9!t|7!Zq2X71^r^6P8P3iw)N*R4M8e-1XBmN}^Mujj)&-oV-ONw2 zJDSVj$7C{#{vr;@z_F{&@4#V zE}$v6DTJOv)H2tWX!!&^eeq!dNCt4 zI&xyG;nQ_R(2?_a?&5t!foOp!$|e*#AbOHM;2se}vtYHb)!r3EJ8c?YY;)4wUj~hm zFPX(p+hecgvQSC^q6Z2RHqdDi$%OMMkw(Np3r-1LqhD4xyQ4AO#XIc3Sq)*%u{>m) zi88%IBvH`DXn_Il1Yr06(u0*BSHHirymIf(!-v)XtoSpkus?tN^!_rb>Q9(4`X5SG zl`{GKC<8XhWJF{l!+&H3>3@&!E4w-NuQJP!JV??g)2*2~o$1yXH|o{*n8}~+JiYVu zhh^n5?o_N4+@EWR>T4SR8KKHecp4ssQ=w8ashv#0f>bB(dUh4Z%`7qhvAISH3_P^6 zBQgpsat5ngIH;6><-Q?1RC1#K@wfjy@;=9Eg#rkD&R1MgCFH7*^v>`0!58KGzwTP8 z6F2~P&RTe|tnl3m*A$SQ2=6~;cM*KPG1%qH8St;sdmEj_TTJ(!|C#%N zEZh5!m&jV*+vp-_2^|pF(6Nhk$(ypFnC>i*jT(PpxBoMrxKjo|vgb3WZrby7&D6n0 zAK}_Bwe<;5cVUTWRrgW30=e1|6EnLn;4EFGc=xqthIVEjUz7J#35AN}2#U_F6T7>p z@og8;f?}<^yB<~Eh8yQ#hoa;GWilqtf?(%WuloXX-iS_S-YVz*HBTtQao7A$)j$6B z_v$&&adztORA-?*1*#Hg9E-^xCTnx#L+L9_j@)5fy#R@r8@-=N0;ll+?zQc#w+*R` z*Ctf^xpn=k(2xkmog=Lvm|E_Us7-llsAbZ#A-kC&pGZtl+yc>hAY}$ufEyE>@dW)1 zJ*8tck)-0t_S=7o32J|i{z@^ahTd`d)58ck`EWZXr|o+++Cl~WVp*KnKE)A&{!>iw zf^;Zib*Px0-`bgGW{wwi3d9((_%u-6`w!$!7P+pBsz)xdw4!_#s7K6V+xp+#clljINO0Wj_Y`{e824#&?G+xJ zDS5mzfDL9hxyK_VIBxba;RTD9NiFP-P}r$M=Pf9Kzs_+XoM#!UrUJ{(REL^`>E2sf zMqMbbBULSXlEzTEx=RL3XCEt7j}j#(6*tUqlu(wFG2t++e?*}PLlE+Hk@-PQU^s6_ zs0-l7DDIrh7TUzcHKGC2z%E3aQ>Fy52HKUO4X)1VFO<|lCkG9I%q(d|EY+y)3xr~E z^gHO zAhl5}Lj~cE4V*MX6MWkrHD2ZvJlvB##8p3hd5h)d-`~=ZQQDZLf&>u#jyIwAJoQvZ z`DiT5+S}@=0Par78HX&J*P0y#xexd6##-U&Tk4`1-(7lAQ>(D@BK4XBP|-W@Cm8$r za8)hDn6*spl-HVYVD0C_V1c=5F!%FeY{C4t$rG0Fm!19o`U~jOaPd;i+JApby_O`T zdu^|@f;#Dpx|?+I0G2^|m* zNtrVKF)rRWw})yTtG&M-;6hrye8BWiL4-{Rzu=HxLhA?`cRG@(R#%zCYW1)GT79BV zf5Q7E{$Vg&-E7ryE%3=(e?Jo*41GyhH%*@_WLgU}=Fn;SW`x@wiub`P0c}D8<1Wx% z|B=G_!!K&s3D9c#YBRf~;8?jq(X$*5kBypEUhr7%94G;lHK%%SLF?T;a#x#CE3ovN zZ6XMj*^{Vl*E;km*j)P8WNlIms_jhKMJSlZF$sLKOML^@r}6D@Jt&!2R}`4S{Bj@` z;dtCwSsXJsi;9`ieF>T#+rTPjQ!I!c^NHlu3Z@@^f5OLt^CBLKQE7!pGNdgO9IuWYDk# zV4jb2%>LKdBS3VdvY{EV%v_4P!m)+Gc@(~_1iT?1#u_!FSP44!S^Vv(tu|aMH*Zn+`IBGfUgnoX0ID=k>N|g zJKN}OtCKRjmWb5NFY1O&LUkWMLZrd>povNgBLwTn?KRlK(7_6Bz$VgQ?ZXUfo!d8W znx4o+BgE|8Jd!;|E@kl|u_!({opV@p3}cxizQEY6>yfCp;iPi5*Db)0iYm?#19Ikt zDy#ifW2G#HZ0XGLgZ(0Cra9AN_X zZF!`OsEU&A;VQ412ZeCIeU5z@RVF}&X9ZKF_iAHZ8^ zaYeuehh6FOtpbF5U!1kgD~F;gu~U0{xL-SE!WZ}(>0OMZZ*L6brXD@QWxzt7=fRo1 z!5)Q1!n0|bc4Xuzz2_;^2yT{*9(>_xNZ$=m1su@`hCoJ3*A`FviZPHCEO&`W=|>w_ z`0HlL%8cW*Ce{kI<9e0n?jkI+*F|cO@zb5ak8m29CS`^uPXz*fRhQ}A?L zU<%mHKU#S})Zn#>0tBb_4iE){H5@luT7POmY0C-JV?=lM5k58v?jwq*bs~~U=BX8C z_{$Fzzyp|@e)J5nHBS^ABX&ZrC^RyW88gvJ@{SUqiwkhP|LB1Jutj0y!4N1N+nX6# z7b2wRp;uxm0mxnU)I%aILAE;zTa!Da@@UH%b(w3y=f(f?BM zdP{0}TA!6~;=#;pnMud|5?1`Z4y-mV-&R+njb~0l^ijAa zNf}6j>Y}+oL@DCQp9?2#z=DMA)V=eQps89t5!JKk*gl-XOI)@Z4m+CzlbN|H0Qzod zd5z>g2uU}d0B+$N*aONreZMn0*hRXEJ$TOuU@iVFo2~`v&Oi1HRPZIBxD@UM;If{l z^-(Kq8AnS^HoXwlfbO&sWsP-BF69yTWCv=?4?ix%u*5ULrP}8k1H@uz?YjpONN)6mxQHYqE z_S#i&A*KRN=0#xLT*OJxh3EBkObTWz*<4R)x8|ma)R`lDz-z~FFyhZ+Q;iB&r zf49D?P!AgQ_Rz;9%_xW`@m3iQZ~wD6y#06gWsAexDGsYow@BsE)r!3hb}?l5{qmp1 z@0Wjfoff}eD!<(!!d>a|Vk);L^(l@R`mg?3jDGcZ_nQ`@UwwyggrDIdg53s-+I#jg z{rL4ii@mQ?lKJ&_u&q#~kfY0E4zaFzb+}HRg+^{^#uz_BohX_+dC%iwqJCTxL!~fW z0Y4sf)^Og@gBc=I#x5}hr`L+u&}I;l3HVZSi)mM$wx6!N{9RVS4p*q5m4}xhyI;@v zh>z+Q)CMJ6Qc>Ocd;S}~PsY8ny?j+kCo{g0oZ;0!MXHSQF!%?tZoTk!5`aLIOq#`mK|9M;P+nj;Xxm=&Yr zFUu`hHy1ckO5mfO=D}q`^2~#2`snxzPy*PUd!Pv>)F(m>+|(j0YMsRm*N9t_`S>E- zM0K-2@bbYMZl+^|hy7h7Jg6*3svtSjk1sqE;oXPq2?OQIQ?5RxGxpEo>HfZU99_K= z2=?k;b92CJa@Udx96e$Iv6yaJf@!0@N|Sslg6B=i zE2fgy&qg3fA#LT{{lUKX2whRQo@U zj^$JAMn9HNa-aX%^TV+;F;5llxf%Mk2B|=BWpL`vZ!^A&(Nb|4`LeIU2HNId_)%`wkR)3mIgCw8F%Fo zs}HW`a z0P1wX74F-LL-Pr-A!iY3oV=_i<0-Bwr3z`qfbQ($r{;>9xxsJ?>+&x&589WX6}Xc^ zu~rV!ZlSpgj{^aF^Vz=)?C|_?^6yEk|>9BeOcQ?Q6 z4+neXDy@F#kbrkJfuTxI3~pI2frEE$%_-QP_o0J44hYg*#NKBT{JN3Cb06N>=_Buz&%oK+Ku0c2 zu@2z5ByI=#5a~UCf){Bai0>Z;iJGa??M6XUWO`MH@WMe_dYAAj_8pnX(zIo`uSm)naf3Y`s1;^@^ zhz#FxySRso!}bRV$H3{?@?dlP3i^b`Sb9LCgkq(Vi8e|FYH_O+$Ia=r-*ITkDXL3I z*WQ&%Q*t^fhK}LP;1wmWqVnbtRbH&XWVR#0*AGk2Uo7A|*TNw@OTVa|G6D43MI?^B z!1VwyAIP_Zf`()#nr0Owr(z-^;2n)@l*LPfyH7NLM&6_7nV7s*Lg7{8oMO{xJs+3Fy$K~5Xy1KJ`Z*dW}DU+`5GHFbzSpZQDh-3s@fr-O$cT`e2@M6#ceyoz- z+3${QyEAI9o*C^l1;&xmQuL=yPnf~{K;7fDgFcEpH1tGfi>T@^tZDV#8Vx`v6skah zG&@gy)yT2*WkR`?nXKnNI=1ee~qPlL}bhRV#3#{o`-{7g>8K251M!ll>%KDL4!!&;9zEJS>}yxL@t|Z{L`UZ~yLY3K!pg=Sz`j z?HhDIspXYzY+Rwhv3c!5-_b?5)Db7C8MnW%9ArEnk;wZZcM9MtX5b4ja8HA{5XuKp zRCiWH?@y-1$DsG8zq{WFy+1+DM1P0Xu)4EP@*g(l+|Rdfe({Df#t2@<07kgI2@=4!t4l{x_@+Ky6xKFPWA}*rs zlW*kB<4mMTXM!pw(tX&hRY38G(Wjar53#Q-TmQe6)k=B;mx#yAE+Ah^$k;H_`IL$Ob}lh4ao!TwC^aV@(|NeQeaPHA;yl23kiU9;x(&Gpf;WS1 zeg(QudsJP_1R0QV_(=~rl9Sbcc_(b~>3r>{jC($lrOme+6SS7@lGi%rWj+N)PMhWw?s zigRALi!p(y!tBrNCayd9E324~K^J;iMCdE1WxrXXnh2n^x=K4Haii8GzqKY#2}!Fa z0N}phF8&q z+FeZmV!Pt6@2a2r!!as+#m9rSHu|z*M7};TvLRVD0P4F6{;AF~j<0Am>up%wwr{K{ zSw_wuXpoilB>>zK4I}=-Ox;8N1<_hZ(k_)bg&9YIc=9JX>(&lYWK-hsX-9^nRd_ur zI*mkK+dc-I`(g%3f}5+bz~Bb~oaz6J9}{87j<5hctgF4)evNo!wR`Vgjp>SmsJGW8YP zv%WeZoak^tm0y7t8q38EeLJPlVSsY8_dTlIHsM7|o=R0FFG#Kxb`3p6vbR^A^$mlo z(bjm$lpW7BiecR4C&WBWEHRq-E@NcQa?8$mii3eISCl!X%@8CMWa%CtglZExn22ML zts0Y>_oRZT*(PRcZe%D%V9;E(fKpur^70R1J;g51Ic0+Sgz~+NdMKGFED2^T8IrMl zxYRoQS8KR2fFDK98~Wj3&wt_&ufT=hCR){SOfCYJJIB*iLPSVSAi{#QwoV%?j#wxg zRfIB!Et&2QQ11Lwk4l2}!_HvMyB(%{ha>*4u`AE`>oXJu$6X1&6hwNCdz%MllzmIb zbf!SHam^rS)&NVFUynz+#&hR1cn1@!CpQUD7oXzRHdmd3$@B~2Lnt66B1b6h!V?yv z3Qk}gu=IZkCe747N+1N^er#hD^ebxSqdJ4972~+sC-_K1_?Syu@WchF{o9%|Y`U_5 z6y8OzDyawu#}SX8+{Ps39gVqYABV_M7;VFX zE{Noz@|pJS{Sp{nfg}1cc}nOy@!cP}`I3_yflAXS?(_Lcigy@+UVl z`+N|PRBRNUP0xGNHJPX;{fXwh7f(?zA3Zu&SQM&R2$yDp?y!ndng2 za8MCN-y8$t-n-j_5z$ixx7fOW;Vh_zE2ZLL%h1&M(MPqnKsA84^UFQXvZ6{a;akYY zEPckrfJw7X1)WS23rt8zJ*N05A{m3ZPc;m;>aMK~aooV`?Wp=x$ja5oAp04~=}CME zFx$xbbA62Dwqj95kj#!a2mu>;)jByW3m}Zt{dK-q5;dD1}%?^&P7A}FJakrsQHx5 zwnb)%p_qwg%~MR^*4kcF5n?(~iP6@<%t*7$pb#_f^_haes`8P@IM`)aH1L{#XrJ=F z+1ZTL0o@kH9b1qU148QuLkh0CzInjqbaiZ5uO>+#sz;c50tUp}&A~^(9D{hX6T|d* z#%-Z9+P@Y!pw$cZ5IH8jwE)8G9buJq-ak+2eRPD#!QgTGOYC(4G$aik?g@&}(fd$Y z%tLE;keR=^1~QHc5tNjG(+0eYsPnivnR${Wpjd7}Ht=J(n0rIH9TSyFP_q@y3Z1zV zE;+Ze^thcFX6cnIq^ZFZBq>r$JG_xNFQ|<(+PidzVk6EtW7lRo z*F(7r;*XgDz zc7kDB6FE1o2xA+4+=PGv1(P@{4-)o09mEZsrNG?>%-VgXJApS6J-nXkspE@Y1c)sq z5lHmP+5OQbjwv`3!^mN#?yG;?H#~YDM~}MBV#D&(Ll`rc>qBDOHy|F$RfOX6SuNZB?U7I83QWFD7~vJ7|c$Msng@s{^2g-js~{add2`06H|gC zm54`>`yUjLir3(Z3GalP$Jf1GLmX5|{kCZyT4{HAzH|4r-phR{6UHe?L@Rt^98jA1C(ttjLhh%(_~?&8KEEuwxWv^E3O;4trbTwh!rTWeRA0Zut1FH+4j?tn4_)^SxkJv?)(>gnEqD$5(Jv8+ojSnxNpEkv~?;3@TzzEnB^H{r2ka z(AFBr_!32=@IpMCom-vT9RhK`j~r=0rU2#b!3InPj*_J?DNdasVZvPZ>0rrqE3wkfmpYe&lK z(x@hs4Xj!ic3;6szS)=4pY*{=fd?kWP`YVgxA3(43hsW8d_o6Kc9TveLFybYbO4TZ zxMY!$rOd(~y1<`gO$KxyfBN4(?Qh(mbCk~xdtA?j;-dcN9s(0ksR4iTY1UcVrb;k| z9f*RmD8rhI0O77Z?QNl~BqcO!>onSf*Pt^Xs8SfK{DS2!qNfO`4$>y~xDH~u0BR$; z%pUQIBXUS_1YAtFV5y1dwz1U0I!%-$0VamexMvfC=>go8M62rTni&)ULYic<8w+&8 z`sk$>VhiJDp7Iy5QaDef;BzLyWk+XoA6O);0#Orf0=hHajY{ZHd2@kk>SU~70n_&z zBo)n^)L+5FJ5ooSuJxcGxm10K0$-w0OcOzAa05Y85rXFj1{c{)D68d#I2NYNYO2Dt zJHiox_vAE?XnYAe9$!c;ju5FPf>A*kDU!WM$OQ5`o*Kr@gNi_MXbT;u%8+gxAjEr> zYKjb-6*CJap#&7_fHGDmV7YJa$;r*r9)2Nb1se=2xZ(^Iw?eFh6xosjFOia%9-`Jh z(&%t&-FlyP>V#e*DwH^>$tIGY_)G@q$3}p zEre1dxw)qrK7lb{a16nGc%Z*0marM~%$DqEk^vDlR4r-RnIUOjtYngeS+Ic|Z}Poy zvWj6MBM9NO8~mC|g2i(0M|N_kTNGF#`dENA{Vi37bmjitY*%ExvCkU2;fdzfET{2IeuPOJz&K7PLPn3{A7Z{fzX#$ijridtVp6cF5Xt+&Oc z3K8T=BS;<;tN@VQ4UYTAkm|lohLo&aP7HUcr_wb)eRSq-x4cBqofx z^Vb91f9aM6@ujGES!E*^gku((t1lbT4JxkQiC~3jIEDX3FNJj zW=QN-0O>xu>x=Vn{DRWMX+mI|#PkD8T0xSCCV{ovS`0WUg&?rE zWkh5aHPu6HBO<~gi%~u%O^7M<^!EDhJ{>JsMNp)A8@@aProwz~xZ~}AY&*a!wzp) z3Lk!Jid9QGmno036TDr)7u85xfOTj(Gzk~BZ+{_F!_yuZzm$>a=bYY+f)9U$ti6Dew= zx(gijq9*{6fq#)7*5U<8QOa1qEjGrxJHJUIx(my9{ypTL$8t44qO(r)ae6f^kYon% zZEs<@`DOhsraFU~sn~w7*8-`vrsFeuP+J_|9Ns{3|5ZHDsGLUb6@b&31}Y_h+~>IU zo$g*odNd~eMzu-BvsU;Pa(RGN^QcEPEeuP)n;b?UPjmBOUN7^zD8#YF;nB15Yv<)i zBE$`7W-qJlR0mHJ#$AwaKK-nEIl3-k;GeSFY=-s-0%a5di zfj%M&7hU#{VKFjokj<^H(Cy1G@Q{KNDsYJBN9kiDbGuP= zE3-MBOxxr55@%F-OE*#+bHkPsW-;5ByuTrP64snlj+!y-*zz35X9uMQq>9uRz6!}A zSJ)clj@}@l*7!%sEjfY* zQcO%9cuakiS=b&-It(fBayJak1R&OErJ^SyUg0Y3)ZVus#AzaF#fvFNX3;4<5i#pZ z#=P`#C$x!%`%ZgWK4Ilp_CJ^sZIEnvK$hl4hF@lfq9eS~-^8t@-lg3FqhS^NCCUx6 z2X0u)JZ*pEWyPx~)PeRrbfYvv*mpJlyA2yRUQX9ouIk21h>)e9S;?fQ;hmxgFx$~S z?j76jtJ-v($jcf9uiDJFo^UMbOu$dQ32y8RL#qYOU8$oxX#0u)M)bb?hN*p7ALpDs zn7!eMFh0>JI8{lGe+$%I*3M8lc%Y}6U^W0j=Xo|8^V{%FQX|*z!J) zvtOKaNa(XZ8dELX_cR0lQ>c_RNwhc$I_BZmh$%BuJ7Y4|qh6m%dru*uxG7|2(qYy9 zPWOkPh5wJUSrsp`Y$n??X+(T`)+F<^4tUT^Ou?r65cn^_L!GKp6>AsD=>+2{Sd zBDqhnLBj#n!3cJkP=O^_-@Bq$LhA%Zg>tC?(LSxn=;r#!glat34hXc%;<*lavgm>8 z9$RGh{`f~M557|QNZhgYTeM}EOYF#SaPOE+eq+C`WiB3RNWrDtlbvlIKhqQ%6Xwg3C@tB#N`16 z(!dZgJ&We1DVl|3G+e3Rss8m~fNWiFe3?-@4pob$19y3}O}i3Ygofnrm(<3TG#0qk z1xK4X0n^RjQ95y`=7Nm)7;3&M)+l04>>b9|_q4Y7e z#AD^sJyz$v7CF?lZE;rx?%;{uKWt3ui@sIE-HE+guvHKcGw2OK9PcrOxJPG3{Vlo< zFeUpXnwa1AL@kmHnmaFaMtrA_Y%T2ao3R~(+_Z>UIA~3N0@XPYr>#UFxF_V`#VC?Y z<7y4vKCtmfu*}8TLb=60%?E@o%Fi81u7opyEGXN~g59T2&6KybZ^^aO#D%TST>Sge z!>3Q~iMwg51Cu*>toE%9Xj%h8kBzYhtD`tdk)b=CNt=MXn3z)|au(8N)sFK{ssz{o?8Z*l;x(aE<=LIc|#Fw5~NaS(h%NYE7f=DIoqVn=+w%x zxv^&ycY1Y|@%UmW96aof_meuPAo7FWt!Hu!gpK6V%9GgtC4^E(g9T@D>4R2gT@kUj z1Vw);NGeSTruMGKYMBE0mOZY6k1vjJxZH!mgSesL9{yPV7h0nVadp~K9pbp9$LmlvqP1t{d4@(msp9!=WIweBsNySN?m}Z}Lm~KF$)E9dEFf@-2;# z&{9wG4sQCSAbDx&ly7M}&Mf2IKdPMqhIk6w$`E4q0TUIow7a{8h@rs&_85Advgz)J zlg&EO4>pwV2xRvG^Ted9K)SviotBtc)D6KEr5(h>jS!fmv%!K3Y`jP#VSgaeYBKS}~FcYzjn@&UXoZ7&3Zh~nJc z8{t|>4(&9vr(j9%rQ%)6@YF-DH^h>bvUV@boPSD5eP1B_y!O~+j1xV?3YGC*KsKe@xt@H`M9P$!e zMJ!VNMeLuqI<)g2(e<$8r;q!rz_l`o%``X?U~5`Dnm!lmT*Q~CWXnm$JUD9f6wclD z-GnZp@2cfk%aPjirS4*FND_7_@P;EYxOsHM8YtI7c8b zEn5k5^tb|^fK{WkCM}nZ)C;B^onw=3!@AG!`-@HdA}#( z`WnK=mBR*PP${zcMDXff=h@2loo_47)~kaT!PXV+48a%h(Lf8uq{Pv1t?cSnJV&vvl+vg71@%_W6FMDc3?+Mg9nu6sf3-iC__9imvyz2RjI!vz>5Ui`W3Vue_|2fXBbk zdbNh|3vZ-TJ}K6-3R`WiM~#u1S8)mZN~0+<-q)<0)M)PXQ%zQ+*%p){X@Jxkd0eF! zE8c5=0+gVy`3f<_f@Vb;ptW8%C;wL zrxC>ot;!jwlawbet% zwSOWw_ny~6bO)-0R(OV7L5^ZIR??kBLYH?RK6q)Pk4On%2}NqOJR-mC6B zS;W1Q-8B^381pTyX9T>1uSz+eM1V2e8G=WS$ep{3vf%JX`mKYdkz;BMq0IEo5vswE z736V~0rEH!*yy4zNo@|t@=&nAQi;!Xb=9}g;9d4#+H9b6=vby4ZBb&%nT1x`UB4Gb zv5ALplt5dv1bG5nQQ|(pjW%LiP^}G*Ze~lE=b;Vjt_4<}OG-p_uO|DZFTj` zgxBUzX29bi>M5fCoLt1F8pWl+1wo~~U&EI9*#+wKB%3 zs3QRS_d+-MCMulM+pg{)@cvHfT2h-OMAVPzeh`w5Z)F$5P4Wy4}Hw#chqT9Q97xh+^gOwb+Xb;Q+b7kQ zHH??E39#-^2=j(6NE{_rs3|zIiOgTXAwHzSR zU;>3!`W#eml}%{Fmf`$0=A6Gf~e5;l_CTn>>SzZfI5WbJUdC9lU-c6n9n)FI#UwqXMd9)j>KUVKGBZME{noli z3Z%7~UlZ2-7OeOmt9zh{N7Z7JKusQsoagBV*PG4X4W1}DW{vLNt?ivgfsxA)wE1C2} z`(pS7+0p@9!a4+mS3&t(>5;m)ehVB=|* zQN*GM@N(#6g91~Baq9(;q-zRJHcjfVD!<^^0`F2$JfUZRtl55+ep8bxZcV{)MT>^w zz)>Q43VVC5TGkb106Ron*-7gL)hUF{YS<{4qDeN|sP5c@K&cW++~p}oFqbjE z-Zmp1)lGlT?W|Bed;lXBvOKGup_`jn)C%-;vI`W;&8~EZAc@UzZ7dMQKJ193rE(04 z28$_@l@e1tGwzOFYz+qojnc*i#JadlV7)&;F51XD`XelNb_HKoKL|29b7tJzp%kT5 zc5#8fNZ!WU?3IHBb2BUaMV$7f1hvEC!8IiC>>fXNdU{8!%9n36A>PalGCZ6t&C;pM_48q?=0=FytQT;Sg^AXTe$ixFh+xp zc(A;(`sC?@?-&1_T7@ATjn`3TA}KYmLy-53Ewul2;#dFWSM;AdvqHN@BE^~>Qx`kb z1MDJ`lnbVAXlkHr;oJ&WNg$DJ{Zq^kmTi4MB98uu`$HWjORwz*Zpu+*xIK$ zyC_{xA#}-QVP*1hrS=JY5~y5;yHm#3HxE#pIV{247fA}x0{r6>kbmIG$7a|`;m#_z zo0C~dcMuNCKG)8mGAnFxkfY@Xq_{y?7i;G_iSG-Nj|DzYUZ=3OPJd%UfOo<1PJOC8 z2@okvM5S81&yh_y0T{D_pWzpRnPg^bMli-MIu!9{?wn}lh4G#y`(SucVFHgu%Ha?>mH zIkv%1juAoHbQWYLd!VBmNdLO~=!YT7lB12KsGkOex^l9<=Ul zFF0G!cYUj4BudDXslxuDXOv)0YG!Uc*hTa#u6I04)SoF?aq&JzTuC;-^g!`6f({cQ z@tLlK2gl#?gjYFioo}>Oc`$&gexgDF6>U(lIUrg2^|+D!myyQ0K`h*j zy3z!McEE1JUli*Kp9zKdfXJEg_{C^^NGZ&wF(s>!=*;Ut@FQ14VUIt40lQUzL1zl( zX?G|l7N?R{S!On(evZ|FAO-{r5&aS`MCasY5lA97fr-$)0$)OWH%S7ml~6kEAHqHo zO49UUX1s#z^X(e0V=^r^k6Bp~yIL&%8A!{a;Uj zK&LbVk~8L{!rj1bf)d9zQAt=EW&zy=wPUM05gm~dJi1R6J^MeKzRWZ+5Y`tXstV;! z-O)cmW}cfkTD8r2 zfebncS_PeigpkcKuCp_Cp7xL4Cdw^Y={pwEb;_=PoXSrOr>CVjF>nOqk=B^=7hDQ~_4=MU=3*fu~nv{%0 z>v%2_q?9cX1G>w+$A=H=mjT_N#1|Hj-N<{-t1L;e2M3EaZro~mxiWEWp(mO;(Kv=` z*xKi;933yI_&QFQ|Hb#e#E zTd~74EE8n$Q~ZE6;4{0Q&?U6_!Kn>2V&wA`mOP^S%{@gALDr&ug5r^=w8fZ2vdOX|nCD7rNv)Z;qA``R?o|^?}*d}DG zklU{wYb4$FcX1@OX;Vc@dR&M`mO+H&KDsZ!)%QCCbT|~_lL6)pCL*pwK64|XsU8}|FL6;ll87ND64KBxfMp>q#lH;aMyn%k&>qNOLL6a$*Os$vcXu(+ZJ zbi2f~PYP{YgrTI{Nv=|}eWSPIy#x5mdIxy@*}#R%kZY)zhJazj(38Mhb^p;Q0R#>tOk@0oTtDqgk|N%NZ4B1YE40EHVkNUDY5qre z?&AHyIxknEI+i^hkmgMXTLp${i7nAqSb}3>p=mh)nKL9TKC~_F%1j1x=*p(e;$hsy z2OKKLI>DCo;@xG)i|?#&cUgW-3riM*7G+JIuOTUbaJ|P~@#>z^L4#Q(*DNGL+)A{= zWClE-yY;l&r+qv30v{02hb8EXKKZ1c?cokrXwD5dEIpe%d0A=K?7_*>m{TQUH<>%Z zb00p~qwBVbqnf;Ig}F9Iko~}kmHiTD%S0w%sW&RU@n&{2nP!&>u?ce6-`mH&_F# zkQXR=E|slXB7*5wM}Tg@=c>{+o*9TXE396KylrgBz)mDgnX8mouToEW-Sjun=C0<| zVzWO)Fc)o78?=j7MtLt9<`~T_+yODbO&mpDJCh~0kY~m6JS_e!^ONhfS%y!*AnRU@fE1tVR$$q^N?Xk%2 zs2(sG&=ozhkJ45gI3KsVWP~RZ_JHozM4R)ws#;{KtnVN8QGbk?W4RZ;LTE zS`nK8&Yer!fh_RRHPA8H5_7QS0Ew{N8GD5^`#$LRpBpo)NVJ=iT7lffKn3fR?rpeB zS;V#_6~gXoODHzirU2y5ho!n+7)hj0ke$@uG{RhBizUYnIBvSX*_gE4B#O+(w6(^2 ziI8BfBz%_v4mE8MGU&m{OAsC=FM{|pshzwm_4jaZ2m}~+?V1Lc_>)>v6N9<4ixD)) zvALs8QuVFHf?6_f6C^3nX+4}Ky1C#Ajg~-`S#%pLfpyc&5(j$Q##SUE#+c;AA!h(P zs(iot9~!Qhl16%X>lzAQ0?^%x=`NB@R6QVXi`t+#SVFm2#BHwO1R3H?u84ZX1Iwl> ziaEpN1VXK?17|OLI4g)b(;o3dkGClOqq|P2+J<(?TG2GTm~4dSW|=g;f!CBNpvAoB z;U{0;H6gF18Vg_TZ)g|E1f@H8Em$0nP*^Nn^GaRL#utzp1#C<73CSHsFLDnGj=S`H zyCii&MTIe13K_BU0h;vO=z)4BloQQS-T>o@kCj)rac-eX=T#>=;Kfb zl0 zSO;~DFh_&uWuqdWi0sDr5m09JfqQGH7%d*QjVzv|P0w-+=ssTQuCWVo2LcAGiu(9R zuQR+Jq0UxL=yIF4=UDSs@-U#A_jl(6#~QErJZpDw@5x5j3~`YulQNz?mOJ;5L7Nr^ zn@>CF00dhMuvLu3s)T0Ci5X!bq@FM-m$Whm(c$!;Wt!d~$FU{;CXV|W(VZt+-e5a-!!f)siN&Dr%jd3YL49=rIM>{QPaFJL;e?3uU>+-J8iw3!DB)e#0iN zyC_GtOr3Jxkwq1ZHw7pYm4-} zJBf5}{tF~Tm=QeC-{=n-8AT-yw~4)7Lt-A$2WT>T9~H|JHlph`7_LY&r>3nyxjFu~ zVM4QV!Vjn`fZf-+m8ud6ZrT$umOHx?A)`|{N=V!{DbuyYYHzJQ7S7Fx3nva?V`=eT z?AMl-miJqM+)3DF2i{M^K2rY+{3l!&#`a~24w^)(Ms)8=HRtYZE1PYDeuyL+8JBsE`KJvI|8QUwO7ficK z?B7o62HQU@CiFLoxiGAyZWs)XXEALAdU@?a02 z(KPnsA~Be^2CZzF5*cmkSp(*-K9;N5p%#2Ckww~4YvB4tGQ-h+>;!y(AUhsofh}3n zS_0dKbn~*yNclJSv3$3#*eem**8B`e?$i?nMKAL}QuL=0pArg5rN>Bami}q1n%Ag5 z(c|oSg4+bQ2X;}CNkYKmUM;bQnjwEtqOgS*QIs1Xet%KDK@ z6jHmN8-VWWBE!@2^M~sD;b0d9k^Be*yKH~he~EKCGX^DgS!*&Wkeh!ZkTxuj)zbdq zdKZOGpIXk z+!Jvu(NQ2b^Ax*si0M<0thyLQ!}fcr3MwUQT1!$5ntOklz-0m81qbR1A0PM|n!y6E zbo`Q4RV4$NCXQ9-Js)G6q#oo)O~qJCm1xMe`&NX7_FHaVYy2rPD^qh)Us5Dd*Um@@nV4VKik74OYI~hl)>CPNFd~fvC196bqM{h zS1p)nSrW{X^c6NiQTCh3KpAZG!kr5=q{4#_HupVccsQ2Y$Kt`!>k1gvVwJw;_VbLT zbp|O!hUPKF$sE^VMR2P8q94Mg5*HVM-lx;3`2OA^) z70fW0eYnk-ya&xa$#IO4Nw{1mm>9xzBZ?Jv`a%&LdC6!;fR!lMv`b9*fR=lQN~KV< zMX!WV+t=>-iL<z^JPsnluPuByjE|93>cLiBy2gO=ZVHG z^);EAV_Kp?TV{KNq`+ZTE}yXa{{g2EOE_D>QN7ewV#p;WnI)-H{8GlGN%vr z$f^e$6Rrl&loY7(arg@WCA3pJt`Leh7(ui~>2{&{+y;KV{L%5HA>O*a# z?m%>wCxajF*?0weg-kINo%YG+R`N<#u$F{30p09#kbo5!NT`~6wcQ=>4PKcRmzbRX zy}Ho~c6R);tVqE{Wp3x1G8kIMxJT)Ro;wulLOQ}jn z!=ldUC@I|(3Wrd==meOXl~e_U6tP{xllUD<+&A5rv1Y?q-xy)Ty3<=7jdw$Z0m6~^ zVuG~c(^K>nU8%qY$6{MDLoK8RACkA-cV>*^rYP&8QdsoiMW!>@^qFZXZ*@j6ClYJ{ zN;(9$6ETNu+sBtIpJg_XInr$$L1c*6eM=`{gJ$A7wc7(iBU7{a69psS(hPs#B+U=C zl*Gqw=Viva(dIWwxe?_Sq!z1?fyFY9rPdP4n02X&5lqFy_;Gz4`}*+v8obp;QZv3j zZ3|QkjfIB6D~daR7huRHH47C8|=IQ1ShK)}- zPAkFU-pdmsKc-xz5_R7>B0^3N7-1-@3vZq^!85*($=cov z=!`d)QATky8k14?Hr z052P6td2De8hGv;hjO9@%^h0pc<5+#=XpND#TWKIp^TQCJZJ)g+p-YtwL%>zRVRDn z&#TSh;1|R=fC^~x_>EwqQv_VR=w>XX9902wXPyyYXc^1os1DPO2^~u&BdkWDH`dND zuxabs2p!F6kxY{Uln>nlYOI`jbsO!%iAHlgZdk?!%#c$gcWFs5qv50EG8!~bGjX-o zF==`v9DMt~Y9jt*^er^ZBbn26X$j5@X|}zE-cuy^JDffeX4HEaNC-a#)PK%ZtxyTF z?o8D`Z{AKta@X!jEI0d^_-`D)lInrWm`J3n0?G;1X$0-)`uc%$6n3 zfr7cKIMdmMvI+e76H_0_yS)eXvfp&77vl1ie0n8YM0tCDv92p{xQUl zr;-9x6iCJf6nAo}ks0^g5xuNv&_~jFi3W;#C$8GZO2uv%6U*=*o)G`4SfCciO~ZO2-0H{2&sQFkM9ljqUf*pf#%}$d zAy|KnbU`KhK$Bo&GvktH!0*>_io=x>O}}S62f~HNFf23ykx?%;0QdXy&R`s}zI@;^Kx^e6JHx06i1b6;Ec5-l}%aP@G zl@ilwDLp@W(QjMe$M5+7hnw3xGGC%6UT)|vG!#5-cKbV24TgAGP{wc}I|Ai5`iKI+ zjlotmW)6;zkc9@Q!)-1IS;swpo(eel$Z)`SL?BuMOl&0Gs*fhmkuWf~uix~gM~=qU z72zE`YQ5oKOr{jI`sW}5Kcn{EGk{ceQFp!I7tK6R_^VQPW)%y<-e_cfei@^R&r5C) zKuxS8P#uMGGg89_b%c9+%gYb_;J(0F!k*qsmb?OEsi2uduI@XeD_BQ9q4!`f4NZN( zzi=9+Eg}sqjGY9^m~~jOnq?rf^obUhH?;!{4qdn4uOS({jDKqvZIT}a4F;N z5n3G$(E`CnLJPm_2~PmU@tOXD)n3S9yC#`~7Y>FyMlHc z`j9;6L=2Y`qUb;3!bliq!3E@26|MD6l{n8+LePNJ$u#9@wJn^CTgY2D45`ys@CC+w z!-h@ueGe!5lB7pjflu|&2ld3M&EzT*@^K{Kg6GJ~aJm7PNKXUIGU^dN^1d zA;{TJMk9}zh=`zam>900gg|?lOylBqU5yjiKu_Rt>M9Usy+4cd-_3&^)eKe|GK-%K zk~xrTBDq-{B?H?ORX>NP!trv4YynF$BY?H_-EfX3AfbICI`utPGyyJ}=e@7ga*?q` zwg2NyO&Sm;Va$Uk#9mwO`ghwW=>_ftiK7J<*J1m1sVDsClhFU&-E993-|7G9b7pB? zP&5P1M=E`tx@3k~LBY*^2u8zQoiRhgwKmNQZW?gzGXyHVM8XotqqrHVWC^+d zBZo59e6$>Kb5>q&pG#*7n)53+qC@Ez1GUo+$J^{=!N!v<^Sb7}JcwHm*LT~uF&?=X z`JJBdT6_GmC6AkRusZTaI5xI3lmAFIB1kv;gB*a+60E!JtAPV{ ziBkqbl81~bkmI2Z>gK~XE9PS=@Uhz{R*-Sg2xYv`kTZhNbVM)Wkn(P|gzrVuVaky} z?!wYeHaFux%r)2Gxrc(}iPlwjF%<4>uH=!Kaxok0^84Th+c*YBS z-QZ_rZPR6hl=r~8bw1EV?H($uXXjbQ-6pit@*c3%zNu%`E2y3U4i#f@K5{numl}hr zP!x(q8nbTab58_AdqElq_j_l3tKX6BrJ-K1mf+2pb^{D1B-6*&6`u54SduH>yYxKW zqVS?|1dtKrwSz5x^j!0=5IU|z&$pSY_24E0p#jP>2jlfgnL?R7K4Y!G{2#nPIK&Iz zc8iG0K%qKPMOW*L{C)G!R_;}w{;;(2S@p8tg-uU)dmo59kNV{F!Fcmq8V9?xxPA1l zN-t@w0gzZC>(#TB?>pbp%E)U6Nc552(X7pwIR){4D}7BHtSIjEGyRF0aO&WIZqaI7 zSN`SEEui;2wjxZtVn%7Ghy`{Xr}WfP*fCi zhvv*ny3&KLqNkHvs|JehwOLPuL^UwojNBXIBb!;zot0w^+P(ELmWuC(OkBL#BYU^qr{Ge07AnI6DhSh(DP zItF8aj)9fYs5Fx?i6?Z8U}!r|!pYYvWt=hj6|}w0(18{>)I-H-;jq8P)rrs;{+eYL z!!bPE?r+&D0-1)0FzH)?j$lZj;!l7?sM6MU^|1F6rEPKN0~RIp+Z06+CH-9)N0T;k zcLYu8Z?iHuZi+&P;uDT@-ZsDplH8>{xS zRE{G$o{2Ty)1&oy{pKWI8u;#%=Zpt~QMi+)Ntf2`p80~htGEih_*&~z!@nZ$86R(NoEWII_9O!v3KaD+l;AIcaOd_(_&=qot6(-(Xf^gGegZf{{xV?mY)#B^sVqXVAFV1&j^Eg>qe zd%6uQV`2tMsZKpECB;I~Ig^KyY$DA*K7cMyl9Y@ym#DqM>;O=qG5S(@?P zt9-`2d*pe&f7eh|pcc``bu9iIA0T$XH4LuKt?OT#7H4d`aPWwCJXJa)4oID^|L(3n z$5;RO+y5T14n>Tc-|7(=R-FD+87u4|)TynwS3>*t^)DmZ)Cfg#C-pB7I;YGcN0>@P z?DuW5Y(}E=%^Ph}HI_SF{|$1}`Vz<;?3xb!|CxK!<~VXBZE)V{s?uGO>b^Vc>N-i4 zZk1+cdnl5UIL)g`s#Mi`aFb+`%vO?_orhE`voV`*`z60^zh=8;yFX_C%Gmypeca)W zfFmL!kwH?kZPulXV89=T18_JT4oAsSMGF-ofz0p~rp6sb<(79Fr${aE94jaqpAJS* zKE|RJqt<#S`?lAH{|U-B=K(0O{IqmI^_qsBTI*M}#8eCCQE~|;N>r;B1k~-Qdw5cc zl64JaJ?QNtDC4GSuxec+qcuDuze$8Oj-x~9Zp(Xs`S4XG)XQ!X?t;Vjt4jAulf(pB@LPALt~=r0I1 z0BUrmZrz+*ixmI~rQv(4^Q$$`yq}#?oy8W1yRjugzIEdysz}J7H2jp2Z{4_$Y@54! zBPh&p1h&hyJywl&xZv#*W8wDShc_Jyw{eNp0GW6X^tvF}!Ly>x<)Fz-3%AC*1f=;E zxpiVK0!qVwa!jE`mK!f%8qUH(q97kK&S0Lqq!`GAiUw=o5a{8QCexw?S^;zSDo8BW zEKc_Ka08%Y?jFve&0uiRrVQQt?TNa z_HinR+#d*kEs)urDy>-9t3YY^&&<=E>*!SotldWFqNJhVOxa>ya(mKwM;H8-oqWvq z`8!p#L@{^J60Sw>+@?Mc9|fiq9*@Z5j?F3;35?|319u zWcMRx0Pg)r#nJA#!;EOU8n3;HCFH|z!eiq0$vF>ozSrHmbyA#x((opUf&QUpTV;LP8leV9r3&z)v zRgApCmIEc3pMSi8UOe0Gwy}qB2>s0ioR_eyj?i|PC0&vl;^f<4y_W` zvlcB_JOspsuXUQ+&z!xKEs}bT7VAU10atC2l+hZV%YLJB?<$8=v^GKtz-AA&ew2y1 zBy3HK7gR7Js0)?1wa8Sj*K((*w<32$iStJb7p#g5Io$N=&SXDWSYbb|IDWFmL_lvJ zTS;*a=xU7_5F4Hk9!&S?4Yttee8)t%224YY`*c7Ih#6%dW?iV?>P=n0K6Tv=qH0|z zqopkw;2@Hsv4v;~Gv%b=#1*5c3`Yw`zx{7iD_c$TYaHspBFF%yt)^q^J*0+{-vlYN z0h;wzcpAxj&^fvpi8IX+qbCNm1JgmYj2`a6;78Iom;EQdH9MH#OchI;V6`w*6gf`=ZU!;+lK?XiI|N9?*Zi# z&EBVW^ZF0SLxtTVHk^%g(-htHAFQVjehBYTJSV8GLkNcg;}^K&6YE=qEYyrk-qd#sXW$Wx#mkG6 zs;{Mqvv7nVOBn8bAF05o#Srjr+at*uE7$Ni=+2MQYHPb)UwAyF{@A4*=I180RR+Oeum>;TuxusZj6sydV zb7o3nR2xN9hwr+PvvW;23Ki(*N-X3@zAIGatJV9C@D)=pT< zJ|H+eA3R`4`PCc=hR*PCg1u;7D~V@TxsGV0kmB${_ylZko(nea2s^MLT4~F=BAp5- zM{ao5{{*Cw^YKi&0yzf+V=el76%^OiTYFP95kfoIc{Ocsv9Q_&l!sRr;TIp^q}4T= zW*H5l7{w97Ncm%Rq2(L0`J3UQdN(W} zJpA3mnLiT;W@ttq(s?JtLiM3pM0xlMouDEniu#0$wYDSi*nL8Y4!^*4Dafc-lNYsX z*vx>(ZJUp+hdE!1SnCdu9Wt6ej?J19_1$$%P)5iHemqJ{WZLK0Oej&$1f;?!V8X0P zcDE1v_FP2uHHo7&eAWF6Br{oi8$C26t54RRT;AmO-ZWMU@U*#2<`6g0n^rJi?|OQ} zbJ=fH)}m5?GvD5JLa3e|Q2lS98fCu+$D8R#)s;Py8ot8+0LJ_ANTk?g$%Xz@cP1#c z;TioESF4Fo;1jAAlR`4dxy5;Q7|}D?%z!lB1E>?6`E~(uxijU}7tT4dU`3E5l7rXq z@9Atr(rzBo>1%jTv0H4UP;%Z_%a52?4awoh3ygsD3hvmR-$HkgaqGkIqzpWUmFlgp z)P`sD7x2t%+N%F{1b;Z4fS*CN+G8{{f6yK9cvw z?b6z2t-gE=DLSVpPN4c5MRjD*$kH$tBh%_Lk|#Gj>wluU#xF{T%QfQ8R=B!L#nQwz zi3S54ylyIOVbgYcik1Uyq%!|U{09JE8vyJObm_vp7GK=Q;Xs8>*e8|UC7f?{6vXfg zmxfi{vQV%AC!xRCs2N9-mYaplR#!6xgop1q7IlpsGG%634Tuemi0Xr0shL1q<8_O@ zmmzL-uUkwt#U~oEMcY|)tqYFMVRz-E*s@fIA5+8)fUu=?R69iS#Vr?hv&)-()X|Ol zr+u*>tHfv&jV2+M+w>+qg}>doae_cZY$Q+=*IRu;Bd#g5_XCnDe%*KXOd^udMU+uU zM1e@}+&;;gg4pm&X5jWM3QpZ_@b+Qt5yEmhnoy8lep}3ojWau*Fm5B%?2+RIp=L|C zk`W$$YzOQ#kz9yw^r4WqojK$gr_jU$aM!C*HZBA#?$i)yi5`h93-?^iZKciD0$YTd z?lv}CIaD0K?o)(%V+xt*@Xt<-FJY>Yox%$%+R^YK6eHTyMtvPqjtKnv*2xipU!10p zV!KF~Gdp#(?{m56F1vy$9=CVy{$P~I@fZTJk;Cck&65N|sP!9M^ScPOUT?H^IUiSH zXF%X-s3wnDLv-CgIADsB>>?#Fc^i=ziehM6xYU8K(L;0zN8{(kZ37RF$&7~N-?>Y% zhdQQv2&g?ImEAZ*?s=RfbrE+MHCQneDVlqeM}`z{#M5vAF-&Wu>Fyyee-4`>a_tZV zb=X6kw9D*cXZM0lzGKYpLal6j&uoUunhNPEM(q$+-wZ9L9dB^_A+#HVBC){`cI5TS zR$~c3ibZ0q#gJA(D^|A_3ka7r=qRRigEf@gi7=&v&Cadyt-2cYaJ-4^O{0XWyEP-C zs&387rfZ!<)mJtkH2g>W2TH??SFL*})av6^sToNcvsb<-+-t6GjmK0=_n3`S499F+ z2wN=Pl&|g-%aI*kSrepiJKjtxy?x3iWja^&NkxbaUy~p4WYKFQNtktb9Rth}1DN{} zce38!Xi~LSL-kIk)P`sDSFUnAb)S?Z9WhkS{m4~rfP9isTJB?1PN)q(S$Dtq(9aqI z+UXPk<>+bQ|9zhQeYh(vsCq}%36ggDt!UXsl!m{f|Dvj92LSI7HGwQ^Mzq!U9Wr`| zt@pHnYBpK0Zs^d_3jPv-XRs=Ftd z)bJJl2QWtE_pwHUiEG4Jy~8RsTyi3GbHenY=;0)D3}JeDQJA~YrV!azU--*J8eig?>F2g{5z8VNcnWRyaVOp8}{Mu!xU891Pi zmNz38f8*N}3~=?4>&YQ6qEe2>5G7?ZaMi~UlN!Fl|HL)ZWJm_8dd)n!;aUF^kj7Gx zB&1Ua}6Xby^ITS|$-SX>vI231UtJv${gXGTHRC~0*cUI(?sN?||#RNPce2DiB zoxa5JP?9$t5ZxN=!bM)wLw~jUHm4&&l7uYmIP!(K28|9t9B zIv>7%bl9)+QJ!2IRy)ixiix|Ud+d)V*;znrIOSRcokg+_Qc{g=B%s4s<$)?eQ;@}o z7P$LEC2v`A<%yW%3BTaTB#|RXXPa2Tp|~I;$?lX}Nw5x$8|3Z}C#chi*zorxC;Y<6 zcx1HgHufdEKL<>RWP*@Gj2-9vnd-MCL?J%5ml$$bB&QObcyG&?;^WFvN^=6JL2N@4>ncCF=Roc;N5DVdpJuwhPrM|hvPtj)bMK(`|axx z`x7MC>%z%{K}6P-UV6Of_QVRSeceu2$KnOk)pw2;Ojneb3ZuBrc{h+%f)mV;|J~by z1w;Av4Z90^9Ckp;W#a%*qgdSK%QJmA1d&af?2cVd$ALsMqg2f88+K`MEWWU1dY#2| z16!tt^Wo5tmC$lkMbq zIJseS1H;Dk+QZ1@+<`#K&Uq)NSz>cAgVcB)4xskw_y!k+>syHC*mRgG>{s8!JX$OMw;n7 z#%N^)l)1MsQF07zK|+hPLxKfUWJnO{fPUF{yt2GBv$(i2i`MctDEX_LsKGLy*B!on zC7;hD%@LC4#)qKbHk0hPSxh=evg1RiW7>g-VnCub{9zRsOuquwFKyG7kq z69q?xoh)`kMyl#LAr*RDv+a&MQ#m(Z+RkXc!jY3NGs5m_lHO5)1ZhT?+(WAilADEO zP0oR=duQJwdfQ%=k=DIOgEK*0AY^M$GC7~;^5v#=raYL^!o1+3@aO0zh<1mpNxnj- z_Vv`yNW}O28>{y2a;}e?RdjKl39JxqgOtncgBeuo^h-?e;BL4cblG+XLz&JWto4hYou|Qq7o~+crg0n!+jO z2Be%5?e=Xr`5xm)(9{;TU3Y5Jouh5e+ZtKGu9HN0M~}q;Ogj#_x_uj_9UoK1VVT+% z)``zLZS329T{u<{*f_b;9U%j(U*iMnvB>Y7TsH(M=U2Ub2i*{<4y!ft(z9}TD!2Dwh;42jAQE_U zvyh*Y8(w#4c!`^lFB^pkl^HhFFwsn(X4n*U6A&smI1^0vn{`^HHSL84RVRC;Wo(%& zl<)2)JYn$u;$R|f3hA{6m~U*rN?H6Yvy@7efj`lR+>A@5FEb# zln_WI!BK)-l&JEnFZSc$nUVpOUFlqO|D7W>d~*Z)a{L>9F(eqF$(o?f;~gTCv1@7_ z+9k0D8D6XLD-tcYHj#R*b<}I>JvSM};rmbh10_Lz(ZCt`e)}2rGYEY8#r_dalpap? zr$taIkFUJNEJ`nMsT=x3?s~PKM+e{{)4?_PVL?VEJ`u|B`qTX*isHrv zBmLR}Zmy&?6^=nDW8`MTi;S^9Qf1CkWsq*vTKzXBW0T7d9}xowNQ;k1vj2l#ffEWT z2PZi8AgRrfo*sN)w{X9`L)UkSJIkFW;WM+$*3}nCPqtm}?iAmvSTba?b}sB!IkLm6 zPvsqMNS7-dA(xB1$04_cn&Dc~r?YEsP@3+9m6oI(7$t?9ykLE}TS#j&lpDG3hR<0- z+=U^hUeY2 zrM$8O%p3A8wAB`_)|li*xMD04YDjGO4rz#tx?XWkb-bY9aSoA^`vz$c#`R-NqA`41 z)(vpKK6MRTlLR8vUEFtr=%&n)1}v%KE|D3&L6xJQ7&Fj+ExOc88jrya2YXRy?Zk~2 z&~dV4n$zvBzb&41-W9DMxy9+saq5sLsiP+~{1_*soOcrS6&WKSXnWA-9urnMzlm9` z%8t(PLz3`PbGzH_wRiiJ%bj8?kR?~v#qUbJH=(GA!%b8@m(rkQ)+wpJQ1l15hnH0f zih+8+LW!@9tV_ae$EiM0a$SnEX-5+(aOh0_GixiA7=>yq_%KsdcAn7iU!Jf6VzS>; z&Qo{)NAG)HVBsRWdS_pEfcj{NJYSdS)-}j|3bTFRvQ{#%JZmT z?kKc~+VJ&NCLiAM_71^zL7~ zw$tA3!5Kn{D@Yk#yLrt+9mvJPRCf5z&r6H6i!3)sg^57k#0OK)2dzV#vfI*ouS0p3 ztU!vuao4(`tyA>R;hs!Qk1QyX3dGQzHa5Q>vyl6MSczt`UcwUU)5H$=WMm0Ys)9k&J^p-Ql}(%{N_} zfGeoT+54m?iu={0W}{_isS;h5Y0e(UQEc}52Ys>L93i(9;oo*Ca*p4TRc+LCN#DxA zGFv>vVp_wizfc7NbDihm%fB_c?SsGR6`xikmW1=b9no)JlXNBC76`!oO`NbmA@;5NBrm$=N7qGPSXK-4lU>s6pA0w6)Srj=ZYO<%%=CpA1PJ(1h! zsvtS-mAlcrBs{bPDK(Uz}v2kH%GtR&1YLc(`~9KCT(&jpGm)slf4GzS&8;7V(F z`7h1RL;N|^gfsvc(ffoj1`e7U5D-p6CD{Z^@rx-B-(FMS6wa4th-ij4z>{-Usb;og zpk${nV8l`IqKFCFkw7i)z8Enhl~~T>FawI*!xSfM1{(9YbgNxxO;u=kLyH@J0n|gp zPk)1ZoIcy6b1?Aw9dyt&HtBd2xd7u6ZGTP}i$YLDE>D~}mFCE9x|hSF1%a}O5h z)*sKT&Ci)?luVhW5T2OQ|Hs)`L-^k4@mEF|RFvY`+1UbyOLR*)U7@AaUn^+Sk~L>3 zZP#*2`Ld(@aAmE4{SrfRJVZt^!rGi!T$ov3Sbk)h;8<80NyWP4>b1GNGPkh4VUS8D zxbd}8f{Jr_c4cXGVR0S-TbnDZ8+O=Lty4r&v98RnEI(X$^ki**v!Fkefz*2qJk#@Rnm(6Mu4rlA%rbC;+hDnR2A`RhPXJFS8gRs<}^Shs(A0^@Kgq2 zJ(nx$CEun3tF#sU?5x&5M60T;l$KKe-R#dln-N#yqAQgi$SBQ=^FME_%@phtrS*7aap8egb7MX4#nuJW zQL3*kE-e2knw2Zga6(Ba|M#o^@ZbJ{{x|#`^z%t{OCqCeUtC>Vc?k8txiPc;Cqukq zw>0z=<+ar(YYPv5G4v}6M<^-fH(b2&%=$0OvkNP8^ADcbS$X`VaNwjk|O-HgdSmPQ*ty>^i&CkBc~|u3d+jz z#?!Thjrj+^Y|PKbcqMDkv3NPciu}4DKUrE`n}29k+4xaAx`IkiaXz#-q$d7_{0VTRqp15)#qiz1@`PnBMGY_J!d5qB(P*g0@BoAkvEN(oWSw?R7HPdyD zp-Bu)#gkTiJhT3IeLh+z9-|dKJ;gciTJiBp)M(?U(~&)eX(@dfZ41lmtMju~9Ufz} zDLF-X+tmUJcWLJ5^^LW;g+~j~Vx=UOW?V0f$ttS!zlD|gWen|j#dnPU7f@8Jk6jHH z=O4|?{_=ETd2Z$D`or}?;1X}!xSEb4uUx!Wz{UE;+`@_(3ndPsi5PH{6)|YKn2y)z7_M-raFd=k|(Ul z((_k;nVp$^JWqDYf?ZM{qvuO0WMOe*VR;iv!zXZi6!@Vl z`YcD%R`hfDq5y9EvR5`7V;_YQQ~DTP@=E<_q4#Y3@}(R`X(}4pY;$&{*pokgB#*=j zC@RurMN)@kSgrAjuoOy3Di)j*n}x3B@ndZyPV8NV#@JNcuqxw?+))rpO>2S4LlLyu zLZI7_p+Ae+UxUnRa2QZ5mMS09N+n_RAn46 z=e8$Z6#5%$vG1iyUv&VER#XF6@{x0~at$0QrT;3gf6OSpJ9!T={)JMwBQq%fe7L=c73t&pjlQA%!oZ?)XMKH+n zlhw_Q$7?H3jnFD+Z%a%u&Qs6{qNCyou7WlVC@J*|m=!i=(7$5x6~=T(O6k8cyRvHc zGOLU~qM;ODCyJX7*XHLpf0|jd3!o}J$Wl|33v=^}^Bb^`Ha6_6TtO}&DW!i=Ud~}@ z|Il=t3fkJxQUtBR!sE-y`9?V!3TcPh;Vv3=4$nBz4uLF}(`dWwe z6S2Oe4nj;Z&d)8(Zfq{iuRXFBWQFk?P*Um__}!D$xtYj)T}48~sE|_nm*$t}WSM{! zgXyRhTGz0^eoTb+}(NvJSr=yh5&>I9C7`ap!MM_5LzDX~BS(wKP z^5NRbQl9w=tH&aeig)Sp%ukqi*B(7tnvX(;Dzt(nrWhC8_6}Fb$g6_Z3`xcGPh#E@ z`expGbs=Z3RahxGBFghC|Az1qBa8}`8q-jUm*{Ep!OZNR;9a&#xI#->Vv6yBc@1aV zCe}CeYim!U@V}B>_)%KFgtDSvBRg&i?7?CUrAw zQ&-SUo{mz!KpvdUnbp;JGOjS*LQDgCz=S7yiz!UmaJ^slW&#!$(Y z!KnUKNK+BdxxdD%j|%f#Mo4L2;aARGG`ome8Ie_3?dRwz(nbCYLM7L6j=`W*7$1g~ zBAj<`$+cSh9-yeje8?eC^;Vi4RFf zR>F#Xfw2qL*;TX~DKa5t>2o}@txZ+>Ldw!#nn$v0YXwxLFQk;d8%H@?tLiv1mX_<+ z2z8oY%lm?=_UnM0ufx*JpRmI|A33Wl)FC6Jv@h{1^;nycS-}po#1!KUwox``=4|^` zSbZoNrF((h#L!>yG*zMRgrt=IdG`{#Vz%p7(C`5zr4Gr%$xZuhtMR5xCCP`x6ytS= zu|EIjCx}C_vup)_Xhcm>ezzR$uil<~XNE{9y>qK8SQR0I<8_^37Hy_R{MuA2ZEb=@-#kvyyX?bPYwr&MWEk{q0-m-t$z)C7Y zt6S((04-$JEiV=6q;_zAKDwOH47& z@$2O$$DbE6LQ4D6+RVZ_@1nrlV%1*-{w*=ZII}j-e=xI71=%YZrTg02{5l*&hHS~f z{!zx4P*JKE*XB2#tS!4x2}8TWdd1LEge&s)(fl$5vk|Q#EA;vtJw?*GoQMZmP#i5q zcqQjsui!BOGI|;i^$tYdoTKAg5c)My`E2WG&MpnV*Z58Sn zC8d60o!{lxofT}-kd)Ft?_TB{1C_Zqo`H*wdcktCf{rt^BK~s=vda9M6`4r?MB=C% z`%xT~yv%P2SC&t-BmBzx(_uqwz11+-VO6%hw)Ridqgl=kH(%lxWv5mv!V5R+4!tEA;+ zX@e+YoT@SNR)zU7Pf)QgxIMqT`A|X2g`|Z3VE7j0v&ybNpThM`hkXuDe(eE{|3$%J zCC4e$xWgrmxV%8GQ+HVkvS&wsN=R!h^YMWRF1#cl4m?ztGqam{Gq~jN#6(q6+6s0S zFW8PXoulO7`J`x$xWZj^OKl26R70&gNbnSD9XSEgs)-2$MKk^%4_3&6iH1P z(pS*@cIioV9P%xA&5i^t(K`I3V3@Gh<{Wky=YPU}yEV91Pe_0nbq|ObzJev(Ndacm zEg-G#Ocyy(K&GyMXZfH z)BR3+n`ih}>s#$X-{5~S8lOMr`5f1A%uq?nCW^amK#uS7;}p!VYz_8$hUDj?Nz%7M z@#sE_2_ui@qrO1}EIQSWeSW`XQ9ks<#%F65>pu_0>7 zML-2beH~X9I92$}gN52pjw*yofaj!C*WM!g_1MaF_k{SDl=hyQsNUUk4bD(o1Ki?6 zujyhscVFLmhqcvi+dBrn83#rs1nu$z{BGddq~Owmi$Zs>yNiYkrS;ud%3Q|N<|n$n zpx@pGlaSA4p?%bE)VtmKks*(Aqb^5?iV4CS4?w3jLxjQ#T*$t*gXG&3039orh9e zEPfYBpuJ-m9WMct@I>)DBr45?3%ncKrut)>i;D=^FJ`HHt=rf`>i+JLyMblUp{w$6 z#n9n4<%ed$sJxLy8aJgG!13~Sg#?na@e_^O@&MOAnVTv^r6NJ#Hf5+cC}UNsmdaop z6%|^hQm;ziX(Jc@uYJA-F&wWyjO{;JK>>Sz*1f9zRPRD*w(JNH6%GcAl<8O%o|O|c zTu9Uy)zCm?Ukc}ihDL_#~wX!0H_Au8cX<2S|# z?newsOAQ*oZZ|q^2!$PNYz?w<3gfQ?!nMGMlw*x&B^k{g;bNQZ+M{}R3pdr^CO};3#{DX= zj`kYX2pel1p@2YLcFb)H>iMxydXR|t%qk%EGP z|GC@-W7$B@3h!SCW!jJCi3FLVh@f4>G zwV1>#!*9! zufC-QuBj)hfh(gmSmDl6G{Ep3=D!ICm=qG~9}9KNoGtG9Jnz)R$e@-G%}H0hW9Zv8 z{#ebar3CG5q09GUu7V=Q97qC1rZQY-x7{8b@@gbh8)K)kprByAk(y)6d1kC#hXO+P!g|BZ zGGZY0U`twt$4=&4M5ta`r}Ck0kP!g2gr%*K#Mm+H$_VAl&gNPN9lCk*i292(BfJl= z9tOC-%+Md(j9EFscn|Ic?CA>ov{Y8Q08^14S(Nc2$Hwt~{{T0Oez1a(;1)LPN4V|q zp!TG%w}=8jTA)9mI}gMDIJO12h_=86l@D7$jFSFQ$C4eZovDOSy|{tjAyHAE^vOQf zXjUdDRIWaKF(Ln+Q$X&@T!wlKqGXjoE@G!p8K^BInX!h16dF|vAw4*3l4EN!(o#rB ze}H>`iH6FEy(;V=W6dVwf*2A3EA^?%DO&SZ$-Fg!20| z3&X*FRC^3kwMB$Yv@++Hi0eh8{tPN`GI2>E!FlH?Xw;xJWdSAaPtAQ6t|{CE8g;3! zO1hMMFQjFSR-2RU8#kAEqCAq@oue-5m##dufHuIaz95d@KqfhO)wa+~hkMuZOU&z| zdC!*=gb(KentFqIu%3Mb-p2-CAbw3ZDolHnVCGAz<;aZ7}%2Cor0o*`_;VC(uy_@Ycq#!>??I^Go22m6mCS4b;yBApaKV4R5r}aJm3mo5 z>9FyF6q{ALNiD7=g^h3K8n`qbjhMA_jnr@Ner=}LgCoBIS3|qg+~(H*Fwenee*n)A zd=;h*N=|i`kPx0e8_m;(fw_c^+$zG2F3$tv#IiGxfGh^s#5u2)AU;Glc{MS6Zv0$a*bsF+|~#v)rODFWA`Xq1krg%lCW zZ%d1115xRp-D|abJyg($sKjK@?}hT&M_Qf~i@VvpeuxQ(r=4WQk}D|WKbXmA)gGXC zVJU~G4=j{et-dbhx_ce?%B&SyV!zo^0(EspsMJDTdC`4~eF7M%Mn)xTu&|6!e+Se# zLZUXyq-u}bFQzuyq_CtC+qC-|_o1i`KY%`6o z7?%;mPiFavme{`UvIXF}96?=i^2jy_jT}qXnsGUSyb^3IJ{mN!`T)pz_i+Q>D?`3y zR>?{T;q&t-U3||&l1=v>A7I5M{^HI02dtD{A5w0e1amv z!zIDsYVxpsTR$Q<0{M%bjT$c8Z;e)-g@py{8qExjCf8Y@xkJuvKy@^@+Rlft;o`0? z3&Bo(X9tcDD|65trNpCR!ogQFhczs~{k9B^JF-lhO1^gB+{lpc2STFPZb1Tvd$cyo6?TVt!DpgeGoGWq=ZK{>nHokz6{R6GyrPth;zFAvxn*nPLND+%v@^E!` zT!`RXt}MA|H(>){b3fMJH^+4zTUJ>3R^Vl)hJC%%gBF{IgI{Y@q~_op8`6C{M@91o zNS1eBUrfNieB6FPU6wpKCM z&{yV!WqoCr)K?ZWKj^k#xZW^BYb^6pNSMFNG;0qV{q23XY&e9Un|l7B3wsO82~w#v zK3uulYJK||HvD+16q_Ai6s#>urpmaS@bbP`_=G6EF!1196dV28jeh&4sd9r}q>pa1dq+6yVn=_MvXnkbcYDA29FjJj zxWv}X6%^c0IM#rc;;P7L%{=4DL%6=%B3?YdVoT_@T23Gz>oW_Qg3;meKtLwO?ZE-i zr!XZqYHb$`_mbH-(cMQ~A|ILVgfI$_NMxZ_!?hs0=6y zOj{JB2Ix0q=$*!M)4@yJ?FB^z?%g@kity?}FY%f}t)Rg35XVf_{FU zPU6-Ui6j6&i22OoR}Esx>R~hm51GZ%7S>Tcqy}-4Iw}DHJm-C`RK<5<2Hk{fz)BVn z#ia%5jGJS5=zkc0*=iMc)e`r72?;@bGn?K_U(F4Z4vY;7E4S0Y1XA?`1o_IUPz(c8 za>DJjv0Y>xffESVl@`FWt3-=-Ytf4D#iGIT#T~K<7r6#M53;V+!typ?I zv91bv27fyShfzMTp28AeLt$ZoeGTqzG4OMu><$jGHBhymy3zu3W{qiaWpX%hb~NhN z;Wa^%xzdWW&a@aOr&=&qLg-ip*e*GNYRM=F-ojThmrUw1kht<;}$05dDHro$&n(;gY0%K=;S4^P3th-0XLa1l6gLOOX*>3$sjsH}` zA(J}cW(|oF{Y{?6Y`;m7Xi!!-cw>g%)f~N=i;4oAm**Bt`8&5vk4ccHD+uGSOTqIa=C?YI;fS-)-T(@M< z(vgc7?d~%YZdO}Fwny7GDYfNN0`=AdesWa_7YE)>-@*sI?WWy{Ot90noB&PfGgl1J z@Q9u1*R~q{7mdbYjs7S*Y%}Y#3ky*-dkFP4;!LV0l@jzXwwmUN4ssG*h<W`Ksp4(BRCn;cO{r zR7lWnZPNpzE#XH4PY5MyWi6@8Y(7(p6)nz`S|zxBU_C=At$Uzb{&!HC!NVR+i}@*x zRxE;0XIZ+_W{bx9*jW!GsDx1+sNJ|(Pl|~gzR>McfpZ=O#^j)iuV)t*zM(GW{YK<6 zGnff}BPt_+pR&u1R`J}ET@X`^rls0;=B4tp0DX-RqtK8}P>-&ZAb#tfSlqKj&Ynvy zg^m`tiO}tiKz~Be?T$bnbl?nA2Q2-CY3!xhI!NR$omN=M~^IofR$>paaL)PMw^G_&A6;WW#j?GUtMm`L!1XC;M=@3S||2qiWk zH(l5_T%*Y9GUyYX3LCKAU#ue)0YcRGz!1XRT8L++^$j<@ zxA9SSx9Oa@)|g1J@x!vh3zShtPkSN&1{D2|X`cM$#10(2)EeH4jbhj=i9??gyx6{= zFz^P2GP0RA>q$n*2b!OX+#5H*!NeUfEYh~~MD9cM}NTt|K6-)tieoMF~+#<7K6XWA{;X*4<*3HVDJ z8{ORGTw}kKrN3eS*vKCIkDb(AF{vr^2~%NsY(OJ`6pA0Qy3f$L{I{Di2E+x?K%<>cB zjyOCtT<~Q!dC$7ZQ>?b$a{>5byZ7Anob{h@@*2V__q`W!U(u~P}|r%WCk`GUBrRHPG&z0 z)tq;u_Mtzw(Z{B?DMt-XF2F&H2^*5g^r$15Uu~!8(V(nI<(gw^n&~lXR=e;*8@)~# zE99k9KWx|uJ)IXWE4`g-n9MsO5zGAM}~418Wsqn)HeXJEf?pxmp0)tCyWE>#R;tFDN2_ z-{L1@af{LNt4FGnl_o;OfnBG?N)JKc)P4M7c!y#jO}|Od*<46~vF)c(l%&Y8zaYV0 zK=CsZ7EaBBC`J_J$IVPqOpyLX9$gP{6k+rHiuG=X6S@#SCwyVE%)Mg&67Si+EnaP(`W3f~O3|jF~oO#VF(?dFhzI zbMH=Q{930I`Yds;7~s`v+6gW}F>oP;<_88w*spt_3NI}z&1WV+u$=R|k&X(@zwtrz zgxyF}SXlYiyu1&~i~PQDl~E)3dAB>UZ2R}PK{Xs;-SKVf&)mKI*#vv2R$c;`ucu6{hrN8K(Q zLPih?<2fvA`&5JJ0a9Z@+@Qt@WNfOafmBd`9dcn`O0U0^7FI4Zd&EOFj=givvF=Xe z#d+%zoO4leTX|3Qe$8!f@POi`H(73@HrU6)Ckg;aZUa|V*!aqE=ic3SPT@md7*k#= z*ahw{JgB3A;r@cvGO1s?R!<%nmWJ>o1H=C9eof5k$6R$i%})a(YA8(yWxHr{L;2#u z%?D0G{xyVzg#u-;VxdGTw@ASyt6WuKE-A(L4p?4}(PtzF?>m%&aT>=2e`!`yYJV?# zgBCzE2=`BZ$-|U;Dw027tRhE57t0>(PSp|OO$gIS= z4M#5fPW_Hm?#x_*Cy&Yq@~8BhLBq{DdKr4~GNY^8J+ywT6r+m@3Eo$jj}F@o5H4SA zV(--4E4MX)9g2f3S)pVjPUkM$$|)nxmlXUry@%LOh_)~9)(5S=1mc)JmC%>NvV!+* z_>QYRH#q3V|R!8LVL7h=}2`v%|TAzU1+v=7jwnv|W0 zL2)pI;{LeXT@Gs=Zv!TZ9mRy5_aCBSvS?FL&unwxAF7{W9YVmELqd(2g5`<{*0;Ov zkt@z#9FoN$<(GxMk2xG?`w0cMHg#;TGZ7EP882-Er^sFl3Im^bO3cEVm{k;@ui*?{ zf%qUSi<+Q7vXTP(1{_Fq__y{@1G~5(y^mwJ-$9!i*(UfnTq$2Orr`$9#wr~cl8jg;>>C$8y%7FDy3$=q{8Z!Ms&hCIJ=d#qTgQ$J5fq2YC#pJ*T;&^;&!&g-b%vmve}$JMhE!p~=W z?toF0zZl0~*a1QgQfg@5ul5>!9EF**U%65OdBZ(%{b#W|d4yUyD^LAfbnJ!|mma$z z7QEg-aoXN8Jb?7LsX>Yf6Q9c?b3q9YSh%`v<}_rCN*kFKP^p-p-T^9ahf-|L5~*XT z=RM>ucGAw)WUNKtXvxl6c}ok)Gwirdu(YU*urN)(xz?;LRs8*Zqca=7VsnKeH%JEF z>Cd}pNs=65)DhqeHy=9$nD2x*!=Md&CaFu&i!Z^jADTYgE?m7RkrM|Uh_ z&>7dirI;X2$)f{B>nK0-Q|yH7sMEQ?u& zPKhByjh=#zGJ=k-cHnH=$Jik2Zcw1ZQoZ{Oy=bvc;~EL!B@}>qllLM}v1wu{my0mL zi(m>1Bk+3!6j>fFjTayGrSpQ1H0u+11fw@7Dh#2=fFaT9 zr0muyNiOawA~vW4{>;AwE*xpp(G7l5lk|0@y-np^*V};2f*mE?F~j{ks3^V`8zyY~ zq>B2YQc=FyN~mS91*VdB>=J{BlWRX~HvSsLPA51vZE0bG*Mu2O=7UmNG-=GcJ12NV zJSLI2nzKl}=OmzN=hcMOW>{AE;WT5ykJvec%z;P}=&T39ZL83P7kNBWTg4R>20mh@ z+^eir+%wnQYk=nUdp3hyLU*Gw0`wMdBS-VLnK_y`N;7GHrZNKX%EH{@JQ4Kf4>pK% zrae9$H$6x(A^WL3vTzobW>#+%nfKo6YaZk(vx?LUtAvy-bH zX(#heH=S59YGte;ls{#jU)FaCuN!sG{%l;S4_~b zhF~h(zZc|pi}tU@bx)AqmgnUilCv1h1Y2Iq3Fs$I0V2r@91`pva0aH>xdiDAOBC%+ z?6u`W0(KE#J}DNF_AB5h4MD;RxT&t-Z=22!jH8y&MZ7X6>yggN(GcV#`hlw~(@dI- z%SbRqGigDo)%RIiFFvxd`ux_lh1KVGXr^=rBq?ZFh7r};FMXOFYda?_eNaSTzgfo7 zIjJNKS#C%eF65^p&*;Gb*$P=R5@uFysBV_h#MRbe)b&JT$e&p!`C*HlAYNA(=!9Xbn-mv4r!lB*z z?ZDbx2}7I82;vm|W)#})!A#Hj;j+k}#lI}gSm%WA1{B)0)wWk=g6g<#AjJg#raUqW zORCZv(C$ne4jCNh#d(P)ZSZ3F^R82yQ+Q=DqKyT(I}8! zl$|q!XvAl?yHTzEBm&Xf?WlyFMrEYNzo*|KU@UC#WRJTNme;KZ2;8U?q3sI_>Noy{ zKzF!Z$(_rg%^bYpqo}>bbYO$16D+0!-K>9;J=X^fM8wv@c_Wh}mZ+xhq{tCvq(+}3 zpO*9Cxa+#6@Yq3=61hr4f0}n+I4=)U=~oDs3d;)qboh>iiW>moGj+Zs1QmjpEoAeS zGuqUwnaU7{Q>ZOLcC5;9#e{*Y3q^M*W`nbbDa7spqzq0jB?vbU_=zjGh6Nm3Ixe@| zQggf8?jZ;l7NJCXu;lI3e9(Ko-L;E{Bp#?##sfVu4@fh=J80G9%39g4Cg;G?dhI7% z0Z~Ib8@{m?vi6Z+Za>@W6w~7pBEh2K!qrstn%NV@HAM?YMA6Gh#%7N*K76Sw+^FO< z)LFN&v*~W3Gu+K3^a$Rp_m#86gx9rFMCKd^Gb}5sv(&j<}@_T;Z8oOVt zE2LJkR`AQF!^wl>QACig;V0v8wfOu#4A}L-;eYA`n}UScD0;;br!`b9*8nYtEYRKog^Zu@s8fHa>f$tmxna_(C zK|Co7Yv{go-cF8W_~{X0x0snj4W2MPa-pp1pulZvrY*z+;4CqH>76fG4}P{s;l>6Q zxlH3 ze!^2X?f`*_xyyfGt0&az9l9Yp9?wZkxpKnP4W+|O$ypE=D#^;9uUl)>runl1tGm<2 zUnaKvT`6JV_wLCx$ja)?BI6qFsV5CeA+BjK9GZ?h`>dN}U z&pM^}0N`xEcexP`s+}@GsF1+k>(GPiqUOd-e`buA z=IujL&^V{n>d25WrdQ{P0`}}^0l?Va>xv00H-7aYJH2V9$80^MjNm^bY=<-yX-(%k z#a$Z!G*dK7%?Kl9#BwQNL62`ET`eE}54}rX=K18i2{PwGg7Sq6NFzI72GVpX$N3zb z`vV_GG*$cCpbe!lY1LdQ0ln*g6{I4{aL4+X^gb|*KHfPrFpEN=xE zS@#}H?I16g*KWNAC1*7KFJS_4r3B|o_r$_@TIXC*Tx(n=!6^V-FQnG?8!@g#eAqo< zliL>*>~H)Fh7WF)Aav)dZ6VWkl)j4AV9%|pOQ|)N667x&4TiNV+hCb(yZAmhF_KQ{ z;#5c=KShjs!x{Dx+Dlb~8IM`5-a3L?fbg=W-OsHhlPXE2eA6~H9| zL&lFO3hrv+CKz;N+Q-*yhWm6I9#H+ly?0Q_$t=YLyC#ngeyP~WoC*4Hr$T&ak4p*Q zSMG`Ng7{F04aFn|?aeDR)2;YMHY4Jc2If*;$nI7*YT)c{4QwK4Y?Lt-{Fb9!4VRBs zPKcNe%L*4igzs1eNJFP5`?#+OM;xyr{-La&VX)9g^NAxTH!kH;x%8^ z$Nq*Omc~s33Tk7gE>}!&Z};4zYx4(FbfL+O=^xx#DBfA2XsGo+FVZm3r6-RtzsBwL ztb;0Hjf*0J|1Ewp_QvA+we|JI+6y}CE`D~`AYtfaCT;`_o0_MH8)XFc3yOnhT=vD0 zQ-YRN^cDsptT*iZaV`A{oBjkp65RtIIu8<7*jY&d{~>$BESL?I;BUp78@>KcK4u}o zFxPUz#OwaF<%TAf%Tx)nJYj|m>zOj7xs;Iq9O0TIQ5w=PJ;~W5Z|pn~$d|rHL)fT= zB>8Gd!T#1E5v{C=F?MT+h9RC-@ds=llPzo~NDh{%Q0;-gq5w_X#Zv}LJqv*f$ZJL0 zRTN83feY@U1YKHYGVnL47$#C=;7f`OzR2!rVP>*RTB5@r-rnyG4(kJhn_`YoA%Xmo zDKJ_T&VZfS+RT&8XB1SJjHAX*Wa=kXSW61}8;EumTD780NhFhSH;sh7I%U{MIf1#Y zbhw_`rc@s;I$FNLf7xYMwo6{&Za0baWt8GOMPK@J{Xby;&owA-J7oq5^=L#hK?Lm6 zFuKD>Hd1~748!L!gBCO@KAD-w#_ziC%aYV z2}kfuVQn08loGKlwu}z7P}>lfge4I~n8NG0&=3O>o2B3>TZtU?oM~r9Ldr@+3kolD zKy;K?BydGP$C67!KClPk775%}tT7q+2QsaE)I;E=;VVTeb17l!D=-Bb%#k~K?4HHx z<70nFB;F^2VRKkNJhV>pgps4=1pAskGdh`1(7#|NHkfXZ%pntc zon z$LI3MY{;$?Cmo=@Aas8mDQQuId;5+OL7J|fVBb+0!TX+mOFQqWr<2~fIhfpVS(JYS z93>b?0`}Pj-s1zv80{Kl8@kVf*8R0lhOVh$QtP^MQp-P3%s$bP&V-}SY(A5bL!LG? zE59LQ*I=h~WxgaBIOc=HFM^a%uqzrC>4XF4YP7HM#76IP}LIjM}iShrY{-Ynm5T89QEGG2gh7TbG0_ z?kv9urycx_?bbC1?2{D=FpfCj9+PdjM8K@!A|Y8}5e;E!y6A7*DzgNL+^9gLo-e6| z(G9$7U5oA<+BJHDYdt6`jC>iqV*I&o-Ho@MF7ChywkW-)LQCvI(;1N@cq+oOF$YA? zjXr5Eej!U}8VLRftx}Ps6Y+_Pgd?odq@*hW6P9a3mU zKoj(tkcO}}rA&u^W9HTcu*UlOX>$izVMt)PF4K>KFDB?RC@Oq>t$g4W!_WIv`7aon zPo31^h`8n0(r9YmS;evv}GE zm^W>R4+xIcpstuee}tO}hzcXGQtW7LV+A|--nh&}Opgg#_v*=M8jKq}MfQ zLwfa0H8=T`(9+NqviIg3ADMYer8w_kxHwL+3ACVaa@}Vzbk)WxvrpW>2?DzkrZvuM z@Kq81J3Hox98IKAJV#20&x#5!Uo(cI7RW}T@EL?%K-}-WGZXfxX^Mo!If@A6XJpN? zd7@E4V%pj`<;*%6AgzLJ`V{MgO9|u$eSUJN?kA^fB0nYibk@n($rmFrC-R|!_KS|9Pr;gFY&iU|YyiZAQ zN=*68{UI|6Dd~%;Xh$%AWv(c_8}$t+nl3_lNGg8)fv@e3Yr^`2$_Uy!Pv~B!b=?CD zmv+8)54yRzBcXS@QUddP_vD&-Z86Iq6a-3m(^5)uZg6g_672Cj z1z~S0{}*PF(|60xT9VU;=%@Be?l{SW``ALxI>uLc7r5zgP> zTuYq3p*9$}oDP`{lnu;5)2_@?1}4h*-htnY`sB&NoNgGBg8&&KNEx7itUa8q-MW6` zhEWKJ7qIuFCE!vS!TpAQGp@_nj%g6SfalF_pYloKZ_RG|kPI(wd_O4^M)o933R+Ik zKhkIB;He82D)gqks7KK)3Du-B0`w{UW{}8h`gG=}tTDa){Gw5R)@|&XQ4dPv>}M$^ zm><^t)OnH;P;STG`1u<*Z?N%A!Q{6^M~w>YgF9r-c%3Lt;TQ;?`pBG2q&`Iw#6;G+dVBCxPu{y+F=65E3-{=% zzK*-TpJ-Zt)>v!W*J?Nh-r}`We!uwFoo>8LOlSdDO8EHFJuw^kh~%H=);Q*Z>hD)5 zh!8jOPgtQ)P&p-oM2-^*A`iUN!A_|cFnt|IIHUNu;VZ=i=o@+Dn$fo0oJ7{kF71{v;+h!4r_BOO9cVJIfgoeR_hoHNpWH5 zzA_}QnW1nUL#rpAw_xtjW+rp#y(Axtg>j9@U}fECOe1QOrWyKeI>$e!wOfveFnT>h zn0E*pK=5rEzN3yMt!a8vuWl`FP)_MdC?-67K|J6wC#3b6pKtJi2noe9ZN}xXBqb#s z+I)$fC@3C^B6!X0JcyInfhQlHNFCdop;C!y3WtwaN-#rhY2k>QpE$x_9a-jSK~Dzr zidYYgh>ZODP$^Pyr=7AA)`zCBaPyhI1V>ENwHM^!H7g0kuak)BD0Nzj^5jwi`JJP| zK&a>1>a0ZOu?lxNRyAV?VTY9mc2WM>w903Ng_ExwCt(g+Ff>IR2^%iYRuLE2C5iK` zrgPy6M_jm<+Ckx{QC{31*cSEefTY+6xHDrUp&eW)!TrHKF(8sF(dMf2Gx7l%@$^#i zZP{RF2E3BMA95SrAUsY?oj zFBsY-jnPi$uKf5*RCB-R`7O2{60CA6BhcT_Z$_oF9lFU)%V3x)v=C)SJ0&=$Zs(1- z->^ug5EE1L1S3w%3Hs;y?CL$UJmdC4>2=;YuSrEpc+<-u-LWaPAIqIqvvb zySsPo<~8|TP~Loum`lo#!_wN0a%jem z@Q*V_amz}Jl0op%YH=-wwJkBOONj{nTN~}p6az%Q%d7nX1!&e=*C-VJa3}IvmyD2H zL4i6uqlD0NEO}gjV0CjUc`7L6-+8((PWNAs1Dg^kAeF_ zLk@2TO*CTeDzP>S3k&pTxW9YB9k6auq?}JxPFnzu8LO6H0rBl5ld2^tC$MLhvOH+n zfW?uU*u=;8V+X7&rWJaC$cbGjAShOeWnV8yW1s0+SNewORVjK_$_ecBcvv?4SK*+l zEwB^sl5dyXu1ZO)fhi>5pZ+8}DD%M%3J)boU&IP4tMZHedjBv|{V7$Ja)Ns9Dah28 z+b{k|J>(Ln*toWRkk5ipQX5l9=zfH?M3yd&#$&KCL{OKdlpHCw(=mvQ>M&6;fxCi< zi;t$N0U6W=>0)77*vV>aZKRNrC&dC9+#CyY^V}2{94mP(UE-V$iU{d|7Ree29IN2>#Z$Dw3BoGv@f<%VfB%AY&b}lxcWcM>GA*_EAQ|Cwl z&27apk`9F}m)tJV*d~xd0`_hU7HpGTq(0p{Y`nOJQ=CQzlsFf{GJ^2|4F;D^v+)8O z?7A2ss*qU-bG-u0^|3J5V;HN^(rR;KER5R@4g_$sLTzr2g}E8m=2iumTVr8v#W1%k zz}y}Sb32B)Qvv4ASeQF8%-sqwcgMoqwJ!8fo+C*CC=Je!R2W7^>L|W(O^yFFxWyZopTIc5U z|u~2ryh%B`&0t_-o)gb|Y1jvk+3k z=ZNDvVqENCNw}}DKqeV2CI8y)fPAh-Bo+B~gp}|ZM5J%O*s-Ct)rPoI@}zN{^d{~o zGfY<_t(27XYfYqbKd_>%CJrH#5$3Hk!*WH!j*t>Q<97Ef%hiOTl$7*Yd10-=Y6HfT zQsS?&^VrCv+RWnUDB0JV6bNL`@KuzvBcz1SH{nUardgbEzS_JJ5L1A2*gNXx^SxIa z=ou{~f7QR*)OHS?zYi--k9nF3_e!fBO~BQr2PUILe~0UsOpi&(3t6BAiHeduM;F|> zw7a1=s!2VgrQ|Q*)qWeBX0iVM*GlpZsVT%iM%ijhA|y(T1`tt#uN=n5k*hTwlTo5) z4%>&nHM%zbrka{kN=o_yvIbL5xNbd)>8mE=keWiAb?LjJ%U!BzLQhJGzlw0z=+tpF zP3Y)kWa%8L87>vcG96Er&q194Sw~07p6k|MAR|(|3t4R(X0(+2Yq*MP5S=%!HZ2ID zfG{?B?b(2;gqe^MK7&3%7wH*ER~s-&NlCv#8KDi`Y6G0fDA5bOMt@U=p`l%E6o%9k z0_#(3kJP&eCGJK;@j)eZYUwG=8A`H+)sCq}HOVU_CH*S$&_p|S)yAZwqhv2)=LkVU z82|OicAcpt7eh`#UUg@h!&$N-?|dj*$)3Ru6dfc!0ck5GCHt@ zqv)vUa@cCqfhVQJU;7ogv-hk#s&OrZl<@gqDPEqE&|9Ta&4LYxDZuY2=r-&h)yy-Z zA|waHbL5k9X*tLrbrqqrbOijqyGsyx%M9T1`0g$QoO?<_F{c<{O8zvJ(bk&1mxJAG zcQ~FTtnQPOMOO%A;^R?FY|=zwVcv=2Ai-Ocu{ zJtKEAJtCv6wSSYt#qQ%KLjLi*-Wu2@SQ}q&pRKZ}GcwsJOJBj?aNraJj=toiJ*qm75GX3obN^}Cx`2ZE3AkZ=P@X4srBQXjEFsHg*@kKij{paCBFI0b4i`Fea-|S8+BOH;Z%f-TU=cjF`}H zZd;~M+hwGu9BD)H~rjT(xS&y z_QWumvewg#Eo7#PF0(zcvE@iB>O0!Dyj^;~-rdWak_mRq_{L@WQ=Y!!e-z=vOWNET z^c#6Dem;qAE?ig?<>fug3$k5EYE{$v8z;v{fS^41QSaJAj<>@t79RsRkx}o&VL_CW zNE*A%Mr$YEDkmt706}?p-?oT*%Io2TRaa^U4Iz|^4=fkl7C4TTi!Vr6=cKY>FqDtq zTRz}>Yf;)jq(9hX*_m$oKb~AS%>yY%ZydJWsg?V!?M+;76>oo+NF+Nb1{bwItWaba zD8^KVq4<~dZ})TS-;x=r0yL9X)VDi)Zg)yt2lwl66-M6F5@nU4Q>jLe=2Dky@N?^n zuqac4qD;JN|9l^A(L5U^PJqg6C{7t8xx{~`#0cXkBe+Br8*PVKvmA2oXzXkv)Ci_3 z4-`5pZN^D!^f<{xlsiN@rm03EE3Y5Lymt2n%pYC#Z1~$u;cvp8WWbcA_hXj$j*8q) zdJ;e6H^`2r7Y%9)Hic*o9NuRz<>v$Y$$b|u#>Zfdfc}>h0ZrO~98u=5l%Fs1{Aj1j z#BVs;OW`alo1_G?o}3l*3(rqRvzY7mTPe&@otjKXeY|El_agIYzdxnm2XAjigH@y#kF&a;>r+}vp3^*M5<@g{8!9- zBaxNYw_@Q9_S$yCD9Lh~R4*}#^6*}s2V~4egrRA@|0$&>P0oiPDKEK6_XX~a&D(KF z%uLvoG9+atHYssiTi(f^H2=rBG7>BR52oD2qQM6g*tZwOUDs3EsTw~DH=**ASl+%4-Bt;?2ywG*uWOAY~;t#EBIj zs~h&1B&}0{9S^1~<+LDJs&|{cX#4FH>_ciNK~iRlTe$v6n)@eLMFptJVJtCRE`#M!d8u(GPA(+50;=>MN~|n+%2TfU6h#=EjyKc?Gbk@P`2-=}p;>Zj@(J*i zr<{B^5p(2AIr?7C3Z=Z{`VHsQ$*&ia z7D1CLo&Zbv`8+aa_Zo*tvjBI)s0m{?#aon3ODU6UA*M1I3v92|-hv64n_W*sU?GDPa66YcW#TPT*Yg(y#Wr<8#66wCYzia#!)WffwtfHHNR*)Ed}Jkl$&^7 z#Ro6bw->-EM{!?n?!Y_a9HpkMl6p>sNj1b%p5ivcH?)$q(K4siW*$triQBBXgHWd? z!r!g?Gs(iQBp?r`9L3XElkCVS$oO=oF-1~NaWPC3f;XHHy}m(OYF zW|!j1VU6VHaKC{YIdU1jl6*xI>%wM$rX1yZPr>Fwl60zcX2DWkYSC0r%22NAC|GVh zOPS}Zd1Ugy%3?gZk_$A8ikR50p1cVSo^lln4v7gj`M7i8w4Y=kP0U#yQ@M+m`uOq% zZU@hMvXlDRWR{!3Qifumh<>Ce0K#TW@@Q2N7K=a;m9yVRBOv0;?r9}O)g70$Y-cOp zyAj@cn}}WIvm=(fB*9f`%n(rp7c2T!{a|aS;9OMFB5E?OLMUY??((!r^0Ky)43;t! zt9cDh47>U%1luT#vXPeyX?Wc8wjW(acv@aRVaNe0SFt|Ok92f~LQ3k^6A!u=Q8|nE zNhlR1$Bi0mJjq(9Fh6H#%1=D~`7d$}m?Wp;@WhB?`O58n7qeY(axKYYFtH*Jz?7dj81JBd zw1v(1#@`0mj4qCJPg>ek;H?l?`Hby5;d4~bK+@sTsyv3E%3rSA^TmH=047;56Z)jx zb%TDJH$E|ubJL%~i3t-|9-C0~N6I=!`JIh0k|vdj8_2+E)5K;0(j()bM3ECb$yAxJ zg)Ex#l#`Q7{+xIBo|dU8IihW-Q0&Y^hJekNk*vVusCZ&Vkkc|Rnj{@r!2fSQGD7Sk@1J+O8c)V{-}w^TQRP3887Q(SIp>vB&9f+Eub*UMy~ma4?Q71c_H~#eu*{UayIzl3}S(V*A>Ek&jPGQi;`BvJp!0@o~%7 z=3#rY)5dv|=nAOAQyFceu~mwHh&*&r3EG*0Kg_zql2W`JQ=Ggf#>mQPVeiYO5In`+ z$5_fuJRL)B*vZ{? zQmMo{3G(+5KHk&WNyuX=cd^kTU)s@@v5x~*7-gQkq}E6 ziq!yLDU+W^l9bYf^GE=t+{7cS+i2DMxS?QEycpq5Mp6vVq%1{v%2zzC!YwaWqN2YGRpXSjtbl4_xXkO!9_LJmKXamA6<{bWM()Tnk$< zsmo8M!9yrzCmw*k{pRk=$zT*9jb^6Z?dLb_k|wtb9lW>i;gq9z)t7zp()N2I$nl)z zjDe&cek^$zgCN(#Nvs9ic1aqvDqDi5(uy@Z3pLn93rAj(U3Wab%+6g2Z@H#?3A~lJ zCBpLfEMycRc^aBMmv#@ z+NWS)DvYubTbLtH%_b@F$*0|-t*>}xM?B#Yz)i}ztYKKj5>Fas6Ly~>Och$Zcc=_z z5Qe>^AdIYR$`OqML}jk1MM-)&-ISyQs=Nco5tXm}D5I0S1qm0Eb~`Gw6=ht^aW&ZbYXfOLNUfOBc1qJr z2sctvgRS0nx0%0PFlo$9s31cuWhnM{^#;(NMmnc+Sj^!l7xBo)1Q;jjO|nMg2Y&6Sf5UWKmexvyW@{{)| zScHP2OvD{{(4l>hmlBg4LMc135jgtvS(4Li;(lZCl&e_lyx6DACAmR$I$9?HQ+{H% z{)=X7XB+3>3yf|w<8Avd{(OR`6+al=?Do7lbK zZzkc>@mMF@N#k@vqYFTlzgSED8lIyMS74{L)G>g{RosU35xHrsS0QPJt+4va(3GFp z9{N?o7()pqEi5Km;&>coBvwmDe6=BRnpk5fX@;GQl>kYZiFK0uBqM8P*(Bwil}%ah zhJB{bp+|O(7 zlWX-(^O_{TY3#_~3|*Jrun15k_in)-=a9%0{c7s_^Z)SIY5ZsC^-^_Ch~`Lc7*IKS zr+}lSI^6=4G33q3>I{M8NPY-T*?Hfx!>y)`7I5@Z8tc;nUMSV8bV>K;`Id6+Ow+SL$W9QZ3{Fr~asgdfZo3dZF%lsm(Q-H5KDY zvNln>eG*6wn+k(%N`Bd!p26Li2U~m`AnW4ZrH zB+w!g2ubLbv89m8*$)b1Iiss_X-H1{AOHUtr2kaR?luPL=Aj#<)8-)@Lt)eZ7Y*O9 ziuuPi-JShu_uv20q5MTLe+M-B_&>S+dYmyt#L7A=gK1A4!CIfjA^(R*T-e6PVU38D zvBqG^+ElUBp0`^pGyPY`UdZE19`09#Q%b+wn|`#o@z5wlf9OCfRH%G%>&J|m5n1-y zPhVc34Z#t75R@|Vo{%@?=6Ck&+9}O&DQO=-64B8NF=Q!I59@qJFl(rj zVCw&)?)`pbUyl2*%f|o#0t9dpS+e8ANuXa@OO!~-vJu3*6sg3N$mm`OBwrS@yL0vo z@9fNSX7-$WWC%tO2!bFHgkTYZAP9mW2!>(!ArE=Tf0zF8t?H_->hAi^x4!4x+y`Eg z+f((a>gww1s_OnmqHR!#Wf#=9j_LdJzMvw}HmJlBKtWcOP2aaqyHL~&HwV+F849+u zDT~pcMMAp`kqqh^+Na@uD6@KxIgLcy*b+-nAEbep`r?TH?R@+sXz(RghKmBHLi>30 ze16$;bzPaTt!e6@fFU3fyWz*X(|rYK>28=wHt=M207vXYABPW>F=JY~4@H6vD3KKa zfoyTn>hZ7(Z;*ZRa(Y!e{vR$hqyUMKZh|9Y5GE8O3e1<&8?G>0BBJeOKaLa|pb|4s z8B`uQ7U2zSx%B~_NVS70F$G-0NqziozdO`bt))&1h&E6GO91uX*Ktn%{fSO8b@lI- z+E@ZW$@hTLacFD8dHv>ozk5D&Yg_8PCYm}pU*jQK-1DmP(j|#hby)ak#3go}fBkilKwY})WRg0f zi5<+H*mb_ObKZ3#K^;nB1wcgT@;fi5yL0lu%#4}P6+mBwh>p{=^n zcJP#N2Oh8n-H8SGop2vOnEKKM2t;*Y@K@9t)ZTDU{LX%J*qi`6_3+1q9-dKdz+=oo zal(s6O1@q+QEX!>VVA@b-@#(Gztp3DCsJ%+Nz6bmVlk#)hA#`h#CN*ODQxLtEMz;V zGFyNqw&L#`_wOF7nd&l1r7kC)Klc{+GQD`a(O*(TK(ql1Sb~)aclt>P{0y9ZqJ}#`1boC5jef zi4+@H60;7LZMu+Fy!vu1fnp0wWCmD7Ed0rH_=+2!q@}TNCfPuf*#R8r;KPU|{kC;1 zeOVZ^)WkawDFgs3_CYPMTDlKTG#k*Sd=Mall5bI89w5>n_)&%{>nRheb|QofKwA^( z`A?6h_|&khX)MhJ za?%ZSoISu4rk7~N7aOY>Y^muHx*dQMV?Za|-0y{bJKiKAk@QkGmr3fFCUyWv%;{Yy z3Ergt_}T|5eg0g1!sd`@5sNBq=`xMt656`iN07G7^@{1b7sT^{^(0B;*B zzj5q`t}Fjjb;c9Cl=BhlTbigts`@PBp9czz6_BLBRFI~|=rO;MsE#krSz-yR_Yyn*? zZ&(~{p0{9wAW;dmdML{mzlaZ>v zo#3BwGZ82B324kO-lTF8g}1a{A`;Y*C04K#!`+g4#U5e->xR^mD7K}^%|cd3SpJU6 z``N}U$H${$vFHX%I27p8um*_gFyXIbkdR}JsrfkF?DVu4Bv5~SdD@H66j{QIi{s|2 zSbV?vfF*d*J%`5l%`ZSLUX%hqd$`1VJ|DL9EoSjK7XNNOU9V{sWtYfEzv^ zG!^V_ND<8wZXv6~Eq_O)ijCtm71C~?-o~bV=|&4g8~ExXo^XigSj4;efTcWfUOdO@ z+WF=#Ts8S1*H^^hVghuZ+pBM&>zUfw(!<3>Q=dd&2;N!!BY&tKXAuhnsHs`? z26|dutsjUs6gTn4wJ8p?6Ug+hn@>Jm4OyfC09dN0-h9|9ZcA&S;_`C7`GB=F>C9fo zI{7E@Kbe^=jqVaf-NrIASepN=J`tXC#WucpmiqGJ`lQ8Y>O_{7`#5PGE+2ynEj$0feI9bBf;BoR|3)*Ar91pYQ(u+95ZuTwH&q;bZtAg!Zug7XY#~hg z!a59YcvAvfgi9SDC#|cRk3k10QjQ6AZac`3zbL&ABK7ko^*-Eu*cJ%r=zre7JnjzX z;J4zxe>*s@$LhtuD?P1Bm`$-d0w)-b8GO|5ZT6vKDJ&`vJ8Y2dfGq4`G}TV z>$`LK$nSmdsSMqf!3?L!K=D7J%HWlm_~($c_&k15xAZh#`N|9u69_U3Pz1d16UTqD z4HZPLge%|oDbxh}i3#wBLstAn{Df$phz~v|(D@W$J;ynD|1$&4$q~Xi&CCaxAPD}? z_uFvng{1tq(t6}Vl<62J_Ak2DL674fWT)e{Y}xzqM0H@TW}_p z01B>6WI?9q))ZJ*rehVd3NX$Vph0On(}07^F|E5V+%kl`$^}zk zFi(@BPx4pv6OdcU0OKQj6F#z7D7^Q&I{DJb5I^}4Ym`r80y3#7!O0qDj$_d@5~9j9 zlE30K!kIEbyP2LzoFMXLL?`nDtX^;|m*ajL&SjxF@>BS4On+BGQ^+z6Dt|{EPDilY zyZtsksBn{Y`L+DNsM4tl|F5g=j0|~D(8Iwf!F0x`e{lRsLxDy?dtK9glXeel z0RTv+b52by_Vy`IuS?yviTAJ)2mp3!B&z96WgZ3ZzwvMnP-M#VdyqL0K&`7d^)@Mx zT~thnckq%?=)-idG<2cv*99yg-T_NSAy|Ex#a=>1u`bK3(C$Djg9b<&L7ofJLc4>s z3__&30i+%xMX4?ZK!|s+l2HhDY6+ciB5Q{Q+(Q1dK!vd~!d4 zg4reTq0~Ew=`dW7x=~N{Ed{WPQ8V&A#JSK{8HVogQd@%p*u~)y;vKkT6zW&Ehg|zn z(7M6(iBa9!1LVn<&z5V zeQsBqK=Wf24dGlg&d7H(&c>mUgyxv|Rlr(+bg%;a^pr*6yI6R>W|e2Phn|7}4?X2W zYw+Qu1<=c(ivo8E@=dFX|ePM=n53j$ahEi~mbk$HwX=5J1~s)`3q4 zFTl>vVHCd0roQw*sB8aKyz(+hKu=~AzKiw=@s8DyQ3JDiG^EvCfRiI&2RIpp!1YBM zNb=gT_?ogVS1)w_fQ%TAgt zGlFvYd4;!*D9})qT#V+i5b`nV4CV%j#z2d-&BOx9(R% z8{W%#f=|!BRQE1^l@RYhC!u?)&DiNy(@++gD7Hy{N)*w_hBpa)N{P;_a<4PCbqu)c!fk4y%$(ouf zJ@!)2SDHkJd>1o?0gxeiSJNyHV~ag!#wCg+}}J1^&Vm} z4DmL!{LSBLHS73jnbGfIW&;s*L(4R4;ICyuy^EMMC4wzCJRHdvP`ExGt`P5`Eu&Dm z4X`9n;19MC?}06&5NyK|$f=vf%|7m!Q18Jd!w_#{y~Xodc$#B1ug2*2F;gI5zteU4 zdJ~CMn(W(<2N*hID?M zvNW{f%Phyo+9~<20NR;$dc;8B4+ly>U(S|vrTPSajhb?OMk^3t$C++^3*7N!3BbuI zlOp$VimkG84V{1h?2z5AhTc!-OMuUhn^XdyUB6RVu8{GOX#0)zyUh=yPGa!mCzZly z{WAJJ^JfE5hK3!zGStU??1&t8d+5oq5%xzziQEVKf|F*$@5I=0G8}T^qgLbNcM9>I z(#t5+c?0*;uu$%UyPPb0xXUQS-LUiLSSz0tPLF|9<36@RsP~|gVTirqXP)y}6w%WI zA;s_GXW|(NPriK#$Uu}~di1E?uc8e3C`iO$XG1E<7wD+k*u$bcWDQ59#sB$jnFaOP z!#IP{v=At;7dPTJT59I0Jvtvgmc{7zL|_BavRV?P*W4znVkclKflmZV$@c`H;}Cyi zb)StDW}i7&cr0&t*NdUZ?BiX@*}FFZWEkqdVLxw7b!H#?q37@(d^!&CH|)n+YWA_8 zg{OBYHlJSa4#yjK=iugdc`e_DT(#~F2`Z$h1b0BX2x)|wdQ zdpB3M{Pj7QkWXMN*vXe9=)UiWy>J*}FGJCvz(Wk0R?_fkXJ#Jo%7++6JZ$&@5NIDV zuNC#X;I{K;`F{6{=fxpj(J-g4xFO~*ra$lDPajc3{9jDZ-ow9-UKjCyF@1awfBL)` z;{RfLdx#lNJl;xcHoX3K*?wMT;EU|}q1n5VWBRVrA$`IqO$G71U&w6$TJS4DrbFQQ zrWOU9FcsztwJSiOHVc${N7GE`H#)C81-7XxdzlIXb}=Z_N{V40Q_?qA9{f7w2Z##{ zfXqWSA|0>PQ4?7d_Ov+kfpai`9XdUPK4>wI#XMK$%eo8($hCT5(@shykHPk`lR|y~ zT9yj=F^bM2sm)OCcqVBY3@yS@?Wdhme~Voj#YRZ0}ySLFo5ElYs`*v1+*{>Oy~jx(r0rP0tr=Raik} zE78mIF%Bc-6byK6c#cHu2$6ELEcu7mbgrozg56tBjOz>P|K3>H{-7&wkk)fCD0JR&hU@?|pvmfZIzKlbgfj$|k_j}gh zoCM%m0xE--1u+hNG1yR)gy&52JlxYZ=PU?K8c;dB)-X+w48)*Nz};)sbYGgCvkWDN zKqc_9rUj`C=+$7>6q5&ZF_6w==8L?XKcPRE041&QmFdYICc%_KU_$V;0-Xo1SdDiz z4@BW`z?!txy=Cps$)I?efy&~wx*3PQC~PRMZq2e@ktXOQ2TeOrDZDI;(C^DY26iQQ zB(2a%0-AzYLjpp-F98{d5@^0D9uVldAo&Q2-^(`@@_qPaTo?UQX^T$kC#i`w&=>N3 z^kp2P*X;i}d=HZ;pC&0NelPnc^!oykfqe-`dv}@u+Frei1SKIdkf01i2{do|oRcPW z3B)t@7d(&h&y`&+O2S&brwM`o_uH~Z`U{p=(e~~rRqdnV1jYYPk;rTB<}600#^Au- zt*!VJ)lyrdsg5<)3!&c^f(*pT{>ZiItn+cWy zp>yFCLoH6nXcl!LE#PT7Xhwue;kAbl`u)iu1G^UWhBksH5m<7B%HU;DltEtzIufPO zEQ+^-XE9i!gv#M%QA@KnFMs-nr)_wD?BUP<;Lm^dPvOhA_s9M5biVmG{wsV` z>yyxPb$Dcp`^qohs)Xqjgh%N#*5FisDsOyz)aLhJPW)4gk5^R;6sm1#nQ0f--F|cb z8Pl2vu0*wsD>DUL@YOq})w}%*SJ#yvm=i>Mr~*p>rB34A>G<~GudGP511m8FT<|?P zCfEIOd%EZ9y7GH+3fVTYi7h}==kfmd%s*r7F^`dG4_08=2lZ~lr_lveAld;HSpq0^ z5+63F&$b+v$0TO5ZD12yfTnuaJZAgAOy9%10^t$7z#0I;cg2~dK5WmM%gbqV;fvt9 zZ$xkxTS#|67WM#hy3N$0#Z`ITZKft|3(%rab;e(vj!(C*x1YPuI1p}Qgb_I79f14u zN&xrg5x~G2=DGv${AMM9=QksOfi(bB{Y}#Ij=}TrH<|1J+zz4rBQ01;G=6YCa&LHa z2$+!a0AOMc>YGZ;e7zy1vkW}1JI8eC8}Lp*0Ciilhw$ACHt%kljg$vS6LY|*ddZ~O z!^_j%_QX(ncu7KggfjyeBRxIdefcY2SqEvRJwQ4E0Ho8Ckcu_E96meL0qk{8a<7XFkdd_k;LA$B{oTvRw}%l3P(7$Tp0-se>2az{RNK1C zOhIw#X&?;oKMh2pT~y^Xpl*b_L%i<9jLl;s%w*fZCbpn2btU96D+Jy^cm$6G-aoDF z)caj9tjg3rbJ(XRx@~yC7}TfkcGI9re;&IXQXV2C8dR6WephYA9%s==w1+IP1jVV- z`m}l69xfZUCOoEfqT7ZBi~*gxV4pUpV-*{EEZ9u8hb^%MXzFY}g{Ew#HILbhL_4q| z%Py$H=8eDCjYQj^5=#K3Zc)em?hTJZJ+`PswGAsX1zf6e9Z#FXBM0VTT$yYKS!N5+ zRO5Qy9eAqN!?+^RHmt-FK&kqAemOnw{q>c}c7SEJ0PVllHm6hN`0pJyra-d|Dl!B_ z>VB?fsXQWEAl$|VBM_jvW5Ot&pYqr-k@6T~QKD*b=hvGrf90#p%X+NPOtynAvxWK9 zq3!k|mh^{~$abJ*wg63a9+&NA&wzP2k4Ur)E3pJnYMgO7-ikDjN1QRy?LeCt1G?#| zIzQJ=RFnkIbq(Pi>O-Vea!1AcX0zWtgdF&7_zxbtdEjN#+j!Y9bT;a0d9yq2w>(_( zSjd@d2VrIlQ?EuRZ(r}KT7pM(lBl+UWu|~jRoT1HS$llT*0G1mGTAn=i7i0WQcPdp z-Cy)FyhDnK5pTj|qtNuUeJ+i>-)}eES3B%;g>oNeW)2F~f`v?}E}uFC3rKi?FtP@K zn!ibOFb&RZ(!t+w>V2pM1mK;X)M6f&Q&hbAb&sbEc^I)*9$woolLU{I%XHW;fo>mZ zWDNRkE~?-*pLkKuYf&Z2eT11gU~Dd`&$jP4M6X2^3HK2u)&Ni|Wv8i7B3y@3HX+>y zIk5+rT9GEv(xNwqA`PY82MPcH>2x_!uE=&IcU_y?fP)EjwceY?@bVmEI_6%zj3JZm zqn+3fRm|hQ<(-65#f(EAG#iRetEu8J{AJ5sf|rUj=^@(49#pLDwZFZ2zDc`WYI|YE z;IP+n>P@hG7~<9Z0}g$9=BG{v|3GPvu|@!(S*?(d)SfrtFj6fvheCc$e~cJ_0P3!O zL-ChcgQtE2?J?R20FX{kXRxJ<@?TzuqU3FE+hUOaaCurzWirOjAb}9m(-{pR-X1j( zuDjAPVqp-VzybJhoQ*kvo3F?JP69pgY%QfMHU;>sfrx16D-zzhEW!%vq-3M6Bri97ED5}B5Fd69vOg07` ziGca_?fvm#d%Af@|7KguQka~y4wH{Tm=J5=%)q#Oq3ibb@yLsLSH>DW`hCC@2$<^h z6y1%WdfL3bRTO;Po$DU?K4t;~AVYYBkbm<4_V8-+vgi5bE5oA}Z5?b40FVmHg@N0I z*wu15=|0YhJ-`$;0JK7S<)lDeY6FsdA1;9bkRkAl^Ax<=%YC>Eusz@WtMhsLbhm$( zk4~b}bY9u zd%7cbL{G40iW0wf@E$}-pH-M4N`eKV{G!dk^3(fFm>;cTVwuq#Bb%UsK)*B=D6W>< z%_ZEBxO=HmD?f1;iZinc#(#zGV0u^Jrt*{@6K}?U$=mY7Wg%vy_LciWOkK+Wfra5`g44Gj7zrCww^i75^DkndxbR= zE02pYvs@_@E8J$v25+6AL0aeRya}~TzT{S#v&?ChToX8$vryW4dfuFe`+G)rIfQqScGa#ogpHUz=*3ONa2kl0W|h}k!hM)NO+02{kp6D$zLvIB^#AS>(u zk%w7`1PCN(R0dfxy1pplUs@Bd?)A1idU?cf;*RM(vNg~+%Kya8nOUcV{|X}~!|u#~ z$u}?m-MQj+op@#IG9JhA!{C8qBYmPFsxs#ONY-dKd(lW}NW{EU`1DOmVYMfiXzxs!$iN_o{N|;~_gUG3x z&CEJs5aBjUDiVpp3>lIXNqgm|e6swL6g9gmB`i~D42;gVAuFCfD#d1SoxrFtn|-OxHTIVT>jB}YM|rH=E;Q+VX6!p0_Vs5rT>Odal1~u;w=qvRpR(Q&c%h%EUEap z*x(^2KJTF;kZ_tQQUV7?XeetTCy~nZFKaPgv*ltPfrfY_b2}bS54%IiMf3ILACJ`R z=E+B3!sJ<3SlVw`EaHE1Nx~&Yv&72KKp^W1I~-3>)nje`Czm8q<}^#B3EW(n-b=$# zl4)MU5%~%3%ZBEa>1XL9jLh`>n^!2SSu+(ol)^V6Q7o(Zy_f7pl4@RdgZu<#vO0L^ zC17*4l7k0cvnC6EgpwIj0#PB{tNW(}5|25OlnBWf0g^*Ho1JwcK*DX7ROMWcGi2O? z2}eFz>ukZ4-IWrSDKzvgBm;S`eG3Z5d4lSF3r1IxG7_R^aUEBJyynSQcP$zn|NF^( z<75od8z{V;Ij7L!n=al%HxWiW;RP#Tl6h?EznV^BC8RFmF;UTp5DkAyE zzm%0#DEb?mC&Om8JEsfYWIN*@PVjHSQ#hK1RKUU%+GLI1>ix=EbDSY-{ZpJ*gDVMI zPLIi~>`H*m45>0Km^MR3cy~VTLpDddQ{Z2M;mqt}F^C|X;XIJP`gVJKm6jn7m;KKJ z6*sGR)z8olXUQj%R%^;PD|1!k%OHR9`A1*+DE@QRM5c&{t-Cb^P2A>BWCjWH8LmPW z9pS;92A2L;Atl54QX*6k^ykLcnZj8@1eAZ|-n%n#v5EwsK#s4D<#;)qx0k%R>+ezg zt-DYfORI$1Z_&}1#f|HiBrd3ht|cyKIZs^v+xge`W_t&k)oTKl? z{Qmt)=3FzKCvyF36#9QP2%X-+4v)~KSKX?m%tM9$$6xp^bF&h0; zLNc5yB7q7)xS@VB@qO6FPerp;=wCl!yk?3w0R+kHmKpsvUwW%qW@0r{t_*L!SSg*# z=4&;v604bFWq2T#-CI6wJ`drfu*KE9W#Knd!1BW@_Jr{D;P)#f@|!Cq{t%@!q_L-U z4o_NyXSMmwHvg2p!f~dg3@q5KJ&=K)b5FBcAcO3#l=7M_J~eT@ACHq*%@i%egPF7M zd`fH8YCGS&=Bml4Cx9TCp|lczC?4_iuhIgWITOX+ficEm@i&c>$~tivXE;|p0u|=W z=rcKA?n>72nH9(DMJ*1+kO>9D37_rJJE8qEp&HBC(o(oEwT224^3H9r%!T?FUMg<0 zg`7Zwe1`HTa?Dqu=sC&1{K=WkmX6=n`i*h!hVvsmKvc~C;GVN-vAs@U0vqP_f6zt$ z=4tc%`eqZJuaC(;W~zVSA|z+f6Nit)_;U#S5WYOKD)7j_20TFljW>FdK+GS6bL!## z-R;vRJk9<&6Tqh@NoQmcq=E(l!AB9RhXyhq`6cJKj`owNkD>D~Iyau|nec|kG56c2 z@O~0gz0Z?9H46js0teLHXf_1eheLQ8CG?=gb<0BspJqdqk3|p;Y^F4E1-%bx5}!HJ zWMCjo_)L$QMF@TlgM1-3VVi*LZlZ%7UGI5`C~l zUJjw%;B-8ncZbI{jf(NHh`@e;J01P#lTf{qBzxzm{7im~y-Lf%*PhiaA&f51So*!NRT2!>N!`CAo4IvkN|-MjT}?f5AOTCCArc)LnJOVM?vk&^9)flGRi}t!SswRtvskl#c{VZWMdQt$D`xw z9!!(U>KFbzPt?G`2%o;{*WEA@U0H1OJQo!fM)172*xfJ^ZRPboPj^dr7zL=R9UB8}D6XRl(0YQNy8ZQDVg!>{$EQ}IlH~@dV z2$VXP`yv?Ex5(aJ)wRYGAfH2YpMc>*h!lT%ozXr4%HxOb6EJ@EkO)vcc-T$n#Wlv` zBhPeRqHeSM5(^C@yH?TAGar_amx`ZJhVlc99)^(}k%mu%cVtHy&6cN3&(I@jciX)e z#KglY2Coh^N_%AmP1H$sg>G>^rM(WfSyB;@;IjI$_tRZSCWrQ)=l!O7C)hRiW^4=+ zvGKTi`my)t&--u`<~>NRvG>Hl03V>3=HOKbbQ=jv&pF_1#zOG%I0xMYpMUc%6lA#b z@?7wQhgFCS2qvQ&g1n0FCCF{iGXyCt4EPHifZshvB--NIpyx3HIT*nwFo1om`h7Tc zaNBWLePUrmpWy)f?kOlK=CHlIJ)S<}gtl5oenAFzC;=OzIRj6y^x0K6ONCc5b`c)vfs@J-G$(yjOy#UQ{y zny#CA{A~N~RwTzg-4t>dOMpXhCb}ksuh7sa(9?u~!5BG=v;!A9_XcjOMnvGO6w%!n zQX)`RgFH8e!eXrTG8Xl2fG;%f58tNy41b39!(%tGnqEcLuJDnCLHjrswf|3hO>W_3 znD9lfSIpu68^>bwMBfBF0RacucpEP7i-BsKq0l-z_0=%^K5x=CIGH4=z=2F%rypdB zr_9ZX$>Qnsk%LKw2@GKGHuoUq+ig6WhIgGGnG~MQJqoWG@(_R^SvTbuxP8vMdpuKq ziMk1W00DTr-t-6I`{^qm&Q%m%91Xv@hxp;dtiqI2(f`F_tK>z|nS3oSX+=8J;K3iqBkO$|~vl-Nc2q zrqI)yXKkfsWR!;OR`Y#>M;Tdk5eh1#{OH+ zP$Zg_%F-yJ`dbutYM zV$A4|Ak<0g0d-EE{Shj+SyB;@;IjG)=q03kPVre}8EUyMAkN1i6aNA3A4X}CCf9QZ z2rluNBTWVdbJH!jo?josyZ-0P?enJkXt(E?k#QMI!iM9lba(ah^L}?(x4cnU7$hig zU>dp!_Vdfr)8@qEc+Uj;MBe~>0%Af94;fQe<%!zxu5u1x0SKV()*i!P*&yLr!UG0l zZNo^k@$OC+Mq?KORk>$l5aD5hkAOh+-J6(!dfhkRc@r~}H{qr|1Kl%rpqZj`9w>R9 zv5|ub_yh*j-N$~~9L}%8=NQ>0<%%6R7_h@oqp`#As$}YF?1je+`~eVXzuNH{m!lt8n~RC|u(?o4lR8@Q1GX6mm!K9~`qHeYOUH z`>?@i=ZMa=_ufRW*v=Nc`aRD2f2$YaetUZk5BY5F?wFrEyG$+8?g@c|5NRV?%mc%d zL-8$ChSn$UV)Vy|0SK5@V>d#o@u{ZjBVsluqSe1`K zjtUq^)3x-|cEfDP)6xU&G3p2akoGKHO+-6dI?x{?hJlE>@zzV4MfskS&s#5r_!w{K zk~$&SM(I1#JMKfh;H*3p;ZypSOvd0DB(Rf4IcA~{FDJ<-tbNKc8XJQk92SVu=vu3I zz`J&Asrq!SH8{->2*H6&jaSAgC-!I(^`Jh_akp4mrDE_vtezje53eq<$#L|fk+uOi zdC;l1$lFiyI4*L=WQd)OMo-nq@ujJK*rxYmMC9XBxvNl_d! zRuQT|sAuvIFPr^ZCLd{!Ax8k9?nY)iO(j3HG0Z-hZH3DaeFX~S=xuHMC;SBFxV2Sm zW=c{@b-gG$@t{3AbPsThqH8`jVJI+|n4y7{r){V#-UfzTY?9z`TqwO5J87$aZpSgk z2KqMa^s$}ZX);lj!Jgx3vT(2=&tSlEdK+1ytUR>ixRDVSHuTjqJBiG#lkDBX6@AKV?)jU%h11%VR~4zynUlJXRuZQg{h2M{zP~H)Af|IZh^QYyyxH z8JPSiP9{9~6gbDpl+RpY%Ea`NKWUO*j>N~{69fR;Jy62KO;q`w2TH>eQhAmD2%v6!qb?1O$G6+f1C-NV zZ}zXEJ7N2X&o}CN?1t0Of_a6An8K&?w4R8-Zmx*%J3J}%j(Ax;b$!$EY>EtwV$e!w zZ#&6!&(GWY%k61%*&UhTIc_I{kx>u|4UDaq9?N_#Ay&S7x$tG=m>%O?jG`bYkfRq@ zat=HebBrr1HZvtDky!6Il6b^QcD0u{?(l?#O@s*!%tS8>g0xS^9e=yYF$=<&*hNT? zK#1`i>`tLafUR)%IY=yw0%SMS=t6(D7(e^DzoSfPplPj_R@r-ycth?TIgJ zpC(hm!zx7v1QHCr?ETB>&F1oQ;uhuYWs!?f3Iqjm43|YN39q^=G7Fmo6C8j)bWN}J zn@f0ikz10tYXT-V5nwdNPQ6T9T63>Xn)02gFuvFMs#rPaPBo7uf7NvaCeN|DAjZqXF zk47~-ThJTx%*A@2Ehrc}xjrBF?;el*6M^25>%_w< zKn7%Jc9>u}uMtMj;w6GM2MR?*0qURNsed;76Wi z_IZ)9$;&2E4G^rW@y!XrExa}ovJ4NK>T|_DZz^=S&619Q1o?*MhnZ38z`PF}z{D=i zE*KJ;U$3eW*Bsxy9jh9NxCwLtJBkNMv6O{S&Y>+~V-sLzeL1P7{Dx0~a}tNha-J(p znV4REIZML}xO71{)|VAlMwvJ~SmC3f{k_zeYoW&14#Y2TwT~h$?VTRyh|5}E&O-24 zdV2L`GM*G~si8U6msMs)Q)|_iyK}SOJ>TBTPtJJGO<^$>q>M$=>Q?>Y2VTSnTRf|N zz+em=Mk4U;2`Y}3kCAwuppb(NI{#KnHw1~4pTf=Q$J2`C7|O&Z0YU;V+v`<;FO9J6 z+_6^y=-Z&vM@h!0U#;;Te~xFP){n1V8BqryW?et;d83rKt^<7=>Iei-cU@!D#mb3- z!orB1CklqEbUMWIK+p4_kOfGGe?yc+Qp-N_cq2-kgnfF81#xSYS@w z)FtqcUf;7&!MNB3;og6^bDdvrp4TfDMHvzY8~zLi=3wYP&li4?(c2LP`bOLV2%zpZ zs6~CiX*_*ZEJcZI=kn~{(%IQ$Qec9JJztwXA{BpIy%FLVh7uM-QOH=Fq2AhtQs3?7 zRo!CaxVAZ$p%8pH%F%PT_>;SBcsz_Ra7TArv9U`s!2*lwZGXrkt`)Xa9JfEl#4bjH zG)stmeRpjQAtDpI5D5|p(aXr9lHxDWkFhCn%*g88=8086f_$dMe@@qfXkuWE#htOs8Fc}(%htGKeUkDpp+`WV_g;V-sVkv~V``>wFrlBo0QR2t^VbO#^p4u6 zJcjt`U<^Te`}Xc|4q>1+0ghW9V`7kjLV{`Nr6t36+roEd>u)|frX`WV7(7A&;9dI( zqt$OFdfE@+VSffM`>YY}DvYs}F-K*oC-$rmetr8X%F%S;SO4r4P>SDNzd$?@w zs=ElDE|xN}h(I8L5Q91R;mhVB=KNWh;X4Pw!Xf~SMHA`;8DV};+sBvvDxY&rsrIc}vNk?ejF+d8~Ck__u00yuR{OFs_zA9Te2Gs$1qHn>SfdJ}(AI&jcV|Vu5 z)M{2HSyJwfzyq;*mG!8s{JYX6!FM>v%DT#IhG-Nb2-kZsFMisVc_zmN<7>)qI8$)IUJa+S?eOwx<`!%-#YH-4o~Sg{=d}1)Qmm z!DbMEw`VFbYz^VoF-BaQ!{fekn~tU;ISu8IKfyWp)sCs0wok`5+uMhi@G-9Y&1G8> z`g9fiwVwes84e|E{t^Z4)mElozZ_mdvPqZHv9_Xfvx-=Q1mo<5CSfH(h?w8(qx0t& zn$&!TGSxr8+3JNR=cnWG^7?jDzf$5Dnh+La83-JhjNVp1(Z(+#(7ABjA1gLiF%TAr z(mTSIFZwY@?RbPO9L563PX>;$$5>!p?2&^Jdjez9`^()!cy0fo`m~p)-jTx?I}XLw z+xUiEik-DDHTrzRj*>T^&L4~fb@%EJm)E=d&$fq3+m3YzWH5w{BTc#v;fUz!cGUGm zehhko0lMyGmI6)L+2@#90{Rxvyqm8Vtp=*~cNra{)lA)jm^MI<@K){5&Ug*Y&rvMW z`aHl}H$MB~wX{74ytL`L>oL@iUV3^AU|_L|srwq1UoW{7L5+C zS9qOhOAq2$c%?k70?hIxb!V-wrCa)HgNP9X7)&qu9EL*rq0v+8n0!{5S>`~22*P!j zF?`>Yg@~TZ7#NI&fRQ*W-DM1;tC+>{h;%6|?BD|&(0gwgzl5srJMBK5<1(f^h62#R zC_%3aQ2j70J?S}i0cyMq62-H3YNFVP_Z-KP#iL5O0nL_&yJVb~Q8NA`oU>jQDC;r0 zitXnO+5W;W*QIkaN+&?tR@K|>{vpjd-`rhSRpDWfr3}Uy>ZMLz4(SKr&6(LbrcNq0 zRyhzBOvXR&=gM9E9OeEO_W7?_Ajh0hGQMkHD{1OxY3^Lz&1}gx|}b!+6{%=}zvLKdw?3H9pta4P3)b>s#6MfmB;TS(r9##=DATTO}1abf3i{4*?#KS5<1_Tlq zHj;R=l&uKIgY7g0k%bk1f&=gk6OgWRF#P@#ka$=H$bdisgI~g)GA4z;UqU`sN$>}_ zu^YC+@)Rx;$A2pR@Vdp)JDsw>^E(RkcwQrD0Spow90zEM??3*I1NqFAtc09~fJSLE z^$%!_uMflY^7n@gyOC@O^52aT59?H9KwwmcX;7ZQ^`8dgL%7p4Opri`UdcQDLiCn8 zmb`(!N&W2c(b1tR4sK*hoey1{lUWi14rXGs*>FzWO*wBi6{{O(lF988{}qD>im{CRi{@ zz4twkhx|gOvuxw-29bq)TZ&9DI0ln6=th#?ZuhBu|-<1;2PAVeek0`#LPksyuwP@iOl&d4H61q}ph#Kbxu9zOcS#0^gK zMJmBnW8Y?+Vs@hX?xoMZt#C2RGJ%4*Y2+US2k`++pZtT$XO=ANGnj+*pX^f>BYf9? zVPckpmm?bI5~ix?jBhbv!`!mZxunC*ELH^)OwKY%xx7Jr+X|DEn9P!QSnSE5ulg*=+fEmC{IPG}4Tf+r zi!y<&CZ@6)s@c-Uo#fItGvOst+YOnS0s4asnn!{T?(m(7X4)VYG+ zO-#&lks-~Qj5opS9#70ut*|UI7qb`>D3D{2mx%Mn_dnl2J<+#fFI%@E9C<%^iG;s| za%M@&PjFcb@)8v%J}JI=iJH|FQkAJPc&+u%?OCF9ShWi?>)cK_lyfv&`o0-umETO+ z2vBebgIzL4E%K36-(3=USfs(hxQqrzulxhN+rHk>i!-vzg3w?}2ELB-;cmhA=v8r= zFOu0QBu=Y0hY>DjS>`o|A%~Tl!x*1gvasf`!48zU9FM1m-66c(%}vdB2dY`wWg_rk z0S$Jb#7ilU`G#tQi&>Zn)Eqfh@90Q!*gHDNaP-iFu7T+%>4iqNf%q&G`aeu6V$@WDhT zJ}Le_n6kP;sxnoEg|hxBAWxI|6hMaK^bGn+$WKUcO@mC|Q-I3PK2fde-RKl>IzGvJ zM$V@I;9-&m2ID*pvdHOzSN*!SZx$I?nDNthw!hNvMoYAzCnY_RE9(@0N~`0ou20%lOO^Edc{l9Q4y6m-t^&0)|bUZ$F)6HcPGo5rq4feV>B-;Dfbz zdq%vE^PgN@OP}#9p>^n>fWf7WHVz(T{rmSM{dt+_CH883jti<%C^ugD5R3J%*Aba9 zoFy&$B|0Ok2gYB6=xiCUjXx~VAWqWF6-Q(5`u+rl&h;!f4k27RxD=;T>WiGe0wMg6RQ{#BoJaSAL#*6O$^`pplmFH(DAq}4Z82c z7tUi)MV1wBB=)_Mu5dF6rhtU08p{{YL+?+%nwwF+`e!(Q11}yl3QMplqpufla5T!P zf`z#pc=5pb&1Sz_v%?Zt7^TT@0RA8a8)@gyt(1Ete6jhaU{!ur!6Zh$=u3XG9^y)WXj-X&r?d(v)y$u>?|^Bzr)pI5;297?@vU|&MqSV-8>QF&Oq7})}BSq&MqSV9f~+`_WJko zR&@3{L%Wz$WLr!QR^*_#Q+*kZFHIgj`WAQkj7@^`@59y5uTubD5${m}72_)uP*Ffr zpJxGly}U;SRE)1sKt%x+@V^W;C2mLcO5!T`zkN5T0qZN2AmPJ87&MU8KV;6%w}Gr? zWf8Of4bJYM1XBNwPp5AQMDV&suu?!6WI-oxGE(%-f>Jg!;6Zw{X*}V3 zaFopEh(#cRaD!HtiJ$U0I^R|o#%G2|)ko{^bs;TN4{NGgv$&`5-6Azo4bR2 zD0d61xI1JuLn8bQx;vXw$e&oF^RtRmNNi?^lVQOO**rJ-CK;7y70+FG%@C^m2q(!X zS@}5G`jR29Ig;UzP_jX}XIi)LAf0Fs^DSp7+-69}K!Q!$yaxRAJ$Madb%kVeLy2^I zhsAxXc#XtnhBz4(%#dxjRqocTvfJ8k*G$Gb0Rw3UCAat^kw^D!oB$Tq31MA2hPW<{ zZ{&&m<2uf4jz|O|%#FdZ^1)nI7`Y>*`=TJ z8r=LwzWH81-HUyn-rRF%tT(B&gGN!Eiy=jlEkKDK=;$9XIN$!-|9&IT z+%7=_6csS=r-o|cpWmLsXAW3ou}C#YvVkVEYpCWM-|$w=L{S3+%m53wns0|cd#eUW zHqi7`^PO*f&sjAD|r0I^ExVdi=!A)>Xm`nmPg(BiI)kwb|U=v4wc0eF>s%V2LHz z*MB#82=@E?{qY=bKi$d<$lL4OM4NgWCIqa=JIli-8O9DxXd*n z-T_HQp$6e;7&g}ryEnUs?d{#W+xz27b+_)yr(t^Z+mLG@Fz?Vn*r2LBSbJpyVV8jg zclAuIYOt?1JN}HQhrvdoZGed-Xj9#SUY#~i!dR~ix0n`za0eW)27szVN^e%&?@sqs zyz1eQ2<;xs@J`AE0FeG8&Ce%l;=|2H2giw&2PhMBz^E>Hq@)CC9!tKWZ@^oHZ4Dz0 zQ&9H``xt2^JitkNgWFSozHFbF&v%>pNO=G;F^8#FG3IyZ>V3%rBT{Z-#38sN!O?*^ zjpM6V=PlnjuRJ;^WZUQ_wxB-M22-?IYtO?5fp8lhj6mJ}wB~+J+mP2i^F#e-4$fzy z+lB{>yXu<;@sz8F`hf5dUwPeMHNDgE5}w0k>(|5dGT9Ee%ocQ~&ukjQRp&CZneGT& zQQS{yc6YwtR9o|-gViOfZDg4#Xic5aG=wY7V?s080kWbp9op;7m%s8=cUwCrvK?rd zZC`6o$7A&o2p6p-vK?rdEkM%^?RmfBdxMLiMXDWOi7DXv$Jzq8Yz~j{C9vwm_d|zO zP)N5CmNEVPA*9emaO&YjCb}Jf6Jt=Kn$(%7C}F8bQio9=BCSGFbqNQGbwKK|PBPgp z!eKBPXrzdNcQ|+idPunoaAFSAt*@DgQ9cgrvSyI<0A*$mFxA6n5_tb^Uw=`?+y4G;d(taeOIJ=sTgO@rLZre= zP6I_1W~rAXbh`*yVM}DTCn~(GM7!ITX0|m3UA!C$7_7)D0$o~RqPUl46&3n@*c1q$ zhEKv`R;Z#{SG%tKBy5Mg2{WyEwd_}vy`1c~UHL*?k>Xd=3~2Fb4KpD0`zj>^(I-Fy zcRf#a{fPpT1G8OV@^ihu8vJc%?f0# z%?(OfY%6x!+<b5dxg+=W?H)>>-`D_m5cPHPEhcX7fX)TTJpPDTX9E(&z% zp_Y^G;so}vidqVVsu**sP6`Fu7NF($-7-(5?&f5kz0w<~oLAqPldcrtye7R@gJUR* zDn)&I8kdV=)H0VASSjJ|bn|*#Yp#`&oYP$Qs&Z6_qQoXfS)231*eTBeMqZ(7Vw6QX zFN~c!9bn|8x~4ITYMqxcwhMNEkk#x&iftN2>SlDwEKRWq>fLoiK!8hcIiZkf7xgL zNGAwju+0UAg*X<4cr7rbK8DLHeXV3*l3ywIIVA%Lc?)7z^6U5najx_83Byxe5Q&}X zTIVIb{O4u1P+RM36-Hr%-!ualS(UE5%%G6B0VdVJu6{*9&{Mzdnjq|VQ7l##Y`O&) z$t#0iZUL!}wVTV6;Ko|HNl_wn%1ySbgs4(dC~R%Fyi7-T1*h$nG3e@)jl^XpQWUN#6>(ybL4y8nTInVjcAcOZystXb&H$ z4~m|-{QJ{k%dbE!?U^fNd%zM~m}PiTzf`!wETlrgUAP7J5U!rz-W@+@%DeJK{XT~_ zUy>+LS|#xfaxys#ZLYB~YaI1OaceuDm2#tFdbVYhia9yWU> z$Kp7lrar)qAYcyU`4K3J{oOunpQ~Q_Kk-_HlFvW_`2$>ms zF|mckCWCSu!;cS(gYrVRt;h_ncvlQtvWF2=+d=DMZLcxB@C_Th9qFpN&xEY!P5%P`zP z;2CnZ9ftYAhXyx?huiqY2Y!6|BZtjU<CGC2Gs3QJPT#5x_uLyX0Vbw+xiOP-rl9Rkm{(Zjxn zLtxa~VA(JIDaZs4Rt5Tn#-9LBP4t~#x$cd#-L;GAThl2WX5e~Xj< z6>$Svn*Gxa;QpBNZfy5*F#w?4g*hE!Y4=^U?fKi?>^1M{py~QUC zpxVVo@_VwUH&J*AU&nqqyqvcW=@ar?iHm!BRTe$O0uHEk3|~eo?(h=}Bm4}<4u5|< zKCi6(#KH(a!vXj*T&!mnVl?I`7Ke*1E=C~`6v!b%vB)8P+D)3z;!up!?qDVW0I3Xf zkXoD?rslQSJ@r?Nt~18`yt==A*}531sBm;C}L4-t}> zTNZ<|q`aQ7xEM4M?IQaeBQ1E+zZ?(K@8eySyW?@c-5hQocCTJ-Pus&ie}U&mOHYU$ zMm_KiXkZEO;hBy=yTc{E#&mz#RfqLIa~FxSvI<3igYzWsmkIT~9BO$M-!Id7SOv*| zU}73eG*2gA13pW1qC7@hR)efE7Y&5}CU=g-wHZl&h!=r?X7#-;6;NV+l*bw_dtISz zL0jtK`d*i)g;N6eFD`o>k{;nq>_MUWaW2yecUP-anagpG5FbL#5CE)f=0KaekFTRV zRAv3e%^ZUK5HP?1$em@j{rqxzIoFQNZ+u^k!B<0syxxr@Ba9TH+J~xH<&BR9DC z^HEu^*Dk4yH`~cRz%*zdKAX#w=3{G-Y)@^8Ehw%5P26Yqf!4Xro;1Slvg$Xz2RgrxgW zC-yM)`Z*xbf|CVX*DmJ(Lc9+ZApqE>or+U{mz@sI06~<*8UX6vJB{M^VO+d-rrX!y z`Lf5oMNh51a#W8&^Np7+mtb)F`}1+0`Wdx7=ou;l(I{kh+jig6F6ML{z{X~e(tNg6s zaw06WEkH})tDmXGjd_|GHEvtPZX{dN!+oMkeDGzWa z=Acuxc$p~WI==iQrbqFzW-vfZp#X3-I3#pqYXJ*iJSy)MeG}{i1W>EXuTb6Y_q*rn z>v|r`PjIjx2QYwL-AxK*arXAuO*nZAYIY9)*?7lcbG~6MbeyJg8vjFw<~fat6@FEw zALw0tHpo}+k-P;sdr55IRg{bNzFs9Wu)waa+^a47WiGKfn?_9@E&Gy%1w6umC91~s ziS~30nd0_{=?U!t;OZK5+o;3&`!0R%g?Vo`qek)ryf_ZG^Y)Gt$DTt9wQ5Lk+i?ng z1Lz3|m_%36$``La6`jeCF<0NcZpV2+5%*$acZ>6Yx&biT)VqcOyC_|Go`x~eA7cg} zU>NOCB~Dm(7}h(QGwN;7Y?uM>=HcO1+*b40ViFLbKEMmZ5U;w6Gm5+i%3~Mj zV_C#;?R<9Uk|56dptH3=phI)$?WQXZc=_hv%cjN0=uF09H*l zC3>qQn~?GVCQCN8tvF|R>WedOR*d8aXmK1aJk>8J;qzFy5aR8ZB?}XDfCE-B(6|Vd zd^H})TVS(rNzK_5b;Pksz~qs$(U@4_S3#3{Bq;P{^SZ~8prUVqo`Hb1sA-!*RcW;L zh@NT&7Ti_CwR)BzbYD)d!dAl)3La+}!NCN50s~4Pn2PLg_BEA3k8=@`_c^PXrZjk^ zOcS9!&~lY&YVYFH*@&5i+b%v4A7BLtU<~c;W*VuuK96HS(k^3R18#PEf%eoM#nkO) z%Z2_JH~;~q%lD2$#WHK;^zQa?d$~QlobJwN#f$vdp;XZ1G?GLE2Qsw{i67uriCY+p zffQ^khF$7;@>}5%k@e1#jCvb18-{q*=sOKvCHh9n1Dq`SRyUeNDTT7zP)O&8NRP!? z(I4O?K){gI2)0mNC4%MTEtnIGpZw<^ed(k44`5eASx#K>=N_S~#>6T|<39=HkDX3t(zDJNn zi4U*>gt1jjBb7zzW)+Nu4S2O6+eXdzQo17D;4>Bj_-rh0mFm|1Y3OZSZ)<1N+o0Jn z#H()YY3M3jJ5nCtWLvwsNhV5ZM_px;fXp{D$CGgZ`7Dr;a5vhb?BXt)Z4w@1lU)w+^c2hR@Nkla4R~c0ZTQ?HQjNR8XDkNr z*;sUV>N(-}QuDL!qCL(D75z5wY9OLkm*O;7IBJj9CqjFOmN{!R%Q{gjev%r8N0zl_ zFvMJ-z_R>#t(&r@t1Qhwc1V)wZ0tf*OH@77P#&o-kOi$ChZ@1bCO`%Q)1U@W6J=%F z@u*!h>O;)c)}sa|6Gia+)Y?62P@Mb_F~9&7tHBAUso1$kaH27>!mn(+Cj|HWRQrxX zFeXDG*l2X?B76Vw=K1`xZ}gQcjazEsI_P>7f)$<}MzW{&skWDTc8x(FG=l>6F1Gxd zZvF88(k)-1Z-Y&r{}*vqp~}9zNfo{{&eBSgH_4?l6pnk0<>IG7imJECSSH%dfAgv?xW=I zTQw(LdE&}z(tEF5F+qwd+c4#`Qf@FiFH0dz{H_QGL^y$r?eK(xRR zt-J}TzwolzIqh(-M9cQl7ML!lp)3kGu=-|{gm2KW{EkGxq%Ab?tW z2~M@nhb{IJg1iYc&4x)Y0W?|m$<<3}90tG{7*Ka>?TNyj)7p!42RKO;T(ZbqH2D!8)zFiiHh$b%t$QMG*9O_XDPCH>=3B z$ABXMunL)xB@>sfwXK$s?Jye4AfVX^7^#h=2HPLATF)%x0sA|%^-o*%d~l3 zUCQRZIBiZTci~nWdCMve$J5hhUk86qR)NI3NO2Udx|TwZuU?(2?;ATQG*j-voS4I; zw|1H26l#4s?J_{SixUQ+Hf1Ry8_{VS5|7nGjf+bWjC2<#upcRO8pktQP6`Fu7N8}U z)iO_|?C4~knQ|ZH@e&el<4I4$xH7#aJ(D(|EUJ{<7ukSh!Etf-1tHvp$jgnbxmK!; zPIKKYHWDF<5}O!hsnH8#uhKYSXppBO?wm)ez zg(&eM#0xHJS*OUlzHAPU@hze%g|oO$QB&_KlYjt)wssz^Wb5RFCenSR)t7EsdFhFk za@uvuOEU%*$kj==wWtE!`kd>us50ddRC>m31)hPDa(;3OJdyYa=>!1`wzON77#>Z7NbF$RG+Qir z(__Dv*#hytR$TY!-~p7wGJ zNPVnbUTkk=?JwbmGRuBCW$h!~0mi@>JV0x^<;8cpyqvaM#-NLrjYQybyA6;1>0JPe zw_8fN0hJCxjM7x&Fm_>rYId=y*3>S-^2=?5sqxlQ` z7b~t9SRhx2w4ZBROMS6{s``)IY^CBd5}_K7b|Qm{IGIY$b8%2n=ytGHmn>xNrcmM0 z+2Y&{Aw0xal62x*$;oNRJm=DHB^RKX2^YJY2zRCyScCeS0EKh+0vHMR0W!xfa~M(0L5zl5Uwn8KBnAn**@`JDd1 zzfYf|kMvE**|ms~-tR(-^TX!!jyX1Gy#o&udKiqBBl{S+UihsFYW6=`e#)T}%ov$u zVZT6uv=ct#L+@Kqc^ppoEj~7JC@@$S+TO2msk3bkdw+w?ELlbwIL@O=4mo7tYWha- zgM<;IO7A|bX-;lWvILK z<-0Hq`bz)8pZU67)K_LTPoU~-HMTCLi{E)SO!9;#2D>1%<3UUK(bb-)%dh7+B>Z$P zb}9ImbWE#6)a=(-C7tTMV)Lwy|7%M2m8vORNr+9b_m^FGnBn&A?($msI_uy0E|(Th z(?qp?jLz+=^CeCV8g$?J+tme*EU%R}!G+-FiV2o$Z~X~QJg*g)ugj5t*`1H+1H-p3 zZ2NNdFNKRussajT&Me29_aeued2+nL1vm1O<$eQQV$OaNnV6)&(I|wLub_UiJ{vgX zD=P9P;PfmoiWKl71Xa6pqyRij;9)Q-ePlW52al&6&uckb4l=RJkRZV_mUs5~o~%>| z7r*SGaWKKJs)q8Wt45itfALLMmBkG7rKYIW#ObQaWj<>D4mEMXzyv)*vD(a30;I^D zZ65*d5*&bUm=99Prfb4~J_;kNDCHLz&y6C|Fz-Kn**x%O zOXr9bcv!{AfM7}tD_mrJ{4L6y?+L=PY>#{bk_TI1{AGJSZ$qs%^rdqxit;hbgTO$VUmawp0vDzAgRcF*cAqH8&?=w&CHjKV z*$#U(m=!vo?U0F0Ako7zsvIKys++~Ra!AqQOYbS zDmS9gCF7j>D_rcekwJkM814MLL4}Iqyz?_gCTZ9&aJ9?+sZcp>+zndXKgCElK(jFj zQ#K)|aiT9~aT79=W``Ws-5| z0c7?niB-Q~No{s<_DbW>173px%awB!G|_f32*i>=jo$LAZVXZDRLb5yCYcF$A@ZjHTXU_v1n4x^ z-G>0PIZVu9uH_}qG)xw-7hm!$bbBh~p68}L?L<91$>$!aW){0)lL z4yN?nlUp!_yuVb~QZrLf5F9t6?k#*x6WAy1ZkPlyaio_@5p>2}!ZTBReoGzGKto z(-TAo277EHXTg3XTE2a97J`Ra3f2s6nGbx0klNG=^8tL!lE4qpx_(Jd3@}~s_HruH zPh7ULHZ!wa93mK7BkRHWwepibS&t?!yJ!?3NY;oyRBmy>yDH+aD&zWOAWOq4wafVRD3*eQL;$&{J6a9(F}jC$WOx13qSn;0Gv;yyYb) z787M`Tm6y0&qGEti$VWLF{^g2dWp?w0tImuz3sgG6SFyluTX@5mXg^9L zfy#VcnlSk!oKFI^!D-$!@#o)u-D-sCXRZA3->+nfHPb63rI5kpn_Y=$Fj>o$boxyi zhRNDb5cJfX?vdWD^*aI#A%AMBhZ z6MutiO_^FxaY_G%YA7#qSvHn(4T<`r6*d-RWS%Ab1$vxDCXNLn^=Z{76IZh^3qen( zmiQBIGtuc-A^rqDWN*#ak10*djW>Koz zzI@oG#epZ=|JZ*Y&d45SN>U2djZPP~8f6cFPp6AyVitq<1z7A#=@3}KuExCrQs^=n zCOKsPz#4K4I|;ZPyr;mjKD5U|S6CnY2Sequ1y~S?*+tU$ga6$LR z6+|&~e=z$3SaW72{6=(ytRu>(H>4JYb%|KYJCi6%PH=_t4r69^$m~}b!5B?WJTtn^ zJawKLm5v|?#GV^9&J*cGp=)TJc`D52%v1Rl&XXl>4hoUakFF3m1D`n}@n=YlRwt5u z>sZ~aR9_IDCHj8ZkO2z6p)Y?@v-=DGfRl5ZGf5OAIC4udE^@?|K&f;q6yqqbS+XHO zkj#>358RYiFDl{+iFTFg99b2}AhhMgial8@ZMDLQ6&cxu6TNGeDn9b5y4Y5z;uBW$ zg(978=6Mo5ZfnicsN0RlP@?b6l3Yy6%Z+DriLH=aES%=e67Pz$L>#;!jf%BG#KD-E zC1bzBh(mO8|K@(bdp`PnY8a(>&Yd~PpA{i{H zE6)xtO$N7^SY@c5BWxPDcq-M)z}t_df@tiy)aKTQEpXI8ytY0d-q$LOLZcSXhoDI6 zv#Cp;IS|xGaO)uK|Y zo%0swbYVAFR3$t21hTC+6 z*eF4@>g5Q5cweb73Uw+je1lN%E-l5n^ul*VyAKrrfNyK672dC9PTEVYK-`42RK%O6 zsW)a$lX9Iap|O(sOqO zvrn%{&!i0~4YsK~oa+X&)0crW$(u3S+LX`dy20!`po=j16S{4~6p!e-8D{$#T?EM< z(iIoNVHkPGmiqan7s4g^zJU@Lu$G#hDU^XkdxV!~nrIKeR*&j7bC?q~rTf7vhsijY zP*-QR<{Ar>>&JDy)>tMzL`zR=%|JEKN)Ziz#my^FMe0Ma69_Qg_Iks&aM@HBL^-2m8`X}C&zz7aF25BIe!io&j1ZdZbFJB*?w5MxIHLwO^%o1;MT1|9S2ZZl0S zp5*mPQ@0=GEs7=2@;3KlUeKkh&1*kq9QvANLvhuK{rDTF%~PYcymUY2q;<4>48jzT zGUsud&#P}S?-riK3fUgK#J0JjGL6`droI)tbVW(>J*W%@Ko(Am)2yqpOP!XWZUIay zv5namby%O-Z&zVK5K@B`fma^0ec5kM;exgJSh&yZQ}R7!(s8(!L`zeKoJumA&v)kx zJM`P#U#dF9k6c!l&ZsAb{tFaHRI-RbOas&dFRf%Xcnrm0fM7w2sFF~3KYLcRhlp7d zzS!$3YAc*QRSqW9)!DPB<^Aq_VJD=eu{%K>X%F!x0ALRd2c6cz(+f%f$-gq9vO~cT=^_E;{=f7-Ehu!hO z3}R_`NiY`L3Vi$)xLOE3rYUE1~bqf6}OAoM=a1ZRn8tg<=6et~@4_I1JV3fxYOASeUI51Pn^)R}-eC86QCb~U*nK5Xv zF~zx7#+H}Q6lcOid_{dNfVl!j_2&ezQ+}Ifju+n=HW;#+A^`TW!HIHDhrk?Wxv`r~ z!<5k1XE$T?4S1`tS6uST`VUn1$NSCx_WpQ0J?su)H{f1$=_S85n}G}x7EC~6Lkpr* zJ0LY^pAAj$7zj}T0twoa@%DJyKde6)g3UkhieZRXSZsuD^{)6*hrlQgq4w${NGYWoMQp#cJ|f8v z&=weA49R2A$QkD#(QNkmq& z(Bcn)P|H}F)okz>0q204rcJ1~`rwwDw$5URpTYt7;`AzM*GIsmr&pDO6+Arzc5Gbq z$NAZKyGM=+M$Uo4`H^w-i4bbyjut{#43$jAq9+j@0R?{jLhW8m6&JGvqq9$?o%)uXr@{1IHc?=J z>PH46E=D;UO#5)EU1S479NlvDHz6~enpw62nUZ@P{d0M+k*NCFn|C@(NQrx zd%?13ekum?M#LpO(lKErlkR82nfMSce_f+z56b%*j`q-dVS|`W^~Q$C{+6LKpT0Ev zThSh=mS@yEW}u|h{mh`3Q?CRv*{t&7h9lTcTAhF$2Sx4Y!@89gB3$(vM<;tX zQB+PHe%U+5W2o+oy*hDpd|RMipEvwgU?y(BOkd{c1j2!ya(~C~tbz0mkS8Eu)V<*;^fbPa+PbuAanlBn{%R18L8+vEE31 zpQC95{h^*=Af7>b76OB-%BQ1+6b@$Or1m+|xF~))YrI|kB>PPik(EDt&IAVY`lq8a zK?Wv$^9pDuWh>tD@JrdYU-O_!ChvK4c644ErEAe|M`t`nT4sZBO^Vw-|N85nhR>Vd z+`a7f+%lHl_MwDztaJnd6e^xZ9k!d(_I$ZLYy!MAwJJ?v&UgWY81zsPg4q|C8OOo#(RZyf-GDR=NErolx(okqpE2E~1+xQeDud zke5a`8iNk%8VXpe2!t!TN>OQPAgppQL9fb7y77uSx{L9)OXx`)Ry}Xv3Ln5?o0AW& zK((X0SCJ{qwFs~>^f2VPI_oSAuqfdHy2u&;>N`7@`swm<+1Y_|4&61zAyw6WW{xfnsbXM(T;=szHju0Q46&09^!f+N4A69*Xh9`S3knGCRIW)rLa75bCTS`~>j zzqQ)Vq7~h;6q*jRG$v5L=K>Q+cl3*6P@Cd0lO&GP60!6#6GFEGuxfELKuP?6q&muX&#nV!S=ut9ZNHJ3jHBo1OhHX4-pCK^JR158g>a0YYsN#84O_8 zLmuexpbN_-KYY-28b30+%otWh!{|i2hmX;ya3?hS|-9hj8z+lp3a@0CyB47NJo>B}b2tXno*mQAMH2T4zM zdMF;Kq+o=XMO;F0B;Ch2u?NF!EFtWfU~z-b5<=P|pu81B&xR+dl`agIY&ao4#<~x+ zBaF|R>s_1{z1I8StQbTwoD}gYHJf%H^MqD~o+e=o>aj8DFs@2A`b>HuZh=aYj*TTB z>4{DXKb^LlDDsYl><3F8#_@Bb&yq*lBaQNg2|fKSdL>-a-|aSuNsXjKLfF)e-s6aIe-b)h(3Vj{4G7wRV-H8kqCGe%DTG1Y&W#w?u z4?(E$YBV*BrTq{sCPVBT5_ksDmO|;%3N@8sXmYn_D| zKP{s7>|K=79qqkcP-nuCvU=B4XkB|PQz1OYswRWcw}{dU5w)&yQz4d?UfOJia@4TE z>VKi`5mI?5RhK_mSas>}nITM7j2AbV3774D`zF5I|FC@w4Sg(1{UbkFIG3R$d^j3d zZ!wG30>{PNZZIHwm({|jU2n!qb2@b&T`Tbn)*@rHWGso{3B2XSS0k#t$kl=srILk!6d|jjd z!pV>QT#V#olZJx>nM98UUFm8=$(4+Na5QEyElAAdwZnJ!UleV1Mr92K%EYD-Mo4&KlK`+>EWT_ zKW}2cSopdXPZfI`eqm!%ei@JZ@X&sgjJLP_WEMsd`1i$z>sF*}z1M9!bz55yOX2qP zzB`<^r_1eUha+#NaMU|tG1NO5i)JGlvx%_EQDtd2zMwt?T^&n$c2ZiLR`T!2V2Bz= zniQ?{TsbN_Qy)UE`mcHpJ+1Tl%`iuY4)lkZVIXR`mjFC%A71X&L#tx~kTDtJXQNSw zo=Z7xUxoN$RhL3o7z8MAAQb4se>%Qd8$Plyz{jzueNk2*J`1|NsDD{nR*>Wku-}A; zq|`ZkYZV&A);fa&eJkkF4%FLvlx8$XkJxKTqtlUE!)%73w5NF*Mz2XtATBBvgEWF+ZCqZ`N4rfQYLaLo}guwnOhywI^Cn&TWD+eChh zx@wf`#d#A=C12$j=P@Q$_*Jf|w;%)kI%DFvATxCfY?>|UoxK9ZeEMf`hT|C>8CXzH zP{6>uixV5+7;?|Wi5zUudBa^Vnoc@V+U^|l3xtIgJxgm2e2d8H`1%%8PA7=SGCEx| zk3Cecj;AMPES_c#4941qkr<$MO$A0*&3c}uQdro*lg7QF-bMSKx8B=Ld~~mkVkRgi z_X4ANL!YO6K@K*p^X9%@d0e#kIhM!Ujebnkq}{K#<@0Vk8e}*K9N{QGF-+ zE|p#*J6I{hm2em#|W>Frg2<00|DPTLXNN;qZqaSyy|*6SjDJ1 zcSf!$_tvo0?d+O{-8;+(X-3MhI7q7u^{)PlqcE~gMEM2!TD`H8$^X3Hge#6z7MI3O z$-^v00yJYyD2YPyigu*l`lCn(d>`9f5V(m#y9IuKV7-wp20$7Ha#FYCF%!owm@0W?#BH}64$H*+L-gA1$g151M&-HBX%AhIyv$FT@s zuO7og})nh{30GS@k`!QJB%IbDI*BA^q7+}LtRCM1?(r^*WyV?n|u%b_JV4>>0 zQ!tfEACgO-Bd2cwUOkef*Gf25etdGNl~fGOxJ%QFUJnGivM0%<9>~ZWK=Zz&zJ(~A zNv;+$>`h|A6-5tF%l;%^)T0h1M9q7Y`gVPO4powB*LSt+iGjsLCMe)WEWr6@zXEW} zPM<|A+k78*sEyy9w)~xISKt!^gT?`hP2*v-$m)3mH|F#J3IOjXz^2hkKF>7)#@N`j zPtuGa%FuXX%8Z4$-g6Kc*x)B90DL$H&&U0{*V~8F@xb7F&p}~h6QYdA_^Tf~hI#(s z%jSV!UvrHefrCwe3dVV6Z$0RI zY!g6%!8G)%Y*CuiZgY6tZ@C${mS`y#qa+9l zUwUSORCYGW6qq1l|FosQ9Oru4LKYTLpd$>ORlj0_w5ujH*X%H1GDif`sAiah)E~B5 zW+aIaSy%-~aKME6$u*?SkB_c3hQecx0Of4c-@SR~6`cgv-J7v7$ic?rf)EWE-w8L) z?~eP8{sFY54H<&E4qOaFyyAUx94Z>XmOjhRC=YP5#xJoxkrMAvqNcIbN9rsFs5u;1 zpCX_uv}s=wMZYwlQ#p*lQ!s#C1ayLOoq1gv&}j^e$Y}<)ZP%hH%FV9Z4N*iW(hSux z4BB(Fj$sfEBlVJ@=r_d1k0RF3sZsb#H~torfdn-qux=42EA*8|6PCuwO)h3Jsz(&s z#x7n&b2Ik#duS*gdkw9%r9S<%G_fto4-tnxo0Jm+ zb8fH6)Kx_CJyg?fYqDZugP49LO2e8k z)ven~1L_0S!Z6gV=m0>$v}Zh)b^z4G2WSBT_~N#5;eid7hjvpgP`AM?NAR}UDkXC_ zv+X_HQ6_*t+tD!t<Gi?(+rHt*CX=5yGz^k)E zd&vdb_46BUOD@wM1Gb$S0<{$R@Jg0jV2k9(cqbTO$erbf4`Q&G#&7u{eG6#*+(tWr znKYq1w&9k*Bn)i0S$lZbZ-`T+r{6G~DT8S2MA<&4VRep~hMze@MRKHJ7>B2cj$y#q zs%q(H7=?iqHmOz)bS)~CzPfH#Da&pd#bXu9j_ZK2ygKRUI*`6a(-CwDHQQNL@sNgF zR<-?%22n40M5Dc7^YSE(G2Aw6#$upfHWnA5gdgsnZBEb+^Xc)Eppe5O^Bs%ft1KGu z)v*X)E=4w8R8SW$MM2&Idr(VdH1XjISA$VmSfC>u2tq`k)^`|fUVx=CEbY_k@UaNO zfq^ul@1f#CE3#CWrF{==HYQmpED%MO()h$ozp1Omi%V%OE^`E-b>qR37R6)VCEckY zSAvo<^2my4`F2GsB5X{`C*#qf4)y~q(or#d_XA*I5dp>`e9?);7aA7G*nYOO6RW|) zCO}<66rb^FP*?H*KVH~u+2u4#nkp+WG%BU6=xtQp+9F%p$w+9bKvs3-_~-C{@%!G3 ztGW#)=84FVV0-xGx|3I#?evS($$Q@YK9}Y%{B4VKn;do3@NwSpD#>mX^6{{T5xdxP8wJQu)1jXJF~=dlSbig=MLv`BR$~2iv7q zpW4LoN@+7(Sc?OPSzZEQ0{S}4!o(z!d~d)i1iyp0k`Rr1h?N0@5all7z$=#K2^!D& zdPU@6nFkznv27)%;39v|>E z8029VfIUAT)5>g0m1c^?X=R0h1$*@Zfow)r=<+P>;x2WKgB^Ow)XMxaqbyr37U!2G zeG6{hbTKd$rSrnqRJ!dKQoy3_5pdav;S9XjjlqHQmW+XoYtIq*+IaUp0=}IB7>H_2 z*m*Rt26j^@P`^nqz#giJ;!y%$>=Ose8U-*$y@%nViNhUxVER6ckaO{Re9x|XZxEoU8 zV-=)4`~cF7Cqq85;2R`|$w(}WGVn(h#_K?2n%vicHO~|TWmzWiz^hm`^gRP=NlPDi z?J+V=1BC{*G$_6V`SrIJd`ozgja3-&+QP5&Gk}4I@{R$WqQ7!Y|Ec_p!YM#u!Uji7 zy1K*(m=Bi9+C&8R-|6FFZq^Q371(?kp3FWOo(o#6=tH-(!>rENo3a7G)U6n z5BRa!H%V8RnCF4FISqnD-nc`TyYJr4_*g_?KfuKyd)dPrHonBOxR;%gZeu3w!3(Jw zi|q|>6QRoX$XHbLdw@9*K&>`M1gf+lgo5^Hj^O0Gm?;c^tR`>^%{3CZjJgFdP2j4z zl}Pb$+3XJI+#Ajc7aqBlnn52mg93{Fhg$Ry>4r`fY7;w$AR&|OgCq?y>PEA@dDxx9 zeU0z{Wr#FV)|cV**k}|UJlN`K)(io__S7n}I*w}X=X16>8bkC54 zoGL)!^|s5~c)qy598dh_%THYVMVr}BA{`=3Ok;m3{J1n81;S}k60Wli{u$$=hA&Kb zFRxGAt#QqkYw>S?$#h1WTM0+j7` zKCZ0IY^G=c5$v$x%61{>3~$)&_gnr+I3HI=sCVHL5P(-r;|3cGL${~r?crf}|FYkl z*c5oAaV3ipas~(BHzNI~-RX2ZZ6B17)F;yC40_P{NL&OzqwnX+^CnL&E4ll&NpdUI z!zPVj>G^d0K?pEZ)%pZW6^EW~tDz(1Dt#k9%I&_uk(68YiO5@VWE4M$EWQ;-Dfg6_ zA(jS(pVlo@_JMrnVxWm`4_{^s3%{{`aytg|Rz6dl2@mlV^|b)Xz78jVgMNZyKhY*L*U3jJ^SHbyjPfh%wvG%+u#YjI_IGMHQqG ztsu3k`r#9;5b7qhq}tKbtf+E0YPMh9*xn?OSXHBu!oh*u$@`>m3h|*{dG(^P%y@Bt z<{y2Q8Kd8W%m(5v-*8}WkEi{^cfZFLnU4dTDEE*8b8uiijNkkIS{T3g{UOG{+=B7@ z-(3si_rE*D7?=Y_S&@q0Ce@zw@O zWqyEDQ-brw`2mfC3H2~QPn36u+xy+=e$TJX`e+$x_weGNKmW9V{sZc6n0EZd z@$hE*dB}9-H@j$<=40A|$4CSY2qcgZF(_SwzBnSThz~FW1OVGuxIq=Acb0jP#St;Z zo4>JUfINMS4Ny1s@_-upCmH6&$2q_Z)CY)R7=}v?Z+BdA9U|=>Rvd}Vlx7@pwZ z4#Ow@1kxj%i9HyAJZ_{Z3baJvvG_upRovvaH=i>GHgRP7~RQlfXcSm?I}ng8Bn|WAT46rh#!z{9o#>vJDvY>lmO1 zvkiJ#dx&k-px8G>j2r?@j)hck?}2KI0nPPTWAwac@B z6z^I=g!%JR0ozHSy2a5z%8tI*9U#mO32fhVt?lvY{rl79G`&s%5lD(}DiNBj85x?c zwL!8t#LK6Kajqr~5(d#^&z>z~ytW^0&;I}opST}U{ZZmS6xRBR&5`q2ygrmYa;ExY*p^) z))Nt8Z5wav@?{uADaISGy~$WuMfRCLuMuO$!|!wM!@F%7Aq{F`+bdk3)%HTwb-@PE9|ty*p)%V$uncE+3w0+%Wn4>AVwX0wpzZkG|K!mF5!v!&W;eLzAxpq zee&()>HGo%J#n90DsM7gDMXeR^ym1xn7F(ENRvD~U1q7#;>)!b+b=xc;#j#y8lNg; zjRa?X^4i_WQ+dmbcm>i%+ zg8rs@dr9D2zkHfss(pI!dg)&$3$p-Y01A z^Qm)uQ_}!-=0Jr;mk~2#z0xW@9y6=@W3;(RYMgjet->Kae&W4X+~Uc+Q6qI)>#=>V zuDrU7`P7m{sF^dba$D?8kBEWyALmi+$ zC9tjXOJ7}|9#7ZhXJ#(09+vRq;VRdD7dfn$@LiVQgX=;Zn zjb_!}+GwJ;<&MqC3Q=E6&l;Os-Su840yNocOw|ETBGb9%zP{T z_4g@Q+iF|Pf$bgLk8jWT`M<+ofA?{k3KTIKHs-MgSM%}y`Tg?iRCv=b<5I*6C)3e6c)qCk*3_2 zZiXwGk=sD+P0GR>HFF!N5l2i$ZiCea8Sl=Xc>=%HseRIn6L?;ElPaIc6-`5+KN&+l~GVR6oC#HUsCHn^c+6SQ!}8cfjsn-!9WfX7O#E zyn(?GTAbOVWrg!skH@F)r<+=1R*$vr2H%YU4Pn!KTSnOW;MBx-59iCvN&L!IhWTd0 zg!pq>B*omzImWv$lax2{b+C-R+yaToD3nNq@s)`63vAP`56&a!ZYuG7din7B5ysH* zuS7T~VHq1K(&5j5(+{u1_RqEM2Iq|cF*SXPrAOBXMaGa8JyGo;wk%KZ*Y5ZCPx#|S zX>0dfbA#ss-fq+7_Y~#2oz|vQdyDJk{?oE~5MR@SSjNC&Myr#P3=aaUZ!$iAT7RpA zDEq5jp*+a@LEzoHdyDh@ zk&3zTXds)%N=v6)PLuI^#qdAlSczBOU`rH;tlzlXlW29MH7?a2qq`p~`BTm~6iu6Q zYuzob=hx}|?#M7$9>j*t8wP9TA+CF~nlCvl!%827X1wIESKT0rhoFA%8%LmNz27;RP2VHA&d*I-@ttK^ zrFkS0B|@H)A{~ATw<6e9PnuyRKtd{ZN+iO(W4|mj^Xs(JxA#je`gZoF7rGuWuR6B3!DD_8L8gCx? z$2il6nm)mJPCLe#Yi=@~z-i+78#Z1<;xR_rh7Ax6*6?hhuLs8E{L|CJ>+~@@`)1VP zfuZYni0cOnYu)Jk!_&J}50l08GTTh4jc!6TxpO)+X7sCsX5Ba=55G!iWAq59IXAra z?0507?f~QJ6`8%Z$J6|tqM;qDvf2z-3QkG!<>`cq5@!I%h$$gLq(FZmQMA|T?Rh>gnm?C?G7f(s zu>us-!l{uUeV0t&EEfl0Nllz6ONT57F$pUf;{J_#b>8BBHwDdF#6M4-CksM>>QGb4 zlxI7ba6OBHUMH07An*q`o^45uW|L_@QpbaCN4ra8qGd;t!l04opS+uMjcv8y%wGT#nYCXXO!I_Hwi!#K^B?i2L7YEl11a z%a;frpXRR^%1=lCtK>Dw!0XT@h?2@?bh4u^Miy)x+0lu>>Q%QABxO3m-^caS^y}*K zdcxrZUsd1aPc(?KzM>%N#5L;h6$M#)jPQQ{qn39r+T=&z6Z1~0KggLmKebjiekeAv zmDk#vj5iWADry6H3WikpkT{UH>YI#-22s`re)~|{o;3o8!v}s2NR)m@(6IQibJ7Xx zVPeow0NUhdZ*HMNtzX-9OTFkzB<{L9LY(^UNz_ITnqNF^*345gN3yU?TuP-tRJ1F7C@Ny zKGKzY!t3QP;qiff)ID)9+VnXgT4z*pV$?3*3p|>f*brg<{N2Fn$T`3K^zDOmpEE}e z0R*TM6>4|2zC)vIPve+By1ttTaq9c1S9c4b=48)V)E(fRgJj&9L-2|^+Cq_zN79BvO4v}|D*SSWaUk|c=^9J9*pb%iQ}R60)P~?H*S@$ zehDCxZ{;-r&bRR*0Dp8k@WXc-GY7+5d3!J{6e5$2d>5V~Bu=)f{lnUfXb|PvqCC$2 z(S+8muG!v5iA2sm2F}f00LXlcpwlvCmFOD~RVkEvJ#9AFM>D6}h=?m(w()vkUWVY&? ztceB<^P0)FJ&R*J(XOKUqont(vbHp$naIaUV!R39c9^$xHk zeVDiiVM(eCKw_ld*0TU&^y|0vWW58tR2w2jzI9tq*1g=%f|;DX94!bj@+%oyN>u{G zxYIQ&zFi+pV086O)d;%`#E<5*9!Qja$ELG*E9tkr zxB$At)h16*mH|@>A`5ZM3KLiD9U)GA&j@QH2d#%eBL_g53gGF|0eXd*KTPG`^*X$c z%i0~<^0C5Khgb9{w;gzcA2nEi#{g)s=2U2%(IefcH+iI62yyEBNLOz`vo;aV$I-W- zq2?x6=6dK2p42m&fsc#B8@#T+!Iu$fj|#}SIq$>kAMxf04d(pOG8MI>K{YSQ`TY;m zuch6;JgzSwLTq*P{lhXy44{S*qeKy;%_mFH^fu-6E94KaXZ(uu(bq{#O*>YHti4cC zrhX0-(Uw8oyAu*aX>IV=JrDhTS(ZSc6sz?z`5%Q0HQ>nkg&ru&JP` zkB|o&P)F3NPQwH|oQpXiQTiemYqYzv|8m=Xu0BE>tUo`fUS^bG{G|oe3?M>Vn0}1` z^LypZ6d4n`jpv7GugVO9-T{LLuqo3D9 zuB~ys5g?|1X1hK(*=)RB(=uDCJ<_oAE2hNPZ&}0XOKaJx&qrOm5g?}ifF*N{H*DH~ ztvh_gl_(HdeQ`oOY3wM6FHV>cjRApXBhmMFlVV=MFizV|O7$(;%G2}Xzfvboy|nmm zuRlt9pML&0LF0@M?X+JOs=Y>*lW?b>su73s(dnnF4>H~d@?Vjk{-8RAQ}=W*72d0@Q)C{U+Bnuam@mdV z|LDdcE3eUH6sYS}M!wd!1gtWP=d_Pz2cszh2$2G{ z4YJzb-_K?o`c^sfaB0-7`X+CpL6n`rzScSam=EmRIfH$#yiIqZKxEaI)_MCbzr!|# zC#zw?$H>tyt-B~O`r7nRK{P{9j>pj;TGZX-3|@yi4-&N*Vd+ul-$V$p78XaXm6gAd z*vh`S!K8t+;lvxuJTYvIoOpxP-fUfAXsDC6RoIeKitn`?J!ylQYdi^@){6hs4lvfd z7Z$ZoDIvyMag*VG*T;#4*Lp`k4oL4YKJR4Q)ucCe0gr(4BlR+-|4-7 z_YQ{b;SgL^U!w~&XmQZHKh!Bd?{j$fm$gR-S3m0W-B#nv>;3dItj13r9X*G!0P3uP z3N^G2W)0$)p&brpErdArYZ=$tFWG9&_Df2&b(YL8(Q)=t#}Z%WXERuLjpR?ak*A)ZZUTB3SwK$hs#qbAhEF zra1fEMf{w4&KTTkuC*b7Q!hL7WXlC$6sB>Um*ECSuzhrhO6@p5W-OD3LsVUVfUj60 zeb)1jzI{ABUe5UYvuUjN`WvkG2g}Z`ZauCedm0bZ2eey zp~4_WquU7vmSjnN&E;^;xQ?1R9h~c~vZjYhyE|cbVJa+`oUohK9%9Rkm|DxK@3kbh ztpBN&Z2-+JyAYr;ptJG4pVn`p@a*<*HZCe}w(ClP$U2J#Cc&I<&Y}VJ*C@k-W$+r= z`04&)e;MSkdH9i6?Q!ML6q?2yo1f!n*t}_v&oNPZjVvcYgTZhQM2#4S9d{38^+Cpa zOlBm8Yn|zdAyr$a$Pz1pCGx@ zFKPe$aK2CntBI*lByswdz%r+ol0$C^xG+sYk`_sErsyJtetV1$tDGsyt8Y>#8bn!N zY}lIx?h$a_hc7nR7;W;_Z=N|bd1)1W-kvj)_sW}`R|?eJ`j)`n6!_i(BwL4X33w#bWDy=J+q_|{!h=S_c-&Vr5SlH`vR4`{Mp#{H&c7wF_h99g06tV& z*$JkWc{1Xbz)oYWz1h0WTLMds%PDmBEdgG0jVFOq?;DQR-23ZEIV=yy9j(3MCd1k- zfnBQn>8G4Pzi~?d;T!F^*>ikf%W228;#xay&_vL1-RAxnw|DapW42<{wiZ2LQ90sey~<~ zS>SN?qpA;a=GO&ua7cB+Aw6&E!@;42&>#+EsJYeaHs4t_e9A1t^c5@q?;@!X1I+=n=Pipp!QQWiHNv`Nov!f4}g z><(22SniRA&Vkmt^sR`)u{*1{N)hixcztbLj7aM1>dgoyVsAv3qrMxF#j$odV&k}i z(;DWD$0-j{*CUd~<5qRGvk5*xQ|$_QG%K#x+L$t1Q=g;QmelPzV?Q{24HAf~0Iila z9Ipy-c0GZ|V|m1PfEMxn$+G5qo7mLi#*G9nAZZgbfm%WgYBbVyLb~;ExvaoNBt<~w z3PPQDp+IE4)T7iVE=(k)9<2HpVRmJr+P=$`g;DK0SKg+(P@wkJ_AVO?>zxJ8_V8J` ztUX3|-|@U<1dRbsIcXUIfGTTvvMeL|d}wZpr|AypcW;;Znw5Qx;_&&9hf%NhzI?Mp1H7poo~PfkzrGr;NBr}Q6w8GQN<(@iOMS#p%kti=`J;4I z3@Iv#6)E%I4kMubwqnvvO9>+!piV_?hYfLr;gh})Je)s&2}@umP+)+)UB176eY;FA zZ{gSa^9LA1ifUm+$^dIGZtFD!p(lNDBb1;Pdc5e+w}#{vR;(#lr4N5w#DxhfIe)ra zaz$Fl^zAMe!${nIp1qWnc55bad=`sRrJo|>ZEBG7yPrZg4H$1LN>4A%q^OhhO?b1D z^zFODH{pGp9xeEDDZkQ;2v+m;`Tk{E+NLj18|Leu4Hs z*8vW*nkS2MeC?99QlrrrT>Y-E;>DsdtKSUMBW9sRQhq5m6kk7HPNy|K#UA>TA;XZv z^+@C8%JBQOro?I7oi5kY!~C-m*SnuRy?(rVn09Y`@9!_Om3pW_!CvvA`)}Q%`}yew zW&g!jkUfLmu6m(Nv(l#dh}i4l5Jm6lYHW1nKicxE%;@ z=gF8zrU$}=5|luXmkwx;rKQM+%M%_Vr;nuq)1zdeMUz~=`ygX&e7T8(>IJpgoF=y8!8P=8zP|r_UUx} z2x0k%zL`PdQWi>GeZy{<@RRBheX~Qw1?^=@Y}k%*r*Sa-e#;|TIO#Dip~S_kq^NsB zV@#QABgR;VwKj@Qp9m(Tp7y!ijCOfi zUX910mVPeBkvdcra-^y4$WKVdbuGR!q&xB^WL%{|m*lpy$a1#|#$|dISzw~F)ZMf8 z;X=U>x6sm$>={t69CkA;*f+}sF+Tjp^vw*@BW9sR!>n!NEloC;!4x^&l-zN8#q4=n zJEFr&WxR9JqXvKqYJxH)YS1?!YggS4-!v7KJJiKfg{*!dVS7^DXFL2t0;{-A5^k@# zty%7e@nMnGnpAn6C_PnLQ(qI@MB|Mw&iL@{APb>R8_CexqMc}}nP2SU)DJt+20(*3 zr$WT_+ohsj>7XBedso*Vqs{$ucjC>ryC6o$ns}9KV?_|VE#{90eh+KNcwhjHhGkEd zN$9Q^<`95zkrSl!a#UP@25>3K4++ZM2HZ8(SA zX}{kEfo&mc+V9mj1n3(kZOVAglTO(?;h{lDl=rh8cct2|Y4E9@wNjPZ>up>fE3tz9 z#Kfje2DpbmF|pTM=g0$EcV8`6E_h>R?WdqYKMNE zeCs0PM#t|ZZAoj@b*AF}hW;cG&_qw_@F$6|?g-J{d(z(!*lN>vGY)@4fY)4Si8nFa zPB$)KWOaJ=-US!3H>FQg-?B)fS-V_8H1SS_J2tJW6j@`leuILDii;BsrnryhGHq<4 z@^*yFbUJBKmm;#5ZgtmZ5)q(4xW-i7d`M(kx$v;{{={@4urYo6Yk%Onh})w^hMnai z0z$Kejq41xc2>6-65F|Qd0}s7xU*1eWp)>U2Q7)MydyMQd4IHoFK(np+tT@LiXr)QCA!mP@i%A86zC`Tz}Ncb~-5Z$2rr z_DMjf6Ng93KB+Fg{rG%2KRq_SK6CWqn+IYm@SZLr)Uqy1sH6I$%en;+BM(RS&DJmH z=X~&Fw?2Wy1klr^_0`@a8wXF*xss!MQxz#D2g%WtR#&_f5

l8#>SssRNRacU$; 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�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Ƚ$rm7^RNI5u^3CR49l?+tFQ)Zu^t<+37fGM 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Ƚ$rm7^RNI5u^3CR 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 R?V5LP+q%_^v4JhJ{2yq{nEL<# literal 2220583 zcmd4436vzqc^)`8=Du-*0LcbHf&-G%O&p{^@a*Yhra67Fj{!gdN>x{9cU4YZsAFat z6l_VbNwi!m!K>C`OIm4H&ysA*_DZ|nr}u12GG*%KlWob?(|UK`di}g>*^))sD{8%K zN&Ec~@n=S4L{?N~7Umgz?3${~{J!|(|KpE8{y6em4}Z_IhweB;|MlS3dM&_8#nSFLT&X+M4U!IR&1@cO}p{#~V3>tMNmV!K)Hw!?6{+CJ!ie5%r{ zhg0odqY<{JZZ_N3r^?NGtJDcfyB+mKMe(D=OG;yicEMK2k3p-({U9L=AZZ~_a ziHj3+8&@Vi-)mRP71TCrq|$`4Pi-{o6W2Yye9QJsgYjqMPkpYAk!?Q$4&dOJH+d_P%k)@mdLDWiXKrM(@t!|mBB zN)I)z9rW*>Y@>pgJN+}=u->YbP~Sld6$#DtPXzIA2c`bG@K(9j+Yae6c!hHNXIgu^ zWZRvf)7_(TA7Ra$>QtIH11VkS;LZNI()M;xZ*KQ$VbCbmVKZ;`?^EW0-^-w()(TI8Y=Rxt=1ki_8?<# zhdZTSts693vKFYdo$fVIZ5QideG8RJrK8ebtTrlPyV@-^%HhGAJ*{}+zMx692Sx9a z9&c7jIp>L`Tq|`tfhZca^26f$fqY!qb+8+v4Wo9!^$RJVR@clTN$etm~%<&|!|76@BaO{Z3E zT*uW1Qdc1iTm=!|t9hWH4!=$6Agemk+Cy7z98|us|4^mdZFQcX5?*;y{yy1k?@k>o z|HXqZ;(z33$(0{ezPbN6->lrpc6eiQ7nS-gxA_;R&`!`{pw(@6o6TCeRIY?mt3t4;XC|Ne@Z?j^ zOx^nEvr}-GQ&KMab*fYCh8J6<@^$#g&XjZlXcD5glGLUCJsO|h8c(U`gkOlgDs^&b z_k68e?ZUrQ-rYaTzpy{7ybo?jGAn;`PzFmshk54wx-(KIV)o{c8qI__;-JsXnhP&DhcIv2% zLtJ#~g#+1?(N^!1;!sy4e^agdUhzA1Nv#m=ntnx7d_$S2u-kGss3ESR-r-Ex>TLyO zIQg9_`7-p4X9R%p(`oTjq}?Q?(HQpor{Sv+U6F5uI}vW5uTuZj1;SdQSf zUK>sJ=zMi|Qv7tdTiT*d_Sgn}ik}dIY=;+x1>pHb6d2x!uJrmxZj@?0loqb3@-8%- zyAX>WEPv^s@}A1$l^?)A`sY<7gNDkX3+mu*l0)1$QF*NL!}P=xmG_G$D(|hlPd<7W zaa?H+RVKe47hi=cmgSxAl%M^RF!d7kTvc?msJNr@d*`4epL|G)8E}9ls+a-tWamZkE~& zNRQr5ih91&Yqj97I?0t+6xjoa=|u2J-X2|lfcq%)#C0;A{t3jFLD;I+n!8*_;wPA% z_R~G0HsGKr-Vb(aDd71dm$=_fY zJO+6kS8(A}z0_z??-cafFmH))453P^TE4z_urF>pqrL~#-9{6Q?-lv%edf>5)-IxL zb@7O7(p*>fsuqq`jeiB(VGGgp)jMSUe^=!#Nqm+@D*5=_LJxUOS{vT0MFK0T);hgCf+I{3ko8)9$N15q7DXzDN5l zCD#249+oHiPh1WC)ybHCD(S``#!=A)D zE!^rBMmeIrSKcl4B!1=2{qkpyi2?PY{@wIDHRS#Yafgg5qH`E8VoON9K;u8pMWBvlfbA!e@=B5iBEkje(J2C!jQSq zt?pE5G;y@oxZY^q)R1LyI*7aA1f$1w`HqRld)00EyR1ejRhb6k2g<|ApLTI$$Umv_ zw!^p&lTXVMwGi-`7bSx zeMK(J~<8?UWwQi|21*tOzejqgwPKPfU9m}yFv _w)i4T{)*t~Ze?fizMMdy{sFx&Ij8iFhi;!8O$s!X8?6@J* zI}{5EaU~Ts5`I=yu)ILAX6k~36Q-O*VzLHkBpDA-MH&gu%2b)UAvOwxxUwTub@y83 z3woV3d)-zKU2z=Q92Sv{thUOR6q?kP?7OII;zZJ&lM||fRY)z%5<5pFqLM^j)PfID zF>?GTYb$^YXp`G~LpXg^>l7(&OD}-n8{=?QDruV3Q&8W{75%8F8VZ0#{7X-S$O)-b zRCEb$KvsYx7X2sUF-n28xgQkB&j!?#@uRW^1MjV?THTc&X>QDZhD1pihyyro_M~w40 zrl&0F!}FVqixbP!OLG&Sm|L1&Sp3ZN?Cjdy`ue91B=h~rqcUNO942x={reWDmoINl zU&eEbi=U}gDH+4hoT9YnEwqeX>OT6%TH6Rf@r#W8&dRIok3~3Bd9r^d@z|4eubB)^ zWpj@p`stxx=pK}Wxu1}j())^E&dFbpO@e_652&KcN8|rwtOB&V4Q29Q2L)!C-@+eHLd%Y9+SaIoI`Ixvwo*bbn zx@>XjjJ$-@wMYuX#fzUGkUwiZ0EZCb@=1AF1$4hgy*HVh;t@YU!PH9Tq^{Ux(s{!IJlMKCTPkHe-_PY$Pr7GcbWoJ*RA z3}~ovKVG_e2RDJ!^mt-k(th4SKh{gv(Q`^;Rg*AH%nZpp?(M*SYoY8EInaoJLRy3jt&~= z#4Y$9=CNDsIlg2y1HRyFadF9$O6ect{D3sF`x&4C`ND3gT0=AIshW9+FP7U)4AkR< z0-FHgce!56$h#qAKKg-AUi@?K`QSGzzk6ET(g<%-jo|X#y#_||(kI_5u2FU)4i4fW zI+aU6tMRN6GzhPM;ueA!WCpt3c%XW=98|Xh%q58s8+7db?o%fw$X0GF|? zObnp$T;GBzVkVNNa5X=5QBJhRPn=7z@PtSj#n&{nc37tbo_YPjI9f4fYW2Xpem3DzW5%|RN*9!Ri66<{zSI_mz}sa~f&wN-6QRjR#i6{BUg z1+CU%T=~rT_!+*CJT;LJAwZ_gIQa<7P-CP?Q&-Dh%BUjakTW;~O1Az2qYGs62||nEX}5E!1w3GRQ#xoVp<9$3+@gJ#k81kRek4 zaHH8M-Qe+W0mLS&0;>Bz{z1?h8{tE|9C!#$<*Gz}RKH&?seu3Hl@91*h4H@AxJyLDyf}kuU2&g++#(^b zB5e8WBmAql#9zb^9K+qOsMf*1@79`IXozxg5Jv8T{(;ohGS<2@(1-E$`}sOgu}JT7 z^-1w~<)zB!rLYg`Q}JS|T86BMhb56QSI=?mvb^?A{bA)fD6-!nBa6e4%A%TzS(24f zSytay)aR=D{d4O3n)+NHTDFNV$iOqt0<(JSC72Py~kV3A0dY+Ds|`EH9E$3v-ZBkbW=z9Y!mhE#>7^ z^f3`%+`+;lOv_moDD4&V`n1G~q9t?ZFgUrVduWc^fLRA90g?Xp-Yl6VwZ4(eC-g7~6(L@o@Wffwa| zc@@1jRZ|22H#oJfF5w zN=Ax~!_5Fg#yLs%9^0;I45tO_$wCYcQQlsJM$p@}wD6(9|S zs6fu3^zRqbJTmXqnW{BQ+bSyI)lE|$embbNknhBzn&h{qf_4`}5MG=2sDUD!4^6V& z2<7_0>>7#dPljSUG!=>}L=39e$fQ^ichG-!V7(|Ei#gSrRP;7wruxqhe2lA8l$ru7 zs!qhLVwoov5+p)@n8KPWR(L*{3CNW`87uc*qiVLQvPPcCL{K$?g^o%dVXNQp zi)RQRv6)GVHZcbQ=iWbOFaqzOKb%1sHGuJD4aqvp08qHns$$JTic+-_5OT4mKKu-3 z+K}7sd*!RA#lymY{>98%iR%?DrykesJ*g52SwEEtLRIV5HvLL#0L1ugu$76{?s6xm z^lBgEGYnb8x~xGyg9=Tv4Rr)^7!Py%%&sb3%J}}bdRvtzUWc1Jr~IqT)1W>MuHM;y zDE(svOM(&mb;)Z#n7)Wrq#{d>YrOtBM#D<)tB3pdr5+K3B*J<)bs;LL02hzprbhq(yGJJ?H3*?M^D7x{?WhumS`&e_LYTB^bN_k@9jpPh`;^f z%ij^bFaGvR-@X!kEdKV(KXh+29e?|kU%VrFD*pDXzxvmr`S{zf{p5S2kHp`8{h$6> z^q%hJ=j4s9B{^?(-MRW1D-@5wa(TC%2|NO6iXEYIi z`|YoujGp0d-~Rr;yA(Yhf4lX*XQNNY-+tl6pNMATZ~y5N)#$PK+n?ZIJ!^v%?KhQ66v*U&dpK?D3sdgNDojG9_ayU z@anzAzJnzYlghcP&bkT$|!Ga=IS33nS2yI@B!Ow z;|I_;l`$d~V=eg<`7(Oy$-z(6jfcqP(L?X|JR}T5@{nJoM;vXC8;kir)AL>o`^?^fPeJbFY#9hBOTJ-modXdu+VvU;RlF+LS{(0(wv74dkxbW^2X zkasv%u3#A_mdzk-5&Z)Jzd@NyIQ!Gns|(oOruO8((~IY$FVjt_YuFnjmO>vyKaZ=u zty2GlHuFaz;$2lSnTH8G+D(OWVXgRKnYqBfj$svH@`a|Y5Qfn`z5dZ|3Da4$RPtv9 zwCHQ1pTobUJfb|6H=FR*64r6ACx!xDn6+We*>R@ z`6u$@H|57alOMk=K6=sb;FC*3k&~x1YAFekQXa;v$n-^7s(%C2BBi39(^D!WqQveU zDiwPTvuMscWcj{cuzb`{d&+m>6OHDCFx^iX#e%AZ;_kk?SQSwqTd)Y{3l@RG4^I*9 z(X_<52E(FVH^>TlSHaRztm7%&`(^14v1xN=;ZU5HJ0vnmh64NQsh87Fy&OOFvV2O) z@u7lpP#Bh54o(M+CI>%d$nktZIVeK($nk8ZKDb0ujzbtWCdnSdo)m;bISe6%df9-G znz~X@LJDg=5`K7S2|0ObNT(hjLOOn2N_MTFWE6vYBzr7VGLApZR;2ECh!Wo~%f4N( z>@+0sl>Nzc*+ukuNToLqi99s^QvTLZhk7oNK|J@edhTWM9RAXCQkHf>S!lH4k!8Xm zOPv}F<~9zA%)B9jy4?_=PK^V%zbtN-CI8lfC8uGNr{s^jOU|4-a(uL?;@WXTN`xU2{&kk4sGgy*C#ez2e{G{E%8@x89wl?4({N_qZ9L3wEW>yhU@X?Zvue<;bv8)B#j5;6FJmy-u%>3^nR>1jaj zDg6i1rDr|Jc`{apm?<-)P!A?juo~optPAm=l;#%;N<&!#k2LSgl4gKasb_3KT=w)^ z1!bUwhDU}+bs2d05lF!e z-YiRf>Tt1vBjvX|rGAHQ-D=pz3n`2es~csBQ#Z=ezN27iX zmQtgL)>T=q3kAzXGbEmJ9h>9BWsCwPKg*JQv|vdn0qH5p=}WZcVM1m6%;+O^O_pi4 zV3{bf=_%90n{++~W^O02YLpH-sZXf(VU};eeX^`;1JTZ@4?ZigA*Gc8*^b4{yje@12nLSTw&R!113_G1yBUUUK zm1SL(<@%O_<)S%8Pq`kB z%5iFy&Ja+G%S?+mFUb=9Sius}+^?rZnYuA*D)TN`&i}DsIcZkfQ_d$YRWHi*mspZi zs%0MJWE6YYholr=E+_@frhBA#WC2UVvFLKvMY!jSuWCf+;^a+M`mU|E-urIR32G#HJcr zkdsV;iCHK)QAG1QV%0%Jb1GtKOGL95Vp&T>lL%s}Euvh$Sk4kr-drqYi74|dma#;X zyA?}VBFb@!vshvhk%tt^OCs`2VrfZ4 zZC@-aiKzXEB_$DArdUoA360_?80@KtXC>v#;>j)S)(GXfTk(8kYW_}4K^~`*xdLq2 zuV>tLp?_Abhr^mNHP3lo1l>5+ixzu}`RI&?WnqrT3%#;#6H|$)iB7%2M!!aOBqpQo zJTmH-f+mCICMK-*I)bv`z|aG+MhjD?VsEdQ^sKz0rW+4|L2~^GYC6~4;QvP|62<*v z0TKNnKAe-N|1U0J;uQlg=Em2M^lQnmdE2yxb_IBXS5u17gxm)78mLs$EE(>7Zy^OJS{(8wmD z%JQ|8+QQN2s{bg4_z(D3F5{t6^tPl=&9s}Z<0h9uU5Ng3#+B#}REz78!4vt>zl@vS z#>n;RZhEwY&DZokH!_#fVbb)L1w?k!do-&)@-#Oglh)iWEcac@#lMI~l(}<)E@rKI z{~`|JO*hsH(H=yIzCeFo#~&Q7oV43JZbQ3`J_^?U=Z9^x*~=B5$4XzhEs%mAnbMIf zN1g-2)uXaqNBDQ{79}C1O%!U^SBsPa?OH5jxqa&c=rsJ8=8Yk`I9uPuZ%3ykoDI;jHyE~t13u>lP{0VXw~A+ z4X(v#93IkgS~<4P4c;OnCyKBk0>@J58?iz?{JF3k{X0kt7aRSa_|%={Xa5ZUso(~u z(kJmwX2c>q-*QCWX;~V;|0?P-$Lh8u=#c6t74R-aF)&!@%bxLfiBPz#0`(tiGnY{|zd=`^uw%?W6~ z%NG2(k*i_Y7JTAynwJoXFT3?Fk4$T|-m3!QcDLRUw@41TNjA0XI@iwHLK~6`?{6Kv z8=KdvBuiD&PT(fANlxIF`rK2Wuc^;3sLyW^pW}80RiGAh2GShI;0$s=B*BG@m~%iR z8I2z*65?RwBbLhFzLAe}QN1zz`IC6~^HU?M+3oB|MBnh|Z;#AndAPqRATmAN+c5k& zA_BnFECl~3JB)ukvRp&fVgINM`S2~#@I*i$7a=8DCP)0`B|Fqc^r{HnztX; zgpWVYinWdS%*d>k5uX$gnGWG?F=Fg*%sl&og^kx4j(pfgcGwVOW4T#!tW7#>_y*Jn zg$>WC&yR`Eafb&_ih3_J>X)h;L#xRFk+faeqvU`{!h@eE;z1A|h@EPg;lc1pdDS>b zHlT{lXJbbd`^hp<$L_vdThEM0=6y6%EhZdaAK4<^E{r7fMKZ6A%w;*Qn*!qYI_?7|Cu*lE@G1MDk-02o-=7yEQT9D~A(XPk z_TSs4>|#5KqgP@@&yOs&yH%6;K1I)r%w;M1GkGBrMSn6cgi^HF4Sm}bZEW14Stwe` zfwMz1b}mNOW6i!gvYc+slDt06Hb&;MGXKu!i zz7#9=mqr%TtymJ*r`UfqGMA;;f0!2{QS8s=g;0tW2MpXc#g2SdLG(SbZvVr`lDc(E z68m)f2P1P?y8XSp5Q%PoH!p_G$PXBXe0A zelRaYqT&1ULMRQ3BPnj1hI5~85&cxG<0~Ue>~6&*xlhM)BXe0gzLXat(ebDALMR=J zV>)h|jz>N5Bl@{mwVja#b*q*H_NlftGMA;=dR~Y`wNYLOrCM=@$!$|@-s4cBuf{6= zZ$=i_tzr_~r{W(Nnafh~_veL3RQx@8A(V>6!7jH=#W~K1iT*{b-Cr45R=0LZW}kL{ zabzw_yT6bZBGK;8=Y>$(6-VCOHti07dQSAau~Pr;%6aGB)wY4*{Pxh%~-oEIX|>;rirlxD@5 zNw-b2MixWYtn>J#=rGm@$Z7M>jx46T$&$D}#a_W9vXE}IlCVCtwnyf&)Y{Aok*Kwn7ec93oVj(|)H>|(UD0E)N`GWz0o^Jk zL47Lyp^>>PmHySd5Q$2^FE4~rsW_PIwyD%Q#mwkRr(!+++Q?G5^+?kB^!Upob6I-) zN?wRWk6+FUq4X#YavNEXxlaU0PJc5r_{msw+2Zrp9cTq$Xu2Nza}8w-lb;o z%Nc}B=6L{)SNmass{NWn`cb==--k#)+poTJp9}EFDa1AJq(ASbKab&$zVa2XM$MI)7+nE=!$%H7`V>&hN_$q0}i(AiZts)Xyw6RM?AE_-i8z zkIZGM@GE&C5*2xts-+*&Prn?+nf+m-6XIsq8K-xh zK|gz#{v4%0$LY^W`g0n8jI8Eec2+arQN`)3W^@QtC8ZlWuvq3cKRQxwvx>L9-_jDB z@0KR|hk0!zi9e)`6pBBjBh3MkltOlzIUo}MQ7uvz*n=$IRWWiDl((0NUvOarJwF@= zJ(plKqou6f&WEJ(1wEf0nalDtpU4Z5=?0Cgz`e$=Th)tv;Zfs)*xN1N-x1$& zzi|g094OvreGdDwA;XLRO03@B8(CPldP!)XdVhChE=#@tXI_Xzz5gmNgi^0~-_mVU z@4y!_89M##Sf>x39n~$mbxM-@bb8;&T$WDH=Y>dgdL}P~(y4eS)os)1Xz!>pl>Dz_ zC0`m@WVez@bf1zxJu;W2;Db(Czz1!`#|LfP z#s}^3#RqK!#Ru&b#0Tvw!w2m>!Ut_q!3S+?zz3~?#|N#L#s{si#Rsj*#0M?v!w0RR z!Urua!3V8Jzz5A^lrrd{AeM4|3Z0pmvTAvV^O5^!jJ0 znmS=wzORU0pe29WsqSh&ol~!73ecY5!DcZ`rerZ-kUnRNpV* z-O4xd{csg8C+p%LC%3~gUZN;xqmgOEB17@6H}&R@{@H40E!6MX?;j7!6W$x;y&s&>KWosYZVk|1#?#`f>cU9Q_3S?H?C1ue4WM zkoyeY=hwm{e7FkX>m8~h{$;w2G5K=zH^ifVQ~Z^0G5JaSdq4VH_zQ3Hcf zC1>SHE`B`ZrxH?=#}m}nUx703Zk4L-gZ@2rWQ}X#$Mu&v_0P*6kuk5gN*(cnr^*}4 z-Gfr>E58cf{sZ>2law&%-)}uHepeXO8c~8sU_9c$;Qc@c{dd?v@kND3r;)~J4>{1< zm1?7T(0|Z|l2;TCoj;1|p(Y>0DSEwfCe|I86^!XHOpV-YIXh?*_$D0CLR}q!kxGn&%29(>8K%!@S%*#HjALJ zn4ZF{m|ip*oTU}ND8VE2yE7Q$44Tp`1#vOSGdRJ?@nRMamD&Lv*RLCdrJ`^#Cj1~B z83k4L8r@*Kx#J;vXG$jXVJ4tJG$ycLgyZ2zH5B`KrlCMLrlE?ftJAQ8op!Sxh)VEq zIV#Qp!h{r3$Ar)7gxdRhJd97cYS8i4A7vaAzQ>f4*1I}9Wa+B3o@dEuco5S(oAEv` z4_R8W3>2oMp-44tM<5AJ#M0=uS|ZVaGZE9 z$m7(ZRz^!48aOB7T%cR!%i4SZ;3$z|3r-UUaN*T z!?s%?Djb3-Kdc$N`gKx1X%zorM)A!@5*?@md4x@w_gKZILu@voF#<`y%VJFOoj{BImO&Qa*2rjL(}Q;q#`*_w0*w&%Vg^yeX1B`y$t~FTBXU z$n@-sM9;p+^X!W>&%UUUJ7!ME|>a`*88T0-zyA^sfQXKep3r$kjhmq%0UCl08r`;?VHlb-|1t zlPgFX8brVEf*dWzR&eqpWEY(7>-F(b96&1siqfM$av?avJ4bNMbtMjT{ZB3&-BD9X zc8r*rpQpGw`V-gldOsXLFVY27^=?Qdia40^4p^_Hb%!XfNLAs8Ll6(UaP&?gE{Y>~ zQa}{)M#o)1X_@TUQbAA%8=ZDRq|1^OF)AQ&aM*bl&=A3(!l0-#y5EH{Fy2#7Qz#id zOiv#c(WCN5>VQu(0#ZFL$8~HZF+}u(znGrdK}9rdh?Q_WV9TTX5knps@TsRMo{T0fY1A7x zY-x7erB;QsBg0Ovlo%%Z2eBl2i?a)0*_wcO%9dk5)Td;iU^4oMC4+9H9M{QDjvCX? zN532wewd(8fBZSC;JxT7extx-1E0|*-EeYAhuEsG$a&8)EV6LG-)etGv-atwOL`vs|M5<@sQvU21gXuCdj2^Og+2{w?nA zpABlI*Y<+0x*wY5*D9redz#i z%4=@R5}>?$7vpc0H=^IeZ5Q+h`=_KvCNgmU9}V|NCoHwgm4oO{@uL&$oSe?!s@nbHLG*RtMt>~Igl|+hRYH6t zWCj1l1EJ#n;cnQ*Bmw3fdi^7Ki8`h-5DqIH^}1Em^11nHEu^WF%|`Xr*=o59H9Yxk zu;d>@OQT628u`2xA6pS@l{(e(WUH|Y4Mcxk-9y8ox8n0If_AsYcl@NfgGNjmO05OU z;(Pvkbq@`v-ilAc2zIKC>*|&s735Kp@7?t0Vfym`{=9`bo9&vIw>*f>33uYItEvzrBEK??5 z>KO~{pP78>>4W~IO1InUJU=x>r(&oP%4D;>JN3*|S-fZXM%dn~RCgEUy3H>fUr`uTfqS=^rG(>p`gsg_F*xf}WxJnD_B@_gW#Qy_hZwGx`Y7GDsU# zV`C;2n1e`fLe_DU3QQ(_z^;l;*w{8W=L*-ZfMm*(t9zH4&04Sloftgd;N#iCV~GkA z5Jr9nkb65jVH-XecDJ2+&ZkP7#%ANL+ZsFMyJ*(BQ3CBdIBvHpE`PeWd9g{%8F!3C1k2!I`j@#|F!IOhb=BbmZoCXqVk<-DNzcA;%z${2r7UbB6Hv z?fIG*(eDI1VX50|hXMR4&Egqmw&ts>v=bfzpUd))>s~69QGzSuD1ks_-ZPT77T&Te z_>(?1N>1TPy^h5X5{fBK6Ga27s3uG8-5Z8HpYbt>nGE!<^t9^POf)8WIQ|)tMu<7< zupD4Ec&B>HAY3d$XdyGXP@X7bd`nO41~j;@j)hwRGxdF@+zyd17p7I9Oo;$O=~KGm za63ToUu_z~ezp*+aPcuN6QgToV))TcaI@6LIAYh}_4Y)AEQ&mK0?V}TjA;?fm9GcL zrB{O1Ubz!s++cRNt3{-CqH`h86D!%ts|DNW26qDtfhaWBV<>M|I7ogQ+C@)>PA(FQ zB`viVq)$UL{rOmWY#p_$eYQxo$B0aJPeRs1pf8qS=~e8F-Ue0ib_~gMNej+$T7_D$ z4$71mMJi*Ws}5J?4gUv;s9`eU{W0NAsaNY_b=)>OUBhs_UE3f^1C>c1O-N}_w}(?l zXbCioJnb}Air9}BMy9~I2uZ8e?`pT3?J>4m8=C18OBOz>6NV#>Lk87(0?BkqM_*~y zO~+WMqZepQk~9~bfzWJsgKjm&Rj9e>piGHzfNCx{La2q6o`&Jh6fqtKWU2|BicTvE zI#_*<41{VjrrE3)q;?W;Q6ABX(hcgRTX6U7U>g|`taR1=;c~H3SlCXpeQFb_SH-Y(_Gj}5s2+0x@^Tv zNk?VrG(GN#83k8nqnI8|To*B|i6Ub|1a0PU3KAQ*Of0feBBAnXubT43-n{D|bxJs< zNg|APuYpONdL083!%z!F7&<6ZCI&=TDRdvN0U4-FnzTo{Ec+uv%tGx^!(_swN9mMy zLeZ}qe1&?H1d{2J2GXfCZ_N?k}t)SEF(FP51u4Vw|ZVtP=8S6o9B?F%eqE$Mjf!rhOVwG;9mE$`V7canBi1G z3nj708IiS5OPj|wu;<&& z*TTkn=qUZief=gfeLB1W#1zOb%&R>wcGY`V(C~H{jm7|DmJ_RcmtCF1M|>h+A~T{l5U&Aglta1d)NV#z?<_Z$XoL;SRHOiz?*j2*$_U9j{8d3VO>f-9vfZ%W zYy{m(J1lLRGH>`A8V#290u05#WkR%{RVJD+H_Uga(AQrQfjb00wxC>pJNN}I^FNj? zze^cIEhO<*0Yh^so^q8!F1)E@VL}yK=Si#L%oA~phiM|O6g82-R9s3#7q+eJV%fbu zD)Y7&pScnsGrrHoNP~1bmnmp&Ir1Gt4M_)S$cE?AAkJB=b{yTgH`cG=v4k@L(UF^t zUEBZok@1*@9D^`2?0c!yYGHbX7uI9#5KeRmI=!t=P|2vwTp_*< znZ;)rWpO?uFvhwvSs2@Gd&hTF7tQU&aqB=V57~!^frZ9stD0$x-oJrOvGxQSON3#BE|FBN8K8MR z?;xodkoi)QS!Q0yE({A#F?Fi1jj;{|8q1Wjz)r21TJ2TH0wo-CVLC_Gm$*1t$Mh_1 zv@{%)cfd19Z7E!4$1qoC#|#_o=`rio>-h)q#)!L!rToUSt%t)SC_>?@JSUi|^k`jpVu@r8(M_Xg1o9;|Dwt~_YmSWa=g#HVxI=vkk!u$bpopB`D*d1SC^pY-veJ+dz%#^+qUuF$E@*Vt1BBx?R12 z)@9Ior|tc;3YCd5hi(yzgtfuzP1O5&B`DKkk%o)5N$aO?;Gi9Yec6{(7>Yf?=0dn+ zmxmtc!@x1fE3^1^iV}eHLr0NL2G93A5aUhl|);* zF0K`~1g;K)gX;x3icHniI+f~<*;$RAqwt|~K|U~`AUM0OUA+~EbX==uF8g?Cd=-?Y z;i5f0sA!ZTOqa>K#%g#Qj%DV;Afb|3rA>3>FnU5|5Hc44%j7d}Yc+8oqv6TCt8#{~ z3JK1|c<+E>w6PeAJdjxw?~485i;@sm99k?!xaK((qgq*AOQ5>v|c+FocP52az|h zxvX2oYca-59^*1OhQF2)QfI)>m1#jct4S{1?BMmqlVZfxn$a~gC4!{7*T*Krn4uQQ1a&OyCn9$4aCNZ{=9 zQh-c_fe2r@Rqa|kF}+!vfn1EpWLQI>$Y^Jb(dxVdkwHWPjY+7DVI*7ba!U(l(K%U5 zLjCjHJsfbVsVM`KX%VctXm_e%Ew$Oe8?to$%nFvt$>Tc8*T9-~9B3qaLZiC<^Lzd> znCM&-tU-1b1)I5y5_se0A!@-`NM#exQ{7vNFG!q#vc%-x%*vPdSc}H|Zhc^-Yp6_3 zUA;-Y*&te+We?Gf`u6+Qf#e1*(_?hBA$HSHs}3hc@}y<34%MuaM&>|cE;!r`I({LT znO|zBPLbYHv03q&?OGzW91#=&%HP^x4I!t`q$3f_vS2|A_NH- zGoj~TrnNb|SpY8-&}cr9PZov59OyD6M?$ZYc#n>D$&x@ZORVq3h2=Rzid^~@D2yHJ zdu4TIW!6N`rEi5};X8DY3qPd+svBypIf9RrSJhy+@ECnkOrtVvUF>9`!vPHqc%uR< zK6N27A*NGOm+?AqdQFAF>37>GbW?vVMFuF-B2KXGaJ*o^@3g(V3YCe`QCY-wxqrxz z*dHf&nHiR;T{1Vss!M};3^FTJCPp7=$?ObF{N0pS=opvDshh%6iA7t>{JkM{cQC5} zWIC$>(N%NYU9{}E80jTF`+WCWwUf3haqfHn-zdeXZ0?0)v=?mXz!xIGPP|;skouA zA!&y|SWyFB{#B}_ch3}!8e&kE(Q*m)9>1b4!QA0znUA&0s;K!G8?7u4gqB(AcFk$e zq8^Abxl%1%svFGriWJpl49c{aUossZ?nwKC(bqOOA(_(BCLORhR%ajpGwEpTHC8$S z$aGfYsCI%~GmJ0VI3ywyT82YOZ!7RAYB(_{(^^`@9cBwD+9m}c)48NzLFxlg&j(l{zkyTg?Mq$Jl#H#$-~<6{s6b zb1mu$Vo;{FjHr`}2#OjJ;W3#N!D3ycc*l8a5M4Ba)nJ+0s@|?^>u}NPjX{~#lK6%= z_tqNR7L{0oWoqnaF$0$5p1?6`@Xs3!9(&s8To9`*)0S<#hB4@t%<0dfZCS@~sTrx+RTxu~(lpiGNJ#iqvj4u`r&UsOC0nu|a)2(S~m z&AesJ1$$=@x_DTd&`Cit3(bYZm#pph-no!05`n}VD&h^+@ouQeBtfQUz=m4*nwG|d zW45^7=(0WV%vEm*6tk!RMamS%zPd=>Sv^ zgc`knxAB+^!|oTb5grrQI5CaRX_IDQRGPP^qj4v_d);_DtP_@L;p0=+^DKWFhBvkR z36&er%cMIm$d{JR!Q^MY9Hf)^ZF6eG@=YAB42-YS^I8p0Ro*me?! z4ASE94)3Y{5@XCjWKOiHV6IlHwmMa_&3eU2t+7f_82T8X=S#KJp)k+-CdkdVrYi)- z#PX&1X-&Q!kKBsmD zScKjnJw-SOm-#VuWb&`mOJXc)Z^m{Ibppw()To!6>u`D&)2NMFgJE>^g+SlLE=ppU zb-wV#+xMmfa^W%GQNfpbRnRj&uh+m4_nOmQ#@BeXj_3*!ba4oDEu=Tpqy|miz70z@ zFxWNF4KOY_+4oATTZJpKH8HAv8$irJz31oXonw}wz1>Yp0|^RaQ@wBCAOxe|_ttx= zw-Er0NS3qN;McGxcB{wfqgsv&kNL|sZ}j) z!Ly1-H9KN3CZL8at7{S;28Y*t)N_??z4mx{(gb3B3}qM}r(ffY0E5Eo=Cddi7PC-y zqHYz-Eivb5@OX!2Sv)bCi^(;slAnpum`T$NLT5vq+?pXE#wXKNVmG#{=Kde=5HqX3 z1QIi762PC0M*;$3d`;_gczv^xIvgptE@CuhA~&l*tp{#ebnN?X5iaDsuU=9od zv1G!iF>i~{WKm$ugG5Hm)7z5iEtAUYATy~FJZ2*s2yqG{*4$&~x*?Ib-r&7byVi9m zoq=8(IVJ`TiWx}z9gNDI9A3RRq%gpkW)`Q{*A02R{sl81saLFM zNG!`K`P<6eiwo-;2EMmn$--Ay%y3#T%ulaxSnKP(de5MU!Ay>;b1%KHvNmg0Q(lf3 zj5$sUIq1*ItWi=!SEko4n-b*3S5S<9M3jHUD7rWN%qaRw+<(YgS>Kr6 zSeP-O^OjmcajB(!UYlOCswJ;|G8QwOTYYJ1ZYh{uS(;v04)9My3@;0o8Q?vV>@h4X zH_OVU&yJ0Su-q(b(=UvTg|IZ1U}^fZD{H~ExwZB5juY=F*&SBDl!7$K7G~B~#!O~F znqSLR+cnt^u_ zOqQ(5+65pJAric_IUh_fzZA@@EN?7a-dx!<-S^0mpaYNDkVv4blF1OtJ5Wx?n;H(I zBSuSp4c5%A!t2ko2?&ZgFy0UxS+(Vj(wsCp8Z)W7nqOI4nl=qCS6wL_Mn_VC6gX5@tF`L!W-qje)&dpD6E^Y*u7tGkld#0tCgC7jcCBULH`^J?QmMwPg zDl8v6gEBKF(`@GTE7NOpvlh8G^zxBwxXcfWTw0l3SYFsb@3?FZ3cV&@HI2pqVgeW> z-pLg#r&b$#SHq-6YB31o!XgQGEwt9CcmoC(w8CL@1d8e{C)3;8P|%V{@QgI4;(l*T zpyM$cmZT(X>ta2OP3RqBWE1L;%!%+(uJZ{l&sf^=Misl|POsH!wzUa66OCyQK^hmZ z9LR7V-tgYXM1V{N_pQjT%uSn}P>#fs3C0|WK*WJ?X~7JYyelE>B#l8N5t$8Et|Uq~ zAa7V;CrAw}W=QM+3~B9n*DMYu(RG7lzmf#5AA_=#e!O-tpxR7|Xi z;3{I#(abJ$y_^QBSeOU&4XH%hpLE-qErJZ9p*z+)psQIg74zEp6Vp+>Z{%95mg3 zY3?#|pUBj#ybx?$Auh9~yg3XrPH^HeA649?#g&<>P9|^6nr1SPn1h!0%^>7inqI$Z zv{G-vJFS-(g`r6$vvaE$4oz>Qh9%xGAq}qKFg(pH&MnUl(1o`rP1TT%#$1Pq>vKl^ zc$X>CO24Ll778KgfS1jYU=BbaFd#y`;PTwY-10S}l%tM47=vL+@XKZ=o2Q%`aXASv zHTcQ_2m~%6Ei71ESXzLI1=FhwhV%sEMMzFrQy1KHKb{sGI(n;w+d}tOf8O~uI@Qk}u8)Gb0!oVfM+m}R%R-s<4 znrMicQA^(AQ=PRm7@tc+ts!+7SdIn^1O`Ny4TZZxgHh8P8VrL|_eP!c%JSk%Mtk#y z9j>q`fnt1G6oiQ#%;{d6bIsV~8j)Ct%tlK?}D&OlCzG&8%w+GgoF-mR6DEG3>#s zD7!mXoH`;CYSp;0wrMhXtI@3|fy4OJ+hcNYZEoHW!rR}`J0Y6AMi%k?==We{TYF3XofVLH3;V~J`gEh$LutvDd zOZE~WZ)S5as|n2Xv{*ha8-~K`Ztl^KJIX?3V)9B%ta7=Aop@6V+0rr`Q&EGCsTO9a z-*!~5caS=O&;VsxY?;<**X4L@VHrzeFtZGAykf>Gqi>n^p>siW`L9f)6PRCEo?c7` zVFlzjL77(9u(;#0nLaL{VTNNWY>ba9LtIN%D;P%Q-7c7|<1{Q&>&^mMtJQHjix`i| zbWJWSEp3WfB8#zrCQVSLMgBRiUJPQE)`RH{8rK?i>+KM;>(;$5eU`D_3bE<+DDswy=r?O$KR!9@YkCddiS-??Yj}8LoH}f7z`@f-#Nm zhs2e1jTQ)6Vmuew`rPL>=ay&279quWOs0n@8=Eu`clO@}LX;FL6YCy`oUEI-fVVY4 znHH1HvB7LEFVM-;Zf5U%Z?^4NxJ<4$mTL$SW_h7zurY16&;pIc24;F1G;9QyR#wbO zeQ$!uITBVtDQpC}Mx)P-O+Y3#rI*KoEr1xC@&g-K(Y%>n5t1)I5JNFO?Wn`-{^Ck% zVV!rRmQm>viP32T{RZWPjEeCNFf*_ThmobNETTI#p!4ce05LYr3v2}RlZEf~*cnBS z!I*;v;2QxJd}B2o24{v4-f4jhk_3%eq$H~^ty9+3R6<@!Vld{A7PNi^xllujycQ&p z7+u=G9HtxadF@|8F}~Jy1F=>>dd?=D>9TJd16TBleM);Q?rIRd234|F}iFO zo9PCZw^axr##SY_nndoB3nWID?O`)+C;DodyzL=DV-{&mo3^p$wI&6{_!QV~E@w}P zde>#7Cj8P^%tN)cxs1pReMP!s@G3h!b*Td}0U6Tf^5%Lf?>X{pox)&PvY{6pc|mXW zyYqq!#qi|rFmn);v17Fx8tuzlE7pvI2E_PeKJ;^VD>M(R_2wO&=mLhZDfS|4_0D$M zzlrle%% ze^n@qdW`!~qn2_688MDR?)6WUpQnT8x^&(EZQz7~O)o$#!AvDAn=hUAngEXOXeT*s z9fk!#tDbI%7t!T_$8nq*x(>te=<0O%xm!4F#;7u{cgp0DSWJXwGTq({R!i;F$w^-K zQEF>x{{(}9F`ABl6fdPQitlaWZgdI66c~S*6w{6EtKr_wW_#4*g$JNb48QW<{g(Rnkb1NCOK9PAmeOpht4OU-7@;TOF1YR;xexdn?KOLyb;rRA-nYS8`#}aFa|vMmS_u{!JLXx% z-oeTMQUS(1$h0yKYBQ14a3tQ4Ka0(TWKQ^9#d$gGt~N!#Zt!{2of&)@9CKkJS#d3N zGNkh^rp;h80GSUSS@Erfcu7sl-+Mch3@XNAmPBjobg&budEP!eC$H90kj$CX2`AVj3k6F0nJv<3R7Y zl5E6gVJIe{{z3AqD=vHVE}$C7#fVIaNLo_bZp=IKbP}2FOW9mU29&nz@&`n&iW3~B z%fgsb$zi)Ie{AU_G2N7Eu8>6hj(VI;y*X|uqqdB|fMc!1)kf~a5hLWQHVur4D5et@ zms~T~wR>}xP9xCKn97jJ;p6kmq`;g+(ytp1JwK5GV5BnpW+s4*oRP2^0{$A$adY!(lrF&DKY;<879-n_q~!pt!s#uyTt-u~^@#X*= zYKeiE0rN}5P!29(ZnIOP7siCGTB#h)wcE{NiLh*XnoM9WfHJ%?URgwsk1nA_ zsDPM2)gcp@zH=zImcfvmUlYq9-lsAS85EEugZzCQGB6TTDA!yL)a!O^^?Q>+PW2mb zOoj~((&`o(SP(?hz@?g0n<<(%N$#e!K?f0YP3SRQVPXblV$4}diLW-AHyh$AlJkbO zd*@i3!kTzYr#h%|u-I%~@3ll@HpqtRXD!3m(U=M;BPkgL;n~i^KiYLU4;zzdRk%{d zNn*Qr2VLs@-9!0#OS~A0Nn)+>6}uwyY0boQ&}I4HymUGq)5T35Nx868U&EUzQq`ER z$s2GPWa2e+W@9fxrr=y;)pFO-m*pl);FwGW17$1_YP)Q4s94alMGcIJaNeS9X)i7< z&Qwb6wQwi9y?GadIK4?0G8aLZ481Dq7G{lRX7H+R{L^qO{?V{}NDmV%K&BIYx4deH z@k4~Z;!&H)4CXbN#DzSm$Sj#OK$Z#9->TlkvLR8ptllZOfsBmEgqn;C_0sNiN8VrAY}ZDm_UoEtjRjQlOMvUd#2#B_Z9Cp_Pue5($v0M7$$x zDa%TR82yUpod&9dGNtS(sWP$Fq-CbDyglWhij;6nBYkU3Gt+CgkydjJ zB1Vt6suSz3OJ^b9j>UvbOZBtxC1LsZ(Sly+ivQ% zqNiVm7{2SL-p@2mC>Dh#dgxMG4*x_Cp3*(9!eCr@yjkpI*r?WB(+l2OqFoSp5w12T zlR{%2*t2=X9-4UFkdMq*G6l+ z!|)1J=EacOmUoHXTD6Y1hNMo?S@Ff!!_e#CTndCOu2L*-rgkEGd+*^2AaDnAJA@w# zx56FBz47^l<$3e1NMqqvxXg`MEvfUl#f@oU>a#d$+AulqhNMANZo)D%&L49yYj$Cl z;B!T+E-rxq&n3aeR!2#slFUMQL)M|HfsvVCw|kM8fMdieRPw8a5{l?QjmzA+7E<@1 z2=mRFIo2$qg$#HuiSGO8RuUhF3)fpl9Tf4oCMxqH!i}|0ZXUL8FnVK`0Xk}6#AIs5`)t0ez-#}v)Oo_B!vf(-sX(Q*A zwg(X^Ko=KY@wJsoh4_2iL0k&Z&1F?&Q7!?oN_mkV^uA!nH&3si+-&&8IGdzX!53EoUKlH7YYHd!jvl-BPt- z&idxCrv!)@aHfouC7s#zzAMnB2LfSa^2}6A=mfB_s&44OyC~HG&Nz%uy|aezn4j|d ze_IWTB{en0vcPGMMHa?M%c6cClPo40b787U)SJ5cLbY457e@Jguw8W)ATx4Xq^dJb zI8R%YD2&bai-T!Q=sfl-Kp2@zy%e^0&5TB#QcD!ZX4@6NQhc-?zWTJ$Lh{(IiN;*W zqYHhfyCZKN-O&aKgK@d$m(!c^^3=QlVPx(h5b(@~JEdODoG$Ul!nSQ{P|U(@8kfe> zrWuFvS;y-4F|}zEjk#DC*5=qex-hoJaxHB(Zqn`*!$$LXamL}2)0l_6_-2bnFb2GL zW3R(N6-*i(I|6&DHB))e6%3=ZhY-ECQS>|>LZUD>+5o&V7WQxRSz88y*FT51%3+H( z=xB=&(tyl`nJRT@f#yIPr5f#0Hu$`g$^-ZeQ07EjPMjhLT(9ne({$h7xIBx{Kx8(w z55Z;ygI-^fNn=EW7#|Y;Y_)@>x_fh6_eK?Z$A?)|7Ai}nSYx^+vA@i$$K0$IDzmD( zoDb9PAa`9#D8@&tqPldPGT~h_npJ}eiy7c^5(e{l32)>+nBrR8J7SiZI1m$|BCT`R zym^)^8V!%7!CaVPx>9Ov*TQWO%BF9apLhSy07?s(xsf|p+-s$3CyUxU12lj-jmykf zS1FjQH^N3Nu&V)hSBqtmJE56h`7Z=SF}qRSx&4=c$ZSf-`ZbE%XPf46xw&=h0%mSR z094bH>q6{mWQ7|mu?p@d?5<AVKSo%QK0taX6oRT z+#w2sF$X4slolP%%)78+fIum~rNVH~rw3ko)5sl$J8*3Y9huT15~ikd*gp0!qjqbN z&z;ew%WoehCQGK$H0#FIluhPN(^#m?%0aEc>M)-CL9Gj!*;NvUh6pK1b0={W7BeWX zB7bews^!$CiriksKx8)6F7#`Ty3E}!9JtJ^5=nH2BPEtQk)+`! z{b+O%xrcXYQ062p-YC_A>GG?+YCA-GG~fQ>wHDgzm#mqvu$YHhy~eXqY3JIH>Sj`C z%tgMMxabdU`8R6N+aufv+k2JjZY4z(gE0$D5a=waX6E&n9v;9k6ImcL&9~D-QE!T5 z0Fgvv9<~J{6IW6qd2QXtq{+lw$fsWFRcqb!+6u4tz>BkLp?HB&N>Mr@OU4#~Yjy>C zH8qIJU4z7f*DKNDF~j%@NfjfqR9YRR0@xoxDFTK#-tlDWAZ%yPsd^&8uL&a7E1)^1Pf%9+Vi#2u1V(| z{be*U2P`wQgzDWRWAX4h7W1%&SJ%em;Y~D~OJpU-#-*b%7u)@M=|<=v@=m%rI!F!5 zV!@%N?dA@w!)VI6SQ02^p-CIELJR{G%XF>gGJ9{F;gZS)%FOJ6!MxGN0eOaW-i35- zHVMQG+`^b4Lo)A{&jDN-WSUh~;sV@ARm`85^B8$p9gxh51(0(*$w*V2SfXJ15ig%} zL~21YAGK}$;!LTRdLvT4F`JFaj5KC5t~w4K&o^dsp)xCtGW6@h!nSa>qhYT3Mj38g zW;Qem6CSrl8It)7jpE|iH5y|wqoGl{I)066sLX0;6xZJtjT*SjjI0z*9f_?b^QJfO zE`1{ZpMm~Po8hThWffN>tgFso) zxDE;PMh!bo7KUOHvSh(8_Yvr+I=`v87$gqElj;+Adry>i#O{evNA+fvg*)$tw~Mqo9oPJ(K~ z@G$ua0K^2b`L3cPHy3&5Ghd10gn!m3et!68-KBqSOz_Xe@UaESx9XbJlh1+}i7O~Y zVOCKQilmZK6lOIQp-3un_C)z#1sf%V~WdRL%smYs5Nh1FH4*Rj>)L!V0k!K zrFVmVhn`V$48}y%pEJ>7sne|*68Zb{3>pc=B$#JNNDw^YsQ>hKQ-5fe#gyPN9fd-% zOm;TU9|~nrNi3$Jj*4k;)}B#u{(dBbgMgSow>bRn=+|>wTmr{rqSBhLg$)GE4wvI? zL!D5M9@{1olTeUvUb3SvuS|oO%=k-q1uh9zyc#O47oUczoN-btZr!n1VG`r%Z zGiI{Mo3tLln}X$f)isG*W@^n&FSYu#h$b~iW+WHSnxxC=c|*TP%+@92F&DKvjZ5vZ zGb`1bP#avSF(z}SYLq*kakUMI$dJrP{!){2skx2!6&h{cI~_JyMuo_H)B!MG+PnBW znQZOp9tMj#bPihH_PJiEW=*|$Q-lK~1D}D*^69M+y~5kk8dI>$tlJK58Fy>cAem8b zA-Eh{vu>_MT8NIxoJbYMy2bTtm|bqR>2;ij&3cp012k)*GB1|uT%N(f05zJ=Hn_a; z-fp?mYtc&`lio^$G6}GY&00>9lYpU^0DCJyJJ+!AyL^1|Xe`Zw1Q&nt*IYm`D_4g_`amAQu1qj|NFL873T1+TJ?S>Tp8D%Fmh zN)o~u2IlR#GZ-DP%#MCEW>=H92Bp^%XHYU0^N`K)A>jsrcU%2#*wC6wjKRQU2>hcR z4tqxuZgevcJ}xQJoz%0w^}iOj-ZjBVQ@PWX&l*^Zvw%TyKb zqD}N*p|LvPmDAT8(*xeVz{jUBnHBvHv*N^}#`Xf{b-Sf4!_d6ZOBSbr$c%{a7318k zuuS2nqguT&Zw6%wk~tAkI5|`6zP#g#p;)!WU+_>)UWa16n*fI5PH7k0Rh;}}>Z_%0 zg|>T{(fFFLX%1Bk6Q8w^*xKB!?wD=OL}W%p=1P7za`~^+sa)RCPKLZX9MdCz054qJkhPeS)? zl*1vtcZuadZUxA4C#_P_%F8LwpSM+}Aej@RXNQc7;f-*_G1d@*N>pZ^$YypZc{!)I z*Tok6DIH@gm_z>M=A~MC*}XS^FhmV7F4sX~VTh%hC0E#%*TM`y=EIEHLSq~6y0a6b z-YB{urX;lRPy=FojHW0o3+lq*QlD-3rUAB#1GCW2V(a|W7G|#KA3Bo>$!z3#8#q|J zQ4ZzVqYkmW5n)}NTB?&d5SfvpGn0|i6Na4L=*&YJgEB8gXC|+Bjm75j%*MjXvcc_* z&OF=(F!NL2ZStoFO5W(iL#q#)Xna9?3R~?Ef7STkI;P00S##8yfyfdH&89eU?jZ_b z)b0QaE?+FQs#6|P1<9W&M^9@RG&3Y&akNL>kr)w71t$4*hc0()I+l(!Pz+_&R zM!~xrnnc!k6G(5Aq*gCDOp9q8t4Fe0A>+s;vXM`c+AW|k5oKfyws^uos6l2Jw8 z2+qL~192Vc4C@P@pBoE<0AdE#GI{Hf&p>vGpl}#JmH?;2V+*utM!D*UftZ0?0Yaj% zZFbgqT7iOLbev5qbe#6%-XyxCZgk(x^}dF&T|2c^Bv0#N94hS3pwYUp?s)(Y$&tDw!bPTttFmPMo^ zGAH#0iA16}x-I#8gDf%u#Vp8Oq*(N_=!D)G^4cIm9hJEgs~|HBOq;L@M(-HY%P1h36%lj> z>r$y>E^78h&_gi`SY~(2Y%v#?*tQdDm-Xh{IS;X}UOt)%1M1rIAp~!u>B*=w_o@#x%Mk zzn`c7wGo*Ud5X9O4OgsJqc=~HQH=&5Gh)8X$w)sM{fRd>JOrx%WoF%4*hlGN=Cu~a zVji^PCA=#NR^o7ZUXr?eGzkSwEG9t%;|u(58(kLftZgO@qcIUIBt_)dJm5`(`sh-7 z12s}L`W-8&iOG_pFJwutlsb5wi(!sl*O)1y0%IDaB25~HXx?7lLzb#e%_3<$Xf6-Q zZ;=v<<-(wo<+9$Vz_8%6SKNP)2=n)RuXuR}%oP2R+0Qmy)^ zmoscHfAt9{rqHVIn*C0b|DU-xYmRI=(!|(iBhxxIl1#6%k$Rifj3(Q7$!=bo7a0l# z+>2&yETHO=d{A0e;-D&7Kqi<=En}vCz{l?YtIs3CJ;Ed690yLuDRw`wNt~?j3tz&+ z!($t-z5vEFSg(G**zP{yu9nwWMxgUsejKA=hz`mt+00D|cOEMZh=btV3@qWOW?+1& zHo(l~hZ~T>GBxI#DfNK#_9Env^cgVI<6h-DeZ`H<7Y+ucj}6Eo4o3O336~#GD5+}S z+$=E2uW?y^Or@CIU86u*z}2SkJaew!OP!-KaUykce?x_OywoKwlVkd-r1rMC+Ek2g zUfVe=d4|jlz&sDHJk06&pX_M~vub+hUWZ7!c*J3J>^mlOq$etTm{q$PG=VTKs>pI}qc7Aeld8Sy+ z%7|fD0cB2YTle|R`T5yv#d@rc6IkY@6g~PBdL`Yfwt9cq9CR44^Oa$@(#XtCGcLEM zvC?=u+j5zMF^}^ZdbxZ~Nl2C4e*#lz_|^ zhkb+Sva}Ca3uo7_ zdKptl=A@BMI4fb;&ZK+kD$zG%dfjQ?I6|AAi~w0Oih#oBXKGc2+H=)j2{Tk?7Vji8 zUwysTv!9XPDOk)xG1kjhuKw9Ewl0%i0mPbC%22KWnwj0*0F7P;qzp1hgC_v89nbbG zqKC&rvBsiZPTdE6tJzq)FjmPz$14$_TEwO~V=+sN6_nV41sfzT?>l|3{McBLK{6*+ z(SnWi540Zb>TTUvIVQ74&p@t`t8=Vp1SsZ+oYj}XsK-t9KGhinuv?USD_%fXlj_Tf+0dULy(JNHolr-Ghsoga-397c!rx$QgN zi;+&8OzZbaAZW~l{3I}q$WMA$bbf-7Auv2$eL`eZz0n*QdME-^DTTZ4R#BK)Ru6?o zVg`%~K??kRvjzVudz;7{75aGukJ*sZ1-6Uzt6RLdfD}~;W#)7}WC>h9SLV>iawUF^ z^&u@+pEAu_%dmVYEX#?JNOM2ieOTS-X`49`4buihX2de2X2c8Y+trun2fUbcf2(&_ zm=&I3<_wuzfLt(ZL57`wE5uQs2vimW+y4GZT1 znGXxAn(uXYhhux!8K+sF9OjIm%v<>G>*l^25Sg*?96U_A$J;NuzZ~f~g2}ANhP8gL zwui0~Yt3wUSiuP@GZzu}x7lLlkx`J~m@AIC?ufk#>|;kOkHidd%)MCS41+e>*fBRi zF$b!L!B)l2MYDR?V;;3zG0IR0)MI7HA~fdbL53`VrpcB$KktzygJiwM{I@y~jLm-q ztmJvoy~o9`pLBt1ERTRO56%+>9cE$PJdx9*H^4A<)YYra4v#Z6l0m?jC-%s402$jO z^~e#DRECmTB^Ml_Zs_M6HeF}B}iqeHZdgz!|DvA!i>r7TyQCyVST;#gS%6m!JL zp9~ABG-D%w0>@l&PMQxdV`q)oxbpIHesY5oAJ{QF01g-oj7$gu?bi2D&R#Dhm_4FLI|9ZWh#bTL z{V(tCm0HY7Z68IzVg_$(Z(*{vH;|$lYwH4(IfLf*Tb%aE#2T$R24fD4?aC z$(3RUPv!;S#^WSxAK@&`-#Qa)X;$q~w_1pijQ;vnxx-x{OC+2I^j(fi|uxpEUCUx;wq_5(mTR(N6Sd-g%)|%+#ru zMc|kXM+y>I_%r@gJho{T2TW2%Wp1R13Af*bq~x@NRi8Ek7&FBlM>_Q%Uu+5y%^ue) zqJm^rlwAt>SO;miG~W;L|NWVr!J%x@P+RXZ)*ecT=j=Jv79SOo@p*%euM$ z`gE~hJkB5c)XHGYL+PrwV18c3Oji;2=&XpIFGMV6!1jg6aI()XZZKJ3EhKA&*3epq z#VpZ8;mc(?12PwlhPeVFGb*`?%ZrYX%V9A~VxN^>oH6I4ebNAj(PNCjeEM$j$ntX! zL4ab8nA;qGVCJQFul&GF_%og_$(`7oH&h-j(P%6ND$w!6#qNByt~@|*W;BCzDJs*( z+|51CLJw~t~59PABJ#$-xVK%=CuyIp?9*IcL@55-wPXNeo|xm4!=RkHIH?}WG-FLq3Rj{sa~#oX zt~z!^V=QKgBX#)FaHQ6V%$Ni;dXu*}3uX=yJ;@Z0E|YfqBfP?OA!boB(I)?vG6^2DMVWBrNfE5Z%EVaA5+_}CWq(x+hb=NB7#*5JA5K-8 zUl4)wtK1nW7nK}9h{ianpi?Ns`rVimt!_+||GNY2KS?UTdmAXdXFRl(7>-*~B zuo!`$Fy-@OBM{-Rj$-SJW2j?W?|>LTPE_d6t{SamFefTKy(pqFQyh7E9$+@Jo$3lw z0>(_SJPc;A;{@tsuIRC${G{U^jZe=$@fpZhkOI{z=^ON=0 z;vzFMZ^8zouOC+LKSZfhC}u$Zm;5<UZ=EX!O)=ch%6O) zf5KO?nWOd~o94n@V#HM#$c&P84u`{XAOqk%Qf8uq@FSlv$O8l}z|32?HK;DGB|z#uBEW%o<{5MYfSKGm|RB z%#=FaGcht|rf@6?V&-M{N2={sE~_$Q=89qfNb3akHawwb!N85;(KVm#(bHHdHJTV%&*Pym_D_ayH#=eU|$ z`Gwh&2E=k;%!2xj=#M_Qi`j~Y=*-1NgD#>D@)pn2HQ`ln)gjx`@{+8VO1EaVWeMvc zS<=))c`2`zhcX^>r5=iJZ9P-~nJx9u!ex%}PzS~=sfUJ><(SUqf$|tn(WnEwsI%fW zE#)i?cmpc)rjfHecYI9b)Mt;=k*Bi8am>h*t#hP)LXYJs1s>xk4vh7d%2P4aG4f;< zN_#X{I9v5-#$&0{9*u8pd$a&DTWYDILVJv*RFyXM@bX>QV?5lWu{5}e9TL)2f6C*2 zX_eo0U9#bn5f~K5-sn$db=E$^m&1At26kErz~$wDW`VhAv_sd|0&?4nm)A$M-C=Os zu{P(Ff?IKmw9-7mQns977~ZA(`}xz=Zn@ZMW16?$7wC+_;GymAPS^Z-+{d?FU>H6) zVLnZHyc4FglK}cEs}nsQln}V3C<>Ahi+=wPkM1w3x1-{7iH8{R$O_PZT72vd_vhM% z=IUVgW!c@+PV?mGa|M$Hp&XCi2}aNV!(q3_u!sMl=Q{SZfB=%&TLq8l$UEKVGA5Yy z)Lo56#|0W~96Tj^6;bT4T;oW@jqhDyia9C~{ly#y6 zjhV>wjtSRPY(8}rq0A0b=TdmgMg{`gVK+b9ZXbJnPjy*J!7)uxAJK69Pd9!E3{2R4Ko3aNhnG1Bp16VRD#H46nDH-FZIP6=C02n8elO2793C)#S0u#W}uXym>!#B9^M+!F`|yi zv@}c3Xe)23n=Ws#X4^SRSue0?Tx^awQdYraS+RbV$;vG5HT!m1Z83uCY2rX z(aRhmhbhxxth6Y;7P>vsq72CrmKMF7zy8HTlf(6D zPmlU2_c2!z)TJy16w}ZQ-qZZF*sfo?JXZ0Tk*CI!U@;MOi<~Gt&#U-MH4gJJB-7H6 z^;D_Ko{HqEia1O_Bef?8rq+`xbFFe$p%5e{!QMwA!9hWqE^?32 zOlFuZmv`glQ2@InLlLYi^I%W2aUi@St6&acs9W4zw zEJ9RJacz}7SIZ3!c!$E^!K2)@E0zBDc#levdPwr#H=ZQze3;Z+{r+Nov#FE@%?N*u z+2nq8m&^$j77K!*B>j6?B{U}h!$i7TNNgXrxY&mhW~_o2RYP;4tNphGW4Vx5r5~{r z+GV%RKWGLOyJ7{6xp0Q5{CaxW78lo<*<-(SUH}GVW{l4%^BHaUqEpEEO>Jhn+)u19 znHPO5JQk#4+NMvm1TRd8!1bfgNweB+z%;T|i zSzo~Si>He0h`!*#marl`!FdFZol@u_RFlXFTZc@Uf$f~MCLeB$@wdg z%t-l1`5Euw6;F?uPoX@Bn30(uTcL@+GK(_(q|O(R7@s^|@XHyLnWGMo==l?7=8lQ% zM*l^*hZ!q+cm#~)q3BNX@CWGge3RYxZO$kRGR9<1iiDWBbpHHz<=!S!i}~d=B^+~6 z4@kJ)toQg|x=?HO>LE4;WImKTu4w6{;(%reEi3M)I1EpNRfI47&-9Ca4()vuog7hh z`N<6IRT_a}X%tDZdv`pE+OkXi$V*aL6EK59U65=cE6P#ZVmDF_hGJ!*itXjd=Qm~< zttvx0wV|NtRP-wE8)gl&itS*y-J%>>wn;ZTj#G|6F^L%YvYC+?i77-$#SW)&N>aO= zXjs9aZCXwGX|Z2^$mZ&{mhg|0T0{nwia?*rokq3~l>~a95li6yS_Y;u5+qP8fv`|D z@pQ5Lpohg#ED?%XXn=BhqE9t@*kQJ!t`v-!sB}q8H2mU7_@cb{#w=a#ODc`VTv#QI zTy75$2Ik_KVspPlAD=>GPU@E|UqNLqVDwNqAZAFVq7Of<_8;gC8NK2&Rw|9ioa`Ur z9>tU5vX?Rbp}?4l{XKllL;o0mPoS8E79Yq;C?ytES37Gd{f}`NpS=KoFHb{`@d5#2 z1{!371eM)q_9$PKAs{garIL!{$=Cb^Y%_7Kcr;}3L>{h}%`Ky-Nx)HT9*)@(4=5&T zBRxR94^4S%(A{qii`#<3Ec?|JCs-9ZE^i-ui&UM%;V?c;mx3Jh|DWP!?IIm8V@-a~ zN)?eAIRfBryK@vW57}i*VnYr_3fm-$+0B0w`g?)a&w z3qPvtym-}457~Z<-d4aRcbm0xiH5BR=&XzXy-ybyma=zD&6|cE=$BBm2j@1_{Q=Xy zv+QN;R{jv6nZIrc{AfZ;M09RN-4giSbe0fsZbOU_E+~W;<+@Mf7}1B%Er~u+{IXq) zs6aD+^oi_8jblU|-E2i;&&*oU8zZvcwe`#@IBTNr4{+d?F(Pe2fM))>Kj23bS|Xxz zD`JeunmU~&&31Efpm#yg%K&Hcv z1(y9}=UyYlsiu5BWiH+J>QiGfDYhU*QhJ{BZgF3sHTM<{&}!5wu^)x58xw0(CPsZZ zO8g8DmaTtY;Wc;r4hXD3nHGhnNc;TB>1Bn~+`2J9nm{t;U#66=7oP+F8E#Fu?<(}> zJ+uS#J@DKVl#HVEZ%!|Nse*)AT^}HJU`&(5qmvzdIo;gr+RpfRlmIfF>alOG&VT-o z6|ElAV^hpP`Y-?CXMgcC`oBNr?7#S~J-cAC$l8!s=ij$8B!MwaF5CCCvX#F)cBEzn zlSx$8k;E;$IL}vH=0ah=KnWrfCS#y)N=T#?<@hmBV=`$nAMigozr>pO z;&7{XGmoDSdi z*8lKCE=|9mx$iYio4dLVpVr9SfMksH4WQ|ZQu6pQG67^dY+~1a*Uy$va=ba{mx+Eo zI>(B%sKIz(rZ0RupDiiLkM->WoSRWZFgLwW+{Z>RkI00Do4L=To-`#o*3C3BH=ri* zFZ87_4I~C46V@cAIaI~d8c3WVa|4Qw1;zYInfTa_GAl@?Od{6#C8i{J8zVpGJw9Tkh)jsBuRJu8S}7UO zbAR(FXm0`#@t7=`4d4Y7J@Ss94LGPOMYiwb7z#i!MKU#{yAz9Q$@r7E*$rS!6IaFE#&z$R*Om28^9i7SXTXMdjmzXo5T||a6*@WSSd-4(Jv)2x!_|+9aJ+gGK&DH^1#HNuJP0s;T!?r~ zmXw6uJtS+=K*fQ^mxK#grcSCX{x{+E2c_BZRThoOq>20B?d)qjm`LL z#UWr$lJXNf=63hq5ivcmnONub*-0zaIVhGPDfiOff2TAyzTE4vm?ViB^uZZO5si-; z5s%4|JPf;+TIOK_$5hE83m*Tt#aVYH)%ZmgMq{ERJ4qhUR%GL|lN6B&6Sug$zs>H` z9Pbt$i%F8P%YC?At+Vrd4a+0|lodq<~zmA%H3MZ6jr z@0x5yCU{JixW-SfabvY28t)n&i%Ak&xw{&R+0=OTMLZ^R!^dvFct`g+V5Un4B+tI= zw>lFyI~Yxp(+z7?MCNn?roYHX5OWqcM3)XCZof~)M60N;HoKSW+poCKRIezS`w0x< z9GfLBw2Xa&jkPR@%=tGoLI>H;aD^6b5W{PYyFFRiapS3s?u+tZbGuWI_yh3V8n=d}M8 zD++jweXX6+tm)t5pJV%O@+gw@(h}L^zrbaV$`PCKJ7nf}Yooyt+==Cr-44$~y~Xwy zJn(e2c>lOI&~fC7Bi50*4XF)W(h$^z>vOky`{*$`D3O^Tvx~Rg67L*i-T!ueivLhT zn{#LSXHn=JiditVNIsn()_7b#J0EIRu6vmTj@d9dOW0nVy#7J2@0S05TntVU`RzK&2vWX8XOOMLZ@;)QAvY+HAZU1&*n(PQ!BH zTW&8i!|xR;fH4hl~H=_bbfMw-({;@X1$v(wVW?E>zh?FX4i51i7(bWEKMp; zX+j)unHZI~pSBAKxus!R(V1Gk?sm)V>R!DcpMo(5!Y|#^^$Lo_ahu17U(#ocAUPDX z;El%l3FblBsA|8_n7*072n-7K%%2=qx7TIPX5KWh*e2#rQ5YOIWXzv@-FLg^c*Ikw z-Yj}z+4}2;)%y>LS|SqT|98MYeRg*8T49@)dmz*=X^$yvmB4!-hDLvM+3f1JcF@Hv z*HxNN*=a;$9&|{}bM~dY5Xme@TXYP{tQg5PYsqOQ&K9SKWJWAlXvRwDHWx`O%7Dq7 z)M1{UoxVOhSN>u8Ufn+ek^=9Rd88f-?vWTAIf>d=soHPezNFr&(KsoA+CGwQrF$fS z!eIgmi8v9TOs$m+W=5KY#0-jA$dBC<6|cMH0r~!?t_Z$n->F>|QUhhq|CTuOApD&* z$xr^KUWY@1Odu0A4AdKv^6Ogl4mdwjNd$9Ez zODJKjyX|Uua=TjSYMME?&=mElrkhp%z^i|iKBQ`%Y4+XL|1QW1?|7W4I4L`?VU332<;0Fx0}*LYIms@ zGZ0l;?ok+ zvzhpT_F!QLGO7g1f5y%7>$pt(-w?4LM$HtUZtk5_wwxdB&KI{kox6lB8 zlhXR4Okw&^Wk%{i7?lPDl$}~lgEA;)!A{nUrKjtelcCJ5G+zSB%;aJCQKMOKKw@y} zB1j5iA5mUxmX%4CqDq+oG8J|l=r1H|vERX5=Y9aC05dfX<&@N})>ZJEE4dHkkLcV8 zvLoswr!REr-V8%XwkoBxfW+XG-(j2D*3HzF4bA11>f}6P%+Q; z5D!Y}N-tz6hNpp_p0KFcz?=@&ZIGZb3C))2&yRmsr8*!8RE}R{UZ#?I@f{T7Q;06w zZstXG?2F%@sevB*fr^R2W9Lnb!R@8sPk-CS6h1ApnOdRVoXk5iC}yE3NuS!x1~d|L zV11i7P@!61FSc~eR=4nnaq{cM%#9wUP(7&3O;#^FYMj-TH&Kb|&5MiEmru_yT{wC6 z;>~jvIm~Hcu`j!TV-a$yS3l}I?vA7)IHtmKY|;$WtS_FQJX3O+9mp`59m8PSl^KeY1?FL^w zdwp@LWIM`k49Ij^nXg`7ytq1f@=VW{k5XoYWJ;~f%U36-n(ioNdbm2()x}jN*-=y; zu1@vl)vJ~+;^CNzf^h5r^B*sM_;G&u=Jo5BKb&M+tIa%hs2k+Kf&TD!f1+td(f~Mc z55GCXALQ4#EIpML67ss><_h8Ovp3S(5$ zKpp{^F72K8+A@$cT%D?ERK0rHA62hjau7_Dup^>s1guNeH11rz?2kKFFPp|4hGVH{ zm&MzQ%WPyfGqB3G)&Rr6RF8bS=-GW@E-Wn6?h}Q>1T<;;ZCJNYjc#V%^(hrYDfmhm zdn|mVj{Vz8ab+xgR$ZZJez&;}?@rIcqv-g{A-g)t3~v74Br}y>Sk@c`bNW$-<**t3 z2mP;{*UUevyagn4{=50BudeWcTEs42FE$Gu?`Rtni~bP`${eXuQJ-?e!wAxodOt?hn}DoM@uN zW43=A+2Ha@-R6!z?1RQdX0)xjq#`ip_@5QW+w4S+DUCrxc+5m@>z`sB^!Ne42g@4IDqkx$8Pbi_CtiK|B z1%i7OG)#hBCxJ-=2>}+gQUdoF?o6|orSM*s;+bx&8_c1+T{lCHq!&falBUY41V{wI zG(rA2qs<@-y;tT~d{Pv*-bKAq1apP4E`mc7Igo&4JQZP@FyVNTX2K0KzwW+%-fXXT zrEum1c0jlUSmeZs-hTFq$gTNtazyJ{bqfSSJZpl z*~~l_={zTc6FY}~lQP{c9=XSCG|^-C_CJWIqPsPY?HvghuJme>_D9CP576&q>TFgPFM&)Tg){S`-<=NnZ;pif!M9 zzg3FPn>woowf3zD!%CkfKI*{Mo*$>s6L%}LP`Y3HCSY6Ylg$RlT|acok6BV^I{Q2P z%a{~K9C0-)-nzfiehoT>KKrCXkC_`(2pCE@{sTA;H#bOZ=>|${mD{i0A2x>_)>m;z zZ#P5cdRLSx%oD`#9AqNg0EILKJ!`NjIN5fmWtshWcua97JL>Y0oB zJr<6zVqNS84c3hxXN8~*38Rp7nq|6oRX`Hix#b62sd6|Tm5twt7V+)fmzuQrK6(Qp-X$7(hOwK(&@ z(3CSeZrY@Vj+??-lJ2&8ajmJO{~i{_8sN!xyTCOJm-EXjY?}IEM(ctL`kS(=SxAz9 zmgGVux(H0396!7H0cIouqPT5O<|bFU1GrG5t`MnfQ!R6`OPX2ZbBIDlfmh^=Pu0zI z#os)|U^D8PIqEYB?PiS?z?r_$(RQUFr6K|VQlzZWy;C-9N~e@cQP3})HdShb6)ExH zbyO;Sr&;a#Jt{^NGiP~NdSRW|9yDr!FU_Edt+-V2vl-2w)_S#Ys+OouOjjGxUiL{k zF@uW|D0>qn_;utS;^RCoEK&0`j-~=RZEp9bgp|<;p>wl$_@8Bbwo^C$XR{CcyW787 z&T?Q;ZRlOQWK5{|l%3LmQ1+L2vIJ7tP^%^Z@refk9U9HOL8On8ClC6;RU-}eTAz8T zSY=*zJ4hLTMZjKW_|5yhz8ASIGo><0wJbBXo=hk(*0w!uZEQ6+!Busu$J8*|?0lWn zFFk9gv1<)Ar-{R}7%x)!G1RqA>CP^jR;l#(8Nv!A@-*x2^ZjD0r`=76LO5X}IKqoeq593}H{{XtWp zqEC>v6s}N9crJdD3EP@jhFs37vc!4Zkjr2qAFXD&KIqaG9iYt}NY#EoKmw0x99@l- z?xNEBk4)F6ZBz?&6`}?dD%8^D3-(OTmf)oe^VL9LCPV{t=|;?)Y)4PwtUG=GZ7VXk z0!ij?|F5h%n)?w*6)~gKSfW1+Z>P9~8QY=LAzNF^%$k=TAtlQpg%D#76QbTp<*M$> z9%gg@Kv``(Z3GrtR8$h$r?_jMu3y<~tITGv?iCo!5nISHASC2;y-t=i?_>e3#q zWG-Zff8I{X0k}s_rY&~T9A(&?6D3~O?ZutD^}paVN2Ff8dc>N1%(a=n!zS*JN~e?X z?Qm!6>bkMtTzFIwFo_1?)2z_ucrVS_Fq>u5QRv3Xa_E#wn-7R{E_RgBCk@>$n);wb zT!mC^SQ2L>mV3W~G=Vrt2ggq0X`*NZ7XRp>^+8;TIlhlqXp`WLuQ9+@d&BtPt*}LA zY(!%(RX^zS*Vg>W-~s*@?FWy5Dgq}#fC-E4GCm08Y}%!G%m@*=olE7zMxD0SVUP0U zoE8O`(~e$E@CltR#GCubmiVVhm=ho|9m6BxpV5z%{><(26?g!Z;5dQM2E2>Q6u6V- zl;okXxzTDF)9y6%vr=${Oq+HCNR)!p9Io92j>B%*1!ZHJo}x?BTd5qquWUNN8#O&a zN7;oQO``kdf1*d`u#ti$B=4{}U3sNBqt)+PWtbui_2)ph{f^!Za+S0B=H_OHMy2O* z?U5chNiS2V!bekF^<}oy)95xd*m;}K@M%Gsf!9Q{qjH~U0a?VOnQj!1c{35)(a`{3 z(&2>zTxNB9xYN7U+R>uI)I&>8J}R$iM~bD&3h53HtqgczEpZ*>a@$>?6*6rO!Fq6SE3if-9ty=aWoSXuzn2+U_pz|7ICz zS#l+CLWQm2LPh@~Q=qwM(?bI&p-7}T-*#O?X&6qZP(Eg9UL5Y|b1u-B@c?=YXhM|8 z^mehO{I!*Z7*42Y8cWWAoa5~7e*blLgO@jojM-cxsu+q9g$i})oNBwM|}iPy<^Np5Q4g&$h0*2c<+ks*86N zh?V?PAa$y7QhCJEO3c*CN(N6eD`h-lCI9!PRtk`!JK?%`zus)So^EU|D_6U53Mqs* zBX;T{2yQvwc6V5rS={=MTBya{lY}=JVQpMfk2q2y-WC)%*%rEHBRfY_s`zxOdK8mY5$jg($*b0x5i9 z-m;v(KwdLEP}FVawh%Y%}+LS%*((vbE< zQm^5TTuSkcGb-~rR3QxojGVN{e_C=Y08`R_95}_K?R2*{zY&hma+Y}&!3%sSZwhI!f=Q% z4+vL>w;pt9hReO(y;#^2d`d4{(G^*n$8HzVS8Gws%Q1z~l|TGfUqI4a52&*EHpy6uk#>nfVEf=cJ=yHTUIxedRZ?Z-^tE5D|goM8ctC~)`S%!>1}(~6jfMV zIf0%&nx9g&5+$|b9V9adR<6~fJ`quc%>_aC_Y1rkaIxFqskZLg|FlN^!s<6e)Fp+q z!=<9q4*w)Ue=E#@Xtg3GkT$q_rfUNXgWWl$;?1moh?hWxD_R+=c(@Pc6J3I%%VK7T z8X^m*!+bhEHRW@Ii_;~`S5aqEMi&p6(QSyWtJSoIb{!<>A8%Aasuj#tJr6iaGu{`{E15nikrMCEa8 zEPmrJdQ$eDs1ZY|sGP8ys156u*$d4gzxmU)BS4mv0JBG?e)5ynWZ375{z4; zP3AQ2k2$t@gYWkA@345;Pi}_0A##l@)IQ`hH5O{IZSrPuxZTgoEl1|qZt(+Nh<(>j zi6O^$`5-te3~^&KUm z8M`fyalk!3<4Muez8xikb!98w(TWAE$f*6s6KV;Y(#3ArA9o(G4%Hv@5?GOuHv9WH ziBr4xUuVm`zMa;b3=g@DgA^*a574!4?p~ZMxE@fe9}v#JV#!w=Byyd7!E=3WS7(_H%(U=fO(5i9_NoG!uzTcT_N(7tyf}Y3h3p<# z*fAN1nm>DXb>iIq>B;XdGjj7Sq#?yCVBy9(QiVJ5kGu`PImZ8_4Jm=N1yh4cTfC|A zW|;G$2dN@pS6e^}Ce$2UF+lNlcAed_c8nip*usygsc0bk&FsVGpwqG`8juE~ya9Ks z^=KP(lol5+eutB)p z-ZEDiO(ty50~A#0*Aq7A|FRWSi!>9q=m9;fh&vND2dfmygD4BY;i$X&5pRuL_fNYh z>)QAV*nfBE9-$BfV1jbZRPOkqU%P%-}Q>?EIR znPn$~kRXLGo!?zuJfCD{sc?sx8_z6-xp!tMzeqCg%)rOYENk$hfplh>{IK!NGD99_ zZ$7gW_JNtD{HFQLGD8;GQSG8$=8JZDz0N#+Q}16MOejL28mJ4J#nmAmT^~Y$&B?>5 zT9N;m`zw367*NCt@oCNcccoY5}dkSFSm>SJt{A_^6@L1`+VCr-ph zb>FlZvycQ%MCbIlTW;qUJ2>Wo?$BB4nWbIQrhl@!SC<3gN+7`$MN&fN{*DEKQyeMX zJ@57(HrKN|_y5$y%`Pzal4@`vry^gCeE&6j$*DcHGb!lvJX}h?;hY<@#duSSR(*P?n(zJm6lqo+uYF)_rR;)VowPhvs;snd9?dHo@x4L=< z6+ikkJDxsD-kVl{N~`$U@mKwnWC^Cw;qqE)M@TR9c@XnHkqU)A2|_uip!>W+Q`iYi zp|T`fE~Rig_BF*QDF{cG+xk=$M~8+$8CO=k(Nkc#S1wqLB)J9?f}#VhkvevK)B z2@6gHdC{0f>#hk0ZX*jE*gc~0e`PL+Rm_h~DAImx;&9kVyKq7BU7;lNMwg0`0+w)4 z3Qp!{4lP0p21+s#hOn17H@Kb5mC6cj&h`*fhEeiqx!SR@jgZSUvr)h*Y{VQ|mN7QU z8Q4bQ?+tCF5Je)kk@}i-pD{L4c)~^*HhDz&`qOIv!5siCI+UFUmQI+13MTl3QMAUfT7As|%$O*q@Pw@{U9QJ=d>l31i!j{bFKqGb3w zvuTL`mM*N$lfE(d9!T2HQ}mzc8rIUa)|7S$-R(S;NOa@c%S-S4-! zG3xPmcK6BaP=yL^l2YX>Bj$kmFcu6&2@3*fc1L?78rGYC^jn&y!kl?qjr_CBPy91^ zqB!ItPNd!k##<4gpGBg#5Cf3rO?s)sipxNy=Atw3dX}tn9S9`qZtVSMQa5 zLDD=}-mBRfyeJv_#{1jwp8l!w-HBQeRFAb@(ZlTBVy6og=E_o^22xlNyhd51bkkE7 z$L-ouVhM%Jn`(e+j88YqQorVP)DO{bKo>O+G@#J-Bn?2hs80je8-4N6B>V#kC~QAT z15nOz3ZQ}L77tv;9tL}=&TXED=yiYsTkIc3ju*u*W_vv&n1Z}tbOiRvMGxWq6)p$D zu!&;fe!ly4)CJzAT!SWL%+oJXj zQR;3^9fq;2WixDjUw)k5cAv86O`G$F(FFY1($&rCGmg+8+u9YWV^)ot}26Z0TtpXb)#MXN(iC=$RAa_!w>O>Xx5RYx%g!{i|_})$5<%thL`guC;}y{%dV$;j7=Q zp`lpohaOkrsV6a`3m_3$!VMNaX=)O`lv`(8(uIOjLRTgzdOg^@IwIIqX{0&0vSYA0h2KxtlwS-tB^!pr z0GYnM`L?x|vOyS!oQHH38dzv->Sq1&AW#ihc@y;rHhCNW zpw0h zs1r9T)HGqL9~bNE+wK~3=AKpE(Iv$SxF`kNI)YLz?(R2R|7OYTZuedldCXUv2HYgU z6;|wxsIV4A)Nez3zsL@1wWh_z5~Z}4hj&Xl1lY5P`QnJakZ7D)MDw`bXrL{*-KT0r zsPVxuD{U=ra{co(qwtHVnh^@?qzzoXx!oS_U6Fb9etpmnK^^6o5n7xf6dytSVuKgT zi-GF@Il>7EQHa7yI*9sG9`ls`K!geT38(0BDiX-bsX;@wIM%*itad~3d-Sph)Rtk3 zV&ilqY&XOmF}uZkz1n(=wArzjXvn}<_)J4G9vi>n_|}(a{OEhNU^>2MC~(m$cS-ei zR(aUCH8Dps=HgQ{AWR@D4XC;M6fNjiLB;i_Xh6RkRJ*|xO-MSv--}(3=cAWE$h_Gm z?=aPfUuqkXS`vntRYKS|PPSxa&2Crw4iDdAPPf3Lq`16JpBEgx?Z`bD9DyaaP*lZ4 zb$+t^<6*V!u0Cw(0mnT=&Mv(+k66)TXfrv_Q-TU5P5+6K{)3+R#w0^k{mkh<&LDsN zuzLR?V`DraBG*ww?{7En7PtB|X)`uj8&qt!m^w~HM&o`;h7^@v!Q33y`b3#IEjDy{ z_C>Ur%jYSzG8@uShsY#c-fnh>t zZs`tu>d`%c6}4uRFPsURQxdFDvTohQ8uWTSwzzK3q1WAPsV!=*I`>$#L>6*RpI&#k z32fImeNvzmO1D$IZN?V%X?swicPv~JKtor~I-nffH}*`Q;!c(R=q^;K*)DXXiS zIjRUt!9D$Wy1*^TIp?^QsRC9=DXCLmao-``Xq1UMZdIlNEW{Mr)9=oK=?;LLdR(EU z3N7T6dC4!(Nu6~u!_%qWk@gL^LaJPfNi#h+rle_5DyMg;B{`Pz6RRk<>M z%?;a{v=BD9a{hklk-kjgcw`Y*b)xt^7q~sK>O>%(suQKqB6UA`lar&V--=v94i7s= zqU0V2IKQ5~JKWrKILE0sxS5yCxLixp?gUVHkT4~Go>7gYyV2J;H()_%NLjk|a&tX_ zFi1-j&33!VPPsOa1=oJ1B<+=jS!_yxhSWxrpu`0ZBSY&Y&;#YQcc~)7cwA=;eL4rkeJTo6X1B2e-9WA3QbZ z_Z5jUT#*b(g5!0y{g?0lfLZ#C3JN+&Fjw;{j0vK!aR^Ah6;rcTTpR~dE^W6-n8N0= zMoi@%wrH)u)W}j96Gr><+sy(u(O=G=zI^lK+1c#=>ka)y^7VVu~KI#Jgyw;r@)&{RtJ=Zs>ohfzXzvMicOah!P_qI;?K@ z^g2sPX09^2f0CpsIi?V%lDVxeCD~}n2v3MmS`x{A=+@nKK@Y=~Z01^RpJ)Oql$7?d z;6M0{H5EcTspv6WfD}5)V3_V1F2Gt<$m|@mhs*&A73xNj3X{?o2luj?Q;qUUdotI@ zC#XV7^&*ka?HsBIXs7Ibgnlm)pH-sFlgZvLYK~$q%s6dS`T*cWCM^Fbnxah6geCQT zu!ro{wNF`VwC@Y32$lvC`C1+zY{=+Tx%sc%8pVL>lV4^W+2H}iBn&Go5zKXJ^{F-k zGUXcLa)5P0TrxSs{>LqCeN?71N0}Z%016XTX|SqG8yS-4)Ubi|_O`g$*<9tI^v@CqBlw5miWOj892vM{6dkJx=u7ml)HLo+i4QrQSMaoRIJm6=79;w=V%%?Fik@dMdVv;M@+`u#}sRtD~Db6w_g`*|u zKE1oe9)iO^Pl9a%C`6RcB!8d1uk1~3#f7~lDHmOd@tecq*6q$J1T>ek2lNSzrQjlL z8kVx(R0W@+4LID`tAsy78%1(5MI&(3QyPJhJPnVF7%G*+9TO)tg_t7^()uTP=bC^V zTV_%faFDKT?mi}*K&}8SVy7`Ie$GX1Oq%vRkaA$<2ch%|z%fxf0T+qW!6Nydi`<$v zGx1w2Ol`K5XqEf1%q<54(FPJlXpuSX=js=;Ptp$6!P++g@BLxEEEN;Q_K()(7Vo=t z96AI>#KQn3fAqQeMqh(%&Z+7IIxR2m>c3pJuDQ{%z(_4Ne~pY0d#X0&^gB8KX6W`@{DoPRSiwqE?mG`wU};K(U+%e(tmzXlfJp8Vh(Zk zWuFY>>+Ung^CrW%0v6Z7)F_w;6*m9hy6ueQSEOd?uE%>5P@#A*_c*c23{EXfxs@vPFaIET6z5-tSE#^hVZ>m;r--5cwdnJ_5HMQr*Z9HD| ziV-Tl*S-PuUgs51cwl?_nBo*35JGM>^t@;g^_+~^lmWMF_n9L!r?$W{RcrDA$%o^l z-Pp{SzbH0UTVm4QXQ+z1PSqH!e;8&eTz9Ib)I0Et%@e5OW0@t3v{yDwauR=KWOImX4%?~o+RE|LUF7_i84vBvdL>t*-6 z+ke}r1g=EdpN#mg5t zy;&YG=u>QI0?lM}6I|IouY#I08G}2m;nUbd7kl4tJN)M*T^2TX+d)u(r9UgTGHtDo z+}D9cTBq=g`YCST*mpH*)$7uPTz;RqtW;04?-2wc|Gz zPiy4Is@(w#HRaj4yjk9xVWN<~_sgcz)uRdS(zoj~C_%SDIT#<0e?5ql}`Mj5nZwo;>sJ z>Tr+qcLj&Jf0F)1E`|paInW0jiQmAeL%i7sD)@TiB8%YuTHAAK)~fm_^ujjIOgJfM zB)zygdp=t!mo-zM3JXJtrcij(9Q2Q-rMbNL{aI=DvCMN1l*R&@$WqX>v42jJsLV@qyZPK+7-m6= z*==dK&#gZuet9ra7>7vaXc2{nDGG};kb(mwW#6}*zR1Ab^+OHH0&tpevlU*WY_P?p zOGW#~bdLZgX5iR(*)BFRlyGq0;18uFW4a)t2~8o2POF-5h$u}1Betwn17rAmnWBub zyhYN)y>gO7Uk#%#SR9&|9tDVJ=uC94pQoXut`KOH2jomlbDc&Joea}{P|+{vG8THF!msJf|eFw`wq1TVK;3-mHl|x6?1f~x0}`Vt3CGa zlrB8Zu>zn7Nr^oPIj-_SJ}4_D5l7HzbQkn-m5&|@UHM=h?4YS%HZ&%_Mlg|w2T1xv zg3a`mMq{E1LkS0u7W|>YV_rOPTWT$Z6RuQmAy{gO#_BDLl$1=8A5bGWR%#;iIAD)R zd7$Lr@0j*PMF(}kH zCP^w_MVr`KCN83h4@#qLS+TyDuqGp`_D*xvr^h?ffkPzKDvq4gkSw5>OS%u>C0OB3 zJEDv&O21<}Vm`1SR6bwa-=hOoSC&kgJO7X4@S@N}AoL9WfR$2L#QoUmr!37gNWD}6 zQOFQ3b243fX-9>VI2l#w_qlZDI;9>kO?#1K|GugC7m24 zI+C=Y>S;hB)*orb_frHRwLUEChJ+&9NNjfWE= z)Rdktw!05_&gM0C#n5$TJ|m@El5QP#&v&cdXP$q!^MEs%yACr*Td+w<{Sv8Fe=E$A z#BeJTY~e>yB;~jCU~kDA(t}2qHeiQ-y$zu+UoZ9xWsT?7KA%B7#8zZsAKUZ?+mSC* zPSgw($WYxL6=pfoef%gDIMj#Dt=qxSFK2 z!?$cih)bm=o{bJnO2{lOCF51)XH{)X(-4}ic6akr+)cAt&br$j4d3Z?U*_uiU3a(H zeoaP6ffMJWG(i43TVu1b-elN<%}%{6 zRm+T(BQs9u`%onka~EW^1K2gbx+nonEK~C6zS@e1?NSwHoLxMWNRlyVF`6)hsDoMV zBvB{D6{$khNx#inMV%B>2)%pbxE4j%mv~u8k2&TN_-?;FEcbYBeW%8@2q;WcTk7aw z7&C3&{b9bizSaS}Az>5^lD8Gj1Bz$`ldfPLBU8o{l^A4duEdPcj~Yl_-mbdOy!`M^ zU+!wVQM?)bdo|eGRRI?idwC(b*9F={3;R`@`n23(rvQzuxOvjy<^= z*1jT@H)0xCT8wqSdmomZQt4OD6FKL~B^P|8o`rdXnB7tGyZYd)Yn zqkpF~Y!{oeBiDh65rvGFu)ILzd~(#eAT&1w(7)JRrz3|GAw?C^C?S2mJbQNDPC`Z$ zGB@nIwp342KVZ^U6)Zi_p(%FV?Ts>43ko+Sa8g_XzEsx(a_OoVgeIz@HClHqJ1#b! z(=D8Iv9S`xo_Y9d-Qzlg!V@McqPj11xhXp(p6>~lsOyWAZQrYsDrjM*5wya5=l-T- zZAwewQ)qGc8eyF7K-kYJ#P-To~AvIPL)#U8{(kHK0&){zxSd@CwSSUpv3!@HfZ*7c~5`$utl5B!_OmAe6=V(U9g zwC!+LO_8J6#oit+2Pa07WN3csK73aYjkQt06DC?r3^oc(UK{hp{c2uYOl(CQMWhSE zk@PhaG2n@av3oI-7g3EJW5vqJVg#q!5yZmDt;_pvSx7fF>(H^+4`w@%D@nf* zap|)5&Z~Og&;orYBL63G-Ru`3eD=C<>xRT!GjB+t{MOVooAuonl@sbj71tgclRToR zJ9Z=bKo?b2xW;y)04Zd#8{rG>uAwxbMrdC~R(GldR!CzWlzjC`T8(;aB2s`$1C)wi z^hkV!iV0H4qSvB9^rc@?yL{iPhtjh!i^(83%?ne=nb zd`)SwxyC=8J3o21+uRs(^>KhCo?z^5NpQ#>H2!M`MFZ1Sxf6be_Htk&PxG*6KTz*2N zdCUn>k4$<(gko*rc)I$85juAPGaKk(@o1v9l14j1BbunObKGmY&$|6sjX5k41<^Zb z41eEjA?S);Ue$fy%rkn_mOxsBT7fMIV~@I6zq(y4I}`aZ~B){`PAwvAM)NEU^X`$<0P+4NTJr%>6P= z^yt8xOdC1~up<2cv6j0vF^ZU4;+Nap-eZ%H5HwzHMan9fmaiQd=6YJPSDVkc#5n7| z=44^mkPcJi>!Z{neiO=HsO-KeC1zq;v9CMYd5)bZxpK`-NyEw&Tv6~4wN`R->LN0~ zo?Z6$nfb_!5{M#eolXnckSEdkr&gs`h7+N1x-EE1 znf;oVq4s!4lJ;tNt*r*|QBSWnyH!IyF`Vcr#=2@QJ+>yMljwp(D{LYXoiDc`iPIg) zWb^nlcDf^gVw)zRHM=|O+as2hO&uem2vw)krfNtR^Sep{K6ddh z&Ac-LEl3Ljn=1$3 z%z6KELzy*Q7^3)cXkkWOvdX;K-YxcXx;Il*TAK4?#l6Olm!y`f;@Xqu>^*wFFE(yA zXGZCxCO7sYPpfY{WCq^%-5wWqW)CYp+KD}ixRQt7d1!sG>Cw<0r4Fs1gE|%(LlzXW zTi;`U$Npw^;~Zbvz#OuA`W$156d3PQs^V~GGa?LGifF%`Mj%98;=yXl^6q}N(}C%Ng!LzR#35HWK)d98;E9fN8tp{QXhH`UY4V$jnh{|( z1Y>>T2vdt%=4_~^`w6Hh4-;@jR>ZA#R9=D7gc%$|MXq*CK14>QPx`XIc0}ZQ@BYv& z@qp#!>BYrki?kc}Z1Hf_6^>a4y`g(QrBTK!mu_RDCzo}W zV-~HK^w08cOISjI`btVc|6qZ+z0zF+8k)Q$l6?F;g)G>pmXPqV{#jKfvu4z*I>r?h z#%M>H<LQz~)~3h-UL=p5k0kdOdDP^#(@FgEs-JpHA;iX> zMCw3T9J6RfM^laHwSjJvMV4l4+I>CSi;c5qA)+~8_u4YW6}`q0BpNbM=i)YIrm|YD zV*H^lwK;GaQU_oWyQXm_-(+TP&0SMD?w^C;6z5g^Jyzu&c35i9+}zJH>H(p1eK!_b z2kGG3C!qJ( z)&gouogLM0bvD=4{Ectb;cc@N>8Mf?10kpyT!*Uwg(>mN58d)(m@I6vcxN6y>6s?D zqevc87?V7K7~>RXrZ-TTrw7o;A=(Hm)Jep-?H1dgx&`QO@OXyP_2a_qXZ+(W4php5VxTwzUJ(X?<-{?w$S?5N` zrOUbXx}U&_K+$DDaaPF4)w04uCY-q#&1tRO%6Tr9Ad=UWDOJ+P3*F%6;y(oDZi`C_O7pVL5YPBSMO z6wg75bTK^u+naTj&kV(bd;wG#;{@S{Zrx!i9CvTHk+m39&AC@kWYM@n9LwVR2U+lJ z%o-~Tk=5Nds zuEZl1oii7%g&$1iS^;`c*X>;^XRYblu}-0D0v35=dP3m}d0n1!ne&?7VCCV2>8~Xb zBBm|wn>sNb5;BMPo~eI42~qe|r>{iRhe~#Nc*4xwd2uc`Y z0!4p*vDshT-Q(@X4pR|S4OG45Ayx3&-jNbm*rVTET+V+uEp{ZCIaL2d(*X)m+!f>A zZ^)+WCe1)`nDB%qk%yj%C{95%BZ}E4@xNUl`P3C2GnyD80aB!j1rH`G3M|vo6?$w* z7t@4`-GzI7V%g2|!NA-h)6>@?q-Zn7k@#`80G7f^WgMgu$|su*7U%RSJafs)mXlybxdX&n!L5m7re8>$E4npxtYA{bdddoB zfiHTGQ)2o}`;8j`Rrq53VLlyA&G^&fS2oWlm1MQziCIZ#!6Z{}g)O>_DYN>X4d-L0 z-U`#?)Y@&!8IuXL$rbiKc3)drlkh}3<(-bHnRgmIT7O4)r{amD@Fnd5(87!zg$YVD z786N0env1hkpz<9M+vAtm=TPXfS`mSdKdk$%GrPOVZXoM{g=Q0dwM!(cK;QxG_Ply?fbv~ z#osUgGadl^`xWZmxL%1+XA(b$h{O&4HgC`?hd$VxmkpYe(nw>lGWhzio}aA0(n0tc zoo6q+!K^FdrjxH9R_{MVMI@L)h3Zc7=h=;}hcqI=z@LzueLTq;inCS)>+NH+VCVD5jv~5SR0z8 zuYjg>voETSSLuw+xKL4{_39G zvd{UPx-scrRpkw?S{o+*$*NjBNN7hOlB1SXQF>@Z(Kn}PL71dwx(_YTL&>+H#|0yG zryDtSOe6!eXg)*@{WW*Fwv>Na7#j^5a5!^|u<3A&FH+-7Tjp>4lgeJJ3HU=PMr*z5 zY!i@&{N-{*o3bf@*Zs^~NUN(o!iu&-{vN;N{?(2u0+}$nkG;~^gIm*jCuGm?5ng15NtU`R0#0j{tD>ElQs0<0sxx)n3v(9Rn z`^f5pM-&-36#IL4DwD`IG-1*c#3{4&HY}kkC@lI`@-`eHKk^)*=M}wvP7*0?q;-!*MoX^6`q4wC7e(hbSrfT?7AyjzVs`IH*X-7v$VIYF{I=x z5BW6ZRDQBK;LwT|@F+haJdqBSr$jnpDn)C@mU<;$>ZYGMG83Qy(*;D4t;VMH*pe;P zBwBKLyTT#Gl|HF(jFT{?h*u}n{jMot+Vi+InPWEP^D)`Su=B-kKf6=C+>HGLu0n94 z$bv^ZNi!bIKBTWv1Li-RUCl49&YowFl$m$K7=j6|NZ8M;Mg2z1mlwZ3%N(Z(GvSKN zNQ|_$Nz<1Zty%uHRP8{8GmSWW@khJ(mS6r+W7GCLCcfotX}H0+=JAa&MVWQNcJZws zOye7W%>3n;_{NYTU>bKSVc?j!LvZ~(+DV%6pmZla?qdDwcCn;ArIpn4n9i<%MZ^JW z?J(`BvBZ^2jkBR067HqTw9@iU19p!sf~S!^s3x#$Be!QxbJUCVb@wIfD#v7v4o_rE z1A%91o1ZD~F`>zgI_{@}eOzd}f;v(453q#FMuCI%``hIC`o!E8B zZQKE+28`dSiDeUDU#`^EO8Xt>yu}Vh+U(T6_m#u5FW66$y~SvrK`k`m@Ew$pV5=+X z>XcrlKpj-8W`qQUBjBzB0vz`!ySm+C{WYgBpNuPo2x!8>dSaIRh;{=C*VFd%r>os^ zu`PY``$zj`KoS`;f?P|-69iLG4Z_XGo0x*pM2uhxs;RpYdHz7)+(Bg;FB#IXU9%CmKHK8J=xC@p~ z3qIFOCE2ue#fg|^bky&2ZSMA&Q%=m5xnnan>FCj_biAaDF80)K*jJL{Khnigrk!ThoHb2RBu0CJ ztg|=A&op&BJ{3Hig5Ip}@nDd5brp^6Sw~Gr9!>&(K~tEb2@Msdlr*_BPsEa$r3niq z@O#|SK$GL=o9hE+;kbfSnZ}IncmChSR89kmd1zeLpJx7_PD4k9AxDSjvHD~)YYcVS zB4R1r>+Wvzsq4|DnJm`%QcPhC@*Q^bv+Wj}le+D8ez((4_nJYjdc6jzjbVk30(toR zmt}YFUQpb*KPdB=i=l&zj4Z5)kY8}qc8C91Zm#wF@TL)mDU*A>DYx=6UhKS5D-xQ; zwjsKJTagc6NWu!C=`;o*V1>tq68gu5jcO|=|(^pZ27+ZOJi8uOc ztJc(%;bk(1YxlIsrt2Cadr*;>=E^;^nZS*SX)#d~U*HlQx}XiQeWzb#JyO>UEJ6=( z@9C1dbRn}fH}G+sqLLYl+k}30ah>otwc99!z{7#2NW8(`tLXCkv8LL{EMN zMa>Fr*_FqKu**+dEFAX-8}ne|F6T)A`?z{S&3LXf(!e-ZzrR@DZ1@P6 zUbZvGQ*zGz>aL4nAcYf=P<~1O?)QsqG?!Tq8RpU(N6?S1K5Vc>*rbvinDE){dDc!!CRTv*sWlGeUNZ~<+6896QlxK9W4ZXjJ`rOCeFVZ^fI znvrRU?MqCxGA~BlKiPd4nL6e`%vWJWs6K5K}{Jgkt ztYLx_IWZ;ma?Y<^P@H22T(N(0RBufHg-z_4e4M*2`UU4GwHC0#EP-kM9$OY6WDo7A zV5l)GoVy7)6{c{C-_F(d%30lUk}6bTjb60h?dD4i?HFG3y_Dm;C<6AddB1JQ<^hEb zg^kcds3|wwu9VE2Sk_|CoZ*BC8GphAKP`kZ)5=~Vpb3v;L#_!cHdwhg)lB+&=_07G zYU$ud4W$E`@K84E(lRF<@swwP#_KUVwz=yflI`ul`0 zT%oAWj?5L8As#(9Vlr|lVnu=YuvN}v#?c-!MijZIr;uFyVRpA#A09ge8%?&OmqPSL z=4O)7c%&pl<$F3dil-?Xddm6c7TdJ(AIfs(B+pQ002TxG5f?7gnwavqn#2_c`c~8x z1GlEevUgSLnsc@0ru-GvgU-K*Jg5Kuady4A!`T?+VrC@DU&1X=#k;5z6_odny}{|> zd^C|Q_;&PcU%Fh?P(T{L6T&y^eVYg`2i~x^akWRa`iOVvE7-rd&=(I3{xya(hyxZ z`===EE?-jUgMVZaK@YQIMKMMSN1=y(%Dx>BtroJ{K6~}evzok}YgD94a7A@&DVieV zkOcCp*d-Ys_7L%rs@;l3nPn8L_ns;{#<=2n_*$4WCvQf|iT&U{QnNojCNxx4T5 zx=uS8m1dn}m``7VuVPR0<%K?brnq8L>>7@uroX5ijcH3wGj-9jqAoPumY4=NCU#0L z_{?20Jvt^dQEh5e`tZ|g|KSOB&xS@-xWb%jR{dhO%YAsPW)-Xub4>c7TX);l^5hoR ziO;avtGm-DEXD-E6jKOkVos(^KbE`Bo6%8OGNGeHwRlW=%$O3IpQfu7D!kRL)i@m$ z`L_zLji`7;#+1dqd|vR_6MnQT%PRtyI0g4_{M}!dUa*Ym-;5?SG}H6Wun(v03LZP< zt4ibHgouYDw7`FP^7UzVQ=F4D%TLt2QgsQWFvfnY7z_EPq;wmw%D#LQrNa~{6K8a* zQ-ydVosqzVgi4jcOMY`$+}4TAO(}KLF`$qo5?$VIaF`GOp}O%%i3qHhq?OtfN#cQ| zzNd@*!cBOV*;BIS__gsHq4i7zJt;*M(YUAmxY(UzqrhQ{hmidLS6Uns3?rnlv9;o- znV$VN;^9fw#pV2m(~M%wB+KE56jb;i2fx@|9^R2J%oa*nV`89S4Y24^1h8el0o1*u+5<1a2>sMdH z5tpY}B)#t3ndtec-^7ClC}5_wK5+ir+E7rtaH^L>?2KKx38wI;hvvKB^Wl)Q3~&9*b>hmcB%Il z=me?xmhRWkCAOFCRN@Gv9oQmP>9^93vgc0LlKRksMTE2UbiKvHi#CSaklCbFZ^_zF z_fh<4VjmR-(Z=6YeM5dXtBfwKI*gD=W9l6SzniwhFoCqA-eLG>mAf!obr`0Qmc+r% zjcy?+bg|bbghdoNX0Yqwkk-VmQ~a`R_buTc*oKDPcc2Zi`({6yV6dw)h&Fm#GC?58 zTGBh%Wxs3RcWVTqk=S=@KWp4~YZTIwdT&7&Z#~$ht?=*}4U#pxwq z1aaeCIl>%cn<~S@Taxvh=~@z9wrp|FXmfeQJfe?8G&9tmp8njnJ)T6`6BDGe>Gh6u zOoG(IA+7ma$)Jn!tdG>M#viBFWVDFNFj`=^893Xa(Q}jfy*W7ijJTrRb)5M^z`ah zVGDUo#6W)fVX?hi+y{F6xBGn6#k{#l z1urVVE&XqNk0@I}7cT3)K<)XJ52z+qU9f!vlmebD_N(>J2fBcHrRjhVrr@G~?B9#} zfBxk3a)8`CMLj?sp@sTCrqr(&pF=y&@J`b`u94~u1HZA-+<|7)X{1S5@r~Meb9(v9 z*}KEdP4~$2zXSY)In0)y2{E_zJ(LZbO)}Y*oBOZx_2KqbMcHPA*fWt49;P8m#^sY8 zY4{X^%{1BgaXCVY;nb-0=IZ?C|2W{T$BbGDb}#uazMGDmv4tF4Q4^b9oqu1Al1I4^ zK!pw`L^U1l7{`g!*)BhpdZd=W55U5lo0xx4mA5sy3d-<-?*}Y=Oi+%{BKLn#8uuf! z8IfNc5s`y^Qx0hicB)15|FpX9D2*y@e@x$IRN+)E$6u>fZ%V6Tn9%Bzj!g-bgEL|9 zv!Zuh9ARLMEqYd|r~XY<+Y>YaJJi^{YDcro{i=t)shmEbm6$djt7V}O9E7&qa!Ej)N$uhN0n-r%e0oX8HWfT z3nq9e)u}rBCHeBVX$p4gzX>xbJleX%tM-M_$B)Y%QN&gr=D13eHzP|TGMeFEqs3)1 z^k1^f+}t)lU}g_25+>QQkm7>AyZj>XhLkwa6b*R)mBu6)5S`hp={e|P6?}|Ns&0CO6#IqKB*nFPf;c3@tHGmVCJ=)*v{p#OP^8MypXdXNC zqvVG*_NQfAeUBIjH^37oQxS@YO1El7Rmg-vLHSQBA{7apOow+C}Nd&yu=a)E$x;Wfoyi!BR__crxSFD}P ziL;+b-AlD#{IsSHFAa%H<@5S4%OcEVZAsE%-xj})QR@NYYhfv}Xdx+frr$F+XiQqT zUl6zO`^LPbnm4!;r<+904q4P(#PnyLIZvaG7Fg3JQ}8JHtdBP(EHZ2-X3@W!auxyI zug7Ae<;~%ChHA?0aM$U}a(_L#<{Q0u z0r^Z}k~SoTRBwuWZMeez#sJ#w;!6g{PENN%3V+EQfTZasMR?(4qW zZ1JX_N(PUe@;GddL6tmbWMecwXHn+fo+!N1)8j+?KWIevXv`W{-`J9d{Ln z*gEdB4B5W=S$%YvrX@vArdv|+zG>P~?|5Py?Tynkp$Ldt6-Bx*O)F}O_{DcU-r1mo z{31T}U5h}VuJ}M(-dY3#ueNzx%31^>$_XM+qTpHtq76SGDXfn&4cshp3`U^%v&kY* zq>z@>B2fHU&HJX&NWJ5UakMv1(}Y?CN>ovJ=QOP-CWVNDzpB~c*!dFSiW?M@LdUAL z-juMI6neru0yO0;QeEN{7n@{Km@(u!hInEomY|C2PJm=x*; zSnF*d%vIc!v)0?Nv2)523>-)p#LsKJO@37~ zbpuBed}&3kx5=+E(@)ZXT5n4lkh{VpZ77qCbi-}U7DtbXM@>ck>K&QBm@73achZOX>o8RNVshZ39y+9hiW(oa^nlm(KPtGD`>|teNTH%u} z>FMLjYmI;W`fG+R+E3QN{7=G4RAtUNelaRV7Um=zrr)bOp&L^tW8wKF_Bwv*w)AxO z=G`BZwa3qR6I78mncOFzao%}{b@mB)lgT|f7xn5=RP$xt-gQ2~6hV`zy?m^R*^)C^ zw?1Fp-p+3DAM+))lPblI-!Dd>B4D!7$&pp==xoGWFH= zrxBGh6|Ta&UTwSOewAJ8c?=o$a{l2T{+FNqZ2!-HN;bcpuPXQMHKI{=0!>>x4ak$P zQa6%Ec{s^a?(m$3i8h1Hmik$>@%zomaAA&S4GW2fi3@jpnP%xcD#%#G+#B%c*s^UX)= z%9iAR8ognmAP||8X-V;;T1q}e8s*@iq#o1y_pQHUDg-2$&GlfS8yVtlz zkF&tc(frSN*JGjV5oIRLdCSXS{+dq{&!uu}1Y`9sO$d zN%g7m$H;SFAx|Qw|INkv)h(Wi$Ha&3uu=5m4=X5W;ZA(&Vs~+k)2Z~N3rZS_b-Yid zpf%Ee+N{>IU57K~i~XimeStuQESa#!tNzO>(yG*B39IW(pinLSQ0GQVe>2 z^4t08k0-C^Z%>}RIm_tA7j`wQ5GT_Fdd}}|@uesSnQsgA7QNC3{Ss>tQ8ApfVM$JR zzCJs7S{}n1Z!f|VwI!7d$Adhm`_jn!6j3fvk#RK=D7o>1_CchRlPkEIuupjjGDrd&h}6 z;=~CG9jez=A_;6i(FdqapVM^Uw`i}rF3PFy(Nx2sk950J{`R3n4s#7_6X}*4^AjzV zPsh}cvP#z-p<8N7!u64{GGpu+SxW3Kac+?r4bBmqC5Q^reja;R!P-1@Q(66-75ozS zZaJMXrz0r~W0G`B>m>DPIvy=lzdBccu+rMTQPrT$)Ox z#_XDCOyOMS*^4}%`tc{)&x0#qYer{6RQ>9?ICM(rESu8Zk!DU1EP1!@n=GbHq0@@m zA0wMET~bEV=(nU@5;{u=$NkZm79t1diOq}lv=-T#)=8)RvBSKyn3mAVOZ#J|d1+BC zWi*Z5H3%8A%|{tBFcjT#m|sx<=ETXae279LBu=%0+a6H}Lz z&W!2X!=2;paB9}R`_O>an$FP8FopAruBd`U1=F*xn1V#T?2nf`x4NQoTF`H2qlF2r zsa6Ga%(0Hjq(!#b=9EeMV`S#kzD!zFOX-Xb?T^v9Q#*PIETz%B zJROlITmNEB#?^cJep*jQv-v_zgC>0WzO#ht#y4Oc_q~nn&iLYno#pxZDoL~uy?9kj z#+U1D5P}9@wLvN~*I00)EyDT=ZM66(x-~Tjy5shX>tw9L^sI?7T429l_Q&fpYP8%? zq6aU6&6D-kORAG=%*$UZ=Up!^RjA~HV!lsxbAy~~;yw0WlUG+mkL{7zagsz(v_D^$ zAblLW!9qcAzb-Mq6l9k=AnJ_;)+Oh60y#A!g>}i2l%eQ2VqJnVft^yLjCE(gKivMx2EEQ^g$)+I<%v}?vM>yq^wK}m{_Zq}tp(mn>=^t!}I3U%0rx~!QFNrZE1hsY3>~hZY}>Y94|)gW5ptN%`lC7B5lH8wXxPUmgDtNzPE&}b6y$Kg*5cMD#Vwp) zZT7wy%|{F4VXmi9Ohsepg0sPVIh_`>MHVhHd*D%9c+X@sKOdh^qqTk&?leU^$WCWD zx&J<$(V~P}aaZM*N~^z&*O)K*m54P`9M&vu1&TfVtUq6jB8nO-&{Y&^5-X|6M$c%C zDx#=U8z~Me$X)w@g;UNKOU7mfl_C(NFEnwQJO1;d3{- zP1kW-R7?Di&Zx-L)gILxS|(IW6uNcQr+xG`O)psd`KD8v`pKekkyEX!N93?^oI3VcI+(H!|-haz7ey&%chS$RWq4S}doY6Gul} zw4>l~JzY+8Fap0}Y;-bC+7O7=jh)KSY*HhO6EdPp*ANJ~fO6TZ#+ zFJ}2^ue|c{4#7=WEQi zdOkw5Y*bFbrp|!vKl$_a<}o>I^IU76zzWn-Iwqx&o#~(yl zlY^?51w-5Rb_K5GbaD~Db(f1kv}{!QoD`}O6HQ;^zEjeu#ORh9@-6oGyc*FN6Akjz z`N|`G0`J*qzUXaCm0xj2o=*HK#l{n+qseH|qrHyPku%PWf?K;L*~g@WH392jrxg=V z-p*uBL7gIQR-Mor^qRzjel4b#vaiSV9y?Xv-o|ivKqZY%er~Ff1odSs#~V9pRo<%Z z#e=g}rtydOQ+7(d^*X5DRaCU*MzR8mKQzrs=9kXcwuG^XAjityljUeUG*iDwM2UZH z!YA`O#;U+92OXQ}J)sK|=DT!XtlnZ~HflVONa4^f&*?s6mj!TX5`O5o8d%{tXbW)+AYzn9=(DQKedNPfsiW(L=KsBCDikM5yt}U!3R0Wv* zLaxyL8E+lCV^bx~XX8_~?zkwx0_WO({Z#F5#x2@-*0;%`CAu{%HUA0vV3W0T?qt%7 z>0)%@$MEc&KAH5eXm!p_qs6${eGmW6nQ1MUGuM>1#wD$$(x$O(Sql*?hj#ni!NAHBg29K>+r)pa+qKv*DF%Fh%7$xp3gX6V?S&i z3f&n@2yL0wJW0=zRN9t2v%b7q=~FNkSB+}a7e^YF_P}!*OcfM%C!}eNZWLY2h@o3{ zHKlz@QRv3o>N@d^oW19M6!gYP8n0Rvnk7-0_H;tol~3~7Xs|IJ_4V#NFB**#54Br$KAJ4tV(3EJRH-SI`$MK25-60? zm4bDM*;I>5i>4cN%!>a1WjM8NTo#QNMhDZTEW*WS*d21Ij%sJGyMEAM*`&O!;E#I8 ze>?D_J~eiPGy+%-7E20}?o8uLEQ|l1gRk3WmBNKiyc}78}-LD zW88jC>z1Ph?fLR*)41xP-g52aAX+Llb*iXT&^QW!uNHdEdM~qGyS36NyygF?;-6?@+>VD6({GWjc`>Vi9eN@s6!PjJgpWw5MjU8?4L1$m=zdo<>Byk2N15B+#X z9wyzOD=3SuY!hE!Y&3ghI;N1K(7erC8Jf<@Dfbg+TvlHL8b?fCl}lmUv{8)bv;Z?i z?D1Z?a|x={nO&-GrX}8vmzvCx$70pSWaOb1XAk5eFFu&K$r3JGQ1XkRj%Xdj~oBT6QMUE;yKaiZzs$NOJTDkY7YCD8n^L0S)USe z7YZ|`QWDRd^~q6npO!l|_l~=%`v%L}T@6|(!re?y8P$C{zD!i%SsFEGs=ih}9)k(DTz6dWlw3zU-}&S5<{4mY z9HxXTFq;~REUQza83Mn&j!2M<$h4w8g8~bZp&5dSMMoq*Q??3o;$K>gh*>VExiKAg zATORXatGfdk8pA`^P)R6CPFpA&Xj`VSxc$K1@+VA;=GuAT@ceb{fE{3#u0Ob$--G8 za*b6)v@SFm_GiPR#Vqfei!#(sZyviNqtTr@B#y&d5p+JIPJ~)C;uE*-C8$ypDfsP5 z4J-62E1&P}Z0>Ju)1-al+1~Tr)i31n5v?hGwu7%XI%Xq8%SQfmjuKj}-`U-G=JPd< zOM|G;A*N;I>D$`*YUkMJYh1^vOK`iv{3Q6pM5o`+OAw-0wVeZH0Qu*9^C+^PqMJA20)Po8c2oGV$?qFPpN)uV%r z&46(wt7^mq+wsnEn7)J9>V2xc}7#MeFk} z8*7{x)zu9T+bU3NZjJ&f&}jjUYi_jy7_{YAQ*wttnfS*2)mm-~Yk6JE|9O9BuS)e% zrX0-J0HJXsCr$2QTYlH>-ZR;_;FplBf!=MZj;TNGy1TKMHoFc^tJl;YHmIdf-#EVP<; zeABP|Qe*d*HSXlo5{)zMaN#VED(vnLk^9QJpiv9me~o&HG)|u4)Bh68rb81%x8K?l zME2kQ8eQ>iOW-Z}s&@XO81@D<8(YxD;rbu-&2pS)L+^x4V?$fMXAfp4p{)g#4`z~o zKFzt0_!NvqX2iAF@gQDp=d;hU(Wu=E+&asEm1X%vR#wzf{?lu*luu$M-6cyIhf3uuu|+3D z4;C#h95-vaPF@9=mhpPUNDWhXIJ)tO6&+fk2#eaosBCo@q9sywt&~AT-%u!ypaL|W z#%tgr&>Fg65wc4!i)d4J&8OnkxUm%xk-SGFy+Lm{Iz7#T z8(n6Y$D!w@WXpoIv{w*5KQv3Y_jA>_!|AsqVfsJsxQH(#VhKt zxcS?G6H*Mk8|5x|nXl7XG3+W|6_yoW=Bvi?JkPP|gtZ@vkWKwU4mdJww1*PH1 z^7J&H9n1V(xOJOk^E?! z(J30oSMbOvb}K@Qp?3)!AqM$ zo2G=ZoN47u1|S!kg0|3vj$t=fMDtRW=bI%8fNAHu{EE&Qm^6D$RpVm*Ai?1Rf{rHJ zn{;JCq+~TGh2C@0QK0}^l`9oB?j=QmVODB%TjR0fDi9zm)r8ziwTcI3=h6-euvG@o zGre!sg;MI^KoIPq(e+>uaCm6oqNO2qB$eFVpHD{Wtw@R*=f^>d8-)ZVIdG`oX($)r zYIH~OhEYBiNZwFCC@)%;?Tr;L>fclX0a{h+f@ZqjA(h59ojmT;OBA@$X$^q{aO#)J zua1isId_|H-0!JlFmRyJ#aGKw(;K(NZJe6bk+^duO))DXdE8vDi&^2;5Q_r&RD>u@ zS$;gC2z%;}tEFH_Z_r6#rxJ27u#oQ*`$5q$rp9)#fk^{`ja+mpwtT$cx8yX|_&O?$ z1|HXTL5do4zlMgThH_smG_=Wm6~d~@eFp_8p!QLH>$PZZA#S!-z~P~Ri^fA=+G4gusV-2BK_h?dOzS)>j^deh1n5h~s zAM^`r6cK5mB1?x&BJFLXv7$4c3JV0(3?9*+y5g92eB)L%t1y|G)J=T1vrVE~wllIk_Q^Y-m#n$nei*Hg z6$p@NG@v!FuyPd<&(Xj|eMEZ6sO4WwG^msY%4sYSP;Oze>Qlj?hK;*rc=p&y>8s?2>hM{I1s%>dD>qr zWIt`K^`l-MQz-1@-l!Ufj}8YP0<4REsSGv z0RF~#e|{byU$x{|5DTl?p}-zjg|#4n{po1({c<$pF>4z8t)LtN1+Z@`vrK5~FEGSa zO9%r3{7)%Fa)8`8u=C0WFf1s!8mmfFP0RNu;Hc^=xXTM%y z^szwlmTI?RgRQHU85alOZ__k^;!e$}w0r$pxEaTyc{ezuHiZ*0#!<5VaBe)pxl z<0;78M$4$nO)%y2aDe|aJt_*!(g+=xrNSwpm;e37;7?|h_&>_clGad^D-H$5pP882 z?lh!vk0^{9#=(#t8wZbgXcH%Pfhcw(S>{QBp`tK zMo$eC7JYtiQey|}fda$k#M{%$KiSwiCO0-_kg9x_wp3u>k7qoA?vmY9+MJe#%DxR70FgqAcBN^0&$AbgU zTTk@TSeTZYWIZZJupe3gL(hHIPWbUn-gbyE~~I7~;) zc1VgQ1O(S@+QXYr_d=C(h!;lSghj$*Jc=bfjH zp@Q{hC5QGe>4cz)2gFKBO_+sdi#nKKyuL-Fn%o>!1S|tUr{qAPf{QT zy4?qO*J6i#M2mjaLqiJQdrHGK3dKHOMB1VjdE&!?=bHLquUI@SmXk;$)S}f30l{@$ zdo5BqJ1A&_AuItc>PrL>Z0|f>ssPrpGTma#z`-nsj)C5%t6+5)eYf(r;NW23_-Sl} zP_xvLD#?HW?pr&0JRD|2iyqsB0{%PZ%Z}{N!NBqU&V&x}(dt2Tl-r_33Gl%5ruyY| zXsntQtz<@2NI<7_(ByfxoJL0itU#(Xt~claR!GsJ z$Fev;zDD1i6cmWi+KqMeEm9Ezg6pkkMe$-e4HMF$p14pJpIir{dC>yjg#!K!Q{Q$;ui3BI4Hh?k+YTJ*gY5U{UPD(Z@FiykC`2(}ya8?`&*Tn$)agV+|9i$Q|# zr~5~t-CDHtfC271`?Q8b2MAt;=q-9F4hD{U?W>7>5CwO?cMTLp;)3?j59qnhlS2AE2qq`aI|7!XkdAd zW>3X(Hi(YKTI7%q2cEYNmy-pZ-wM;xVwHelf#Kcq+t{$CjlGOspn>K3(W02@lj}Rw zkL%$L>)=|HvD-ci5BiCVM|91I+99bM8mEi!;=(aX6|z<g7Uwr{z$kAdf83Kaqdg*^^ZuSewTGZ9mduU*J z>p5-J#3)*{EG`uA-_*CBhvsV0vN%XU|7lEli*YMpfcy5hqsg#%6kX zQ8bhN#4*8nKlr_BU)`Eg6I>b9(jvuqE8L1(MfMpL*%Q4b^@L*FjPhAn#%ug+Ew@4X zt@_98Kljtv;J=M$Hv2Ss9*<)a#F_wvK6j3V=5kv%fe!Wu_?>RF(_uCi`5_&z36uXk zy)7=45Tk&OdzB7~!8kJKdqNdQU8wL00u9gT;`fD`pU#$%P45mggapuV9d`K3GGFG~ z7t;mzFBEi4CBkp%j2vAZXR1M23>{DqUSot$m*X)TGfHZDS?W`K8WVIMfli(5J2iU- z8!!8#asPz&DS{U5f3Ke3X(DL42~BLw=(amosQan<$FRZtPJcNZ6~#2tmJ7O6ylk?V zA%Wnnli^ABWO(wIr8gI-aY#XRRo<$+RBw09%kFTSf*~(yji1?FP%9&VMouG9ou-;D zvRh3a5j1@oN!HH9?@!#8<39xX6`CYvs*nrHK8Pq|O^z$-Z=H%_G|=;#h#uvmNIo%T z$tssD4~l~KIH#S8OLIc$uOdpzfw378nv=qT&S9rIQ;bllYA8iV(F5~Ywne9lN8~V) z@9TTj!$wLlT4R7Ha19ht^D%qbsyQ;QNTHl>M7FBPYveEv=(*1Hg#3b03_}R{4JPosRG!e%J{{!~cUcnjxw`bd5*%%%;6x?G94rqOZig8%4c30+S&|rUaP)si) zBW=MbUcXt|*`dl#du42&^RPMdT{z9^ei6fm zkaveC7uk@a97Pf;SRz$#8$J#L_@Aixf@*-Pak2_p#F8itmX;NU~Y&)J*1 z6vAsX?avmQ#e|kb<2xLJu@M7}$Vt&a)wRyYnT0<_^KYbDjS* zD;E5QHNkFOnn4wjP2M zl?XbMB4}VzaTF9&*k=j4{Rju|xo*=FQ|k0pLJsI(>?pcJO+o7q6eK1Fi3HuCOTMS) zs(^1^4q{8;g2he?VF)9DV0-`UhtV{9(jR_B|0+*=R+j{8&-#5s<0FCNo@%GF!FZ%r z6^Y7(s(Ut?a5BM)rVFGw-7h#Y$RE0o&}!bKpy0EUp=tS9Vg*wM7c1Zoz#-w0`&#wX zp$cB;MGg||@3~+#8h{QFEEB#yK0b&KDOSw{jtufoT+!qKJ1eN!rf#G>vKGeh6RZ=t zkbxai91wKheY@HNP&=NiOb9x77b(=iHdF19pWE(B`L8S{5@VdAlzU#h09?NCc=iJx=UtSj{U}nIee(b(-NS^VF zd}}nPNxUk1o&dps(nSjdMBpKVHACcWIxQx1bxcZ?INsT>+6)EYknoYKo&1I>M|9Qh zlLtO;j*r#j^FMv@1x+F5+4Pda1y8bKcJ{^ZzYvwbI0M8y;9_1(idPfb2v`&YZx=u? z&v2oFJb6Ch*bu;)r1Bx{2S)zJIB&@6#i~tGiUWemIznedMmfd0$(|K4?+dXxERJIl z`(1?{W1nZ6`pIzEChi^d`=#TF$)55X7a80)Mi+fOqTkuwIQT=>R|lAx=>^L~fY7PM z2Ny3v77iO%BlCujT#1TTTTHycyuq&|D&6)RnpQBMD&N&C3G(6IN zZy~F|(HtNwr5q82pIqoAC*zbryE)m$a&b;`Rkg7mJp%S!^U%nLG%^G{5cSwcF!4}m z#C~+{_m6^2ejhEW$D@FhhyKf@$3~bhg56{vD=LH$BxNvv6L&?XD;bOcGHy-s#cYsK zYdsq{Yo;#0pduO&o%lE&=zcaC#rCuW8#3xeLtqgAdTTN`_cwP}7s@3C=RWQl~O2Fzsf|8l}n3jS?<(ECoUuOG9M;q$z(14PRbAU>&6f(%KPe+3nG@?Jy|Aef9#$UOhyC5{i3LS6!sjD`@%prIcOLZ~p35e&q(Ly24AH=J zZ))yvpoO{22HOm?POxI?02$IGFu30`=QqM5Cjws$=jexv0_Zo*m%-tZnvlO(YYdRt zX%dQl9N7UBR9SjYo5j8lsqfNagN`r|!4;fquy2>>3=13-OL$DH&=Cf~T)TW%<1?HJ z{d~C~SB|jQNYKr@2HnL0`pvod_K1SBsP*HJMNrpE43~xDf$jQybT;Xavz-N<43C`2 z6V$vC!El9WVESNwVTQ&>yT=Dj6T!XaJ^^rsw*ea>?&2*aqTDPA4J;U904HE)prE~l z#}#esX#qe2&I&O~7~hZ-wBSj?3NcFfbv}-C!mAKgh#-6famu8${BVRN(=a;)y+6PL z(}u`V0Ti=kG*#R1^D^QkTV`KHK!}_WV0ON$oN@cl)dcv+5O5DxQ(2(){_|NZ^@4dB zfCBS#R1iPL^M-gvPE*OPN5NDDXc6`R8WP@~Q&3>KgfI^l$|Ze(dDrl{I6!}|L_h1( zL1{lYsvy!p`MOJBp}_GD9ts)$RnYo|NjNt^z<;;IR~-w59AOnguw)E%i;M9m9ugR? z&A%Vh4IIDEs`k$<^pdWt1TcmQ&_Hy{B|1?7u7gaGG;S%f3K4|wfG{MIm@Y=;p+I-VTX=s=eGPcb(jtIhgFi6;K zxFu84BF6GCL7|MfP(ft zBs=ClD40y(byj|X1(KWd`8eBD0s2q%iNLTB3A{TMhGB_;f$E`p?C9v3V*4ha8N%pJ ziNusHWfBzBbb*PcwlSyO0xRj$JT{91g112sw4H)UDl;FYg|}umN@$9uMO&afH0Yv0^xyU;+QDe`q7ZQ?s(!qJD^3XtbyChRFaSn3|#ykmA zCU83NbIFGT-F-UWv!H<4Bl3SzE{f*QkWw;iwXc`etNQFCgZ*uD;Y!P)o4(QyT(hNJ zWB~f3`SN619>dA~tgZr&HT@SR3tjq|O*vzXXQH28NYjoqxgxs7jvpx0Sy*~Hu6jToj zpgHU(3kRlqi~dXnZpk)I=EayUY$4Cj7h&!RMiBri2~(&^;)8zdr1h%A6)K4DLa4g1 zNI4_5?el=c5*&bn_9hbE=Zs1W`)*~O6Fh>Oodw^hUE?z*E zI@R2k%*6xQCy=E|>i%*u9}V*@a>1vlGjT@`!Qm=EvXs{0L(B(wQzB%qd8!LICM1Oo z5!70k+NS)F!<-g$-2h;;6&i?a)j6UAjidfJzGN&IE=KtRP|(`4e6%1>$w;Ktw#CcE z1KIn~cHEED8o}rr?=xFkFwi{E$5Bh)%j~e+rr63SBd_a{Sd&V>=`rg-!F-23gwwDd ztE4T8vpRrad}zX<&@`+}*3lCa&=7EAp>DgPD;cw6^+#AmB*_JYp~WW$ z5NvlA#l=`1{W{*?eU|d|6vQwAOi38W1nIS-pDY}h zK3dLn>T)%=A}4cN)R`>c(H5Fk;MT?f4SOR6)ZAt->w`Au zn$IHWf(F}p-*EVNV7mQ!I8(KaN@DUrvtZ?|MA2LcL@>Tx{vKwzVC^EpV{m|e^Yz6z z8x|MY*8XmMhegm@0mCFG1_-*lcyz0{pvfw=q({_Hk|frC2znvla7rH(v=8w3*R<=< zpAF70%d?I?v!L<?#G!=&6WpCZQC-<06}Mq)?T4@ z#5Trsk&KRY%qZIytpF6XAHpVkg=_r;yZg7`Yc^w4X($$n z)#KHuG#sdILdG+?Bp{EaOVHr~gQbfBg6=LoN~i7V)K*4Z6qcOGme&jJ4ys9v5Eaif|S%Cl`gZ*Rggnc%^JZ0W{MZ4g%uEkUcVrc{__!<5f1Ju0l zG%4AH#_)_=FrM_e1H32`4SCMHWYTzGdZ)Z|Qng+a9(PT!knSglgMs6He62c%F6g5D;TB1r$z2Klk6q9vKI>2FaQpxxpjRhH=$g%S#eperz0JTTq1gMV5# zCJ)};m>9icAsGDlMoge4S&P%tdCphIJ76tQ!FtnGh3sX;MKHLpOR2>K<8_xYV%ZkG zM+7m-7P07xY@RjWca<#i*F5)Hl+geW>3XlaA~75I!IT7p*D%ZUg^qN0qk#htF0I?v zn<#YADy>p^A-n`rUZ0JkH7U^^C^+Bue&#MREvy*ef$0YOr8xOJosVLLU*LONo3;`% z&PRL16ltYXz7i6AxUkU}dQLmOJb5ijKeL!Y1lyav-k?7?&xhU+w8qV7mX{aqeo@XX z^pM!10QrqxPqiZ+Zq39Zj$2{?mGq7&>{UMVaIdV_q5zrnsvh3My|UgC1E_EHdbC{n zf(D%)a82OpxFISSV3T4sBJzN*thmH*Q0L@>9LV15)4uq|(Q!t_Js%JG>_)I>r(QQn@^C;v_q-Vb z3Vhd#bccdtGy#VL1sb|s(9o#Slk>YfSC{0GpBxVkbT(Cq!CISCIZ&W^7paPjT575w zt!Sul6<-8~D`5bCN5hkw-`ONnC4&riq3*$CC0o$@ah?bs2pj59<7nKmgcU!=LNYSI7z9p`0oQIc(QmaLK-oOQ~y)qNLlisWTh`buP>#txbu9>=m20K-f z^4io=9qmmlMmcXO1v??l+yDmir(os*e9JLxd2<4@{(m&PQ9_14h!k-_*(Y^R>tyu# zU1$Hk9$}z@u8*NBxObH17!=O&!t>?(e^-}P!vs~-9+(pJ7kyFbMgMg$e7HijaRNoe zaY1XV>rt-G&t~TMCNH;w^~;jvxA{xz8OG`k&$7QaY4X59{utVfBdI<*L(RUrh+J(C zuu>~nJ%k9gM$<2EcxhmO5?fZa_Bn0F)0|;EKA~}KZ@7$v^}I@g{~$YY91V}aTz~_epDwkI!A!V9x-=Gu?s(}srNMQZt%_8_EFK8`l%0NwL&>8(Lm;>N=@{-$}f!tqPt#xsatV$Y(&N;*zieZSOo~mJ10MU znLYXLOLbnr97|K1B*iIX6wFc;jBe&rcp&^B_P`|1hx6WOGW8l#!N{$a*u||Cuv8wh z!`_fw3R%im72x7Rz^5uiw!R|#>*L*Lbbi)+7|iGTioo85x-p!o5RBn0rp^TWsg419 zekpmnckbVA^0(%G*8+=085$^SvecxY+s)T%DZ>CgpV$P&?RuH_dFLyLC2S!jHqr!8 z^SOOBttQMi!Eo2&N+t1J`_R50)#Xj@1@3niPoRg;VV~dH_YyjKuk!o_m7vf_f*G|1 z7m4CjP*_=NhYr!7^~bxa>YF8quoY-;sT4YNRQ0TU@>^pVqolM_NA;|Z0eark4Iz0z zolqPi-vdgp;zomabJ?rO8+Gxj0|u6Nz;ZDwye$pE3Ui#pK!M@?!NoA!r2nUX^~wUX zp&$a4df%kM2Li=)P|!s?x*U7Me?dwD5(g@vp+nD;g>qQp%8g58(^9ylPl0fGy}@HQ7_%duCS+T?;k0r*X5r@LX}MOIM3gA_2ZkZPXyW_@xD^2e90s9Z2m z-BBwz6zOGC{i8feGy2!};}CcslrW~wCm_?D+Mk0@O;+VBA;I}ckj~L$Fw51xR)1`g z%tt_iThVIM9Dx^UF}l~L1@O>vE3iv2&lXJEYAvAw!S^WOGmE#hctdM;tYs7Ip49R( z;3j_Mzq%Iw5*YmVXct;VKUO}&8J+VRO?La!jBWzs-IBn8*99u8T?!fG58ZbxIc=9v zE#Ulu9RL?A%@1%$VCjEOhn=@5n12>bUsp{(M^2JIqcy7zXm6^0>5 z`<`Ha>J*~D_C7WQ{K6G5%uoAtFV9e0-~8R9u#byk#^%rxf7H_`dYY6!7{XnP=7IQ3Dm^ecULI z%M!$na1jF=MP*eJ)6Z$~`E+zfb()H=iXT894$Oxq`}@zfH}-l*#~a7nM=aw6J7)~H zR3&7BsXk&DOxw}+=JDp?HWMYXlp~=*6eysEDm#Vwc)fT@)-fSJUN63(>n(%MRaDt4 zD9A`+Ljbk2)mu8|O18UmbhNYg6*GgVovnZZdX5ZomU{C@F&_5l4ET}{@>Wf~j|~Ad zs;NYqhbSjl$^|a$E=VHf3KgX93}%;fCHqBAcg9}bWzM{8Xc!LQZw=-zvn>iDMWY8A zq>o1z!H7k$bD%&BNfZracNkf*q+O-&mvpL&nNYC09;b8gKzQ3F%qdbRIXKc}o$(2F zvZ8zr9O&-5bZRSu27eS5w@>{aqm;}-VixrvLCf+`8#G8{+dQn$Kz74Tqx#u*jgrjj zV~GP6h#tB`bBd-kqR>iIP<2oRW=?@qT{H&+P*7iI)HI;-{N^RgJFz6v+(AKs=ANM$ z=(w`f^=YqI)t2+_SFmO6B`<~uQe9Z+c{4T2hNkK>dtSA$glHhs^{@I_mERt1$}_gB z*1rfG=#VxuJL)QJ9$H0a7F9R2qjrx5mS^N)&XOjX{-@3?@xx_p1h=$4#_wk*sgQ7U^F8sk4Y|#2BwE46HSsRjPH^zD(dwo z#pLpWF23W&6zp`CSf<}I{Bc~c-wWA|BRr>;G-qLQ9cqAr_fE*Gj!1A;NuN~9Y9PUR zyX5R`s<<>+??i82a7szT7E=0%V0;iT>h12+S?<*n!I|+A%FWt})`11LpIUP;>gvsS zI<-Iq<6WfoDLJtmEN1GQx_+BAK!Veav7`o=Nmg=*qa#s+7hSSiOt7N-_MnTx1*^0& z(st!HfCQ(_(F5g8MxAp{F?LdZJw!0t9L4W?qTnx~wan1~6Rc>HdPj6bZJe9h8cwO& zwMh|B@P0g4(sX~GsVOI28lN50zv`}WHAI@~As(+ilHFc|Xewgo2(EEZhEor>U7#q3JLhv?6>LhtWF2O|WYb-e{GAXzeljrriDigth>4r_bPHyOUAQ;tIh=~0RAlUBOM>U(e>X5>} z(>gvgq+nUW;zTGNRPbK6&uiYmRYx$svj`DJ=9zQLKI#0y%cP+7w(o{?x-O|=j?~?@ z58FRZX|0IaRM3*zmlKp4vxf7WF1_rUQ)7ZNVp+cqc3@ez9zL=*v432Q2D4&L`@5by zvfzxA#Yh;~g|17p*BW$@W~W8qbyOENTGgRT8d%=0R!3b_r1Xw8kNqQTjRZZjeLH1k zWH-?g{uQ=m#8(oiyu^AuC8;rL z4%#Z#B3G@yE_XrO*uM3z@Q^-_D`*o}(C{k9{e9h;y4Q{K`zUKR=;PuiO zX>C?ar`OVWe34dWMZRPUqbxw1JhUL=4-?wAFdP#$ty(qbcdw{+!s+zW)!3xsOcbK_ zW0NQ}QeBP5)MF|VVzyiiSO?O6Y{DSHc!L}X^u|arQ6Un;uq=Yv3isWO0fOxg`|Hj7Vx29Z;~|XRLZ1hMWcZ7rraBV9mCMnB#)`9(iTz`#iRafx6Cvt^^pUH3}~t zfTU3>flND?LELw zs-#VljN&P~P+@1G5V1DlnqCsR2Rv7>{lllRoW_#%jl- z%yQN!Nt(l&l={$+a6cj8tl&=Cl2MX?UcrL;L4sPr0lQ~fzqo)foY3Kq})|a3(RCX z=d`dh;M4zAOb!z;QJmgQyJ#)1KY?h};Q=M#!#Prg7-c=%|GA-K&CkgVF& z;X}-)cr*U+fKJAq@|Id~un?F6H6;P$e27_(PzCsI)! zs$(wimyi$oep#z;IGRt#becC9W#(&>$S9$*tc{6O(G6>KT7{WV5bP(K@MaU1WKdQ% zUkPPP@a_SX~CGEP9i|^L2>~SfRDHB$jWT&5EUW9%*eQ zkyAqDFQOJzmmieR(>enUefYF<(77=qgisi_qw@kS+fm@mr8gAp-i}d9s4RPrb6o~) zyXd?URGa@?rxDq#cO#m|o62#2ve=>~v6zz=aWN@#y!5f@sg|q!g|$Wh)w%F1NrA=x zu`X4|D$pGTn%*uwS27yCvqX&7m53-aH2=OF27AcyiVgvwRV6{vpk zBdE5-P@D-BQ&hV^@ZWy~!Qh47&!c*`$Xf|5ap@t&%JHysr7=cmjJI;;h8{Kc3;W&f zTREQ%+TuN#d72Hv+>NvDd$I^26vjs{yF0tv-{iA-)c{}g|Lz@*>3;N*V!g7~5k*yF zCGtnns#&2mUem)AmUl2SwcXeBG%xhVdjUG$Njp{KR;%tIR3K%wH`_W)boaeL138q( z``jbi`5EWYQ8<&`eV<#$49(>fy1Zg5+g2+^yVOw8r3!SoFC5&8r_exj=2-YDN&-RU zH3^L{L^P@kNx;)iUaId1R+Yyo45mW$JWX3dizq>!nA zA~_l!Dju>I56a@S$n{wmCPHvLgJFfG+ee3n2kgD_DYYp$&!{BB_#kH3O;17 zl?syeTo9a;;U#4-252e!)2Yb{tL3%6#IHPq%B&*p;Y-LGIh>?kk?Fyrv0u7V)Iw;mh$Bv5ocr$f)#w)#)c1XJdHgW$-#MlhKZVu9z~iYHit6GZfj zaj?a;_bUAGh?pRLV~oH6AqDp=!=^e`m~HOw9q;Tt-+z9@a!jz<9^ncg!Fu0g-P_pR z-s(Mlw(%9G75Eh-XlQQqq z{li_xcy-%GA;Ee_%VUph|CvJPFiwFlgO|z(AQ*3ljQ_U1eZU9>PUm%m8V`JTL%yTq z!yPY)0{68##u5>nca#U+;9{C>Z9m<3{_ME7^VQz|p%)@aP+S3{TNZrqF+q9@4-7{$ z#jS4e@(!vAQV9@7$q_+#AJ4L%X|di5w<_=-15%pRz=HY#Uf|T~TfRRe@E-$I4Y$E< zB417>{McMaR&_au2^~<)OzB;zMT*=1N$kSt1|$~V4c=i2Nfy4ja(^n zmNt3lFU~3$OaLX8w}1rYMlhjd8pO$~oy5^*a1=$kJ2P-r~UJnit53AR#2pW^; zbiJ3iJs@zauCP)PDrg9}f4Z1bknim2@j>tS*-UllVi2A?3DaD|je ztpx`8t+RYWdn0tG!l)SaB8v zV%HG5K*hkobe;bgtO^KL9#TYXW#HO*e}1moB=v6?k5mxB%K|Je#-G>^77Yoyd4AC! zWMA)YY-T6pf`V8D*IP=s6o$546b)Rrs$YkrGdegDk_o2g8pI=W;lTE8#TI0fVDTnK z!?Ng8W3=VF>PN=T6858T(4q{E!tuqN}I zWKu*49huQDnAi6+5_%f+gfp}-*_T~27fcJ3`fbXrbI{AMBZMSrp6xzeeS z5+6d+nX;VmlGQw9_IA0!Vpeid9j(80CMbc-WizFTFnHpMVqVuwYIx zwcmLJ(D6~Nj-H=2;`Y_@Hfzx&(37wWd58`AGv2y(Y8Mbd$LDdo736Bv))a2$8 z?3;V2&Dts^C`;rYozNSR`ym@KcA9@6fR6iKT1pEA!xX_Tu!mG*6*hQDC?F3Pel=vL z3N(6y4T1~CyH%jBFNcD10B0M6G8dEreGVxsrQa!QcU6Nt9;ix`(b?(X%isOuzpSr} zf&eD#}MAYZeQOG;>!+t|FgS8NsD zvAT8Jm=QzwKVQ+td&R^QY*subKZ>y{Zm9pGKz-RO_WJW)v<(xurF$&Wq8(#~a!Cs^ z*QJ^!0qSrQv-kR15Y7p;zxON9h2DKZI_VoG-rC_wUTI z^1RNby1|{A`R{8oYe@xprf;sdC*9vt%v9P`$c6Bz z$oYDdMpz;Ge+g`AUN6te^-hb~MW1`A2@cP?G}0;-<%MubVZe5s+xxDmFn|j3e&HrK z(GmnhGwCYI6)O~5tCiIH>8w~3bZu?ab81bsKH!8UzZ6(BALluz16(H;l9KkcbEyYHkbGDtLQ zqz#r-!$M|5>5%ZM*{z8n?Uw@U83LwFx-)h~Z6y=LNd_V2m1uog(;&oSgjh*+nP1MM zO4n3fTsp{hQh|igR_x3!9fm9wSM7bIoL3X<6>hitS({*w6M`R)$YjdfaA$Yp;1Ais;r{Xd z=KizZH`|9tJNtXAJrYdUfTsHzd`Lh;!VUhMcHv^Yf)gWvi0~Rbkln|VMwB|EP0>}= z$`PLg2wYWx6yapBpngQx0@4PvGIsxDkf~*aXS8%ebJSp=Vz0T=tiVeCI_zc%!Qiq( z32Z<~1g%&YG01i9+yn2oNSI=o+MJG6){Ox#qbAM~Qcl7+} z)1AM1CjbR*iWR7*rH%uVeqFs?J-)U5c-u7RQxA#;t z5jUB@DXT(FDvOXn)NiWS9Z~2F>MEFET32DGrKPB@EHJ2k>l4Uo<0n-rD+?;aJyjv^ zXLK~h^9mBgWT+sMhVvOM0wvCb{Vm>@4&|_eknaoJxulWO1%UTwx$6V}s0SwK&>;ez=(!5Oq^6do5X+h7qCTXlY|814HD)&ul=n(U~&T;~0!3w;=axpGg zPcAXA;2I?|D}G)jl$IHFnWH-jXv!AMC)}C)*;T44$Mwv~e+)=r$p@88y5@SE?QVRv zv)S8wzWZeRko6bOuApo|u_!|e@D+C^d0prDNwHZt=5;nopLZWo0OxFCNF1G#1{ zAMy*kWWS)PiFKeMA=r+h)n{qIoG{K^--{iYK?V%`?3V(*qaeQPYXLLi#9Od9_}1(Jn?eAiw4F5BklKMC0{+oOWoIPN4ri7Z%{#O^PNH@ zUF17-VWV~@HEv zYulX0a6xXHlLOqKk@Y8&f>x#dTyEQ(M1etXo0ICPp*ao6a=LAE5~70G7O?7({9?M` zUg2#En2!lkJ36Z#ctJ&wCAID7%!34_os;t4>CD1>FdONsjv0O1IcW_%q(o95>@uvL zdJPFmo6AR7383q4y2@oA6Qs6ERS!&2xp;+cTcx7Fp#KD2MfKDyr$vxSFHx}t$JYVL z<^y&35Mz67TE83QCln5?`(8T%4GFdvtDft$*N(u}QKP4GyOg#as6!1{P}`DUJ=0wW z>SKb`cA(V*9d@7rC}?d5T0PNi2O7f#`E{xri~eMgQ&`1;I!EKhI25>T@o0Y$JaF9_ z6`7fF=EI$R<$#>c`mb2~t*hV21m~L~X=pE>S z2!(`#On0~}8rZya>BA(v&uX2n5(`XTx+eK6eN76pVe52RG_ZYOt@!P%Kb?|Kk7DbY ze4`uK7_Fo^_RX1q1^?rK|J7`y?!7suON`HWvmC2FUp+EvG1^YUIXpM>1%X ziUB^Pe4LbWu^cZbim?~j{z%ZE3$;`P5R<4oWW?!g^wM|U>ZRt&(ewf-n5_#r&~BiN|g82Qhe!)fU znNpLT%*e-Cb&b&=34$wUE7-^|Cd~p_UO$N!)-=Y9z(a^P#>A6$80ap%tUAUFz#BwF zt5sJbEI34Xogu{X@tY@)L?+RNN08&41X3brK_gSqktgZAN_H?tA#Om2;n0+`{X)Cav?ZG@J`V_H=4fugNm~-?RMEE ziVrEgJ*ggD$HHX<9Wr=jb{|~N!exR1a#9(j4y1O!aLL2~A5wU`;y${TVP%{EViMJO zJ;O>@O8v0XebNs5+@^oUVPzB_Hc1!Vx!R3UCzv~3b9co!43NW{e)r)ujdD{I5R|YF zAA`D?wPHVQ^>7Br;mfD?;qI4DeP{^aV_f@`zqILEWW_OVk^_MR7_;1=-T}iX+=fg++&qMERiA+N1n{A?eG0>0 zw_L0^v<|Q#fv;u%v0BmWb}gF&gWM|z6*-NfyI#w76aXDEylPs>&?8*CF6L&(s?{{b z0ZCrd?mZrxWUM%+NxJAdQv$cNtU9Q6#5fF)gg6{vFE|<>!e6+u}m8;88w$;rB=(LJbvM zgTU(wc<1Iup7L%Ze4Au}o?qcf`@T9Abg0koPR<}t9ggA31o!&{$jnRvK4|<+fE3e6 zw`TY=8NwP+FyD(a=fx>Y ztKf{V2CCszkYN2N&N|8S;hZitoG!Vg1uMx->@IYJisfWU$8&na{-V!p(18jU8Y=Ew zH4bWW#`N3Vn1Uj%FN6!Ae;Lmef#TLqar5>|@k@zhvdFn=Ik@kn%p=p*YR-eVAz)rT{3)RE5`4v2Z|zYQ_NK8n39se9xc?e4=a;` zO;#VTR*WTqoQMAFuuKqnL9iI-W7SGwK^Y$SuR_Mu^IDNq(yQc-!iO!ASu>}o&9pSd zy}!E78cPB>zxHiXT^gG`E9aY8?9yAo{N0C+=2RUYME=f4ioK*JlD+<5kkeWacS1TB zw0x56Y-WYv-}r*dRh+rL26@*k7DdfE=tyfVA!L5(%cQXsIWG0gm?t|@pVW;|svu;M z`NFHKi{%W_62Tvdia-LsxJm-%=X|uj_|erX1(2Qzqz`xXWH_TBA*{ik|5(ah0T3>+ zIo=D}_aDvXOhFsz!G!fkm#!5+`r}Eym<=-8-I)z2(%rn=xQWIQ6C4^hXuA3}07JmT z_;Zon6hZKsMtW~QYdDv0mnc|~k?KFJqHUzW_;S4jyj6B{slu%Nz4UIZr;@gm!#1?_SEI-^@F z`DT@1xdj-8GzOTYqmG=9ELWw|fS`K_Wrw;L^~V(5b5g`Mq$F)qnJ|{hC@|>n2lVts zJ_~kpB>7rPUcrL;Jz7%B>GG8x-PAi+c#-!66_+n-`CwqVQ%n~W!IPrx?dyQ4*~aEE zUH5pzO08g3+`?$v+D{%RSU(LOc=qka-;R36e>?6jLqowWE4#FTdW@F?!J4B5iKg8^g7Kk!*kSB#e!ac< zZ&$zH$YLdlEi(9T+jmO-ei;8-(D7T8D07Jk&b#*Ml9Ntlje`hef)2{!L|H8=c!Ls- zCwjp>Mk|*u4h;n#SjAq-dy%`81S13sS8D)(Lq*Wu4bF=Zt?_l+-T@S>LEWMWzZd9j z<+^1c!5E}77J7W;b{(K#y=gP0%wyUl;akiC&m@Zx%~*|?RpafmLbG zr2n$d{ZCf5DnP*+l%7dYXICyg1`>=xKB{d2Rz+5}t40Lh`^7xl8qKyR3%aE{nA!`1 z+S2=`wD>qthTz`8mJIAp!AGQFt}ZX`>4@m~dp4rGSH0N#k`huSs0I|NyQ8>iqSd2G z2dy{K-#r>Gdsk=(_NpB-M&ZDBKf%|V@P<@UN}Pm7QlJpQ`XFRI8O><*#80WDHY8~) zNbo+c;q_B2>A9P!-BjO;u#aB^i%5c57XhJ?c)5F00wTqCW1Pj{1?dx`d)`Cr4oSPjMN$$0Crhx3>^3(wMIYSm!XwvjYS0OtuQZ#Io~=K%qG(rsldSX zQOKp%5vegEhl!J=?>!@!vZr}{U}%Ws>Z!V|l67AzwS@)_e380xIuH8GmFh}~2gXQ_ zo_V2PSISWZR>$S-X|BfQY+y#xHJb3l11oVUFr@2tSW?MdfRAwmzC-EasnNg|DU%o7 zwloF~e36z$KhSAQV-dj`N#%r=+j*eXm1>@W179Q$XMWSRQXXnFu<7v~AEC^0y>!-F zcnhvq9N(ou!5y*eEEoZ-WLX0TzKCT5x|J-;cAz3`LHoH98=GrHTA5{+Et&#@9aY~@ zo}U=^RGQU!sO5z>O1@g(5XS?fvL$~)ZFup{?`pP;p@Hp_Vm|LLha+k^UuN`oPk-pq zCt6dvOgZtc_+GlbeFo!%xraS^}gOX`kJNu-<#dA9B7mJD^Nk-=MG3r z-|^1w_R;ai?g10`UFYH|9w_^5gRBf9X2Z$tE8!fLz=F$+?p@xt~o{} zm{=t9%AkSiZu#8P^6t-g^^%OL!h#rLf)%CFJ`q&1cBPTyfh|ZQMUv{zFDE>3#foXP zm|(r_TQ*X`CF7eKyLxpzV2o6}6&by{7vy75{Z`CJRs)0dMJnNn>GSI0TeJS;ELS^z z-ck8~ZSMQHTbK)k67nX#%=uQjV3RZsPB;N}(GfP`0QzdES2UUW0BE?f}$E*5)l+qMVS&oecu2xcgB&6hBV$s*@MnXvmZc}!W;i3Rt zl`8Xnq#L|isbVm|SM|*N;GZbCT0N^UfUL@^`8Hsh$(swoG7?bARyzub#N5Ecno`v~Z-q`UA^=3lSK@(;YPutaLNWGd zvpx@jAQ%t;B&4&5Ny1_Ny=Tu=2@N6$Z$jLm%0bejeAHR(7fgMD5lx^51l>J63cAx- z@k2hLpa_gpuv!J6C})KV;vgr-bh{`&?y#z14I&5w!>Z6sERm}kRs*K#3a@KjnN9(M zE-+`YIQQm|tD4gwf{<5xDyM#tS*hBWcp&4=n))#usjSqjRgjd7plcE)RI1ST~gx(>$iK=|Sp zrK6N?;1cOt2E}6~E&~THTRwDy5vyb^bBy7E?Y=R0LB}GGbeSq<|CV2d#D;|1^K*3w*8GVm|O=sR>pmQY;1xX}K2?4ZmL&zI(7>>ARK>n4o3p z8%=`6{r2fA!9aA=P2Xrj!$69s%Sxc6VU3qS3kNcms>muv`&4=B_>bIFP1VNCQg3DV z1{BSOSFk?|DtA12A#OCCk6TV1b6U zh_B8m#3gxLcxh_iB07K|eCQUG>i6E9B1G`HtfUKymy-Y%yQc0rXq&-yQm5rx*BUtUn{U7fm^p(vwk9I_jH0wbVrMr4;J}_Nl*H{nUT!|{_k}N1QC>d z)}+j6X2JwcMGRGBxsnIEe$5b6p!Oq^$vlI#KMxbv>%?j`WKbAdu6(JClh=#X=x!_* z=Yg)IWL}KT95~z;{EMJxDJ_sx;=x18zXojESJTcE)N+f;{ASl@Y`g0$wUZ77QFR?&7u0<&18x$@Ff2 za9&by7za3<-UkKkJv?60QUIW`hOz=6*c1m)jMqU0@qIjB5>rT?!EB_%$1!Hf>^_?9 zCdDo+sC`o_|2Zn2-ucZHO=nyOY2id#}ys*`$pV0S#oIE3%`bXPfzK@l8G(osI^&`!ab!>m8$0b&SZ1gCH5)y8I#n zNcy!z(gj_@K)2wr)m;#ggt^Vx?+hsHgic>PhH*}ls`!m>r08Fg8Ww= zIcTY4qpQm1>QotB{Ll-O2yTA}j8ZD8qkyc(o-DcugRWldslk09MbZ`~jN-$l=*b^u zbg{hXAsX*ho8kn$51XVPP1Zv1!Giw2XM747+gs3?$2Kc(??6+^E!vs#I6#_cs$f&9#zNRvi+wQEUi7UP5CK$g4$OGAt0G=XHPd7oJ=6ygnT0^h`wM zqS=zAiN6~6vSM@9nMjBRGIVz(S-CrbF(@N#(cL9bL2fIFNoh$wC+A2;+@_L*h#>XM zJ2w@S5wkmdw5?3{rS)Eor;g{^%5=ZCboW&dUOL?~8qBl3Vs_CV zZ_%ghBJcB|fn;B$LNbG&>a&jw+dfRO4@Vxqq#v#LYWX!b6r|GckNUbxzd{E4gLwMs z1iKd;S2DpACEq}U|8bn3g2|KpJ?}iprj|&8MTd&J=7>^uoYUPw{Y6f(1I-_-j!DM* z`lwSm^frHom|(q0tV=r8b7cOB-2W$;S(}&3@)p4Z+jY(sY|Kb{-6R(aWcd+YtW0ie z>dM$`le|^(VR;XznG_5zc-JdgSFHd|LaWaS0;KxWdMz}LoO(VCk_FX@ULdFBfTGXq z70vR+ayAJTpCwK(S5oEhKv{#WRK=a~(?y-zs^pL>@+Si8P^37Z=tDR6^i5-Q8ERR) zX~)xxuPt#Es>!t|K9qb`r^Lx!cQyF0g3b6V=y6z}>f<_9krE_`_URx7wavGXSALq* z_@$?NHE!9t<)q}GpiQZ;z(}Sc=?ro}ksmh$PX8`uNw3yK>E6HmAYgQgiCY*YBZ?+s z2O2596Yxihon+OriQ6k{w`05`K8BUd;RUpWTANzGSa+0Kw=6$)QcJNB509T8?Cd?= z&xWs_2FF4rzP&aeRrAoryoj=vIlrhZ1-6fhxCGaG!s5bY8srmV%fRub86MdW94N z)I4%((y{TW-F`hC(KX?jKT?*sZlx238^;$Yi8SM@)gw=d*Phqd zgr4-9*shhhZLM3QJG-TXSGW6DHc5+EaDtoW`vx)DyC0WLBxnp=Be6J!5PnrKoFuw_j_zCmt zF2T!Qu=^?rw-Vzhp^y$;ZcRdmw8hkWMP3ehPuVb-`(L%(rcptz%dL5gc1F*8?_d->$$XjV*Agn|yJBcPzZR^==mAD@yNKjV|^&xRQb zB#=0!rJdLwIZ^d!;f*e@J{x&A1hg}41QgV_-1Jej2X!vMyJbSM$QMgvg$6RGnvAr6 ze$H3*+Eo(^1sW&MCIy{aTkvMJU7i66B)2QW(NA=UZx%91c05AMF*wjUrc-WTRPT7A z+L_KmfyQYmzh92L7;)`dN`nJ}8JyTp99j|-8`^R4XnulGMcxmv05<>*3pLePo^BGsjJHUZ1Fr~L{wnB-#a2Cq~ zQ_>l?j!ju1B5i>w>5(o?S;B$trdM2MbkLKRONqxtqNErwP?h5iTaG9cIQb{DI&k&z zhK~j^UA^^SRkvCF@tL|%`kcoTx@z@~;Ux(5qbL3tu03Ie2SQy5Dn+9U?>fb+Rss(S zG`f#-ew&=K9J^{C$B{syi$?X6zL;RSTG0s6K<1@r;yG@#Pmw|biC6ySIZd-WEDjYO z2=(ZyN;DnrTXA&dV}a;_YBAKbLRT!6rXJmBVrDF?Xh?R7+=e5C3F1!}F@`~^Z%E9T zBrZ5n0SRmf(fxu|t9%)X(@6TS+Qr5ZL8@2Msz>Y`(VT74r`_l0#hA~kuDX&Y!G|E- zbC`8AQxsHK09F95+H(Y8Nvh!3)GAaO3{<+_x5b}?%ThW3EcE2H=j!v*<$JapWj(Q{>N{P66IU`G&0j5`7g>W}b(edaYqC(xl1 z)X6wMFs)!y5P)$70Xl@(41ka+wJ7Hl@WPLO*){`WxFEj)(e%)cS{gs|P5}st8X)|1 zTRf26!jqOPs7Hb}3m|biR+;YNSrDr5ZULuYVGB4>P78{3-o)de4Hjhuf%||FrPP3+ z3(Oi`QogEL`90-9`T~=#nm(3`ZUxb0Y7G@6z=d&xv<8ldtEQFtA_jCp1f^B!Sk%0r z`ulfkuUh@xYqf)Nx(v$As^!!mBJX~#PQtvJ^{3=0`+D&${Xql8?1au4u+p!PS5Fn4A$*-smP&#qEBsdTpJB%#k5xi>tuoi?gbVz zZ6comdOo!8x_W2L_4F3D}9hW~`vycqAo7)$I z3+}sSHbzYcg{hs*M!HK1!bnSIJP3 zto(M6TLEb>$`UM$RUmOrHbB2$Jzb`ALY^5f^PV@C6r38ZkW#z=hLP_m-=)kP7NRrr z^!MVTH}vjplMI^GtA;cI2*&#{#amtsbC1$QAEiu7+H^zHTk?z^>OfrP7Wz~q_ zycgpf&4->7tRTdL21?r3K!P=zr)p=+^~Ya1Pu;DyIHT7>tj#Wk5} zKgMNQ8VLKWLD)pypybKw+*%-ksNXe+nlGo*86AkGkcB#)jHgdh+N_-Mv@g z(jtsrX_)ZMD#59o3bt9G!y=bO<3a!4(ly8`Ss?4@RkDte16AG3Uk}2V{F2E&pafOZ zazIi;2BP8MYeijKs$zkxdP~t3U>F>;V@p{MNcyBU^VEWxSIi}Au~*2tk^yo)td-+m zjV_2RSm8BSIRy_P^>&HWvyScJ)v=GObR5IFRUM-UA)X(CWC0d9f(m8`V4II>#i+3j z>xTs%85Ll2E@^y7`9Qx(5pl>9Bikx2`lAVL>Z=hdoz|cat%Q_tm6RHM2r(HHdvG)v zjF)r&n1N)EMP-mkOGN=Wk6gQy79k_`^e~e*dy>WJIwc`GMBIyrh-8ao?N1<}LvW zcuo6#SMyUf-N}$2tdNzyhe%F1;&_|LkSud#yXL=g0InEeZ~cfwzbx*)-BPW>k@a1nGka z>9|mCv>vZyqqmmVqJsKfgj(&8dc=|q!CK-H6SNN_v~)-G3%YZ~W0sWpTILECb4u#i;?ohb*psenAJ5JqN#bSsXxu^Mf*t$CQ;D<57RE{vi8C3$Ti1 z4GoVH8X|ct>9m^_l)&KsG{H|_t3&!!==|*w$;h`^2FHh*#|bqr`{Siw+az=IW*tC= z0@Zt}`gTm||E52q(r}_qs(LkD*0B0*O^69rH{FJnwtmR1hSu%qgdN|^YoG2IG8B9m zq+4x1&H5(%@xs#}8A`=%Z#6J%s6bm=S!z(k6|`$>{x!dHKI7zy`H({ioB}n zYBRqMNLFg&rca^QDN%Qns~CIhQR1UR$^D2;%$$N3L)nNr))v7QKn3&1OY&!@eeney z-Iy;n`*T{K?2pFFS#CF4*u+ZEBUnT|;xGYyxbn>L1gnr1HO!qf2Q)?P(Rn>Cb(FZ^=4BPnyjCIn^5Ij{k8x|PRyI-$(DTq* z(#apypPrH@=l@6Cn|8}}8(E^R_vyK+EQu0D&9gjPDNp5B<(gWeBumwz%ogeLYuAvK zH}l+kQ_M*@kfPRl|G*!+|L+S78$bkrlac3~WY=0{kxZPuHv)mc3^4Cd^y~vxwNwJ~ zQGROAxg7@Mx5(h<@ylC_*8L8P*}eUmUrg06e&yKE@Jg^-QU<#Rb2^jC@61q)u>(}K z2mtKa4?p@d@5OkX`wKbtR1>J&j1k*lhc zKu|POH7zZYi@5Rc$5*C}&Pjv;N8uUDVaHPXs*ERYnP+J1k>lpO7VHr*mI zR#&V^^6V7~PQbT`Ft7jS-ZPkp2oDi&arIVeNR@lcDeb>CZOt5l19D=#vtLI!xtE+W zcswqJ`$rtea2X=#pVI0al|b0A!W)G`S=xbweVUoa{Zl$2ts)o$q?8K8pcI4*Rv-yJ zWRxu8o@Jp)Hk#sP-J!uO!WbYWc1x@^@0i$Oo--Xc)N2>FJuCK*@}jO)my`fPetg(2 z=pkh{%pKh}TmD!3`|CA5FtOdc8=>qu0CD5>e<*@}3hX4M|I$hYb+0gWpWeTJ7m~!w zuZr1F29@g(;85@q`z$895eE(&CyB#K6JcR(NTC8Thq*F zWr(M;U#_U2e`Zxz6H&Di3^uIrD&zmdm!CUlEEqvCL(H&pcaZ4N@RtA1%-d4`neGwT zHJ{Q2DGShxo4 z0=p!woewGzN06Z}z4d03{e-!W-g^O662;)5;SG@+B)U9MZ;gIqIuyHf1YDbrKmjc^ zdzk0EnT}!YVd0?xF$IQ%JzNihsnE25$Gun(K*tY+A(4zO?Y*KKi%H%%GmB=-qZcHZ zpseOGyT;6}t@-5MupSdAprz(9v`obNO~ZPOg@=ZBDkXJT(M_52%lYJD!L=xkcnZk2 zTEu9e=}iGZaofC?NYS`-d#7gPbKGxo4ycJ9v)j-TelwcP=%T7ix+r2nQCReu`g%-- z0$SbRe~k)o zV7n>VvV1A-E~t}PG;lp_(^>1;*QJ>G{$4R!GDeH$OMt-O$|(LY7QycHGU8a^c`oK; zYVK90TkpPRxlvqrER1G}A{dxnFEEX-=YGcv?}%vDt_mg$q$w`=Unub}#FL7OeTJ>M zrCIhzp`JYx887F}Lfk;9xa6Wl<&lu9??sO5hA)f$T{k~8Fa>nl9mf2kBf5bB`i-c4 zz8h!NRq?Js$v}Vt%TtkMB^yP>YeOXpi&MZiS06DWb;P$gz<(*~H~(&3yYQBwVvklS zD-sf{N&K-%WJT#1e*#vGXDO}{>%(KPz?0Mydd8j=Qb$iVFhEZ{*>53a3>`fgP$iav z2XtleP++Uk*)8x-T10IXEzS#-io8$T`$J_i-XSRkyuF#R+KxjCt0PBv&^avDf$ zcmDMbZ+kLbgF1i00Z~5-j!^P2XQ=UReYvN@C_F6u+wq=Uz&`3^l1L|yw$Qsvw+iRx z2bCv@Aa4|MShAk^(Y)qCw=cWf-&x5j)~^EkQTydoCrDh!o?fneKxYYe0$-KQI^>0|echNcz!wdT@OH4<9d@ z>>+8zGB)rSbrl>kUc+ZddEXp1r0mlb;9}dGVh0|;iW)dF1iXW9m;f64)Ac`-#XWN+ zJ@4Erma_p_mm%;W<|TZ|#AKC8akc?KbqTCey^i#pcx|qlhcLHY_( z8>ZP8H0^YU9;cy;2Cu|hiHeC%Kr!MHF33ZU4ew||jn(|(K$~Qlzje*A#4M9eujdP! z?Ey&>%rfcad`l{XOFetbAzA9f{=Rh;$!R_;BN3kD2&X5i0huYReG>0{s&6QplLr{D8M zb@MZGfxyAOshRh%6?;U0$a3BS4=L~B!*W`BTJcJBG!>hRfTdseyODW;a6kIk{BOmAip|8E#||b`&31GM zv4iqz(!#Z@ib1(vinyJ%T}A;n==Nc2Hd=r9c;9@snu$FY zimC4-CTbx~QkZO#AeH@9W4S+PU#G*y-Xf?5mH3#$0rkcF8uLEul17G~lB z>AurH9gqH}*)8FLxF5EOb2l}Nv)f7)tB-17DaR?IXoCcwmOXy5QsWPpmSZP$3Vu1=0f8Hk1T%<|+SO})JgwuU-H?5+J3b>-dB{oE4Dd{_Xl$acJ zfPv`^$#huJ9YQ-Qi*I6Yn6ugovFcUiCYyno|+$N{RJRepO6wJ??ciQKs zKl&&7gAI9fgE(s~HNFiH$BVx)NY8lq^LICof9o&J`2YUbkN$ki+}0AV$~HFujLj3! zOoAes(p$dnRqvh4d<7NxewF|JXuiK5hmHG;TT#K9yu=jzZo58gMl>@g>$k$+ zTIm@uxL+)A?=}l@UQMyJPeJW)!Td^z`EYS%vd_$}h$J%Bj7p zo)Ig?VZgB7Ucv+0b4Y2~%>RhSO0iKK5E+?=0~gQPmX@ZeUJaHr;DPPc$;EW^!H2i+ zH2VpiJ=`5G>_w8-baj%rOi~fD43^DaD=4UMrm42g6>S<4D~5`ep-36PK=l;en!lp# zP0WTnk*}6*_jLGxrr7C#$NRL*ZAQRmv$W442L#byS)vIY{}*M}GP`q(#iN1ZFCE2> z9*AdN(PFHl3>FLoJ`YqM#FYen^5D=w@zi8~IUR-nVfj#;RJR{GN8>nUeBRyYj(-{U zqdXm?(~5#DYQ?P^r3^SA6Ke7Z}zD` zx~`pPP7%E;nTvSH-3`XKoNW0EiHg(e6)Fn_mYW$1ZL?to)>40{ueYTYsrOrm3>vt& z1y@r#S-on+mD=4c81cZz^X6W694c=>1J`rRj?u#I3lSEH{tl zGjS}UyA>lI_!2A9oZHMgD$iO+4@uC#^-Q$lws|xcZH3~-my#!XByc1#icV3P7&TPX zNa4VilotIQYk4|L)UmV}9{7@|LB9_bH2?(`o~u~%hRIdL17G5UBn5RZW$WmJ2^zSP znoPeASCbgeqr2^_qnV(m_C*WLdj9{7?z(!N>n9l;&@Fct^+N$q{K zrFV4-;izMqpTdFd#Tbv0pSP1oEVL`;)k|?nAcFH<+H`OCvW-62UfDyickSj^J2yeU z*?(gEiaiej)Ac_!4AAqF@NJ8paXy4r>=X;gYE_;G+I}4n3fh*3{edo}c|4|(`r@#o zsf~il+41%Cz;RS%l@WS>5U>h*X%uVAUG%>c+qDAfQH2QyH2pk$Ei}ycsuT|jItsstZe-V0wAwb3`=}_U(6|0jd38A*`bF@ve5FUo} zxrh%f)!MkRY4hMPSZz!Rpr#tDsJD#Rz zC~bn6jvt!8vp}fW1Y*EkL(+;0^5-RaPO5R08mU7A*=S0+$Mu);}izg39lQISTN-F?7-@idgwlJx6Ehpkev$N^4OwbitaR8`GA!DMIIzk3@-><5p zgDCXO=Cq+cJ=dmLt7)%&QX8X!vKXUea#IzZ?U=*&k5Mf|Q1ue*b$h*<*-Oic+v_ze z!`?>bKfLU6Xt2MSvlq78YgUC7s6PjZdd%j}WyT?#vfu84J9XtM}zGfpHMAsbbsRq*& z6pUfa=6?9a@8!jw-7 zv4sVv%yBrV$%u!^al{6@bb8Y%&Sqav=!~@FIzWRvbj`iB{cLyL=@oZ#Dm<=815MKJ z%^bsm&xH-+_Z}F$p=;`GVa9;5w9=lTW*gM;n$Pi}B6Lm@6$J|@UNTaYgOMPt5UlTR z6&n?z&IuKvF>49NnRx)_*vNXQhU{kopvKL^g3r&Y+mvo*mYt=3x zC4dz|uj2FCiSJ&$3Wf^K5OnRYez=%=e6PM!3JOM^ON^0H%Ko_oDmY*FelcPrk8-E} zgvPzxeXejo3+*FtGvXl~n>tAi@rS+xpfUxNgtGr1hvqOtNKzz26Y$@eM!f7>(7!B!#}) z39+G#+#`d#kaP66I>zBPazKMU`1U>f+IhjZPcV6w=GKP8i~;WPk%|!VoW0W6nmi zhUo;)P)V@_&=H2cnT`X!Pt7NkHHX;T!1X zMWec!A`2A7s%t$KX|uboPKfBom00w41+(o$4BLiO;LxEU^r~5@n1-#gOX`F<;G@P6 zG|&{5I+-SFjY_+bP6+Qu^&}L~BI=L#k)3S{_Tn!Ex{LKQWN_(b8fBPGd3knAcCrJ1frgp zs>vSvmRU5r9IiN}B^W2PhHXf26bVhZs`N+5HIP`HqnIk-l*G71!ZCF_dZQB zmp9*>vi56lJ;*lSaBNVArriGAzVYUS*^Rx)2#Z-2eCP-h{5D--@%x13lM1=mZWH!{ zCX8~;`-F+wR?>8_JIrLIymBJxgpC&M#0D5P4hu$>IosfK!XCB?C)?b^?OWc^(ciui z7r6|Rvo@Ee2`X(RIALL`T19W8k`*(l^YnVnfd3CR2OleBfJW@vg!1|^qOzoD-IfsXe z*jmh&&HAt((MthyIs(P``?VGV7|das;l58mzCc${%nst-p%Z#0h0N#J;J=AM75E=r zH=UOi>&zAvoH4eLuC3pVmhqlY+?DkelO+ZZ0b!Bnk7hb24pj1U1}Ds`lza0<2IvTD z>mpTs&bas5dMgujg%PAkZJLQk#$^6j8(o9Cluxbo9ziNOq4j5Q;A7uqn^{h|@}W3E zpkjp1noUg{e$qCraYAdYepsC>CJtRc90PQOk+-n4vzJ`@>pk+WvOrJhn3PiHGoig_ zpz1VG6dEqO3)u`T?Rp?zsXk$fx)MnxI_Sg1a7f^$9*Wl{olri$*o~Ms39yk$U~^$C76IJycE8-5c5i z&Ryt)%kNsttHuRsVepnpa|hIzjZWAAqtN3CT1D7BWjxRhE5Z{%L>SVgmN3IXW{3Vm zx(pryL=)&rj;_o6CRq<=T83%@%S@0ZDt3~%P(njh?3@L1!rh40j{XsVcnq-ES2$ti zsLgrnWDv*OYctlIH5Z2~R%!#a*AX1#Ve^)?jQKt9*QAqYQS*1(_QDJf{h%!}b zd`Y|g*4xh8{f_Bj9FW2*ILW552HjkL$*0{1s^BSnRe+fjJ)?jC4*}dg{Z1+|ML3Xq zMsSext~C8_cJRyPtbxXP2|DO`L+7W(+Cc7KKgaP z+XsirPBGBvx5xuYJbIXe9g#E7Vej+#^h1Z^j{7&-Zu^RC5X}ki&bbAz|!A7GldlJ=HoH#PN7*<}mz>1`Blq#oH7f0>V)g7gvk` zKRjm&PS{G+>N6=mB#8K8lF%)T4;lYJ-63lM3l8#d94O}B{7$XTo_9!3Sf4m*fye+E zyzvh*&0{Fc4g)p*oB$$3#YI6F5xG5vs<=4|fR2me4$=A$7=N z2?P*Ph!G}@@XsM*golR!Q9+9bI)~u#28#>I&~Qidm>X%#ISsme zeQDpFk{f_EkEY^WUdSrn_O!zAq|df;pRj(Lz_I03ZRI|X zwNf@%D=gj=vQgg3eZtIpf_cnjkqgS&$}zi&<~-$SX`tuU#q47AA^raa&5BTOaP^q> zGi`ZoQ@rM8P^>X3aG-mZ|DI9(r(eogh&37B~9FVS%OL63*rJrfAmbP`!!F#Pu&YT*n(pa|vWpRBf9 z%ExqzqFB!8Qf>uE(1!4A)>|r3rb~Dha7DVLPNsv8u5<|;=x(6gjGVlJ|3im@i%1{| zO-}fU2k9*Dkh4}{Ek`3Z-v#&bv@3Av)RmED6mJ#ajuy|dz) zj4rv7cp&^9T!OZfi~Ti!+rb?i3c&v=fQuWbe$xdyxo;};H)u-TZ0KT_2xf z6$1lRXmQN1E4q+_l}MKsCjb>GzCMU&$GTEjAW($RXvhm~beGVWK!JuCYqxLsBjR0i zVu3)x{EJSAPkFg_35F&k4yj0zU((Z+gkQ!Jb3$`O<7|M`i6kH)C!t$mGdM<9l{s;j zc3!}NF64=xWZUMw>n?eUNFWJ$vOmQxaN7QM$&-Ks9nVwNCU(vf>q&<(kQGs=pE;g=H$~@xacD{fILRVU80(+qHfBopOq(9rJ&^iY>-mEgVlLvYk8pv*%H__dL?9<6+ zzMm}S-*QWSbiBdc?PvSPn`Ysp2a9=H;Zpp&Q*S~i+o@ZnYuk4O-~ z_f*W=<$T4Dy((g3EngN395)gUTARFXc=uaTd8;%Y4ou&ROp-;>6|1orC@>_RP396g z>EYQ93@nMoDB3M(rjR*Y4~qe=!nC=b49R5R%1pcId_EwPg)1`6=2xQU-^+RquE?}l zKN1187n6f4GSMun=%4pua&Sea{d|9VQ(LP?^PPh$G974Ygl`z^l_v)WrXD(8+Kj2)WO zV}dhjtG3N%F<@i@9GDW{-)5ba9=`9uz>@er9dnRPd=KCEXy8e6Gi1EjS}?FA{mE_g z(R6Isqd%D-f-kk+ZnF?gZy)P9v?9-t5o+t=9e9#b%CpnM=Xh?CQnEjoISd{Mdz4aw zh+L(7W(QY3rs=~M5y6*QF)OS-RORD*_hsl=sGZU>11vrW$9Sb2^x6*(v?Kk@ldSpl?sB*kl1;P-N@|R9%SAkLP7m^oqCC`So$o9 zPiI8Dhvr?SjvmTqLcC=#ZIKpjrx~3cJuTxVRA8BeLC${kU`S^^B11Oo(VcYz86CPN#mdz$gW~pQC0~B)OeK?A8RxSB9ntwrz{?lk{ΜpMH6p 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 (yI7%CHTd?k< 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�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

({T=FE8wl9C?5mHr8{MZ3 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�$6@~`6Znty`O(VE9bX+*)caP(*&we*IbCl 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 ursjy-ZM3ANBU02rWngG$Jv;u~9ZxVJ7M)PK)?% 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[A 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ɇ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Ƚ$rm7^RNI5 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

!OXFC4*E6wYyODbBy;py| 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 diff --git a/latest/.doctrees/examples.doctree b/latest/.doctrees/examples.doctree index a274dfa700f4ed377447209bd39cb8a6c0d03f8d..c5afb0b26f3cdb0faa8d8fcc4c323b28c73249b5 100644 GIT binary patch delta 50 zcmV-20L}l>71b34fCZJxkp#4{yx0d84QXv*XJub(Z((Fz>% delta 48 zcmcaAdP$U}fpzNfi7Z=KGFUT&H}1H>&d-yYo0OUopP8GOo?1MmbMi8dON@S-D>-8r E0l~%+G5`Po diff --git a/latest/.doctrees/examples/00_basic.doctree b/latest/.doctrees/examples/00_basic.doctree index 2dec730ae219f1b166b2a5e0e11348e644e70246..0e33f582a68e7e64ea29c81e0c7063bf9228fd6f 100644 GIT binary patch literal 9895 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 literal 11411 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 M82vW8Ys4@D0DXN-*8l(j diff --git a/latest/.doctrees/examples/03_fink.doctree b/latest/.doctrees/examples/03_fink.doctree index 23659cd0f5c7abd10fbdccdca7dfb2ab87eb7e0e..9c67e541d6b75d0005ec7730a8860587286d5aca 100644 GIT binary patch delta 238 zcmZ4Laoe4>fpzKy<%z7@Hy*HOVw9Q0EIQelS!QxOv(@Ao%(9c~`JE@9WtN;Qz``;4 z5VO|gBB7AU>m<20&u3Z6x_P2lEen&f!el;aeGv7LPY*=N^NUI;D-`79mz1Oy=@n<> zmuqNpP03)7osuCIK_v@7_B2R~v1UkT_!VznAnnd3#+#X&n4TJ+lb@K9nU_ALhb1R7 TFMG=5Z;F=~J2#(HieUr*y1Yv) delta 379 zcmccZzSM)Yfpw~s%0$-fEE%jB!W;M4Gl@CyFfe517UUO|C?x0S79l23u1suDMHZL1CfNpLkURmASAU}+HGg+cDL#7CKzMT z1BAvgrkU~LS&i{#deq3lcr@M(2?^1oCu73J#5dd8AEO@nGW*{5ef{3dd*7y?&+_;A zCr<||{N8G4(Ma0`MYm*2HFU|yN@=4|l+Bc!GbuWeq)5P>H@4U1v%GR!Ru2~QVk!EOR5i&m5iyPo)aZW ziUTIC$)*{vqn%`1CaM;4lDb{UMYEc%W<;^p!ddWzhM|{pNji?j+J7-D#R9|{m@4Qz zK*r!Vk)+sdmsE<+{M8M`Vp`TSYDTsc6Pm_cgrWu0MiJvZ$Rp%wC4jF79{o&KdJAmOdfx!!r8oML5vvc^mJL1&3v z6gD_7NUT78t3kJ0=s_|lZuH)2JjY|_Ir=I%SozcitV)||7*rn-sarbz5Kendon?Cy zVG{OU@;0SjkfirANW5&57zE<8e@l3L^GyjnNqT&fGli?jFHCbEBn3zE0~HIVz-xQ?S{8;KFJ+PyRCQ+3mlHO(1* zx=WXFm$D@niW)pC`*O=gm5714fxN(VbmYA(_*n?B&*7U?Y_zs`QMPz8n^ZP2f56)Iv-+y%ii^8h{cj&I-UG|EQh9i)|jB?tq!4$Y54yPcI^>mu_)40kbe+=H z2r)*=8YbnVkt$W@kdbSYpoV$*OlXMN0PhNiNnDoalotOB-=N0L5vWQ^>;KSm{v{!U zO}|YWy`bpxk>3E~WAnDwAdWE-RdevYhOE*_F!_w=Z(JJvhG;;EgbHoBR^b<%xWc8zGc>QgRS#TJRf_lPExQE yrU&wH6}F*U2{?*`AvK~oW)AW>*v|FkTmzD&PF667bBNyx@)FN+uhZ! zs$T6LY?On+19fxfmKY3%`~^OS{296XX7I(}KOn#A>aQ82ML2O57P?+lz0co!_1-+~ z{q^K zck)^odlb z(@-WE)r2l|_Y;chspwccQ5rVfy0@9n_{h7u_0@h&u>C(7I)l?n-`r@Hl{28p>t2%+ ze#_a*e*z=<%kbk*@&5|`U&a4xFo6HORQ%W<=XW8x577fVfIsO%(TsN^^OlzzC>Apc zKLv1lK+mX%ojQR`gZmfv-wtRR1tCp?84D`oSQI=Fh6kC*Cbic88)mJ|zkPn2f6b3d zTesn=()QBkomd#AXiR3Y3{Sgu-+dALOHditU5Iq_PKJOc}ec$V?B_BS&B{jYdYl~pX9~w&@E`$lfSf(uC#$@`<=@b;6 z&nAG@v;?060aYPiD4A!SiZQ{#VTkN%%E_<`&0`ic2LHfP8f@Fku+87≫txS|OK* zt5AKhbx;?oKFmc2stx55s5-n{0@cx5?2N@SD<857uPd}R)c<(?P&?3m-U02+70{9g zvZ))7+MqoOklR7j>T|a_^&JHJ!f62h+qiHWwfFs8DCVrtKG=7Vc%zP>qBZ1;t|2Jv zd*x$G@P08om#8lFgU)+)+*Pnn=wYjLhwZ<*Y%hOa{t5ql0iWEk?|d(#zkK>PnEmC` zzpoko3>#Y%)n%^x*424=s}9;qUPeD;Uf!O(3p*a(t{waT5!PhszyF&o4O(}#{;XF$@Rgw^*Y%;E z?L};sFCcFB2~{b4g%gU=1eAeMXla~L#m9D6q*-nVYL1L>s<4CH%#YtV)&k!*S2qb$ zN-Dz9M#fCR&ra3Q6n0PMW|d2?Hf^VF$>8w_ec4q^KK2F0La8DWu?+Zt7y)pc*nTL}In0DdL`2Zv&Bb}a`*xS+ zMv|6fuL^)_C(4tIG{A#nOM(FAR7zvVaId7myQy~JZ%LVEc_aziNu1he=b6-ubZ?d@ z2@N?DT6l==kw|FQyu*-6%dI*g_+2}OF&Zi0M=_wLI!5Lq_QTN)_XQznTHUyY2s>^O zLO#NX*en6j1D91mPPzaPW043`{C@vcyPL7BeUO|nV@E-w%ZN)3`=h!^0$ES83&UkP zk!mq5>~(jtQ~)Q5VF|)x$}XB^$FIEp3;1(a&BHbJj?%LKSCD66ZHoucq>#t zb%P9U^JdX^DTIL?^esp9-*@=8{2Tt5FZgHtQ~ovoDz^i-Yc4XV>jvO&m;CXPf41ab zFLVB~qkMx=XMqXuQ_LM-@y~O+(+y}TVJ8%Tg;NnyJ;mj1ea@TGrTBCB0RaF=W-@Lt zQXYMAjo6$XtZ*FEQp-z+EBsM{m2oxy`Z}*_XTuIrRYIA&no-zMDB~E;hYfgHwtiR9 zKY>p^D*lKJ!Kja1!;c*rnD7Fd;<7>>HRLj^Baw!29yu5-+%G1>$ko59RJdmu6U~1B D{Q3*^ literal 0 HcmV?d00001 diff --git a/latest/.doctrees/license.doctree b/latest/.doctrees/license.doctree index 0af940fa172fdbb0b846fd8c010b650bc37d1443..687b51b8402a97e54131a626cdc02f77440ec4e9 100644 GIT binary patch delta 61 zcmV-D0K)&+B-SJZfCZIHkp!}_x^xKzXd7rRbF(-K;sq8BX>DO=WnXM>VPt7;XOxTt TY-w(5l#?kC(gBIH{199L!m<|% delta 64 zcmcbnazllsfpx0yM3zk~8LSz?8@H8ka%lirY#GuS`lXxoxgN3d^Q7h`rKZGZ<|d}6 T7EkG%tS)eg(QorFffz;rw(=GC diff --git a/latest/.doctrees/publications.doctree b/latest/.doctrees/publications.doctree index da8f3361a2dfbc2233e00cce81590994906c3880..cf247fafc394612a8a7fb02cb9fd8f08e0638793 100644 GIT binary patch delta 50 zcmV-20L}mX6@V55fCZKHkp#T4#QO&p4QXv*XJub(Z((FTB}Tu^OE_Z~ E0m$GIy#N3J diff --git a/latest/.doctrees/publications/ags.doctree b/latest/.doctrees/publications/ags.doctree index e9a185867899662392d5a0f51f9ace797bf27339..c9950cbdc4bb278540d619df9c9e488ad526e05f 100644 GIT binary patch delta 141 zcmZ2)JJFVzi8Vty!>f3*J?l}Ra4Jw(YqKfa zBvv4&0;FaVPdJd-1s3n%DPr3EkM9LDP-HdO0D0kN5N9Wtb6ad0s~B%)Zen_Bd`^C1 cN@iaAlpdCx%)IO=lN)3%F?MbamW^Qq0DR9bKL7v# delta 144 zcmbPeyWWKbwXd7rRbCZw+(*ql5Op^}_DzlUYbOo~v3+V+G k4QXv*XJub(Z((FypJ mxS3Jp3M)TPYHm_$N_=K+VtQ)vl+MYoB`-1hZQdsp!w3L*NE|x= diff --git a/latest/.doctrees/publications/loadpath.doctree b/latest/.doctrees/publications/loadpath.doctree index 598b8d79f0821da85d2fca29d96a7f7415d789ac..b744709bc1387cffb4a941d229635d13d6911a74 100644 GIT binary patch delta 75 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 literal 0 HcmV?d00001 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,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 KMNUMnLSTa8^2MeA literal 0 HcmV?d00001 diff --git a/latest/_static/compas_icon.png b/latest/_static/compas_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f112c7b3c69bcdb0100652d1883dff848e77289b GIT binary patch literal 2780 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 literal 0 HcmV?d00001 diff --git a/latest/_static/compas_icon_white_48.png b/latest/_static/compas_icon_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..f685a045350a0709a004cd1f823773df57990007 GIT binary patch literal 25528 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 literal 0 HcmV?d00001 diff --git a/latest/_static/compas_icon_white_96.png b/latest/_static/compas_icon_white_96.png new file mode 100644 index 0000000000000000000000000000000000000000..157f04c867819afe1097d726548362f8d15aad34 GIT binary patch literal 52767 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 Avj6}9 literal 0 HcmV?d00001 diff --git a/latest/_static/compas_white.ico b/latest/_static/compas_white.ico new file mode 100644 index 0000000000000000000000000000000000000000..381bd9414fc39233e98365aa1149bccf33b64f23 GIT binary patch literal 4856 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 + + + + 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":"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","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

-
>>>
-
-

Z%8Y<-a9uBRN8E^~4*g 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%0Adf@5E>9PzMKFtz@-)n z5O)+85Nq+X5;z&PtOJk>RLkO+QlN!lte9?_MLnfB+Y6BZR#LS|6mqXP#RfI* z5@#-$8b&YWHVvl+hL3KXIl;JHUb%?;xJ4Y<;Kyv+5Skw}=A8I(rb{g_!6@$akAj6k zm|)=M-YNdT6bP$Oa}l*@n=VpfToziLY!&I%=UXu|sh&u{NJ( zP{*rP6}Y*3h5rsX2dfOnK@7Apj2H*l_NFGrzFvp~5Q8N-|Hq|M>|@6`agq&oG>CH- z%nqZUa)ZLB8Z?A-^UTS{aq{X#q)3f8vO$s2wjne{XxuqbWN(*RD2lWz?s-q&CDic~ z*tv}RRAb`61{xKHjk|3Vr?GK|7a{@J;FnOxPw;`_U2$3sP`oY9Rxl`xo{4e^RgIE- zh4chtuDn7K(eRo$vVn$|Z9`}@(AaW9!>um0P-s|M+zCd(Y&ny~V}{IoS9ISx9zLLD zVSHFceU@xmogW684=Z{h62OOoOCm@uW!49Yq2k;ckk~?;vS3IU-4l9AM7PQ$#b9}@ zB9dZLab$xO18qZSQqU-KB1IRMS}0Q7UfeUD1;3H5PN`XBc~wf`VoXZiiId+aYrJY# z9PjKEFO{%oJzXpvJ}G#068s=%mnxtoz$$vZF~} zw}|XGPaN4`$2qnkG&^X-Ik6+_QVYe7Pm6mG-+}`Wb%AWG?=GD0sm8%zNu?;z0zO7KVr|)n_># zgADOPBmfZwi#Q8&>jTA6;_MorI9!~xU{Dwx6uOABuwCX{;t+YgBI4peabyD*``L!j zxS)~dgp18wYN2rPNpX)u3YHKxcRjzU_ob>maZD%Bt}s?yVw*cXow(2okpNZ{oC<15 ztPd2Ah*N8TVvaat!JsgDC-lN;OQTFm+%K|^Efgh| zFD@ktej3u!?|6>O@$ct6Qkqus~WE(>Bf<~GXFMhHe@2G|1#l^)v2nia} zC8gQM1_q3yRchk^1{xOzj3aEju>}|xwk~N^f`6Gqy;un#N5QiITCj{P`_OTcIL`(; zP7tRr7#&7eg+2>_HOyqk1bM|GvSX|`vcZme+Yp)^G}fHhaga+bFxMz9I|>K2w+=kj zpe~A(H8${j=sl`h6$d=fx-fV=WShYjcw`>%LL`701vfwT)=9Ty*9VP{#rZX$@qsvP z!O$?eDDeSOmTd@44H|7u)VSBB7K$3L6n9aUZ&<5Ghcr`z zpUzl&yLhmH=7nKnP4!u_`F4IRXl$(Rg-8H43a(f4KQ8|xlZS~DY;a?Hao&QtVf0bx zJ-vNRGr_TqylN4_v6VQo0glaWLuhc&cyj{BYA&@<;JB{1;P4G>{Ol}Srxt^!8hqDP zPgd=UW5R*DZ4Na#CVC+fK#qci7~Y>(L4JKxj;qBPHqdc}IB~(~Fghu8A%?$g zCOa;Z*DWGDW{4vj?6}A_gk}egI45?DbE$=5$9=^;En0Yv-#b(>mwSGqS`-I0(6TUU zd}y0JO^x|phy+lh@G>@j&go^=$BQ=GOLJ@RqC|y|P0@mRVRTREa!-#JG+y$x(yKE5 z7I$PWA}Rh5M>a_Dn{5b93L0fjqxjQ5Q3cy-AO!{gGVA7 z76ytP#G^hx3N$FT^+F^76g~!fiS==!LY!KI6De`VBKA)Bbym>N8!ZMVj*(X?A|{R$ zM>a5Vm~9A+2^wQgm>B9(3x$c@ii-)~V8$iZiZovjevN8T91{w(EQ}LZ+GbC4VwM*o z0i5tpD7?)2K=F(?w+1Ml6sIg06h`+%n^4erF-Y;4yjBrO@vu0uL5c@$LugXaD03pk zOqW_HQXE#?(-y{6l9nF=uvtah9pa${S{Fu(R_e24bLsq0(6so+>x2Z*!go5kv?aSf zV)PT|*C0k;aoU23VRTWnt0XNgGf!Cbme(vIHP#YGHmI?NZ3s;b8f{M0_|uUZFBO*> z{qzkm=rE-D>N=K)t5cupnufY;6<;i#R*8;d!hxoSA*9TQ5@Mo%kj1$G+JmBI-%t# zms+R^$>+sIi*e}UJsOuyMxIqIii0F*Sr|#4vdx|*$>Uy#1dzmk=;CG8M~)@p+#2Lq zBu-f{IgIX!cIZOmC10xt)w0D*O=l&a%4-#o6d#Er8>CoZ8$y$UMwt^S9&xFKBE_A> zC53M|mz370#?)5x)m`iF7!NAYv@lext3J!|xTTL5A_1rnN z;+zGu!swse22o}i`4MBlVrO}^BEn)vabyD)+u4TDu%L0~1dCoSwNS7aQQS+cUHK6U zU(9ueYD*jw3bZMV5>ssRrY97qcp(x%iGq7=Vbbnj!gZ54tp*=%5N9ix4@S>~-fPQi zka@syt-L}J$#9i8vO$K+Z9`}>(AaV!!$~f+P-M8QxMc91qEom1ZCUckjyk?j&58pO zXkHj37Tcy!L*g?pL;@h;TNqcb)9af~EI&+|U;`H&R0!D=EEpF?A4OX6S^Rmogk}eg zI45=tbE$=5$7%oRxeGPv7+0CDcBHhkwU>M6Cp z$;K<<D)!WStcx=lUFMuES?reHem6DZ3qnu8fQ+hxZ0%_3KmZn z7Z!bd=PvTFP|qi+OIK8tt6!L~1C{ z=ZX_-@FOSATQEP2J_NbT@se#0H94O5LL`+OLDyBj7bn;t$2a1< z1(U<*BLO*jqkybuXsMZx84l~Ui4$^PP`8hjWb&Q&lUjDE?j6LMsN5t6Tt zUc5D2UY&?c*h3uIV8X7pAv6|Xq0}i*yYZMUZ#QI1+DKKxW%J`~J;>&sKVCEo|AjK)C+v?+`Z``Y%Nro-M|hy>7~0J>gMeQanD zr`2G?apG(Rv%%<@(8ZiIN(?g8$SV|)45P)74Kh^PhR|f7vE@XDJzZ*{$nafpFK-ka zR(O5RCk}V3#>9aJG%5@Yci1LQqv2LBL;}!Ia9BZE^|9e?ab68J%oV3Am<>kPgdSGp z$B6-l*W@*d2#1%&kqtP!U>icifku}T9By){g@Qxozk@?%YS89euv3w%>>3Xo(5Nst ztf)RqHcQTr01byOUWkOj!ON--4qJ%xYQSNzI9r4|Yf1B&}Ikb*~z)K_Nf)LnZU)B>wiLnVVmqiR$fGYB*;3=(y= z3Dl6tdLa@3iGteecqDh>!U{)AC6#9e_)-dxL#(DCJMMTCq;>ZRv z&aw@mkwIh42^rNcwNS_?`|suxW3pKvD(0!i#DNMlDhw5G+9pn;;&m@X0#H$Su;FFZ z$B3okyc&%7MVzi+Mi^ZaKA)g*lCP1z!1<%RMiJrgoj9@qhp%lzXgJX5a)QGvF11i_ z_@}t%C=2dmQ(s$Mr6v=&Ni&;FY`I%Jgh0!}2r)!`mg5n}W?qN{5TfA5A6{y`%=##C zxHz{4B@Pj%ESM5T_k`ZZMz_kGMjR-wRYX$kCys28VjtTOniMq3oJg^;ODz;B-YG6A z3QxQ@jv14x<2UraM71W4c?4P&Mu`h;GpFYf=X)U%K#78@o%NJfA0p<66Kf#iesR8n z5n=RA=+(}AlT1F`Bd=0KKHMpeZ1CYW+Yp)$G`^hpaIQ-&6d%qiE*}ae#0}Y!(oB7p zKQH-r)top0fo6pP;#b?$X+Zqsg-8}48nRwmeSqk>yEL%|AbO|}vT0W^AdJ2V1w_6{ zCLmUoS1BSORuV@x0MXSpga!nSFDF2JZ#&9S3k8T&anC~(oVsiVM7?^{Y0W5hv~h$= zZ5)_Db3(@cF11j|7**UkMZx44$f&NW@ja#RA=REZXn}Tx(c%Hy z+-X|e>xD=FEeamcr2eS9y!t@#fjF}UDBc$*EEp6<=j7H8S!CJVCX*5G$mJFO@<%?3u)q#MR%>qhgZ2(7tCJeWY!!Z5MA`YhR8 zIzJ9HCRX!8Bmffy_oz{SQq8ILkz#vsat%^!BhFbcDUALJy+=(!vrJfQC9hUQSZpqi zY`|iWZ3qnu8fQ+hSlOi(3KlOH_t)WT>)&{Ku)ytL)eZ4#)YCxBhnY@NZHr@afi{Lw zW1?*yH8sY0Are51UWG|6^?pB%6bIg3;tFw&4R~B8PF*lOjBd(p7Cz1Jwa#S740-J$ zGUOt0WP>3W*oM#yp;70=kOr4pD2A+8+=G&W3n5@gwk*R=V0@@r69+ZWsxWHIx6PcU z#=BmK1W<#WKSox4(~OcmrFk_-@wYf#!K5&{CUilCnr2{}#j12Wc zBmfWvOI6gL6D8Kih?F?B1|yCUXDnjxgg*MXrBNm(j+9p_A|?(KM>a5Vux$v92^wQg znApOl777z@7Wb@0;hD|4R89TJY~2_(jkr>^Cyr?Z+7(8LS+=>;(}g>Bo^1$?4;ph$_?Y8T3x$t)#hq&S&tz2l?~=Lh@OY?!c7;)+kNPax zBs)I{G&Op8Are3h{~Qj9^-VK&6Q|ao#m?f41=GUlooHt=ywQ@cl)fyoqr6fPDY2b6 zvO$ThZ9`~E&=_-~L{FDmC`v3TE+q;ti{M)V{mzd^rlJT&C@!@Pp+P~T z%n1}HxYR;{qO!P0Bfa%pxv{1`o&Q04!9z>gRg%T3adAKcjSPdvXSRvd(D>L3kpO7; zv+S+STIM5=&N%!-T%FKRt38(mlHJ8aJa~MfkzpX&MLgE>e@+@C z!@Lkl1PPM7OpsKGvuuE5q&RsIJ1Qbbc>7F{l*{WE5hTZoBO5c4qisWIkkH6;0?GC+ zwNN10vA7puH!PTu)K;kDmXgwn^vG0WwK+H83%zbs?Tlk`g7$_nVVr5FK1()_&kqjGnKoXCM019J z$@@98p*Y_LXZnlN7|a=?%cPv~wbbOydh(h^z(WDwu?956=H7btD3mO*&l~J|{)KIDLLL>kx1^3}-&Tgqnamsf_ zHYZN6!H{XW=(VA881WvIPpJH`i(fH1{=NNn;iBwrzYMfY=gg(5Oxp*XU^gimZkXeQ9Oa$>@hF11ihc)z$m zrSGuo_|%x%YTpfcHX0ER4$zn|91KvO<#;U8&kM0^98B$8QZfL~jPIX0LjAY$*36Nr zIJzlQrwY80sc^#B%ul`$CrLuOkdiUBtwlB%_f%Ju} zrzD+Qp{l05x>22CszP!z{nU%O4r5Z|E7YG_Wz+Chx%TBL?~kr&M6T_q>TFrl8M$_q zRTUNKnx<*F&iQw@ywE|d<10(osjKb7RYn`C8dTJ5P4xuzu14s_@r~Ws5Il2_FlWorRp9wnIymy-ZUf8#1qiRST-=1ht*q=+CZPN6&XVx}^zLr&O8v+AJb=~zv?Yh+u z#%VcqkHX#!mFeCi)sOUgS5&1&)untt){Chd(YUZ~oMoFp-HkJCL+Eb2*fvDI8`D!wz00#>YE$*4sZqQq`|KOfmm%60)|0)|XF1LtdwL<3Id|-znYpZ4f#p1+ z>+W@_+DbK(I1s5U=gHgg|0{X9Zhh7F9X@wpeg1Qeqr2_gv$?fx2>o}lC3Q&bY2Oov zIV}U2r@j3DG3`~p&o$D1tZmLTj*hks5jpMsZNIcvJSbIGodz#<&ek+2e(=ms{eR2+ zN_`vf$pf<^2bMQ~vXT2!Z4;++f3g>1nE=VedhqE%ksW-_{aGE`y#<*Ec^C3NWPuXn zF!TfUV&P$E8}l%9S{#R=AF9tW4nsSkTHaykx^x&i%QpM?3ZxK}eW$}v0**xpT?_gW zu?V66{(89NLLE`PWi=JI{eTQmqzrtJwfM7+#PTZ6_;4f{`~*SS+0Fw)lK*~1AR-~bN7pF2tDk7r1Z!AZQpKhwZf~u zfhD=ue*aGcQzaQcY)~I(B)O;hOvedo58Dv`?@3;Mm-N_lb+#6hDwgSC|8JRIp>IXO zXBz3=-Zod72iw?&@Tc42+dzMz5S1)K=vusK`^T9-zHDFA^8)Snt}0KfUy87CG$E#O zgr<{Nl+w|!_ zoX>4TXyz@n4UuQw^HxVbw&yeY?Nl|eqN*-kjsu@mb?+#B+GGEC`V=h<>(f=$XF1L| zSF#PE`?RZVhftoqqrdpRd%!)U#-B zSkI2O&8hC$O4|^+XVbPJsAn5^z6sOa)7t>U1M#cWLZ7%KkCb>6hTQ@4&(u+%|xP^*!=nX57tD@pnszfQd`SkX4 zY0p{YcA{;4sMwFTJx}kONW0uY+osdDrBv)h+q%-Wjp@a=>BVQL*oR*Hi-P@3#Rz(F zD|+ANwC4xpdXQV6iXpUTJ8~)74OBc%#Q{|8Ma9!pd_=`>^uDvH7)CEXN1t#!xd-WEAEI4eq!*W?VofTJpkg)J zvlqE3WEv ztrNNHX_tC(XVSLqsCbV;-$L7lQE?k>E2rWVD(<44-2LQ+Q!$H*e`wnnD)yw9 zd(gH+$h}J+o26a)(~AdEaTdLJ0lncSDw^oUzEn)1;yx-`(Jnc9`{`7CNZaaZTX%Ag zP_a7g@;$kusOUg@R+BrMb{Ru2K1(ldOfP;*m0z8<{X=dXZF_`@b*b2s-uE``@;bfY z8+!2~+T~Gt@g#EXY1@h9O38gsyY!_O-zE106}Qrh>rt_kKIj`N9-z19XwSo_m`g<| zz2RhX-%{}l73b5oY2@}GcNP^_Qn4F_{)2Woor?D;@eaLxAZ@#lUhG1}akOoH z+BSiTw)Em>)Ue0s#nq@dmbO(=aWEA()3(>B_%Qzl`h>rzc$7 zV0!Td+H*^K@j`OdRD3`$9!Bm}DvqP~{YbTLBsZ3d_h^^%=zUL>Di)YiG zACNnm-0!sKRpjoZ;u0zr(za8`ji=%Qdi%{3dMLRkY1>0o>`ui+R2)Ei_MqZRig^yb zZ+&|4K-#k%6))0@FVQY1P;mwoyV5R~(k|Ojk);=Jr(y@%^JQ|M(k>@Z@j89_0&>?- zF^AspE4^U=y*QHGy5xSQ;yo%3r8itnyZk{hKcW{0(Th{b-9*I|^kPSP`wiqiqW5KJ zmkVgyr{tcYU1rjYJ5q5y6@6*jU~-En$~-C#ptpZO?iJc|A-(u8xe4S(Qn3+5d6e9_ zRJ=?teon52-0|c(Qj~Ye9Z%c#A$J>X+n$Qy^y1p&ZYK9Gz2Pcyoyh%3MH?z^r8j&` zMG5Ws1-TVym(%FQovC<&Ui_F`j@(C7oJlYCCif7zo5+<>%$F!xSJR8*=*6wbT}bYH zDpsTySEphl3ib=RQ)!nQ$n8hlUZmn1+BT1hJL$!4wCCSctWCwHw9C0voJxBhM6Qn9 zs^kXJ8$P7U??T%irWYTiUG}FJ51|*IqvAj+TG6%-spv#+m_^&#Qc+LEZ?x@Ja?8;h zcBB{grs8ng_6!wIQE?9yyV4t0C3h{oVQX@SliQGX*_hlmR4hlkJV`|b71zP1}y9ZR5$!Ah#wJRaD$h#a;BiapZ>38@8qwS0%R=ZRr5|hNJWNTY@l7b zQ?W0-_%jvVsrZEQ`2`hk(2F-xlsD*oyHT+@ZM%ZDZBNA+^x`J8%L^3c^L!L~@jP<- zQSlxX@6evxk~@crITZ5_Dt@FFyHJ!%=*4@;O(u6N6(`c3t;jtlbK7D&~bII*QyR@eF&7f`nlKY8vnM5yc zM=u^p#iR7TspPJqVoxgmq+$yy)}UfGz2SE%ex%}A3VjC^&(fYdP|=QdSxWA9+T~NK z(oyu{C-ma-R9s9iE>FcP^!DqhxQ}+3NZWR!;xO9w5*43QaVHfc=na=q@g=?CG}`tw z6@93fPgUB7cKM5n{#5)##dox4hKd0cvy9w7w97kGoJB>7wv8gU135geR-N@*k6zrF ziZ}DyDCUvm`q8#|O=TVt*ZP6gMe%jrjo_3D?F^wP+xQ3Wq` zQ+qYkrPHPPA2(t@I%BMUig~{Jja|w+Z;YQ*ZrepI@Z27Tm0g?tD39`Xa^N61f*pCP|M zeuex7Sqk|b@(1Kk$X}4ZA^$-Bg_NA8q!pw!qz$AkWI0GXNP9>JB^M4ZX;p%MnT~j= z6J&YF3Xsl_E|9K}ZjcorD?wI+eMo=E0LTWA4Ivvr20}K5Yy#O7vKeF$WH4k1WOK+CkS!rwL54!MhHL}b z7P1{=d&mxu9U;RYJ3)4a>;l;pvKwS~$R3bAA$viFL-vO30~rC?7qTB@f5-ul10e@N z4u%{8ITUgjNE$K{G73@&se)u6qaoFhF_0Qa z7E%j24pIlHhcrMMA!8xqAmbquAQK_SLr#E9f}99B334)IGUOD#x~sDrkQ*VhAvZy8hTH=NocE}w{(wQl3i4b#+Y+aIh2=XxG5y+#E z#~_bGo`5_Fc?$A0fm zCdh@5iy#+6E`iK|%!FJDxePK3ayjG*$d!<*AXh`Kfm{o@4st!@2FQ(&*^rwcH$!fL z+zPo3ay#S>$eob8Aa_IVf!qtZ4{|@`0my@pIgp1S4?`Y-JPLUX@;KxP$diz#AWuV{ zfjkR&4)Q$Y1;~q#mmn`gUV*#{c@6S9AYVhifqV=34)Q(Z2gr|*pCCU&eu4Z7 z`3SsT(D(nm=;Gc(Va7td|0IuP5%gv=R+=lG(j$eTm-ooatUMxWG3WN$YqdOkjo)gK(2&b z1-Tk>4dhzLb&%^JH$ZNL%!b?qxfyZ`+K@(biw$ZwFPkl!JHK>mdM1^FBD59D7+$=ga=L0UuF zK-xlW!2iYF717t_YFvw1joguqG zc7^N)*&VV6WKYOmkl~QMA^Si^K=y^~2iYHT0OUZ(L6CzXhd>U690oZYas=c^$Wf4^ zA;&;UA;&^ekTOU)qymzLjD(DWR6?pC8OUfzHDnB=29kx;LXLyfLFyq5kVeQ@$T-M& z$OOnl$nlU9Ad?^`LQaC544Di$1#&9nG{_XlRLJR&Ga%C-XF|?`F+PfhV22(HGWvDk~9mu*$(ixmmz{WT6 z+t0Tl??B#z%vX}m;QRviXv7lpagYg+E6i#xN6VgtbukoeV`pqAHXeAU#io+^9b7Ego1WBv!ESLF=&T#4cg(PgLXLk zpdC&_XovF=+Tp~6b~raaC$~NoTt$aCv3FCnH%kJ z3P(Gf%h3)eb+juvtc=2l~_J99mlTb;QznCr>hn#`@mTrcL*=K3=?fVmBr+mN}9m>bC4#>{QP+@{QJ#@rz01~WH=xy_l|g1If3+lslN%x%rw zHq33y+;+@u&)g2o?a16P=5}IkXXbWcZdc}ZV{Uim_F!&L=JsN4ICFb5w-0k8nA?}R z{g~UIxdWIxkhz1HJD9mcm^+lY!=Eg8r!(5iRTIP;pu8z5S<{Fr5WNs{T^IY0OPwZYp!9Gj|4a)0jJxxwDwdF?Tj|=P-9JbJLkS zkGb=iyMVbS<}PIJBIYh;?h@u^FgKIAOPRZjxmnCz&fFEuUCG>4%w5ggHOyVh+;z-d z&)f~n-N@W*=5Au{X69~T?pEe*WA1k5?qCiV0Wf!)(iZb;Tn*3;mj$%L^#Sd0p+Gxa zG0+Z|4z$BH1nqD!K|5Sk&<>Xuw8M1X@r%u7SBm=EgENj=Ay7O<-;!bH_7x0&|m?JCV7Qm^+!d$;_R? z+^Ni+#@rODp zc32Uh9hL@YhcyD)VX=UAST&#>mJeum>|2E{#atP4<;+zumu7AxbEBB6WUh+240EHI zt7dKtb2ZFmnX6^)IOgh@t7oo(xkl#3GB=L7@ytzNZX$EXGj{@WlbAb^xs#YXnYqc# zox&E6y~NfcRF)tFgK04GnqS!xg2w6Gj|Si=Q1~)x$~GipScT|Yhvy~<}PCH zV&*PkZU%ERnY)y^%b1(R+~v$&!Q7S1UB%qh%w5CWwai_|-1W@ez}$_@&1UW<=5A*0 z7Uphc?l$IbXYLN>?qu#R=I&M zUorPJbKfxcEpy*7_dRnzF!v*KKQZ?+bH6b6D|5dwx0JcxnfrseKbiZBxxbnFhq-^5 z!#XcLo56xF?XdDoJ1hay4r{@*!=f&3Lg!ZGczf=oLsCDRUT%Cy7c zGVQR+Ogk($(+=y-w8H{4?XVI}J1j}l4r|l2!y+~9uv$$!EL+nK>({iyLN@KNqD?z2 zZPN~G+_b}DH|?*=(^ z!aD7+!cIFZwbKr3?zF?=JMFLvPdlu_gHwgNa)9M{+F@Ouc37aN9aidThb4R3VeOuF zSj49tR`Y3xWqsOVeV=w%=%*c4{Aq`!f7)RUpmtacs2x@XYKP^4+F_lbc33c|9aau% zhb4sCVJ)F{SX8JTRu^iAWro^ey`gqkc&Hs#AZmxDh}vOIqIOuEs2x@*YKP^D+F{+I zc38lu9ab`Ghb4{LVQr&!SmdZ3Ry%5kWslln{iAkR2&o-bL~4hnk=kL6q;^;=sU22L zYKP^M+F>1~c34oU9adIqhb5NUVXdWhSahi!R$pp|WtiGwJ*IY8n5i9BXljS0n%ZH_ zrgm7osU22vYKP^V+F@O%c39x49aeg3hb5odVeO}OSOlsaR)cDXWue+(eW-R=D5@P+ zjB1CaquOB&sdiXQsvTC9YKP^e+F_lkc35z#9af%dhb5@mVJ)h5Sd^+AR;Ox*Wvbd? zy{dLtxT+miuxf{;tlD8st9Dr2svTCjYKP^n+F{+Rc31$b9ah3>hb6JvVQs8-SR|_* zR?BLKWwY90{j7FaNUI%I)M|&Nwc25gt#(*!s~uL|YKP^w+F>28c36; z*SR!RldaiVztUKiYo9I4sGAAnx6qY44lilUbu6z;)r?BlryIN`w9nh-?U^kvX@zIj zV&_Z;wYnM2?Rvmgg9cR$DH}3$v-IGKftxjDK2vSYv{IEDzR~GTYWtAQw%lUqrX$ls zx7u_IY(Ed%hpBtMV^vsj$ zwmR5`K+_u=b8X6NYti7$>j!mIzx6=%-cbMJ-IRG-y)+^-51Q-fb;-VU`_`&%>C%u^ z&)HH>;n+|0&6s-hVDl@(>eLhJMr7Xg-dfOKnfKHy(=zWXRloUO;1%kg;CT9PzAq{_ zY)#|jWW!9>gMlaTRzad|XcAU2ceo)?;w*0UrOeL8W z)`t0s%=&#`22q@TePOO4Gig1T`^nt7KFoI%`ne5Yva}_=G0baZHrf>Cc{1gLVg9Ah znYJ|y7J{q#R&EEg32j+01!g8~xqT|kWn|``4%0}{mYfAMl-_gsxiG)eZbzL5^91d7 z-1#uCkePY`%zS#!MNKfhY0Gt&zDR=Nyk7y6v_XTjV}?^$#? z%$c<1vnyfVp)Gq~4Kslwx%urz5??KRj2P<7~B?C)$NRVFt|Ca zGPB-+*_+;T*SjzSDB8ITV2-9OAAJOqBD2pYFe}k+r+*6bI5qD2g)kMgW%gp2H)zXV zOJEM700(^uGn34f-@=?syDj+<1~-{ib-V6om>v|Z>{pn#=sjyMg&9m+cK8FPmbQHS zC(Qd4?cBd%6pj#W(|=*srrkbl)k>MW$Xwb6=6rh3w#&h6K%tLq53>#J*4P0iP3Fvw zFq@INX?d9a={>_c!_1{Rs z7|aOTZTll(wxZ9Oa5T*36s@Kd<^$T&H3idyw%kz$vp$)dDqx0CwBaLR+R>KHDq&I- zU~U!6QM9FgG)yDCXTvctWwhnx8kkS%J!5KN9-}Q?>R_&-_uTE7v9zU61GWsJE#>22 zR-^zoO@MihcKhLYn73%l`IBH)A@klzFej0jI2opvO#9PdHl+YZO@;ZJwp?=t%tHFm zP0xZkhISiwwr6O|py@D+Xv>@D!QeK*suvnAfWaI=nc9nBzM%Jfs%9*y%wqbSR+qti zOj}l)1=E$x)0e}vp#XJP!mLH6_th}Ct*{Ec_cbt2QMBsoU|y#H8{7bMI++2pVP2r! z&c6w!flSkFFprbD?=F}F$Xs?G%wA-!o&)nVnMWRm`H0NjjFlUoF_ZgUB zv|HO3VQ{NrRqOIsV2-CPkG&4_AT{o}xiAk=fY;xKd69NoG!JGuGS9pRvnH9`e3&E1 z?DYZ6Y80*XLzrH)WxY>erqGtpKZQAsw#;4#gIgY}x;?rG<{YZQn~PyKC$r>pnC&P) z=dWNk%WwG_rWb8_@>`fsDDVAZMv2eq{xi&L^r64~3Nwnf{PsJ{-V}P+ zpD;biwEfpJ6z#dzt<{#n^qw=@!5mKJ_zp0y(R*4i57UXZEb0t%Jq38a8%#ZIxp`%n zGwD62t_rgqnRUCv;I_-E*0nuhZlU))ur|yvGVk_*xsBfQeP5VzGUu%aa|)UM>%-hd z=Dh(h_x&Gj=K&s7@wIU**bz|?3)oP^0*DPo5fKCt1O!nOHExnkvO|&$y9v$Skd>$? z*n7hQh+@Oudqe#TR%|GCv3LF6_spKV_wL^8+!#KdhsmCMXMS_0_qkS`S9Ye*#lG3E z8-@Gqo8P-r7-EI>ccpNZ6*~8%@Q-yve+Y%!tk5u&!YpfTiJJSYd~IDXe8_qwb?nZQq=-kixkZFzbE_HP+g# z4^Vi+H0*5~j>1Cg=?>phXtcD3pD2v6!ezfvc-;#B{6(R}qBr`7!m0L6 z*MBK|YlYUUtp?#|D@<%n;X>=?*|jKS?3+E;p>VK$lU$d=bSs?KhQhU0xS%bCf!Ww; zN8t|(=(!Pvv#oGa2MSZIwWqhBFw4F--*I3D@@ph!WGuj4&5p2V}*TprSO~;M)agmY0>fBD4b!1 zv-Y4c$qHTeqHvHEj@_F=#`?2)Zwgmf;lq6?d~Vb9sy-AjeZ|y%yDx>5_4KWN6vo;& zcMYI$utlFYh{D%aNE||8HS1=;p%jK&H=hopaEKM&IE+Gtb@S_J3ZGav#~e+ejTOd^ zrSOWiHuV?^8(Kiw@f4oSs#8XxpSAX6IfWA~;HNl+cdW3ilEMUQt+%1@hZSa2Q@F)i zo1UcbsD1N!io#)5SlU2giS_ipi4?k7H&0KdaFMlk^$8T#x5DNpQy6dE{BR0|9ju$d zr&E}0h1budu)4Lj>Dd%Mu}Ly2L*Y?t?cnJYHnGANjTDZzZq7N6LX{QHoIzo<6}G>S z!W`>n-B}b~wZhzsC@i(Yp_fqD#A@C8G75iLVfN(|uvW%QG3ZJP35)*xDhfmFn{%(G z@Sdgpc@2fN?3+F}P`JkmXWm3%w6*r)%@m%uw8~p4^s?4gn?vCu`{tUt6soPT@9h-c zx7Oa9PhpIG(|G}fSFG^VT@=P!e-68s!Vfk^XD_7CVBdW60EG!wnDQ`%w=LlDM=4xj z{WseijAgRcUZQZN1?=|<1zx$1NIVQ(s+d{VzWH|% zg`So+?{x|v**9bVN8u1FoQ-A#BUcN!c?pH#S!?L`#7wOPZ1ygNKdrS*->2}i6;4}9 zVWG8l#>W({w!%$N3xfwMO#hO?wHAHBw-k1=;hBpm3Je6YG(;xGCDz*7@FHgRv(`@j zox-`6_T%3a-nVZ?uCh9WW9^&USEm5GjF5ZRpm3di^XS?X?zF=H)}e5z74B|BVVQMv z0!AUId+nQj+EJKfg<%^~m}x!TxIKkAR?)@C->6jWn@cyP@Pu_UZ!-!HTHy&yJE4lU z!V+|B(K=h`!4|E4+ca5uHYB z?cMRc@l*WtUs5XOu<+{$*B}(S~vThN#SGrrtxeFPg_7TL*a63?UZvU z9AJfG7gLyRgj8-WUX!Y1%-#~n-O19m~7vi_!Wf;D_nqPK4x~Y8q7xb6+Kn^ru;h!=UZWI z^xBb;thL)kSZ?3U{ef=~`;5`{NLviC?VC4#rm(ivAoUxCx9ppCe~LBh=2%RgV}{AT zxd|N&jOVPIr!nr1nft0(8|(Q*@D6s_RS-h6Tn2F1*{6S zFvz#o9>7{(%=EXy?b}j#+**6R3xyBun_fFpXtZyJ?n2=ME5y1{ILBJsA8iU|_wAeW z_Mq^fee>6z6mGL`_Uc8U)ao`G9Zu9cHoJ`3m%{bd+VA^Om}ss2hG<4RXWtCyPvIi_ zrV+I!dh1pgJeUHiX2#nZ7#w40WrZh)QrN|+^T{v@NPk*8a|DGmEMWJM6mGU}{)bu< zbDh@BsYg(F!3urGQ255WS$Y(O#a3AL7z%eqoySb9W;r2~=f{GjLPtD4-#xFdE}w ztfW{syH23+khQihdWD#7vVgf$C>&<3U49aUBdoPY&;`MKl@&TqrGToL=)KRTu!?na z=rjsTt*{fuXqalT=qU&n<|(Y3t!7YI-3lWvpn$rNw81ke{F)695*j()zWMnQ3au@A z#pM(Zu+|Q}ngUXpfc|LNG4o^Hbi9GW(^lB&CJIklVYQnn+--$ZZl!RLMIVXoD`M2X zxgEs~%TX5H>kbNN2IDIjyx+INU%1i=EnKnDO_ z0xO*JFokj})S(9+Gtic9+C5I;7yD)bdJtGuwEl4V5q(%|ZQW-mTyNjZeU<_mNCFOh zp2Al)A9Q+=0?H@fJR!n3>!$K0zCmlrH*da7VUm5*;WY}E**C|%L7}4+ZhDgfnnAi5 zxP-!eRyg-<3Wy@U>HaQ-iT2Hd?^D>rqBlSVh8VThj{KNHd;4bDG76ono1K?a=wjb| z_63C_t(&vIqQH+&z@M%tl`&bzhOpfV3b$G}Xa7jyYD>HFCkjxVZtnb<0wRLKqF*Uo zW`$3Gqky8%H#7gBu#*M!`-{SQ7X97d6b9HgTl`DmXe;cCGJ$exg%3nP50$j5R^yu* z3%C+l8g;Mrr}df?(8kl+n(I<%XRYnnmcmB%P1}tq+-2Xi??B-b`({_nXkn_w3az)G zFvD6q7xU$qgS7svx-EszthI@VSxgyNVeyU>##>>xZWQ`kp?41o*IGdT-6-sAg)zHR zxW@Xk_g)lG%`yo8_M$M&0v<+Z7`2!cUhhreMk`#3S!7gP7H~AWh{*m{=-7_}@-t~Y z52P^Jx*3SJ3khuBj78Okw%)oq6%!tq(6`pc4yI6M-|R7j!qHY}gO(jbI16}j7zK1N z=}!g~Kl(fNO=1*~i>=1I}fv~TW0uMk~#>t+JxD=>X#g?&mWJYn7ZRZ0P6faq_^ zDYUWH>MJSiY=tAysYB1sTI-F>fgo5wr#cEqWdeT2_#VSCYwhAR1>|SG`FNsOv%*g3 z!eek}^V=bqyF-`23dbQRSemug{ymMtEmnhz(c0jR^=A-zteDBN!hRS7VBX)lxh+HC z8tbNVIt2^>sKJStoJDF|YZshL0eOaRUPf;XgKw+BITuhsndX~kW>UDtS~~-SaEycP zn*%PPFv1EaUPb}63f-71DPUYm;k;`ppvOSr#~Ue}XN9$9Q+UAY*6C&ncUa*Q_=hpN zwf5Lt3hP@9Hn@YrrPkVycT%|9zPWS(h12Yt+IJ}&Z-svEQ8?MsYA^srb7&d0;y+NBZ-pIxqOiRc2L3{!qXoo&qkxi2H=X~W@U69W;9nFrw{I@}hr)N( zpKn{O2?1fJo6^=4uC~JKYg0gl#WxGrqi~X?ZPJ#)rS?sII||3!@a(V=g}K(6X;0xX zYwfuX6mGXdm(3|`XWg{#MByGQ?6MVwU951Scr1mztT5wP3Y%M@e+h+KE&7+^Dg17QHA*R96h-u?G78UFMcc6P-v(oRfJ=xc>b#!6fUvW?wBHPtnliI6kfKT_CJlnO;)(;EDHBpK*KZ&Q>>d!&Y>{S3b!;; z7-QXxJ&(eRR=9r#h2>W0Fq6WaR%p100@@Jj)_4hpE3Gi)atdEs^fOmeIMccrbpwT` ztnk@v3fov=vepj=r5jS1TN|fCBnCd~@=>6fjJtQ2qb~ zV+HdF1+?*e)Aun7rS{DgPf+;B0)Bjk0(x|`Ht%@~)2;Bt3lw73P39#EmG;e`S19zg zZ~8ByfLTcb?tG2H_SV{aZ&2u;b+eel8(BARi5siiUvE>uR1N|6yi1{rb(4Od0%k7w zrsoF~KDR=*ZY(mV)?!%01JIu&_!)db7aGLBeoF-cfGqR^JBby1Q$u7c-Y#+?XzQK%a7|h5{ z!HjGX%*furjBE z;LFI)y^L(xgDXT@MmFhXWOrUhw&i7HKOUYSW;3z_FC*Vm&&Zy;jBK{c$S%8#Y_H46 zzPgNTsLRMsx{Pe0%gEk2=#1pf$ZoleY?I5#{2H2S*Z!r+Y?-}y^H!;yO$CI}5yt_PkQ=U96=ArV0+p{vVFDoM( zvNEz0Dapg z#AYWkxf>}X+mJG{|0p9Hk2133C?i{qkaNUGOgh2lA!0ry<_BW_D$H}m>?cp273K-@ z`+o7|L3#UvJZUXvM=_5Ua}%+%rTjiiexE77e-+Mo;&x9l`^ej#@_S49{gK$*K+MnO z309GyXQlieDmJ&Urr6nCo*!jx%JX&P_iTBamfz>d^FCr?6$v!-yJ7Yd^LBY&Cg$m4 zE)WxQDX@c84Vd@I?;&DdCFVc!yhcon^I+#-d47ca<~Ej$>|e>q#+8ihSjos%m5l6B z$;jrEjO_f@O29%8KJjuwG6QrOpmx^C$@uh?Oept-Sr?C#T5o zHRbuq^1DQSuaLK$<;h#}`+G6x$&>BH5Wu2!q6& zCFT`yHBB}tpj8q=rPw?}%t>M%BqqkEaC?QA+-!h4R(_|%6~^g!ac{o?j$S))y1w zdFZo)JfAG)>hgqZ@~GM5$tGeRFVCyQ94+P?dH$-HORY^|{w3y{VkX4q5c&O{*jY<{ z-y`N|dGfs2=_OAv1c$%XV!kg=#>nqi#2hd7xw?&ZUw%&z^KE&1f!KdaexD}KG1Nz@ z?JZBPl($@$&d7o^+A^{8kvu;{OfEWSWVJaX%gh;BU(U$FGV-U`zgo=W#JpBq?Ie6I z7iVOhI3o+h8Ce-d%OY=&75iKS&dBO-MwWduvfhiDU!I>Xb|#5AQ(Vmv{yy^i33>jY zn1jT;Sj>@PXHzk`D4UVhSfr^u86|es5c36j@}kgA6my!G2g%zjF5SM4wQe zOqI8{iFu7YSzBD)EWf!FnUOU})S~kIW3ln4wt|(vi6mcMKAP=eWTdyEx(VF-#g3O?(%zIF~m#C|V%a=rXMQl4|Q zBqPft88c3vA1lu%$?wbLcSkW3V%{g_0^v-Q-+PG7-twfq{O%;ryU6b&YjGcwtmky&1hl*P`s@_cjo&6!-ZAoBZaG24oHlGwRa zejhLVx$@*Od2+j$+sX5L#N0*9{lv~$@_S49y|I|R#6IUzGct*aajX13P~NU8_Ae7V z|H^Mpjba8sp7fC?W5s+#>`#^7H;6e{%s<84OU%v1yj5)eF6IwnJ|na{#C%5V^c8ar zdHb9Eo-c1X51Ek($c)T9qOT&)FA+QIiutm*x=GA?OD4bIH{g1p|BIa~4WAeOG ze)pB%oQp$#kSG1ce8WB$&RF@~MV@nNEhBSkm@kqiU&)gL#O8+b`(b&0mzbO)!-!bk z&K5H+cJ7hiTZ^6l$&)qhTY0jU{C-ZJ-z>k^=ko?R6K%@yftgj) zs>F|U+XV-b&D-0m+wJq*RwPqp@sfr*9J`N~RHTwMC3sS!gx!#gX8X=CcHLeHoeBvx zh=PXN`jYZwg}S_fE>DCbQ;ws~Ha52ob15gl6BU#Fj_;%6JK)Yt!O>{zI7IQ9e7(!! z>iu`fdFB~7Hk;x+wIy^3^FAB$@iy$^6Sd`vNK%P%xHcd3P(*$Rl6CconnXHYk{|W2 z((%qXy=^wZsqJw8vtHMw5;e%~68Gf|FCwdXQ{i+VeYbk;_jyv6vKRfyC0q$RiDDG z4XQv7D*i6~HlS!Ki~|><|T#%;l>usmLNYH+NjFjGc=!YHM*NNZjVGv_{Le)a5TA%+psW zM_RsYLs%H8N#!t;CCadrl&v0aB&r?mQ!wwqu)*pPL8ZimM16iv8^Fxc_Wr}9JAjZor+mbUA2y;Ge!?2v9m6CAElF3wgq842P z541UB_+2o}{JRw74p(_1h0@^bA8kZ^{sh5P;|>n1Ptl56^oi$M=QfPrg>Y+j#JwFB z;BVjyN|FGW&R$UVVo)03+PttZIs!d}TwT8rwb%sLgP0@?t3}cLCR$X-Yb$fTwB_h* zn+M6*09T7xhQG5D9ui!1>#OhEq&r3LJ z66JMCbcL0&1!Lm@08CrleiAiJ0*J*#jD>5H#GNToBQzbu#X(+lEMwk!5YEkkc2sQ;19PW?S4|WA??Z zHCCabO_l_wBw1This40hES1Ow?q9Ob2F8rQr8kz<%~ijqeJrp2!of6r5E&2?e@jWu zGMp}%SQSrsS#Bt!=uS8{2fn9_o^EY~QG&5!d7=!Jtd^r4nQ-R;WG=)_JyDV!drZ7c zb1ZdP3Wuf@uJ*C6i&w3a>Z+6Faj)kWBVZ`pn%*BPVE1ByVXaycE7x9ZRjj&#DW}2N zkinS>lsRhIf8phK6&_<{brVqLn9r0~w8FId`8vnt)aVvCHh(WyLeb1)3F$hN&Jwvd zPQ&&Zbs3E7kj$E2Dye95Xi51+>~Kc;C=kpjT%csrtY}dUV!RS|IXTw=VXna4OO{hK zFAIlV|6Kk#l|fn#=VlD9Y_g1^ZGp$|4}B5RUJVHly2yD5_?2IuDW zUzJg`;<1_(c3S?&XxZ{N7(e{3prYf5EGShQPkC{>JGI&W4;VB5RERsN%NkM>V)YHV zs-lj%d;o$u@NdPqlgRdVHDcaj5}gO<=97Pv;ZC9o+^tuOX)2{~hmz@mi?qxItE`eu zqN44j#7YHb4ZIZEih+3_uFWu9yJb_^9Vc2rc$zFA=5i3Q!%;ErI0=rHFJzqTi~GLJ zMr$g=U4&|4lS+bdyAzYS1PId=SA^LhMc^cA^Emr5O!YvRKDb@Xa@=)HZ9Gv~Rhmpy zC6iu#949FQh&gs$CAlM6NnRxPB<5BS%s=ZX#vRGEm<`O$Ngc+>Iiw93d*UuM8z^^{ z!KIG5&g$z-r_&;>ub$YJiM{|7({CF^ z?dI%KWc4bKr_n-{$8rOW^{CmoAeoNaDb5}3`Td9lDOCWNhqqTs(cU$~=jB1}wlr(w zK0Y(2tGag96TV)t*1{#!;#VNdtGg)2*~s}goiUys<= zyFQ=kbt*7s@NUX-R$igK>#L~MMSz&&aP?rsQkK`dK9Es#8=RYcabuxn6zyHxkTub} z-iEZZ0W#BZdZql9!|x_k=b_c$O-6>es{FwhbhIKJ4mUD zm#1>M>}hiL9|_Kjqm)y;>tI7vJvop=4rQP^91hI3M<~Xf$P_)j+t=)N3@xvIVK4Zb#1=of~s0J#>#U~3d zH~qIaGt4A7H{0O0QOhVAz1s5)w%U6#m1;mRPaLn9qN(j+g01ZPRA>DdIAyrvG(z6< zIIJ+W9BxW&<^y1kEpHyB+Bc)P11YxxVE&0KrD%)q=|YN^ZmQHCOszvIfLm6nxM(rW z>e8E(TZ3BdS_RBm3B?rcA9-2{M%D?uLKoH(%9oD&s+TFtM;GUm7*(}CFOTt&DN zctWf?*L^#V!I%KI=F{^P;7VXy_zH9Gaa5+~46vqNpsb?(bwo*)6_R&9rDm@KWOkUT zw4#gC25V9pwLIr#(r{-wU#yOcj;^o?p*mKUh}Gt;EPp~Rl3qy1Ij zOuV|8oIr5elJg`GW_w)UZS^TSKakUhsqNp)uo`1`JSgUk>lEeRs*YAL-&Ra$ZqPf&b>;zp6+MDsYxtQ_eCdM(q*w+ zW&Idk-vftc_`T}7XgZ5)&-0OVeg#~b(GRHeqBQ~Xh}KGhCF(;6x(*Cehil>^L?XsP zyY0D`=C`Nl{2{nB2R)+Bi$?bht(l&-<&ld4K$zSXZ^nF}_1 z9E<~>Rz}f!B+JO(A$Be~=K*2vdtNz3TfQ{1d3~VQ*N?$j?FAq;G0F-gz0b`T$;B& zjO;u&hqNVq-|izgzx?B<&V4gTXVLf1;L;qkOq~}`#bn<6(V0}>7C1KJKUG4}?2O>& z&mQqWxOo`P&D777QFK_CWdzdUJZ8w(;oe-aTp_M>@J-k3N$1Pq(meL1IxpG>gbvy( zD4eY6!+2fqD=PD~(u&7xDps5J?_}>O`oOVi_*Mx;E4_Lpl%U&^+wHg|HF+EeGi-%& zil>iqawYX6rt#%)Zr1xj8AWH;JzdbI2ejFMq%nY)7k*TdJ6`yWHLZ6(XLvUG3545z zQ9{wGPjn%{Ygu`dfcXWk&27IcqG)z&z*uf_-i&%B_4ozu%};+Qr0C2{1BULlF)7@! zG?a;bz@LEK_fIomGGHy({2MWc;MMglV`y+$Kfk6 z7F@LHlc6)pK#6>n7#0M8A~ZzHK;zmzS%j9xzpj?EZIaEMSH2r$lp=a zhoH{*vW@ACFWOjTiq`vb=zdx8U5Ih7S!z4^3c0^SvwyFT=h0ZWo0_Ng;3A zM78NcZT9U3&|G}n$Z8WM{}pb?xsNLS28emQN3%!;TXKew)CQkdGK*nYor=zJWz$=? z()c&!Tt(Kl_&Sr>5MO1oti6lXMIo$`{1MeZjI`sxGq3KU&?vF53VLO>hM+C*g($Nw zz6@oxi&8#<6HbF!%8mrUJh!(}qLh!oaQR?H)W-NEl{pKaqKd9caHGu;ROK}Q%;Wnh zrRcDN(e0mM;?+T>4ZeS6=J!>Avlb(uuy>JU1j!saSaC&rQ6V_5LYdBRUIvaS#b>{4$`$Qoc(CA-_)O-2 z+kr4$@x?I9DY|y&aRPg+ZzHB21k-wiV)k&AIEnTqHiFDz_znZhj2@-Hq7%#PLTUZh znU1f6JF_>wZ)O7(>Ubaz*k&ih)bUw#d?wtP)$lzu>o~M>#0aJgo5SU(W_LHq9=8lF z=zhlqXD;uhKEt7kS?uW(I*bTV{DUWCSY0-YQ1qTqkbk(<`{gD z(DFj7z%X9e!Ot3o_7R$yHki3;$cuno@sh&a88rvP;l9dveE`V| z7|n9fOs`iI8QP5tM4s%hD45h)#LRI9Fy;(=j?<>8JFG#L*C+gjVSN=G^WtKKxmz!R zg^al`W-@eG0@_z^DJ^0!3r_7m!eI8oXGP5|?cqr0b2qn`jU@%NPCZsmm% zs9o1&JlzR|Sp%OiwUHi?6BzTJOnpWIVLtspIqs4z`UFq%mQbOd_=2jL`jLX%#nFO% z$9Y#UmR|?K^#7!}7~c-O&J5Q1Aed##6yvUEM4SABy>C&YT|WitEPU&=Suq_L3w}?| zYe1M!KUYq~m<|pH=P_(OzW`{PuM`w9=>z9{wLMS^Q*8`smjYz&{7Y%>{)>bze7yTQfq#Q#p7~pWp~L5bIz05SLJ70OhWN6uc^5`= zk}>bZ!l~42hkpTDxaw+IP}FF%qg6It+W37-+Ul#VhAh@vY3|0)Mq3kO-=B$`02*fh z6&WF)`Og_&$jEvIuFdCbDSfzw=FMu}KTR{=CR^WW|LF60*gn4-%*bte@$(ALL4QqV6>#R)p~{Sy9{IhS)fj>O4+ZMdVTy8h2&tY| z6o)g$mcg}|dYB@j)nC4`g7$e2A?$T<%x$9;7OjQ#!93L}7*W3fWZE9BH21(mLKi;p z_=M3l7A&*fSOrGQzM%t;HpJC|WcE2manVX>-oWD(2J|d2%qGVx$URiB0c~Qaupv{T z6f{#&rpO36BQYtrL+nW@OK@!_lq(`a@Cwge_hay$0K?oIS5Smp!IPjBxX2>AlBRj= zM8^7$0GUfFl@_5#Pnv(@>^sDK0)qJ_p_mByUNOP_vlAG?eGFjzs}&ZZ86qsOee(}; z&IiKmpHxnSs)3yRlijy4eCL2-u1G1$JOsVL@Aa*z#&^0m&b?1kW1L2>rgESHh^XEAVa>u(4DS};^ zM;X#V)4{s3QCaQ`;jx0fk4*^s930c?L3MIL# zh{AK^Z;~_cN^q{YDmtg|FnNM`U^x)xfUA|`4q4cV@*&iy5fF3xHA-@qo6uwB?=jK- z0L84hUQzDe29CxC&z7%6jrO|%m|iz2CPLUk4w&CV(iwo5lW$g%yRQg^a?7gvu?DRh zMl*~rfMzzoRgv!gSpbPtP}=iM#tMMUy|*dN-N_EncrU-=dNI7K&H--ZT*WmryqL!g zTw{C@HM|-$^X)uEy2lmJP?p(34m(#9*!y+>&!4YAcl|)1|Fr)54C%W7n8kN0C6ZdK z9()5HZ!6#!slm`L_`rl?u zKL&v5@q|($<$>(%MZtX(7cf(u0G3(wqyi%qpDZvWw?9Q4J3a;E_@@==-Yeuk-+vn8 z>R~uGHP0!*UEz4U)$oq|EIjr&E0{?JKv_gkEqbmaBF(MsQ`C$2k!wmgp8?hZjN4}40p|h`|)uNbl&N# zHyGKoK{4yUttfZ=G<~nYa0wnz=B0O(7kZp35I@e#1!@`Xo4yO|i?{^AE@HWR-^Fhj z_>)2J@IIJ(ELEmEC4$!s{7lBFaBlYcSQ(+m4uZjzs|vivejx*QI^3Hv$on>M?pdqA zg#%X;aU)!t{l8R%J1oIl2aY4-95^=vzEy_1eroFKfoqu&W&mVLRwylkMuGbWc4E~u z2hPnNX!s&WjQm5T^Ait7ju9D#t&(dY}3n284;NuAB(5RCqhVu~cXt7$&iXf+8qX za76*42IoA1FsZeb<1SZu_Y_=5WgdZhbM`t4agSmOE-Sc`m^VN$m2DK`)&*z8{S&X3 z5^@*Zo9?)a#%5)Am7RqIr(KsZZl-`@zTQAl?mib#fl1fXsnFi-Kv`u&rMSx{D835} zCXsO{oSSFyu|*rGXpGz}=}cz5joO2e!63gG4Bs5-9G1;D;oJ<_R2dNxI{!X{eW=PM zAeiGfQ;fS5AWHJ*N1tH4%mu?V;2ShHOzv@S78FRO2T6Jy5OWUBb~ht-eAAGF$XE>L zX8xASaCe5GjrM&CCm}B;@=wsrIa@0-LWJw}0@|4x$#h!`f+@qT%QkfGI@P;jAb7t3 z(hVU5$LzPA!Xl)e>XcgnLJNq`(Sc$9*j_>Ip}eP6{=En1F;@-j0^GtK6c;hB{FfiV zEqd43=wdG2Nipu4weSXnQB1mJK$uIrDaV~R!>&PCLr8#_kGm_$J>yvHE`%2t#_l~p zylJ=Q5@kA|V6*#+jQsBbGgW&j(cNz>ek;O>WZn&&*}1neqr_n0)ds+*tc1gk&OqlP0HB+&yX%%fYJD5V=diTC$zYeTP3{ZBz z=IWgtw|nXD(UXjodjK{=2Pxg%?uOo(FrTPPK{4Cmh=+{?cLk%G`LV9sba7NiNsDk*Xn^Ix#=3p2$NV3=_@>0vWPa~3gw2MoX7CEyP?i@rTjn)SwGY5BDG&Aql6zm=RiMU@uGLMxj&OHyA%@VrZ z&%b-{Z35TB2dT|p*w$n9>*K83LVyL=FC597a&RTc_g5)7ab&7HinV1g# zdl{xup_4b2GI(128l6WF@+L{T?y6tK|b`w@bk>8=k5# z_Y%4XlYL~G9){_095CiPY}K{V=RR8+WEFlPZzdyf-!nn&d$v;D3kUxD8$PC9)8W`` zn^8jOZHa+N#z|g;Kg|fQg;TTJIqE+2##*?q$-DmHa%z7voS6+4tJ~0FM@4SW8gG9n z&asz2G&PB$ZVT>yIDpC=13kj!tZ_fl*ORqhk%{;k;2?DM=HFoVHpF}`3rzn`%*!nCBT>KrJ2H~kuh23eeeAtDl{Aj)8i}U zG*wgi6bikpVKQ|(0T?p?`>Jg;HPwv@VQH166<-B$Ge9y&eWSRh8n%2~*i{X?Fl*lg zlu284O&KXB^3cJX|2)>;8h42F#^XX)@?^Y9V_G>?Fi z9~9uumSML%ET<}S05Q+~7?~7$$pd;b$l&O*nyEi4$r;HZcRZXxja~=BZ2y~boM8*S z;$dy(@bQ3{r~XhnTvoo@*+~S>=jez6%QWC*(A^H$UJy z7^{!7F%n2%;5mfB+8+sMX0FprjQ{G3t*FfhAeg)G-8-vIQ=^h#4nX$-w@1Zm(+PaY z;~vC#q<7|No_#sNWmIm=9fVYPFX7>TRk-3ixGou|mz ztetY28chU4$+>;a;_FbGH~?nxhRvk-ZcacELAP)tP$uGAB{odX(ko%gzc^tvlAZ*_ zY>FMY&B;lDQQJIbfpQScq)inQEs}#nwhyIr0AcRlTshIwJaB75E2dSeEr1!1>%N;4 zs=)5rFR0DKAeei$R7|u`1@BB)kCD6ziixS&S~<=h5|hiT&CXBxHn(yrI4oP4!nTbDg7qzHn@$7?b!>=wQ$DQ zMtXCZ`F+(=mc+w>GwbfFOlRe5_4EyQuw@R{g#uva?xz%I=CYKKiw&-4IDZ4k%t3o> z!|Ci4SX%yU{zL}vS5VBa2P(>0yn`sOMD9(s`u7K`FV=t~=6PWSZ#B4xI!y<{{B^K$ zoNbK9@n33iAxQ@h2I>Aol;kXhmK3&)^J3_--S?IU5VV zHVZ^cy8P=5Zl*?W0AhAOLP^f{SYjz~o52Xi(J3I96-O#2S{&(76)$_gK-7L?fV$u) zMMaCF;9UmaFpk~_!rU`fInjz-;ey0svQ{|;tQTO|_>RabSdF-o;oAf|s>}y4EGt?a zrStp#rHBofemfrr+P@`Aix%-p^CJFlqJ|s~)U`21MT_|0Qo&Z_d<}$IQl^|}St@Xg z0oq|q(3Ar+E3TMm>IA2f&nM?YAk5K~%86DFJ7^Xu)LD3Wnc7YG4LS;ah zQR9>ot?=gGV349l*8pNh)+i}jR$}uTpAfPqNAvqH z4>7FkOa`fBijth&J%-gQe)lu_=fJT!^du!js$+b;b{zp6#&BH*j2VyP2{v4j8d4w2 zQ|t%^?O|}t;%72~dvsZ#z$1+AIp-vMG;U9BYNm@WUFf&&<; zp>S`0xwe^*+y-29eDQU?>i~K6`sP7=J8-f21($i<0Lc3{D#V=u88N{&_-S%>ya}9p zXDcUK1n2L;eUhYAZw6_%Ta^?o_Y_`Ha5q^e17p^iqbzsd$%ZcPhJu5b?ni)PV)GOg zEh7dlC}>ZO=7C_ooUfQ@*~hmr7%7DrmOB91b%8?M!*d2p8@0ln!Pv}*tMq^~wjBXsj=xtq&M4O*La@8CGoySiC}x#~igM-z4;AcMbf;Q}0%NX6Gi>W5 zXa4k9Yz4IC#oPl<;sRo>e6aZ>|IGxg8Ree?V){I+BxiTW(<$^~f+vW~fMz;Bs>tZE zADB5UCn^bwdFnAmIXjD6&a9t*E5R?+>Q1;fot|nI#Giz# zGGis+-aPWOLYxDJusaEQF-Yq?15nAc3UXEog;x?>PkrWqU|Kz|7-v-D!=SbG@{PM> zcKtQCZi>y3XkWlGi(XJ*QyWjbj2FVMJ^{fj{Y)`Y z5OWi=F9@s@mPhFVQ&b2E2C*D z2xj!ryCR%Dx7^wNz`E&WWGw^64E*Ciuw($Q?Z^>iT?mZ%=}%=j=c{shY42HaJ2A!& z_zSq}|5lu{nf2`~TaStUEu5NH{!#bNm=4}3Fn}s-{x1;UV#VB6_@Q5V_iu6=uK~cR z2b4=pjF<~ySl7<@X!;I;6md(58?l<=n%al!Wn$+Q0yrg&zBYhnI0oNVNoO~?_zeOz zjQA@+GYi*Hq%-1!7YLvqiw%!!0`b5)ifHNxZ7!_A`vb818Mnc$3&wlvE5kW|6u3U1 z9Rt#}EeKEG3QZd~&VU4O57>xGtiKTu&*8h~7U8T7o4P#UF6y&!2f#krRAFv?0(S>s z11e^0@c}TiaC1etBgKDp!1pAqz6A&ebW(z|A`H1XUR6Iw(Y%g$z^@ZNyW7_n9PpN#P|n5mk{$N2)V*dwd&J zA%|hfRD{my?61X;PaEj6fC5jflsY+xs>~n@|^XdVLaHnwo zT>&?dvPC~omcfXa^${KU)07ykWBTntaDInjInE(qmJ>*y$&8tUu%pYYkHxC!G2@#L zyp_5f4cBIOe00DfoPBKQqWzh|*}z)H(kXzM^#?1_9oKp!U%MCe4BF8EnB|8k#aV%R z=kbHL1e8&u-G_kn*idCTt1OR|+nRnfIqP9JusL~{a-1uwK2A`pR~Yjz0A%*V1_>MU z(c;N}MZjpr(=-4~$5BdgHV&c_Dc*HNpHi7B5KKpW$~a<{47(uURK`&i7^VWp6)ng) zA64vrfCs4A0c=p9M0ff1dh3AqQac@Q$Ea#EX)RA)(s%@{s~HR4)C(H zkV6z5h}#kOXqdlGQe4!K7HpOKh~v7!_%Nc`02Pj{6x<0Jb|b(SBpnNgS#X+?oJBVq z%0SV@j4nD{V3@&YG#3<@Xt;$X;36>0A7?2jYS!{!2k;uR*1)OYe0R2TqJ}JRgkm5; z`{Ldbb8JRIQB%&F`qFlNPe#+N;F!&)D=carE!=u{4dbc;Ak(9<*|dVqcl(oe0zhWK zxk_`+UuN@yZkY3Lzr%hJ9I*q+oQl(EHka<_s>?!n1s4HexP!YE!8Cm?P;k@~QANFS z{ya-S1{^baroy6@rQp;ZW`1!U1|ViHTs&;U8#TuT&Xe52@SP5Z`SD@}MO7)doeuj^ zuoLmvnGg@-$SU|1go&pbI_ zq0U7H|Jncbnf=?|0l@4#6|k+V-pC#Ozm$Rc0WQsu1?s$0Q_ctZ_i)`!k1v5Ev(3Be zGIR<9C--V(_m>>|FT${g{+k@Fi_3x||EDnkHPFEPj69*k644*+T$9<`oCP%$NjBoX$2bH-E0CUb)N@=ozP>PXr;nsCO@Dg zQLCA6dom9Cg~9nv8BO+y1B_rv>d06v2f{4=T{(`DkUfW=Z176LUW9D>2OvNHsSrmN z&K{ljS25o*Nd5i-Wyn9xqxfr?&8f>J0GR7qt?BA=*@&SMCEnOrWB5B}m~X%^?OQ9z zkzs-$FTP%1QTGu_qwj!*mg}>q$(w+fH+ND}gwp6Ec}i_brMB4_sL~#aiV!tbqKXdlQ(-flmDF7KltM^ahPWON+8 z1YebT=Q9Az+`dY26eu~Z5Xj0HHshQ$+?%)hDa27(3BS~mMISi2np&XGfv z)8xE@Eee*yZl^4~1!8(EaW{Zu(!&+!$bf?Lt=2xmeDf$=n`I*v5hbFfHpf2K25&(L zhqtiCISQoxk5G~$+2urlzjK45CFtP8xmh$u8IAzu@A)1~M8~6m7(BKa2)`EC?S=VR zxHkQdRfHqU*nP-M98K!I2st0_%`e9_3*y&gb3zU*0p!->72>Gsup4qWFHLS`>i!I; z=Kh$vcMRd+zF=GC@5Hn&1!j#h#ke8_7!E9Q)h=$s!Wl2PH_w$Tq{*#1Ht$0hZhq7# zeTJoQ<2VR=Rw|*%DJ74<_$&+(=2~#05-_GmLRpU73T;^Z$5Ng?Oq~g9K*=q7FB#I2M3Vh)>Nhy;K;l>)$N~?#|eF0R0V?h zut717lva$_E@D!rmDyzi7y~9LBcdv4-=KC~VrGC~%BCpB(TsSil=#M@moP~4fiS0^ zs2oSHK}tcv7;s&JUID}Wa;kzHwSN%g#n8*leFvTfQpH(Ha%7xr!Ndov61CWw;Gu3J zY5^#w>oi3Uy|0&u0|kN_AEg{`IsejGgx9fHAgF8Br7o3;+ibax>hU z_0LmCl(h1SmDUeq7%fMGVX9{+sL7dYTl-10XbxhTC|Fl|kalT`y9Iqwgu21qX9?l2Q))5C`{p1aM1 z>o&KmYe!=f+@Xzq`Is?>Thn%d0vx>)3-J0{T}c=V$EN4KN^s=g!0v1u=fKy(;M8<@ zK;1in5Zs%M%Tv*?z^&=@NK`;zGqoWg0k`IdM-|{`p3+rG+#HgwFR6>wdlv)j$nvxQ zW8e&XLOHIG)FhKRKq(cu9B$3*XB6P5l?r!1TTCA*9 z8L!QD@K27d-KuI{W1DncRibuM_v&O>tU5lcv0cgG*#dx|jz}djM4vfp$J1sRtcbR1 zTodl&saW-_#@2&t%j1(~ojt4c>{*R#)g&_Hl=BTfJ7~_sz4$+i-)xOWvk%G7xVQh_=N`pa8akhel#qP;ujv= zjvX~-95coo{KA8~KgWWnY)H5hzoyP=U}`qDu8*f`m@EyAtJc;rd9o=MNb=Qd>$;W6 z%SA|Y^EwPfCoR{uY1L|&c@qzYnZ;r*5%VoE*Mf4x%y_Z$HlAe6J1~!(W!{rN4W<4( z)X=y_q6QJ0M*3y*1F||&d4quotmVaO;-hO5;|CTPD|YWf0vK9s;NjaD-n+r=lv zxB;W2G?q@3b+5y`5Q2SR*3N9P(^l=I>Z{epL0KDdlx82Lx(>Nm?Hru7bB|CqPzvV% z$ElSeSu0y3&Sx~X={IN;rY-7I$?W?ED!Pz~cn^&SX*@z>0gM@?jcb-yS0I?ETjt?G zW19iViM7?qSUJOjvHBRLbyM*QPS)Wz zIu_H$jZ18{hBhc0CH0AV0`a0l@CAKmB+I+@!FM&Wx;oCY!POSQH-f{omG^$r;QLs0 zwa?2u$5tckmq~FO9pIY;9iyL8Ke?`{SDv!%5YO?H%`zorv9hW-SY4|ss^W({K5B9W zYo)cyde?BeFvT~G8}=VwGH~?aqemW8GGOo#gGUV>J`7LSu!VM3+90Jd-NzzmZiJbNr~>BOjY*Sy+>KMSY4tA_Owl|N>o;Lud1)9?p)SAgxa`Dw^{Xw z>JgLsr6<>x9U4cqP@e7{t0{>kpfj?>N6Z5sGsy?K{9{}oO4Pfim}VJhO?X<%OtF$Z z6=pF{CnBsX+f!kxr<)W;MVh-1`~f|v#jz_$^>W=2lMhTLt4j_?ngsmmhZ zgD81(kQ*v0;wiLy$akd`C6)2|Qh5^aXt2wpg6z^HR=wV`!0S{T6Uym$i1&xK)cYV> zRoDP3Os5G8L5ov}?4 zZB1%mb*wVoy{w|7A|9)6NX2u)t$ik1JjhpA;|S#_o#5q=1J*TjF5>Sv{A;lMs4V8tP-E7(MuF{UIyG?<`oo-Z&WU zkRT6gvA0>MdWjB1Ha%@sj41{TxDv@gU=L}LuhPPJT=f`Dt9p!j6qD+)6vl3q0e_t> zQL!Aw8aszoZ##M3qBmDIt^`{Ys!Hl6m*J8sR4D=9N3$OOEpayNWvs`_(F|6W zU|h-}ia(P%o5Et@FGPoV&y3D0vMeOoTj+g0TD@=Qg}yvKp)lG9v?SU+qI$Mr&a(!L zWl)I(quAMdD;CA&9#Xx_mEfi-trnGFKUBTMlt4B!@oh*|Ltbj+2Vq0CF|mt^YKSw|CVGP1*%tD`@O2?ghe`0$w`)MkqKs-Q7!a3)B{yz z3!f_Wm{pmC>ONIcj!7TfHR_LmVJ*|5fUOGnQkrurv9kKagkY{}SxWn$>SeB-Nu-nZ zehq&}Thz{YMD;A!uc(e!#>ys_OvD^ia$-89S#43jB9yL5Dryo_Vq8?g zR>=wR>Xlc}LfEQ6u9@JRZb`u?twqg54yoSddLMPM6vk=={`+CFb!kxT=sFsMW<&6&MaD(N)Or`?P4Fmd90(eJPAe zv^r6W^IU=GZdnTFnCcvrZ9KTng2l8T9%dkR1KXk z9Vg3@LfFhk%hEB(4fB|5h|Fy0K?mn>TIg|rs~*d&luW3MZ%E|T#m;%xV##T7>P@bP zk!q;LG*b<3oeuVpThznwL)FV%2I5UdHkEtH!T9kCG zB5rq+`8!fAYEg1X^)6RHuz_tNN9;&U9EJ{ru|@ebkEtbc43BD@gi*(NZg^#RT7U@B*dYmgl zGVNF*+em^N@+h-z0A!jH*iL~c0wYRtd$!b{6(on zvk^*T4xN*lS6zTe{(&9nxw>TRyig!d^7eNm?DQSfAHav-u>G%g5(s|vZXJ{EII zlj&gF-lDO-0@W+5aArF#oXAF}RA#Zl%h6#i8DodzRgGNEraj#)Tzy-KPfDrEgIi@MD@(Jy4?D5cye64ws3vT+3I4{K<5)M zO!BX>$wMDgJ+z^tiz8woYrW3U74yy`s%N%~M$ZZZ=Io*s^C`G^$aUppDp}}(eZqL_CcQT;>H?D=>2(SvI%k_8?*yM9GH^dZ$pe|$123;b(Ie0o6j z&7WuZ^5|r3ykzv@{R0(OOY%$rs=lHOaHrvaCDF*y}7nrA+DWq3ln!lLiY!B!xm+zV&s-MV(0UHGo=`2P? zybHu)e(1Q?S+Y_?mm_NEFiIM1*C1_Gbf_$51V^II__T8dxfl&4s*h-22jhc(F?@>K zZr?4en4IlhjqLmNc^Cpz|GLsYti53t6lQj`!gZpF*y0_pLB&{Kh0CzZgJC}0RdsRJ z!LL9hA5Gg)``b^G>1F>_vY5{NtPm zi=aUkt6pPkK%v*+;dkz6jo^EZtO}r0a;Th9VNYSDbmxLN^#@ZHxfc}$`<=YCamVN~=d$uMJE~a*%c57j{gck@G zPYp3w)Kr(`XN>`tTKhwwsXYHxJZ`gDsDeW!^3}}cpBIX=874s^4`F6H^v5xZjm7nRILzrSd`G>Z7u~(6buf*6Bn#LZ65&jU_ zqz!h^oHcK;P$^LT%L`dSHg8eB2;}fQpVEmbD=`j*reVsPajbI^M}yB#?=T7D=UP4qWZ|1Sn8DjQWJ~A{7TY-l#e}y!{mx5TTQ3C*Or#V zO0lOE*ZBwH(V1Zix{pnB)pJB=p{4R*Ms>Dq5&Q+RsF!(rc~*v(K&qD*TNZ?p=V=4c z>+GSpgDFh)6vx~OJS|U5K)ij~_BKmZk1@Yi;IS+L1pIX_eYpL#Q1uqOUBbLg zawGbLMBa+=FxR9)B;RvvRU$0xa$Ug64!eb_x0vWE2z#Oyca~zm559L2@Z34e;|{tX z9Z7|};yMzLR$c_lGkw0ph zKcP~LtP0?~L6g?%k`wc;-*9ekiXIgfu4-&oM2!@7wXp^YMu+q0Lv&Sg9;iCS%2De7 zwH#&Xsz|ZSirF!4&kGjmm6%yQzADqDNFrfTmV4p~+P={%uR!~~P?d_cMU(Oh&`N9w zh*lNCdX-pY2$bEG(8VKCy$tJZC2BGH3HrJcdRtj)F^@yqm6hOemZ~1(N{oVPD!+pF zSC-DT3wQ01k5^T~hA>{e?$==@3}HNOG0$spO0VDu;!5z`m)ylqL8v5*tBy zN3m|28-dSJU=Ki`fp&JTLw#(Dto~z$et4EBkYO^ z9))X>M?zDNFpr(p0Rh5!rn0<_j&pLksUYQW>J^p`b6(L|AiW z+d@>vYsCV7IqRFy(@J4f^%V6@?sZu*&ZAOgCE1%@{pH;`b>#3mpREdD*w>^2avC@g z0nV{j^R%!Ys46I=epU3Uosh_Ijy|1g0^DbYgNQa;Aan8p$!d=80RSRuTPA%Uld4F6ux3W0Y@L|>4KoR6lrKS$D zwX_K4vsHmW#nVtl>0haoKxidU(z|Be7O{eMZ>G8573xJwH1?Ftt3tEd}WK{rJ zD8w4h5TOYPc;Eb9W7AyqJUsL~z=X-N;F|eL3B5;F1u!)gqNPqxhr~kjr>5NeXv(DG zb+|q=kR&TrnJizG!7wIF^ZZQdEZtEurDS#WI6Om!Yz-L zR>7H)!n($JS_LN&ax2yzLL(ICkVaJ}&^bFizyIkxDwL)>A3BFoI6AnaaH&y4x;sva zm(-+#H@`SH5`;E+c|i3F0}*{QDN$c=q}4fVQ`9dds%O|kkoAmbjRK|4IS?u4k2h|X> zdJ9IrwNtQZ%w4S)jdUMXy=GG%^m=qHy~TGA5cEKbyX)4Xo(H(x>UejV zJgE!#8mU<43RwtE{X&I%IPbA2>ECbY(10I%yXJ&gb@=?qQIw57X_j3`@BN?XmZN;^ zyi@)`WBMO7;&Az7g74!6&N++FAe7`_>JwTH^=afm_(TJ~%;588zyB7NEJ^)9lVSbH zdGGhcc?Wk`SaK-!#Y^v@gNGdy2*rO&Z=opLOYh+$`VSuvr2nV%&TUCI{Yh~AE zAg)(Jn6p&%7;R)hm_s`z?qxVxnV z$P(4Vf>g!pL|MU3@|LD*j;bCPgw%dM$e)Q@8d6JC4+~NfA3O_gUu|hh3Q)Z(3?IJd z5?ldjarlI&9%6@XFsGKs3u|BZ$fbB@Ri=8%-btW%l;_>z>O7F;C>`XfX9amxW)At0 zo|Rey<){vidEbCPzqYiHSdU3nj|=iFuQ&<#+0r~KK=rPmb>Z8P6MZdhU3^&ex-cW< z^&488k$l%`6!aSKHMv-I{^^;P_8L5>hOwYZC_LlW(kdZ%!ml9v6r8eZY4!;mv?{29 zP%>ln^}$N7r8ST;|BtzMYmO{Q&cvDz%bUc#$Ygq3?P^I%)M^PDo4w>1Ut}mCQI%}m z2AQbpo`+4#N*n+=oyf%Gr7kqve=v{3A1IlAh(3=9j}so3<3QxeCg-7h8VC5ka1Rd; z4-bzBR%+6h?ib_(E&KMR2W499FGuVdbkW88MCfyd&t1~cwMLJr0^-5;| znJyU|^UdTzhVlCj4vWZyiQ!PvI|+RDH5?Dhv`H`GH{=M}cT5^UrprmWPHIMakkW!O zZQ=@^%=vm5$?oe47_)qxYGTF_|=R1@0H5 zx$f%h+*Zn@Ic# zm4T~uvbfz>;sBPZah^p6EbZ@1GOGrC->7@-nWA$;lCexjw&^0n?Nn}m?mL!4TqaM( z^5^Lm_ch5Klzpc<#$?jO*giMYpXe4N;hy(3HV?|QC@Pjc&cBiA?$;L;cS3U$Xa@my zVvm_WCwsx_4#F0H9Bk-BP|QMmA^uZx9ADiFDUlc?=5P`3WQ0eyj@krSm{E99;cG07 zgkv_ZH~O3|JgfB9LNSXAP^?To_6#t|HG)xHl%H7`-j77x0Ac|e^QdC0m%01Hng|RVPO-@lm_<`=fCvnIi6CQPW zPx@<(v4F^&7*mtMVljW-%;lI>#ffUHS`>!E!llU#)*{D?`E--`0#*0qXdY3d5nPX)A~GHIH{FDLg9nCI{KQ)# zm&zH*l}8LYhY!oux*4=@hwROnM`TWTSDZC6k7OoHuiUE_IE;^TG59&vEt}UM6Ar!R zS&o<(i+NDLJsG+uAQKYxuC%C|1Q0VIaGac*cOO64XCKc-1NSyU0zJK#RiIr1vo{LJ;%5s`qHNF#wE6mUFx0_v~A{ z4de9JT22m+`N&Vcw+{>@`gyIN3~?AAb=rhaOMamw)qtkY^XW$%`!;_X*b##<0S#oU zt|RUoE4{k*fQ`qcIb?Sts)5aT+aU)zxN6Sr&>pXv$y?ECNw7AvC6r_#%q~V;&?j zJkRcapm)j<}iT0CYW8)$F~BWmt(a$QKI>J8p2I<+1`g$(rmW={+O6f;ooZ?G!Q za;W{1kwSnm%fFt0hJpxNyDn6vTC%B!GVe{ZuaD4}<=;U~^X+!}5q0VFZIWbErIF8E zq+rbRC;n5Czf!$dfg{|&+x_+rW`F-QonZ&@zyIzpe*4E4gYmn`$@%eUB=n~GG3>BJ zkK+VLEX)6Be|9zaVK^EKe0BaR;X5p5_!Gl$c03vms} z4iCm0|AUc({&96G6s3;!f)ox);$L1J-@KI))Z#lR#{YfO{wvXRHOwtE{mRc%Rx6|N z@pyP5ple(0pt#l6KHneTBxWDLg$81Pg&{xYOgi;seaa=%z#}ZlHpQ@e1EIuPjjsY2BSLbxfvWwT(!+M+W0hYK6{5~+Gmg$-B}QH zoB#-K7aavy%p#Yj5c6@t2p1d8($W6WZQ|?rB19J;dnwS3K)rZT3U9DBq*cp_WvE`UDkKP^M3{Der zHE`6(16<~Z#a~>V4ljpe%yBv>jCaUjGT%J5RHQb`kAg2*B=8^)HCC?2+Iu#+aQ1r{^3 zMhAx26x4dsZj#Utuo2@V!Gwc_Y!rX0cF>_V56CjXXK?A^U%&ZrJeYis`2BS@UaVyd z05f#o_DvT6X6U}_n=SxkI+PuwAA@m~+Ppd!=Q=M3%ACKCO`GF4GOYX?ZRHcqfd+s9 zX~X>Z{KN5&xa|2dx#dNT_!4LV#UyY)ljGY{OyJ4#s>=O@V9Y_K7;gq|kuOGe>*~W~ z{EoP!rqsNTj83w6%twlQbAEO5eU?d$#A7Cb#2i$5d4fRe;&}AE7^UhaLEJAMg`uhR z@^tX#_N~BG@8gScEd+y7Kc5b+v2r{fM=Llr;z^M`4#U${^5F8cql490AX0mZ#$5l3 zxPB>=qt>NTY3C}u{Du%hz_)TeRRIVD21L|4c{>;nF5in*zIGYK7z|5-zm+q0O*_ZF zodg)IQ!4<0z%8UolJnsOR;Mt9>!FZd9d{e-MTa*E3M6JQP2O7v=dBLNZ6l8*n)+(D zO#s|N(gF6x-VAOgqv5ZlS-o~mB!HN}w0J0QE_;280l^OeVX191v@nRNk87|)L_?vvI#yz&GW#AU!xh>P8Yjkg* zCR%M5w4~mbo7GY`KDUNOLv;IF#Q+8Z10r@uhv(vr*Jf%0m=OH>23niMd#&me1m7*I zU|SqUrx}^zimS`>AH`@^Bc)uV*FrHq)tF)b4qNx{2f2;8szp?S$ZS+;WN)>boE@K! zUg<`n!dL;s4CJTWhs&$Th}8awDxO0e#-{@k{^w(pm!?h4DELsfQj?y~V=^lue`dWI zp1eD`y0}I*OxT0kQE9N?I737x4AeNjxs^<+8uR^Ra2TIr3G4yi49TF6+jI4Ic zEvnVp%@0Oma2oEED8GC=Jd=aw)x*7oVQ@N-Grm4MKYlx!yur5p_{VFh9yR7qJ0ihj zGF&e#$ms4*IOI2JC77B5?q-$1OiyPoeA}>kALY4Ue|uI5m5IqKF|kW}3p-J>A!TV9 zj;Uxsd#d3HMFko4s_W_wLIKLOIDsF~j_eY0c!|m<6cE50U&%=5^(XK(bZ$r}|GQ&M z0%ya^CupmPi+)$?=$0%|f^8gjm+Cz+}=;)^k*? z_C9JQXqNWs@@@aL0+eY(6<-`*9>2vx^b~HTFBJ<+CJl!T|H6mC@%QnZy~nVLVVOE~ z4j0GQ*O8)qk9A`9xq2W8vOEhaCy>Ogyivk09Zc>v1RJV>v?i7%V9;)6=41Jb80< zC95CQ^iy^v?0_O{1i50+S7Q^9#HNgRFW3f%u_-?=M&bHxT$)ptAMj9&PX{zn2628B z)laG`wSv+u5~I_mz?d>lLNV$Bvw%%FjBIV?9Mh?QuI*0)#Mrd!FrLtl5`5KT7n<(D zn1dGJ;|c2eQ8bCgnGizVbSRLtXv|_Ix&CoPIbGQawUT%+=CBqtdWTG_kfPRtEE1zz z`?t$<0bgtX4vO*3%;~ZTFx2bw<7hHdOHc}(VR<|x^I2`((r&U4r&e1QiP7z-xQz!~ z?Wiz7jO|*U42kNN8ze@zCfyj-tHhtM>vO2E&pK{gBBEs_M_@1sRIr z$=zXJVlu-4=xrm$m#URyKO+EQd@>*Uar32-_aCcy$1J*mVQh-M2>WTb*v{z{7<5y! zw&kH4A&MILWy$im%ua{5x0?;NWd^5IxDl0Fsr?h#Z3M+Ezdy$QN|dx$D-Tlt>QET< z4|yIHTB-;#JdQ)&{q~P%e@{n@w{(34ozsPZ9S_khlat40Cf_huO#nB+tlOM+2*ZM4 zR39(RyM`6;xZO2C4`CP{Q(Xu@_=3BOgvwO!ROGN&OoU-_yndKmPuI~!T&nw+u7k9H zi^0HHP5U33H;zQ})ghiow?IsR^_QeLUfzA*eEqyyzxKB34z>`Ji7^6+_;&d`o&A&w zr_QnoU5LaaWWOMJKTZ2a9ft`4qcAw0tqZ`72%(_ijIJ)%OJoTulcT2Gk}u|W@cpjK z@S`1FUnCux@1F?}3;B z%6qfBzlUEtn=ck8xDRmtuv_gmqs%=X>f^%6k&rHAZUL-6Xu)uKFR#8<7b_j428?-- zX=NU0vz1inR1Nt{Y!Z?=;ddS9+h%*cGV{9NQ`4OVz5tH7u#xPzhMR(PYW;74O#m_< zJhJ1vY4GMzJG<_FdA9`KtgcZ_5^H~XLOxVJ4VKMtj7=SV<=J-}Z z`c6~C@&WTa4I{yQsa3RfYB$B^CJ3uVy=q#oxS!Q}NG24$T63_bQ_$#O4LMXlL=v6q zGewsH890{8jm1sD*XXVrOu?12)aVe4X`DRx#Lgg$1J!jUsV-$LTgudpsVmPck#t|q<~BB_Sv9ZbEVH@`(U?lel=1QP zGC8m;k@f4sq1O{RFebvDZmYcV1oEPAC$S4sp~Pfb?~1&K-`^E^C?=tWpfQZZcdH4a ztVIZ)jg{cZnaf8d$5z#0v`OxYi{V%Z%ngEP@I@Gc8pfzh0AwyW(vypZUhYaHQVlN4 z6M!)Xdj16GCkvT7b*NJ2Zi<(C+Ne50V;(qD|K-)ENIO^vi#ePubm%0LZBWxh;+`eb z+5m|;;ImJr&zl`nr1Otz0yF#fp~@1#3>}uVwAgCC$joFtT>!{*h!$8nd_8Tf6|Lma zY}NS`1(cXfN<+%26u)peeUiblYJ**L291e=z5`J%-LRK38Ib9WIoh7ZW#KpzFFb`h zf{S7~Fs2FAH{86(i?DZsr(S)G#zf?fTtCGl_yuFjC?d7_aQp`SGwR#e13;E1Fm`ni(ccv@~`B&pGu0Ar>=V?@%I#yl4D@Tf#1E_Y9f zJT;>-fMS+F8r-o#_j~u!{~n8ZXx&Hs4?j70dfv*1WYjE8#sEAJGhhdh7-o|<*nQsM zS=Ps!=6NxlHG}nf6C=k9+yH0dGrUnoe=bb?MG_{24u}by4w*oD=@&WB z0z-QPlb69fpwx#94k(eq{=5$v7>Oy|Bruz}_qEdQSMvV`{{Y|%#j zbYZ(qil%O3YVdPF`3o{Ml)QB_kc$y8)-N%^7Dy! z9*RkPukn{uk#)T$@iKHJA6!cp;xU~c@}n*4CZBHb6iuYYx*;#%3S{QpN!e%nkU6*< z*?hLm%w^SNEgX}%U|@z4u6529UlcCD`1zorX@7X;bnPg5qjYzSmBA8L}G zC7A+1mI(z4PH(2LE2~6xBYRdNq+JjX$&|*8SvAu4)71`1WErulo1~qLjL3w6jKint z!|}%cf-sbN83km95{_)qGo^rJN)z@i@8=H_vq%)uss4our;`_tkpgewm0P|FF26}I*Fdc0z zm!(3nRwS2dxtd%SGA|iStY0M(AXAxm$JkQIN?x$~HGiKq&=8aS<1P>ormfLX)a*RoNJoNllDu)j7bwC>Djbl;~3|hrXqRzY0CC z!(d!^yi=St8PA_`8yTvW=$y(Hf7>!dXv_n9mS57PiRy+lGFcUf%P&0RDX!k7J6$Jd zSLgE5A9WCQkV;gRG|T($>h|V!gZCx829*z|08eT#lf^#bn zw&YrIc^jP-S7+~+HNfC@a%Y6^h1=nFa*uyCygZZ7ll8*waG4viTC4NH`S{qF`YEn2 z7bd438S7HHgk@&j5SL*N>_WESm-|?qZ-Id4mf+}drX{wMWFyp&^+jr6Waba;-XtdA z7*QuoepPhBKK&o#GI!Vu(eI!MXRC!=Ywptv1$b^r==&XuCU(w378^{=0p_^yTHVJe6{63$U0e<@&qaqwgd+FlGJwowES~HGI{dJn zK0il-=_9yHFh*oHvU%(=U$0kR@U}tpkf2%+b%#F<(h35I8OSE^p}KH2~>jwg1Wb(|UB}@W1!u2HjKrMgG zfHMx`)9f7JXZELb|DSe)V~Mt=SQa?VUSwgMSQhv5o@9||%!REcqc`{U!+iUg7Dnkl zI8|K&$c#J|Np;eMYsR8QVQjWvTpc8#YwXv6FfzCLqFF!4j7CkXEed0^?V6ubd^Bo) z^Q{;mHMT3!mP}7JTZaatEIPWlqH9#A$-S(fk3N(tWFO zd5KUUG8@K+VM~HR)t3}$L_~=7A>p6SHz?KpI$+%k6{_pQ5>9 zGPxN~&9jtf0z8%mdtr|0-E?`kXzoC0hrTdB_54of+I;dk@ zW=375VV-|#mR{i808p#NisV^n=6C)J0g-1H>aO-*0+HEVABW#4Za-bg3yrJ$I0ww! zhyX~_mn&p(R%==QqeiJE<$5$`ah7yRHv}$lDOp~t)s~dOWo9Se)oex;M=}*vEuTkY z7UwmuQMmcaXttz63&r@(r3 z8ChBxA6Co7V9bHND6(*b*04HSjeVFe?^d5T_@Nln>OOj@tFp+@>!4w`)UZ zR7FdE(8>y4(-OhLt@x2|VCF_H$n}A}AqoHS+MBC7Iv~VkMpTETjHBJh8SP$*x#V&WwFk@|n_JL&B$EJG z@1AAgvyVq=5t%K}Fy%0aEeeCwGt6BY4ltR~MJDL>%T;uZ+XQtLu zbO;prEf;-*K3;EyL!&zS&fumJW)h_PNEq$luzh^RM%tHizSt&|uHHT*CQIhBGb8ae zvdQY~OoGa+9LoyUjPcaRvN>dCcexu{8AOs+=WZMpGdQnefBL+b&!V#w)m}v)GMgJ0 z;kS$~tH(tKmziDuh<+oJ39HT@1$fNlR(0kOKF+Npk3)A$iYcOcRTqOYC-vf|>0)v` z`^|2?ZZIC@vplM`(8$+gb?jWsdm^!u~d1(HeYv&Hm5(y6Pz!Vt^AGBZo)9);<}!-rVR!yev! z>&e4Qw3N#vBYWct(U^KqV}=HFdqZhjoadT*cBtF$?Y0kQHJX z;8>0qi=5f3aYjz694Irh2L|(ajeGHgbZY%vp3MR=1CKCfC`hKB^z7gYAY)di#39_s z+-#f3?TZ@L3?#Fn?s33-i?p+e$^_|0RKDzrG=XG38r$K=lj$ycs;X|ymSQp^t=Yua z%&q2iYqlIJv(hRf{BA7lBd&B5=32MP$m24z=uwz(-#yBZ%qMyjAA9dnkI9UpN9k+- zJsO}gtLRaDKS+-XTxLdAigt|536nGF4b+M!^8amE8^SO;_Daod4gzIIle-&CjT-K=EDXgYWXXo#9v=u(b-JnL z7%UFMQ`fif=}{AS2HZ|3w zgju~Y63ar4#`F$8TukLdHfr2fVj!R_!F(w^Og#aBn82IwH70Ud+g)eA7AFh;ooIeN z{CD}*|Dq@OUwC+LLH4<0sh&CuVkA~jL?KnQ4@Ik_h(fAqABt8{WJQ#F%bdj0yP5tl zaOMF{s3h}a3^TezTy(T9L5_ftm;xcDm4H6va&BrS@xDaEXiP=@!O|od*lKAE5>p_6 z^%QTLrF~&aXid%QmBeY`n2cr)mWOjy;WVf_^n&IXjEQJIXQK1zW;+)W>GOGk#zHX( z_8D3d1dq7kKR#uuhjt~V7LVyD6!J2q**rZIDp6T1rlE<7X>i4!P@F!G6gUWo2||m* z&olFSwZ*k?OlFj}`p0I8fH~uG)G@Sa!su}=k(h*neEBJjzEqjIm}LBAyaKlbg|4ED zR3}>CAsm*644a?#E4(M8CPwZZK;W)3kjzNql|QG^vF=dIWHLrZ=}^m4I_#<@?K))3 zzR!Y`nrFqNalBlvw&qnEnQT&%)*ZYNEbBGwN&L#mVzt>tMW_4pWB|#G2thq zsC&e6UoswZ(YOn^+|fFzR5hX2tyGW6oRLO(;t6N5JvGXZ%t-z+kn&=6hX)bGm{+&M zx@B~T%tsRd^TpmppJd9t7kU^Jb%Y#L-uBDgbdhYmsVTw^$-pOYS-x;IVpcfBXpCT) zIkX-8O5dX~fMmvSgy6Hc=FnXC86hDib0Ssf`xf8dV|RJAruROD&8kV~j-HjM%!^W; zwmuN0)){A6bfclKM`o|4p#NsR>S++8xgxp~qC?(Huc`E`lY$!y{+3 z_eeey{#o>aYRQlIhLO znH94fv*J3W<=qgw$J^;gp-MGIDsc)#X2d$eF%G^oGYWDuYE|RF0%ZiroQPYpoKba| zx_WsLYfxeaKbYmsbgX*R;6>a~@8VEQmY)XH^>q74XUSyDf1^2o7d1oTb1$^EHu$pb z+14Z?Ga~+X^21Bm{})~PrLL(8@`iZK)><~cUQ8e6vrJm6*0Li=<`fbd&hhk>kI|JS z^mxqHdP8bXx|*u>hAkR1wYK8F(bXWm_$7(Rj7SYRTe1HVRO)O}P@;ok4irBL4x9SQ zC{mA#^3#e%7qHBYYm$rH8Goc+_BwxQ3nHI{AVIVvBfVP4*~#qyS?+dJT3Y)#^8B@< zGJ<4ItkE+vo;RPGSFYq#;yMO@skW+`5v z0mfw=v=)YleKpO6ZM7CA0GSW_a>L~v9@0zGuWGEmG#ej5co+aNJ|bNT%O+38;nJKf zd{c+*;x;bKvpARkS0AxIM*k;dl90?so_C2`%a^mpUTm5XON|Jh8oGEhB+DQ&BSmMD zk&_@oPBl7HNIfX?QgkMH%^MlFmnY-l)urH8qceqD05d<$-I70Ej;Ya!LK`m5XnjE^ z7oXP+{^_y|$sI^)&&suN0g)v%JsWZ2QbjaCXt%?HXMZ_;p8u6X>L8ibSa8IOIbTq! znpG$XkNL>k$C}0WBwo?iZW!g^m`PnoVO_-^J&sbnn_N zr~&L^yukgZLdbm?4Ine-?B~@ZQ?Z|LWaf05T%@?KgyK>~YyDtM+ z)-STnxMb1Y_a?egy(({xzY9i4i^AB*$rD$*|c$?{5 zapA2;#{Q-lv#QU}ArlC=~frovka_KWeRIMU@(RE=oipB6HGg&`M;Q6WWqK8B|xc zIA+5dGsBiJs%uP@(LgdQBIp9^#dIS}r_~7hMa%}4+4C|d%=^nMSXH8=bM zRs+h+p|!A&3dO9o7RF*8jN=PDL_FEF~S^G*H{$MfiVqIk&-4OnmWrX zWRW@pi=_3SEDx!-NQ=dCVbRHQC6D!}9u$9l1)c24BV@U$*b1UCW z7uB1*#AMPyeKgAn+pAZffnth4eecr;Q|i^{z?cU6)fdzC<`Fl-++Z7lPKnuhjHV$v zjxS_WixQqJR_G8r!MPdO!V%5D{E}^e8q0S#AcSRVtT#jI4(atx$S&z4V5Z0I&3XEa z8LQ7HbV}bgAo4hv<-;b79+4=?YF{lD=;W8UEI*b~Ol~e~peSIxN-R%Z>ldkGR3;9j z4sMCaP}fVH;xajwuR?0uH{(^N)78sCyCsj1xdB+`;R%Tey)6{ITcKu6pUl$}!4Pk8 z7#-EkgpTk;xDPdJmxCq{#zhvHaL?9_^h@eaM-JGaFf!szLPoHG8=mM!+UQDXJx0rD zMW8X0)BHtGns+#iPSFG8xS4*=bge!$WrS#-!jx`K%4#Ogat8tLRE^HG8?)u6MI7j*A8luA%t>T*`x%^vUDkn8)@Mp6q!) zZ$4+1nrf!ND(@5iT6kWG$ZQl88w)jTG?%~G-QP#0*Lo~vAc~X$Y?;?KL(Bqw@H*Hs zubuXK=XJ2mYexn50c|_KIUWrJtC|^6I@W_Sr|etv`S$E=a3fgv)o}pJycD9hHic11 zx3|q7cB`Fq1A4sDZB`PQ*=faPY8o?RN6mc4ReA!687N6(8GNB)n55BHTv5qo48}ah zW~e%ILP|c%RXe`Glgjc=$0Y!nua%2Fj|S&w!cuDG@?gwk;u<4YyvP57h%zfqxX*85 z4ud{w7V@Oo3ue+RyaD3YQ#@eGdvT6!GDJz0P?8=Gn7<7?v&3Q+>U;BrPP4I@$>F2- zeU?fBG9UR0&xg7}3|XoJmcr@zt0H3v$(%IPdCrU*)+6a6UB>%HOgGUf#67fW$q0}o zBM<2L>`E=GP<^dhlrTbNW^bL;&Ev1na`jVbogRx>$j4gw(%nDZ$L3{{JAl~J3K`Np zKsB;^>Y$PPfD}PGY4FfMRPn5@A__bfiZ#~u%Zd3Q?@p`j7sg6i=y+v((6*L^v6!Xx z6%^Qk1qBkL=SJRMU+XI(Nan;Yn(HI^3sR4I_BP*HF($LNmVsC!R%fkcI4I_5ErUM9 zC+BMWjIo#nCm5Xm@P%?_$>9{W&b~09LOf<`{a^4kMf3 zb}mr>Cxaf9&R3%Yhtbjd-1ZIEVuTAPwf9RBcr<20eBziY;*$c4j88B#IEK^tCwN9N z8r7MhK;fWLDa@t1fSW) zh$@6qW4Z!a09WRU40>O#z^<`BB;_h8Q_Zz>%NN43oS2Cu_xa{=elM48>P*y4>kyd{ z+mMnG&$qAVUoLidm+5&St1HwDPd9Uf%q>7H7_}hBt;T{1H)Aqu>%E-0UCFA-TJP1O zF%#x4Dc|+#bCi))=dNzyEFkk?V^#9qG*39TcNcN0`N?k17L<7t+r8=Cb{!%!CYFQe zPq%nsMvj*~EyrUrE23ek-|>3aWPGg}4RM53&~XNCJLs28M(AX#s1Ae@~MY6D>pmhxOS54dOclgxD0 z@^~=j!NDS@!^q#OM{^2#0}Nxgy1HI%@D@~0GI%iNX@_Pylhlq#Ifb;7W9#NaBdeVp zTQruX9XFZTqITRw(?r`Z-j|2M)Y_H@OJy0a-b|x2iM6sgDCTIVfM9+IrKz0)0yySs z7pL(&Q@ebOCYY+XJh`I|#?9AYgI~aKLE=LoYS24dQ3$e`uY!9*(b@!*Ijt}c z%@*hF_7lcoNZ?Hmzz&0f5eY${&GH$_*~$%7bwm`jCP>Y(fEm1fu zX0Uy2dzkv#c95W|?dt@TIi2RVYaIKD#H!XDgE5D-Cp2NZk|mVt{83gMK{3AXneA#P z3HIn2gT)MpPSE$CyiJ6Ylj;TwLbPZh%g0~i(ri4kb}}4_j#p!#mHEqd)83}89TGE; zg*k@J$>VgLDWpaS9+5R)mfa`%+9sY7o_ujkKkNvay+--{;%OOVVO3W_?$ zyS@btFqsmm0^cfAE1ls~hi{j1Lr^9q!?Ydx=Ib`PeYMtPED|%2gRl%#gDY%OjcDky z`NT>L45PRGL_g*t62YPde?=A#$80zq5y--y@uTE*QZ>(^k}@iDBghT7ZH<$VQ+Kx| zZ8|V!YDXOD)PB5NB_gULt|+2_WL9L568TsMp}SQ5i$cqo%$t)IrLPcIXm?*}9VD~L z-ppvXzBe6Mp2@0MNLJ6}zzR&M4)L2D()@z~6M z$~a?n->5LnnegA?F&nbBAzLs#gto74uB?i4t04_wnYf*G?2AXu^e0q#$tpb6_CMpV z*3EsYQu8tsLoy{&4=n5I`RnO)JAIu!mek5%%tK+F?ZNoyjT+X$@6oXrx#DTDm;sd- zEyM9Px`RSxL2n^gOSFd88Z2gMyU2YRrE55K|ErtJAu^+oE4hbh54j8$vjqJ!m-|fW zin=5Xa2UPy5y%KUO<$QnFAz8==4fM^{m=efS@Vj|{?NR4PZ=|WVdZDTj{nhm`~{!>J%PWB2ZV=`sydO&GD3fH50^iDd9 z$5ibM531W`N~R9kPBKPhx}Xo~@z41THCBm7QXTm!?~(A1N(kA-nN;`f&nd2%P2@zW zQr~hiWKmB1Lf>*SBy$Fq3IX9arH52QsbWt$Fy?8)ZZa6;Xs5^7BcJN#egwKYkc(M_#tR@=qfbfd(dsfGu-e~0zz+UCaz!< z0US#ea$(PTwwP|@nzf$G!!cL8k{E7iM_94oL|$h9TNj*? z7>ik2A9K?@%h|NnNgE)>Z>Q3m`Rwsz_4JILexWVZ#}tN0h{tSgo-FwKW)?>5 z(O@!b8zj@xp#LB_MP=sJM(B6?$}lk&v$Uau`_g0RAQ72S$kkiu3N8`4wzi*KOjc|A z;##uS13_WJ=4(9=;joU{)+dKtYg=!C7{6Vp(2q@mSjeC*R0^Z0MPsIR<|#ZPtwuZ9 zO`QOYncDO~`!QLntCi&nn@C8s`$sKfW_M0agD9NQ9vx07T(6sx)$)G+U{2@{aUu)n zdhhIyL_hvgeOC>E;RIC%z-p7xo$#z~Y>3L=yZ(yX1(umcsF&r<^+pJAZURQh&2Bk4 zUVcrkNmJt{R5g8loIeCF?}kv!fcP)?ar9Q7YPp>p!RxG;M+M8-V)`IMS~X#)P+3Hl z3Zp;ZOWD*}yOT|F;ifX;N;*jOl6ek;!*aj}Gj`N9YLr$+5Bdd(xE4QElNvL3kw`5$ zJ0s~*o=Q7w!B}6&x|2M(tfHY)At=Z`U#(<4n(C|aGR2V0i0CQ9n2M-gE%+i@sZ%$q zf~LjST2+p!2$5yQY!Jx`zEo5-VWEoZVVM~b6)}(SL?!G8HYDZ%buP~n258LV{6_mF z8g-R^L*OwNW^*ai;7h7YwI)gvjX{}JNSKL)_ma@zF_)0ge(PDn5R_S+&&ydzw!E`59ZppH>dviWIU765eJn+ycJLz4 zio3dmvGl;}P?8`gHni~c)!BV4+@i5GxaS=b z(nW&8;=a?;Z<{8l0c8XR#n~tNQJS6A4+h4t7K4F}Rvd78^`M$yP8w~{<)wq%_T*jn zinbdJZaenoj8bstZW30ihf30xGYrFcnK+|JPTK7cttA@fqQnM?B#I^bgaY zn%(o6>_c^Tu=z4;o~igdI8U9yWI-s#qgRMA@_)VCY%%TOKjd0RUltHRuzJhjF&$Z_ z`JDO$HJ`f4(MZ2QvyFkLU@s$z?v`^L0T|0c9TgEpsU&?4?WPK{xa5iqSv)ZG0iELr z2L}yk1AV)Ej*o`xZZwDPfLKu!X>75#Lo$4A$${UJjJqmJ)DG_0?5 zsq4H>Di6tY9O z$wc~yJSNl9DmkLfyx6XqyuuolbEL8kv1yzXN9-x9$7ETte-+8fzw)iH9Cah2TiOI~UU8BSwqkK${h+dX@fAz8w-M@I*+UXRJNsjP?EK1)r+M zZa#)&TAGq9?GG8@^nfe8Bq;)73Ub;+LER)o(bugBy1`&zX9D&V;b@E7CuP;x>rFsF zm1tHwDaIZ&1jRHoV?#{{?QQ9)P?f$EiB;9&FagcfmcVtjTvVxhm75HOM`9AxJ`%}I zv!Uf8j~L0My4i#&fnz!f+dv2BfExxr36-g<|2by6V2v2SFuLm!haN4b)Ui>-4;E4_ zLoc0H?sfNM;L(?QxB}b|_%RE_jkPR2RC^ep4`( z3vpHW5nG{6beH{$R#5Fw%%CwB&M>84Pj>6%Has&SYR?Q##qP;w=TS#I{B382#Q&dbc(gMdG+0B0JT&)jzAk4-LJ5me!|*a)2+6FG zbfeExSwp&qbOtNoL4-D>)&9Axo~Yspu$ae>xXBE25ayqs8hOuu)rbqhQl>jI@$|$L zfH9M|j7j@(@@cw=jxbhPMheNS-d9c@u)PB{W+k-W-SfLO` zjlYZiLrBbl!rg#l&K)Fo8rAr?NEHAwqm&A^*^^X+#2ge=VO{X6)w036@~fw-`}>$k z^%j|!KLg2(6n~_j@!DSUu$lVM%8Q5@nfXx)P5hZvlxin=K8M8kWbqz9T|ucaY8Q!I zKVfBVn5f_A{|NI?eMN!CgRwm1-ANw)0DYdVqD#cp6@@~^n9NC@5DS;ap8w9=+oWnS zzMLk7V=fv20oUzvi~o{|T6I)+u`wX?A>A>it(S}eswuQ6xgX*%JWWVN!HI0^)Aza#!(=;l&j>m?Y!^~nE7;d*$j^DNkiyiBfx@_e^V8HZ)kqLP zu>_ulvWX|t*`u5mt5{knW}ykn=!rh%`a^fK8FhtV%tWb6Vxs96N5ZG+#W!l|a+^{~ zH0HuCY0G75h%hlHk07h{5+y!?$ec7TS-yly-M}bN86ai|rJ@fX=G#Ylm`3jS)Ji20 znUn3q-J^J%T=r699|DY-*xud8*!9=gdjQ2OwD~~2gj8aZb=9Mm)czQU@!1OS^Yk=i zjTLwxW}r#NNsy^N(`Wgt3=WAoD3lZ&Z@$LwYpa24#-bsMC9-fuHnWW)76E&)SvY13 zEFf8^Ra$^}eVXD{r@LS7ri+9_P5b2)=dm(!j25rGMJmr>a2TJKOHK~@_bD#BPQn4z z*Tna%WD%K>Jpk^uJ3}IK7hT3w;{gIFW})DQ*v(;T= z%04G2CMhncF0?xRTp4{Cn)&}@mLE=Uutam>&C8pf8WG}iOY)j9zbVsveQCl$Ge7S5 z$*2pzl&QS9?oSUB6; z&Hj8u2AcU>n}~j?XCIMAS6k7uWk#(i`iSWF`nAj~IBOzr4=~_9eMHy-2hIF>d%!Op zuqRq{Zbj=OqNX0MC(sD#ty@hXpTFGD<#;xfakFfgRNQCY%A>O;{x?5wrN5UMqN6>g z@gl)X+LAGke%lg_)z*Wj%}$MEpD3?{&sr(ki5po5vJ;2Stti?_JGjDz^w>8o0k@^t zH~7_q_KnBqmLS{dBH+nizxi=In4BJuk440(?#1o!E-6+qZLT{5n4$Z&Z@K_5L-$?Z zbO9jKp<;n$Ki-%JLUF1oUQel8w?%zQOeRGMQcFrNhCWT7Gqh@LVF#^5%@W&L=&omC ziOR&tFSin(;|;OpUuSsLYTpil1t`-Z(bUpjyg3#BK@0h`zQ67Oe*_teD;g}`j5bvCRXS#XhRDxoe8!*73wjWRE$h$ z{1+L0?lUq2NT&P`VmR0tusAF)wV1PObY!r(5n`}>nBU=s@u{pR-)FFRK&C@6dFulB zYev=T)vF!iMzBncWHM9RJ?=16Q+Fzgd=`sI0(A!a+#yrFIs-ta!#0AKDf6a-y31Ua z%Aqk)8*NV9;}NtYTZ&KA+l$mKx(@jq98(2> z2u)Ko`f%TKvz8m(^?^tP%CzBNNG{^sV=#zoII;c6YD|^{>JC>?g$9b{2n@n*gosI^ z-XI(p(_oX>OJeq0jO7b1b$_rdP=LsU!5nCt;^JpPSw9C#OePJM0rnTpM%W6U?iR9$ zxqcZCqcU;eU7}yfP5t%Wr2x*&2x0*Hn>L0QISAY#oUTbOJr_9Fh|-3(5gi!xqgle0GST8>vHVcMG`WN_q&Cl{k}TJYH5*r zvA|59*mk@~5>43Gwi9q}M&iNDszPw@>%lA{6DDS6K6~|qA<@2OCXu-TIf?&9-UZWx z#6V=ioW!(-%2-+t5(miKfMj4nF@Gnzc;A6#0GTcsSoAe3?!E&{05g3~TDcQHnHvxUsy3x|f~n(r`XHC(^?_;x%CtdDVt=FW zm?TDJ;vg8XzhWmdq3QaWSwJ#n;IYm|Sd!pLjQDtWy~hd>nGhAPJT;P9DHxDzfAs`t zF#u@sm@HTg;NcTF^VY8h3{;jPD)-oj0#Hm5EDh<(#3Wl%zclo4Ocktc>;*!?_UhL* z4vcBq&2Uq%ZY}dJv+b$A{8Kgt)WJ(!CJ&rAmA7Z)tasu8Ak&2-%+tLWdfj7$1&B-- zxG!qX_b?d*+EidFNb8qWF)9;Bip_NAeu{N~1-eW|Z$CN*$aIm-+ON44%zid2ahW`r z8A$t_ZWJ9_KQjnOrVM(Mj@z9NF5iyd3Br2y27pW#%nPW)$h-qkKQFX+Octbs&GjQo z(m=+5>QllAEK>(r7W+Hy(FdW~`YemYWYWNV@MQKK-btt0W;yTHn~#8G%3$jKht*tG zgVxWB1}a1G{qRy=gHumopqL_vKrfDen4G*jzL~r~KEEA^?y8SKBT%Nr*y>l}-?n`wBie(7Wz4Y@Rg~saBy%vi}0~dau#qF&h)fum#prnvU87lV78Z+1g1O6l zSj?BvF~0h_D*$A=zzT6NWs?@q)LUVTmmwQZ=Zhyg3PluUDI^<>D)@F_k-tYCVBM9AmS@iI!0=*t3>B zB6I#Z&CpKv0dCI1#bJ1)akHgfHr#k2qxm8%Sgmp@h~ELvtudvl+?p@537+15zQGHY z^9{=>BI|1{_j z69n6f3eD|_H0-EjM0coqxTlL8GsCWk&Q19zHldCl}ADxrqh-JkvEPDs!8pNXR|hn4*%I+-Fu7L0!Zx zB(sKI!e%cfuwVF4a%IL%Bx#xV+J<1);OOAsCWW1F-K_5~sO%Oy3V4HkDUDLi=|AJo zQMDVqh2%$RimdVvafhQY#NPM~GV`0gQD+F|pz`r%gIA&6qx=Q$I*q3fuWJLHLe3as z9+}$^_JIi+oVsvp?pjuj?xTYgnfbB0c;C$MyfOCu7n2kGLkO*|o$1e7p<^g!!O|l5 zbhcaKP5J0psG7MhGI=;=!{RJpyF9*mEBE)+__0W3v6u%z>W60f)4I9OTz;dHe71ku zDoe(7eifJ_J73A&r+UKoVhP2FS!$5er2lmxtb^ACfQu^_9L zEC6IW1j8&DVt`CWT8;LLqP2KT7N`*}KJBx5HF`Lv!afblg>P|xsS$orCYVin688F4^bE#7h_D`eBCyi3%uPaRIesIv2FeJasKcasHH_> z{67T#$@$>;MqsOVdcf7ssKyk16~J2{hQ@d_(d>MYJKv(F>oU!!=(I&+9t=pyGx(C; zgQTXTH97`mR?Os*HRV(TXN}WBG9xxDBxA;PtD7VmrNd-S8Zf7WlbgYrun*Pt^7i47 z1b8!xJ#{U(MPhKoB%-cTv|qh+Njy;_aY6!7J`$GFy^=uSFafzl9E1;+)?6`sBshzJo)Pk>{U0$z zP)vi1PidJuUBoB5{!Z(U$i6%XBOC2F{Q^iGlJX>~S^v?YL;!3pA~ zP`S;mdaIPc<1oIHfX=zB5p>9?v_gUwh#4rJfM|m+%?!ER`?<^{tFuNbLx98_cxIb8 zlE<{vx9n1M@syU+{xvSvxL>WGME6!`-{Ww*DNLkxr+QHxQKsbYp9<>zsk z_+JsRoJQ3UAm7~^pV=~Yv^kqDHZpdpv?GVaEv7+C@ey~nyhBXon9G!bL}CtOtD8$a z@gX`u?dpPN43NYgucH@+YOxIvW0TW9rzgVt4(l_Z%t>K=lBQ5?D6=9pAdE^A0@6-> zErTK`WS8D|E6EptGBa5ieyOKbutQ>S8X^b^+A$)mSWPRFEJ>C!0%R&w z9LO&uYf|r^?sLC@(gQO!4&|iOCfAklt2?!lbl@2)V=D45Nu^qX%30O zDZWFQ+S;ttMIWl$E7`?)ixo4N@!b=H#bO4U3~qMI#6!F&q)V-kp%|VfetNkg(+BEu zFy99O8k5j!nST8G=Tx#2f`^LnlgLX|QW4)kF+REIr0r^4l*bwI`Qc!P@W z?}cpYrbU-*EhJM)>CUe{4CGGJUeZ}ON45Kl-^!kYH4biuCqlZtdX52EHmT0*o8jg7 z_|3UoG4G|$7LqBYI!D*XCz5V2by~PQ)p$6LB-@M1!sV%Mudn+w5(~#vqYZs~LI~$c%((?Baup%ni!wR^t&ZN=7Odgu@X3MNlAv>2 z{%7cgE7|Qka@SkAiK|v^u0H-61u8FVwA8{GkpS7nxC6b4o>E%<*pp z$NT6+jw+2pLwL+YW@}$ytub5i25XGO6#o-G1lub~j!PYgnY3dDlIi}KzRf0hjY}3K zt24?B6?BW{OVBe6!_a?Zp_h%^aZeN9f4tV$5e>400dv~zl8n>7}{qDd2?k|3eK;d|ZLLytB zexVBWwzk}PT}yvUNg z&W(M836!^Kju0csO;I(aDWWP5>P7PwT z_1yxTr0r;dbmx6@BgaPEx65Zdo?b9#HS(N>>zoMA_p=)}A=A_Jl{IG7M6a#we-Tke zcS{`K6}Hlk?wn71KP~u7byiE{aZtW@kjtTtV}{JQ+n)mmqe6~PXq0sQ`%^e);>0la z9Qd5nnW=k0CB?(wnyFNCvpQ4~pHTIAA%Qh%%alENv^Va;7>NV&T`q3xhdeqn;L%>j; zYX*7fO#+Fg#qLBwAd*jNe62%*LE8ORE zn7%{c7OV2p{Iz+wml_I^*i2@NjhzQgOjFHal^6xAcbC|S&GRAzkt^b!iHicq2Glce zQQ)L+dnRrLrh^r@c#^U?xB+)Qi@ct?rC;db7S{JJszF`vwjYlYL3<=@g`_KII1D&S zCp&e!vLIv#>&0wcL-;urv{%yB_uVuLyer?Nd}=DJAfyBI@?q)kx{+Rfqv-3*WUO+D zt6Hm-$etRv6FKVfD(Fx&TsYlY&4!>FXY3ey6uJVxbh>3rv>Wem3g^tVleF;MOgfo1Eo# z;GPQ>IFZnoLjJgMD!mPVuJ8gfR{PS3vcS}Hq-n$`*3 z>1op}m7G7FTY*HDX4!mxp04GxyB8woPM8P=aoQ}5(YBTugC>5Fo?0zM%8mm9^6-%2gzs9VquWPM@~&9b zn`|<-WC%o01$z`9jyBCg=06TdHuw@trbe2oWWfzi2>XO=M3E+f1r6$?CHO^mc;syO1X`$lhqk99#BWclAa^gDjv*x~VrJWM}Bc zyRbM?mKCZK8C6G4#SNzt(DxFy$ov=b8#D0II~XFqQ`b2ibO0@qZRmxoWg}fxUu4u< zPMB;lfm&uns%RIA63dH3!xwj}Xv&`xoT@)D1Ew(2|co&e%cEANWnKmhq+pA+^PVC&UZii3iF^_~#^=n1FTEv`u%(a?)#Mz9Wgia5_x4~7& z^ShqyW@u5pfPpt~pN~=JM$wA%J>4A!hv;&(H?W8(&)on;i}H&Rbx6nNeTL zRw{m>WUqbm2a^Z*FZ-W79I6*MZ~{!243~N*5VJ{>;yJ^4cb9mHTUIdFTv(8n`(R?>A^vm<`uw zdf)`3OrUx`TH=Z?M>Cle>xTvf^#KhZ0;YUgPBh&smqc^OUOZY>x8gBxBw~MbG{L8I zc(??2)Gc;TvIw<5TI7ohwDgjzu$ulzQGt*l-QfL1x)<_*(&m+Hi4Q0*`7r8RJLN?t zq)&ON#Tp=Qso0ve@F?3`v#0rNJq#ljCz&YG0Pl~TnoT_Z)ils7 zHTy~!E#^bz;K?5*32Xm0-V9q^Y-h}Jznog!gF<>Ib#)! z=&7)!6;r`D$WtukRM!hzDi{vjA4V`*(Lsl^$r}VCo5ghV=$ouK;`xF~Xl8*+n@sn6U*nc#YAxB8voZnOuy3W^lM20{Mp zal)7Jh{@$e!CWFTLwiye_Ozr{!ws2~;H&FY<};|C)MZOz(j@-rlamt5#))-zYAxmS zVmfoK*o*0HX=Lu|zQK`CbZV0eed@e*i0fH>kA`25Ooz%a=-`~#;KCK%$j=OeI$JmXV2P=IKAJ670qW`Gk(*xLbZ?{(ks?4Q*M{*m-xRIEzuMI z*MfUuKezvIaeneRUE>{)~9%3B8U-*X*rcTbm-U=OdpN zV|qrDYq4K#wn}onAf;p5=uc-bmrPlid`m!+yLjzHJ9rdb4%o_Nxa3JPW4e}*%2T~A z<>evj5xpX12UoJyS_iAK!tKhbcrp#+D)ORQg00Y00#h>Y}>H9BMb8^iRF=naRcIlI6>&vsXsr51G-_(&yEx zUP+~>)kAyTmYJo3`)4-0vZ>4&Rrk+r*5`to0ynJCGwkZq5HHcWh4)%-Jr^v@bc*1g zY@*Ai577p*^2zDo=O8!J6O#+s#R5p36cycDWUqF!2+Fc18t<9egmn>ftmmF7O%9AH zKj6wOtBi9bOLAs@vCrfPE0zpi9^HIWCXX^g;RxDt>jM8o_ zp_H&!x^@_r{mu*ap~_A#fb}xc$pY&qaq|E9>(Oj0Z@5+$!(C=$AU%~SIy9}Dm{)5P zt{3F$JA|_@;qo;pfn0+xc=EGfxd_tBWz1x~3bY&70KZ^wXT1t5Fa(+>qH5h0K9Nhg z$2$(P#!s)-#otCGq1!T*ZVo+hSo?yTzIWii*-aORAUH*CWjuf4TD_^TqJw=4v!Jxw?!+ztYwRFA+U}_w7I)AlHt|+wmaMff^RRtO zLM#8g%}G4Q0h{v|x^^=DrQYO#?RkNMGUNJy4f;QI1?4==0bBHf5tjI! z12zY{6vBci3cyLMr{{|IitftGE^<2_+It%;w>>#6f)EWx!JwK)=-_mSo()ME!FF+V zIer)Msnr+?pTYEuNFNHu9|y6wcwOaB`| z9+%fotIBBP7jZ@1ID8LDaHOqaE2o`gEA{c$!~Suh~TVKa_g5O^RuqsPr`JsECbm{Yp2XC_yc zdPcH1PCu-t&(G+@gi)WGy3EwUdKqb1z;?=% zpAEH4xcRF(HsCx29zELrbZZpdRAIdXIW+U^~%W;9+~1M(r3+7VQ{=e?CZX7zQ*7+ zzK&o#Hn;quSwA$U+nnQ z>8@w^=atOD>}=B930*_?jFM%f#|iyzFK^Z z988TD6L_92FI}w1{`lByn#ZK1LDaYf@st#go!g~Zf*#$$N9=754$Lcz=NTp`tafWG zFQ%e>Hga>f&$L+)P1owvTO|FFKf4tGc~K&K8QJuR|DJBgj)T4$d<*2;&r9?Vbmwc@ z+cja6f${_{w>7Z@g`VD@2I)d9DJG}$4Q@{QI`}ecp11SW@+iKIQqAGx5A2@?&)4OU zy?~C{Q(lz=o3+!*!x3&KnC8dOgOGYP5Uoe_0HeHja; zqJRYsG`bMJCmPnt}dyuh4z|s#@K!V zX*|684zv^|=FVU|< z_iFBFK%(t~Gyv(Mk_PTp^5UU`@OLO6>HC8;0O<^)0GePIcpJAJVdzgWxYhFzMFU8% zegC_e<1+b;qpe&K9D=+oIvo4KMR)G~8kYlM+C;K&JK22QOi;u__eMlFrB_eY4&E!= z$&7RVID0i~KH%K|x|}Ezho~pkOWhq|Yt*(OLfySnyJ;+H*%3K|Q z^O6qxm(#SQBM;xS|N1hmU72Ss@?HDi4%M}m)OYY-zpAN8H~-6QX42(9S2O?iHQLNA zX=&1aNlRz@q;mxN}PS>ReZj?)9qO0Cbmv@Wi4ol_2W^Q#RF$3hsboQ^X zcX_$TSO_%EEMD`t)u^K_alap`6)v?0!_2fby}EpHAAqjhpNB?%Cv) z=MT%BeE(@L!)&3wF}R!~h%Z-o1wEOl{_j1EkPtnQ+dv0VDdbTP=XZD*7oYt4|C|2N zH{0L+wq1cZvUEkzBU?My-c0A4F8^J<8v?aO*j};ia>P{`;%b=9^g(X2?jvn<+NJGC z$Cublk7PVIe#NP+FX#NQd^S&7KQaWk*DDW6@%1S4o^jvA>=^|ycAD_o`($;0zljb@ zSC?6hA_6ZtXUwDT`Bi5B^w~a#{2A5vPmYV;%;YF!cTS|x0rh(Z84}+KyvEM_PQD`! z(~PV!I(=k1nJ?wmF~X&j)g^NJ`en_D`n0;+Eo1=D zFKMn@?W2>?u zq6K9YWK91M4JeyIb{HI@3Bka(CD?g?UcK`{-D`op@w=r)`z2R@)F+`^Sp|fpd9qJd z*6ez|ZSdYL)^t<6MT$G?OTC&d)pZOpcP zT(3UgFQTW$`()+$566(scFP&v^mcTQ|08Bwb+xo^?ibC>ob!~kdjRXz8c|-FF6^C> zU_B-4*4(E-ui2xrb$tfCZjNTMN7Y^DLXW1%o}9y{n+6wvZF&x$1ZalR6o~g5vAObW z3+gF(>c@@%uFs=IXKF|4vC&L?*y4FAc5v;dBnIw@iB^;}CR?WC#li}X0*}~c)xf(` zycXFDO3TS2{j02A!tGOYO9&FMPX7ncdxtQN6I_+{2G2Q(TT5bJp!l zC9s~9f;#aP*BsJCMvyD}MIPfV^o{B8`Gj{e8gb%~ZNv?r&?%l`%jsp(y;@MNgB zXa71}Pby4`Nh3Y?Oi9b2P)=)7Gcqh;$$MHAgfYloRAI{eHSXBHNfTk6DaX&2?rF;; zjz#w3ib2$Vj|J|ZSPUW%A8HVV&|c~?c`pY>L%a2Id2(3T83HBqCcxR<(Z}8WeS_nh zvcOHfTgJp%KI{$vJr4q=;KxUlBWdpC?ae)~z%_&{&2qN7JAg0kT5`2i9$$h*AyU_kt7`WsH@>bY4`PW#~P1W^%MxqGUONJo9@S5EI zl{@oC3t!Pm>TZ69F+lWe>;i&s$*dQU%jrD4#Y1fxr0dczCwn2R`=OmK%-IM7VY0Qsv7v8HoMp;Q(I4_H*q9YAXb)Q5R)ls!@o{9#q zk&3>t@olARswa!=k36m+yT)qi+oPx|q^^?;lo!Wafn|^b_5cKOS=|SL(9w7O>FB$> zj=t+#3Y1bykKB@jCLMSnW_MP5h0=uJmOg1&Ur5>Oy$#@g-jIXBwWSMIXT%7J-3 z;bua~B1c?5B#|h|pxB3{HL6IIcwqEH5{Z)7?mjGS-$$av_S+u`?Zo-l>tsQS?hDN} zUK^sfSl+s5rD1-I(ESZ1*zW1S#6+melB02Wo`?b?Pqdpaw)7}VN~Z2Inm-9bl^D|# zhLV|5mz1npGQ#sjNG*BE-Zsl-J*D^HQZ{w3wj`Pd^^_F$vEXlQVNHfm4=M^B=O8^D zMKDZvj(e}>88SV_ERY#MPldcuONB-0<<2~)W>h1rQeVuK_&lm7rF@Z>&r}X&1k_hO zB|=+^#AlT#@?^62)10BG8#6{5nK1x3FB7(Z1Wl5r=!GS;eXzUe*0fLbR<-SWP%l{M zNc`9I0AY`eMwP37Y?ep{WMBGH{m2II9tLh$V0ppJpcbEUDU#zyrPBz*2N;Z&{^H(p#5Q45|P37)D#XdwOzN$x-xyj zDbvZ->wgNFf;Y)ZZ=I>z+8u(P1o&Q5RAYEiG5sDdmn)Q#Lg$;Kl?)oyYK#tQiR{VA zdRfo-l@nVp7!&W)xh<+Er8zz%rHa-_RDGT(_b)MqGd;PUfX+QDl4w`myXw|1!+I$r z)$)WN3A(3h<2j$^#6Z>ybHpT8u3Es<)cGVo(L>q9pv8aUK zKpRPLa)?IYsHblPX7bQIPFq(g3~nDkDJgt+gic!iN<6p@K#r1`PzCIybH&~JxD&|b zpuO0k4{JZiBKJ%hjy;gFW94_CEUCxS#%i>Jg2F-Mtr{QelR z*vK(v=b8Rk5ii+`ZD@hxqNUdhIX5>lwKf<-dbMJh$KTv8bV90n7>(2ddun)9rp7zz z%ex^CpKYffkEnW+Jcbx@YJ^xK51~CZ>^DoD$lNb2Y}nBbzBDsh61WbIPS2^+S3y{b z>ZL`fkf%+={h5gAG6uPNR@bmEk~lc6fx(-V8Pti?y^|wUE|JsCP={{->f*Bva6>y% zzIr>{ix8s7XJ&rrH={@MRlJFKb^<0Q2IN+&OMzpNmf z#q&h%jA1{Z#t0h~B>~lxLMLg6?HkZK$g}|^PkmMCmP!o1F>Rn`f3>8Clf4>XQ9Wtg z1@<$YX+^!)V!n};f3=}nC{PeDwZXXjg=}iCXYMvui?}lfm3yXcL*s}#@#{SkBg0`C zCn51UJx!GFZ#Ba)&oB8BcyDiQT$KDyw%7Y_LEhr664Ffe&gEuZ&t(r@&&U`p8F0&XsXJVAavLm%YE3*LS$7Yrb%9TEx0)<`@@4e?*Y%t4IPU&wx#q;S$$JEoaR|vwd9MWvSHM z*pvC&kSfLWoHP?lPTpZUnoDJ>=^BNXaXmFnLz4RKU_3dyy*wEYuP$SHH9ervhuFRe zw33lcFlqZZ3#zVU6z(vGPje4l?ESoM@Xrxl7B(^EAV|Q{kA+#OeJzjN=YhSnM&S|l zDQ@4`HaTuR@3p`$vFlmyZgvOl>2qqw?+j0K&dc!lBkr z(qF`4STHXK#(*KQ1&q?gt79O8FAEo01oP8e&8eEJDpAOdZJe1fQqW8~91kvz=E7vv z5GcdKP+n6=yh#rFqr=jShQAu5-CipVp{3GbqQUTh$3^@oq^Yqknq6qHaYZ`!zx#PA zOCKb@W18&<*OBAoIBpRYqEu#_b&{yAjE9eG~LI&U*o?l zm{%CPNapCn3wKi_J<@{|>>w%nUNrI|1GVah8WcI;FyQ81xIx-rjZ2r3_SXy#2j;th zedDM<-^fs&gU1GcNF}Kmf{f;A5>aGW)eDCgrB}y@lC`X3bU#l+l$xH`NP01^m?Y3w zkKPw72F-Up5)kJYOmwfGrJO?|`R4b&q5p;D^;JB8^gO7mKVK~$Cdch%6btLdkIulxIL%D_}TY-d(}@+Pqr~ePAhg*p zIgZl=%k@8Zv?y8lMB!-YocWP9}d zl>`wTtozEG=oZgQi(I#pcC;xnsfQS|N_K#rsvS4C%MG40Z0?9TCz*PXG0PXCdeYXK z!p|jQH7}_W6S607M{G=fG2Q%>*s_`-dl5T9`xc;%hgt-;8@3?JzQ62(xizf!tNGpa z7DYU%3D+5x1N1^tgik`&r9j9A{nkl~mj^y1&HC~0GJO|Gf{2{}m-axQOwHCs8u265zSxSj&^%i+biYmzts1fWdC6RhA zupmXY6{wyT1CiDIZo2ut`Fa$0tUAdTJJtevDx{(#Dk)lTL~!AfsL+LKw5&)LSuC<+ zSz0M&&!mBSBd3GQDqiPBiy|5{-*?Dhv23uBm_?oQi!21@Ndf~oZ+P zC>Z3()sdtH3#s=m0@o7%?|6&RryhiOvVcc^?b^-Y+k$E(@tX*( z%B@gS65Xu`usuJLA|bz~2fa40OAiv=w*jU4`8K$*d^g=rMQ>ba1wWm7Xj>7vebnoB zwjD0Zk5~DTp=Mi){1LQg4~9ha zD@S-mXeU?R{nG~{BB95&GH&S-w%C6Ig8nxRu=ZNge|`Ta;Jyc96^It3eQ<~-1U?~Y zC+;Xo`{Czog!4t&*nIm7lgVZFtLmy=UVE)1!?E*W zH-LW~%pq%8W*e5^c-?ZqXgoO1I=Ql{DF84m{Tmkfa9P0#|H3xO^gj(6aTptxY|t_= z{DVu@;H*+Sz19>3{!MVDXAP8c@Nt8Wa(A(7Ks&t zIab7fGJ4VO#_0~NVm?M>Dx66YRIxJ`VuA!_$D}x3at+~1*GBjrj!vyEYRUA~BPbkK z_ra9VF*iX*IzW1kPgljEammCyvaXimp>k1`=~pfmiZuxsq#8vST-1S4?oOhPkIP!Q zsN+8yl!`h&C=*)uhJ9NYT_3|0OR~*LE`hJs%guNV_pYx*+tvUw6V5GFxI>JX>a#x# zN0W&R-~|aA)j;#Is#!o*En<>0Slj3nFf~SWIu$o!KxkVH=(>D0tzOXb!)% z*r#U&Oi*m)ZLpaf7L>qAeRBKH0ba!|Ph%{> zZo!!yC-qeJtDq~m1Mb-DPV=a*y94rAaXa$5d2R|=3QDiD$Srh>(Q&)Ry}grz!BymL z$rZ!|H$gMAbT;$&>EYqQ6NP(Qn>XOhj)SYl*&zDkwV>0BO}$yU`zY7f3pvV353ahc zFGyGroOEdu1j3uB^1G1$CmvcQSWbeCYrByFXPVo0L?<(p!tJ>}7F*f`bF=H3b}A3> zJ7MAUWOK0h+A$F#li?DURS2Dr_dG|0$%Fv>qMrCIhf%>tWzt4Ne0*~7;IN#Agvey3 z**CJNTdFe#ZK`7a&JIbjs%Gb+uu4#vA%W521mI(HW%Q+0H4u$Wg=@6te0DhDc!mGsENp6}kQGYC9p!bw!~1W!37r-XZa+-d5v4Nv=?N-Ch48Cy_=`O5qzbS+AY z;ge}$7dC`(JPctyP>9njx2^hm$hyYf3-S3Fg^97{RCSJLCJQs;0F9YlCq*%IdRnN} z&_VYE5?CX`=oFN4bU45W^^1*Kj!#q?tNN1)qL7iHRHb2D_FQb70yU8~GVB&LH73Pg zu0k4{w17=Q<~7GH;B0FVkplrDgO{hr&RvU$y_VH(s=lber_iO= zoV#c1hYb-zvaNCEm6bJQQ766>6?RxHm6q_H?y%~1l>7c0by|1+Cnr~~I*6jwchYEC z!J#!#A0<86+rnkwxRAIrG~722K97j{mXX6_CR|K(W#pKwHHM?bbf_&RmLhIc#FN9J z(^pJIhsP>5)r**{ilXi4t5!(XL~xut0<~c0*2$t8N80u6bx2rNvS}sd3xgGq3r)Wz z;@D-=nOAzu;ifi|cNfwdK z-BcrdfG1WdTz#vNgJiO%8o?9HuEB1AMwmX8Om`{|mPwm_koVMf(lqM69gzr}1rR2F z)S~egCPqjmYrGZ&!YA#Trl;>)jobh;aWjAbVsrMJX5I8GQ!A&zWICK6u~h`;VCHCo zo8@KbJpLR^Q*Q99Gh;;5cSOXHtWnclhNYPM_1N~9VHI!;Yi+OxMCjLdq~Jp{bJNQB zkG0|}N(;#~_72_Q-r1_2ZJ^^N*Uys95}rI6z_Eg`W=xMJlR^D+VanuOS{uuxIq@tY z_VOHg!*SFp;upX_I}n9YMs5lRD=By4Kb(foKe8doqW5Gt4)CATQpAhLcs zom6k9baCL@mQD>%qlz4J~-=Xq3EhRHSH?lSa{xh%WsWtr}P9wyVJ_77H< z({qRevUVmrsNITNP}aGXRH|E+6b2ts(}yGI%)NXFN0v?(v+Gdf=#&~#Rkd2bixJ>mbLF7mU@>ahDl7R@#AG!-hDeEE@(VnvX&~D)UO;FjP;~u z$Mp+1%{ZvO$-zQ*K^jcfuZ>cw_^nX>LiFy7Qo=|~8um$rndgv+5*jy|l+E>9lymwyktSAt^RvPTJstgB8Zl`Kft4B^amABBc+ z28&gKIX?CsShNbqiG2s7M{@*YmS*O|oE{@b@5v;n7M~O+#x$d9y`S4xk)VSc)5y{< zL<1=lu2f`qGxY7`id2i~Bq|qEJFV2RFl{rD)YfP3J4;D;tf59Fbt^{IOuas;E=KF= z^HNi<1jkCj?l$Kwaql;I7;1}$c->wJFRfJozOmDBy_y!Z6Tz{anpmgyrTfl_$xd`c zA`P}964_raL(&X)xF;LNpT5H#2IR6)$)xGZku_0V?*;db;z3U|rjZI2qG@6pbxFfw z>KoGtk4s6Tk~-~x>a@NGM@9X*M2VZlnPKWf(;M=UcWZCB(F}Mmsx=(g8QidRV<)yK>`E4TWufK9 zrW-?B6dhXL3$-mYG+AJf)qDZ@9qaSKxp90^2FWI?rOpv1YXR-OPZe$MEJg%PmLOU$ zccTzQUF3n)l=0PKu#ziB$!w}NvspN{T0kO0dnpo_d3Bn=L9Y;iZM+=7ImnB^czq** z4e1Rw>j(EEYt%J_@pHIQVh9Nu)nXl<099NJSgY5>kbAa@v)X1AYy)RB$1c>nLO49O zaY!Sbs2Gi_;H*t}Qc*D?)@NPMdUSl-YaZaS(YWFvNmvb%-QFG?;07X272DAs9TT7EEgulcVhx2VhV(98B;CvZ!4wM`bH0 zi!cc7SB}X#UBmQT9wu3i2;J`N57iiMNI=bm1KyAMD#tI%5mk_p&?)TOH+ z1vxWkgNQ1dT)F~2`&mrsK{GRKAZuqHhG%1zX2(vtqBrQUQ>AfKLbRBnf4^Fdm(vBF zye5xYO3t&N_sORMaKA9SZxuDDPaE2r@#+JFn1(uSAYfw z$DSt7UhF~_NQCrA=-7yXs#9`Kvek5i%O-519a@$iYh9g!q;T+$qAUEg2Tr1^oXm=;|P{6l0U_YuO&v zraU7RlMQxjS^Bta*QNz&3er)B>K10kY1`1m@Pn>(vf)f#2AGeJy7ak`spza`EtYxvtD`tWe`JK(e=nD_=+OpJCKM zCHZVYM`h+vnXegY5ubF;QasHBh2uFf`@vhZOD3#$YiF@p$EM;-ZmDTm&Su~Toa%Li zTUZwHSUXXIhDqvGiU+b3$^EC011{=wGC`!Ryrxa=cQa{sXqJ%OfNB^WRFZ6XTF5Lc z+YM*UZT)k6@R?Am5Kj{}N}TdfBKtQ?G#>E9{t(CdZ)!}qLn!y?!?AVpjFgfJzWb}ZUxv9g3`4sk>Jd1gggOvoYgJssH76Yq!7;2jA zE_5;)NM>tVPGEaFSNW1rs*}%wGGo(s{-T;!kc9xpo|r}_YHyOml9oy*ahbT8F_td` zaiuV8Gw5zu&2d4n)V8i(%09~W+z8#NvEi1Hv@mN_z;HOqP72uJwyR6TMb!;in_jOg zU}BArsoc`gA#>zf@WQTK%RzVAy1Z+JteUM2>n?1Kz^rf6a$~rHE>GAUNp|^LgO!D2 zrXO=30hyL?)Yo3(4yRB7*zXh4>M8TkXiM_7ii2h`Etz~e`u)3O#GQJC> z9A7gp#?BGHY}T>y8u2_R#lBHmU@~VjT8HQ11?b6*)GbvHp_rlRH{s8Z z>h;mp0&dH!U<3l=XfXqkGcT-VQ^df`-uTVY$?%K)C`TvRb!s198bBs$@S(MYcTe`@OCFz=O z!qMu;-1jlA24Q26%o%B^YYik@vxy_k!@(4YMP(~U=qm_YJjb)q3UX6|)~-JvL9&8P z*YapZ4`I<|30vYPg>)oX=EVG5JAHbz!u^p!=;}LpYQYqi2i5!nb`Ht_*_XwFF-z0P z*#}?3P9{7ReFVpF#iQB21=nCRaZ}Hmhk=R(*_t9Na~rHH|KK**W}N`qwm_M_>jZ$r zHfwtQ$GGE6+2h$a3DMv&Ph%~|Bg1_elBSikB+|Xha5POMtP_{Gp4XMTLt}%*Jknyx zE@{iuNXXN4(VkR`aO$UT7Y(6UlO}#YnT{{_>#N0RdGljeTN)@2GDRqNStXm`8xS`0 z@18i&qnXO~q9kS0NO_d^YS(l|79Y3gR;5+|y6 zIdK``v)!8^F}_nimBFDhUlV_bPe#*Z{Auy4G|zL<$tuOu^h%rrI~jTlY_?_7Wfsqa z=DhFFTVN9B=BIydW0m$T%KGP~I{{Lesl8{_b*b`1Jksya!aogDG5<{PNc(N!pMs}p zhfg2}AaISo?Jz>I#hR`pxPCy;w<`%qjNfR0GlT&_Ukwn785-}xpS7d)lhffXQHk-G ztLe4yvv@wF99>gczk)fadTDad3#Iush^$?+lHEMi_j@F#e2k=FGGl|vlugH>c{q6X z0&^qe#C0*orpfde=V(-U-)u2L&8lV*H!8^F5y1(oiWS_ZX>0T}v}#&&QR-&zLqPrP z#RM0b{R?=$9b%1RQ)XR&{e(~A(XK>}>XH%H>h6Ak-b->ZHi-_IeZ$p8O4SJ_Ij|+(7)37kGGWcXO zAMVYsaclShcX&tMkepY9vt_O?rx%xvAv{c`g4rGK=fSz04=F?f&Avx+@De7P>s19y zBz`1IHW-}>9lT_fpw*Xbs{M-5L7zFGlQt|y1P!4eI-HGgKdEBMVXa^Lo zl`(3p)+0C--jDnxlz>qzDbdotBv&fhOWSK)oDZWWz;muu(lSIa@b?r7!cQ3rX*12e z%J6s<5p1ToSQ#3xt^iH!W@T7lS)wTy8#T2iIJqX;hfAgiCmoLPS!>wJ7Wf;z zqU2ibfZt8UNUN*PwgYn4e>s_AQZ@!~-OrNCXu8=OShlw7zc)`p|0+l2`nnBO%V4hO zJb{nP>bcn$|Cw&llBBLll%z6Fm85eO#;3FHs*PQe2QsES=isFQXA8ULA!a|<8mQv* zu5D20qo%1ix8l%hoY*a~OUoJ8S63srjN6}l*~-f-E|;_LGW*PVnL@mk#vVAci(>X( zP@06|+-?ACSqECrz31$MMPwZ*6x)+<E+}8aL>1>cqYEGAwRZkXhu(@MSn$|HyK< znitjjo+DuolnaO&XH!6yPxFR?jBeE738RhW3KA+NjXk6wA2pSpNms!w0tMN?^-rol zLKfL_=yIWCtDGFDPI2Ig=Xmo1w7_FefoXSo@Tht*SXF-%aXGp4+Rg)T%wpBqRP%8~ z`Usk2*A3({Uki0SJZ6Fr2>Q4u^&Aco3$vz^rPRe`5If0argT9va6n(PHQW>qr_>2E zCbMC>RWp#R9K?{AFW%%+lvDUgy@5?DQo*hK1o2oqn0fNFL#9}@a%{d=(lKZ9a;ano zsH5l{BI~BHNjsKg^DPOIoXn=MNpUJ~Xxhd}2$R**31z)2O6b=-k|uD>qI@ED#84JdQ^5r+=`C>P(t!#^}OS)SX(w~);b zH}I@@d?QRYrcPKczD0z7e4~efziboV2$B`_=v69_anPAjboRET%OtQ zqaMvC)ytr&Y}0Erc&wuz2rN_CKB{DcNgXavyU9LKY@4x+1!T?q2=HJEJseqR+tf^i zV;;XPY<13U^a{Mvx1s8e1-blIkapyiYjYhUTT)|_g|lsK=yoD!B zHl|J}1NJs8Zbay}@boaKbGzr01z42Nk0;6=%WdL`*k|d-{?iRCdff`xF;2S6=fmBzt)jrIG(9vx90oTP5WwO1WHWC!nqP+$$xGB?B^(;F zke!Gn+@M{6!ql|&@cwi)9xY?v{MC(p(;=}A0YPY`?Fn2_;2eY*j~6KlLSr>tQQ(}q znIaFb%)5DA^XJoDbU22Tvd};`2L==t+gablP{lC+a^vC^;S;-K(+fBXe|S=@zaBlS zHjBf_;9M>RCr|j`Ysy!HW^p5eWtAXH#z6bD5rX(i+Fx59bTQ~y@^#)TzYtEXEVI}^p2+{mFa$rc9} zKa3?|@}k3I(j5y;sRonX1(r`EJ|m{kY`1jLj+kO}Snoq?uGWE5?wBob$6{<;(VJ4m z?Im$^Ne}(HeZ|}U!}VNn#{N=}5|XFFBE;=2DDwY^u934A)K#hcsB7r3-vVRcv;`Tl zp*L01toldROn0+1XZ5=%9HT8kP}z&)2bS6%A16GFfu7D6aD|R_brFrzqYlkR7LEgd zL=zQ75gMGB6552$yd##NSc)L;6-ASb?pOA^rYk1_xp=T$ zmX8MZ)7{YF#E_wb3!~a}OU^Oqx;2Qga!;zO`gzr2%VcL!=kqa{(doBY4G)$}NKUGj z%i+~ZUS^vNa_aFKXf}dnIt=9Q_m|^pVeS-MnIA;)B^N_G83~zLJtbelN!u0tXIxL@ zjp@lk?56b2^~S!H)$wR$jjCvvoNVi&bGV9r@B}qf2$N2eAOu+E!yeXpxf!o{d4lr? z2B zsuyQB(OJ|$>?%gQ$@ZXIYrjt#S7>;uJK2{0?Qq%BaSS`594NVpwxxp+Y7ViCB&CUC zTa#>qMG#9$Q^&y*rW+xb`YKqh*|LlsD4V*SR$96+Z5*>n+tAL1iLvK#y~1Aj-exjg ze_7Yh2AA+35ipYpaAxw-H8h^$S>R&U_$ zhFGaB*Z`5)Z~_8!gPFv~=9ZE{bjDwLK0PcQ24faiLJ*numKV(tAj!&92B5%wsOocCm89GtSzm2c+s@bNP`53g`5jqxpGFTfpS9U9vqz=Uh*(swNEhaI6wczxcn~e34pm zCFeuBxn$x9)T7hOWi^`MJPhn_GYKSXoD`8`$K<4>j13VcYY3eo{~>Hisn*p%Va%Fk z^33UJVL_P^&L{RM5Aa+Yymoy$ztD)2J^FT4edxdZ_h;YvtMB0d{_y`suYPC!mp{X( z!j}UYn!_cWGOo#xH3g+BPq3_hP{i>3=)T6eMG+fJCWP~J0zJ(sA8;Ts7+zye<~g@p z9GS5^EjWu16#0W{^t{?lk^9h04^hy!08R}|jg&X*a&(8fbM8zxou^P&c@h0XeHK{gA>Y%s&& zY6yyQzN})+k|Rtl_6!M*nV{?MF@c{(N+tW3tweyvJlriZB21~k;w05%@2{1v0cBRH z9r#f}?EsB=uv=^TXGS~Zi8llFx1-O5bq%`N-_-MJc(|;u9-p5hU2Xmlt#2}zDc$H8 znN`FdNBnqiK6!*)yl7tHK`I$Fi`~Jq5ZLo-7eX<@Zp46WbQD7$DkaNV*W7}!rs%m$ zp$?OhOD|nKa*#x1=upTCGsT;waHeD&Z6PB>)(dM2>O~I*SJV0Crem?*WGlQfL}oM> z(+t}qp&3kp?~V=Qsm}&A<*=SXzBc?vlw5MOmoTOS<^pUZj$EcRG4|s$jTHy_wy2c? zE=>*V->TM{bCu@C{wqu)RQ77*A^!c@U{YVfCK=&k$w(Ali5sD^cVQ)pC>J+9$|;`@ z2eJ|03UBZ8*R2XFi0!vW_;kK*vud&<)TO1vWxL`CPoWJhTa*)9NzCbS&7@psP0scP zi31)ID}~KgLtq<8$&w82?JTl|go$NK)so$m?2W5L1Qu&VPom}cLPSCzv(ri%u0M@9 z?gVF*O$p&N7OwG2mSk5+x0=Obqe1#?KoX=dl%c^f8R=rubq9ELmWUHQt>$($vqJ3G zU^UA$t6%JbsPO_KlI2rK9}WaKPY4?lgeu7;8Px~;`9Zi})fUV#woej0xvr?9BM_Gc z8;Mh7WKvK+BN12!O^LFIXxO*tNudZsaI6nk{S#O9rPcb?Nr%-=B5hWNgyRco5~l8y zpR`#Yr~{oGh=@5Ig=BurvP(AT5&_!3qs@G{6VbalV4lXhp!`{Xp;0Fz4wwLv$s8mSe?{BpNqhHJd+nM2X$tm~yqK zWmw{k#|*PD^@p*inscmG0A~IPv}NszL>qc1ttv zjtc!-1lK}T)FQ)>#aw|N@uUa*AX(6_aA52dRKMYOdv1Ef(x-kC8q?rN&pN}}ZM%zj z(p^4P8w3{EPLxba(Tk1%natDZWLCqjKKPHQ#yvGcuvU^%W)mcy z2cr4zkJckI;28&Z$|l>d+Ga${kqFczAC*<3n)c;rbqI+9n=O(dNM@tb zY90;b=(i9L4YH0-hF|Ol6nzF+28Xr4i4Sz}qt(gg41HlR62|Hi0~xD>MP`GRVWE}- zV&e3CT212c)2HPiG*$*DJ7{NB+ZYH zuiajk`>;qlsm$i+;l54cftx6xnC5cl`NLE~fp+p#D+lWf!=%=i234?DydxQ4lTo`2 z$^kC_6JpqCE9(FMgc#r;t6EO+?nn&CcWEya$UY4&DBqD3dOd+w?!eWNC@1wvp?czR zBr1z}bF#C_V&OAo2oiKll}aFkUSZ)Sw|yqe6Fx3iCc&PXR!N}QfQk}%M?py}1DA_l zU%)2NHDBUE8*+;6aXFJ10+s_(#FTo=a>O-vXOiem3oIfW%y(B?EIeDITZW)aO4XJ? z2Hi*Dr5*byGq5#&qWT8EH&9xaQWb_tSQx#+zF(AcRAY>ie)b`VGc zNm?7b;Jxy7S0iAHG<8>dt#IAdC|DA`wm=mx-Prk3SolmCc2rve8FU|omv-!<%)r)Y z8oR(`PLgFjl-j1TQ%P8urm+j&+iisbs~7^7L$5IO+72rWQLrS9qd;Qjd^LmJOLh{( zw0Cg}vrXBk4Ed4-HD`B{G%g!U+|t^dY%z{#BVo&Q$v1MS(BqiBhjS3`b^%e>VNR5pNw8OIS$|orv;oa)fxtVm+JU-h@sQ4NU#RnSmWvb$u9?I zoAdMPhC6~g_z|<4E!-uNO!UiTgY=U?w{g9=9?mzjnTWE*2qBR%AatVchR$oR_f}}< zeNa!W#Qodr2AB&`v|vw94}boz9j?1g3+7?BlKt*u!3TcTQNr5<=mwhg{yR~DZ7ZFO&X2Z; z&MsW|94rjvu{F`;>*=JzE>&Fi+th7BWlrI8^i(bNqO`iIFIK^3@S>c;$4OP^YEcC{ z+M|Ke>x znG#a(S(f^0F@h}6S#>TGX_I?@+SRj=%;t5Y_8r?2b`0-|&Wlry4)>+_qe-Yb;b<U@(D=zk8WL}iy z`)gO5voJ~~lj}Rm+1`rF>UlkAW^`YRI8l%iwmmhax46bO5AGSRmaD-z?2#0#{fCCw zQEre~-DbrI9NB-va1U2eCSY+1yuo=O!Danocm+4X?$!dZPqW4PYnj#lEo#25zYWX# zZDGBcLl#?*5WGcOh{g|yM07G#akMDKC0an_(&9uZGEcGAIqKxT3nyUQ zcR@%lE-&cX^mT9yC1t&TkhiGJ=h>0?;#t9BY@RbZwy5h{j0^TTkgX7)#TQrb}uoT84NHNp4VRbypc`IvPLdywGI0PWl6nJx>eOp_-jV)KSLm( z+03on$_9$k+}^NJ2sh9cP)d_~&9fvA%epkN*DJHchbORmb+nmb^Cc&X`!5&-$Xwjb z!uBwDrFBBA|KLJrU|E_K3p{?lkyImG26i24?WHLB=EIlbA!Mxv;lDM}eNF?RJ9 z5;e~^vjH6KyV_h;^03|C_MQ@Ml!BZi!@%bDW+39Xw8Gwr6p_CRYea>=6B)cL0mTww zmD`C3-YlyXAzVw>3S`^nKICB6h+H&$GhQ0nnJiIYj%5j&^BZs$wY2%}mBl5@HND(zwffRv%?nVeL3jN~q7XK_z zMSjuT9j-+opjNz~EUy-YfHx}jvaDJZLe`*^%aUqQ2$O?c_fT(Z3OHKB(HVuB*LD_# z8VZ&~i$cw7n*Z&_B3cyk zG-?udB7#=qex(&c0at7iL$w1~T8-nk zw8AdnYK+fPXf=-CiVJ@yGH5l{fZt1uT8DG^_FVU!D!n+4|n{n0>`A=4iI>zfR>NGqaZm;6GPWj|x+JP4M9fk=SivZCJH0zcH$ zEXnD0a1N)l+29=hGaN(usW5E+tTF^;1--m0L#8Zc7Gm~2kcFz%WAxy28V@iLk78@fB1i+SHH9V%b($B!|YSa zh>WbfT_6$QEI|;-#7ogc>@EZd>Nf3Jj_11ikG0Y8gv*Mz@kaZ@3-fw06z^z$aPa7h z(=XLtY=7r&fHigDe8>mY{9=8nvi2YSGA@&P0qkfFGa2)y3PirueubQzx6+*H`URZv(_xs`gmwQi!U+q13dZ3c_ zpZk^IOz({#@E*ad(aUi-W0btq$T@ht57EC#&?`A4iW;0UEZ!#ACkK1?2NUQ(6><>7 zW3zda9fk+GNY%?-5QPdwow5FIC=~KWcli5%sNUCq_p8BV>v?m}_`o>*AU0wD=7CX} z(rbeGp{ip^QZF>Z`K4wGMp3i>d;o#6mfjQuJyVt373IP-c^E{@j&Xlxp#M=NPbve; zO8VYoAHmG}VzvsF3d<3SVzeqMbB^Ws6a}?DL^(p=ZKmT(Ishg*Zl?c`_elfG<>;HW zc|54)ZSrL~{V?Eh#%G?CrS()jSt|K9fJtO|=4k)XOoPnU^afGQQ#Gm6>(b-Jq zCY7Z0ZOfE}ZA-YUr#H0v`pMDhK|F@*-=Y{mX7a|qmMI>Bl%k51ipFuJm?EW~k7gU` zBBiLjNc#11y0*uA;`D(z?@aVK`gXwf zHUKD*v+K!^f9#vm-r9XhTW5q9Uas{0__j@-vI+@ZV9XL$O}ju=&k{o`gd+nrHW zzX7Gk&!Sb9VsSuK6YAs+%km#Fk2NSuJg51%UOk4oxwpJn=`Hr7RAyMB#STcgpOhnz z+Me%9AhXRoVWFtC-<2?bpHW=6=``pI>`I)UXNc3$Q`nVQIXYNmH3Opa5>t?90$ zF*kc9s+iVq+Lb(?XE@KIUbS}0cO_R&l z9J-5%G=k+0VlRqOXquT z`|E@C^+JaJUCU*T;c>y}6v*M);??wG{uSKG1Y538M;Eb3$#X_f3B_krcs7tZfzt_M z*87gD<@v+W;$XgBUfZ)qMw5w5oKH%!01UXgVWmhDaoj|b$bEJri9aTb%K$bR1dkvMX)IF$3sFJxQAoAk zEP~9DLR_$-;Bg&p=H_67Ffb-FkXvm?h-^n#Q}75M?LGP8WH86=n&+bTkj#2$Wi*gX z2OAl_u13$6)%lR_oV*#&3;T8BAOengpv=UB<7NHw8qQ}CWXY7nZZd<(jF37a7@t(< zAz!lCy7>T+*}zYT4fl{ezW1Ah{Zq)~mZjET!3LBmJ(EJu&NfjIV=`}~RYk^RLRfwx z9ifr7C5Ubob#43Gm2jEUD@A%%t`rH8*`V@y8luOj`X$$$T8#>fzSlr*bHEqWh+<68 z$-|ADc9-gd>1sXPTVSg305YBAHIB)xs?+&&J%qK6^QqU*RKeMMb(cm0f>s?U2g;X%-24Y1Nzf6rvR@YwN*1@n6kXSjqx0%i+cIc;^O7W`{ zKA6`tRs+Ty?;;0W$FO=hg8i-Vy0lSp=OP@fc6|w#Df=u0*G}?W6hs-4*Fcl~2M2pk z1~NV9f2C{$&9cda!%YZ0!(*XX1854&I2^K`Y|z9L$l?U3B%Z|W9JZVFCW)SM(3y%7(W%H}n>Dvxi$7i!;Mquw?G=w&avn%G(S!`&y*5qmDf7+u@CixiD`O zC9S?;5f^5K2~%0XZt$Z<=;YxPsS>u}T*T0q)ybnWF3sGgwi-)HleeiIyI5&vn8;EM z9y(cR-q(Tm{=xo}gTtVIk?g(b{R@l5eq`XQF%B|i_oXkq!D4tATDpso-1)y@zx&sz zUXtvo+H+vth)ANz*+T zQN#Z~kB8RDX;Ix7Jxtb2;gTclf?U{89X%@74q7Z$C8J_;f@xe_SLg)c(#_J6n zxb6+(9Twxi?crltiqcQEwOJI#Li2J>`H{h54Y0X5f=RIHXa*z3gO@OGIbFk=udFu7 zSr7cmx08p+R5)~MsPND^I7}ZWdhL9#uwB2oQWc*0zl;2IbV3^;(F( zHL7vk)gkP?sRDs}dX>dusf|~y9@UVIBJGhZY29fJRDgcEgbb51=m^E=Xd8WgF==*X zIEF|nw2XOML&IJ)S2gu^NfOPOjkP!}PX2IzWNhL4@dqWC| z$Ckp$1$=b9zO3h8*1&WL{}DAm*<)6i7>-2*ur*tbQ`bHkXdupczwY2oI^A-1rU4*aK&+XMgU6X=e})P!UYQrUB7ffyRc9bb)_yj1NDwB$-YOwo89EFX?}(AoV5 z%AIE=XmFzY_cpU5uvK#Kq!0fc80%pO)aAFn1j_o`@6{RKz68OPFUI++dNLftXlxCa zkefg7m(8piOoAOU$vE%6YtnYxpxJ_$gW2}dV6~`Z{__q5z=j3|s9siM*q&dFNqMV_ zXlRoCMEi~B{Teds{{Haz+RP`y#2Zev49+lBTQDYv-sTe`4DgufgW$nnUcHFscFIuw zBT#uuG?)cqPm_i78O%m^+*1c@q>wow*GjS`PCZ4FB&_{snn*AcfyX&CB31COq1m@C z3SeuoLLwGRwN&`_PAnCYut*<*rEEea=1Sa$9iqqU9+#KfIbE-;B1~qy)i6R}iZ@3m zw^+fZ6*ythWEi=qBM_Mg>zWe-h`xfOIHC%W+>Mvu0?-b+XcDp{9aivD++|CVq*nzu z`*gix^ATCIcS9;!jgwI%i{xz}8IFgO>G}B}x*8_g&l$rOju{;M(l~^}VkO@3@Z$?v z3J|<$3Fg(sV7`%C_>%c&s`!A!(mU`){Q?>+Y5soTfTV$!k=zG&<+@nblTzi1SS-9N zSA$=wTm`{xTdsfH)N9y5{~R`L1{c=$^Bu(d%YVP}oxl1H{*SIn!Qcp<%VewIqQfn? zh~h0vvD#e4<CrLi^q=FfjU{Y3t~C^fN;XN@+Z^G?jUpi)QK2r_omI*sIkZC>FKf`pA$V8~-{<2Q{57Lw zQE2&B4HV(S1Q7p-C*J(Fx_(hFgJMq(M>@F#Eb+qX(7yFBQ8K-<$_U8EhSOVMWGArG z714gwl=;3xAz)YncR#^~1FLfos*2h|=5VPgTnJHxN>hAG@Z5S{vv%t07O903|} z!5k6pO@+Mor}HU(rD&8KC`S=jg(OPI0+>OL}T37h=b!C zKjJ3GXk8@!pvh1yYo(0S^}1fxehpz15+7U$&MT`zTYzg)%p#&oq zNTL!CkWMfq<6wfx01_MI>NITCEVzC+S>wB?3>xwHwu>}MmVO6~&<08$XB_&JKAvUO zl)i^T8bEx+UxSF|J8{}t5l4VVT+qjAxZ-vs**}Suu|yV%Sm5mRLpY`YlUW|aQ85_( zzpU$L@bl3Bx7tPeCY7LsTXh?I-iU|fgYMtqtR88_ne6_Z0F`)Q{YCP|ewu8;Q>4;g zp|R&SBcqK@mPQuV0QWuG#TDhHnikn4B_ypzSnKRLw~uJ}D<7{bO9pdW`PGnnY}%Q{^Gb}6iTKsEDKs)C<_!qXhM2iKxTM28#$F)}Fu=G^`(QX0kAnu@=r2Ts9%Z zLm_M^?Grpue?G1>r%LvMBBu(`hzP8N-Pm}`NwROSs=Vf+!60C8C2X34(+&C!=^YS3 zLl5f2Y^WfmaH2{kDfc}y}F>lhPQVZN`NGgiy02QFnI{~vj|%x zyBu*ZIl?2RPr@f+z0x1UJWBaYnpI$v1n+?aCPB|+>bW^Jp>MJe>X(s!BX)}4dcNO^ecGfS0r^Z1_ef85Q2T@V*DJhu7dK0&GBKpNUpU->Gu&F5xov& zI$E!nkqYU~v2;fthrr)(Kh_cYO}$0{5&WC*t8LaGaY{z&!mt?KA}ik%mO%*iyVLm}H`Ap&kSS?| z$h!%JVBbJv&tW+`GQ>^&P5=@7cj5f+2szo>1|CNk3<`O)TZ0k?fxZdx1O5-T$wXy$ z(;6a?h~PE*bA*1=$m+om^t;PyR*hCwOASx9$AP_LG$MKhE>4WA_)UGAK?wGBIN9)W ze6@%Q^`^nY$06`nRxlM8A>UMH1|itjq2(;n8u&N_{)YQ;`_@1J5&U1nuLa_%Lm|{R z%n$=AP-N_zh7tip@Nb)6TdHVs3L|jw5Q|7&$7rZ^3~%a*J`RDu0YfD?s%-^zC}@L| z6C_a_7f?j->PD44*-8Y)X;29Gt>=6#T2#16%iw)LG?)%>2>(^ngNw|PgpSP8;5g{b zpI;gO+I9v0f(gkm5r#=?kV>(%$I$yjrsSMXe9)c*BYiL--CNZ)!zIysNrq&z=ZUPQ zp%K-0VS7~lry#>DIbSfn^6zRT2*P}2h~1C%NM1FTY_a+8tMbSzl(Ha&Q9Zb(Q z>#7WkL?f0r??Fq?CpZg>b@*?aDiVx1Zi%12Sk@c4p`~LzE{n(_65HGNV7J&aSm8f< z92>5O7ld#P&k}PnkEaWzfco$RaK!WaJu~ST>(UYCTg~P{5&jz{_5SP8avmPd)X@yK z5@1$8VG+Z-`;!he?dL?nAGp zvU@(soBXD=N5oJNiS3nx$A_^_9o>aCofwCZ-!@knK)uqG=;0S39Pzw!Fn>N>*7Gaa z(GY9WF=O1SNr*>Guj*|@N1wcvg02nV6_&RcJ8mO-w5tIcY4A4Yy29-RtF;n~dXz~B zM?CN1gGcrHu-?p-Ak-u3#el?h%jDsLpB>k*$P#-%kNTn@65E@H8$9z}^XVRa1_{O- z=GuS}+@5T1p71Mw4-N@N9N*P?2ptnBZJtapg!}rD=?}-n(4)onp$Pv?`(q*dOEBVi z=V%W5USUo`?dA4}C=nhpy@pR-#>VQHCu=Q;28qx?4;VZzHw(2V&`Xa1kC@&)TJ7DR zLaPNndmXFOqrS(0#PtenRg5Wmv{;No$nU~0XEmJN$#xSBeGe^SK;nA+0i;807O^5d z>WL4<_>g3(mPHSIABymA+nmq#7~hd!-{!&^B=Nn9hs4I#>e2Q#K!kk@wCHl*9xaH1 zNNl&^8N{7gg&h{H6Whab8YJ<3_wh+=w;qw6Uac@x1Y5Ghf3_$5@vhvjhT*7~XQf zYTcSX_OkL48nN6uS=S45#={Y`Jc9#7;(IQat-}7r32NY zmGhwp|4sWN8PczoeRMFw5*TrS4lB5eJ$9~MIy6v(|C+1;DCX=Ew+G-7%EDJ<1!6g?t~4@LN|eKneG6m#{6EFKb}e^-;dN57R| z2=|Szr}IhuLYV;T;ZXvM7~cJ+TGsdB^enya*rV>pfW-CYaBa4+460~iIwOwJ$7c7P z03!T5n8pL=b5w)9<;6yyW6hWWXB5N4|B{%*`BC(|iLZW5={S#^swE@oybW%{jb~s@ z>%l#M#JO~eg+#I;kHFv4V)W#phWntAUxd6 zW}?rSQ`4Q-xA7TFqWdAy;r7gPyJoQWd^DYn&S0G)ifI3P`|@rlBAMPJnM9w_k2^Q0 z`)&14U=#D3BiJWZ*9#?x0=WyoHL_cWe7>+0TSCskZT1#3Fqh@K@h$e%^t#8 zRhO}L8Ep_F8B+dNj7!{~gztP^RnI0PW!C#ax2<3BUXD>g}+sbVgY z><5ZuBINi&{YO!u1P#gaPl`O4qX;=M&a>Q<<#Aoh7U#UEaP6EV=|3ovx{k5!5!&tE zk(`sFa<(y&lvqRI939g!Uk>iW7V#-0j8u;o`jTZvZ%qJ_!zCz4njeXeS(+1@iWJAp zud-~_kavh9I7psbLY|mEqZcC(Vt$KBd>98BX>GP@4KoR_asUe#TC4H%kjjbgJpM}fzS>0-D%g8`q0#rKg?Ii#K07J2M91zB*n#S719fiqqf# zKeVWfK%no9*D%Yz>X<&tNJMcMmO{fLwl|>Px&pQ;8arkzNw{woQI_-nlVL+Ut2y2L-4QS z3$Y0^96=yk1Oj~%pIyv13UJ4^8uBm!+@KJ+G00pO`=$o*UKi)Vy& z0Tj~_HHF(2@l#pCfm&WH6x?1rEpjr zLcarVETE@_iX6kAw2bTXWHh;iLds~6M0xvSIa*wzgYRFDwe^RL8D@sCgbEs!W z>0)qiH2DJl#O)2DE@e#ko9``6h(sKBv7H!UFoim=;q2-8#5Qa~*^F_Tj}`Gp;3UHL{Lh-Vp5U>c!O>C~i>f|YhYW;HLWn~6 z^7Qmr?@eu62ojmdKlO!%wBuzBVH=tew@)xW{W4>6&WDWb(8fUmedK@LEWF?{v+#+G z2Hr=C6|B;(OfBNKspzgT#h=wCRib8GH01%e6{=okL>)&Zz;}PA0H=`%- z!$iD3E)jp|e*tOYuIMXi?2H6zA17iKz(oCh|C1-M9bsMFpRQo$1br_MAfrR;qeTKJ z@Fa!^Ly+RTsOKx(n}!}I8~bg;Py|jQ{Lq&jlC_%be~kOE?Lmg)Q+$2(>(4%e(bH+frR;33iE7UznH`7%eo#1OD`Ecd><+*lc#fuO#+CJwn>|Ww#FI zdzbBFi^u)qBNO-S>D9>e=#L)m9shDL!d>IS^ciz=1YxwLfB1MUWO27~JF=krC?&y@ zp6hwgxzFf65{jZ6Ly~^CFl(&i{Dq7z9Uxey7>QUufOnqGSDOVMJ5o*HG8`q7KV$QQ zN2S6M-^VcUoJ^LuQoCpW{7TRI%<#|#%4*qxtk6HI)>os|vmMaK$VC6%A65{1e{=Hq zQCo6##(2tL7>!jl;(7ybdWMUM;>w>fo^szB7J)X(Z68IDgM8wUD^6_f}*;-6odBcW#dFcGh0UYRK; zn+XC-XoJ1Y`Vz*fn9ZQ>yZa{HH3}iE7#Tby)b~RKdk78m*iSCQ_Aw)~B1BW=2`EUE zPr{E~noL|S8B6#fmMVxKXca>w`S>$3rNj^fB*y#mYP}o}AX+cSEpxIN714qi<#jxw zdv!k577{a7!SF*%zz78T{(NrdP#--yJ-!diiE&Y8R51dvBq|~izDw^SVN90Md=WrI zX3>b~BYF>saI@=Z4mCMu%!pfr6fp*{M17Y&Fw|}=6EkO=eMCSpvp^-{JM=yhKf&4K zm^Gu9NhlGk2T7E|%%?DoT;us|G3_>H4q%D;dobGzs}Q&s!9FfY$oBa9lF3G4mcKi2D8u#L&jL!eQWRqPJ@2ASwkXA>^3>* z_FIeY;}H6LEBosSoQQ+-$1zJrU3VBhi^LG%n7J)}O#4)5gfE0B}&w zbb-t8D|gJOm}cKbfEc+&0K4+ll#JhgZYMy9Oaj~`t6>q~+JCjww9goq5m01)iAu!Z zr}r)K5|XA`mmV{QDukx6N6;j~8!I@88LscF`eY)zZ!MpXL+Ee2H!eo7J3Ty+Hsg2) zg@B=m<4t-gX82zj(btOYt8i(72>&gIj|~f)^CBul#*{Hhx4xQv8XytFyQ@FW;4+n8 z44U}oJAF>m$24N|Ma76bJ?4?@6 z;p9_Dd&0~_``4H5lZg_5i(7(6ZoGsjz_kD22 zs{K-kj65_C%tnt+aFXF8@3RyBqMv>FbEk9j?+}^T?|SUCzV~tgr$*m67tsR>wGV)a z`}GxE#k5f-WHM&f?5B>XK_TdO;dY-nWH(VzIAXfH9xd^Z zoWb7Ns-D5+IFRu9EH1r_&I18C!Zy@a;^UFFt9@JI29=0EBtdZ=7ITpLwt0jj6plcN z_C0$2;3eD+rY-bj>;xbTK`8)%mvHXkn{vw8UC$b38^`;^2& zPkp>uuci~&O9lac-jd&uv8Re4g{EEjB+L)!%N#)-rAN2~Cj@E3CLthN*xH8a$FcD< znr;FRv<(^&an(72&7;%NOrI&v=q{>!5h&5JFQ2R-K~g!@wy!VyctrLN$#yzYYE4G( zo4yyeWH6%n*lhiEDVKvMZgt{*HJ=7eSB^Eo`)!Na1xm~xh?i*Ralo1ri*!~GkQhI) zN6)}8Ep-B7#=KdBWesdjs%(KK0dBAHX0hp?s=+D#C9Wbl>Jo&drGI&V#P-3uzMA2V zuhYj5AGD=-W}Fv8Fpf~iB+_>`cqbqh$;q?n0t-RReP#3*7{KuHzZi~~ez;j0?J68w zL2fzB<;>TV$QGM6Bb!YCTJ|IbNpnYhZ1yWfW4??%FajkOp}{5I_r({mEhpAIBbPyd z#Iy`ctgmde{$|F)D12w(>3c$a?FC$Vs`Ozq&iyc78dML1aNl`Rot-V=NZe|vpl1YZ z?|aJ;;t|uGmy;#dHt@vOeasmXZVtt8wICAX8}4~rLLo?~{$(ORy8ppV}1s8Ql#+3oQN| zPY@2FNrVsRBPRk*4n;L8qXR%N8aHDSDf=|uMYLMjl@6h8U!N9$M8~f6sK$k`y%}8E zW6qTplzm+*0wvnNA)7p^ee1W-XH0q#p0IH%IEitaK7+*(x{pvOp3%S&M8MqO5gEHv zuo5E(`?^zzNu=+RczlSQpvxFj5`fUJK_en|q_5$=&5Qf>m=1&&e0?1$0wvl{P&|`( zyoB`5my6MQaDe}f+w`ogJd41pwgMBqDO34Y74=&)%5-tv$!sx+)P#uD=;h#K@Aq5v zED(crjR1-6hiGE=6xREH(v z*Zzc~n>adTjL^)NmZiZU-0%IVo>$ZPc|CC5l+$l;vYb|=eV5GWCo!0%>x3o=zRw?h z1MeS!C{Tf@Ij!XYBxCNB(WD4Ewv%D==QkGDzaCMS{4f9Ym!JOmgL{~4Lv?d79F9lO zZ66MWBWDzJMG$TuK^rWY<8Jf<&aJ#$2h17mQIeT~i96DH4kv4@0_Flb6D;xmDAXBe zL~&7OIA$4rPs}*RBBi{-K+=31N`osk)!AtLEU-jIg-D6vLlgfk$q#XDC7do}8l#)m zAQId61e>`c9C|`yI9(c6#3XS>o7jA5y9V9hB*RC_YcPDl^8tnC8LRUd0uVB>|0pT37`@*rSlQ%KRr`{dyb8Uso5j@PIR<}ivA+!-T^&;k*j$^@O>%aTk6kC@(c zH@sr|HJ1nOWh|wH3P~{Hc!z$*?m-E=MR>&YZusPLVYrO`Mw>?o26%9hRU}8LCx-D+p9Ka;XMml*$DrRUw4U+io@Ng4WDj-#SI0Fp> zH_Yg6N0iO+?LKNNYkhvcs^of10ak}ftnc}{k~<0a%ot8~Y08+yc*|#0EZd{CQV>-( z#iCoX1=f7WmjpXu!je7eM1)6rz1>`ZIv9tic4Z8g;vzHGwZhG;7LIu6O3DMXYzNmU z!@Ov4R$Rs;OUMStf}zj>C~>|MJeEmWJ**hv5z}q)q(1utY{U~q)+4fLkUAe^CBTtB zMfn^g@zHgx*3c`+F_7x@@P475MI^S@aLhBltR_LXw_r{iU7=-%za0p8U&!D><0Cya4uNO%JL)aiO_5}mr z8%yjkJk%9rA8m{3FbMTMxRY~qJ+S|U1n8?3OjL>roe_%d*T!E|IF$@RHTHJiwBUB-Gfer{C?aEJizle7eI*5goVm@{^cMI0U!(ZD69mInKA z-gAF;Ag7E%bpkk|W35`cjeWH8por!z(n{$+byPu^&BGH~K8plsN&Y7`5COBg>A~Pn1iJNw=o0>ENBPzZq*j-UPfD9hUmlNKSv1U)#!>-~> ziXm!2z6aqFFJH||yz}9U(G)UzW!ihjtXrD8fhKmSB<^}I~0 z<{uNYJhR&MrrixK!utQ2P9Y{S!mfH27fJSM*V{&ok-Ss!|J#jVL`8D_h~$dyH-`Qm zoM3ttxASP%N0xe)nk^fKx`+@RWcXQSx2M9bCnq{1!Z1G{5c`fbL{ ztt0ta^ⅅ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

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

COMPAS

-

- A computational framework for collaboration and research - in 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 bb22553a17e625edd83d3e890e8b97f5961694eb..169188c8566748ce64934cbe9fcbfbcb187bc5a2 100644 GIT binary patch literal 16200 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 delta 1117 zcmV-j1fu)MeyjdjKZE#_8En#PK3L_v^WpZ zR~)H*_3oy9i>gYg(ySsS>Z)n`YB4r5g95gL@n-km7lS?H3&tEKPcw$^hQZi}qLvM9 zb9!o_d3`JEvJ(s*fHwTTxOCl}wG=T9og z?5aZZx`H=W^~5TssAhlVeT;x}4cPJOM!T5+&Mxm;6>Hnx?pEum7&3-t)sKlV2<_U7 znwAaK=M=}0yJ>Q)Rl)MEDUC{gRJF`ai^N#@6+(v6-2JZ7d08KkMiXY(fS0V&{P>#W zF(rp>7Nag0+H0i{W%$hzzVWI|b(~0STGox`lDBC~a7Es<84`aric9ls*jQyp1;%Vc zV$U-1K1SZclGBr-GPu`|n9zoQ!Mt~Wdc8u>whiT6l7a~@pxo?HT<5us%=Eb~f1JmM zet9PiVakm6NF5ByO{NY=VjXT6PQ2HnqRkmU7E6m%zhxW|KEt2&vy!0~a_ABCo7)|H zOyFPdS=tiZeV~6f1IbAqnH)#Pq>=k!PId-8OD#)S1L0LX3!%=uszV#G1%!6tXU@Je z72M1RNQBDWfA%-(Nt;u=tA7E(Jz)ra_qz(8A=S6f3BmB*d zOtGq9WPalpgk=>5*K4vawE|?1z@10r@}A#Tn!V=1(?NfH%P}B$U9Rw(0cx%V`+X_W zX)d_tER^hm*%KSr|F+b0`NO)M;0w~FSwcArF-U?h-_X(4r7y%F$!*2$Z82A6GGJLG zy)eEp`n0?T41=I5Yjnz4IRrZ(l2Cd_Ckj;V5CtWOdL5H$S>{6!LU0v5F39RE0QOKM zq3FkD@}GYhKopdu91tYMTUN&qhb6c}h3IJh;|SP8k(6VH=un|!3y8xKXSja;?lD2qBThLR11zeF2-@ zq-4*h&g|Ax>9Ngm-?L{X>c+S~_Kk$SP}zw2C-i^V<`{ntR~P90!$W?cEiZhWOQ$3M zVR1v}MBz=YwD9w7mt+6iKYYA8fj%>^@BZO#Pn3SiMPs%#zt+&{)czVaKdaVnfM9pP zEBe>`$g8h@CD-SKKJ=)6RM)n|%$eB|*o!3zdSIfbjjay;vHxq3x*tlbsWMYMHJSG~ z&ZB>8gD8l8vn^1Aq5`Ch; - - + + + + + + + + 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

r15;FT%j({VS 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 delta 745 zcmaJ=SP5)f?$>iWN3y%Uq_d_2Ay!Yq}Lfa35IkfEUavg5AeA(2SEgOqA!J=l? zWLq%}(QJSwEdFme53huk118wz?!wdHUgE4IHE!azB#8w{F>I+QmP)V{%4faeZMWkV z2=6Q%zmkTX2oKl8%jg@t6QuR8Bt`aHRg!f4V!^%R4&k&%(u5{D_niZ%9hbA)k+ANQGpt`lz5!pvC5Hl{Lk(*BhEC+ZCFCc#TF|GtG^< zV#qeOXu5;6YuK>y2CH=0vd#?j7RcX`jT6!sk924!GS)m2tgbL2!))MpB)>!rs^z2J zFt4O@nwdRD5WI-Z2iQLI%|D~ybI^?E`H##a?8Fx)QsiZ;is4cy1Bt0P?1i(?o4O)u z6ypeHRkhnq?5a8|gLQ1x4r*APHp9+D9ow>^xiUPTzJLPoolkqQL?8JdBX2U<;}$y< gr?%-~IUz&VF+*GQ%cyK{-y%8sd(^f!bMglI2T!#CN&o-= 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 bb4c61384f3b3b760543f287d2c3279aeeee83dd..56b5039aef121fa0703899672d37db3c57833a12 100644 GIT binary patch delta 1671 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 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 a3ff97a87839079146ac6f96b488ca6bb1179fa2..811e47e05afe369456f8db398ec856638e20a524 100644 GIT binary patch delta 1198 zcmaJ=O=uHQ5Y8sqCcF7-wWg+NnimiK*aano3~PI#7l1lwfBNvY^Ahr@0)LCzIppBxjxQ5 zV4t4pU1T30i(Jx5>P0y-U&^S-d`6T~i%XIJqmGvwL56YGJ}|os^Mb6o63(%4vgMlK zR7uC9^dJN7!5}q~_2Vj7wR!iZ>j*gd7hbQQ7PV4AD(NQfpLUX8-jBye1R;N0stN)+ zhvY(;M+lL9E`F0ULOCff7v!?6719f`UN(t2{Ls8_4q+B|V9%V1Iivd!CM}mGwGC(t z9-=1)T#OrnOm|r-sbq%lB^US!<|ko%Lih)c;_sC#4&#nTW}_4Y$hDwwOlsFB>1986+vuG<>iR=VofiEo-{tOVr?n2d1)FQ8arx}*) z`KFlbBjtw(M|6A4r-X`-a-QVwOSs8CUh)tn}xM8cNjNK8W{=wt;t z(FqDf<9HUQDtJU$h6uE>LR+y~>$6+B8@!C(!oA_qvP!vHluYFvb-g)B7cHOc1dC)g zG|4zYq`um#&>x2RU0dzibq%}+tg;D*Zg7Q+D$xub{#%7!JkfCieqm*^wss=L`~@sH Bi3R`w delta 758 zcmX?PGF^|gfpsd6_(ax@$qU$|Caw?wQ5!F_GBUDkzRCEQk#Xnbz08V?7Ly+^TL@+( z=A@;jq^Ih`7?TxQ)TLk?JvhSysLmCrZgUvRWoE)A=)g6?888#{(h`$XZYlQj;(62}D27kj{8qnv@~d!=#`wrF9BKKTs?~CWARc)-OZO4=Bso z!;zX>kdauNSv+O(6u2dlsqm;_vclvS+=@KN zR!lx9puo8)LpI|O(3i}U_wfWWGEWxZ^<+_DWMF`qBXTxFI!h5K08|$XRL1~x*uBZ? zxFz}gax#lcqJh@Of`dYk-_24Z;}6`K+*)vXEtq3D;X()}XIUcICJS_RmMO?KgLqIuFE$eLv+3-#o2}Um7(r1` zv9Omi>&1g8B6tu)bCiPiQuL~x)I-HfX%ALGd$8i0Y&J=$xQE?+Z@%}v?|n1#c;w!p z;Pv2LQJM|j>64BdRsE=zpQz^b;c~vHW@qn9o3p;>Z~GA98lTY;LQm*|U*YzTHkSNC zpdHaA{|q1=g%=PC&`JIiy%OaIj>uZY;$?WwVO3@g@9rR)J zFh>G37aQ8nA)gOR_)o2X6S(J=<8nfRUJx_Ke&ZCL$2(6&0kQ^=h|L$L@}{YkHMQC; z!4FfpBP8tRf18PgtxUepX2|a+l zZApS)3k25+WDq_c%O(?(&{+xKgw1|ZbS@O($jnCX;y`s9IGA^_mUm5VW?$U1k2SpH zqU7)@1iBmS;z*VX;%?D(PJrX`4kxjn71Q%#Zy8QbsA%ZA3df}DIS^vf)tHpT<2YNx1LP%SK*uwtqqU>`O+7co6Y_gl zv_nRLSoLYuAs<*6E~#d*71L$0N+;rDhyz2CjrsUG;&`s{y6=mB&sPAGMR=KZq>|TF WR${_cBy3^E#0uO>veZd)JiQa1r4ptyb>)<1zlZ*kc?D?w8Z381)z)` z*OUzQ*eMyCH5;eYPSMCWo!lRxrk#$cJc&Xg~?HTx{U0TJNP^qjerK~ zn%~Zl&e8{&DVq_SA?M8ibln@6gEH9A0z)+|CqJW5?$=y71lbeOy6{>&+_ps+DWtCJGq)y4I25~u3Qj3$J{K>C` zinw~%Qc_D2GjpaSPL2__V`Kpaj?Cum!hadLH-gmjr4|+C7fo&y72bSF^cb^RH&8IE k9Y_@SaONfErh<$r1}2d#kVI#3h9WSvWVLVJCmF*C0O7so0{{R3 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 2ff843882f042e80ab64583e5a7cbb8b2a3820c7..c4e0951e3770ee475f46f0325fd005d829be5000 100644 GIT binary patch delta 1202 zcmaJ=&ubGw6z(RwNjA+UwbmwW(q^|sTT_h|JQO{65v7QQg5aeZlFe*q*KW3CH_#wO zJxCSyQfAeg;6Xh}k^BQv(4IV1JXtMN#d@ech#>xalVsa%h3;XPdGo#ReeZj-i${J8 zb2qrV8;N=Dc6;KiQP$6>`N?u#&nkHtP0T+?{2y(3wiIC)U+p!s$}o?}dQkEWpCGNF z5ne|oK1LTJvI9}N$<~((u&d?SIsYE;^iFuaey)fn%LqBR_q>lh4!zw!l*uSpQ8kkh zPl{^E3X7sh?(ykMyd5hdMJ=h8YLs$Qs%bgIIegQZbp|nq12}lu!MxqE3zJhVqW`)er z4cvnlL3{`xUjV|}VRtTu0`aImAJSe!@v^2f>!=+-hVo$STrGN+% z=%PIepFNFyq(~ZN*2wABafT!Ft)uMtPIC78E1cBEC{@FP77+i=ors-o4o|!YT4keB zva(_C*HHe!#WyFo?w;)=&EG3`FowTwp|{-Cc8QF;1L^{?3S3qSS}(e=dIRo6wtdtTa$M+da}A`0f9^B^1xrCMM-k|*b~!u#GqmU zWSQhI*O$-)CYIno)|P9ZIwqKZ1Sg0d delta 733 zcmexqcu0q}fpx06*hJP2M)Ao7Op+5<@Pio=ljpLqPrUJ$k!ABW#s`dyJ0{;?S7fx9 z{F~iEFe5Q1Ej1-QRUgKfY{Q{01>@+!86H4&u0VC016bOb37en|*9d38Owdb9OiqnY zNlhW?qSwrh=~SRa84EES5Km(Y8u0S&3FUWj>-*EF~H5DE;Oa{78V)7bpE~bpf zlNWGlP4464U}XlXxj$KvUwQH*9xX=Z$$NP`8C51H^6844&5+JgWMp8-kj;n%dYl31 zlzWrq_#_<#fp!7?s}Pcrs*s#tnpdI+c7;a9AEF$WWeGCg4CuHlQ;_kd_v-kxkui=uLoFU+@kONfI z!=9g%RZ>}yIwdO?#N|jyEl!5=C!ZI{=jvfgNi9jt%$brn*-p@!kp&neGMlFf{$*rb vym^Z7V`jBlpth_^AW_`InU|QG3esE*jO#3rL}zh^A~4#sDmTv+k6{D=?V$K} 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 b2d10695860600dbda9c4a56fc0007d41796ac1a..75efa3c20b26f0a74754647ae8efade610991b6e 100644 GIT binary patch delta 2033 zcmb7FO>7%g5cXT!@n0PO#ZF>7>2pG=#xV_+LKP|k0u}nlsi2Bhsj9WTW_R&=jdxob zRaM}CRHy+(&u~JODplpg0htpggt&kNr9wgo5C=p>M1_dNfeQg<-g@n|3svyJyKmmi zH{X0S``#aq{Cv#&lJ~8(`AzTTc=}1bsU1?p=bECnzbclcwau&PyREMGKaCP1biO6O z6Y?(m!krU}%bjiaXWrh5ZM!cMfmMUI6R+j-)#s)4e4ZYpO5F@nN|_j%&IR*%O}tQ% z&hwpWO&84q)f=Xw*Tow5x)ypo5~)a4rLLg$Y)vuPU;b2ae9&f|RZK~1v-ZNv?Mv-_ zvbVK3l#(^VnMklL`_902pye^8rpC0vTYA;$GjygF+ zhI-GgMCQobh@a?cgi)48>M8blEK62^*{TNw!Iy_vAsU3q8xRGPU3ZFt7`7;5mMG|h zqIAt3{|x5IsA-I2e@71xFFO!BLB2*V8-8o^D|}e-Fe&O3EPHBZcqKTy^ch*A)tYG5 zCBxVsgdd*;b&tbc9>J~-_G7|A_?PHO99}i=h;MnhGt0)O$Ztq-!ZD%=sN)Ve14S-b zIy``BPbOMfE}9fv0*gf!`$H9l_#LNy2xjXSvg*eiTj*m8_fuCmp9fX4Wo7wTh=f7O zrMZz4qGCvfo!wscKaC}%QLwcx2>-41gHK#2OZ>FpdLOM)6D5a3i^`%wHN7c;MXb|h zdR}UpN?F1_?5+!Xu@C-#fQR}M=%LsJJ1qU0kMNqE&6@&Y4?*pA^ThdGv9Po3(!0;# z6mNc{ccM%}{*wZ`8K1R}6l7y}f7I$el6;Ii1-jqODy|kh*fnSGN0Z>`f`O2;vYT&w z6!x&giE(xqC2RHs?Aw z6K@dV0}i;+D{0n-;ODHbtZSMC2ejkT$mDXg(bQp145>m(>$HAOYphrFGR@^|W$)=@ z=?TO?0aivyl=oa>x1%Zcp3j$5KfaskVo!^2Qithx;L!5vCDmMSNNx3dT>2}LQSPqU zqZ2Q%4<}aPR=pL^cE%@nh!Ask66qh^d+&g=x&?nmD^M3T2}2CH3su~B)sS;=Evj3c I%*-132j7o<8vp3cbAod}@t#d#J4UZ@7T>|M0C7yd}+#hpMI%x$VNF6<k8VgsfT5VsEu@@-w*4VF3FK(Lv4fFU5`Eclubmo`Dz35YQY z!bL%lgRmG%r45HQdecCnIfZ+aBsC`R8cq&VbR9GT2HTyG4)!4%oC%)gp3(*mwJlkm zBgB&oSBb*MaJ(31Ez=D=k7Z#(mGr8tY54}4E%Ka}JdxSRZtyI$srOe*XrUo=nU-r_ zmaq|IL*H8H?{+Oy=??szsCd4i0xd0uGPan~vKZ=whwUMF7d^=RV0HGaGA#I;RfG|6 z*H3iZMcg`d=%MT6_TZT10nge;Q5yuJ!zc)|A+~G|KdI&Cpcd%d?c*rq=4?fH9Z133 z_(>s8Y=*NouIMw9vZ?gZqpKuqR~lz1B(8Z3M@iPDvT923Bykkk;U^!j+mmaElexN0 nSh4LpM&guy^3V)-RjSA|S|dNJLJfB`oF@OR(qH#>UqXKX+5%hN 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 0000000000000000000000000000000000000000..8b4369ff6987e07a91081a87421b316b7ef01431 GIT binary patch literal 6883 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 C>WR|; delta 744 zcmah`J#5oJ7|qpooj6fiLr7^8M-G&dn7ZXh6=CUsga9FRU=0y+nhO`>v{9T687h?l z2_z#CzGFek#Fho9#ng!bn2^|DC{)m)s>Hw!mAFfqPzeyr-S_jp_uhT?umW#ojAAg|$BM2ERi72YZ-5Y)@M!}vUTxo9_O2zJI+FhRLwhLvl;fkgUSF;QiXHZ^$KD82tE^}@+2MMjC98@#mCL@|=8gL< ONweR#oBsUK8|W9#8u`Bf 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 0000000000000000000000000000000000000000..33e1c7e37bbee23ef72661c7622bf2ccacb5f0b6 GIT binary patch literal 9536 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 J_)Wfwegivf7d`+0 delta 485 zcmcbtxlE08i^2}!LenKF4w4_J8eJ{FFRj~E#l zSvEgme8I@LXYyHQMMjIsADAr!GZJ&sQd81X^_V3RJf_jpZE^ zVH4oSVVaB%aHRcP0A4Kkx+QlFd1x~4Hq{bifrm6CdtVMxL8=H0`(o5e346G zvKY5IvvkG^Fgu4^kP)V2vK5b;bjH6P_WY!*lF9<0+yD1)q@)%nLphU|@DyA&>TcP zC|dTSv;7Y&=rOE!DTq{5f_T!CQV^lk|3K(WHzCm$!8tr;=Kc77-s3%=?#v1Ih0Qm) zr@~{h&t(@%W!rR0Wdqecgd!}iMOY4pR?wXwB2idaay|QoS*d#!yI8B}D8<54?an9w zT>K6E1mGok$7|gDWwOU#k!|GTi_DOYICFwsiihSV`x=$T;*Fs%+<&Fy07s^zS73{L zmCnfFjOhdlgpg$AQ}>j?(_ILAcdh)1xui|m8zQ7MAklE}C$W&mLv?VBfXHw*Y3^VTs#CMnv zye0ec@<@U-OygeQJm#5)tSZ?Wr4x16wh?WrKg>|oG}!Q59r->oV6_FErrl^6t`0S= zhx*T$gc+;WX^=|!t5(ozpvbz! zo|1ulz5gbAN+XS@)}m0Y(G@nxHW(+5(vx(X+EPB=PX7j=9>31)^3&I8y0u7+AIeU} YMy!ZW7sg_aCqCBb?pTZQPPPON0F3b)+W-In delta 502 zcmX@FxkQb%fpw~+@I=-QM(N217^Q`#WU$9h$>8i^2}!LenKF4w4_J8eJ{FFRj~E#l zSvEgme8I@LXYyHQMMjIsADAr!GZJ&sQd81X^_V3RJf_jpZE^ zVH4oSVVaVCe)&u)c1L#GL)ZBuM#Ny0ipf@!er_@f-$YAYZ)dFhNn%vJR&Ukuq zJhRkf2X+CclNr((M>AwHm@{PkGUWV9lQP75#1$SjOvYw>>lBDtC|V{j;8I|mI{6)! zH?wrcipd)}6((nJ3r=3dB{$iO$4xrpUk`hJQdUW20nju5dpJ^3i<6<8$qRT2xO&)9 zQcDsubEYIt7T~pKWC0o=vpI+NFC(Mr<}Cil%xe6M3=CP^K%%&ZGcPeW6{NWs=%p-> SL}zh^BG7kP+?$JqV;BLaXRo3F 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 1e10a9c365bed9ae5d97a772b33ae1ef8b0e06f4..634b33aa3c49680f92b47c3fc85725ad53f1ac2a 100644 GIT binary patch delta 1415 zcmb7EOK1~O6wRA7&1agVN&2ywB%N5b?euFYwJ3fH;;#zgs#}8@xGaSrig-ByqA05J?EY|bKew3U+i^V zcHMlQD7dbL6Nj=n?Vy^P&!x2fxl~#{TezF}GwWDg+d>Fe`b2&a@(|uRlibc>X!ebI zHCa~%*aGK#odNcz-&{_xRDo+M-K#t0`ag&>G0wp=-^VbOr1SE!B#FC4HDmZhQG_Ra zJnoaEoSK=hJqM>FpsRgs*8{f$XXXQCHqp~bS8=`|vwRn0#)s1P@khLNdyRQ^4 z7P}NzUfSFVR{2<MmHFkJ>x?(UjWj z1tXXww-|e*Y!Aa&_R!OCI}{^vR1~lJVMca89#s8c9q-%yU{n=90+t`FhWWwLUYcON z1R7-^c-c5YT)>4+k+(=W?0Hib0)*#?Hi_D&%!yROv3)-K&wO9B9WfP;m3lU8 zn{6Mev49#Ddh857YdEQ7r5@-wUPlmp#sVb0;u zVXRSrpKfT8WAUb|xC_A{WD@pv?(23I1=vnd`i(IYf delta 1268 zcmbtTTWb?R6wWle$!=Sl#M<+F5p;11#~hUIySxeRZZHpUBF>e=gV0GQT$@D-$A7W754fONxzimB`Ms$4~|aBa~y$3EF1?JQh&sU}xp zxe3*IRMD4_t}8Z5o(K3*_q(Vr3Zl3GS4C0Ch-%XmvqC;E;1j)Zfku|q=DZuq38Z*c zZ_4#u&}KM+!=XSC@m5b|rCx_-xvm<-HamOQzHMg^ivlQEA`9N)X{4;0u;B??(w}q3 z@V9+|zK<@8HUWG-e5ZE?NLcF2K`lr2D5hn}Z>55wR+o^m@7YdH=NQG2A0>(?StJ17 z;$UMD$%blple6u5ZK{xP_(|~|lG8NPkaqHyOsTB!W(`w+V!a-87C#B)@azGe^AlZT zRPItpm`OXgg|<#@l>FS1tmFUYt%y1y7lC=U=V;eucoO!V=AlfVF zu$H7U5@?6aC3SFQ_Xd6ynF4T>6JVQCr`%p|QEKn_L@mK-IwABneTx>!qYp&Ri=TRfU;{5j z(wyHBN(zr0!dC|NQ@qjcK98HShz_--L7k 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 74b7d1506c8f6caf28156d54a97faf9b2e00f795..96799faa2d96b7cc087a8e15b720fa58acc47199 100644 GIT binary patch delta 1270 zcmaJ>O=uHA6wW5uW_Ob&ZMA7@QoAW?+ej-#ks?$?ickc8LN|P4 zqK0&Qh%NM?Fc4is2DY{Cl;o*tFPx!?2^zvq5Sh&~qm(O)=*H_I6u#Vt3@ znh;3P?r?JW2kymhpcw%m-vJ^Tk}{jtbv37=Vxt@%v`E*aC{H4s$78dPm+?W;3VT+~ zm}(4eYYhx`=T*lEqYFBU`*G9?y6M@V$di7Tn<;O5>B=L0>}->dhuEdP_N6o(lv}^K zDEyT{SS`N}qCPu2`aC$y@pL&j>A%o)M_`bgXIwQKJkY>uUEu^9-X&;!+8XZNP;v~$ z?LO8p@D~Sfcevr~jT3G?y%!pqbSojUC;79E7VGF5Z`5eW)aOP>lYIZEGr=AlBRM!L zXUJZ7Ikeks9|9>O%yt$e!!GgFX5zZ{tw4N*oq@3t*L&+SW`CPwKU1LCKsEsZCO}e+ zi4{mNw^>>H2itQA=JXcFv5#fxu5fz}euV+0plK-I_}4LFiG(~?EGS6VQC7}WN#3)q zkVU#;@9EQUk?xNi=e*3E>U`uc$Ni~ZZ(sKv_ykz81dDEn`Lu>ug$~~U!Vd1}I02sn LvQ)j*ImP`0zFedR delta 710 zcmaixPiqrV6vgv8GtFcYlT4}cPcmVm(k4$QilW4gxREMCzd#K-X(qiHleA>wVvs@= z1clku`}_p%TnKiSBD!(ewJx*~vyh@2S1vT*o5W5FrMQ{*?%Z?E{axPHg@GZhNzXoJ z)}_a|F_~L`kq(YmAEJbaexGa;@)~uyKq~k{sHkAJ8diPDI=gd0L!3RnQ2$FaD0BH`pN`-9W&nR8^23Z)~t3k$_(2ML58+-Xb$bkUbJmlwj zH|EJ!dj(9V=`dvB0BJ-p9-Hw5j ze&6r+eee0!^S>-H+swyz_+941%+Z$(OFN@T>z1UIYf=SY+WqY4|5qc|zfB<&ZQnu< z5&D9B$`+&ZC&@SL2W_oymI<%CkD}yE^5?8AinYtQC5pnLpy*Cg5CpQsjg*q2*w7V6 zc?Vbhy*0zA&j^O;D26W8{jhCLpraNLvQ%dpG3eGazvg(te<9vM%aM)TymAkDC6m~0VBns zu)qpfJ*goqxu0s0|JW0p2ZedIi|)@-UJrj6@Mi|(-$U8HMRqe|i8nixgirJ2t4v>N ztV2#UksC*z;g_CVB65YBh)t>@*%%mw@mUz3Lt9}3Hv#dWft%F8g|LAf7`Wj_s;|JX zCv0GUOOO+TCG-h}&vx9RF9mL?7s=~S705PMB*p*}1DE~hYl9s6a=(5`_IX(U#$oz7 zl24COQxc<;Bd-p_DHkr%j3}TC*VJ|>^0b2o>t8h2;HD@*&JSttErhNQy7&NMpnoog3e-8~;4PS^Vcj8jkx0Ie z$CK(fNP?G2QL>sYb&v6bZX2gV$CzUO>Nk6*jenwTjBa*g$=wW-3359Ep%I#DL5`6d z8J@7&%(6NGRD0(!Un~lyWmK?j1eW?wnlB>g3qai}0mz;agQTr>H|}l^Dk=)Ck3&IPis-2p&302JV>Vfutk{CI zii%mCDR?M|>{+Rx2akp7!J8KGq#pHBaFXn*!l~k#K){U#&9;F^x~?7edeAX+%IL;BDl7LuX2?-+>T}N5645MP3x= zuFDIe$mc{wGsQe#EW%hUGvw^lHN{jG<%+vo)^)YO>orr+HA(dXmttZlR<5h6Y{GQ3 zUyP`VVO~{CxoU%*zir>LbC|V8cCL}$Z{yI6jeoWR$srU7z-at5D#3cRSSe5wr%0YI z^)lwH4nAk!v%RdI8>ev)XC`rWk_JSquw1QS$xsY`b=IBBE5%tsI;1bjS*H*;wyltm z=f5rk#gLBsV)O7mUVzM=2pgnb9fU6j24O78o=g$m?T`%7r8SFnepmQ%#rE{pxm}$Q z!tN+JQUo?}3}I)0i6*Ja&ZHc-pAvOzGJ(@mWl~n$QJZtLn zr6#NY2JRAliNuyLVm_zu(%(7FxGICs(V?lPQr6nuruI0?C9}Jp{%Ls40oaLuP#&*a zJkTmkB?rSnr$mYbs4)PKxxKIv&%ouLap5=JutIv7myM<7xai@PXI2`T>1PDVvh85AIs_dLL=z}HB#zO-O^z9O+ J@hE!*{RKywX3GEo 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 8181f958b48d5bfd31656ffe78466ea2dc66b28a..271b64ed1f4b20eb577e025328628d83491c5f25 100644 GIT binary patch delta 1574 zcma)6TZj`^7|tY{O(rpJR@W@u>}DrkW7L3UDNCMOX)UF&RS^2%Wp_3?vu6&O3o{cm z50dSJP|GP)&hbfGO53+SEH;mY-aviwVWp4S(yHJMFCZd{;D2UvQ`bviGUxo~pYQ+v z|Ns8;gs}{8YNAwpaUnq8-3XtI&&@|N#WMAbXk&q zVoQ;Hc;{4WIkI!0yJO3dV^Wy?9KW=-P%H|lVo@n8y6GhpMPaAp@sv!5sz}pK-P0|T z{T9zmVVREfOtUrJ^=5Ss8JzL0U+|;6fTMKd3ux@LJSG?5%K;BL274@zvAgoL^pJfJ z8DpO%)0qc2i|^IvaRv__;{gg7*j&2!(H%U2|H8RXql9ECpfg%tCq+TL@NO;gkX?4>X*@uxL%A@F2WO{z&QYX|1 zyPn8}$$AK}BlSy*OcW zUV+uTfU{&qd>!N;0>=MzDeW%%MJUfzEW=ja(gLy!np(uRo+F zsv;UK(^w6(=cu(6k27@Lisj)wWz?b66H^5`;K!h0yTNJPZtU=@%MsoLQMSOd^&qd~ zZN&AvNo;tr|DxkbItbLNR)y1P_Kh^%wj z(LH|LcQ~v%CM;#UQ8uhMS6SKc8W)s{o&^DcA<;c?ZNq zK#=R3xHC|~q=83$p5)-wY0pdQ&#c_zj{aYD+^g~Tg2p(G;E5TWW52G>cgG|J6u#{n z6QZ%^&?H+-4s=IFu&fB;{-}`IV0js=Gi~2hasp=PtcW0njO|YkYeE^&dIP4lPZ>0u z&nvcLRgmkVsxseD%(`JWpnpm}-^u5-K0#6t{BOv~W$!1m>}fQ%j$9NeX7N&xrhi|J z`((aKf2`bsLmIQ@i7x|kTWsT1|C9`++kSJ%sik z6wHg=>A6UH3v!$O0Ewa}g|ObzN*|*Bg%Ub(H<(%-f@~32XEL8k$j2jX3liD;}w!C9C#uU_0hc=r25-~>`vpIMK1Vt z^7V+~qr3crqP4xIz4R?jT$dp5EB_wEe6=-$B);8x%|C!zT53q0>om@iV1W2Zh;IQV z+kCV=wlHDjOlxA+DC*XvP~Zk7IIEikmx`bYF3w^LEG0uPkW-4XPjI0)m)8w^hfG_= zx#oC>1}7cpIFg+=3}Q`*?1rXkfCl;LU~oa$r*am_H#qH#)=*44j9RsnH#l}#^a|Be z^pB@;TN7e6BWg#CSY3ho*w|Qud?PRjb`=bj@g^&yI7p}l7?IU9DjA?g`Jmdjz(xeg zIJ-~*W*6b*aUE>pTI>E$t?L5Z7T5<0&|gY z9+%?uJ^!d+{z+B&rjp>#kBng#QtV(c%dC4P;;=X37@8sG^uIF?cN7#mFheXoXE-{) z+i@QG0l&xH=-5NPU&vkW+L2DYgFLnd57Q18^gI#SCj29qa6B?;5`GtK&HWs^h5iDE CkdJTx 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 0000000000000000000000000000000000000000..ce3d2142dd21cf0e6f12538280aa52ded52708c1 GIT binary patch literal 7160 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 Ps%cZQOY?%h0eAifq?Lep literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..915e82c0607a522d80a733e3834eb4021786d1fc GIT binary patch literal 6937 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 KUeNE$&VK>^VKRaM literal 0 HcmV?d00001 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 802ba945057049312f911592069740200149eae6..9137dbb9df6bd130e0b22c82358de02d9d534329 100644 GIT binary patch delta 2241 zcma)7U1%It6wXXGyE{9(*(R~uXtK#{L&;`MHcgF?L@BlY6cOvANDS#@_a=8PJG1M~ zM6-fyEhq-ALcQaIRtgFQAC)}#qNoo=^g*O(p`ZjK#rh(GJ_!ZSnc1J&Bn?^EnK@_9 z{mwbx`I)=Z-<|2X*z?|L?Q+js{ew@HtL77izE;)E{Hk6cFJ8VnxL4ct*|%{?lDB@6 zb|mSV_`EwK&&-Nj-E)dbY&wk>@tiW=iw}A4@+>@U6+#z72bhm`ntT42ZQZPth)YMF zk;O;KFX?l+oNc^Haye~5Gc0FPD_0z&Z0V(#rfK3zY(`gjvPf19%Rv2d$*>()xD&6t zuen*;L&G$( zI)$DdJ?VSG^9Tpt0Hd8%0Hcxg%_a$a0#cYzT#t&BF9|EIN>2jtWH0?W5Z+nwb?=yZ zrtM2?$4C2^+VI*)B8pa_Fet^R@#m!;5luWTIfyn*|Ar)AYMTQsOaieL%qc9%IWz}U}(#RDpyZ=V-mCekN@hqJ6dXsWbK#ea#k^fvN18>q(sgt`d_ zAjHQ4=l1ZI21mz3G{x~@L~WP&YA1mSz`GJ85W)8lh+f}Bt0)o(!X*%LA><5fvr3E( z(K~dQc7vpehmw7D+QlO_A$rL!2g=N67EI#Mg$pl}szWv!qjOzYcnCA;e_eJyjS>cfq%yLyP z1&*-W$Sh8NiYGhh$xgWK^8E?rOP|d0kmr%hm72>VmD&{2>JoYa&X2=?V#!^n53)b} zYW)t?8dZ51f-IH`E}s|gO7nG>E1tsC4a;T!f+>%H!l_k=%R?R@S3yBGDkY;}IPRwR z{uRAy!J|^CEtuuvI&Qw}JPMMx99*sj7PRle(W`63ae1O6t-2TCZy2G!Y6hXNegzSi z5|<~nK-Q?n_M++YbmTnr{thTw<2kTT_xNpdCt$|<Ixz z+k^CG_ywfV4qe*(kUR=9pSD>5wzmTVfG_x!DMA(dOf^L`Yh71ZiluWr zaM+K{Cde-$l3jXhhQfsK&iMjfP4PILP=UeQiJP#1%R=eGUs|2_4MkF?Vv1}6?k95z z)iRvU3VopZ(W}e}`2va5J=rW!b$}WBFH_M?itxZkl#UUXeB+asop7gytaE}4OFkz@ zIkV=yW4;*7<2PZ7BYPxE{@`~mhwoAsaW5v~=X9<3n)T7Hu@&)5US4Ev>2h?GF8H(=WVq ONRj?Kt@rlxEAS7XrtMz< 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 d1c7673e3a65b5a8bf6e12ebca6cc564c872b3a7..027f5c6aeaa95f5011da4ec83067ddafe01c4eed 100644 GIT binary patch delta 1527 zcmaJ>PmB{~6z|t|w$tf$+pg>i+udbGSA+tM8`o$gn~;baH6fB1BoSz)?brQgn9ekv zY23!Zf{6*3xsW&BjEV8!NeTACL8D8QEC&(;HzQmY2yy@p#ETc-H-C0^*Nr{2{oZ@O z-}}Aa_vh=mI|qcb!WXxuE(+&IC*HEU?L(Tn&{f;jmfE1lFMc)g-)Q3U^&%n3!5`#4 zA>YDsN=eSn!D;crH%2-|G-ziIA-ZQcHQHRDHPvytTD|8`+mJh!(O1w zgvZ8RA2PNj1d8Ij>wBChNf^rhxujGoty8pLsmQO(n(0U~em-DS=Bi~(RHcAC>lT`{ zrJ0(eS!T`9Y{vs{&pGe3x0?xU$QO`xw{5DaX%20#D|DwewVU0d*KU?|(+=%!0E!V1 zUX|v_-yjcH#-Fk>d(x}3aW?ds7f8VXTrO7Le8i^MRW|*eh$RoPBLSvX_B6c33^aB_IZOZg3BM0}f~G4pfCyubKEtWn>I zO+YD4!oiWWI2Cq;*}R;85LdB#euJfx+MjlzJ!H zA6IS}mKtxaeTsf;QroUd(I=36Hv)tk`d74eCj$aL=GNf-cn%(~l?#4(NVxxi4r3HP)ZdCEICqC&J) zT*W|bT|l^vfx~bn|3WUXRl<|-8=Nf7z_tAQQ7w2#jB1lPne5za5T^93UTp zH*!=AZ_offAEA&el+!D`!xd=;UMtL!o17!7|L$|>EAVAuhOEGH0myyK?13{yY1acx z_SjziZdk;ZcBYj^rht05~&w5$JDQwRsdsV1?n4QHh?JQgxz`UID;(e&r}=EA3?x0RPM z>1M3D?({p<)93h7Y*M=st>Iy*1I^KSdj&}6cC)71 YrW|79JE!x+1)C}OKWLBWi0rke|Zqs~^}pe*MW)T%6t33CeS#IsBlb4pefiJZpgu5tK=t9z0I>?;eic4dZ)cZmsO$>^xi8E$yvG2SxSj>eH= z7i7y+7-Bzm6#Pl?^CJH3)rD_k-9O561pkPNAmYBB6mWQ|X9D7QVsEPNEemTB*laAy zrde##MyWRNi92*Sn9CQHGEHhp>kI0of~xDC8%wawoyi@t1(b2h9fD(~W|YEdW2R<= zaV$E;VpG za9UcYM#E8@(aP15YG`lFQkYfs>~@V$10`2u_pDl0=JSSvQg9sX^k9)@Ew}|>YgYT) k+@bfx)85gdH=G6KqH3~r`hl9+xTQ0RJ|p#;HzMcZ7j$w3SpWb4 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 004a62b5e6d3c3c5f67710ef8230b1bdc1c669dc..bca92e6439b7e674209a35770571a17269a31a86 100644 GIT binary patch delta 2170 zcma);OKcle6o!4rcKk|W;%EG#Go*=ACv`~FmMRTzaA=|gS|K*HGJcF15Ah?O392P3 zk_8flp;2_EVuM5^q%2qf^go!1^s?>XOGJ(6p*YEM-QFSiP{Y^6}*FXUh4TQYy?LcUOu`IaiU zE~K89cH95a6coQ~6;8ZQZR^aAUS^eDZ_ zYL_*<>+CufhVESsyN(25;4RoJwZB zI8is$vuvX&R~z-hhUPmLoOGa{g;Zb)9vkua{AIpUtyif8_I>gB(BU}0QI+I;Rpx7m zrVQC`eMZQpHzhD$9;!;AS{ViZsLIOVrtQ z>2WX-nh$>+nqe)RoQa+-^L1H^$2KagEbuJtj%>FdB8q7qwqxUDi^dN*?WGgcMk{Zap{^{v5XI60N|b^(e{prJ?Fr7QKhXW%RU40+cK5K!I^5GcTm z6`&7M>}p!EV9wBk_7RO5(VM-RBk@y903e zD2`}haIeDaW6!0gtvsBXv`1q#kS0HwY1|$_<2I#n!b-!B<=q-UV+331aJj%A0gn7_ z=0ZLFTvo8q6_3#?+6dkY`WO!bWOO!YZIe+JA_9w&NDbl%u8n&IU+FMhOI#fMB9VTf*h z;*#l+vQBOI&U4A0r|)eTy~CW-%86SUN3rlVtPIQPHc$?OtvZB=LT{Gga>UCN2Qdnv zF;5x!^p!-Tz@|G%kp!&^iY8gncfoW4n5HY>&K9 z*x2HqZnYXMZQuMZnm$8GXrFsSxM&IiH=h+qMAvA zHQYYUJ8^>J*k-Fy;w6bMv&A-B->Nm+l!51dL7^VYGoDQP9dWp`)Zyx+|4 zH?#BI=Eob{F85(#rpw)gpf58jdM=xy&v2cm9o+=*`?7a_@)P3f{Yw5K_TL8;P8jm{4~pyZm34~&z;k24szj&Z$R*OL2xA;7LH31Z;47r!s?g+lcT-6<6K zTtQOxLY^-c`IjnG)upOLTYRI+>muc=LYbcQv*<^Ip&QJk*nv90IKelXy3|kwrH=;P ziDPg-xabLNw-trz@LnK($)`w~z9s3jZi1P=ZoX^gM9!G|57n4VVcAVaMh4gA=h1*K zk335@;Qo=~D{E+q33(M??QJn?IQX1-!|dnkyTzpF6jPgGdJ_YDhL_fxqM%8dy(Z4m z1#XST$QukccJUF|RG$B37kF3;9VM&qbGQieu@eS4L8E$wA zU{BLQn^aeatX#;dgNSxk$?B7v|MG(W-@P*ElP{fhGUj|FHinHOs;!u>?7i(Bt^#vE zUWE|rsBKCiIFTja+Iu^MJ-6T6?nDXZC;g;1RDwe#ZrhY_Cgc@ZjAmvHcYn-HgA~lR zI43{Nib=_n?3FIDxmX(9%SWFfPAErTCx5f_@I~Aceqe=*moXN{R$hd+Co-N_v10r) zVJvn!Zi$(DY-1xpriz*U#)cdRg+MV&Y+4x*Je&$RLJs&Wasnrob0_2=MzhX(7g!Am z`2iBjp?`|it45E35YLiR4Bx7BnSrMcRvLQhf}phNdaKoFu~hlc{3X7~`L(x?lP zY8sB_j%ftYK|4)FDoeV#XL!)mcbe2RoU~Imt$1B%)u?XD7ZJsZ*P679Yp!hGGB$+>J)7z9tE^mQc6ac@}TaV=X0oTWf{0et+A9vJ?CCiBXtN z=Hac7-%+y5eFo#~axZ@n&*2zNq3SbmHx+|F!fE(4eVmi8u*e_Ne3pF}p2oIpag%Q` z(_5ihd0@k2M)w=;3e^QkF$LJmtP&R{N%rn#9+JQh?7}Ez-GMvVNY8Qf8|Uoj=#)Rf ehi3Rxp-vf=h8tOC2YZ^B#pR6Wz2A?&N&W#-6Bcp+ 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 1a1aeb56b3345d060c6eb7929327e7513fc7b1ee..36a80c9b496bd315f74b6d03b93e0f31a65ae2c4 100644 GIT binary patch delta 2133 zcma)-U2NM_6vuP(*`yz7nlx@c%Iuac#jGt%>o&GgQP|p!tpy4~LTq$t>dY}soZ2p| z4~Xpn2_$Q!I+=LfCbUWLFbU-a2_&>PB#`!m(2ynp54<2$fyBgzkT}PQ6DMS7ez1M7 z&&U7#eD1y9%>KRTyWqQA&TRYMT^yNJwc@ct_MDb2PUN#W>Gbj&l4eNfPcLUnIY~EE zts)1`ROF!PeMvfRRG?!1$H!IoaeeYF$C$gi!+dUb6Mpvy?#K57=RFiGO1eBrH#qCf z^wGNW3-|G~}Snm57R@KN{A(_e~W{&i_n6#2t^p=5-3yiTl2C8LlpNE)x^ zc|(?Xs%jz>62&%CI1?XETOUexguT34HVSGfyGF6#N@UbaF=2W@jD>6t;Z-SLC>6*K z)_aq0$C~5iwSsOe7YwP0oF2JYd8;xe`^-$6%=<~S5{waPL(*CzblDLaCVt(})Y3Uj z1NVAGb^?UH@$?*Xx#X1c3_dni<6QOex0V(>LOAFk6s;p6rn;hKh8(|w16?PIn zI2jK5NRS5M*l1U|o(Ce_X!r;XnyTSKm<#W1{hjbyJiTY4_KU`pr_rH7KTx-XtW;66*Vn5s(+69ksUb`Xg z5Qu1NLy*ElG~acAa;B7hgbuF8o?t%sF1Ez*V|;vouYH_yH*~=*E*dmntnVDS9n4RL z@UrwN2hrT_A=yt`pmNkPWj;r4_&ev)4WG8gYqZ4+lt0;ul|!8iC}m@%-WqclYaYHI z^m^sENrNR^a!wvG^jNle1nUcA!3~Sakv1R{`&rx4hB9kUAeexA%JPG+Vtp)vj3yz+ z32fWR=~64Fh&laoc5OpCu4$@fZM5)yV$Tt(-MStO+F?fw@{if>&Xo(V4DDkdcVPA~ z)^)?d47L(uUivd&CZ^bDEws{T`>9>BP3uM{S`_s|+tQ|W#h$QeU24$kNuc!*by8aP z!1Kw2dEEU1Iki~CQ^&b)rUZd6Ybu_gy0pr#Z1SazVtI2_&GCX@FM$8GsVxi4wu2Sx zFcVF|jz5r6exd)8QrvY7&3!S0a(K9&-0d^n<;@D*PV$1^<8qk+bwx2Y%Th%N(6DP& z(sTA0`crShcIp@&s82=H)!$P8F!xbU_1EDaJ()OKD^a}ZX0VhkO5~&Ck*3gx_jFmn N(+$5@{}Nth{{pb6UkU&K delta 1730 zcmbtUO>7%Q6wa)@{%IU1wee5_H1EQ7o65en`&LG-tmpDrePDx6N$@yO)<=M#l%elWbR$^4k^gIb@V?}LzvR42aSyl z!_^n40Xq|C&sKp5d@*WxF8f?oc*(ImTa;8ij{FVY#8Cv#{Kz7H4Sd?@H~(ag^yK#3gu7UAJ;C>nnH zK=m@21DL$ca!`H+bs09Nrs3165W2>)zqm*0>cOPgwv&{4nQjdAu^d#k8CZ0W$_OlP zQ=u)*1RP3T9g%WVQoVhoQu5d}K_xK{Uq|!kZ&m@E4S1(^?Etw#z3Ggq&%kCp>nqcu*)@dicqvkN zWDCO}MT){+3n#h#I?!=14aV~4_!>9K!4KhMbS`;UQVqbZNFL5dz1%K>Po{I@NmfKs zjnf6>#4=}E43-Xv1=-^gOX*Je+I<7lz zk?gVG#W5?W(L1k8+PY!t?N)=jz-P$?bdja>U0~^w>T9&X>@~|zA!_ZWq_l{|b+(8# zPB(C`qbXIzBsVQDHO;LKCYB5Ls>Jp;CB1=7qF$m%w!hKARr-=u$qmcj**e{9*SZ=e z@*kFuT2)Ol42rwb)|*R;)X=4--NsjGbdeUaN>}^k;B6@#SAv~5#|}1AC%9Fo%IAhE zqm%IQblyJ_nMn@2=@|SJ&cIIQ2(MnDVDKO#%&;HJ+ul%ZTIxs4^wqFY9old<`_>`L zQ^TgDXhecL*(KzL#pzT(F8qbKAGv-kch5EZISo{A(~n{KTT&CVaDzUvDm%Do$TRe{ LrRRO&sW;I-R}~e? 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 20fb8c6997a4ebccacfe5e3d78d86e0943b111a9..858bbdfe091bea8b10bf8054e79d3da360160cdb 100644 GIT binary patch delta 2148 zcma)-Pi)(C6vt!dU*j}QxBP39bag0OvaCzjva)D@5Okw0tQ}&YA+3YVNgW*1{J~Dp zazJ7SB#M7*xij9y9oE{`v4^93R(u&eMFo(X7;K!iEucJv7B)^kiV(A6ys9m0E>f!df6c8}8eM zjf&bVRGMNH*&My8zpiH_x0W6#1KtnBf}DXeLoA!3Qibh69KH?YnWtcK_;_-OaX6%e zd>${Yq7;=pZ|WU2d4SiIZVhAx*WPVgudrGzCMjBZ3wDbDOW_rT7?q{bUt5H zGw%D6Map^jI%#!uy2_Xu<@)WR9J~}sGBNBR>5`&a40c8yVpiHcXi0vN1_@TFR(rq_~B_|f<`ct2X@EJ2_gwX6tp7>0w11& z$0IJ^qm&~d&oS^#^eAkG=NLD95x&gkN%WEQJZqMK3kAECXEDH>xaWHN!p+F?42OpS zOFm`skvvqaeNdmFF#PaK^JYv&Ua$mpmRPsTf#vqB(Qe$1IEFo}Vy#$UXRek|e!0hq zjLU4X&nb-V1uG|tB~BqbCz5@d{D!)m7SYJMhzfbbOx(?x%klt%n}O9>irqBe<=)vJ z-eXsUjh6VNqSO^*liZ1=&kzse_-7?!O7-@UeSJD@Va5koiwc{g3HZt5 zO~}8YiBH*X9sLbAZIpB?e%P(CjkXS-#QBuR>2PS?dQon+8=@|I$sAf2)l$!fKjSTE zCl(kM-W^SD{gC*ZVb40ZzMuHnnU12j9Kw^T`D#K{q!<%;e3JE=A1 EU#0Y2n*aa+ delta 1845 zcmb7EO>7%g5YDr`j(^g4+az`z|E&{B9j8u0RFS9xm7pe6N(c&ys?w@h8~fS2+w~8- z>&ihz2?tOs?SU{0H`)Uy4hSJ1I3Ts*$N?e58KhL=fS^ZCQ490dKiyOzh|9j6H#6VN z_q};04ZioA1c4C*i4X6A9{OIBQe$%r-n}!9z`^UfD4-(>OJtBV-@*Ug{q{#y8 z2Nq6BqFSQGGM(xEz`EzmSl5{D{anJhC5&r*=$ZHaH^RAIV(+JmFkKQ0G=Gz725siW zYJuuTO|zur3W0Zme}sR?3fXMw2HnbLg-lki8rex9mxJ0sbcA`HbqH|(WFi@0u4*^q ztWc{Pa;++=cCG+-hsRxl0DHsPjesTfU$-Q`8Qg5BDmC(|tfNHM%lM=Nzn)Mee-0B38`W)U{sD3Al>Dk~Je@=T$`r0{SDP{Ppx zN9-c}$>-o+Xwd7%u3jdv7ajkY=YZ$K!?Q;VJsv$w@Lg7j$)zm8H9iU-@u$c(YvF2# z>#d`?vTY|<f_7G3LVV$maglHWt1l#_1Awuk^9m5RK;WYW)DL@bQ&5i(fhhK+R zMgpYOqs}4que#LTF=YXM38hY(-uC!gCdpb2X-avKb&^m<*pggf6ESBe!A_zd7Q=JI z4X=&Oz~|u!^2F{yV39H9z|NDdV-ila@&fSjly43D#!Ji2BMuiLQ*-vXX8y-955aCc zCv=WE9s`NP8j}Yd1ZL3v7p|$2p}^7^dTs15Yp7ic|ATUCmwdF8DPx z?(2%qP5^#OMBso=!h_^#PPu`=@Ox57vmdj+wyD?@mCu;zD^k7CwIQ2o1Wa#{8ltRP zBHT;8N<5Grjklhp9uwEkuGZu9L-(04F;V#fKf39!iWSPzb$r+r=D4FvX?)|+-|{|x Gjr;>33`Y9^ 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 f372eeb0a2aece920b4b1da125071eb5cfe773be..0b33c7b2c7f98b57fa502113d9dee0efa3db19b9 100644 GIT binary patch delta 2159 zcmb7_O>7%Q6vsX5Z##+A#I@s3)=q$jQ6UC{t`m}C?np?6@w!PWusiQf#8<;)*Bw0k1!!$(K9BBMR&)C^^ z^46j1nR3>&Xs{5B!{tNPd4sqmE>2m-L0|f;aR=d!C*pMVP${S2FHgXnR8HeKBfM*% z0z8(H3UDeZBNaEQyU|OW9Zsy1_>{->^+}MaPC~f|R}VkHBB&}(OQ(nE$Y2}38bF{l zUk*dK!88aumo3 z!BZgu*LADp6g8Ze^Jt38r^Ml1XcA=%j?+9%>A4pmV7`zu)WMAl@!f5xo0o1K~K~b=e4WK?8fV!@M8VR7;Bo$j& zHbc!3hVx?f^zR|oy^wRebyTJTY5g$Z!i74BNXe=}j(+%-pkG$(v$txVueZ96O3vP3>A V{sa~Ja7~qC_&>z&-I4e?_7C{6V-f%W delta 1807 zcmbtUOK%%h6wV!c{HWvDrTCHhHMX1jk(e|E(NKy?p@}Lvqybe`c~t4dzV^&?{D@~P z*{CSV0;v^uQ=LIVm4F3e!2(s4B|u_{SRj`C0oo0Mu34ap$GtPQ8Pfz7Z063n=k=ZM zoO|B8_|q!C%fJ6t_BMYLW#A+3SkQgdki5is3HNjZ48kt6_kIo_r})emRsz z%i#AdAC^S5hO2eFIQoHgU+(BgcxwD}f!eK5J9yC>9em+@+V#JqIHhD6!N6uwk!gDZ*q$lDkMS9ogQ9o=!QN~J{tWTOn6hj_QqIt0 zgr1z(pW{SwpGx0m2pDn73Vafr=XOkBFAWR6VMc$fV0LXUSb5!^-d5)Ai89C0vcodP zU;;`{_|T1UeNI|mZ(QHf{`J-VbyDVrlj15&^pxQL^vbzMOl%*?abHffey~3i?D}9P z0<7V-S%#ONOmp9val^ybkK=BboX|;U_?OUNObJgZxjUu=0^!UYaanJ`AgE|`rFrF9 z1|y+_*pV!=AvtMzTnj&k9B?Q68uy3Q3W1r#lt-q6bd_4uiB^_iCz|rSLeZKpRSd@A z>*!)Ae^6u55!eougkcQ&}e7t$1&QR$}Wi0Y=McUsLlHG!{UC(&h=)pLoZiz%;CoT(k+r6H=V zhA1};!nOMb@zD$1YpZfa){R@lO+~%m#s+cVUd1r&b+J>&x}jX5kxYB7jVp3Zt{69o zx7|P8XjQu^Hl$yPhe{Py)HE7*wbf~ym&JNVY?%GMNWB*+kTN~Z1;m^D+ExV9*auMx z!$!PdBfe}W{=$fObPAG*tar>i>jJow5!jtc!u{kNuUw~r!Iu)!?1#8pTZ&nt@*xvF zRjgG;GOVTghls0+bx~Fg5xz~WA}8Dr#0Podcf|d`4RV 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 2428d050075103bb9b46df9354bad0929381df83..93ad535533761d128d4d2434b7a833025d79b5ab 100644 GIT binary patch delta 1225 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 BoLB$= delta 854 zcmah{O=uHA6wYk2>E_qnwnj;lbT*+RS#6q2pa%sHkwi3w9;5{6Vbk4ovZUF_MyR4t z5f8$8kT+hW;>m+IHJ~6K3LZr8tS2u8y;qzKL?W(lR@W#+wk@B7~OKIZfC(-ObM zKYSE_!M{ae-?awu*nF#_>6`H5q|*P1o*?uRo(VEqgpb0aMAUXu*VgrgQ2>!ZHaI5$<|y-W!QJCO{uqebL}$I%K`8ItS=re=+@!;&OlnK?|YfmrHFxUazeG0ZCi zcO-Ego=bdW%$y_Ye$kj6r$`Sd1ZC)J3?7IX_#y_mRdVgE*kv(J7;nL)p;|_G(QlrZrU{A_%caA_DOqNl7;0@0hE<4@`o*`Ws3e%@x zI~oFQdI1hXNm#~J`4ubL6K2EcUGM7DcS#vBRI5hEup_5t)5CR`1`;UO|5V*hULU 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 c59913d0e8fac740cafccfc7a56ce1fd342c4c54..8519a0c709d296c6eab069663f696f98b0569aba 100644 GIT binary patch literal 13650 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 Ax&QzG delta 1805 zcmbuAU1%It6vuOCcD6fRjhoGWn9gi+_d~LoWD?R=Xh3WQg`%+5N}$>%>11~{Gq+eDXm-WWg7G@}VNdhYCIjK7=6kK~VDKgP^^4_M@ARmOx+j zew=&G`QP82bM|Mlb5__8ZkKbngd0eL4K8)-%NP8K{PnLPgaWN?#B=C7c*v*GDG&pv zh78Rr>!lTaraOT*1LMcKi|O9vEIs!IJ=apIgDS|%UaWNuxaB$t*TES zWxiMRHQSGBnYMG$tU3$(ytjta1w(Yh%T3GDoh5eA18?HG_o0_J1S4o1S)dcq6`5tp zbo5G}*_}RExs>#nAIYMDfo>>ri7w#M;47#IGhwx)(WN1gMLIN>jfBhLy!Wx!&fDHL zWP>+S1!J^84~T9^uhb3AHtl`^f)C8kMq}`lUSE)_EK#DlClQ{&+Z#anN+3qUXc0b* zsW3M@DDYIy`|w#J`|5?Z%e=3Ryhn%bE!@JPUSxK5*WC~6#plT~$U_p$55>?OrvB{? zrcGbUK1^)89}`*a*BVv!eKL@Y=FnFxaG2sR>P*bTO8%X5+9HH}H~E)$d@$JsFY77uq4mk|&DCC(!m z-btQ}jBw0uEKnmY4N`#h=ve$CU*>DowFUfvU*WVzVEAOj$>jGw`reZYpphJ!rLk4q zd32Sf=r6B?dyQ2Ei&%y$$6n-A4mM*`p$ro#5e3dk3OB;R^+*Q(P6$DXyi6@1CUfwc zltveP;qwOwhc9H2XZ>tZ&cWT30N-O-YPS_*z#X(`M`>u*5-r?Xb%j4vF;UDu0d z*(`cDU^1i3G5VEuRFe*V-x2(K_jL_s*~2CaOL7+Or^1}M3rpF@GT+0(Q!Mn&voJZ9 zgwJE6@Xgdq0=Y>8!qyZ{vx$3z)}*hSe9M-hl5Q8fYe=h&qi(RIJDO>E8i0Bl1pq0d wtsV7W#O-jczh<`i@%z+~{6K$fS7d)2%-yC9n=r#o+ep*iP3^6JPFzHf03co}-2eap 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 54bfd869dcbb19e586a6003817b4591dcf6e3a7a..a4f9115dc7e294a3d94d411decbdf7a28875f4a9 100644 GIT binary patch literal 15281 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 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 1f619c1faba4227046e033e3bafc38da45b7ff47..072c0e9aa3223ae621773ea680d9742937897352 100644 GIT binary patch delta 737 zcmZ3azE_*IfpzL8(TS`bUW#t{MY%4SiRnd&xq4}d$*ILL@%ec%@k#lmc`1oSnW@E7 zGT39MWN`MdgrruKOqo2T2U80JPz%Gx%My%?Oq<^@eqm%>JNY5AB9o!XEsU_@}fO~Ihn;J(O@DouOv2>OF=ljZ`46XoIkM4QV6!zqUMxv1 zLeb2Rrg`!dPG!c+llO9HSzXMK%~+Zt=PjBcopH7_38bh;C--wn%49@m#FS=eXGs9XfUcMXas|}Q5#?m?vly(xt)OtWFwc%W_zB$jEw1?Rb$2mr8i^2}!LenKF4w4_J8PBVI;Emdzg+ zzc4bcncUB=$Y`;dgQblb#+l5)(m&aeV+&*KCEC$-5**K*ZD9G9)sD-9YYqBnvGUMsVfm~WrCo`lo zj%LVYFlWg6WytxJCS{2Am?}JKm<%%5nh!-Pb+RFkEbCODjzg0ZxfLe=;8tgr&R79v z`|$`eg5@X6@VZH7{Oe)QPs%E(EJ&S_@xO;7CAByi%9-58Tf)`DmXcbMn3*#raq=%- yXGRvF5i*;j`2I37nr@B|c+AYk&&a@##XZ?kM3@)E>@3bu1bQZmdvl^l3?l%aPIr<3 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 291ae0307462f0532dd8074b14373bf1240b2241..547237e0501ba5e4d4e9393b53e20753e4a513b6 100644 GIT binary patch delta 733 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 EKg&9foB#j- delta 1312 zcmbu9%TE(Q9LGD`Zs{XROD&YPlx+doT_|Wm2nS;VVtfGg5yQnG+0rf3bxR9fVu>+< z13r?CiTSOOKSB~r6B7?=;NYE`kAn#Z6UBJc6Y5MKv@|A=c-fixz2-Zg`OSWnevPur z>{B)Jgnfv@;4+7s4BRkfV7qR)A?Gy%483T6@ud+VOW`MKWY88^EnzeSf@R2!B{eB0 zX663M1QbiRzq07tpIjty=SduF+gb`QExYW0SFzyG7=lUXw{}hxvkP(}H6v-VC~~|w zBdMwsS7lM)qEQZhH+C`{2d`Z*I%Hj3#37QLgrrHu@OUPp_Hvo5mdeaYYB_1sb79(1 zVd0D~s;aC_tEn7CBCHtq3?8%CN?Gv)mYsU0Q<|KvaqAn03R@F?REixT`WZYpK7#t; zvom@vicBUPPy{k8#&NUGaJ;cbR-&!xJL<54Q+Uj^e(06FJ@f!4k9zGc(0-jvfV&v zy&6RBR%xx3xhBGHGslX>#=hdaa|~Ch)%o(SgC~p>Q;`U-S_aTNda#q_i{2tT6r0Fa zyyr_vuBMf?5Pb5DqmMMf{+>z;D8zQFb<9ii4iNo74DiRtqwjUmZT_&kd5^`>)vWDk;-m6;^ zvL>ZeL&9BC{=(z_o9HiFgPQ#S 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 b16673458d3d919337f890761fb91cb381252b27..7c09767aef79c344f5f6f6c62407e3c2d0cbe7c4 100644 GIT binary patch delta 240 zcmbOve@dREfpzNsjVyZ^8JRX8V)SR8tjEqhS%fWp@no}$?}rFM!&25XPBqM|}UQGRl2adB#jLQaGjHy7uNt0WdXR-*F0;T@3 z$udruEW>_m@*8$j7ABC;Jw~a`_8fm08J}*p;d;Oc$>i_@% delta 255 zcmX>lKS`dYfpu#8MwY#dj4YcEG5RyB_XrmkWMt-5=%rSa=#^!rmM7<@q)zGKhcV+5 z^O7_2izc6C)E4C|N=++CEJ{x;nbM;XpPQdjnv+^Qc?YwC#*`jbpj>9klpaC1{Gwc! z%*6Df#9Y0!%!*W?7#mP7B|mvekMZO-Mq`mFr5V~8wHeYGt{E~J%o(zN8FGG;`B_T@ zGrD`Y;!E4K;W z5=~|y+yPdQE-bo~G`cmBL`;k^M*o0e<3G@ZjrYy8wn%gqFLUoX@7#0m-1#+h*vCEM z)^qKv+>?_X*R;HPRZiZ^C)I(4ML9ROy4`U++qAnc5aNJuWS_)gx_O68!LGX#0?zBc z8#F{GXqYzBE~5-vj;Ld37~VR@oT{W#`0VWC*~`F9c7VXmkh|8^Wv(YUOXrqoFTGP& zp!4vCo2&u3BS6qqA}jFPHR-!TyXZWPOcBJ#L2y4Oo2Yq?TmP4ZNZkT!GLbH(7bV?9 z2?t87!4G#2w0K5970$qY&oC)N$s>9P<62hYMNxz;U-v9ueN5_}H>uY+k&zbUtXz<_ zY+_N?3nrLnADhc&jB?afTc4IvsKVDRG!(8n+^9J=BIu#pW7%%Ef*8#3VR*$00rrV- zvX-tFbq}D#hrKNOomGK|Ao@Nw)cx=We~`rT{DrFl#h!KiL#av!X zOS&#)#8gqtE~&X{)4(o;#=y==k@zAa4cC05QK_ZzlG^9;?6 z+YRD&%l=XE7E%qjmQo7EoMbA~Ec9d~Jzb4q&p#quwyuPzK)d3=1qNU&a1sB&5+A8- w1`Y{XsX*&N^I!rmD|2}0hBup3B_^Tc7Ag#Qs?#Vgq=lo7%g5YDsLKkJQCirO^PNmv6Z8#i$UQlT~UC#VWiAW;!NCsKE_e#z|0UN5_A zQ6C`bfr_Aa3GdM&4v0#qsssl@?kHS}gpd%I9#K^gHx5V$kPs5{cKz4#BRF`yGqdlT znQy)~zt8;kNNOYX&W~eTsW-_1?j`Qqy1plR8QcCwAw=Of$rlOsDKBP<~ez!P+hItUe#(_bs7l%e&QN=mS0p4@@n$w`~nnU9>yUF6aR*} z_b-@yQF)1&5zc4I)V`Ntxdn%z+J}R4{8we68+hf8z>BF5$R++uY9W6HCg2=QK0`1* z#~0Hdl6Mial)sGrlN~?jUuUL>!GF#ioyeUveX~JB>IVWc%K}DO-^EX7Pmz;+Bdf1J zRVvBWOC{Z?SamZ9D(7Ffnhnnk$~7}IgV1kTVaumMc@aN5KdsNs>T|k0qBmC@YK7%o zjDKbNqIgXhkYaQH1M-Ex$BZBiP+1xaXu4~HiynNo3*YTak=2MdM4Z0>UrA!tzeJ*L zv{tb1gl-H(Z^T1fg2^R}4zXd6x;5Kft6uQw>R_IS{tF**4JymjZKT?)_WoWi)rYg7reS{*`e5sK6usiU3^u&cBRp*wdz#BC7C{M zQ7~=3={L^U<{D}yP7s>@8VvP`nWrMNJ~l$*yeinaKb6_tJ=)t@Cg*0NisClxe7yg;`2LC zKwq7QmYOb=D(1tv`%lDhD$CM_2WDX7z3(e6U6S9HdODLo8Vgydy0|COB|v@{{UUTn83cQNE&YA|T7)^^SDqyd}+S zjRsc7=Fg2B&7X>n6ku4g&fgv>=UBQ%L({Gclkbi^feRSryEC@u4?=c#M)!V~Jn|j_ kIhXMfFx8dI31u7L(r{#8Gk_xQk0_3yPs03;vHyAUC-OlEy#N3J 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 6ef15f64c008ab11330bc20f41737b9893db4d9c..bcfbbbcb43f93ba21c331bbe0652b4284da98ab5 100644 GIT binary patch delta 1533 zcmaJ>PiPcZ7~eO^W;c^;#_T4$k~6dQw?ucPDxC$m}dL z6KoEpinO$JF7b^Qp~d2{hayYCL)AjSo28P-ML4_vxeLFK|l0pY|AMg9~d%y4d zeeZo&`SFwJh3J)tyb=9AnOQVUeL+)JOhqp*n}&X759ckM0t?P03Y`h%L@U2v;oWnS; z8+{PJ-;0O3>#K@oX;8fxqR7wfle@7%{&b)!E@CcLn?^g=C6Rmvhv)beX|nGGI>=CsUtd@D7WQ{iOLdI>qKZAY|r;h@LV# z?F=!bJ%0aVbwk(Hrp>Fd63@kA{p`F4Wc%R#2yXh|TpAotWp<9hUJUtx5(Xx{zyaUZ zN$&61=v)3gm7k!meRgq}p;!LYy$J@!qgA9^yfHXUu0xlm4^Wskb`3GS%0VcWfNhZD z%)wyE^Zo@n7Yvvf`Z~kLQlTX8AT|;*IUga8{2m8pD*SaYifoLJB#$4Q59P7ju)%J! zle?^3Ngf5=K^_9f9?Y+orf=v3f-_lT1A>?Ncr*Y1d+#^1c;eoqbW3{t zGrT0-M?qMSdzW6QjYa6ydnfX?m(#e7O4+<_RA9P0S#vuMNyF4{7I8LT88s@_==H2| zBU8`~M%CsrrR6iYP!fV5l}pAoODoM97NhZ0uArCa3=_uXSSOax1=Tk1(!g-oibl`NCtjoP{kA@mJCb|z6Bko?q#xa^CN z@tU`4D{|a{cEz!;jw5&nM=vn<)3SL+ zW?(firck*!KWQ`NOyEw}`JpMHwi|Z*N#CdnC0dJuvNEFJCK(sM*w51qc1G;nf(UFo z!$F5{wd{Di-Iut;h#WH1hS4exhPVussl}OkN!(;nUfpuNr`$k$W=ZO zO$=$+4kSV?^xAo^55+CsD{Q)BQk@4DTPca21SRz^C7X_jc}2`A@~36 zMaV)ZMWQMxhf3IMD_#)1BDEA5c%uj*UMni`h*W+g-hy}s3N!Z;pHtEx!AbYCv$ONf z%ziU_8xP!^i=K&IJT|%>eKV6irW^G+Resr!>!qrp*I!(JKYORN>yvNdf*`hT2uq@H zmX{(0@&1FYg~;xRJbgshOv_j)TSV4~zRVQ((yPRxs!6P7Lm_CE$mEG}uao0xndQWZpgP5ORydU6u2HDrrUPLde{P9z9ir>H_uNGu(kP(ru~ z4_LBO6{V_bs-^1MQcX22hdagBo!6WR8l^GUImzC$MQ2I1lzK>U)-L^n13Q6FP|1#1 zic#m6dq=q4dsrCcS9eX_Gaz(z(Hu*|Yh{^cY3!`yIpoRs{!H;HmO`aG{h5wD83*NF zPg$}P<(h1oYE@N?kb`zNWF$zn``xyA0712q2a0ykEC7S8cGw|XepbE$}5mrAPNL$@j_+Hs))lP&49bcKI@X zEg9h#l2byIe~~;P7zptw{T1x%Z6lc1zc&4Ub;ixv%;~aTZ^&k;B3p844j!kGLwqPb z%NNtbM-y23$1cT4;mX(^XVw879LSUxs9e-UcNdmX7s!aU_5k`$l6YWz|&7fS|#!ot@v%pH-JR8(_{)LML-h zo`Rls)G&0f+nm5orx4^1Q8o7)yApxsr|HlV$+ml2LOQrtC&O0TZK#uC^KIn+4Rs3> zC4d<7q6@NwB45%@lqB+xAyXkX@*iAxU7CP{qu?1?y-V6doF4+W=rHZ3 z`FT1r4|IJ8_BNoay+iS_iy>upFPicWFQ~FyXX^+-?!){HPfxH9V6`nanvNZBG^gC2 z<0y0t%6J^^;-Z5^<(J|p7{^k~+c86_R`jyNuHbUX9o1!3bJziq|B)(XSqmoU*X&bx zvCr`FIXw7c-(WFRy#uf(7(AXRwonTBhf+9GCizk_9!Ir7A3GUp#8Hv|kS=s|V%%lX zR}B~6ZA8Z|5)|JC7GKIMz6{OLUvLBXp(NqsnRFF<7&NK6qJ@uMJ69->hM|`g(^M*C zxkk)sgGsvw zeq1ady2H-nFkVs2axmuCGc|s&|6%y=fDl{f`~MWgFU8i{z)#)d?}0YE1P{}eG`X(e X8Wa8`7*4F2v;aR9FyDH2?+e1;UnT`W delta 1175 zcmc(eO=uHA6vsQs#wN9D+S;Z~({$2Hlh_m$6)kv)l~R=|wpRRXx5>oWb+a3?Td-11 z3knK*DQ^X@9t6>gl7ouiL5ep)!J`QFAb4oOgWjaR*%(|rX)j)OXXd?m?>GPV-n-$| zy@7?mot5ZP;1+3zui=iR`{CN+$r~RbQuQsF@{t>`Q%aEikO>v4&!q?cO7@VUn^t)? zXHi+F#*E5vRVW)pYO=B-YsyuYr+L|uY0l6sSB-bInQefNlK`45Wb3%~{d} z>&*idHAos7c(*FyZ*~TS_R*ws(^+&0YsWms{k&(4$H&kiWCvNX#AQ=49dJ@Lzkr?j zCkg9C-BH^2_riOq;sX7Q8v6r%C`DHmU_-U>1eXXri|iqOc)4W)zinGb$zjZw*}jG{ zWkt#!uJQO$A=f%QZtn^ehD8fwSHS7kgOcc7*wxzCpX3d8bBXDB?5e3NWmfPC79GlI zvS|)YUx$y|BD+I&qo!D_ENdPo^`gjD>wih)@KDYmQV&?+RB*bc!g;8)^}=%a1Svv$ z%UtlROKN*&GD7eHlj0Z)>ef2v>gA=5H~+5vq!41z->r^g=zfxgL|fk`{)Kn*&(Pc1 z3*S0h;dLYq%UvUhhZxpw#0j_NO3YCoiES{?%v^mB15vHX-jruJ=9(kJ-RJ=#!M&DP ubuIdX_&$;9YHY>d{{k>!=g3cKNQ_nh 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 eb53e082d48e5c3369f61a50b44f1d30c4668825..3b8bcbc4e663323879f5296dee1d5e4afc02b939 100644 GIT binary patch delta 2350 zcmb_e-EZ4e6tCSRt<&biQQJ|Hv`#v8X$H|IRYI!RhO`Y-K&65T2?}bR#M$*-Z3jD% z$iv8xKu~JLs_RYSWg33~4=Xld&t}!qYT?N?Gy~nR#jyl*c?}!H!n8 zWXn=(s$vGc8iwHgoVxEl%oAvJj+Q*D2!yy`8NhnM0vNjyo6aT&gYi*ugS|5T0CyJf z9*%tzaPBdd7V`;ux@VzTR#;BVh*apB>xL0Q%`gptlzl$F#)a8rY?(6w@#G^$PZjg> zmtPwD(vlnV(q_fb>ata;$_=@64sM%RZgw|zy5g}wA~G-zs$Vfo6Ip0gh@#1*C|qtB zGz>O;T(9Ib8W7p7gH5q^@>Khfb_z5ZM4dhm)l2S>JziJzD)hz1tEN&5)Rn%ANx@bT z?2#>%k+@jc6HVF4!HhV)vR{LwX4yyag)s*)(sUOd>|Sbyg%WGr2keDJEBPMocqB`L z#tv2|9i$#g-vXs(nV!MVfg#*FW+LKcf{n(rA!y@1*_X*V?rtARVgPfek0c)Gev+WU zH&9b>Ndl|OusSw^RZFpaiu%i55`INywSVb_+0U%CH5gCl zP1EoO$1)BrMM8c_s_wpb3l5V^H($cU zSD>JN8{7ZVUG!=|nI1(f@7Hs`=9$NQWFiH613qTA;yJ&G^6))2Q5yQRYE&HhAt=~_ zyV7J;cjyV8y_hIHPdl(dzMvn&gMNayPf>Hf(Iz=g1ARCNX~%%^&tP+UjJE*Gvf5VzXj;mQZpLGg8MorODTB z-MtAV`7YfOpU7>)zC8km4Lo2t^c`G|Ru!w_uUS52vg@fcaBjJmn&$b>_|ESWKMo&z hA2jJTxLLNK%bJ4v7MuYnZfsj52gd=}@9@*>+~0<6=C%L; delta 849 zcma)4OK1~O6wS+Il9_xb64Er2#Fs*A5=?}upam66t5i!0R*LxTB$@aoXFIRHI$!X5PE^%{lj+d++k(hXec)|KLn? zg};Mj*eA#B$QOCtmu;>O7S zOs2<|$>0>bX3{vD#b=3%8-?d6LM}A4F47YfYl)nr?yhO9$T-3|G7Z zD6vgF68npKD2+Qyu*1Vy%MJjc?sQQaOEna`bS zynXz0%&?QJQ|K&n>m)zubsSzthB=vhg0%<^d?Ye?^Sk>j2cHK|CRb@K(?yrUSZu0R zolByTCV>lOWxlLzDr5jtd6nGUqMmzj67;BHn-;sS2wTI&!ZqHK+tURF~-4yFe YO=WPME>?v-EbAmmcZ|NbbIA+nCmR0^y#N3J 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 12e46e86c5038b3058e3945c4cba92542cb76032..29ae9197be97ac17a69ae9c61c0c1198507e538b 100644 GIT binary patch delta 2091 zcmah~O>7%g5cb=wV|(*s$8PL4{@Ha>r;gM75g^onC=>+(B85f`MQxS%XVdlK^}1dg z8Y-0ZkOGPkG-EiS0xEDMsf+}o2ZSp1fK;hDAQhza(hE|#^uhrt67$whymp%4gLmJ& zZ@!uNX5QPClb@V1FPcAN2d|hvbb7|sobqBSb}koF2Iq3Ba^}ia&rYl9`YnzSro2v; z8S)LBWrNJfXT^kG5G=2L1Wmev6e-7heR``A7O_w26+xkx0N6B8*75m7Ph5()*>bWG$BKBehYb$bzbWGDyb15-rOe92Qg450;s8h(wyh!AKkNd5BnRc5dUco#LyQ$sCTIPdbX zRG zX|Ep;Sax@lzi9w>RU7KGt&O}2<2+9`FuVIK3Nei@)2*diV>Y4Hc?iyXMi~nO4_gmg z%{ZqRdK3QiER#)4?CItfT>ra6soT3K)rLyB`Qqn$PAMGs&cL|?{6bh>G*;)^%S#_V z`LY2okI-x@J>I|Dp)gcCO5r}KN%BuhfyqKVw$kReR>yV-h6O%AJ73?34y?W({R;7_ zm>2ZqJzYE%bOskPnSh_Yv*aXreZ9?}sC9d= z97sQ*(<2)hG$cF0K#MDCrhsvpTbp4_`x$Tq0*{!}4rmGVSSd1(I>BUMmY88RaDw?x zZ!Zk-mhiQ@1ZZKZLDS-~sD2isv#`#(VU0H*rZa$WWJ^M3lD1o zSmEGS&u*gPeaT|jE~zT9RHh`~fwzU>&Uer(k78}|yY%e>{hNn1;h?L&x82yf zUv?QQx_1K|x5jF;yYJu$M8=p+A=Xk Yq%InM3T3+SktPN4tBCvMvA)yfKd2vO+5i9m delta 1669 zcma)6OK%%h6!sm@#5RueaPZiPUt`x!oM{||6eNfsq!ML8XlNQzfk;T~WYG9(Y)6^N zqC|m0sd!{a)t;dsQK^+GBtUE`BNhQFv15Uthy_SUELs+oSn&f|aqjrRIHV|>xpU7w z-+6rZyXXAE#d+b3@WI>i1>qec!VSN8;gjC_&-EX9LipM*WSb+`V2MwWM`1c}uI3RW zuhT#X{2cfz801_oS(0U~R8e$UmU1%u(3S0whoyX8g4y0dPL?3v-7n_kVzsJ`NYyo? zRIL=WhDT@QDC~64!R_vuEQ_jb+u~agYvIW-g8`hSUQw4M3{sm^kmg-rw=u^byYWmYH+`#4DN%9t4@5?9O z#H|{ouj8^&R7I1Ma@IMk9vsb3i41W=cH=~b&w`JUj~Fa`X%Fo1uypGTFjlgiZTKg| zJV=2K__p6GxG~Wt{M~m5rji0Y_n^pkvSR+1!c(vrHiK;~yl^no`y4$Br$aK_3>_jj zSk=cH&F=2sEHkSy)vd;7)Wpn2k$#AVCU0iX-b;onVw&7^veAmW&|sr8QV8uE70k%v z)`ohR8Z2ZhGJ6DT_N7i{Jn(69oVellEU=@^OIS{Vqm%GQD$}IwVuLbYADu>|>04J`S*?}} zrHVzb!m;#NXco=%2-Z(evcEa@c^=+NXQtZe6|lb@JY;uo%c9R7AA6emcMk0|Nf+Ev zx^2^q?D32ucql0OU#wGh3KzDAYnd=SD<)to`%LOrbTU0ilyQ1ZvFLAX>s?j!mF6Dq zWXlhj9jl5_C}~y!<_9NGHbjioz8JhqNLTIi+->*J9mLT;@uQo*N};SUw2m{FvV(VZ PHHG6C&ud?fyhQ#1Q&jP( 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 ef5911d70aeecc4765a965d0c8c78699a3ec13ff..41e9b7f4e26eab2e03a6e0b4d407fe9fcb5bb402 100644 GIT binary patch delta 2458 zcmai$OKclu5XbY`-nf1zPGUP=+gT^jBvu}j@TgMJG$|yakRYH3kOHY=Z?fLTkJt`s z1gNc0)kJcs!nlwkk#ea(hzmplgj5L*KoJP_%z+DVh!CP2;8LkDvk&iXnnDio?)T07 zXTIOe&hGb5oqwJ?!(Do1V1ru=MkkBq{G++_VmX~3S|}Iuvm0B{J6D@N`nH8J+xCy_ zWgB}B;=ZKqzymPmTi<3}+UY)Yv{{T7;H zO--p(_Eah*j0y`&#dOsz2m(AEh{KNG*XmBC3hG|2pza)r#AqjuJK0skYd|QLs<~nz zy`=dM*ih!(_C(B08mc8~?6Nx&>33i}vW&v*fX@@iiVL|yj-=oxU-Uq`aX+_|t5oN5 zRWVM_cNvja@Z&W+`2%#^+v2df+WBab53A15; zGi7<5K`Gqr`Pv8pf4F0ClXt*akaHU+g7NmS|3OR9VLZZ9#d}ns@+OKj=p#z%4{d7; zJ`VQVes9FriSDS7EJSw{q7zo49?bPu#aRB-9LA2Fqcc>l4T28%A{M9eg*1TV-vB6o z1D;qH>(vg?AZ9EeG1j4L5HOCC2tqO3qw^xgy?J?vS2TUsM*#~p<#OxbV5}oz?~}Li zx1T+%$Bb!hH)6Z9?M7fYJou26Q2^5$R&1?|0!pVD&lmjC(Zgo+C^{YT+)ZZ+)10P0 zn!t+*cs=A{bMSWPahB7)6N}`=%X3YX+~6=a517HyBO(bm-KXWWE)yK<|lQ7kd0Z9wP9)(6k97YpJgEF4Th`mXGe&A zsE5ZIUOe1(VVfuyr#em zV#c4FVN&e9VYb1IXb(Ngt{QbdFRv*NJ6uUPVVu98aZu%-VYl_@!!M~;w~WK!D8oeL z^SIG?u#b)^^KA44Z1_UQr^SkNf(E-VF68lAD9+1braI&{|0(?B3nmq*nP#y3hH0rb zW)?oI3jd!dHiB8A$1IUjB-Gk9)x0IKkj)hq=T4Qy1=AdsJMGACJ;r1^;% zobwvJ+-=9#!DB9gtav$Y$GMq+!T538pdDU|pKIr7qcJbmgOrIKLFZ$Nsy=~8%3S?`C4&~lRxiI-xufzssK&ZmbQuvE znRj4}0L&14BD{dF9A~DO&x<&5O|Mx#nG{OpVn(b~#H=vCDil`orPXXPBP5gh zVgA!bMT}9;;#n%N+{VLUr<0dY6Hs1$PRqr}u(y#`s_U4riDoq?wq13#B-Z82bh|Gr zRx;W>)Vr1;AUuMfHLdZ)_DSIuV?S&!cK>YO|32EvSMgt^<|?G~B6(Es>p`ZC^@^0l N4+;6|c4_}C`xgsX**^dP delta 1764 zcmai!O>7%Q6vs1bZ=6jW?543D?|SXE9f)^R2SPy#5vU}n6iSkck4QwcQk-PbX5!ce zJ5sACReGpO#i}B_ttz#gd*INt_>9!52gGM-Brd4p08)`aBI8@O)9rsGk-h9d3xf_>23w0{?!BblY4=CkIZN6M86dMwEV=AnM(n(vz31lie!{Rv> zmgp{>oE~VmjKB%Y5X_F5rD9R9ffN>r03+c@0r)5V6z^k60i2Pua4f^C61`w2 zNIz#o^VXO4q#uNb-F$qz@t^T>MlVON0PI)EFPPG3!~cdYzr#N+d;QaO@BO@nuMQ`= zW8_b-zouBe;m;|FAUqrC;5N2A`kBX{T#qmA?onsY`uHLm%Wv~(KKaBr#}L$_D(Qql zDL>IbAaJ{u050#1V4w5wo}z`Lu`EfUu>0Ii;Wu0yvC*KXHUy~jyb1TCVR%(awhiKa z5*1*xC&EhmnwZCWXyw@&&%uRE1`Fcg?yzQAK|Jn{G}gZz)yxy(UvIMu8Y@N-d*EGh zADKdDV+~}JyCcKpy^)2mYP`TgQkpDyfi-21xWM8gvIp1>{pVpc(MMKL!{s+=^P6n) z3ow3fH~IM(KX}lUQp{GTkys|ttR}WMlBPn1s#jQ6=hYX)y!L zTR2z3F71yUs%?wj!!LKH9j=Dv5% zdG|Z>$-?9bXSewKK{{>pv+xpGxKCTGu7v+87_T2@c5lvkC8cO$z(w;ij{0lN+$U< zuhpt7&+~9~-xYSprfHd%8!&JmQxa?0Y&Qm}{iP9yy;6&`4iFN60u9(#{xgd+xUQetTx*1A9 zH=etaYxK@LWU6KAw3P8`lqwu!Glsv)EH0gF<#w$Ict&Q=weqGc^zy>H@r7F3@cOFqBuJw%GK*f%+oXU_ALd}w!;+6X zxuWQ1Z>}!2bH#RY<%X0u4!`?twj-zu6>o;vVavNrex_BsbAtNDDc9-J;n3^TxYJ4O z;k3~d=?on9hZZulx%nAh6*Y;+p%ZhpNw)PfvvstGEDg|9^%pALt9K~F?xL0GFIBvk zxsWkC(xUIHh^4$-IG}3hVNm<$G|n;`B8@McTzTnkXt(xl1~HsPc31o_+`#*p~wUWku{668C0 zITRz`8$=$7-|mH&;P#VWVTp^98wOE8;xCl=;O;T@Oq1vFdNxmoXA+0Um>Y9yhT%6Z z3h^+`sNsLf^mC+q%)5Ud=-KTUU) bvZ_ca8h#uVdT>FL1pH3odGqw`kC1-=>U&$S delta 1576 zcmb7^%WD%+6vjQtq^~rMF>P8ilVoDmq|p=OKCfLO&h3c3(Cg6G~mOcf+%< z>hy{!$0caQ8EBlk>B%qdJ+T2uxj9JL;5v3lVc3uxknUC$H#i_M$O1J`0|EOt1V z($iYTh{e=s%*-5*wW;yAy5G=MeyV21)C{e8RC^tdPaoG4Ni#V%S`@5S$I=VB6`LUt$tZq)N?58dAb1gV7BYBON^c6^!O7;knkOe4&7Ew{9BTx!cqcz8V{1dLq-F2Zmo8WoLGIMVXpFkn={Ddqi-0Bq``lFrS z_MI=FaM)$`f>Os|jtI2kAum4(i#4|NLL6VV#92dSIZO4} zR$3NKXjJi;qQaQi^UceG1@c|CeAgxB^k*V1dgRrh<7T-P zjtHfTl!=OzujMsx8k>|ToE6FjQl6|xIZGPE_euz^3Z zye*V#|2^k#ZrS={LNF?-7!da29XxT3GhvH#2OX%4HdW;*Z z*h2Gi*iKBfL~y;@9ezUzv(@Cx%!#yavA29%Gpw75;vR3PN9(dx!+J(brYsFz;SC_+ we4UaT3jYL9a)Yg}?UC=KW8dguW@|^a5uK||`Y1AfF=-lM`aaTqjztc_FGRr5;s5{u 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 a98e962b89a4dc563e28cd9a4a56e613d5c60ed0..5e9931ce889eb535610b33167f0ae5cf63326e95 100644 GIT binary patch delta 1276 zcmah}OKa3n6rN1ymCRc@Q|rvMNk!WZZRubawxWGWMO}2`u9a~fNpG&rWK2?M7eb{K zl}4r9=u%Md2gqziD7dSLpx{O-C@2W7#HHxDlbKH1ie{1Ad+vA6cfNB@?$Z;GM!l=v z2PD1ey*-+kQ8nePTv*Tw%8;a~%6wjxBn$a3TZlD1m&9emB9?go=6d$h$1v{NHZ$*L zo{$_XxN{?9Bf4ID?J0VkmNmvr-m@P%2D4d7UKFbZ17)-P7_S=|$MZbd<}!1v87+&F zT#*e~t>hPFos#z7u&!Hu$cuc9Y})r>^0FZ+4xrip7Yg!+X84h-lW5Efg zgXF>k8Ju8TE|kJ?_$(Ds68UagHY?c3cx+$5O6U3){)Bu zxfbgQ;WI4?vK8x&W41xoNZChWEcVzi7wnFc=b)Y%*WuJGZ5ThvE255gwTQ)%F~m8a`rKeI1ZxJcRbkFyGRK`UN4fvS>%%dp_fdzp z(CsoqRk2c*D+~E$O_Ut<#CO4qd<&;Ix~Pv(l1xN1!B&eO5+O1Zu;_6LZ$e?Z$-T%d z^O)>J)?)Xm*=~F%9B{BtD&leY>{X0feT?iCX#ZPDbHBNj*4Ca*hk@n= zCEx8dB|Xq-n$0?e?RI(0ZSl%L&+OeP1nPI&1i bTPY|a_0i$x!1Umbjs&@Er38nrVs6 delta 646 zcmZ8ezi-n(6z;`#>ilYAH+6{|CpH3+SZyW5Qo;hIAW)SufI2{_>ZC>&lR$*cfDot^ zMFQyts&_0PAytS4Bn0xn(1{g^2{u^TAqy=11E9T&TdA=<0dGX5jjcm;B|_>!~5iD>ffXWtEp*}gl9uzt|y~`0jzr>`|dWdMq*}# zKBg=50j=zXaS;pHn8l@8R*)dF+v#G*Z}}8xHL8<{)Mt+5y0ak4dkZ zTg$-Jnn(mSJq8Pz1QK97bA`R(ZO8X(iw|KvYe6ro6&E-ZUyDXW4sbwZgK-%!ldH;$k;a-&o0I26Q-%|1xt5 zw$-D8j(bo}mtlHX1uJcUn!jMZWjJJzO%dGdy3~8eU3tm%oBKZ8&)-av_>vnqtu}R_ zm!D)?TTzPPsgXY@wu!>p=$3G7gEe}e*yEGLEvMu1cAp*7mL%Ueb B#e@I= 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 65e31c7b069a23ad2e2ea11fb27a46b909070169..391cf6872481d5ea7c2ba55eb0a619767c930ef6 100644 GIT binary patch delta 1248 zcmah}OK1~O6wOQXPdaJy(C&?TPyNANF#9$CY(kc9`EC~U@a;;nogBXl6L#IztLa)?EKYcSc zCKW}@hUI!LhD=(l`f43x;Y0P~h)vD>#l`%BRwdzJWSapYqAIl1wgn;G;mSM?N z>JB-EG1EM*zy>p5E7ir|J~QB*phjD=J$VET_b5y2Wew^(Rjk~Kf#DJ zqjw+ByIT^~n6T{*MWq)=t8c9}iwjdsW_2@Z9S7h~O&XD);xogw=lETfF_8{XqZE3K5FDSl)Ol;z1SaJ97W!fui>;nTaPY?OooMR{Y z{m{>G=Pz@l;*YB&I!81fp%EopNF8=L(B>!{7CPV|!@_sZo(yi2HIkk8yO1KiSRzuS)PrIxUPL6c+hpow-NcaHLIo@F z3ltV{d0RxpgLu({QrU}m^(GYj2fQeH@h0L$L}#)IuD#66d-LY~KHhvh{_d#I6Sm*v z9N{j?!Vbzh&nEoC>-S-VcyAXOVe}NLd1RTa5Xft_St(8p0I1P_u@;=cxzF8xEUFT46I65Xg$G9WaTUEVxdG2)Gi4&bp!zfCuWrLSUb>mtiJ{Np(|KOvE$K6a+d4)M|T$;OcE3vf-Id6 zA7liQnVX0Y@(xOh4826pE5r?P4tAdp88X?~r`VkVZWv9!umT%H)^~kc9?g078@!fT zB&JWO!ZA=NnlZ}A+x(9o=Nw(`w{iIdEXw&;xJ>9e)fJ0Tqoyf!dr1mDea&cL1oHvB z#F`W^Icq`8BhsVr=Cz4n^jsjiyb*Ge9i`n++b6f*GL>dvGTH~cCQrlB7An-Nw*K=t z=ioh)XOiwnSs!DAitw4d5OX<5Ufacvze&D?wF4`77va=_jfo5V#2e)ddYt!%qyz-X z56+@rx2CP(vcD;8B%0Lz9(Y$T=R9a05xneAaG#`7nC=^&hcBtK4@!!YdT;18kkn~z z@Fk@g81uM1lvKi(6j$0Qb{n^QTw$zuoRyCEZ%4Fl=(^Ij108nqu zwB6M^I}M{w%VodB|Ml_eMY?}s^Q>Bx&EoF`ZpzsL)7TrRUF{D(gdv;$y()5&0=o|P zvKurhghEafrE2eV6jvMP+gL-f>VrMJI%&YSlPg4kJ-O6-BKJ2TFZSrvt+6Ky=&McR d%W~rFs;=+|3;%B#KR9QxGIG(Tdkck4@-G42?lb@Z delta 1687 zcma)+O>7%Q6vsWu+FmMdLP8PHf%JWfI_qNboc9H4rQ{HJSr`&{Q=$e6}a+1ImDh5VZ z^hY7O;11OBrrOk<+Doe5#CsFCIo7l+({^gCq1w*Hrs-hjZHXOyFY-cWXdF%^Wtd1N zpN_ChcN?@1WZa(%i)vfls($yY`WJ+EIKs~lfJG6Mvc)sx+k2uC3O{rd{)-PC5;_l( z-}dMnK;%x82n-L6aXL5S^kEc>wf;;VLp}5-6U#~)YLq#||*oPc=w|_Plfb_YLiLk*qplejYL{%h8D(^2ZbMfYn_GKj!)#b8 zgT>4Ue3VHXPq|55bNK6_N5bjXqAdQh@t#N`WuzHZh(FOWhl>WA$FZ=Whbj3HG3+gx} z)<`F~0qK!N<#10d<|a8D=dy)8Iwnk6JeF-6tPwNqChFKxHQiI;=aG3N!9%I>)}#5q zP~WnMAH=q8+JHuLt!GDfdZ#MfNvHUSxhX?!U?Ii$dr!s079%D8^wX)@HVes&tkxUHdpC~|)eO-l1>wa!zx(bz z_jB%j@9onY^Y%CG?|v|S!+vdqKP4-bS*ft96e^jLB3CZnxXtgD_I>z?pW|%Juer-M z?hf#tgzeDNaMW|X$=Sn$R>?Ka2AiJkR6p0(mrmE@a(z{~FB_jySuSWx zOKw64T=LJ^a3Mp`jVG@@G9mcZI}7W+_;3p~g|Gvfpj2RfI0m`l9CscTy$7QUSR64z z&*HMSEC$8FtNL5|8+wY#;CuhU*)vRGlE&B)n|Go7R7=;@a2Lx3Rh3GTpy;4K*0QrV z0=udUPX9FbD)TojF`O1g8x`FmR5w9{f|+oXE4DM(Hy{QZ=7xB>@m*nn;0yTdPDH#6 ziNKVn-i3$noKeUHTBX&PSJUIZzSHIqKmj5=H6$? z1lnxeGJ<4mKw*@JpZ&2HdubTLgm1Poq1H@>dfK$rPQk_wX}5xRnbTmK5{B2IguV{P z!}0a!|7Y$yQa1uhA)U|uJKR`%dMriNyU}lfZ*2eg_+GOFi(`}1pRm={J%E?SmyhnSTod=x``tp}M0n9?3ngrN8eGPLy@m60 z#Lmt)t-ZP@)|>5<0p|(kB|?udQ^@lU&_YjgcDNHdZ=1Hk9MPNwMI2;R z>>ZgCJAt!#_oG0uCoNuRQ_jWsDjuj}1v-Jb~ z5#DD~`y3qOTB9vC-qE3H8#D>e*RSHs7r{|zJ@kHns6pMe+UvZ(ovCr>J&vfG& z?WI44934mCDZY0?nLLZJBO}Hrg?+u{F=x{UKTb^8Xp2#HmyMv|Dg!j{GKOOIi?7o! z4F51wGaKb8+@uFsKbS29H$y(}FzO{(Mp3c9bFjgON_goyigKkQR5k169Z4ieO_7U& zstPM)xz1j*S{>^}5(zWrhw8LgK(Dtk6cuLp2rM`p5qb-^DD|{s={_lmPFUOg8S)XT zH5}NOTD>Odbc1c3D}q{V@8N~WCAc3shHrb0k2cfMKRIr@nTkE=AKXM;dJh80(INKt Rx+*5{A*1)2hmse$e*pHAkqiI; delta 1872 zcmcIlOKclO7|z()_ytLv#Ov6OH)Cv&vuUDK0tp2WsYs}rh%}T(tCWD(_9nZ-+H1V) zLxsR45>bj4iuG@AoRQ$b%Mc-Pfg^{Wc$^|tf)nBZ91$vIX6%@40#d}|vNQAVKmY6d zzkl{tUOz2d7Orh)Tf#0%z?-pT>z(1w27VF(t^Hf5zrBxM^r5#Q9m$~kVIi{H_6vyt zuK*$VGVVkf-p>4D8==8q7i5y4dURABxFvg4OrqVEMiz&=2wq2jk7D{HNrdYFU=awEh^Te66tA*LHs|7Y( zE#yRs4Z~1vxDiP{7-A_rr`u}91$XKd_a!&43C@+{Cc6YzhjaImAzGn-co{w$T=1GfjiM$xKAd-7bvr?I#M*@B*V3z+v`Q61PEf7XG{w>_Z}6jkfeq{p z-R&!LFJkeK7kvtUcNr*hEEx=`Xc#TS)8YdIej3Z82u`N%YA$x}oZ^v@CA##|y-I6! zfZ_iIbhCr>QJnu4=G!58<6p*j{`lQ^tQdJG=E+%D8<~XG$hhw{4$Xyb1MKiJA87z4 z_BH@1d2tw$Z)aGi+ePP2Du%*n%=Z@e(d@$C^KpU0{~vMDo4u!XJ&{9mEc5Jmhowi+ zJD_O5pp>jDhNrK|M=X8DV9^;q%x;gbJ(lJKjK%VykJ*hB`GEDX1lJQGFk&m{3-~lv zl#ZHcXw&39b|dY0hN6I|g&kNBV`zu7LZIhu&WhjxE1(sf#Lhrxthf%6U1sZHZi`54 zkyiX5#S6#}&Gm(>9FE+ zY?KX{!x{ZK*rGl-FP`+L$RKr}g&U~=x=Bl#g<4#o(hT1(PQ*bKC6Lm~c%2$|0<<*t zrJCxJi|iOIt5&IdhTZfFVP~MM+KO(t3jCUW2=&8<390>*^czC0_T%__|2@ysYh;Ul fEGJY|=$k{0S@Z!Q?8g;L%h0!gY_->O&!9g565Cw& 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 e0e359ae996acc80f44cd8fc0f44a397f7c43b37..aef7c1e92355fc86687fc3e4c4e3bdf4eb61b42f 100644 GIT binary patch delta 1352 zcmah}O-vI(6z-NTZMVCHLR+C-+F1<|nu7cVg&0vVB!&cUUX_y|i`r#XUMkAkV78doZfrgmk9!^4Z-WfutbAsWli9*^F3CAOR?%EsmZC&9TS7#>N2k)bsX0DvW5NaalEUNE88Xv-*BHK&%; zd~R`B)k`Ke``67ivk$VcwT1~E!7QpJMY92oGk-6LKXH+0A1UN2DaAucY&8jw`_3{a zaLzX%h8TwfMp1w~R#GqwTkn~c65_*!_T)5bqlg~(6~^W~1nIMoUV}?7%et;+Ri$W` z6*$&EKJfK2L$uoYL8}_&pp>K{;b}H%q2xk(%p$ z>>?q>vJmIdg=Q7J$H#-nTdP-Vp|yc@SxATF0C<-lU|7rvSD0dzyDYFL^UY*BqTdZg zGn3T`Oy0!bh3HkfWpD{-iVi_Og_Lw@khA})yGJY`s}oo)BF^SArtF*(-2eFcP`f?* zlr3Ar?}P}89+Nm0{8661)TS39f+M`y-1IZjY!8!y!L{G^uPOkvmyM> z5O-5c^$QfS6j+jYr^8{m$tf$X78DZ+)bwN&Jzcl)R-ovEy$hxh&62w=gLjxPp6!T{ zyNYbJvflBNaZWoc<=~f=(;~@6-Q-UpsPFiK9`Kv70t#e zwNo@QSbL1|t5%pSz$-aQgaJ35{om7r%av#w_g~GGbcClsIthR*(WZ8 zW}lR%!lQ=CAP0(aBiTDym`8^z<8p><#^Ve*Z|2E7d?Ad?lN0$oSzM7!lqk*6&UgoO zz7xn)*^C^ZT97yXPrfTCDJ$liTATq4D+Nb|To5ZiDJwO(L~lw4d+ZdA$#?jrxqDQs zl5-M^i>(ssCKn1yF(piy{D)s!J`Q9WP!TXVSU_eV1xOOi_A~)ajs%c8>8zN^0(|n5 zw+VzX=1%4nZ03jpJEjL3y`UHs1F8xGi2{QX9LmBFPxA>$GKPV?$_DhRbXG9XAT?I7 zXC^D~$g^d<%#hA_24YT56Be4R#3MV|M8rdJ70{#}cA#%cDhpDlWUU5qIZ{%KlVSYH zb47}{de~A@OA<44rX)`07qthbIe$?}CZ>mso3q3pF{|$eYRcLUB#L`D^AdAYL0XG} Wi75*t(OI0K2uxQ%`OU@B(To5gmC*zM 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 0c605dd2b473160bcdd582744baeb0b3a822461a..3c311cd33489772b1312f67eb609dc8d97f48247 100644 GIT binary patch delta 1596 zcma)6U2M}<6z+BFCUIJa{L~>y3wEncX{bP`9fHzPMgh^532oXmZEIE1#KFFb<6ygj zJ|MxQNh>oN-EoEB0r9w(2~gfEc;$`PNqZR6q`jbRnzo0bp`B}|t0}N854pbQe*VsP zzjKbiIk9n?zs#?Xy|KoBo+_L)E#tUeK4+DUy*0};=GSf)UXFI$f0QDGYkfynIr25k z3JSM>9O}Z=R+>M+ha;1xgQ{7Fa@J`{f>PhcvM%}&U5-F80l|7vx!>?|w@ zvMfU*F*hodN~WW!)?(AFuhjL1YL`m#>t487Ov zp%v%}T$YzKN$dX13urM0*Hfd%=rltNXwS4=b0Q+A0%Xh;D)q8$>or}q!eWvySptuf z!=%d64bi0_9V20!m=cM$?uSJ1T*{Fd6h0FR43S)a2Osst$pvJ2lV>s0d@Nu6&9{M)0G#giRkdtc3LzKZ%D_&x~C`nQcs+P4MBot zmOsO~Tz*?NR9lnHC8}1Oy+ZisSB@SEk!anlyXlco$er5Gdr0^%PApHDVQ3pe{A7pQ z(^MN(y>V{wqNUbCok`;ydJv3Qq>eLWmFurOmfU>%qFue-);MH1_+IRXN7<2BiZK;v zf`dDKyCA>w18z45=XZXZ>}3bRtPCO`#sGua&;+q4k07+zukM)m;*B?3etURJ#uSsW z2i_55-4c>b`YB@VLEt&KmK#ilT7V_we9UGKJZC*Xo?=@RQ-RbpV)AIK)~|KKmpK`} z&1Gshn30NU7;3`_x#SiUMQ&PVMYV0UDle_bjb)>`QZ*~GqHK!)S4?md%xI$xHtZ7% za4iz)qvw53wV#-XwuQqeW;ew1r{t@6=ti*9oRy~P(J$CGT2<{zdk=Qrf}it82$mtz o-zdga7~l delta 1232 zcmbW0NlX(_7{~jjovs8Vbb)RTi>8b$CYXo?D@~&!2%?FJVF?sE`1&$k(isvlksyhQ zjT0k&OL_@3j;flo-9dZNBe)|L-^d_wwTNv-~3e z=yB6Be;0XSi}Nl&s|BOYzq)Qg$W-`%@*H{!L-t104Ox4>;Nnm6l?MpHRF$hx;}}86 zSeUB%iI4@xs=pY&i2_7xJoO<_PAckHahR1eadl!sY!%wuAyYHhDGH*PQL&Vp%x2_y zIhmFeQ4|hJ5un!H18Jw(j%}J_dQO%l71GsSkB!|vnN+2e4tnct{gxiWyf**0`U6fK zTPAe;qntvb$Y6km+G|`tg4G89L)W3vbMy%NNQ_Q%)7Y(XLP)=(mui%bu^$_8U>FC7 zX@E_$N~tW4D@mnNOWhwRz2b$CdQR zSY-G1ARM z1@JZw4l>dwXt)S@Pbad&3(pnq)o$@77U&~urFfafQ-_c)==1qw?jcFR)a61{NU>FB znn*KhN6~K~Y|yH*QaX`LU!S~@lV&T8(h{DLA)G;N)6L2H0K&9LI_c9`jr6&baAC7$9Q^_$HH8lV 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 d39941627ae4b9fce3ebb0dc9b7efec8ce9bb367..e40375e34a8c3543b4a33c1989601af2f573529a 100644 GIT binary patch delta 1938 zcmah~TWBLy819*7noFBYGr6@%+KFA=B&LbA728O=maV0@x&>L##dh0VraL)qk~Whf z1y@|PpfIb}Kl>&Ni?ZxPVOQ#l528=LSP|b;RBEBdrA}IQwnM^b3R!v~enRCAL z{g?0m&-^}f>jeK2f9b1xxA@n*!P#o9JX6Y@t>wz;m0GpDuyr|j_iD%cpE?NPcD^Jf zj=TqtSYq7B*v_Km8-D){7A>2EgYO-;g`bm2Mb52C$)uPSvxRdxMS<@;L4MgGiX!Z~ z6N1B$OfKO6x#x4Wvx-WaP?Y8?W(&dt&}RIdZ}7jI#*Ka4QM1T zG|o5TGB0<@)XAopCw=ANGnk9>Z~h zd|;O1hQ`<~#SJD!{D2hQXntEa|BTsuh!r4Q@TSOTj5pBC41+c^gATs|*TEN0-0kXg!{7cPRvNZpW;aX|#wjQTCI}Dj2A<+F99;LNGC>`Y;`UR7rOtGX z`nYD%8^s^G|C6nl`cMt=?WR$IQf2I`RLJ zVhx#C)gd#*xJIGdK4U`B$60{bd9+PVV^t2ol~B~xYQ}kl!=AMt3l&uk9x+sY0%DU0>{6_y~bcy4k&(nK%31%uXl2 z?c~O}Te%ez+!f@97tX-MW0$^o`o@fqrScYKP3R%?TG~)|C1rWX)i#i_T!K%{p95cG zLM*0WsVK){g4i>hlN6;Vbsnac__?Ui*(tzUM|3T7I!d3Dr=_tI3iFI*vcsh#N@*-E z^cBt?iwmR0Qg*Z;n;l6`|k4ppm00Uq(_*HIzkz+_dL~Gz-hcjv&)XUfpFMT51 zb?!E$5yXQD@VfT4?q&aYoWqeMGM1W%3LnRTu`1dPNxLE8i9>#woikJK4K!mb%y=xx zbvi^BHRUu}Pffk_oBtunmIYGPiGPnzTdT^5WGg&zZ$=YLjdV?oYtOvMV={MDxw6MH}W3`yzgCpEX$)qVE>1?a<>4ll)zu|KQ zbOhJ@j?a9seY?(Q?X+yJTnw4cdi5IcR7dNl11;POE)#TlIvVjTjdM`+>V#QWGj>8` zmhvl_L&Qn#N*E7&q1VI10KZ!}L?P5B%1`Mmy$8r)wzXztWq5uMlYF6BZOq6eDVx(I zh(>yl1yEDCG9H;j=tkwdFl}B%Xc!rxFGaN#q`b_66?(l9_T#F8+vrV4Mk<%vkD?#+ CXvX&d 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 d0458d00ec4105520e035bcbfaeec6ca3a9386bd..f3e35deac02df62e99707d8390c4b78e3e56a53f 100644 GIT binary patch delta 1663 zcmah}O>7%g5cY2TyLRm0pLHAC$u1GdacP^BBBd50R3uTAR7t5gRjuN`=k6}Mwza#K z8c=DVLMqZqsG5z`146(JE|gkDLgK)I8;8J=6H*c4zy*l|s1m62cKx%aY3hUD&U-W8 zeDlq`xA)4;mB4Ob?;r7Y;MSSUT3gpvYN}5@MSD3a-~v7Cw1A7+b!qh1)<$B(Wt7WlH+wdaXyY@5)IOnTQWU@@1oN$rAPL* zDjVjuY!VI0&cAD4w~JE1nm-^b+>P-?r@SJq&m{U-NX#2z!~Mw><|6EK$MY8$pHIpu z=W*%QBwh->Z@X!55B`iF-(05-1!aaVGaF&_U2}aS7FSoRh9Ng)qI>C0pbDC5LLDEz(~B&xUrBuDpG2+R)t`6x7yQ zu&|dp+fzXl1o0wD{s6s8vEW^;B36nAZ+Z}XZ?`GiiqOl>&di%{zWLs~m645M_mX>~ zyMNvN0QEhLM%JI6Fzu_i2qCV$g%l@x0wpeshT2u`xu@emmAelw{CkN_fft19vLZD_ z4GRLF7gTLgDDcH1ybQ#0EZba^>ar>?%y-h~_=ToMeNnLv?glCqf32k`k~X8rs%C&u zST=4OdF;j>+*PGNKHbMMGqNT%Y-zpt|K`z{!D>keIUF50a)mnZu4e>Q;B~k-IYnKZ zB;(YyYB;Jp`Mj}eSiP+b*5Qlp7QRaWgJ+~&;iCKy9?1{)QRz$Od) z=Ov(mMB!G*kH(=IEJCw4=yuWOV-N}t43AhPWs?aRrKZDKmyadkhv;>A^g}W zQ=~kZws-6~R12glWZkUrP(`hIg)VB8W4{pQ{NdNT~9hc$1rTnf6$I;Scw$8d+bn>e52(1;eDjy{DmMF zy?6Sn$)>{=(IY!7LRZz?;xOAb9*VIz+SymZ?Mjjl6h=T>@G~^v%~{A<=D_C37%0IE zwBqCZpwr>dyXY9&&8B3Ki_G=TNosxHhmUckTldUKnkXxV2os4R#6dQgYClf=LFh*N nQR<89%qT4*W%^Nd-@Mq6Sg}f9G+~J~6=&(=Cgt`s{u=rVVZCGG 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 d0835af77c13c6e018449966156a2fdd99ca7985..81f67d29aee565e011f4027a3bfcb84a5595fc0c 100644 GIT binary patch delta 1673 zcmah}U2NM_6pmB7N!%t**34dhn%Rw1(roKm2?+=iqktNug4hFWAiAY#;>^B^onohG zRoVEF5I^z*)D_qd? zArppE6F*OV#e_oT^5F1tS+2J5c$Jvuu2Bg?5B$LVf2{g1EnZspsT@$tOw_Pt0^uZ^o;|t^g zikQ~^(h4gvL>4_{%;6jDx^3$%UA2Nq0V5oXdd(0WY6$L#@@Whn96hs4i9JHfkH;hF zsAeREZ=?*f?HBY!wBKRT891I{Umnp332oQUGK!=x!Y#2lab|P^T*)4d6NNhbTHszv zitiun6Y8hL&%@54wo)P`gb(`S#D-8$S27Q!^hx&8D2HUqS91$}o|=$7oQ0j#bTKGn z924B^Lr67n0_>&dU^o2;>jo&Ne3dBPQ;D2~n^K*5Qo{nPMWgTz*M+Jo3eJBZ{J2}us zbm5@fN`~oC?9@S-L&v>J1nq4*ktR_1m)RXG9X=S`iB8@yV3ypR3$5t0CKrR_LI6UXsPo+ z&K>cWgqII|UldN6ZaDXyO_%jEM1P9vx9{nP*ZycsvlSG{yE-aM>HHC$ zW{1Zn&6SfT$1;->sq0hHc;(eLb)^+iRl7!R!K;SA@sVN$$$?EFNu3gv3atE&cBWzU zX;rjeMUp-cdSO6;gmaUEg7O9#AZ8E2#lRKwM+D1(+l_Aw=6e#?=#r$b7)+MNhlAx{ z16rfrS@Ab=%1i13S|X0|mLT4R?NBGIl187x1Dw}vGHEsB(iRm#ZNY;U6%;E{mHNPJHk0m-+1;?a5erK7 zASmobX1#h7Z-NB8iXbW!@qu0hK@mN8^Qb8LPquBgt%~9vlKtP`eE&CleaG#c;fvwx z{e9QMS5jSj3{x9Zr72U=hNsSu>66!PbS?J=?mUVk6s*5QpAfpq?zM=)&0E>Kmh+Lb z#I(t|dLi^MyeP233%E+}{vdlIe3+@_a#fSas-+rwE{8|3s@sFusM=sl6#>I@Xg-e1 zhKXfE=RH(?3hOnkNK6ac2DWSyJl1fdV2qTdTE)hyg-0aYHb)8*;|GQp#uSDHSBai- zm6($dN~EmnDxb#Q3Y|0H>u9=8S5(VBt=dF$nLBXFz2Ih*u%rDM@;|{{0#*DS)+_)E z*~HY?=Xf9c7~h44*!{LaO!FuZP%?BQ{MCv|rxLmBdN@5Fd)7WspzC>3kMadr7a&>m zl4Fh_S0u|)%PKMb2W(rk1COgtXNk8tXAeixPscnYyg8o*Xkb8-OBlcssWmeP|A(LD z^fb_Al}=~--}UXC(}|CGw|SIFR#=%omj0z`<~0+ofFMk%;$w^werPT!plOlTe7#km zsfUFV+14qKDVd4MJ~oj!jBIu*QS4t*SyS>x9=?WCxP#lC-Z`&DY+|Q$lNbbx-m*im-FZadek2ZyODHh4p3y$cd)GT#)^~ zk}BIL;GzxkJ9>)WH1;_)uv_py4U%ZaSEoccF%Q1NcW+Jk^b|(0wQbo8d15EYmKaw@@{-KwknX-uUU8T}B^o z`nZw8=>y{d7&%mj#C$BSWR!18x6;DKlbFr6C(EGxsBCB&(QThfoQx>qs%gl?vPcOR zr}+o0I$bhkEQ<5D?2kE~P+@#WFc7fV#aM>@h(yyg1tx%a!9mPvqPGF&Yx`a?4?!nt z6sbL3B`zK0W^0L9^1RK89Xfm6F^Yn0Ce~fwlKzg6RNu7veapsCNT%E2$8uu2q!C_X V!Do>2z*S2T;fo0I`bg#k`UwrT2yOrX delta 1154 zcmcIjO=}ZT6zyv=wjHTSQI!PwJnWmYLnWzP& z?V?a+Q0kouF1iq0xDq74z>Od-Y!T{8tcn}|fuQ1j2@R9FaMjJs`#AUBbMCqC<+=4U z!jiE5U~o-XC1EJH_piP1)fauQw!DORYun@pAio#~)$z%R*_7z8jv0q-$CsUZPK*im!+j-q;=c^{5`XV6Tbl36brS0(7TITawHtBzbqV&t z99LZ~t*HS>`JA`$D!qXS4!bS+AfP3ATN)&P$CBUVuz+2!{Pr z!P>jFCa`zDLxE5!TS2Wgu81&Q8%g#Z8m 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 9c2d0d1cc803002737440102ea92a1a07898199f..ce0f7ae3052568d71e6359aa1e5d6f889dddc07a 100644 GIT binary patch delta 1643 zcmb7EOK1~87|tZw<{@n!YN4i0ClP9lwMD9+9_qnTgwpz;9@I+NB%98z$tGks&?*uI zJqU{;v*JO3V}3SD%b+Z`Ir6|w`eI8hL@Jw(i;rPPEpHZG=hsbCV68%U1f{vE7rEG}6l!+V9!W!ZtmXWtgcn=c0$XRkG2; zLRhe(92cU&%FZgI)v(ml!ZCWlw~pRzx`nQmCtaHmx=Gu;ap4B(Fn*u4t1)Y>Ro-cM z$WB6JmR|OpK~Gsc&l8a6Ne8({_j++@Pdv_wjK}d#tQYec>4>cA-58dmUJTzTk+7VS zR9#NXQUT}ESO<-!iv?X)Coo60$IC(WrKGg1%DS9W$1}3V@ZEUYJZZ*=K$@z+uc_IT zETeH*m$G%1#=sxS`oEH5jA$UeA-tQ1MnLtq@6gR*~h#atGgIkptpV9Xg^C@A~3Vc2t&up zZ3BlT?qKx&glKJURk+@D6Y8z|EF|9W7*$B$bJ^&vk2%0D1H<@l0b}G-Ey9XCE3BPi z!iS{|+Db!P#e@=uANT!*;NY*xIh8^B-QR&uG;-4naVM+XxScFR13N5j5{}n1c9e0p za|1gSgqdN06XfLtF>UESNVAMC(lJ89Bb5ntC3D#w>h-T=gz#x7I z$A&AHQ1q$1WGZt^bf+XOS(WL*V1Ygh_QTumU)^T6e?#R>YhO9KUVx$U92U*+sA5)P W<{G?Q3OhKbkqA_wJTLdPjiDdtIyh|r delta 1668 zcmbtUTSyd9820SWtb5746dLWNv)x=rEhvRv3=9k-sF$FJ5?OQX-*LU*%$Px9K|Kfq z75_vKL`l$dwl7f-QAA|D2t{B>DO3c#^iVyB(0^u|-BG(xJ1rn35N*R-KZ&)pp%mzM;VgG%051;yzY!`m= z@2Z4!wnyzgu5Nc1*eKPmcQ@M#i*~}b5e}z=YtWRY!Xlb25~i?SPWYIKz4FFY%yeu} zZIR)c+}jK%>dx4sb_!&R);s3Ux!hZ|%o&=(d?!z-P1_1Hjv_bG1-Y#)Uv3K z7QxS}8&oYsP>5;)`j}m$w~wbhAYq0W_#u7(5(fwnvVv;gAf)w-?yXsNICS&)iBM0F z4I)#!7GIXBwvNxA#y@lJi6qLwmWWb8^8quE*zc#(eZn{$;bSFE0$4P=G)7C84Xf$j zB`Z*B?fheqJuAn>Ata@Rz15H;G(av@-UFkx38Id;lC+Z7Pb3j$uOwPxX>>8nZuDhB z92W8Sxk41;r;0-SevUm#2as zFXChpm~VaS`8O-tBnIYOB_ZHkRPY`r%Nm$P-88n+q1MI)C2{DWfe?&+U5baIh+7PE zFsmLRiW)e*I>edBgXJ~J)KV5Jm1RH$uSYhq3Bg~|OC9PR*f^!sFlYh@mCNO zoT37+hz&Iwq(+@;MX&N(>U!2$y>@OYLbJzsp>i*OL3pclpi47O4yv~HQf!0Ws($Rp z9=}!&g{?rhYNRt+JB?7an@QqE%{{7GWWIJPr#E3ByxvHo%tonb7xS4J(G(6>zMwA@&bH8J6l_ zq*B;GDkXg^>9tCc9+%7ds07Q2umsOhMkP5<%eq{UX;o4Sk`5kC&s24}JSPd-$HIc} zXr312vaHK$IbD=B)D~$>yav|WK}zBffEJs|2Ss^e@=C`* z!m&5WV*X&->J6|L$Xy?M4%|JdWmzxtxAva!Ki)}w^av?s!&5;Bc?cmPBb+N{G|l3z zy|w5Tn)$C??~*8=j_j{@5|<0pv6NlHA*$R~qRC@J@MUR2c!l{Hbq{uXlKZLrwJjvzXL*zZJ#qSs}kfy}mop-3`aO4%RA0@43{B_JQX- z8)P2n{<3J#Za2xU^3~`lnL!kXaEg^_JkSQ?f`orXg7Lu?igA*8EY?>Kw?8%+cSTl{ z)d#{h-rHIQS*}#+X<4mlZIi#PW|BR2ifmHb1OF;ZZUvjDGchy$&`bfEsb!U6_z}t5 zbne|5fl&2T+s>#eUm{~bFB_U>!~9r8YRTCN80KMH$k}1bY2iYRx`d(#HYWl>)F6ne zq}v^!tECO5#e}qBAuW3A=fGNakW5>{9>}Ss65KRxlWq*e<3PEZqnbwZQg%Tq*GiRz zyqc5Zanbf`W9;4m&@v#@vKcml*D+_&9{#gGuv=LIcMFR(*n^0WEOCGLq;vtcjewd} z^o0sFm5XQw@se-ayx6Vr2i>0%H}cl_yyt)7{*N>!cHj2wxdy??1}vHpD&q$MN@(yk SP;g^WV{t&DY%~t{&ytrUT3&qs delta 1657 zcmbW1T}TvB6vw^0GwaT-<_Brfel%w3?xY#1;7f#o6%>LX^k5>pdhP7Ay5h`i1&Ia) z3G*U%A}EY}lU^+Lsfh3;f(m-6hYUe2^P%THAcD@FZFbi$q#kzm&Yk}`=bqm==e}&2 zZ51ZO+tX9RBnhwySE#(W*8<5Dy6F|&VwTA_gO5LW2@x_YL?MFFAg5Wm`#E{W-nwf@ z8%ucGDj=2|qyraele1tCz4iN?mm|5w8Ps*4j)Ab`yCSv`zx+Cg>Nx@l#F0l33vN&$sN-=i^4{%|;sSPYn-jYn7!dnf|zuOj5lsnb7v|N;^owW0wSbKw@3Ks?*2*{bbn? zuN{x7K#GdkTVEh3+P?Dj%~wqIv->3tRFzN)0o8+lMjU&ew`hEOMjJ5eB+ zUOF@aF)g7Lq+p6RMkkINnHD(N&m%Rdp$(Dhqw>lG+YURMDytHBcy`XOlwya#0#?9q${cpXdIMI@ELiBYEmu^{tJai`QWn5c_eC-RofIgB&(J z*_O6UqS({^D_GSpisibcf^UmFCro$QDVs9`U)X$U12OUFjqNzG>LkxU z1ie^#j_3P&J>)AE)s2xP?Li(5GCq3wK(hzCs_Xt%WgWK)WrJE_bN*T~!->^6#HKf( z$Jq$j4a?oKdu4usD>x>+zXIxA#B)Fb%-23NPgz{Ta!OZ8%-^As2Wj^g*ao4S) how|$<&6I{?LzG)hl z?|l0`{_~sf+dmGTKP0^>y*rycCB6C7J^_{)ihmgN@6YWL;9?bkb7tjW~*pv1jc#vHVKN6`Bo$lug8;IOH zz#r!9ou7cG&pqA7+_)s|Kiom1SmZoO!6j?J8MO^5fxW{ zhuy27M%iDzvyb*8pN}W!g`5Iym>mUN)-A!_OtHV^c+6uZ>e=Sewz*wy3d&^%c#nw_ zsVVl(a4OoMGit(B(I^nM9!~WC*!H47u+`usyFL_|?`zXn%M8VKdFXl3B6kt!)g^BS z=+zwe_PEPCbAKY1L7#95GdA~)yK#SLo-_~F>(#nV{aOq^zO z+!DZMGsAP}Qa9KnoMY>MfCUDz-5e@^!0eR~8GYRiG!B_=YzMm41(X;2%tHvhte*FF z9Owr39ubW^+y-io#M&h=Z1T>gi5yMl>{$&JtCb3Tx;h5coJgl}tzIn>T_+`6Xkx8V zsWnU0B2K5plj<3)U95RRmXr!afN?-4Z6rNzROuOJ^oA zi>|hy(1r6-&Zr<15q#E%eP~%kd|52jx1!*>i*?odCiFq2O40vJGLy+RpfAa}eE)y` z@B999=Ej-(^Wr7(-QUtz#VhDAL&Jv;xMcW(OJpj%gxikGT1jz_BG^GtM)4N9NeG zVkUx`tRNm8Ma@nb2?`7EiLag{uT5QcSKJ&CDeBu7!Lc1%R*Yk;fbEt01HN$NzvB^dam0-E`< zR>UsJoI`Nfm+Xf0Hu{yHApZjM9g-%StRXAobyZQ-rm8AARj)bflrlTZK9vtCW!qKJQ+8lT*^PRlz;A&`_J~^n6 zY+oUr6Tb2@8Uh*`Vk_}vO7voTruA$vM%d+%*^&%Mk~CuQ*DR0(jVQSghA)#8iIVgp z$t(gurV_3;h-T|{xJ1zt$v-9viiMI)@`DoTT?b7~DLa=K*EH2nC1@0{DE3!e9Ru^p zCRi4QN+ayV!K11%r zH@UIENuTek`y2!fP?s-<)ipBx$$8`X$#-e`a#+(KJ+x_8)AX+5d!ll1pQr+edX|eS z2cq&Tn4z&wySfyqF29|B_go-a~79Qv7amUegnN#h4#F!>ghAw{WP)%2Q6BaLO3j=%zLH%z^#JMJnShN-jM zz%GsAcG30lj%HP`;~IA%lZUq(xTu%)qI-qPjpe7S^-|M>=X9M)Fe{pxZA0D{>Q?o6 zU8`7Hm3NM@4bihu$anDX-2;(Ju7utQz7xI*tU5j?@WsG}Zvz`PxDBFb1MfZYd+#9! zyU+&vcp@tr_j%l{2}R)pI$SRp9xY=!0#m7k?P7P%;)#oK8Y^K((@j@nuP4qTfq#+K vzDYblNL#!8$WPJZ^AKj7f*+g8HLZ$yuniwQgKw$&|1`b z5ES>I%zE-Fcu`8p!E*)m)KkHONIg_VJ@^CS#R|U3ZenbudzgJQ^S$qV?|ZushM(^D z&-?E`?z-o{b-e4OUeQh{ndwSKOOZ^mfb-LMGF{a5vQ65jY$90v1fDT%YFq!sdKQ<1 z9OtdQ=00%TBf8{^c}MoqJAqL_!v+~<3mxM3gjtZPFJ~aCY5XtW7Vy}=@TM|XSl_sp z#)UWZq9{hjkXbDk@g=2X4k1{kM1&B%A`V^`8y!e_Tu@4ispzG2Q88FEi5vD+J5Kzh z&Fyl>225HpvDN~#j>=pGOz(=4LQeQfFAJ=`Pz8t8b-B6=v8BYxMwx?Ox~?5%SwmlJ6`l Us>&{I8zcsQt-4Y>5}oA!03ZI1?EnA( delta 806 zcmdmPI$NK$fpzKx@rkS*jFOWX*(HUhWU$9h$>8i^2}!LenKF4w4_J8eIu?$Jcm6Z7 zY`(+zjFEBIXNohe&YIJ5^iH-u0h}F_m z(A8C#?8u{H#0Bx;X3fSawNo@QSbJQE(55;0HkSqC%gGCQwEUlENM}4QP0A4KVN%eT z(mDlV4p1yZCWARc)-OZO4=Bso!;zX>kdauNSquzCxMhMEE}OiaTZt*-FUV-Y-*BUW z4t~@y8RTMB2^?0WPFCcW<=m7Zn{fyj1k95Ic>@`lCokspWK@|vk4IPUY=(4}A|nF> zP(dtE0Rzxc_h9bGU;{@pA`sjr^Ye=`0|RMtAfKKvIEXYd{=k&?h--o5IkX^QCpMXv zUxFL%tSn2AeKJ7DXPJWRLkn5O9qsbctlv(eB96d=; zl}$S1XlW8yc5;ZIAR~mOB;>A;1GJ)tJwGX{q_QA&N>(n2%aM{=oDAhp?i4EI>S0Ss zElJGGnUXm9myj(Z%VYyynav@>e;FAUZw?ZD%&b-m)Rt8VB#L`D^AdAYL7Iz!2_g$5 S(OI0K2uvGUm7Aj_V;BLHfD11G 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 0000000000000000000000000000000000000000..1f52a29ae6e0fd453f151c85766e247fc9bfe30a GIT binary patch literal 7496 zcmdT}-ESOM6?Yu3?OlJxPGeO{oUQ|oO# zJ@?*oe&=`2z4y#JjURq_Yes$KS`=`{JL;OY?fEu~61iymRy<~&NZwC&zMp(I>Bwei zK8XA{v{)i%AYpOGwL|75_Y=8F;=*yGZaRJ;VwP}xFCWeue4a1dPddCQ8^RGTD|N}w zzV3(PR~>U0n&U1v-2t^<IK3f*q$!wP>h0PZvZ#9!ehP>jhi(|b_N%vN<368}4ac+DQOO0`JNy~g z%C`aYXYltd{+`3%4%rRpLPuHK0b-6fga_rznXjsAb#~gF!kiPeY>%1XzP*#k7pF+( ze5kIG@cDg_m@)r6-z$LK=U3rA7&r$STaVb+LC-4n7?A_7h&Zg!urnRT4l#2_QIRHF zR+CZOkc+ce;SIT5o=P)!v(}gr6UyJ#tkBAv6(@A$5>(v_KwVlvuF!&tgX)=8oYXuT zyEmi2q!3-ikcfqcEFp-#hE-lmx%bPS9|-U-0-1#GyOwEj*1K~Ie|WtwbYFPB`@)Uh z(Tg{FuG8-Ys+n4Qkt5h1COZ=V%i46J<3_3zKtT3`Hlv#cV!SF1C!J`ndV)k1muNtldlB znzA);m}?ug08ckooO)Du$xFq7C>>dk<<^}nX{2YLO<8U#u>Ql@vHm?&{uo^Q5cz2a z9Lv@2`}T23Ir-75GOpXm&I<(VEyQ@ZayVSO)Kb1Cuj+VKfw$d7>5}1~(QMgt4XhJvTn#~4|=g^V# zWCzi?^r@PVfemk5#^lvgFgY_GN+nuu4!c2R`o(PeTx1^mr|%8RI#h+Qz15Taf6h*Z zPeF!HK!Qy^Uy$jO^7vA6uAK-eaQ~SSX%X}MLz79RUPXzr(rYyaWqIb2_FRq8+PRsT zvL=%^A!ssMA!#T<3TZ_OUzQX}gYnn;N`qrs=d5naG(P))!jx-|V+v(M6`cTe^bAIx zwyl!sTdC=B|8!^lt(cep6&U?J2Vt!op@`0ue*ek^mP!H|h<|5&qp#BP`k=Lt#(7eh z{_10y4nB@vnr?E=yCulqQu3p#_%G8bPq_;?9#k%|+0I!UIcls<4>Y51lHQj`-I5GS}G7pS}70V$ih;Lqn-A|?0zjQStTeLtBFUGBcCaNm!W{0Z*kMV`FzB)Di(H|3KJE|SQHj|D-NKi6T} zZ>B?$u}GtEHWmRjV$tcse}T}SrX+9vM+kj9ZKmI)nY#hukBAG?X8kP$)wz^!>6ots zqP)Dl-3~$@CAEmz?f!Awi^st+ZtLys?aXJV%4pXB-%o*WH2r>3GR#X?A8tF5ns|jsupAmg!O5<4eyAp0Dd+ z59MAGg}J@#7`#VUuD$Fmi<@@3 z?^L8GT}92T3P($~0Lyuu5cqXn&zpQS%4?haI*mOiSFJdtDyWgyJeRW;UHg=a5fgNR zM-h0Ps-&u_JHROvS5O;hf8BIrlmYV!#@fDYrnN~wOz?mT4~v934)Cy~m%)+SJHTTr zeT+jFPb+j!rdlcWV!4I}SZ)k_UwFP?rOw;uZ|HTiP|h?v*Ge3yd;6c^&=>{PEiHscta4;b;gcJ-nj6bTn$)Y02GE;q&FL2BDM5Q z=uW{QpXNdY(al~D%@Jy;RGaPk;jov;OC+fjfTV#ND%>Mf!IuSl&pv+xc&>&6t2RBg z6w`k$o1V(CMA-utb{!@LY7K;akBhO3#hSwGBZ_RnliQ1O3!EGqd3fdq7`o>CP+o|R zJz*Xh+!=Bgf8g(&OBYzV9F0*KFy4+4*AalasGjvB3SyR-Lc3*g6g@0BUdJ0yRuE$J zK^!0<)2k-+{wU1@55XSaa=ZaJkR^rZQ z&X~X=mn=vf7z|s8YoNN1(l)*Gc~7pV@3lZycc9bSLwTNghxFD+F6wlG_yrZQqc{i- zVW1>3WGEuyEy_BS0<{FPDhd&}qSDJHxlw7QDv)Z%Y=it^o%_VOrSb#O6R~O`njXaZ7nwRos<-;Y%v)tGw&J1Z(%cf+P<^_Ea G>;4zIqTi|j literal 0 HcmV?d00001 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 18d576601165fba48a2cee99830b892f9f991a5e..4064f372a89ac200ae38fcebf5db3c78d80caacd 100644 GIT binary patch delta 1283 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 Xhi;I1#F+ujYI&6G^1NW4KArypbd?=W literal 0 HcmV?d00001 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 7d1052ba00ed09534111e10d0c9111c249557209..ac05c5e388ae9a61f6f51db209bab252a01717c6 100644 GIT binary patch delta 1342 zcmaJ>O-vI(6z;ZN+b)z6g`%{yQy^FxeqsU!i6)pBJP;d=+<-Lw8JJz$Zt1p>#u)Kn zBFSFJl&dk^4Z)gt_b-T1Zr%ifny4Y-!5BRleY3lzEk^b*nK%2r?|tukv-`OJ{vbck zFDeLc=JR&m{4Ln9lVeSf&Jo5M2~HVh+`nz|&${ z%!zV3k`xuzSoiJX&0>)7-J?x?bPM$ZG2dfA^Cxh zo_F}`r8a{&AH#Ik(dPVAL6MIDLHv8DyTx|)cd%PGfL&__kcY$PY@Q(NW$hS(oV*$STu(l%MLU4xDG^iFj9T#CmsVNsPy0EuRH{+a0#qx8np@HX*a3(3`RQW_YnRCums2U6uKtizPauFY zSvigs1t(CffYSL?rjU^1C=e*ycPK`873!}+RV5ZBbcgpJmtOp%VGJ3K(stKHv<2@~ zn;esJg$yoA+bpyvuo5?7y5LIEKdvFp3=Vrs_j2AWgur delta 880 zcmah|L2DC16wYjRlWfwKBuygK#O_+D$&#c>RYEj~pePh_P;WL!Vpb<(+5|Q|6jb7& zqOh0rt)2@Wya>?-@#0C4q9EeMi&AI=?Juw%dhku!O(Pz9S>DY1-uJ%mV|L}#n<=R& zJ$Z4UB|Rb`cu7L7XMvsK)klF4vGa+1CFC`HcB>=E+Vdz6I;&x8IJb{`-RPboW>2l(xQiF2t7pGG)kS2_g@p}8a(&s1o{D1+$k@8 zhX5x6-h(gcj!SYY+{1^yESLEi+4aP|-j4YI2VrP~D58-;H^uRyn0VqXO0`-QQ&ix~h&J6LV__V&2TYg75t_wYn2^X%dl|7S+^4$hljZr^!O$XR zntSH#Cq>@nmZeoxI0Nd?5t*XTo>)Mu(gvDd?^WNiYI7`vgO`*g95mgv5^F5hb&EaZ zM^9NdZtkApZm{Y#U1hydtW>QcYz8yde3g7B7f&W5|r$)`BOmhoel@_cbl=aU9L T8O9rr4XWbnVauHhW3%Kh)|DS( 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 8cdc5cff93e96e28e8fa49bc7fb94c234300bbd8..830edbacb82eb6d24382a2d3bb0c2680ae23190b 100644 GIT binary patch delta 1199 zcmaJ=&ubGw6wW5uW;baPiZ*DI)=7)DjcrP$hfqBTYDJ2QP!OaN@?+B3HJdG&1RF$Z z4`PJ{EwlasdY2-(dQ#Mbcq&+gVudKEhbmG8LD4sx-8QYzJ~ zktkflwL}7qBc)XFBZSz3+;>?v!g*X!N=il1OX;FQdDnvr=1p^eh@{Pyvws&RtyHkq z0yK{9qGxOVXxMMLF~IGp;IhUx{*CRy?$R&v;__5$TF8xBY!G^QS6CxgAR+HDtL_k$?-xux+>Y(0R)1{7cC z5xWu?7DTofI44}*0=u=g3>Ysw=QiLoQ`B%ui7GSyjGqmy$UA Mx9Up$Ki&Eei3VH&GGt57<&R&Bn>PX$l(;ITY$a z{K0~RH~snPbO={K%f|udF`M&RWJ~Q)e;rm%-LwVA+ z2Fe3s!gFE{HjRVg#fJ$(YiRb=3QiP*Zm&hL2I=#8e3T)?2gIV!}0gU$Rt*(GrNvzHrD*k8Zxva z4m{0Qh6i(|E^!QykYX%hU*zY1r1|BF^K}D|uxO1Yi`et}->SgXUZQCMO+(tZ)3Pk+P&pwL*t_9{X7UCM zayIPduR0-$vD$3}z5bfdgN|smrXQ{R?xAjkQ}JZe?|JQzd+^4n5gDV4$@GzZLN=4b l=8klF9c@7$mnhDzdL3VwBmD6|2oEDx#?KG>iFIs|`~te<^NRog 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 51e4b10680f6eb844a67b494ff72aa7773dc8211..9dc41afbb7e3fe2e9e9427bea23555bf4334469c 100644 GIT binary patch delta 1221 zcmaJ>O=uHA6wc;9*(R}Q3vEq0Nhxh(8wvKHX%Pf%5w%e0L9rp^XVTd<$%gC(4I=76 zP*{aB>rGFBc#&Fi^C)QbSPJ%16s$t^P(6rVJosjRV%lPJn9O_o&G)|f-rK#Ocros} z<$5^SyXd;x*)t{8%BO|wLM>ZPkgPnv__%jZ(zd)3;y8PAo%_UbPw7iX)Seut8;;|? zGM33vw$MT6P>^jB`f>qw&7$*(V;?x$31`(aBwH%t!UEPvnpJ~dRpMWG@nf>gb(AoQ4o^q7Bw`$cDc zarBe)kstLO=_c+wnxPO9mCo7SxdBX%(clwi!7GRnWY_)0rQqN`SDj)W4Lj8|sK;Q9WoQwYE&vLWCmW<7?fl>zFM(*UZ(s;P7iUK9ETgm=sT5DwknU+d8cFMWd)% zlk!-WaRKETs8TOi8wDwkqEYL<`(g|mK*18!mi6ZL(1_d9B|e7)NLVr^SfARkF0LA! zMsMJu>XCAy(x_rhTw$TNfaSay)AeAL&W0x81M?u%W9R-fpLK3J-0uM=uF=J=g8{a^ QCzB|=$>Lgbxoe*L3+>L8xBvhE delta 795 zcmah{&ubG=5YEf~Xi`m^4K>Eb#Ft=gvNTmhrBbjU6e~jY;>iX{%+|@eX@Z*`awxP1 zL18_Vc^(y{f=AotBnX1wNkkDZf?8}3;@@Bk&a>TAQRw9{Gv7Dgd^5b|Q}>6pdF?^) z;G%YyCGcA?vG~;34pu(sjH&HUY@M;^_(I9B5nNM73@AC%R^_I3+z*hegZ+Lo+zBR# zH%`3vRdq?(TVbfv*a>_E(sZx;RRQTs44;HP9~m>vTUN_7dCqLkHXQ3(b*4GQ=_#6d zUMS$B@L;~3Ul4O52byf63j~N*Bw~Qvef1524qZh7yZ1O>uGbwp6UQsP zqbDSogH509>86BD@w+MRsWRL3W}lVwQnZ16TF(3P9&v9>ZX;#Kd;Uh{8rmu~oy7OO z*)V+B@k{lrl7!b1$9GW!l}H*N8W*@j;$Bz1Y&TmCOV~A;hANhOV<$&7);Qql6{}gQ zI-&#vMd2l;>$htae605&#!~cwS7L{PY^nXGZ$mjYM+$a}9@h)clxmjLap{BD61e9= NhW?7(YJW^jv0o9c3w;0p 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 90408d4c3ae8eb483d486e25877cf9b9251139db..bf1762847be7822efc8400c32e79a57425a081d3 100644 GIT binary patch delta 1167 zcmaJ=O-~b16z#M#w9`*esUWmW!Nk%CN+5=GVPYbnF=*VlFqozvuf7>Nou)G=jWN-M zi6pa-ym8@z#Dy*qO#guix|I-J5Yz>ls0+b_xYFo-^FfOwbTPg6&bjBFd)}Lcf#qTD z9{2cp=REhY?dZ5tmCuXWo7Jp5h_mX{{6fdRqU+^KfMMMARc3=>o{<-xgnMX&y!DLo zGE(s=`XE<)C&DxsG#`@?)vvR2o&(_Vy>L1`a|=~9G;84aB{zBM+clb}G>L#Ycta16f! z**<`L2MDkG^QEk+ibWAso9B6855p7})y;U9Ns2Ho7tHBTOCg9T5hb*<03~ zt@RklkC82&V{z0a~lgDpMdid#sfpzL6v5Bl5jAD~>m?S1H=NAxj%P-1x$xKWyO3c;ENG#rXoSTu6W%Fgm zJB*CmCvRX@WVD$4jom^pBQYl}H6=Y&AI6w$&Y>;^;{bI+r1d<23|FAK&7Lfs%!EzQ zf@_2`U?zZE6JM5ERFYaTB}2}eadHjE9T7tKm#Q;mJf6IeON)0?hHSn7s504+Pgmq@hIE!9 zBLf3aVJuJ~1JEt^CdY6~a#|=ASo@Ft5`rhgtM|NLFUQ= zot0$@G8fsGVm%fRC(h?Hnat16#R5_RawzL2pmL+h>-m*g?}8jO`9HrZvvkJM$qRWD zCI<@$PF~9;H(628T_Fdkp@%&`DXXNiAazPsE{MyKl3JV$gR zIQg5P6)>S03Q00CF5c`d@|anz7N{kw5=a#HaONfErh+sU1EVtwB+*%%p$LrGtjf(H H5;2Sbgg5a- 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 d013147e311f4fc79a36d254aa87a83223128306..20f9c63883771c28b29939815e6b7adf928c6855 100644 GIT binary patch delta 1324 zcmaJ>O=uHA6wYj$ziqbLP1;DCG)@eyZLCmKs6+>6KC`)t{M~qT+iNh0Kn9?!MqzU z`N}IV6THEubv2hRWy&<`b5`+HGeHQ&9J6os| zeZ%XCFUhXqPTQH z(x}GX+ts;h4{{@qExz>tCN1e=(E&8({#|)YEr{iek`tk>LX$^?QXY?TH+V}!4|PWu z%SHTzYsU|`0nm;Yn@>iM0GA6zSc8cT=n1Uyp6W|oBb)ny?MHwg|sYh7$FYRElJ$YaE$jIVBPHG4n<76Gj zF}?}U@-29fPk~WN?Yn7FU&CvBn|ZV?#JCMxwx7tpg7^4@FJ&vh7lX$Hxycq{-^^!1 zJQjp81D6?~Eu0F%?jJUthm6B_6h#f>0zc~tEyX?PH`ZGEz%milm!yLuSN4k#hh;#* zdX6zPqAH>}HBW`^LDu;*2S@fg&{hRG;Mg+Gngn=F=(^-gwp%U-o!CZ-wdOHwSiyd; zA5s_3I9eSc(pO13k$l;~a;Py~q82tFay-4E2=r#)HNq>q*M0(Fj{*oZk&-ke%2ii-1%8IgD#mda{Q)HHDlW@n)? zT`bK`sW}*r*FE_!#N&ubP$h*^*e5cWLOG61AKi<49-*uZFGy2CG7}wj0_3%xR{!)Aps|ILEkLGE4q6 c!>?qDB2CfA=R>9kcQh0yV#s;T(=h@50&GC3%K!iX delta 950 zcmah{O-vI(6lU6Pw=I;VG%b++xPpXsp(u&*f(L`~q(KsmF&a{q?!xS*?Ka)5B1s8o zOf;DbdE?E47rh!%IePHm$#~YIK!Qe+CR{WmK%6Nc1rJ_!-<$XIz3+SP>*(4gVNrN- zC$=m+gLSdD9gC9``-$haKIc$?Z{oR?jUYmv+BRAc21wX0VWT)V%%Z~&4E8iY9>?%Cs7qZiFV2SWClbgyRxVpo%Z^R)ms;5O8KEDr=2y@r)ZMQ=EPn%515aG0 z8(vA7HiTMQ*xNo%;9pQ^mF35Z;#he_kyFY{-cp?**(y1PRaEmzTFzu-SZJRf3D5@n z@98C4r70|srT{pq_QR0$Q^eH`P7Hd4?ICkU2I8KhU1V8cV zg%Vb6!=^z0f`VUUWGI{k>5gI;` zx+P_Tn_MZJyv~#~!;lU4`9h5%ybqEXhpARidiOX5?{FfF!rsx;*vq9$nJ!iZXF@|L z&&R!dum{uNy%Knm0Wf9EPUfC0#K)Rv#;u~>SPAOvk2N-uGA}e$5U;{h6u8mZjg~l! ze5gv5!!#=#CCY(3tQGWxTTvAlSz(iroNpp&8Zgn(>&3h5WOk1D3cnjiRhJZDjagSf z6?@=TBrU&VC`7cTP3KWbr{*emeVT6P4t;nTnTrswraP*Urz-BBq(q*v$^{LU192FQ zCXfeKI^wlTbPu_|&fpzM_jV#+48JRZkVRUAm{F${#v4`I+zbMxwGcmm=F;_1$FJ(#(SA0o+ za(qEzQAzQXjMm9zZ22jiJ?zQ(xw)x%B~vC((QKSjJ4GXdwMSY}QK6tHKRLCyI5kBf zsZt@YG`FBKB|lj~QE^HJd+d}9G5l&;r+|#gkj|K1oRm2EG>anZR3K;49kk|~p?Xf{r%ouZM!+9R!~s8CRppPX7;oSLGLRH=|xnp;qrlAo-g zs5m8qJ$6cl7=AUaQ$R*#NM}qhPD-5ok42GnDv&d2@?z#mEW)K=A<4;!Y~E7qd)V`n zvPvooQm15W=;267El!4VCLd$Vo@~u-#li$tzj+e-Uq;5KnO zQuBJ)^OLelDhpDlWX$j3NJ%YDhH@sqWY6a6VM|FZNzBZdk~lep!wRUmpF@&~@#^N4 qTo0IK*JrFQ?%~W!%uNMpDV|b0C1ZVOafV{;6pf74o0suLG6DeIEjTv- 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 af889bd7d81afa09416a7cb4a4a987aa9c92f0ad..82e966e0c0e15d021c55b98e3e2cbe20b7bb7387 100644 GIT binary patch delta 1475 zcma)6%WD)#7@v+a>FFL5BZ*0L@~H8Z#OR<$M@0k?mId)BB-x~Ax{|79`ayS(Wf$hzk2(EcjLTbexG%Y?z*|@AdoD_x-B=-rqcu zxth82Xm}-aqkrca*SAkoW63w{B6Uo>JiBslcoTE#j~6|P($##YJV+}h|ImH17!r&s zuJ7Z(a~+d9OXvdjL%fWriJg!xQtSssLDV@x23eG{_h(Z0QT4gf#k;b9Dy#gj?DzmX zVbV%CL!Iy-g4djm5aN%up+*bNGbjM*@e|`|Y@3M}sY65RI`dT;go2ByYvQt)BpK2j zanjhphM0L8V!JJn9o+zY3P}T$H2gYp`9E6r#CJJN5{;!p>~|FG?JUTD(RM3u_^tFV zzM%Gvz9yq&m5lw`NAl!VtqcY9uMGKGc0}33f7b>FJ1~<5N3NZnuInP+a-RIx0_oQy z1RW4Q^K&Z7e3V%Hu#S4x+R&dzzNg@OBER^wKCvz4rh@Ge86jIDdrjZoAStE>7#r2V zZSP&aWaE&O7Gg&8k+v4(=uojGif0=J@-kVop-ppJd6VSd^}vCW-S`$IZb^!5^>C!i z`DGt3wsEs2lvJvv0ksN4_l@eN?m^buPJePrtasEpENjR{}faNQSkMTZh?N@D?xAkR<97}gJzT5)X~&OZO79Ox%AWL8$3krngS z`BtSYC@!iXMc0>zPL>@@B0zW6u6Qxtu!f_2a$7c=jGiT9XKQ6^7K{lz%NGjB^W6## z0&Jpk9XU1It3zW^p^zMpAI8K}1=K50HYgipTwW9fnA{%zo7y|lxs`-Ubdtv8HuyvR z%wFpbBs0}5ThYL*yKH%C>mUP?M#fpw~`@I=-QMv2J}nItAI7lbf2USeZpWZ8U^aWM;H^yFGLd)4gJ%3_7g zJcUGsvecrI)Cz@^%;b{H{Jg}XO1&u=?6Ffa#CpIgrSYho?8|xe$)`Ew zRWjJXTBm6?PN|)uk-^$y1Tr={Gp|GkXjw_Dg08N@ev>CKUCPAMh!#P6e8AXtDsm!sJeFb!O>|6=3##Zo$b+0x8lN z|9aT-ld?)G3sR?K{O{pNNi9x>awc~P(^b 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 8bef40e1cb2e2dc6f3e36393066a6ba288d049a6..111ed9c6943f2f743e4c2cde3f6e7385904d5d6e 100644 GIT binary patch delta 2241 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 N`W7g^`I|yCBLGk?u)Y8Q 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 abfadfcd75e20f204db67cc7d73bbc3e4c108b85..9f5ab2fc162bc2418634e11abc3c672400a67d35 100644 GIT binary patch literal 8839 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 Q>~%mrOlH>)Bu{XE10z8}egFUf 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 eca3f9c30bfd1706c4221b892978c261ceab8ded..e42068a6e5bb62d07f1f6fec343e060f2427e746 100644 GIT binary patch delta 1538 zcmb7EOK1~87|y16o_sNhAZ2QeymGZORIbaqX$A)BB@)C!6S z3o5go1uuf2MdMYe6`!D1O1=5OTF_F|gLqNFe|C40ML}>6vorsE|NnjS&A&T8{9^+@ zAzUh7k`aVoz}|o+f!8>faiVQ+e??8bQ@sxgZ{pO4YRphJ!wY z5Sj6<*hT?EKIWM}C+4M+RF#xcsvxPLu*>pwnGHiw>+6|3h3lSYbe@W8jO~G`Wf9+62jlvd4u2JykBb>9K^2X_E*y089(%y z+JO6Zc>uBq5U=LT7SgIJ=@VOPJB@Or92g$3rt|7sL{zrlI-yD$87Z)_P0U3 zqn7<{E>G@t3^bglTv^zQx-eKTr_3pMFDEFjgZb`bzOx%Sc^@K^^d@j`0{111ZgOXp zVo@yFzeOz+iJ)>t$%?8f=1^uFm1@QEcuvWpNTktA|H7Ef1&Su&aB3!v`{_qco_M;# z_yA7U@EZ9#>@?*VJ=e>G!cTHb=O}sz5Y4S*B)&|)>@Oxoks}j+Rizl y`@;2!u3wz`z8u>YN8Fv3L`l*lNsLO#@r)D`J32&|_Xe8Ak`ro1oRlXr@^q({sV4tcHLLPS zdVI7Xv+CwcXsMK(Ih#tVaLru@C%m;a-Tx3L=l|Bis&J&N3|@JI5#DqzR;0*S@i9$A zh*8CZD;iW>_@gCgKzE2yn~rVMM(U)YAsQY+fkzkQ3m0izO{xYMR!p5YL0F-jNX2$Y zBp(dA{DQv_C>9ep=D_6ESi;Tb$;5ETCskls=`sx;bK+GU@Tj~+Dq}Yb(rqoF5L^~+ z(z_$`13NM=Fw=W>^cpDjGSiDHUVAuXj3u@bxA(C!$S#kJ&sdBHaAOC?Y}?LQ36}<7 zEoKGygY2n%2$O8#cx*_EZ0L^+3R9*qbqQJy(e^X6z9L$4(89Va*O`V+By$qCiq)XM zV693Nez5t_5=G*R29k7kj3n^ef!1Xy^1?0#XkSn6iKdx(;KV8KjlaER4OU1NuP*%sQ>g)__dQ zDB-&jR2Jd7zr}~Cnm5g7E39Gat9gT8L1T$Ikk_zMeMJ0#{<=GzP%<+YWkdPMOkq@3 zNAfld)J%DG*QlI{CsRfop4J>D9KLal+4^1E#Nl&f>uNWgt()kltmBued&c7zWah2n VyQ;817F61VPpq<@jWnDlzX1R)^$Y+2 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 c5794dea881d3fd7f3d24fb8f098a16b72aa752e..405ff799620cfb263119a8054a834eef4955cf21 100644 GIT binary patch literal 8693 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 ZC_*nteX^N8ty=IY*yVA7-oa_N{XaRVVN?JB delta 473 zcmezB{7RLzfpzMAp^2;=j3Sd6*+eET7M#49RczyFMn*=K&1V@eGcsNZ=kY+xd6f(Be8oB=aIFS9s4HMgLo za!Q7rH{;|<>{}RPC%bdVPd>sa$Z3_7pP!?ktE(_skjvOMgFSYNMh0gO2T*-RVsU2i zl*v;x8>iF)1zCI8v_NXLrhpV>i1o05cvD)ZK%}KJPEY>GD>Ye6l#?2FD9x(^b 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 06b60dd0e0ad3c748f8feca8b7a1708917853f6f..1fd239ed17f54227a624f01eccbfd1b497c93140 100644 GIT binary patch delta 1234 zcma)5OKTHR6wWl0$4p*UY|tjHGnLkM#Au-v=|)9qE7Dd$+?W#cxbe=I$%ITo8${5B zpfHQtJN^OprAl-qQV^^wSH-ThT~t9u)P?9q!E@))rWM32Ztgkro$s9QyZ1gwJstAh z^xZ$&dCzxevS(DQs%PZv)oNBv$$C0d%;r%#qm|Q{oK`Ovvekx(1Jfqv4E7?Lt(n9$ zcGP&R8V}TX9=(n;Ok49a^OIo~$oZhyHaJB5>~T&-IzB=dGQ}Q@(oM=*CScc`W0$=D z4<~c%UZ#z7aBp^}B`#{+!^ zMwAHbC=n&K$+o1lkU2`5u5u#*5|Tkne%uOreM*nbdYC*6`GPQ>vY#eS`IF%~KBROx zoydAfhHa$8CgduzV&C@^3E-H)O~bgW6Yu>Pr}0|TFZE=t{;Eh1hN$9 znrsJKE-TLHgYJ=af`lR@>p7(x{#=&7%pHc#BP@;^!vsZ6ve#`M+t&zi%+kbmUzOr~ z^uR9HR@x}v0;0|;87E;`{T33F^U>az?IsV-zracCrKdy2qwPhwSAo2yst7L8){Qq3 zq9|0VS{~^-DhRoTP_C<$MnTI9qUieYPmFC3bYFyVbaEw}Ak+Rphq3@646#UuaE`dk z8fGRsCM?58BcSD!TBCwYm|x9j?Hk^{Rlq7M eu;>O?&Z>x3=`|N^`j*&HMq&XOUR| delta 711 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 Mm*)jqgVS#NKQ(;C_5c6? delta 553 zcmah_J4?e*6z*-3rj52*rS;J^O+ipARUCwZI{K`-I*3SWZoLU;k@MTGF+8Ax{TJi1Jng&Z%^%{?FV$9 z)memC=Lx+cbOjMUg|d+4vtc6Z1*~k~kp_SY-{0FH!%Z+teN)uuEU@?9{~Lyy!6s-l z46Ei^Q7)+kLsx7f<`CTS&xnCz|0l?yrEQ}5{w73dBf19Oh$r-;AkJ=S7}?o^5bHe z$fj!AU^hqj(yliR?ZIxg3wb3Y6p`cH<_!p5_XNCP~pl KQr)Tct)OqgiLXxp 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 9cb35d568b3c1025097750a4d67b847ecbc19bf2..0869bfa65e2f74f0630c0b7974aee950d0e50cfc 100644 GIT binary patch literal 9109 zcmdT~?T;iy8QRYp6<4* z`fewYL}MHIZkQo00qft!M59nW@CK}^6e@|8Sboa1t+-)LmGP6@p zKUMWSzvrc1p8neGTW{PmW&ZT4jJXK++OF@1kYtr&S&`?Z(Pl`cvH_Rp#oNUq(Amd zlnlQh+!o6cAjepb)r z8eGvcfe2Z4CGEO;!Br{|-Bdwy()6tGC27_00#`~9@q0FOhxXUJpT=dQ>w3Eh>k&_? z8_Mm|ql~Ze4Zg(h;%E7$4mvyfqhz<^MZ?&Yj@y^jpAb}b+*ow_44kfF ze&uP~xA4ez9jl7^?LD;G&*ok5Vzmjkg6-9yPdYpB>Gy?Kr=b`q4540bAxU=`EhdY7jc49*&YDWsib};y^ z+h>LEb$nO3QYEQJ@W~GRoSUz9Ji0_a39ktIt*FH)J$77T`_w6{?S?4=`oiA4@m~nW_p2Sj=BS6%dGAPbHm6_DFDwO5JkvG z#(y%sSn*LfOfL-r3&EY02NO2Y3yz9B2bwCG@f#CkOo0Ddh7?NdcGx2$im-i(Z(2-& z!joh!V|^QAUKFb8no?a9ngl%Zf6S|(-}53%L~qnm+*SBuNG_7Mglv@yM7xO06Y-Y5 z^!DMtRJAJU^cJ%C|5LB*ra{U4F zPpDcw{F5#2USl@)mB5NzU{CA&_JU}$wy{iw*KMVkM=-zTjXZSlMPj!DV_SVFWGQ{& z2Or26`1g@BW-1sr^#ZgFd}ktOQKEMJ)YH7mLY43x6*pDcdHeI3(%}(=%=$!4-igxh^DY zFW5gTbyKhUtS3T2o^mKQw@vUkSfYkinI1PX9V^d~ve34321&g(@C*%H0Bjp2x_>=6 zy6@%4t^?&iTXajEDw^c(P)6h@Ke$qbxHr?aRPLWAR}Q()xXmJz`v-Q*QWDlr12?JBiY#0svSF-7HHsHRlGR7UPK*}7 z8rxS=*Ed8Hk?lOizFVaI-0A*QwDlXMaQ|Czb5XbWU&gY%_92nYM434o#4Pl&`*rqk z$g3Lt+@z#M%4-D3Ux^!3md;6!x|Sa&#CPe42E%ndu|Y z`5~h-jtw3H!?hPQ_6TIsm?5_|x#zbkl;xsM}T7#|Q`3CoaXYyb) zcnX3SaOjN-7g})=;pPa(msWSw3e#ac!iKYT;ev5TY}1b9vHN1k!!WEo;>cNtuQ;rk z<7(@;qHf>@*KB+TuTs<8K3Cd} zFtW9neZ7?bq*BWW`{30u$}dG_P9j@8Zsej0QhxF*CDV8IP%6u7K|4b3loz3yxml*W z%NoU-DfP3X9I#(WrfNdv6F|e#E=`7 z!U9G?EuHH^aV+$j4B07-b_?4>O&LcafjBr=|p~I3S zN*wNne!vpoOroN~pjV?*)km2%qhxw>;>pAigP)RPuh?-*8H(O_)gMfB*5^nE37|M2 z3QTEhIdH>%iYgQk_iRx$*o|qZ8hJ&}Aw+tpmH-jqJE)2E#2%`J zdc{pu!VW#qv_81F}R>kBWrtDCu`HeLHa)0l?|t;uYpmrt-+*oqHd67eL2}t$mb3*^Ju?TwzQffpz+_Dn^btiq?k+CR>rLA8IOFgfE8y7T=e|BC zM|cHb&*7ra1AO4WGeJbIza)pKU13p2TuT6T-n4Dg2_nzUq22U2ib@^~Z{rOp8wk;R zH;s{g>AeN>GD4mQ_TfE|C&C_lphyhslqzJ}o!}Ega^4_vZ8XyB1iKl0X4qvuLU;rb zIK#cgzP=rY19ulE6ITQd%FL*-(n|%e>$UtP2{>!evuSN#pJm}SdM!cE+jN5Xg)3tH zFf|m%-iDZ064oFTTuULV;(8r7&h++zUawK9tYF9(tv7Da1rWXC0QLqE?eBp`j1Ttl zC3Ta?w1g3pd9W|}1-v<6o?~Hpj6a>~<*N0}aLc&qF|JM?V<{A*1)r6>O0j%cvS96D zHwwlMVOVdQAdb14wGo@etftd?ZG7b0L{WmjeR8b)30-;kh{}`_1PZEN6a=wEPiNFG^l4|JmZpivLlhnwIW3sW~q6obp^~q=Y)N8?~WS8d!T7%PW F`@d6r0384T delta 491 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 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 5291475b03e1f04532640b86deea59bd58ab55ee..00b9b675aefa9f885136afd1bb5ebf5d26964fcc 100644 GIT binary patch literal 9737 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 QafTw$hd}ww&lI8=0mX=^ssI20 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 9b369a477a0ea6b0508cde7d8ee66136d9a63f81..28bd1138a407c7728989c4d739e326a900f44a39 100644 GIT binary patch literal 10059 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 delta 525 zcmX@@x59w6fpw~^#6;E(Mv=*kY$6jE3r^n5Dz@=7BO@cr=Ch2K85y@uUdXJ-Xfc_O z-9j)UF()lGB|TLi#+dBSt}X@R=)oBtKy|J_b(^hNHZT!3K?AN4&VZSqmsuQNmY9>7 zG9^RKn{o0a_KS?nlT$dpu(D=IXY8Kr$Yncu7Uv>Hw#l|!H(A+%VlP2rjCzyLbL&oS z=ibK1G1-nMhmm#iYM#A}v6C}-c0If|c~4^_qF1#$|kQ-K<7CNJPup6nxFz$~4m1ZJ-j z5ShG4E>*DtXk-t2eo|IRWkKqctV$4u}qO&+d5$Hjn{N@j; G(To6hZKy#2 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 0b47b03d496694516adec80586ccb2c1e70601da..f0d62587fc5c0d114fd9afe7eed3fff1dbd4d39d 100644 GIT binary patch delta 1217 zcma)6O=uHA6wWrApWQS`TWqXN)9zYY)1c9Uiu59av`V!_5J6~3^D}XF&F+Tm);6fv z9t4FwRA=?>SxS+d#G9a=JXLzCic~>G)S@Vef^T*=ZLA>XF#F!jd*A!sH*d0%zH`7g z=eu>g^M>!*s5q=ul%rDiTqUcdC4C}u0aXk%JCVt2s*3UkDp)u$X<^P}Por7GB9^%& z#p9-U?mgSiFio`&%y))aBqxGm)8Kxh1`lxx((zupka2cbgc@mkISE#6fqmfp|8TOv zb}&t(m0NAwmr9*S)l^Ct5+v2&1wpvU_nqO)XaN-^RWc+^&6FgaQXZJME?Y_L!+y7y zZChe8l7W;Dq6Oxg-_AKoy0Q`5grD2bpg~45eaUaU6f1&fysLU$vY{utDY{ zsbe2;0zbsvqd^FH4aqG}iM%3y#n+)3!H|tRyRn9@20q8})hA(O$JA?ueR=LeMK?BPhw zEyzeL&MXE758M(~uqz-|i}f%AorGk!aa1rr`&x3`jIq;qjc)7 zv!nXJ{m}J)DX!?G6Ypc+ZP}YhoCTFcLKqRmqQ(h=fM;8x_#o#y$?Cxz$csf$6Xjy6 zAgZ*3otKSSBMv>#Yqhp@6DB2UKxzQ${mm8d#g+)6_eSE>7Y!&)V4nrXSGfJmPyC2W zgnqy zdxHrD@gcr{1o4c+L0Kqcjj7&O1C!Nu)wV&8kba_m(~FQ9^f^%vq1?^iuZu(7^MM`~ zMXVZlu|?oN*O%cZycFzW%WxN5AsRl=2zLj3m}yNg9^BtL!Aw!g-WM>8j!}|Y+YTc1 z{f3gMj4T(-4ZP0B$H_(tW9fnl1X+VXIWMXp$u&MTJ3iX!R%5GntWTJ9_y#|8pfQaz z^WyOP2GC7`wz;*S?k=Lb2kd?7B>MA2e>sDq delta 681 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 Y+^!Srq%(b*)zHb=rG9~8aNKGA2c_xEy#N3J delta 1171 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 Fe*j4Zel!38 literal 0 HcmV?d00001 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 8c5712eddd96109658795725d5724d7ec526de80..d5ca546305603e24bd19b309bc270834b75be26a 100644 GIT binary patch delta 768 zcmaKqU2D@&7{`0srp?PXbOPE^N+bKlwgOv;y2M-wky1*dJklHN^S`iF}kv01)-=Y3V9@y z6><29p|~D{5FM-Gy5(A-<+^Le{X8`G6DxBEw7j1fKhV`)%SenTUiOUz zy7?StA;&DYpHa2L6v%5(UQ4)(rsp`=4TqqklBz0A-!pL#;F@Bz6}ROy+cnQrRQ310 z{MVBn3rhA3%47mVhYI@^WLG>{ftyfm!8v=HRt7l9Wls0$QHLx_E6OG6h>D(JhwUbg z?aNH^H5{0IO*)cG_>m=)rH7mCX(K-oYV_8}j&f(OQLnvBUqK|ex`SCqK>r7u748S1 MQXG4^S0AsUU&@&O0{{R3 delta 548 zcmYjN&ubGw6z;g0WH&@siH4S>bt~AWDebv<=&e0gym_#M?e6H?CCP@&#MVO~9t6b! zsc%XTy|fhi<5*TGf(R;j6)A`m5!C-e5S*#j_VW0?_kG`ckN0xo-8k*jwZq~neL_mu zxG=c7>tad=4?bFiWYQzjw8mwTw;^h+OtTd+{UBn?K@u`0-BVciTLB~;{6;3PIvsXT z_?`PqC|RvHld#)h9KTqett8c26ygCb=d&7yNucBmz92JKR2L?p2W6Op3Rp0_03!=H zOT}e)Ci8WX1ogJx5nRD~dQ3+N*~7k5BRjZnZDe$68$aZFT9%JkerjkeFm z8kKC}SYh6C$-scjB}=h**k&reWT+i79{l4d3$47&hD`WTL;3itaFb;8%u0Iu;%`Fc m(_8LOYs}NJxS|V}PRnmH6XyCwu@Rnf7}ej3E9sr$UGfKZhrqx9 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 d07e14491a7caedc48c770b200bb231bc5887c0f..ad24a916b68aaa5f8ba8aa1ecf504a38b816567b 100644 GIT binary patch delta 773 zcmaJMj|w`ItZuxRL&*2$d+&Si%dq*wMfslGds%)i zze1xU9TRe~?D#ghLzm@q{U2y9Ps@e&ql3y=tQk>Y8LehJ3K?wCy~202M?WZMQIBrt zcjXbN!VbNmY@!zetsU@sA7yslP!Q8U*B-TNW&P@ zx?0Ct_F+)G#W-`!CTouGL{8w-+sf2@c~~2QZ8#C}vYIQ2CcUCAUCrugiQocPlp@mp zham|@I&UIQi!GK~tiorJsQzh?roxlGPZJG&WTrzQvAz2@;Sx8}kYFMfA9Z>`)6iF; zINlp5s$B87V>am#nxY>yNj?%I=(dK(-(`lr&9o?Qc+2YyARlsIUvSFL2Al#%p2BI! zXWH&Q;oyz{VP+L(SCbq?EATwxN0|_DRo8K=9atm`iH*%J_B&pyYX=tA^*?+1Z%?{D zsJhcAmkZ4%%!&U^zoAp~msG5{lN=s;N$$y{u#X;6sdNor7PSN#eIwEN;4A8~usUdjI^1l=f5vixhgW$ASk>wuH^@=-Va9hRj6kAy5y3 z#Q~A`q*tX-y=loo1gRDAt_U8)ll}?*1J1PmybSOA-uHd)@n(OTrtA&-(PnYie#2O9 z_?}(0rc_aMA?d8o@pU+$O{?A_p!RISm@;(m(@ z+_M6gl&yP7{P20{sB&}}XA!A+yvOEGQXghu0A;ug6|kVX0%uq7v@MUredRY~7B#wI zPYQx9d}04!&v4bNvmJb3ZRNCS8`J!Ny)&fuR^vUW!Wx#{a}(e|evRPi^c@;d4Q#d4 zN`wq%X9L{#7BAMoQ!a0JAry%qq(3sJZgh1zaF?1KKqrLi+d*z)jN;kz{%XiHkr ck5FDGY;$82`Z}p;YzjE950zGiadDOX1e#*CLjV8( 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 c0b9860bd8e903e99a535b7e2f6c213d5945e50d..98900a96d7212e5bafc7952aa47a79478d3014c4 100644 GIT binary patch delta 1817 zcmaJ?TWlLu5Y1g@{aAZryYZv(gRE1a>5@8B6ai@z1*I`95&38(1hi@D$GUe{wViq$ zAQEXBBv6qosxYR&M+M>+p{fL_{1ikbM87B%FNu!|DO4&2g^EZ2c+6ezuHz)&pY@$N zGjrz5-PzxU-x}jj@vpy{TH;T4Z_QMyrM+tQST$Qpmz3%;79fgzL zc&8vq5)6vbxFE=KF`HL(19M!}YlqZwZOZWX3URN$pcK`zT2m`!cvOfz7;2rT8G2f+ zDWwK9b}TmL8~v28Xa1uk5#W9?GAJ~tYYKs$dS^|kwne5lkCfm`;bC%zbsYHv`@21x zqY>(SsnM*626);p%d05TWfaMckXs1x)CHqqwWuo9wFF}*K#VtNz*F9YXWJTK9`Z#= zM+aj_BXtAlYuJUfI9&5)+&v5t*TS$E?1d5E0dg-a`G#>+U-&YCZsxR!Xnq9sjcB3~ zLT{NKSCd{#$u;z-)2O~|>ls1WqHdECJ4l?i4~ZmU-V+e<3RqohFzx@#*w|HS72(X4tsH~_7P1=h_#E5eiho%Rg8h{_o# ztqUJ^O^NmnF!bI z-a`1=u(w7^rv>}hWc8y3GW%!^A;5w*1fcv@MBRZ1t2c)V-k?anx0>5&-T5AD?%Sr` zo5<#=yYiJ%35Yucw@FXHTsPX!td+QSvrQG2rcD)=`zwTO<5%$CRs6TTlZn7U!7HW| zB1-oe+mmR$+kL*dF(={g;3${iV06nsD8{j3)N~nlHUX!$eBWJ1 z8UE?Mw9a;h8{ptXSYBu@PEFpJYCB$-Uyzh7TRfGLW~vq3Yr0a9a&uC7wlp(WsN|(o z%98VcG0nFgJKlrU^jwzq&cp8{l4uvNt)BryxA(Ej(WU_S5m*Tir4C?*x~r1YYI8G6 zLp#Wh?t-G{tuu^7cKb$*m^k&(iY7|da`HqAKI gJ>_gkVL5bMy&7}8qSF*^VZ)D!hUxfnZ}K4d7ke&9FaQ7m delta 1382 zcmah}UuaWj6wjC3dy_P|ORH(qBscZeP1@eIj-hO$EzL@|Nd42HKF!+Jq`BRfOVZWd zgi(fC9|UE$WA5C++?ZBW&yMg_^G8VtCY<5p=L6QE@$&B+AspN$b57$Yh8+sUfAURkzBR1PI+s^ zBKmsDzFAoG{6Ko(gja6(Opz5Or|MKux&6!}f9X1b`t&}(VUs^}< zU9r*h3Do+!$sczA8JYtrzqOBzN0Bss5q`vY?HLtxu0^s%CQj{%~Z8y3ZN@V9>#X@mi>8&&;WOh`O)R)j4zA+^c(r+|qQ z@>Mkh(>`TIY8STr80RLv$wvMVZx4{bBb%bp@xPLW<11nq?f;FG6F3z)lUB#`nX!!e ziN4WfR9oqD$OYPQ?;H+W!w*nHtq%>WWwgxIN>Z=kQF9YCsb}=+A^NIj4{z7TxWP(+ zK%@2{)2gaSs4UaXT8Z?*LZD+s91dY|)O)>9QU-R`NfARRZINjZ#blx_mABRfr|Nd_ zY=2#_T-VQiS*f~qi#E-wme!kbyJss*1#9XR9bLGymOR=X46$Jbub^Flg*74WTqSWJ zXwx~(@>{Q(_P|cpTEGXz7m>ip5`lR`KtL!FRdes#4c$ zH(1Up2vYNcRDVlo*0Bgc|OTQ(As!y9W1A+6?b 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 7c0c2b9aadd13ba265ef72bfdba0d79f68e8f569..156989e17524805081253558081342825b875e3e 100644 GIT binary patch delta 674 zcmZ3iI!BYWfpzLck&UeT85x;2A7wnt$hctg4K_t4LzBtB*qSz*vn*gj7HMQ;nq0%a zg>mU*Lk@Yt9*3OF;*#jJoczR+SS|$xg~Rp3)5MjE4{_Qb7VDAc50JcAtQ%WCcka zn_S1~Ed+5G8&KDZ44DjOsDjBaI7Ksn&SX!{&&^HED?xH&kF=tqLP1e}a%ypLYKlTq zr9xh5Zb4;AezJn1A|%Ac@T+N^0t)90=`1Nm28LpY+b0XKvP)!100n?9nFMkP)Y%fH zNnpQB7U%L($ua~g=wZ)K$||WWNS%^p1mbd}q!uS5_>*h6(kH*=GGk$a_(f{7BljOh w#`Mj0ypNgH9DzEr?0`gZ4`*ItZYoG$G0-(xAc@Z63`Jl9$gi_@% delta 369 zcmbQExmcC8fpzK(p^dEj85vnNA7wnt$T)xUO*TbFi^+f38aJD>EM!6!U}T(J$G$~0 zHbc&vp)@Ijvxh4!Gc_kAJ}Ez?a`I|U83Ci5%;J*hw4D6Jl2`>@U4_Z-IFx;+WU$9h z(EzIENX;$CNG#4Qo-%ogX5*Avpdf1xuNIOXEwI`Qu^w(D!6~g%Ad00kPEX>{k~*0o zopCfnCWARc)-OZO59koF9u0*@4U@svO`gZb&5a~Ixt>dbaq8r=T;9ym87n4V8UK4YQc{bPp`6L}Jn39LY$>TFiJ3W55+^_7 zF=J!_8X&XTlJ_qoqv>XI{>RK}{EQ3?S=>OPxQ8<@F*g;YxftlTERaNJafTw$n_1kO I9fV^T0h)4wOaK4? 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 d4628219431fe0632b5cefcfb3b26d0228dcb5b7..f583cd52c708a471d9358ba84d5e2cd547b3564d 100644 GIT binary patch delta 1897 zcma)7&2Jk;6!&gE)@x%-Xh=jHJ2p)lhZ3WRh*l959I75LZ7*;lm9w@dnH_n(%kCOt zBxH&diAr;U87`F&;!p{W$ecMAq=LkU$Qgp5s8#zH6p1%GyY{+{s;so@nK!@p`Fn4C zaO(cX)Q3}_)fYaQ`k38UPi$<}?47L|YVIPBW9=%(I-PtI?fIN>n!jkf)&eN9cHFOnoFo;BJ*p|hpzHNcy`x=JDuI3(|2n`gjQJZxBz-056Ao%O&Gv3> z&qX`2Y{;^bNQAU%E#T2LTH*1A;Cy&KM`y<~F0b-^F54qV*1#0dxbRY$P6lqM>U25P zobH;a7)SUNjK~VSt5-SjM9v7`IZ_sSSMPbat>fr z1A*Ul5T}!YO_~M)+H+cF!}R&};QT$qZNpM`x|^2W?6eTa`!or=M$7O#PSdf;lrDV3 z-9}QK z$_VFsA{XF%y-d!+@|cWwgcdN~8!%2T2<BU%cMsWn!@KUE9M9f}EU0f!=gFe;lItk{F9EfeQiM+;e&puB%Y(D*} zq6&8VUiv>pO{;x3b2xGOZ@`m75d+oR1`IDuu?K%FL>yfAa0$X9hyC|wwv_(?zBh+; delta 448 zcmaEBa!r-BfpzL>p^2;=jM9@2FiHze$zYG2lEK--5|Ua`GG+3V9_V3RJf_jpY>+ zVH4oSVVa{}vYfh>m7B%u4b(lS$XQsR^HQ!0VJ z&}^JiJ4GXdHG>W8y=gFh4|8T-3CznJsksFiiN%@4NE&)rwSX$LCdYG%GoGH@$f3o0 zGDAA!D3~=B$T~E+kyByv3NCeK>5LU%_CGGc$;NzgldlN6NoV}(Vb4#>Dyb|;os#jp zha)AmI2p>BY$sH})x(yOT9TNVGbM5IIw5;T7N7w#o4JJlGBO!5Zsrty#LULc$iR@r ZKKY}BFfWMNS)8E=^hg%_Wl#+2 z-LdM(O#nRc&CgjyQTu-=|0>GYY+Ea->l^Ie#5vtU9)3}L*llg)NwKH|pG&ancP8(u zkAa^Yg@^vYT@+lQs$Js|PHPc5{3`jG={HW=&sEv!1Tnm(`m#@4mxU;YK>@l9N) zW^oSx)Tx6?YUnEFU=WGcuq}&yIX%lBD$i!{+jy&k&)|PR{V#S!FDCz#h7h}^=QFos z)_)Mk$}RSVUd>9M(*XSnFX9Pt!ZN9u9!^lrL&#`(cFZ?@ZPP+N-rSa)iWf)QDPcl9aCS{pXSILTpC9nlc;V+|p(K{t>UFdYR+JlF{S$qUNaBgA-)&J2qZ zSQ+7bPvioeub0VLSRRw{j?eU_*@bOvX2Bm z%4Vuior7Ax14uFT13HD!0^zafyb)>#bV{v&&Jz)x!kVNrkSA}!eqJgq^~f`@f~)6K zarNN*Wn8!nUhhQw&|IlhbX*&57Y{Xy^==Uoa=I`i#ZpNQ_uS(#az4T3ci_mY8+b`v z<|UZIlkl=_J-rxf&M1!H8eZzugNWHHsf)|xchIMrT_?f(kprp^2;=jM9@2FiHze$zYG2lEK--5|Ua`GG+3V9_V3RJf_jpY>+ zVH4oSVVagRIC-6rJtGUy0GZ8P!hac=3>i0biaugy<7Q-F b$YP)TQ9_s(#Oy52Py~7;i+!`8WDFw!CP1Cw 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 b289a6c18ab529ca87c7aa251edc752019eb740b..68320828911bd0908211203b95f57be566817b5f 100644 GIT binary patch delta 1878 zcma)7O>7%Q6!xy|*lQD_sA($V#zOz2z3fY5MR_?JrIHg8h=N>gS(j_tO^)7lrs~@nRd9mB+=PCSR9f zG<-Lsryt_JJn25d1Gq$e<+{!`^IvaV$K`se*MwRNZ3lJiM$@3H<~tePP{2 z5njKhh!zKr>}?cYi_h_Y%WVrp6ECZ+e;YHPHeuqMv4Jkc@dGKOME+V$2AlZK*!e{4 ze8^X!r08Q^fJu4xo-cQI3rY@ z!jRKqqD2)%WChzO;&f(WdkfIsqReGcrV_>+l>4MAx3UzAQy9x&1byzuY>WhXkNu;q z2p#4@hvdpAvItTfMMyOcVl|3PC6(y`A{g^J648+~pnRnU$O@#63nU>-1gqq%w)Oxs zo*-LhnIL;d>;=d^Z;~|_9+B#vhytnyW2(s|5uN1u9bq^+&*WwB$GfBsf8-VMx-1eT zsFcM|GFd3s=i#hh15eT7V=9Hw1>+;B{CE^8sZC zEC%`ru7Fhws6q>(L=2+5bqYkcbjIn)h0Icu7jOx%p3IQWI11x2PMy4w%bQs`W5whN zTndx5xdjXeM%Jsc^i#mP|4c*=#8MmyyYkakGKwBW5*jMh1o~b|6vQ!n1qqp20yREFz98NZ6o*?2FFcslKn8W! zy56cg)BPam!>}8u2XXJ>laGoZg7_DR4s-Rh_Cj z^_}mWI;VbI`}Eb$g8ea@DivWe?64q6WWZHnRs!kgF;8^yNpbj-;zz}SX=d!Dl6mIy z!Yn|-7hx1+JSm7I;-St?DU*4!RIqrs++T7E7jH>UwIHqcGvcY2IU|#k9`C zUaoOQI@3}ZDAK>-M@%Vn;=7ix*nO=8c{*+Mn17z}KFQ>!q1k|j3b85fiZyXhEQvkS z>k1k3Zk8tr&$=&VcHZ@6oHFIHfvSE&QPpK>*d1_4GR=d^XeV$$sLmWJolN1N_fHn{ zo>(xoFbVjuf}#Uhd;td&`+)B){JxFfckp{ihXhVpXpeRPc*0}=BN&4F;IMr#RrIy{ zw_~n_3=RwP)(w)*e)Usbuv~me98K{#758BUsJ;x2`Ij_5z{m!Tcq#5Hj#n0J*k2%#1m}W|6xlf>}F8C|#pH4bDCa%Hm$)GL! zZD+gAtbB*$-JkdA%R1owlUvqSO^fY3uuBss-8J@m3gh$ZU|b;>9fm8k@MZYK_r(tg zs}HAGiDw|a(`MUh1D}T(G|!?C9#OIPVo8b_<5i6_UOm0MI-gE@myz=zJV4vRv`A;! zJ3~Y(W-VQhWss8--Fb~qAd*;y6lS%;LQtZgN0EczQrI&sPfOp!`Lrs;tGSsL=#L5n zIudeAyv8dCy(ePNp@wsQoeW}a>HNf(iLOTWYG`f}w1~o~sKWa235)zZLY!)A!P^p1 z1WN?%p3IYgnAMX*ViyfsE{$F7^G}@e=;v4SsA^F6g4$A%(B>E*>Zvo_) zDBP35sG^p6cx+jI{Jab;1CA?DXQR$HY zDm=y1GXJ^SG6!baZfF+M5nU*wBNtX?LJ@hvzhSa}ARL1qC@_(;cQcuJ_Mm27GXVl+VFnXGpl8?VH)yim?oZ!Ii{ zyJsu-cY{`Ebt@{MQ02;*GZkt7mx}g(zF|@EC*bkNn}q&APJPq1zbUt^L-^M&TwP5m z((_jkv~f-Bx!mb&4JUL}19Gst`}^%QlRig+jVoi+PVzV%frjn<{c)_iR>pY=z&*yY z>KcB}+G4De4PkHIbn2ht5cZ

*z!hg_l9kRzS_5f1Qa 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 E0fFCpQ2+n{ 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 756f4687b94505002e4bb36efd44e5de2e4082cc..1b8992fcfa71f3cd995b4f7948bb00c5fd3a6023 100644 GIT binary patch literal 12168 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 I5qpvR1wJN7Gynhq 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 aa4070bad0e206bd5f16cc9506dd1e81a529cef2..aa0aff826925219c9bb9ef28d901e09acaf0d9ef 100644 GIT binary patch literal 12278 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 DvB^i9 delta 1852 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 KxS;Pd-TwjJVJnsZ literal 0 HcmV?d00001 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 fc25fc625473d8286ccb5d4d5e36d99d64e050e5..96c25aee07334262fd73b5b1e7c9e8c995730a2a 100644 GIT binary patch delta 3264 zcmb7HTWnNC7~XTX+r4#n>9*ZA-ClM}D0^v(P(Zp`YOEkqt#a{_*s?vld)nE<-rRE* z+C;2Akl199;2a*jKzQ)QOAJ^c#s?rK5??g&#Rp%cMhymI)I^~2#PorO^CBXA*D=3#l)OAb>jW5 zS`|Z4#lTby=T>?-jwc-dGdD>-HGauWkZ&!WL~VH7@dWas9jFT#Q8)gKT;u)x#?8cL z+-6OSGTJ~t$UftGC;c+SKAxhYbG)CNH)XjQ=4Y&NUF(Zzs(`}iK-nFdCi9IKxmTFV z9&?-NWmuah2h9=gIFnrl*)b;j-n@l7!(<`LHq&V)%elM4NcVaOB>6%N9S**x9#I3x zge{@a!NY>0e=v!YQhfc+6-wuZQ`s8;*Z zDlMAd1p;v$RdK1LttiQXjt&>pchUMGcb!N!my?!LCur8F{4<7yxq*YCNiH+Xgan+BL9QdXQ>#v*G|V3n&k3 z%2sTPrvzC}&L+itWi}nOT=JW9fO~<)7<*2OLCthW5DKizRaID{MoJQNyHwj2sNx}` z2h(w@y`0`b@IBB>_pCBEL{7QaT4wc#Np?3)LB-V#@%{#481;0SUKkv=-qtkyy)K z?kAeH+oLJ1l(Qy(wzTZW?#XOMq(t`(4cW9GmZ&tisv>Dqg$O&DVYLx#1gMZ-&FgsS z4h_4tnu{Jt^A>0nV)X#CVskv3PKz0ZH1VNky(vgeo|R|k$!T|AktnxT145nOV4&%M z{KY2y5D!*Xz#!0ELeBvrC(ZSeXDu0Qvn<}!y7VOKnFOvIuvr#GAth%kh>oWtX;DFu z8SSPh-U87>VqOvFqqKn}V+BQ&XNq{%*Pj*QVy(6f;MZ{{FSWERRzV%E@25^&-HEmj zB?brX)n22h0XHq?#7rWYnTyWn#n}o7q$lZS(Blr9m4c?07gBYXJ-F{~CbIZ;uuZ&lHO8g9@VQ<|h1m$>K!F79URexUle(1o3#TKBj}E?6Nh zetqphIl^37^^UreCo8Rew52Xq1svD>R`D!YpC_yMTAyY8ceBF1PeZ;SBPDA)tuU#gah_m3Ys>1}ec?FxT`s)ZLT@BY4`E6ATxxkv`=_4|Ff zd^Rr1vY7D27JQjPI=28P+UNIc4a)QXI@-+&RWuk420136Uizx_Ppjl3_nO}7Yo%CC zG36kCvPZHcd zYNo9U_a{yq?|-wS8~#T)&^)m9(E6z+ZVer7s9ozf{&JDur!ZD3{|t!OIPA1shyAz(^V6BdSP^V&W=^PK+B znOa$(xFA9EqIAx4B}$sGa|0=a08v(&m_|*EVZo9pD@+s?3bDp>-~4n&3@*%MX72sY zchApv&$+k9Kiw;xmOd_au1IIucDy8{R<1X>izM!ol*^9;jESfSKMVFcYNE#a@qpOh z3`XvCbLI_mXJvtB#AJJA^K5l-h8Jd_?h%2d)K8b%dOHWvYo^gd61oRv3rDl$g!fbi>*8{xwSt@=PFX-I?^`3J zLGS>?VFD6I7}@uu)Oeo#MN!fr_>&C7Wy2#Z`fmv^jK>0M%et=WIt!h=&FVhnV#u{gIAaZ9z>rXPnY)l;BcV zjY49S2tM0u&MttF&*p0rX?IIxI!lUi@>5|2vTCF|xALKr7slBWroNpcw-m1%ZxU9+IziYzbT1~8@ z1XOgk>y$WK=eMFn)$c%AiEwitzSiPri}f0aq`_QO0~YDhY`N4Dj?Hx5|5gvrrPPO9 zv6Ramk328Ct?5BKGA?{kn}q+!jm;x;<5sdJd649SC=-tk3G3!P#n)1Y~P%+w#nW*A>ROL@628G9U zZrlEF&p?$!ljoy;+`xN@ubCHrZHx1kZsm_cWilISWL-WDdS?iJ=M!8GF@aaqL9J70 zXt0&}DXVaD!E`K@Z@n{Se!8;9ChdjbUiVB40$gZ3s=d@`%QI%d$mSdaZS63<==;MR zYY(*zCL9yi9(3RJ?0k+~Sv~ZVw|#TQtjQhb>4men;r%>l^w_y}^125`);y_K+264B B@u~m- 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 ef8f8141189218ece6e40187a0e7eda23b85560c..e3e88272c3f1f1f4ac406babf43215fad4f0ac9e 100644 GIT binary patch delta 3264 zcmb7HTWnNC7~XTX+r4#n>9*ZA-ClM}D0^v(P(Zp`YOEkqt#a{_*s?vld)nE<-rRE* z+C;2Akl199;2a*jKzQ)QOAJ^c#s?rK5??g&#Rp%cMhymI)I^~2#PorO^CBXA*D=3XN9;pb>jW5 zS`|Z4#lTby=T>?-jwc-dGdD>-HGauWkZ&!WL~VH7@dWas9jFT#Q8)gKT;u)x#?8cL z+-6OSGTJ~t$UftGC;c+SKAxhYbG)CNH)XjQ=4Y&NUF(Zzs(`}iK-nFdCi9IKxmTFV z9&?-NWmuah2h9=gIFnrl*)b;j-n@l7!(<`LHq&V)%elM4NcVaOB>6%N9S**x9#I3x zge{@a!NY>0e=v!YQhfc+6-wuZQ`s8;*Z zDlMAd1p;v$RdK1LttiQXjt&>pchUMGcb!N!my?!LCur8F{4<7yxq*YCNiH+Xgan+BL9QdXQ>#v*G|V3n&k3 z%2sTPrvzC}&L+itWi}nOT=JW9fO~<)7<*2OLCthW5DKizRaID{MoJQNyHwj2sNx}` z2h(w@y`0`b@IBB>_pCBEL{7QaT4wc#Np?3)LB-V#@%{#481;0SUKkv=-qtkyy)K z?kAeH+oLJ1l(Qy(wzTZW?#XOMq(t`(4cW9GmZ&tisv>Dqg$O&DVYLx#1gMZ-&FgsS z4h_4tnu{Jt^A>0nV)X#CVskv3PKz0ZH1VNky(vgeo|R|k$!T|AktnxT145nOV4&%M z{KY2y5D!*Xz#!0ELeBvrC(ZSeXDu0Qvn<}!y7VOKnFOvIuvr#GAth%kh>oWtX;DFu z8SSPh-U87>VqOvFqqKn}V+BQ&XNq{%*B29WVy(6f;MZ{{FSWERRzV%E@25^&-HEmj zB?brX)n22h0XHq?#7rWYnTyWn#n}o7q$lZS(Blr9m4c?07gBYXJ-F{~CbIZ;uuZ&lHO8g9@VQ<|h1m$>K!F79URexUle(1o3#TKBj}E?6Nh zetqphIl^37^^UreCo8Rew52Xq1svD>R`D!YpC_yMTAyY8ceBF1PeZ;SBPDA)tuU#gah_m3Ys>1}ec?FxT`s)ZLT@BY4`E6ATxxkv`=_4|Ff zd^Rr1vY7D27JQjPI=28P+UNIc4a)QXI@-+&RWuk420136Uizx_Ppjl3_nO}7Yo%CC zG36kCvPZHcd zYNo9U_a{yq?|-wS8~#T)&^)m9(E6z+ZVer7s9ozf{&JDur!ZD3{|t!OIPA1shyAz(^V6BdSP^V&W=^PK+B znOa$(xFA9EqIAx4B}$sGa|0=a08v(&m_|*EVZo9pD@+s?3bDp>-~4n&3@*%MX72sY zchApv&$+k9Kiw;xmOd_au1IIucDy8{R<1X>izM!ol*^9;jESfSKMVFcYNE#a@qpOh z3`XvCbLI_mXJvtB#AJJA^K5l-h8Jd_?h%2d)K8b%dOHWvYo^gd61oRv3rDl$g!fbi>*8{xwSt@=PFX-I?^`3J zLGS>?VFD6I7}@uu)Oeo#MN!fr_>&C7Wy2#Z`fmv^jK>0M%et=WIt!h=&FVhnV#u{gIAaZ9z>rXPnY)l;BcV zjY49S2tM0u&MttF&*p0rX?IIxI!lUi@>5|2vTCF|xALKr7slBWroNpcw-m1%ZxU9+IziYzbT1~8@ z1XOgk>y$WK=eMFn)$c%AiEwitzSiPri}f0aq`_QO0~YDhY`N4Dj?Hx5|5gvrrPPO9 zv6Ramk328Ct?5BKGA?{kn}q+!jm;x;<5sdJd649SC=-tk3G3!P#n)1Y~P%+w#nW*A>ROL@628G9U zZrlEF&p?$!ljoy;+`xN@ubCHrZHx1kZsm_cWilISWL-WDdS?iJ=M!8GF@aaqL9J70 zXt0&}DXVaD!E`K@Z@n{Se!8;9ChdjbUiVB40$gZ3s=d@`%QI%d$mSdaZS63<==;MR zYY(*zCL9yi9(3RJ?0k+~Sv~ZVw|#TQtjQhb>4men;r%>l^w_y}^125`);y_K+264B B@u~m- 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 eba492ecc76bcfb4d867635ec6ab8f25309ede16..77d7704e61101ff89b21d14d356b7049ed9f4201 100644 GIT binary patch delta 3408 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 delta 1171 zcmZuw&rcIU6z*OT{u9C6fDEZrTLPQ_k+ywWZGLCDyYNs-p)NKS)_d#A~v#Ndna;U-?Qp$Na>&Dwzq&w&q>EZA zf(0;e%lQqK%cU|Ga!)l64wBZdmOc_odP;L*%gB$a@4a*=uZrSBhF-HdvsC)b{ zxZA-|q5W=*M)EtD35EoZ2gQv5`!U%Pa{)#{D;3z2qgXU&DGss&IAi8@Rk!I9R+wwg znvh~IoKY#}`8Fu$piPZq48+N|OsMLUx=I&uz??l_C~4DqNYOm@Gf&L}%c5Ahtb<$` z6e!cuP--l^Ld?UZjAGdtdHt0bUh=4+Kfvc}cxqhhBi`X7_SHsQGuPR)SNV%*M9a*) zxWA00mWXVe976k#Uo|ehpfx>yz&-`DX0Xpbhjq1*khqaYQ2}F+xVd w2|?O4!!c1@5H=r2tKJ^K>WwV>SU6Aw1;|k>wmt?AELo_FZ4!%b()Ll|AG}tS761SM 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 76df3038f7046530927ce68d601efad207897fe1..2f10f9127e2f47683307bab00adcdc2b8107320e 100644 GIT binary patch delta 1058 zcmaJ=O=uHA6wY+JO*Y9|Z9}x=$4QH|jcqY13VKyU1VQMnk+4Z7&Q6=8>~5q%gnCdc ztcNn|Rq)_N(5iuYR!|EbJQO^MMXLC7&sJJsYA6@>8I3+_^Naj_3#w*2r6TtD z@sclm5DJIdTbViCv@*IyiXdeCvUAB9qq05G&B?DTu@RSWOz5_V(FON5;QWqq4E^A@ z0?F`q8lhX2EDh7XD~?MG8~mj|dEyI=(I+&1+6R!&08wmzZcZ~zy`U4LQ-uWmxLt(p z`ntu$`uWYk1ZFDocm#`JbeYIh?PpG`XI}Cxb(XiAHxe zZ6Bf$Rsf-uEQ`Zm-J=1%931r33x{nH#L&eqcT`AP5bgvU?$jx|3=+IKfQ$%(SO!*m zdxaqav}3JdiyypuN~2VQ-BbZa@6DBqMFMl~xP6gC0?!-e95GFj$Jr__Rf_Y~d^v{` ziROLyFUFlQs91seCjX{HqI8C)D|8>b3p=1;MQCVfiVB5%Q9X&D!J+LfXPH%4pt8nk+`NAgC9;i3mM;t5LVj%F8xs3%h~~7UMy* zFc*2Fcd>XYLig0G;z7m#z#nK2#lN8ze3RHTf|rH&-giFpnb}#N#nakAd!8yi)1I;d z-iaT}C)*OzB5}jLA4rr!HH$AlFqViuvQLa{;0s=37ou&x#}5kJ=1=f;>PzvQZ7;c@ zZCeeyyByd}tJSjb;gng=NKo9U`ADwG2592!|C3crXD+c{_&~SkccB71_ZFZe;#NaG zmZPQAgK6Mk&OvpKrfHFK`>WviU7vKvd~GN&+O;G&*-Q}j72nt!^JkjY&jBjaQ`t#8 z{?M(XTVTRls9xt3|BgnEV%ZksxS74iPGG3Fil3q4)mSV>!8QeBWc3X%PaV%x?)Fxk zV0Z~v^zxYo{2u!y?cvNmFw}i_@% 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 40701af8f237cbd846d65b78043f6052fd42fed3..b94362c28dcdc5f174a1cf74e8580346fc562197 100644 GIT binary patch literal 13752 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 MC@;_&9JCt$1J{X`q5uE@ delta 1776 zcmbtVL2MgE6wR!?P8`RHlhpP)>)30DD)uIJO9dpVT2Q2>s&JLGQj1Daur~H4yA#K@ z>`j%Rpq2wtt1gG|mm5Llgg8_X`9P(L8yBu{;z(}@4)h#K__J%9HBF^TTs$-T=fD5o zn>XV}8(&=D@9>|Er}y}~M1Ws8VehL^XL9h9j}UL`7xD)o-^10x6q$$LJoBTPQdv{W z>*}e_1Z3~@L}!ujPA=iTMcmgadY|(D3jvDW$ftqd!=KBNEN`egvMgm}y=ur=DVKw1 z0U^QyRb^APBTb`WM=OU?VsF0~^muPwoIJ6@|yc0kQxKp&aas!#)odKTqI5Ov9fu{ESHF?M~=996CLl zxff^~OB_S+16G=;MHk`W$OK&UjdAog>*{8k?5B^W0 z_r^|;?--5cwo0wzRbroCtkRhLoWG$k{tEfg?TRjP%5epnKbUu^+3M=VqfXy+b@DQu z;7cKK()2m^#4?F&ZD}*~4c65p4YMIpV5U0bq!r`+a3Xw$c;NlmDYzA$B7fUwC9$0% zJ+$+*6-+|^(^r9r$lm^r~fY^&L1$hi8nPx@wsob-QHQaYJdW ztA<5yV5S+sgl1hW>1%q)x(gm@YL1=SvV&T{!G3&rri|or0*koKrbQqrN<;rXP=y}l zE-~fE96S)Fm~iM9!BO#tcoeRL5|GZF2!sVQlViU6;58LjY?z81US#6d&YxpEr z8#H}o)ll?`rNCdgbHocz`FQJk{u$wZ=33WIKk-aI#6J@OCRiXO-S 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 cacdd09a889d372617c5dc8b2b2605a863b86721..34c6d37e176e28d3730375800983120b14a171eb 100644 GIT binary patch literal 14714 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 H+-?5}78@1| delta 1934 zcmbtVL2MgU5Y6}6PBu=`q>k<4wbyIh#_=|8lR!jNr7A5%DvFXqE07?h$;RGfcX4cM zcU|I272$x?ich6xwp0;t=&=U^mAL=~!i5uuqQZ>>tq>PD6b=;v74iSBZEYGOsJQI^ z^Z(47nfGUA|Ilwt`__DyuMb@Eokx$r{e96(*Lt1J_3!)$d28RJdkB3Fx0oavhkML; zpCT2OPsg{aT!PXSun_g~^>YkAb6}R%y zVzrfWKYSSMo>o{KSgaHZvN=zYEwD1LTj#7n#i#g{_Bpa)F-vdeRa0JZUE|?a(ee?C zT4^cN*46;hUM2z@={baQ(AS^MOGH#S?KD{`i%J-KghA^K%kk)kxu-4*bhMzF~r@-rlqmk?at z&%?7pc7oHMx8u@YBugU$eB{5rK$LHh{}mbs5+8>I_B#lU=c0Wq)@K8ZNkif7@;NPF)d z57klThyrN>Z3YmR@Xinmcq^KWlExRFSrSY|7Rr)NTHlm)!5#rH!IgZ@?yvaUa6GoF zcY9@|M2gTM)*Az)=wA3B+KGm#YoT5iL)5#w$HF*FTSI`^SPTupYU~7hni_SLqQ*SyiJ58zLv^^d`*+&E8jxOGUV(GQm(qrN3S@HWQemD9%~Elh%n)Fb z2havZWv@8-Su~c!309Yv@}(6?En3)9u39)i4&>ExLCvYAbpf{%(X5tb3p4U+&camR zl=NlUw6u2!lC5u)<(#^t=B)E@YG7cDR>ZpFQC z0V4#ywhcKPaeh`ziDYpmAu9K*Eg^TcOPvu_KAFS0o|W8{T(@A+g4H##R_}E%IiWTJ zt5(gd^64bLWpBgF_I+p&|6=+&29UuZc%)u377L6F)C<2uDrdJk&h;CiVk;7WkDQH^Q)VNBJj*@Vog5q+8?F3(Yh{^_GA`KYAgZmJJvFRg>m zyW0C`jmo)DDw>T-!4F+N^plVbQ?u)Z-ETq)G`%Cub|~m0G|7txKdWbq1|$B>^lp!x z6Ql|>$jvgyMhYY;_)U)@Ai?+oMgXmsWAPoQ&E5ch16l46Ojw55{m|qR;EL47M;v}X$9r3v^`G;4}W@+3=vZsyWAB`cgNwe8BR`I{T)8$v7aUdo|k%`NGj+%aHFdI)pD&BO}UFrG7) zFxCpVQnRtH6^k1D4rOvd;WBQRR?BDE*GIMbf?cWCjA}b78X1ERy+^xyXBVqg(}vr@ z6z-{3EcAe{@3V5#;m1v zmsVhRnVZi&CWAyGnMtBf@_-&kG3OVEVO1=zuH5R0k?s=XIV9eoC&_6cl$`iaD6eau zmO&s;VImwvI;2CRVe*}1$Tm^WNxZ0GFk*RsUKG3$PG;?WF->E#)2PFF?n8A-X;oaH zMW{tm@HBD&5mD>;Hk9(-P{gqp3O&USI((f7-aSH?iRREvFM^%4(`^LN$W)()S9v!H zKPNFGNGO5?H#B$=&Sso|yA8}im@SeKstRu#9+YAwB*ClL1+*rl&nWJ%t8Pq*1LotV z1KjKsP6Dmz{o|*L4V%7Nts8c!wXBVJHdEN$YzTXTFht{7^j7F;?P;$IJ@5V`oUA+c zMm*gb`?_d0z{j4ZuX&Rgt@7^juojc0H1+ZCp#b?q(&Q_sAsx07XLCP!PN%y*OYNlv zlhI$oRLZ7xrDMazLv6Sz_UIj 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 a8f4fefd3f3f560762f0411ea93005e0841731ba..1a82e52579c5c47eb1034d72bd7eabe29cc1d1b2 100644 GIT binary patch delta 1543 zcmaJ>U5Fc16wXaDO){C;ByD#!O|qTYZs|7NcDw$(lt2Vp(q+bZ~|AjRgn&=zWaDYOr@{^5gF*^0CUi!Y1lxigu~W(&^4{r%2& zzWbfI_wn33$1CG2!i9A9C0#qy)*6T2rfr)ponBeZZCwj}^>vz%aPKbpk&rK- z7g58r&-Ly^?nFKyVOWX(v_mZxYj4qRv8WtT^rkH;iUQ{oqss{=Ri!n(soT2Q zT&(Ms?Si}iy!);@#RRsE#THzaaCUCNEb2CGYyvukE%c`tRccy=Dwy+-=yIAVs9|%b}Vx_KG zmR{3od$XPhp3%$7#vE_F!DOW1ihOWhCZP}~;eC zjR~Zl9$}XTDvjOnuQZV`3jK62FDvreV4wX4>7+vLfs{N+1b8!ff}G?eQ|uoA>}A?uuZ*=Nq->KX=g%9QQqS4~}Tjqh+lV|(zz z?OkvkGV5w=A5Qk;)@{CJe2Z;~7~f-O{D4h|9WZ{!zJEF-^-qhxO2~?@IKoa`VRkR4fjB07}9G@L;rooI0ivbHF ztA{1$2@x_`w9rjuvuSG(xRHv2kfJ}Ma1kN2OR0O_q)e+e_q_X^?|kR`E^nseXPY!G zO|ONfqzRlY4Nc8?sVuyb7<1)U*jvWt@vB>9`>;&Do=>?hIg0_ta9VzMvO&`Z&KP5w zro^SHxe%J01;Rl*^J+ zjC{aFw}R&@lFW&76-OM63?KOuHLwg}uCkI6h(HfSJ4=MO_n54#^E3?%jp!N5k3*G_ zT1p**jqTWO&F*XXd`F#QzbzIeZ@i7f>cI(-E{Jy7QB~WgkZE>NmwZW&1+^8ARW-Y4 zJE{RiS`s#&(HAaPbvq2w+#N`fTo@h}B;l#>C}Xep088U-Z>J+mtXll-9g{EEOrFN^ z>IPT(?;gs}%5bH+0hfHo@u)BExNi%~_X_kJKJe8^e3tk%e$BT)aIyUjJmv3pJh2m& z+6fo%i+_)ch+8ilEEj2V0vPQxU>E%tYLCSyu{RKExgublo8s(b{Dvs}CJ`aQXG9gx zPLafXAtK(bIjw#a4bwf+$1`K+42yrFtK4s-Q(Je82S+?+X}^)t2Zt;jZw1?#3tvk0 z`Ssu?V>|OdYTq~$lVVQT$cmz;P4}>V))?$h({Iby1;)SA@tTfFT(1u#3A}0p6QiIK ljTle??Qob=3|oqmEYD$U?_Lh6caZl)@fZ{)Vl&%Jjiv~8y zA-2#EKN4XSMFi60VFq?!GMa^rHlRJ$DMDX} z@jh1}1rof4D+X5?9#;~_x+cltgWmy@C%_ata0gygSn?!QnZBcTrRA0Zm1(;<};=wj$J zf5D|vufGAB^X$Hxvkxq8YURrI9(Y5e?{;DhB7G4JO z1y=a5SNNt>N9~z@9w5W4_Id`Q5uOzpKq*mzcDy1(B*3oFyYj9gOjs~qHVh2ov_1Xy zprW9;N;!{B6Bkgfic0gwT(wZnBSmTX>xyy55ge?5wn-IvkZuUUJ^C_i!NdwP;q`r} zY37-H3a!CMJ6O)?R&@?L`fIlBEnqY6?dfpDpbsJ^I6sWkP;E2vm*f7_8vXUaf%kyb g*I_Yjv6MA1yJ5nwtg{byOrpSFt*_U94@`0Y0O2H*`v3p{ delta 718 zcma)(&ubGw6vs2&-E2%6o26|+ZL@69&}3;EEeKW5Vx`c3K!c=a?8`RM(nK+bN<;+3 zRU6)TSHz=8yC=PfNg1t*Gwm01#GNM2 zJEh)I{%y$l7yY7dn7+nW>-_qK5?@;7T!1;xa5?m4$-jJCyYbq>LSG50V^YJi{4e*g9%U|xd7$@ zogQ#Qyt)F#TDc}r_$ZRSN|V_2=MG@DHl^gZPJd6P(HJ)@_yUVfW4K_rC9Y@6CK3vBre+ z!qt_YE5fD2UB|S-LcO5p&Z4@B7H8*BX#p8Fj^u4DTH#Y@(X^>;?SKXDu15g~HXnm$ z0NkS2LYd&$I9&@(h&nRxLH?rA@K8Gsa;?`17B#2B*F(F&;dZ!d$#ayR4$|Av7t1}0 z;&@dQcm!${Q-bWtEKqme_%r(@doMfL7uk z6<0xGJghM$s_XQTn4)XqQSghdNJ{rloW$Q6Mcj?sF4&GB+n}SeGWiAf;dPvzjxxw6 z1`#buEf)+!o7Yg?FB@X@ICXSet$2%xbbvsB=?ottGK)A7Cw0jFR^ubvDmJ24b)CXU zg1!g6RBnsJ$-Wi^>F1nQxmP z1}eeg609`z+ES^i!c4|HAiH9mgTqvBG7AR15liwyy4=a*J6zixSgPgWw0s=iV^}Lv zEfRC7hHP@5FQX-7sP39Rkjr$ueF6mOcOlhWZT}6xkLJbB&CvcQ3`;h+mL*mSI^r1y VyLE*BST%5lT|lzYyquT?e*k;dbkqO< delta 676 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 delta 1181 zcmcIj&rcIU6lQ2kX-jPjZTZzL0~gvAn&?GBq6rZc#1vE#jRft|Zkb(5x9Lt*4g@@q zV6sv4ttObL=|7-{{snr|lP1c+X#5p#9=v$N=nRc@iw93!W_RAa_r3SM@4X*K-wip| z9Cyz|ZaX$m8>AXTe&?J?T!wu{zD7+j4Q>pUpCe?iyg=Ism7#3wMMKcPmn$Ro zXAY~;%Z!&7*kO|BB!b88udBC2u~3xLimqsRQN%G(r^NxR6)3w)IWdk02k{J%aW)h_la&6BXvh-2ouStU?4lL)a9AxWZ1=J2t`&9|r9RqkQKTPK1A z>u@daBbRgaZ^jF8{CN%bK`2XZPOpv!M19>I9W^QI8wE+95F6(qT+XoJPiyrK7Ua{6 z)mZbXY8OvHPpAiWd`Wa3CjFP9{|1)GL3NZn3x;Lj`|D=gDhEnfa&^IqcK{9qT*waP zz(scM1g6kNt*FhSK2ylsoL4ri1!omKL5fKU1y+Y5No8i$^sLx@=< z^^5g>BIs>>=s^vi>DH-k@dVb92pfZ3z+J@Ypa*U7Dx1g~M&lmqhltkUX|S(}{36|C z2R^tkJPZZE@CvXP9`Ak0;0&iWuhQj$Y^tyLwK*f}=|6XP9ah~&Q%0tek~1YZ)_#N$ yAMr*iciMj<17Ma-YfToS@atsag2-r 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 0f14cf94fce08de8dbe0257dff58d31de22c405d..1bd57e3d39a806318391a5c69ee7f39166142d02 100644 GIT binary patch delta 1626 zcmb7E&uybF9sAoTCG0P&?v`(@n6< zgU4A#>04b>&i6B#&$IHNbz^1McBq2vj<7P+N9-w>L`h^M=039IlPfG7Cc6iG@H_QDzC*{x-Z2{ z@WeNtzcFLc5Zt3O>E~wJAKm{SWTxAG96JWyNoLCzc|5xU{!>WX1_vso=^*V5 zTi1>3@3Bb4-VW^fw1p4jwI21)1VnuTkjE1I2;T0u>JmIE!1ofc28BC#AMO{h?#~b{ zi3pFM#uKMu1R1J@2$_x0>*=2sW|}C%GZ&;CYOyyiNZ(W{ai34q*(9@ip2l?7mTTp@ z?i{$~)qCW~R>+t>Lx+6i+QeO`wF5NYqs=*_WHO1}vg`1;D(?`IV%LmK(&vHT{n5Sw^v#UZa1-#J2}_y#lmh-NcjPJ5+?@+Ry&dhbK37luD5o zY$CZOs_5oAyOcj=ECUJEyt*Tg&bcYVtc^k|iP?I-!OjjHRr(ADg>5%m4rY delta 669 zcmah_O=uHQ5biVGB%5M>NQj3f`h;57Xo7h1R#Yr_uz2wx8p3w>)!8)JU3NE`9D?;A zR(%L@o_H<+^(0CT;txXcCU_9RgLu-j*sBM@_foYM1TVwPd^6wo&3r$6+t60DyRpJR zTO|d2ObUZxZZmoEW(OgYqqpQ-Y(LM3J~(c-#=24MlEW@rp3MZ${7xIDYk?QwsdS~t z^?)r!W^j>3g3mPCp51A&5N{?*Q-W&}b8NxKQfTZvk?+7k=)*Legc8J{ya2lwa7OcU zaEqrJk!Ll0Gl)U~_wc!Phb-gi_-xvCtjO_PGw9J}*28{$?%%-I_;KA5nVe9XC2eWvJ6? zl^&yidGMB$jjH3?tV?~<3BsCC6b9%#$=W`cp%V%ee+aXc?TnT2I25_M3}5I)@=5tR z^HKWxu=SVDq8!;rKd<2b^{B^g4lyJnlI(2(Zv)P^4>aMA~x=?%wK9!;^ElUNF3d-(eak(Q$8&P+_ytv0a9z2~0& z&i9?aPv-vKmtD_ZaSAwveA- zJM;Ubzu2|RORS`fmH)&V{-e{tWt=<1TYa11z*Gz6F^?)5W3DSosQ5x#YrfYjfFu#Ia8-;#%{s=Nd*IyQ8)emE&zhii9!?X-XKN-Eu z=Z8OW#_soF6VX43`po{%4F?{ChtLoqhpkOzK36Zt{@Rw49ZtRUfs6YD3y0 zEpbE2ZRkMXXm9vjrsa+E!w22biE}==Clf`XX|Kzv;&tbu1apLUK;zHA->&1lgI^_q zh^-M1iacGQIbhawO-}2KOZ7EQ)yQBQmcz+9xKbGmVb?>PW@AKJ01I06+LmdB{9NR4 z%J3aHs$RElyUk7;ar~hm5od~1IavfTerWhBDCEzI)8gt!JRQL^Zk-9>OMvgoYyEK& zmKHd48e|H7`lWfM>Bl!LZ-37I<8_eRtAfKM9>JAGJhj+quun6iF!9N(6oJGQF)N#r zS&1k;F)o6qDVU3KAxm(Y$%vT{PMg0@iw-M}v!2+XNwW@o* zYoZ`PO})|8osR8wp>%q++Sl`3pI8;J_!i;^7Zr_-=Hzj5Q%KbC$Fa<42TTffY-h0m!f7sx(nxCUn55(x&Q>9mQK12}`{ZHsKLQmkBoJD8gf_&dEi?4(*fDn9?zl@zSjBBKA z7&vEC8?KSZg#w26igqOK(OAi&e*TuX;^nBsPX2px8g9qu&=0ttG!{1LB;8mpQ5R4?-GFq28WNlmBfc;F5ArLKV9R+R}{O^9JT;7@N2_z&mt_f-g# z>Pl!2Y{d;ore#Usli#3|!0;6U_YE>nUlcD-pgNW*ooy@Xwk+#nU#Zk_1L&(S}9HkLF(-;JKT z36&`!bl0YJwl8s>TeVIH62r-uA8EDh7Od~j__OL8;phqntu}ugHrz1lB%pHmiCID8oE~E3G?-IsEwj@_pa$`(E{h!k^XGwt01|KZXAnxphv*QY*X+HdCs)_lcWE6v z)Q4-LFp|15Bbv&f+~Hkpq<$vy{g+gb;>sxu#A&5u~>w zz~QV(?^&)DSe{$EZ}~yQqUA@?gJ=n4m>O~B&v9y2K%EIOP1i}Yg}?<%F!_G)$O3uq>+7HjEYJ9#&~9@s+)$(TTxgryUz-&H(lb_ wVoxc?pQld|+Kvx0C(_~#uCzCJ@k8ty4i$Qz|9M*gPkqq&C9pT*Z*x`j8{WVFsQ>@~ delta 473 zcmeybxk-(+fpx07@I=;*$&Xm2`7+pJr(|&Uu!N*mluVgC`2nl!#_Md1j4Ye)G2UWi z+&6hAvm&F#;9GF?R9_4*AL4T!QRcnRz7&y1J7uaHvdn;9`~60Q!L=HMbxmu{g7M%H%1U zjZRiFGJ3+G$})@ zM?>LJ!(_0TIb7U)D6*-O71`yPr85pqX5?0w?8dDQWUm0T=Wq)$f@EbUXYsg6XZ-77 z&rixKsVqpHlJUQXBPF#s8OoV_g(pw2hb<+wBr!8*N@9j;?35nKl*xM;B_=2G$}zG4 zO_SL?hxacdqv_^Z{EwN{_!$`(vbcdnaSvx+Vs0wPoMNEAvOp4@#Tkk~FJ^IXUMw8L F2mtpWpPB#w 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 fcd1631fa513601602c0784a4c09c271b762789d..cefdd2c4b670097162a62d7b6401478b0c15d8bf 100644 GIT binary patch delta 791 zcma)4&ubGw6wd4>*&iV-l_n%^V|T6ARv}sy^i&YVOY!E-l(@-G`*!W_hRjCILC}Ms zupn`^7f*U92wp7Fe?i3HK@@}@1Sxp#y-1zeM3VF%&f)RieBXQDH^X~7zrUDznA+T% z?xddNv}?Ax-Zb6vUEB=t{Yurfy-Me0;V_WkKw`T$fsoMMK|2V&q3=aQSh`5RiVbZRE^NT50S9onLwpDfsoUM+Y2&B~r zlyK6*Yqncc@5T|Mf*c~B;7r4w#!1{)N50ii%qzhL^ z#nf1BfypHU+#G8aS!>@*K8*9nQD0tzuk^NZy7UD~um#6fa-hNIR*lV2hj!=>c_wpw zOu2X@cAXE$ujkM&J}$dC7^kptyY!W;%Rl>rF+C@hvb_eL#uBh`J^#q1Tsp9?j^&>Ky^jtRk*UTf=K%WbqRzpfj`-`D<=)Bgp~oTDg_ zAhaxLvv3P4EjZ&8*bVdXockEKEwpN}efmPZe!^K|gi!KpPS9@P$T`nT*}|kgtm(e$ zNpNyC3X4|fS&`CAi7n@LrYNBGZZEql&R=0&&N2%mR6NtgyqB=Oa5(UkfWcP8S?+$D Gs-Qp3UkQ5v delta 455 zcmeyZxj~J!fpw~?@I=;*$&Xm2`7+pJr(|&Uu!N*mluVgC`2nl!#_Md1j4Ye)G2UWi z+&6hAvm&F#;9GF?R9_4*AKPT!QSHnRz7&y1J7ua44%x0r^1#=n0P0+=7h6;>_YHlc#7l zPN@Y7vi7iQ0hMY^p3f=HczW_47OBbo90HOjGo&+)X2@hPXUO_x$oZ8fWr+2tD?DnL z3^Gt`O6wGeZWKk6FK{U^PMs{r?aeHmv10N;PKC)cxCJL);*y)3#^WZP@vnzHKPjuE zvLJOz#{V9Ul+@y6C};8oo;RK} p{EQ3?S=>OPxQ8<@F*g;Yxftk)ERaNJafTw$KUv(H=L^R$0sx&oo}vH% 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 beee9dee0c4062533da7b48c60c42e9d15a63260..e31d21a6e22ae2091d584ae5525febfb443a9e0d 100644 GIT binary patch delta 1932 zcmb7FOKcle6!o(`{@XEW?3CC}#x-eT$FcKiAtVLDr$8x0D6pVSO>yFB-wg3b9w(`l zhQb1gidhidDF~?&EC{SBh$11niKxU9flwucg!l;-6%}OzOC#=^8QbGjR3cKw^X@zE z+;h*n@6DStyR+P@+@(o=lY1i=eN4=st>%lFRiRoF&Yjx4+`l(wflV&7{Uag73O|#t z$sAN|SIBX=*3}2o_9y(uXoMc6QEHsWXS;4G209l6R0H(t9ya2XiVN!vADWWw{t1fashiA89#u zogr>Zi+$(JlFzi*0oN4wsTTXCJL>Pq3m6GCBNfCLHlXgSuJ_3gaMC^Rf0V{(j`klX zI6n(l-Mi#Z2__IyqnQ1SBJ>#5YsLOqq@r+Kkd^YAje)ef}NK&x=cH%-PN?;nk3iN!)A(g^4B1I^y^Gx6b^VF#G34|JF35bj+N(Y=yRnAY9qPZ}#2x1;gwWfZbO4<4irlbC`J%qFcdlY%Cb7=mX( zdq1Xv?}H~ew)Gs`f7d+umZ_R_F*ynqoFA#6&zk2Y-M5y8{FG{s~MNlP)4P6C6UNXio7dq^FP+JnAJ{p^Y zw?Y%}W#}RN6yjHCXE@v-$q52#fPl8OZlR}C}jL5No?YxOyl@@(&mxq M2tB$p6@8BU3pI&k2LJ#7 delta 1504 zcmbtUOKcNY6!r6X{EO|x#CA-^cE&+T?1`PU5s1hTAgBdIQWU`gRn(zQJ@7nrKE;k8 z5h3;>;y0V*4pqA=8-zq81VO60D9xg4N|$V)0tu;#1kJXK(EG+SiBlo5U}4X@pE>uQ z^X{F;hi>lUEBviWbdkSC1gKb}i_4ArA@bmvlMoxcB!5`dRd~Y1Nk6P}{eGG&o|E(E zC#W(YF7@L9nu1Jy^*%#4MnjWKGD&~hV3JF*(>!e270v04mIgYWGbau;j#@^^Hbcl459 z&=z3Cv6uf@_uckIyxVF5dV;3sJIpau!Jc0`ej?A|s`I4xGa99%G&V#qJ_xU!kI6sS zNzzB(VBmleSc4nxRdN7^8pKdV5+&(dc}9}NgjAR)OGz=E7NN-(jk{ThaWi8nadN6$ zn4HKJjjRn{pPRbWhOy~lQ7*&34Xwllq9+*mmhRc|_< zLX!$g5+A5=NVSRyZ9%K)Tyxh3;RKDHzyz1-l*gxNu2d*#pqZd5uk+Ba12H%xRR?mI z6>2&3ze2l`;>!v!+6j^bmp8Q~7>5mYz+zw*ya@2{#20EC`mid}7Dx5?2h&sVw29{u zN*YEQ(}c1PhYcz6@0WtP>!nZz(XlB&BNL$RvY?|WPG;+gZ^HHa5?Pn}Bn?Hbrn zgRe~uI6)ENoxd%r+H3c&sYGJKt;ASYwK3!1ssBr!4IBqOJ5G}OP~EXRv%Hmn7p&~8 zYns}(kA~V)ER@P;kVuvdAZ=zyP;HKq-xXIVW6!1~q;~3; zycB4M;eea0GLCj!3_@kY!|+K!z54w)^M?uF;wa1NVX%wocx3_zgp^3n5Pz zmUs)@q03|g{Qk7xTsXIxhx^;+qkpr-G!RGOVM|5~S}hjUF*&A`XQpIL2{F@|mrLIm zHh98&ya)AH1nOb>!WZE_w`$MJ=gMAJtf(< 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 b735efc5b6ee528f452eceb2d86a3fd6afacaa66..b07676cf129fab33955f18e4e9d984c0aa8bff7f 100644 GIT binary patch delta 1689 zcmbVM-HRJl6whRn&CG1JX|)Y(H_6@QAIwbL z1X{9v5G-7Ta&PHVq4c>TCEy>R_z#Hai(1qQeiRiIDJ_cU&dnsLU91>LGUwbgzw`Uu z^YLl*vlr7_>8r04uB6|7{lH76(eVwt`X=^6+~24>*zAyo>l4>)ZPc6C34PaWagsU5 ziAGara6jaX(|^2|c;vmr?K{hgk{mr${!*0p*@L-q^6-&SA+?#BSgeq`rX<KgRpLf*alh$FY$|f zm89vRM={x!Ud&0rRiPrpzRlj%m)K4H1?3N>%hN$~yeRc1fZ>-D3a`~7(Y5nU*Y=E{+QF`kLw`_x z)dkt-MeWcTf>GQy$Zew#Y}s5W?yaDz&wk`}-Ho%5p;Z2T?4YNgkoJG3TqQqGQj}&= z47ZUcIVNbrd3JO3|I`~OqL<1u_<^e)(U zL3O4AHzpIc2#l^vnk(7yL`4+EQ0Ry{Vp07HzE2xmvLs;0x#eMAam zPI!hNg7u!TNO7H%)}wWhf&Q>z@6NOjT`rfA=etcD1h|D71LX8bO9`BOB`GdNEv8Y_eT%* HY$$&Nzm84K delta 680 zcmca^aZQi4fpx04_(awYMwQ9(%qkPN2tpVe-v}`>vTXj(_>Yls>*RmTii{SU6jK3h`1b@SgQ`S^?)G!(3DmiW>V<%T~YjJMMkj*%h zA?M9JIe<5ik$LhWUQb{E%;nJ)Ih!G!rO3#@08|hQRKNhV``%<7LCJdkoXp~q=(L>t z#FAK$Z$mOt6_WGwi&8T45=&Bx74p**Ncc2_k%-WeIWuQUD}QUdtov1N2;$DVhw>3{|j42|5TK2w*cn;lR2HXrR&L`+`cG z8F!%`pS({~e)R$EWB#L`D^AdAY bLAr~9i6sjp(OI0K2uwFwm79M{#V`T@!ja|} 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 9a2bab94109001e1bb779a4c81de3a5b5fd428f5..6bb52463d1c56b80b90b08efbb7cf2afca93c340 100644 GIT binary patch delta 1984 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 CzaKLI delta 703 zcma)4O=}ZT6wS-bB-12=Nn0ZQ$oNKUn>-w`ifH`Po{$E6D?y07yaT&v)+D71^>Pmoyjy|jt5aN*`%-ns9dd(PqY?wsgSS9*O|?n^!B zW-j*M6?uVIVz&QvfW-JS`hw7VSd%q$7us?!UK4){NdO`EDIZQR6S8e~2*Fj-asyJs zx{hI{P=UQ%<`Ru-&!gR_N~Q3|zu&2_pSy>CfOcUPo)n53Cv=V;KW)%*n8wxUMRYdK zFgi~KT3M&+I_pk^vgx#`;kWzrYFI0I@(bhjCWkA;iE2ay-R6& z3~HW$SCA!PQnW(rRDF_MHyX6NPTefEe zb#DI=HF48(+Ma8=fsef{95BT7b{xaT&&+1v?OY#aw#S7&l kVR4tuSsixx;e=~ACZG1%@3DB}rB5~Xk*rR9ZT2zx10D6~rvLx| 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 0000000000000000000000000000000000000000..e1f9c46664187d09977a2727d55af103ea00e9ed GIT binary patch literal 6903 zcmdT}-HRkw6`!4%?w;=X+L_%Q5_f0Qqr~*AJKYEr_UDLKb-)2!Fmu%mP$IKJSyUFf1lCLEl*$mAm zkspT^OXM6VEbh2=$h_oHBG-sqIBwKU*Eb?&3CH*H<-Er0yzwaM@TRN@N4TssC2zdq zn8VNe^~Vk0dSUE&EbKk;!^58Cj{`F@%wbf1grHH+44mGOfzlMrF3omr zZJ4NAwUE}l8%EIf_JjGj&*x;#@oY9JnN?eyKLhRf4lMZze4oYlIed3XQy43Blztu9 z$nl2oihM!)K=07mZFdT>Pe{`qGr@g(H<9O2rC!aPT0anp8S_u^y~11v{5G5dB^Cic z>x2#+%&gIj5jn86h{Fneo<7YuokKR=RS=@pD{3_XoII6*n%Cq~wpOEUt2B_}3Q|7M zPSsMH6^nM{GGy8dfIQ+XS7{>!A@$BG7H>|*?tT=Q6hli`60z`zC1i`wW0zM`=zOo| z2LkYkfCb_Eu4P)B^&U=PYOnV~_xXF>=kNC>FW&FDPQMqZVH)j4j$nIWerOI^2C<%P z3NsR6Y?0BT9^lN?pKdVSC+GnI-mvWt+S<+CDt(ve^`F=1sf-Om-WBDvrZVoVWml@i z6w6z(I#^iv@p%?rA`5HtF40yeEz7^e-y}1BxiBMtl*_lN zy`P~hCq0Wyd6~dy%xYaQ+mhnN{yiCKmUDf3k*GeN4V;H^xQX?+C3@G^wK zN%OFR`%5OJ2xLO&mBto-JDOFrMB{d*vD)b}0q>%-v4`SEV{=1%q zTLm1lWeDFgV0IBD{JW*4RlIyNL1rgP&1~y5W}RIXP%rasjR2_pSu(srs!juz?}_r+ zRz94XJK}_#w`c|D%L3 z4|D$@HFs0C1`cy=VHCm(GS)>tPnf0E$j2<)OmFzq-7M--pca0WLp5 z!k7b0a=H7yJuL|*@7=kBRB`7{d%unHq}9gf4FJNi0VW5kgoFx$NQ#S=7O^SUZ8mT` zhbp4eje$L{&(Iji=Hv42cdNT!VrMG07Lo8OY#J#WB^y!HaR&I_u)I};23dP1k^SrP zw*4n;`yp()#p{J{J}j>n{$>KKK@_PGwpzAIY4^2%`g9Q6z=m<-2`uUm+SQoYN1dt2h6ik8X6N^bV|4%xnvi8 zF>AQUQK9LcI=v-toNAy_V8-Vd-rm{CJasOO zb{5q54b+V;zH5wr4Z1=&<*-{9ssDW}P&GI}o8HQ*>UVUE*L6E#_PSyFI^zC@tz`pO z5*2Zy59n3h2TSh_4@sEXAjfhgeWWhO6z}VvpBDa6Iz)l-83j=4+oYB*BtuE2yDxjX zp4(H&7WcHYPRZx1*J3kkun>Fl_=1iBepk0@&MrUlMiswHYp=*PD-NlpW#kR4m25;e zvgA_4gg}}`&u#;5*G;$q>N#9+>_pbTXu2^vJo#;R{XjO;Mw1^Vc)@+2MZz2hcv;rl zphWc!@!CpX zNKqVtK#j3&UM5h zQY|D$brb;akez}o74;dm!w4T#Q|8))ZzRQDh6AJXn(3z~tD-!!uXF z&>hHQc{Q4P!kie~8FCk2;CIobtDszo#^}WuUx^Xd5e#)rz3W%Q^(`|s?Y6~nAGhFm z9dEF*G9gwU#sQKp{W751{b?RJ26}wU@dm&^mKZiERYY-rhRzuicwOJr(MYZP!vvTa z_nD0lon)G`D$Qv}MpGW_} zku~}^{zS4#!*p;Fk(xM;_zqh2Y97bYOZ?SXu9m&0*sY?jR8S|x=n)Fij84m49?^6N z19*Gf_uU*2iuC%-U{2kvaBOC~szsX>{>ZnXpag$omRCA6CtFA%mLF4sNaV8RyDlsZ zo8lO0yqu1|3p>1>ypC`{2M&P+vqsd&rU>55Gf8E5IUiO&Ty{LmjcvlrkXE&9N_J^p J(6`9$e*tGrDfIvV literal 0 HcmV?d00001 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 be8029a61573944749b4f7755c5b6a91a4dfa7b4..5a9a310c9270602b9ee7b28baf427c7ac71b8ec1 100644 GIT binary patch delta 2228 zcma)7-D@0G6yKTb*X&oaOmQ_OKEN&@3B< z+txbG(C}NXpA7iK)l~5@mPSO5-i0EgfK2*GjmJtA)3&V*i!|lTl85RRKg12?EQXq3 zbABi!Kt2cuB>h5xM7*Cor4*rpqUL%^WVmM~+GhB0@W=Qt7tl172g&=AKSUvqmXFtSfmfoYIbO62W zU%|S87R_CuV^^TR0UoglF)Mam-XXI~RpQX4HB#OrofEWH)H}`%v($5<+WO4Q@kE|( zADgyAc|`jBao2nK$qF%K5g-HP2Bst(wdJ0w|Aw!)Y~$%Yz;vkAs73H!4=ia@<|-{i|lP29H{! zwN$N_w{Y+s@F-Z`B!Fx>)7htY%;qL>TppJS@>09q#@zggG6FgN1SZZNt`>EvUUbX5 ziQNH5?@V?TmiLRlQSM1FmR9@1_MqtsIi&2cDxOb{&gR*lu=JS14yxj-)L6TxEDJ!S zL$c=3aeP@>7*jo95xB7^UNj_#_p%1Lv9Y&NmaceVUp+j)3-UBTS#JRlr-39#@B0!d z)vHxfbHpvBAbt)vVUZBE@~f0l9C=!{G)R?e8$JBLje40M=g1vWB5I zn)MQ~ZBo|PTY7D)+GxSH)D6Qw92x#Vj6eS%{4&tm>n0t?uciT;equ#jPb9IDhdPyX zCz1EvGN6b}qltP(>g&wg=gdYkS|)a>Ym09NE8_8?3yLa?)ad@Tp??(hb9LW6ac5w1 i2hgmIak*AA;fTOlvEi%D@Wrl84M+vv?|+n8R{jNj`P9|` delta 750 zcmdn(@I#-qfpzLz@rkS*lbhJZCoUBLQ5(-PF*34jzQA~ek#X1LgB*&C7L!jfTL@+( z=A@;jq^Ih`7?U|!)TLk?JvhSysLmCrZnGUr6ANJzbm1D|444UeWvN9asTJ|XiMa(i zsZ%oKycs9wa^8{m*3v4@tV-3=Qqa)K%q!7R$S)|#%+E{A(b81V)m51MheyYNYf1)t z?39danvGLxr)Xrb_IMH0q&wM%+lG;6avYCt7#AZ0Lxyw~8;~kZ$`I>eQqY*vIt5}D zL^wkxgE>RiFGJ1`sDQJFBQ>`mBe6KMc*^7{a69?YoHyBqN0CthWP!LGngvFh3Xd8l zgWPV;$Ts;Bx6b4QUQSkKpc|Mb`wPoY7UMHvWS;EJ=gH^})UP9&@c}610y0E4BNiAk zKxbw#PX53z!>gNFo93XLpzplZ0&xV7NQv?llQ%QD7*oFxx+ zRs_gkWDkn}yIwflYh|7_ZTAU2yPZpEN;p$;aNi9jt%$brn zxkB0sxvb@NxhE 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 96fb403f7fde112fe68433f3317a21a6e808781f..fc6aced69250570df59f44a08feda5915acefa12 100644 GIT binary patch literal 10455 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 GZu?)x5%l5! delta 1903 zcmbu9QD`GY7{@b{Y};JSHR+i|lI&*F(q_B8Tx;V=ub{SS-sPH{k?1bCmPR>yr<69zF>^DHR2gLwxW>ICN$=DVwxt!Izzx zZ@&4y@BiCx=B;agU1Bzw4=TbAvyBq4iP@dcy6s8w_V--~`Re-!V{{J|pGc!I=<e4C5Z!S|r^e@F2t+%$ro;BT34L|zoj(z>jR zA}@%gqHbK#4Q>83U#S|!N?9t2gM2m%>65HLU0;(*8*bmpa;@E$hrds;nG@7|O|H4( z7R$zA--l85$rF~+Id3U`GqAK#D#^wIDFe0wv2j|?LeY@dEwBc+tk*3;Va$nR7MzUP zVbuxb@iY&sHL?Js`+2kpv*GO3H^@>+s5i*4v7|&z%nR1rmXpabD@nzxurmrbLmd2O zm%Lt8B)zD+D~cS+4Jx4wvS^y<`)z5`gZ%y`5U9yuOFDRuA7{Lzplh%b?t>q~4E!FB zW?nircaEhbTP5G2$%$1^--HW2N!ad*pf71za}D*oN2{l1w|W(bp$XD#Xm0!eFmoz{ z?$hA0hUSCdeYR%W90J}&wo)Ha`h{C*|BJ`%nR8Chv?w(vk9nHwZ1Q*^l0|>GSv)$L z1vURCi?;p-Hk!d+3?BziH(?w^Z^C#O74Rbm218){+Jxats2Tz^%<*Q2b0;hliPnZP zq*iGuta_0S+_V?IiY+29@K4R*F`6qEI*X};GEa6%Q>$yR*2m#j%WyqD5+_%g&#&-? zBJ)*ABiG)LHQv7duossYXLgnSI@J2Jhefy%&ms{m7if2GR+o!+x?n z=E)LypERkoKwiyCd6hg1@MrHCyldC!zvF1TO$$kN`!#u`P+6CXWy{3X8q5wwhKyQO zwoI>lec3YUz9DI=vSF!r$w@On40=^wF0K@pt!=n044k7a@VOK978&eUi?M;b_|l!W zpE6*V{$pPN-D=SJ^bnn!HXZ)~9m)zO`eX1B&%rOF{fv5_1cp$KPt%FnSy@u;`qjsD z*;SDB<>ne@b6VK!D9DCXELoD$KW~|d0&L*~{G4Nv4?f|N_0%(u5zcw*+_U@MOwjA` gsDAR%O+Rf!8c8Q_zDhUV(UmlL{>gqlGkyjA1N06~sQ>@~ 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 84c6660c46bd29eb32ce09b695167816ad4e8aa2..ac3488e6dec97a695ddb09868aeead58547dee26 100644 GIT binary patch delta 931 zcmb`GJ#W)M7{_yIjbBQMTG2ppTF#;(1)+*m3``X-6-!qZXd;uum)=>}j(iuY45&qb z0Le>w&Ie#9Vg$Jp8w>~uF;sj46ok})Z%`!el7@s13>6+u_dL(}`Tzd*bC2`iFDaW! z`%bo{Jm>rA38iQUezEm3mxaruycU+dg$F2Pq>5-tR8ntuPXUll_P`zhZ}=0{N*Av1 zSL#;sY;-?8oN0kHzpCwkZT?d`I~8r*CzP#r7vi&0$$${@%lh1^+`!uy!Aj8ZopRWO z>x5y*M8*p!gMD>KC=3y6gg$a$jf9jf7{gDD)l!W0DC3|S@d+b=&sVhR#gl{Bmhv`X z$cuS=;ZgiBp2teGewd6G^m7}=|3aDyzLsf2UoX*~K$> z8_%v}v5CJlDx#e+u*89$19v6ywIdSurMpdT9<|BSxc50t{6j*Iw-2Co0o~!Y3YBjX zp9cmU|2$;qQ@8d})IP`^ca40eXZM)My~a5_(#`J}6E)#ntp=Wld^Y_5Ov{4xFc1Su z#bi{P&~JG4rV~`5W%bSd^GuH&o9-EqN>P4KHTkBZPPwN=C?K{Z!~ycOG{8H?tvR?1 delta 404 zcmaE&)2z6m ze#<2zVwRIxToMf?GV@AeV-<9D6()b=R5qBB!5%wB1E_-|HMbxmu{g6B=m5>eDYZaB z)*eAEG<{l=o4Ax2PftF;p(S-PLptMVhD-)?hOA$PoFC9$u^tVDM-7v~CW}pJodPii zMb%_|9tFm!lWTdrnWZyUOm5^+nEahbaIztf+~lLYZqgb5df4-mvPvooQm176@8L*E zEl!4VChPMR3-++3q?ROR=1fV