490490</ li >
491491< li class ="toctree-l1 "> < a class ="reference internal " href ="../tutorial.html "> Tutorial</ a > </ li >
492492< li class ="toctree-l1 has-children "> < a class ="reference internal " href ="../examples.html "> Examples</ a > < input class ="toctree-checkbox " id ="toctree-checkbox-2 " name ="toctree-checkbox-2 " type ="checkbox "/> < label class ="toctree-toggle " for ="toctree-checkbox-2 "> < i class ="fa-solid fa-chevron-down "> </ i > </ label > < ul >
493+ < li class ="toctree-l2 "> < a class ="reference internal " href ="../examples/bending_constraint.html "> Bending Constraint</ a > </ li >
493494< li class ="toctree-l2 "> < a class ="reference internal " href ="../examples/circularization.html "> Circularization</ a > </ li >
494495< li class ="toctree-l2 "> < a class ="reference internal " href ="../examples/closeness_constraint_with_target.html "> Closeness Constraint with Target</ a > </ li >
495496< li class ="toctree-l2 "> < a class ="reference internal " href ="../examples/face_normal_force.html "> Face Normal Force</ a > </ li >
504505< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.from_mesh.html "> Solver.from_mesh</ a > </ li >
505506< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_edge_strain_constraint.html "> Solver.add_mesh_edge_strain_constraint</ a > </ li >
506507< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_vertex_force.html "> Solver.add_mesh_vertex_force</ a > </ li >
507- < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_closeness_constraint.html "> Solver.add_mesh_closeness_constraint</ a > </ li >
508508< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_closeness_constraint.html "> Solver.add_closeness_constraint</ a > </ li >
509509< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_closeness_constraint_with_position.html "> Solver.add_closeness_constraint_with_position</ a > </ li >
510510< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_edge_strain_constraint.html "> Solver.add_edge_strain_constraint</ a > </ li >
511511< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_shrinking_edge_constraint.html "> Solver.add_shrinking_edge_constraint</ a > </ li >
512512< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_circle_constraint.html "> Solver.add_circle_constraint</ a > </ li >
513513< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_plane_constraint.html "> Solver.add_plane_constraint</ a > </ li >
514514< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_similarity_constraint.html "> Solver.add_similarity_constraint</ a > </ li >
515- < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.set_similarity_constraint_shape.html "> Solver.set_similarity_constraint_shape</ a > </ li >
516515< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_regular_polygon_constraint.html "> Solver.add_regular_polygon_constraint</ a > </ li >
516+ < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_bending_constraint.html "> Solver.add_bending_constraint</ a > </ li >
517+ < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_shape_constraint.html "> Solver.add_shape_constraint</ a > </ li >
517518< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_vertex_force.html "> Solver.add_vertex_force</ a > </ li >
518519< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_normal_force_with_faces.html "> Solver.add_normal_force_with_faces</ a > </ li >
519- < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.set_points .html "> Solver.set_points </ a > </ li >
520- < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.get_points .html "> Solver.get_points </ a > </ li >
520+ < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_gravity_force .html "> Solver.add_gravity_force </ a > </ li >
521+ < li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.points .html "> Solver.points </ a > </ li >
521522< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.init.html "> Solver.init</ a > </ li >
522523< li class ="toctree-l3 "> < a class ="reference internal " href ="generated/compas_shapeop.Solver.solve.html "> Solver.solve</ a > </ li >
523524</ ul >
@@ -607,16 +608,13 @@ <h3>Mesh Integration</h3>
607608< table class ="autosummary longtable table ">
608609< tbody >
609610< tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.from_mesh.html " title ="compas_shapeop.Solver.from_mesh "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.from_mesh</ span > </ code > </ a > </ p > </ td >
610- < td > < p > Create a solver initialized with vertices from a COMPAS mesh.</ p > </ td >
611+ < td > < p > Create a solver from a COMPAS mesh.</ p > </ td >
611612</ tr >
612613< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_edge_strain_constraint.html " title ="compas_shapeop.Solver.add_mesh_edge_strain_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_mesh_edge_strain_constraint</ span > </ code > </ a > </ p > </ td >
613614< td > < p > Add edge strain constraints to all edges of a COMPAS mesh.</ p > </ td >
614615</ tr >
615616< tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_vertex_force.html " title ="compas_shapeop.Solver.add_mesh_vertex_force "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_mesh_vertex_force</ span > </ code > </ a > </ p > </ td >
616- < td > < p > Add a force to all vertices of a COMPAS mesh.</ p > </ td >
617- </ tr >
618- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_mesh_closeness_constraint.html " title ="compas_shapeop.Solver.add_mesh_closeness_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_mesh_closeness_constraint</ span > </ code > </ a > </ p > </ td >
619- < td > < p > Add closeness constraints to specific vertices of a COMPAS mesh.</ p > </ td >
617+ < td > < p > Add vertex forces to all vertices of a COMPAS mesh.</ p > </ td >
620618</ tr >
621619</ tbody >
622620</ table >
@@ -629,10 +627,10 @@ <h3>Constraints</h3>
629627< td > < p > Add a closeness constraint to the solver.</ p > </ td >
630628</ tr >
631629< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_closeness_constraint_with_position.html " title ="compas_shapeop.Solver.add_closeness_constraint_with_position "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_closeness_constraint_with_position</ span > </ code > </ a > </ p > </ td >
632- < td > < p > Add a closeness constraint with a specified target position .</ p > </ td >
630+ < td > < p > Add a closeness constraint at a specific xyz coordinate .</ p > </ td >
633631</ tr >
634632< tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_edge_strain_constraint.html " title ="compas_shapeop.Solver.add_edge_strain_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_edge_strain_constraint</ span > </ code > </ a > </ p > </ td >
635- < td > < p > Add an edge strain constraint to the solver .</ p > </ td >
633+ < td > < p > Add an edge strain constraint between two specific vertices .</ p > </ td >
636634</ tr >
637635< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_shrinking_edge_constraint.html " title ="compas_shapeop.Solver.add_shrinking_edge_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_shrinking_edge_constraint</ span > </ code > </ a > </ p > </ td >
638636< td > < p > Add a shrinking edge constraint to the solver.</ p > </ td >
@@ -641,17 +639,20 @@ <h3>Constraints</h3>
641639< td > < p > Add circle constraint to make vertices lie on a circle.</ p > </ td >
642640</ tr >
643641< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_plane_constraint.html " title ="compas_shapeop.Solver.add_plane_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_plane_constraint</ span > </ code > </ a > </ p > </ td >
644- < td > < p > Add plane constraint to make vertices lie on a plane .</ p > </ td >
642+ < td > < p > Add a plane constraint to the solver .</ p > </ td >
645643</ tr >
646644< tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_similarity_constraint.html " title ="compas_shapeop.Solver.add_similarity_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_similarity_constraint</ span > </ code > </ a > </ p > </ td >
647645< td > < p > Add similarity constraint to transform vertices to match a target shape.</ p > </ td >
648646</ tr >
649- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.set_similarity_constraint_shape.html " title ="compas_shapeop.Solver.set_similarity_constraint_shape "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.set_similarity_constraint_shape</ span > </ code > </ a > </ p > </ td >
650- < td > < p > Set the target shape for a similarity constraint.</ p > </ td >
651- </ tr >
652- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_regular_polygon_constraint.html " title ="compas_shapeop.Solver.add_regular_polygon_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_regular_polygon_constraint</ span > </ code > </ a > </ p > </ td >
647+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_regular_polygon_constraint.html " title ="compas_shapeop.Solver.add_regular_polygon_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_regular_polygon_constraint</ span > </ code > </ a > </ p > </ td >
653648< td > < p > Add constraint to make vertices form a regular polygon.</ p > </ td >
654649</ tr >
650+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_bending_constraint.html " title ="compas_shapeop.Solver.add_bending_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_bending_constraint</ span > </ code > </ a > </ p > </ td >
651+ < td > < p > Add a bending constraint between two neighboring triangles.</ p > </ td >
652+ </ tr >
653+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_shape_constraint.html " title ="compas_shapeop.Solver.add_shape_constraint "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_shape_constraint</ span > </ code > </ a > </ p > </ td >
654+ < td > < p > Add a unified shape constraint with different shape types.</ p > </ td >
655+ </ tr >
655656</ tbody >
656657</ table >
657658</ section >
@@ -660,28 +661,28 @@ <h3>Forces</h3>
660661< table class ="autosummary longtable table ">
661662< tbody >
662663< tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_vertex_force.html " title ="compas_shapeop.Solver.add_vertex_force "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_vertex_force</ span > </ code > </ a > </ p > </ td >
663- < td > < p > Add a force to a specific vertex .</ p > </ td >
664+ < td > < p > Add a vertex force to a specific point .</ p > </ td >
664665</ tr >
665666< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_normal_force_with_faces.html " title ="compas_shapeop.Solver.add_normal_force_with_faces "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_normal_force_with_faces</ span > </ code > </ a > </ p > </ td >
666667< td > < p > Add a normal force (inflation) using custom face topology.</ p > </ td >
667668</ tr >
669+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.add_gravity_force.html " title ="compas_shapeop.Solver.add_gravity_force "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.add_gravity_force</ span > </ code > </ a > </ p > </ td >
670+ < td > < p > Add a gravity force to all vertices in the system.</ p > </ td >
671+ </ tr >
668672</ tbody >
669673</ table >
670674</ section >
671675< section id ="core-methods ">
672676< h3 > Core Methods</ h3 >
673677< table class ="autosummary longtable table ">
674678< tbody >
675- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.set_points.html " title ="compas_shapeop.Solver.set_points "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.set_points</ span > </ code > </ a > </ p > </ td >
676- < td > < p > Set the vertex positions in the solver.</ p > </ td >
677- </ tr >
678- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.get_points.html " title ="compas_shapeop.Solver.get_points "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.get_points</ span > </ code > </ a > </ p > </ td >
679- < td > < p > Get the current vertex positions from the solver.</ p > </ td >
679+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.points.html " title ="compas_shapeop.Solver.points "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.points</ span > </ code > </ a > </ p > </ td >
680+ < td > < p > Get the solver's current point positions.</ p > </ td >
680681</ tr >
681- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.init.html " title ="compas_shapeop.Solver.init "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.init</ span > </ code > </ a > </ p > </ td >
682- < td > < p > Initialize the solver.</ p > </ td >
682+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.init.html " title ="compas_shapeop.Solver.init "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.init</ span > </ code > </ a > </ p > </ td >
683+ < td > < p > Initialize the solver with simulation parameters .</ p > </ td >
683684</ tr >
684- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.solve.html " title ="compas_shapeop.Solver.solve "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.solve</ span > </ code > </ a > </ p > </ td >
685+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="generated/compas_shapeop.Solver.solve.html " title ="compas_shapeop.Solver.solve "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> Solver.solve</ span > </ code > </ a > </ p > </ td >
685686< td > < p > Solve the constraint problem.</ p > </ td >
686687</ tr >
687688</ tbody >
0 commit comments