aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2013-06-05 10:10:13 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2013-06-05 10:10:13 +0000
commit9b422d40b1429a59b1e2acc9ffe315232737fe35 (patch)
treee402c1712e8a1737469e4480549d027e77284607
parent96382b7eb561d0e6231a1d665eaf878d22fe7b7e (diff)
update help file thanks to Alexandros Drymonitis
svn path=/trunk/externals/pmpd/; revision=17148
-rw-r--r--TODO.txt7
-rw-r--r--pmpd-help.pd723
-rw-r--r--pmpd2d-help.pd509
-rw-r--r--pmpd3d-help.pd326
-rw-r--r--pmpd~-help.pd84
5 files changed, 814 insertions, 835 deletions
diff --git a/TODO.txt b/TODO.txt
index be4cb14..7e08f1a 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,6 +1,9 @@
TODO :
-closestNeighbor $1(Id) $2(number of neighbor message
+closestNeighbor $1(Id) $2(number of neighbor message)
linkEndL message, like linkEndT, but for list
add creation parametter to fix maximum number of link and mass
-iBox3d / iBox2d interactor
+iBox3d / iBox2d interactors
+iTriangle3d / iSegment2d interactors
+openCL
+remove redondant test on table (when many tablink are used)
diff --git a/pmpd-help.pd b/pmpd-help.pd
index 3e2c339..3e386ad 100644
--- a/pmpd-help.pd
+++ b/pmpd-help.pd
@@ -1,4 +1,4 @@
-#N canvas 1190 226 566 769 10;
+#N canvas 171 123 590 764 10;
#X obj 4 369 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 709 cnv 15 550 40 empty empty empty 20 12 0 14 -158509 -66577
@@ -26,7 +26,7 @@
#X text 11 602 Outlets:;
#X text 19 659 See Also:;
#X text 74 48 Full Name:;
-#N canvas 58 50 262 70 Related_Objects 0;
+#N canvas 56 110 262 70 Related_Objects 0;
#X obj 3 10 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 3 30 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
@@ -34,8 +34,8 @@
#X text 5 10 Externals and libraries;
#X obj 44 37 pmpd2d;
#X obj 140 37 pmpd3d;
-#X restore 122 715 pd Related_Objects;
-#N canvas 541 387 524 302 init 0;
+#X restore 122 716 pd Related_Objects;
+#N canvas 537 397 524 302 init 0;
#X msg 89 187 Xmax 127 \, Xmin 0;
#X obj 89 215 t a;
#X obj 89 33 loadbang;
@@ -65,12 +65,12 @@ souple 3 2 1 0.5;
#X obj 17 344 s \$0-out;
#X obj 17 295 r \$0-in;
#X obj 261 184 vsl 15 127 0 127 0 0 empty empty Drag-----> -70 60 1
-10 -262144 -1 -1 0 1;
+10 -262144 -1 -1 4400 1;
#X obj 292 184 vsl 15 127 0 127 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
+-1 -1 4400 1;
#X obj 261 345 s \$0-in;
#X msg 261 322 posX fix \$1;
-#N canvas 565 515 355 193 compute 0;
+#N canvas 561 581 355 193 compute 0;
#X obj 159 37 inlet;
#X obj 159 74 metro 20;
#X obj 159 135 s \$0-in;
@@ -86,23 +86,19 @@ souple 3 2 1 0.5;
-1 -1;
#X obj 261 131 route massesPosL;
#X obj 311 184 vsl 15 127 0 127 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
+-1 -1 4400 1;
#X obj 330 184 vsl 15 127 0 127 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
+-1 -1 4400 1;
#X obj 261 152 unpack f f f f;
-#X text 101 388 Bang - A bang at the left inlet compute the new model
-state based on previous instant.;
-#X text 188 478 To set the model parameters after creation.;
-#X text 188 456 To create the model masses and links.;
-#X text 186 512 To get the model parameters;
+#X text 160 477 To set the model parameters after creation.;
+#X text 160 458 To create the model masses and links.;
#X text 103 582 None;
#X text 18 623 - Left:;
#X text 101 624 Outputs the model parameters asked with the attributes
messages.;
#X text 101 420 Messages - Different messages are used to control the
msd object. They are of three types :;
-#X text 9 681 CATEGORY: control;
-#X text 9 691 KEYWORDS: physical model mass spring damper link;
+#X text 9 680 CATEGORY: control;
#X text 111 659 01_msdtest.pd;
#X obj 157 48 pmpd;
#X text 12 8 HELP: pmpd;
@@ -112,282 +108,264 @@ msd object. They are of three types :;
#X text 266 716 - Cyrille Henry \, 2011;
#X text 283 732 based on MSD by Nicolas Montgermont;
#X obj 17 187 loadbang;
-#N canvas 414 430 1213 533 links_attributes 0;
+#N canvas 181 157 606 881 links_attributes 0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 10 248 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 9 221 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 4 227 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+#X obj 9 201 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X text 7 2 ATTRIBUTES Messages;
-#X text 7 227 Lists :;
-#X obj 11 302 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X text 12 201 Lists :;
+#X obj 10 274 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 11 358 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 11 327 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 611 26 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 11 460 cnv 15 170 200 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 605 5 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+#X obj 11 439 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
-#X obj 612 80 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X text 257 419 \$1 (optional): Masses Id;
+#X text 284 800 \$2 (optional): Masses Id;
+#X text 283 787 \$1 : table name;
+#X text 14 439 tables :;
+#X text 169 233 Output all links center positions in a list on outlet
+No 1;
+#X obj 11 380 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 612 133 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
+#X text 183 469 Output all links center positions in a table (\$1)
+;
+#X obj 8 95 cnv 15 150 100 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 349 475 \$1 (optional): Masses Id;
-#X text 834 260 \$2 (optional): Masses Id;
-#X text 833 247 \$1 : table name;
-#X text 608 5 tables :;
+#X msg 16 103 linkPos [\$1];
+#X msg 16 138 linkEnd [\$1];
+#X obj 8 74 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 11 74 generic :;
+#X text 196 116 linkPos symbolId number center;
+#X text 199 154 linkEnd symbolId number posX1 posX2;
+#X obj 11 664 cnv 15 170 200 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X msg 25 672 linkEndT \$1 [\$2];
+#X msg 34 692 linkEnd1T \$1 [\$2];
+#X msg 34 711 linkEnd2T \$1 [\$2];
+#X msg 34 730 linkEndXT \$1 [\$2];
+#X msg 34 749 linkEnd1XT \$1 [\$2];
+#X msg 34 768 linkEnd2XT \$1 [\$2];
+#X msg 34 787 linkEndYT \$1 [\$2];
+#X msg 34 806 linkEnd1YT \$1 [\$2];
+#X msg 34 825 linkEnd2YT \$1 [\$2];
+#X text 216 703 table is posX1 posY1 posX2 posY2 ....;
+#X msg 18 231 linkPosL (\$1);
+#X msg 18 250 linkPosXL (\$1);
+#X msg 19 281 linkLengthL (\$1);
+#X msg 19 300 linkLengthXL (\$1);
+#X msg 18 334 linkPosSpeedL (\$1);
+#X msg 18 353 linkPosSpeedXL (\$1);
+#X msg 18 387 linkLengthSpeedL (\$1);
+#X msg 18 406 linkLengthSpeedXL (\$1);
+#X msg 15 465 linkPosT \$1 (\$2);
+#X msg 15 484 linkPosXT \$1 (\$2);
+#X msg 16 512 linkLengthT \$1 (\$2);
+#X msg 16 531 linkLengthXT \$1 (\$2);
+#X msg 16 562 linkPosSpeedT \$1 (\$2);
+#X msg 16 581 linkPosSpeedXT \$1 (\$2);
+#X msg 16 612 linkLengthSpeedT \$1 (\$2);
+#X msg 16 631 linkLengthSpeedXT \$1 (\$2);
#X text 15 30 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
+of its internal parameters. They can be output as lists for positions
and forces of links;
-#X text 170 260 Output all links center positions in a list on outlet
-No 1;
-#X obj 12 414 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 184 422 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X obj 612 189 cnv 15 150 50 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 808 197 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X text 793 47 Output all links center positions in a table (\$1);
-#X text 170 313 Output all link lenght in a list on outlet No 1;
-#X text 171 372 Output all link center speed in a list on outlet No
+#X text 200 175 \$1 : Id float or symbol of masses (nothing for all)
+;
+#X text 167 99 output a message for every link :;
+#X text 167 138 output a message for every link :;
+#X text 169 285 Output all links length in a list on outlet No 1;
+#X text 171 341 Output all links center speed in a list on outlet No
1;
-#X text 797 94 Output all link length in a list on outlet No 1;
-#X text 795 144 Output all link center speed in a list on outlet No
+#X text 171 387 Output all links length deformation speed in a list
+on outlet No 1;
+#X text 181 515 Output all links length in a list on outlet No 1;
+#X text 183 563 Output all links center speed in a list on outlet No
1;
-#X obj 8 95 cnv 15 150 100 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 172 100 \$1 : id float or symbol of masses (nothing for all)
-;
-#X text 172 160 \$1 : id float or symbol of masses (nothing for all)
-;
-#X msg 12 103 linkPos [\$1];
-#X msg 12 163 linkEnd [\$1];
-#X text 173 120 output a message for every links :;
-#X text 173 180 output a message for every links :;
-#X obj 2 76 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 5 76 generic :;
-#X text 202 137 linkPos symbolId number center;
-#X text 172 196 linkEnd symbolId number posX1 posX2;
-#X obj 614 323 cnv 15 150 200 empty empty empty 20 12 0 14 -233017
--66577 0;
-#X obj 608 302 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 611 302 tables :;
-#X msg 628 331 linkEndT \$1 [\$2];
-#X text 790 331 Put position of the 2 link end on a table [\$1] \,
-filter on link id is possible;
-#X msg 640 351 linkEnd1T \$1 [\$2];
-#X msg 639 371 linkEnd2T \$1 [\$2];
-#X msg 638 392 linkEndXT \$1 [\$2];
-#X msg 638 411 linkEnd1XT \$1 [\$2];
-#X msg 638 431 linkEnd2XT \$1 [\$2];
-#X msg 639 453 linkEndYT \$1 [\$2];
-#X msg 641 473 linkEnd1YT \$1 [\$2];
-#X msg 640 493 linkEnd2YT \$1 [\$2];
-#X text 795 363 table is posX1 posY1 posX2 posY2 ....;
-#X msg 11 259 linkPosL (\$1);
-#X msg 11 278 linkPosXL (\$1);
-#X msg 13 309 linkLengthL (\$1);
-#X msg 13 328 linkLengthXL (\$1);
-#X msg 16 365 linkPosSpeedL (\$1);
-#X msg 16 384 linkPosSpeedXL (\$1);
-#X msg 14 421 linkLengthSpeedL (\$1);
-#X msg 14 440 linkLengthSpeedXL (\$1);
-#X msg 615 38 linkPosT \$1 (\$2);
-#X msg 616 57 linkPosXT \$1 (\$2);
-#X msg 616 92 linkLengthT \$1 (\$2);
-#X msg 616 111 linkLengthXT \$1 (\$2);
-#X msg 616 139 linkPosSpeedT \$1 (\$2);
-#X msg 616 158 linkPosSpeedXT \$1 (\$2);
-#X msg 614 196 linkLengthSpeedT \$1 (\$2);
-#X msg 613 215 linkLengthSpeedXT \$1 (\$2);
-#X restore 12 519 pd links_attributes ___;
-#N canvas 306 101 1146 821 dynamic 0;
-#X obj 5 3 cnv 15 550 15 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 10 85 cnv 15 130 580 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 4 62 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X obj 575 86 cnv 15 130 380 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 568 62 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 7 62 Masses :;
-#X text 571 62 Links :;
-#X text 7 2 DYNAMIC SETTINGS Messages;
-#X text 190 144 Add force on mass(es);
-#X msg 30 152 forceX \$1 \$2;
-#X text 192 212 \$1 : Value;
-#X text 193 107 \$1 : Id (symbol) or No;
-#X text 193 161 \$1 : Id (symbol) or No;
-#X msg 29 244 setMobile \$1;
-#X msg 29 265 setFixed \$1;
-#X text 193 89 Set position of fixed mass(es);
-#X text 193 125 \$2 : Value;
-#X text 193 179 \$2 : Value;
-#X text 189 196 Set minimimum and maximum position of all masses;
-#X text 188 244 Set mass to mobile or fixed;
-#X msg 594 150 setD \$1 \$2;
-#X text 749 136 \$2 : New value;
-#X msg 594 99 setK \$1 \$2;
-#X text 749 192 \$2 : New value;
-#X text 749 245 \$2 : New value;
-#X text 743 100 Set rigidity of link(s);
-#X text 743 156 Set damping of link(s);
-#X msg 594 205 setL \$1 \$2;
-#X text 743 209 Set initial lenght of link(s);
-#X text 749 118 \$1 : Id (symbol) or No;
-#X text 749 174 \$1 : Id (symbol) or No;
-#X text 749 227 \$1 : Id (symbol) or No;
-#X text 191 261 \$1 : Id (symbol) or No;
-#X text 10 25 Dynamic settings messages allows the user to redefine
-internal parameters of links and masses.;
-#X msg 26 610 setDEnv \$1;
-#X text 173 612 Change environement damping;
-#X text 185 629 \$1 : damping;
-#X msg 584 358 setLinkId \$1 \$2;
-#X text 738 359 Change the Id of a link;
-#X text 739 376 \$1 : link (number or Id);
-#X text 742 393 \$2 : New Id;
-#X msg 587 431 setLKTab \$1 \$2;
-#X text 746 431 change the table (K) size of a non linear link;
-#X text 747 451 \$1 : link (number or Id);
-#X text 748 468 \$2 : New KL;
-#X text 747 513 \$1 : link (number or Id);
-#X msg 587 493 setLDTab \$1 \$2;
-#X text 746 493 change the table (D) size of a non linear link;
-#X text 748 530 \$2 : New DL;
+#X text 184 612 Output all links length deformation speed in a list
+on outlet No 1;
+#X text 187 672 Put position of the 2 link end on a table [\$1] \,
+filter on link Id is possible;
+#X restore 12 517 pd links_attributes ___;
+#N canvas 165 110 997 789 dynamic 0;
+#X obj 5 3 cnv 15 900 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 10 85 cnv 15 130 650 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 4 62 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X obj 465 86 cnv 15 130 650 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 458 62 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 20 62 Masses :;
+#X text 471 62 Links :;
+#X text 17 2 DYNAMIC SETTINGS Messages;
+#X text 148 149 Add force on mass(es);
+#X msg 21 152 forceX \$1 \$2;
+#X text 188 212 \$1 : Value;
+#X text 187 109 \$1 : Id (symbol) or No;
+#X text 188 164 \$1 : Id (symbol) or No;
+#X msg 20 244 setMobile \$1;
+#X msg 20 265 setFixed \$1;
+#X text 146 94 Set position of fixed mass(es);
+#X text 187 125 \$2 : Value;
+#X text 188 179 \$2 : Value;
+#X text 147 196 Set minimimum and maximum position of all masses;
+#X text 147 244 Set mass to mobile or fixed;
+#X msg 476 150 setD \$1 \$2;
+#X text 639 136 \$2 : New value;
+#X msg 475 99 setK \$1 \$2;
+#X text 639 192 \$2 : New value;
+#X text 639 245 \$2 : New value;
+#X text 607 100 Set rigidity of link(s);
+#X text 606 156 Set damping of link(s);
+#X msg 477 205 setL \$1 \$2;
+#X text 639 118 \$1 : Id (symbol) or No;
+#X text 639 174 \$1 : Id (symbol) or No;
+#X text 639 227 \$1 : Id (symbol) or No;
+#X text 189 261 \$1 : Id (symbol) or No;
+#X msg 21 610 setDEnv \$1;
+#X text 148 612 Change environement damping;
+#X text 184 629 \$1 : damping;
+#X msg 477 342 setLinkId \$1 \$2;
+#X text 608 343 Change the Id of a link;
+#X text 639 360 \$1 : link (number or Id);
+#X text 639 377 \$2 : New Id;
+#X msg 477 399 setLKTab \$1 \$2;
+#X text 606 399 change the table (K) size of a non linear link;
+#X text 637 419 \$1 : link (number or Id);
+#X text 638 436 \$2 : New KL;
+#X text 637 469 \$1 : link (number or Id);
+#X msg 477 456 setLDTab \$1 \$2;
+#X text 606 456 change the table (D) size of a non linear link;
+#X text 638 479 \$2 : New DL;
#X text 190 401 \$2 : New Id;
-#X msg 24 367 setMassId \$1 \$2;
-#X text 190 367 Change the Id of a mass;
+#X msg 22 367 setMassId \$1 \$2;
+#X text 148 367 Change the Id of a mass;
#X text 191 384 \$1 : mass (number or Id);
#X msg 22 428 setForce \$1 \$2;
#X msg 22 496 setSpeed \$1 \$2;
-#X msg 23 559 addPos \$1 \$2;
+#X msg 21 559 addPos \$1 \$2;
#X text 185 448 \$1 : Id (symbol) or No;
#X text 185 466 \$2 : Value;
-#X text 182 431 set force on mass(es);
+#X text 148 431 set force on mass(es);
#X text 184 515 \$1 : Id (symbol) or No;
#X text 184 533 \$2 : Value;
-#X text 181 498 set speed of a mass(es);
+#X text 147 498 set speed of a mass(es);
#X text 183 576 \$1 : Id (symbol) or No;
#X text 183 594 \$2 : Value;
-#X text 180 559 add pos of a mass(es);
-#X text 185 299 grab a mass \, and move it;
+#X text 147 559 add pos of a mass(es);
+#X text 147 299 grab a mass \, and move it;
#X text 187 317 \$1 : position;
#X text 187 333 \$2 : grab or not (0 or 1);
-#X msg 28 300 grabMass \$1 \$2;
-#X msg 31 96 SetPosX \$1 \$2;
-#X msg 31 116 SetPos \$1 \$2;
-#X msg 30 172 force \$1 \$2;
-#X msg 30 195 minX \$1;
-#X msg 30 217 maxX \$1;
-#X msg 90 195 min \$1;
-#X msg 90 217 max \$1;
-#X text 180 690 \$2 : damping;
-#X text 179 675 \$1 : Id (symbol) or No;
-#X msg 16 659 setDEnvOffset \$1 \$2;
-#X text 168 659 Change environement damping offset;
+#X msg 20 300 grabMass \$1 \$2;
+#X msg 22 96 SetPosX \$1 \$2;
+#X msg 22 116 SetPos \$1 \$2;
+#X msg 21 172 force \$1 \$2;
+#X msg 21 195 minX \$1;
+#X msg 21 217 maxX \$1;
+#X msg 81 195 min \$1;
+#X msg 81 217 max \$1;
+#X text 183 690 \$2 : damping;
+#X text 182 675 \$1 : Id (symbol) or No;
+#X msg 19 659 setDEnvOffset \$1 \$2;
+#X text 145 659 Change environement damping offset;
#X msg 22 448 setForceX \$1 \$2;
#X msg 22 516 setSpeedX \$1 \$2;
-#X msg 23 579 addPosX \$1 \$2;
-#X text 721 272 Set initial lenght of link(s);
-#X text 727 290 \$1 : Id (symbol) or No;
-#X msg 581 271 setLCurrent \$1 [\$2];
-#X text 727 308 \$2 : mix between link size (0) and curent length (1)
+#X msg 21 579 addPosX \$1 \$2;
+#X text 637 284 \$1 : Id (symbol) or No;
+#X msg 477 265 setLCurrent \$1 [\$2];
+#X text 637 302 \$2 : mix between link size (0) and curent length (1)
;
-#X text 722 326 if no \$2 arg is provide \, then L is set to curent
+#X text 636 561 \$1 : link (number or Id);
+#X text 635 517 \$1 : link (number or Id);
+#X msg 477 541 setActive \$1 \$2;
+#X msg 477 497 setInactive \$1 \$2;
+#X text 603 541 compute the link at each bang;
+#X text 631 628 \$1 : link (number or Id);
+#X msg 476 585 setOverdamp \$1 \$2;
+#X text 631 642 \$2 : overdamp value;
+#X text 633 685 \$1 : link (number or Id);
+#X msg 478 666 setEnd \$1 \$2 \$3;
+#X text 632 701 \$2 : mass number for end 1;
+#X text 602 668 Change the masses a link is connected to;
+#X text 631 717 \$3 : mass number for end 2;
+#X msg 498 689 setEnd1 \$1 \$2;
+#X msg 498 711 setEnd2 \$1 \$2;
+#X text 10 25 Dynamic settings messages allow the user to redefine
+internal parameters of links and masses.;
+#X text 636 320 if no \$2 arg is provided \, then L is set to curent
length;
-#X text 600 786 if only 1 argument is previded \, message generally
-used this argument as the value applayed to all masses (or link);
-#X text 746 596 \$1 : link (number or Id);
-#X text 745 552 \$1 : link (number or Id);
-#X msg 586 576 setActive \$1 \$2;
-#X msg 585 532 setInactive \$1 \$2;
-#X text 744 532 did not compute a link anymore;
-#X text 745 576 compute the link at each bang;
-#X text 741 663 \$1 : link (number or Id);
-#X msg 586 620 setOverdamp \$1 \$2;
-#X text 741 677 \$2 : overdamp value;
-#X text 740 621 Change the overdamp of a link. i.e a strange parametter
-that amplifie forces that oposed to movment. Use at your own risk.
+#X text 489 750 if only 1 argument is provided \, message generally
+uses this argument as the value applayed to all masses (or link);
+#X text 604 497 do not compute a link anymore;
+#X text 603 586 Change the overdamp of a link. i.e a strange parametter
+that amplifies forces that oppose to movment. Use at your own risk.
;
-#X text 743 724 \$1 : link (number or Id);
-#X msg 588 705 setEnd \$1 \$2 \$3;
-#X text 742 740 \$2 : mass number for end 1;
-#X text 742 707 Change the masses a link is connected to;
-#X text 741 756 \$3 : mass number for end 2;
-#X msg 600 728 setEnd1 \$1 \$2;
-#X msg 600 750 setEnd2 \$1 \$2;
-#X restore 12 478 pd dynamic settings ___;
-#N canvas 1072 165 630 814 creation____________ 0;
-#X obj 11 95 cnv 15 100 35 empty empty empty 20 12 0 14 -233017 -66577
+#X text 603 209 Set initial length of link(s);
+#X text 611 266 Set initial length of link(s);
+#X restore 12 477 pd dynamic settings ___;
+#N canvas 579 169 571 697 creation____________ 0;
+#X obj 11 95 cnv 15 100 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 5 75 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 3 cnv 15 550 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 7 2 CREATION Messages;
-#X obj 10 186 cnv 15 150 140 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 9 191 cnv 15 240 140 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 4 167 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
-#X obj 10 362 cnv 15 240 220 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 10 361 cnv 15 240 330 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 3 338 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X msg 32 104 reset;
-#X text 202 197 Add a mass;
-#X text 288 198 \$1 : Id (symbol);
-#X text 287 218 \$2 : fixed or mobile (0/1);
-#X text 287 236 \$3 : mass;
-#X msg 32 197 mass \$1 \$2 \$3 \$4;
-#X text 287 254 \$4 : initial position;
+#X text 262 197 Add a mass;
+#X text 290 220 \$1 : Id (symbol);
+#X text 289 240 \$2 : fixed or mobile (0/1);
+#X text 289 258 \$3 : mass;
+#X msg 23 197 mass \$1 \$2 \$3 \$4;
+#X text 289 276 \$4 : initial position;
#X text 7 167 Masses :;
#X text 7 74 Reset :;
#X text 129 105 Delete all masses \, links and internal variables;
#X text 6 338 Links :;
-#X text 271 390 \$1 : Id (symbol);
-#X text 271 390 \$1 : Id (symbol);
-#X text 271 443 \$4 : rigidity;
-#X text 271 408 \$2 : creation No/Id of mass1;
-#X text 271 426 \$3 : creation No/Id of mass2;
+#X text 291 390 \$1 : Id (symbol);
+#X text 291 390 \$1 : Id (symbol);
+#X text 291 443 \$4 : rigidity;
+#X text 291 408 \$2 : creation No/Id of mass1;
+#X text 291 426 \$3 : creation No/Id of mass2;
#X text 266 371 Add link(s);
-#X text 271 461 \$5 : damping;
+#X text 291 461 \$5 : damping;
#X text 10 28 Creation messages are used to define the structure of
the model. Messages create links and masses or destroy them.;
-#X text 271 479 \$6 : Power of the rigidity distance;
-#X msg 35 549 tabLink \$1 \$2 \$3 \$4 \$5 \$6 \$7;
-#X text 267 498 (\$7) : minimum lenght of link;
-#X text 268 515 (\$8) : maximum lenght of link;
-#X text 266 565 \$1 : Id (symbol);
-#X text 266 565 \$1 : Id (symbol);
-#X text 266 583 \$2 : creation No/Id of mass1;
-#X text 266 601 \$3 : creation No/Id of mass2;
-#X text 261 546 Add non linear link(s);
-#X text 264 618 \$4 : table name for the rigidity;
-#X text 264 636 \$5 : length of the table;
-#X text 264 654 \$6 : table name for the damping;
-#X text 263 673 \$7 : length of the table;
-#X msg 33 131 print;
-#X text 103 131 post surrent physical model topology;
-#X msg 30 371 link \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8 ]]];
+#X text 291 479 \$6 : Power of the rigidity distance;
+#X msg 20 549 tabLink \$1 \$2 \$3 \$4 \$5 \$6 \$7;
+#X text 292 565 \$1 : Id (symbol);
+#X text 292 565 \$1 : Id (symbol);
+#X text 292 583 \$2 : creation No/Id of mass1;
+#X text 292 601 \$3 : creation No/Id of mass2;
+#X text 261 549 Add non linear link(s);
+#X text 292 618 \$4 : table name for the rigidity;
+#X text 292 636 \$5 : length of the table;
+#X text 292 654 \$6 : table name for the damping;
+#X text 292 672 \$7 : length of the table;
+#X msg 33 130 print;
+#X msg 19 371 link \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8 ]]];
+#X text 128 130 post current physical model topology;
+#X text 287 498 [\$7] : minimum lenght of link;
+#X text 288 515 [\$8] : maximum lenght of link;
#X restore 12 457 pd creation____________;
-#N canvas 0 50 901 640 More_Info 0;
+#N canvas 50 82 901 640 More_Info 0;
#X text 96 12 pmpd : mass - spring - damper model;
-#X text 27 155 Be careful : if masses are deleted \, lists messages
-won't work;
-#X text 27 60 It is designed to implement particules physical model
-in PD.The model is based on two elements type : mass and link. The
-pmpd masses are the principals objects of the model. They got only
-one physical parameter \, the value of their mass. They can be mobile
-or fixed \, in this case forces applied on them automatically \, by
-links \, or manually \, by messages \, don't do anything.;
#X obj 426 -5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 426 294 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -400,7 +378,7 @@ links \, or manually \, by messages \, don't do anything.;
#X coords 0 3 3 -3 200 150 1;
#X restore 31 428 graph;
#X text 89 585 L0;
-#N canvas 324 73 956 727 figure 0;
+#N canvas 113 82 956 727 figure 0;
#X obj 284 53 loadbang;
#X msg 293 125 \; rigidity1 resize 1 \; rigidity1 resize 4 \; rigidity1
bounds 0 3 3 -3 \; rigidity1 0 -1 0 1 2 \; rigidity1 ylabel -0.5 \;
@@ -566,166 +544,167 @@ rigidity2 yticks 0 5 5 \; rigidity3 resize 51 \; rigidity3 xticks 0
#X text 496 75 else;
#X text 496 95 F[n] = D(L[n]-L[n-1]);
#X text 496 54 F[n] = K(L[n] - L[0])^P + D(L[n] - L[n-1]);
-#X text 28 187 Links connect masses two by two. They got 4 physicals
-parameters : length \, rigidity \, damping and power.;
-#X text 27 216 Rigidity \, damping and power are defined by the creation
-message. The lenght is initialised to the distance between the two
-masses at the creation.;
#X text 495 124 For oriented links \, the force F[n] is projected onto
a vector which is given during the creation of the link using x1y1
coordinates.;
-#X text 495 169 For normal vector \, the direction is calculated using
-the scalar product :;
-#X text 495 248 You can build specific links using different links
-messages defining the characteristic step by step.;
#X text 496 206 x1x2 + y1y2 = 0;
-#X text 27 257 Links can be created in one shot between mutiples masses
-\, instead of creation number \, the masses linked are defined with
-their Id.;
+#X text 495 169 For normal vectors \, the direction is calculated using
+the scalar product :;
+#X text 495 248 You can build specific links using different link messages
+defining the characteristic step by step.;
#X text 28 41 pmpd is the 2D object of the pmpd objects collection.
;
-#X connect 3 0 4 0;
+#X text 27 155 Be careful : if masses are deleted \, list messages
+won't work;
+#X text 27 216 Rigidity \, damping and power are defined by the creation
+messages. The lenght is initialised to the distance between the two
+masses at creation.;
+#X text 27 257 Links can be created in one shot between multiple masses
+\, instead of creation number \, the masses linked are defined by their
+Id.;
+#X text 28 187 Links connect masses two by two. They've got 4 physical
+parameters : length \, rigidity \, damping and power.;
+#X text 27 60 It is designed to implement particle physical models
+in PD.The model is based on a two element type : mass and link. The
+pmpd masses are the principal objects of the model. They've got only
+one physical parameter \, the value of their mass. They can be mobile
+or fixed \, in this case forces applied to them automatically \, by
+links \, or manually \, by messages \, don't do anything.;
+#X connect 1 0 2 0;
#X restore 18 715 pd More_Info;
-#N canvas 809 128 638 809 masses_attributes___ 0;
+#N canvas 424 172 607 825 masses_attributes___ 0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 10 307 cnv 15 150 95 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 7 307 cnv 15 150 100 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 4 287 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+#X obj 5 286 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X text 7 2 ATTRIBUTES Messages;
-#X text 7 287 Lists :;
-#X text 15 30 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
-and forces of masses.;
-#X text 171 320 Output all masses positions in a list on outlet;
-#X text 169 349 Output all forces applied on masses in a list on outlet
+#X text 8 286 Lists :;
+#X text 168 320 Output all masses positions in a list on outlet;
+#X text 169 341 Output all forces applied on masses in a list on outlet
;
-#X text 170 379 Output all speeds of the masses in a list on outlet
+#X text 170 362 Output all speeds of the masses in a list on outlet
;
-#X obj 14 438 cnv 15 150 95 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 418 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 11 418 Tables :;
-#X text 176 450 Output all masses positions in a table (\$1 = table
-name \, \$2 (optional): Masses Id);
-#X text 174 479 Output all forces applied on masses in a table (\$1
-= table name \, \$2 (optional): Masses Id);
-#X text 174 510 Output all speeds of the masses in a table (\$1 = table
-name \, \$2 (optional): Masses Id);
-#X text 170 333 \$1 (optional): Masses Id;
-#X text 170 363 \$1 (optional): Masses Id;
-#X text 171 392 \$1 (optional): Masses Id;
-#X obj 11 669 cnv 15 150 95 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 649 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 171 677 output the closest mass;
-#X text 170 691 \$1 : position;
-#X text 8 649 others :;
-#X msg 16 677 closestMass \$1 (\$2);
-#X text 170 706 \$2 : none or Id;
+#X obj 8 435 cnv 15 150 95 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 414 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 206 383 \$1 (optional): Masses Id;
+#X obj 9 658 cnv 15 150 150 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 9 637 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 172 666 output the closest mass;
+#X text 201 680 \$1 : position;
+#X text 12 637 others :;
+#X msg 17 666 closestMass \$1 (\$2);
+#X text 201 695 \$2 : none or Id;
#X obj 5 75 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X text 7 74 General :;
-#X obj 10 97 cnv 15 150 150 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 6 98 cnv 15 150 180 empty empty empty 20 12 0 14 -233017 -66577
0;
#X msg 14 105 massPos [\$1];
-#X text 187 106 \$1 : id float or symbol of masses (nothing for all)
-;
-#X text 188 126 output a message for every masses :;
-#X text 218 143 massPos symbolId number posX posY posZ;
-#X text 187 166 \$1 : id float or symbol of masses (nothing for all)
-;
-#X text 188 186 output a message for every masses :;
-#X text 218 203 massPos symbolId number speedX speedY speedZ;
-#X text 187 225 \$1 : id float or symbol of masses (nothing for all)
-;
-#X text 188 241 output a message for every masses :;
+#X text 195 123 massPos symbolId number posX posY posZ;
+#X text 197 184 massPos symbolId number speedX speedY speedZ;
#X msg 14 224 massForce [\$1];
-#X text 218 258 massPos symbolId number forceX forceY forceZ;
+#X text 201 238 massPos symbolId number forceX forceY forceZ;
#X msg 14 165 massSpeed [\$1];
-#X obj 12 546 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 172 600 \$1 : table name;
-#X text 171 619 \$2 : masses name;
-#X text 170 577 apply a force to masses. Force come from a table;
-#X obj 13 567 cnv 15 150 40 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X msg 21 574 forceXT \$1 [\$2];
-#X text 15 546 Table in:;
-#X text 178 733 output a series of message :;
-#X msg 15 732 massDistance [\$1 [\$2]];
-#X text 193 747 distance mass1 mass2 distanceX \, distanceY \, distanceZ
+#X obj 9 538 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 202 592 \$1 : table name;
+#X text 201 611 \$2 : masses name;
+#X obj 10 559 cnv 15 150 70 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X msg 21 566 forceXT \$1 [\$2];
+#X text 12 538 Table in:;
+#X msg 16 717 massDistance [\$1 [\$2]];
+#X text 199 732 distance mass1 mass2 distanceX \, distanceY \, distanceZ
\, distance;
-#X msg 16 320 massPosL (\$1);
-#X msg 16 348 massForceL (\$1);
-#X msg 17 377 massSpeedL (\$1);
-#X msg 16 451 massPosT \$1 (\$2);
-#X msg 16 479 massForceT \$1 (\$2);
-#X msg 17 509 massSpeedT \$1 (\$2);
-#X restore 12 499 pd masses_attributes___;
-#N canvas 888 238 700 758 statistics 0;
-#X obj 25 41 cnv 15 150 270 empty empty empty 20 12 0 14 -233017 -66577
+#X msg 17 320 massPosL (\$1);
+#X msg 17 340 massForceL (\$1);
+#X msg 17 360 massSpeedL (\$1);
+#X msg 19 445 massPosT \$1 (\$2);
+#X msg 19 465 massForceT \$1 (\$2);
+#X msg 19 485 massSpeedT \$1 (\$2);
+#X text 193 140 \$1 : Id float or symbol of masses (nothing for all)
+;
+#X text 196 200 \$1 : Id float or symbol of masses (nothing for all)
+;
+#X text 200 253 \$1 : Id float or symbol of masses (nothing for all)
+;
+#X text 165 106 output a message for every mass :;
+#X text 166 168 output a message for every mass :;
+#X text 169 225 output a message for every mass :;
+#X text 15 30 The attributes messages ask the object to output some
+of its internal parameters. They can be output as lists for positions
+and forces of masses.;
+#X text 170 569 apply a force to masses. Force comes from a table;
+#X text 175 718 output a series of messages :;
+#X text 11 414 Tables out:;
+#X text 167 444 Output all masses positions on a table;
+#X text 167 465 Output all forces applied on masses on a table;
+#X text 167 485 Output all speeds of the masses on a table;
+#X text 200 517 \$2 (optional): Masses Id);
+#X text 200 502 \$1 = table name;
+#X text 197 760 \$1 (optional): Masses Id;
+#X text 197 776 \$2 (optional): Masses Id;
+#X restore 12 497 pd masses_attributes___;
+#N canvas 414 277 631 464 statistics 0;
+#X obj 20 41 cnv 15 170 150 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 19 21 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
-#X text 185 70 \$1 : none or Id;
-#X text 186 113 \$1 : none or Id;
-#X text 185 163 \$1 : none or Id;
-#X text 187 194 \$1 : none or Id;
-#X text 185 242 \$1 : none or Id;
-#X text 186 279 \$1 : none or Id;
-#X msg 30 54 massPosMean;
-#X msg 31 92 massPosStd \$1;
-#X msg 30 141 massForceMean;
-#X msg 30 179 massForceStd \$1;
-#X msg 31 228 massSpeedMean;
-#X msg 30 262 massSpeedStd \$1;
-#X text 182 178 output the standard deviation of masses force;
-#X text 181 263 output the standard deviation of masses velocity;
+#X text 260 196 \$1 : none or Id;
+#X text 202 119 output the standard deviation of masses force;
+#X text 202 166 output the standard deviation of masses velocity;
#X text 22 21 masses :;
-#X obj 29 357 cnv 15 150 350 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 23 337 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 191 389 \$1 : none or Id;
-#X text 190 421 \$1 : none or Id;
-#X text 192 467 \$1 : none or Id;
-#X text 194 504 \$1 : none or Id;
-#X text 187 562 \$1 : none or Id;
-#X text 193 597 \$1 : none or Id;
-#X msg 38 402 linkPosStd \$1;
-#X msg 37 489 linkLengthStd \$1;
-#X msg 37 572 linkPosSpeedStd \$1;
-#X text 194 637 \$1 : none or Id;
-#X text 196 674 \$1 : none or Id;
-#X msg 38 658 linkLengthSpeedStd \$1;
-#X msg 37 364 linkPosMean \$1;
-#X msg 37 450 linkLengthMean \$1;
-#X msg 38 538 linkPosSpeedMean \$1;
-#X msg 39 618 linkLengthSpeedMean \$1;
-#X text 189 404 output the standard deviation of link center position
-;
-#X text 189 488 output the standard deviation of links length;
-#X text 192 572 output the standard deviation of links center position
+#X obj 23 247 cnv 15 170 180 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 23 227 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 246 424 \$1 : none or Id;
+#X text 209 316 output the standard deviation of links length;
+#X text 208 358 output the standard deviation of links center position
velocity;
-#X text 191 658 output the standard deviation of links length change
+#X text 209 405 output the standard deviation of links length change
+;
+#X text 26 227 links :;
+#X text 201 51 output the average position of masses;
+#X text 202 74 output the standard deviation of masses position;
+#X text 202 143 output the average velocity of masses;
+#X text 208 254 output the average position of links center;
+#X text 208 297 output the average links length;
+#X text 208 336 output the average center position velocity of links
;
-#X text 26 337 links :;
-#X text 181 141 output the average force applyed to masses;
-#X text 181 54 output the average position of masses;
-#X text 182 91 output the standard deviation of masses position;
-#X text 181 226 output the average velocity of masses;
-#X text 188 361 output the average position of links center;
-#X text 188 451 output the average links length;
-#X text 188 536 output the average center position velocity of links
+#X text 209 385 output the average change in links length;
+#X text 201 96 output the average force applied to masses;
+#X text 208 274 output the standard deviation of links center position
;
-#X text 190 619 output the average change in links length;
-#X restore 13 541 pd statistics _________;
-#X text 187 543 To get statistical data of the simulation;
-#X connect 20 0 47 0;
+#X msg 30 51 massPosMean [\$1];
+#X msg 30 74 massPosStd [\$1];
+#X msg 31 165 massSpeedStd [\$1];
+#X msg 31 120 massForceStd [\$1];
+#X msg 30 97 massForceMean [\$1];
+#X msg 31 143 massSpeedMean [\$1];
+#X msg 34 254 linkPosMean [\$1];
+#X msg 34 275 linkPosStd [\$1];
+#X msg 34 296 linkLengthMean [\$1];
+#X msg 34 317 linkLengthStd [\$1];
+#X msg 34 338 linkPosSpeedMean [\$1];
+#X msg 34 358 linkPosSpeedStd [\$1];
+#X msg 34 384 linkLengthSpeedMean [\$1];
+#X msg 34 405 linkLengthSpeedStd [\$1];
+#X restore 12 537 pd statistics _________;
+#X text 161 539 To get statistical data of the simulation.;
+#X text 101 388 Bang - A bang at the left inlet computes the new model
+state based on previous time step.;
+#X text 160 498 To get the model parameters (masses).;
+#X text 161 518 To get the model parameters (links).;
+#X text 9 691 KEYWORDS: physical model \, mass \, spring \, damper
+\, link;
+#X connect 20 0 44 0;
#X connect 21 0 24 0;
#X connect 24 0 23 0;
#X connect 26 0 25 0;
@@ -736,5 +715,5 @@ velocity;
#X connect 32 1 22 0;
#X connect 32 2 30 0;
#X connect 32 3 31 0;
-#X connect 47 0 19 0;
-#X connect 50 0 26 0;
+#X connect 44 0 19 0;
+#X connect 47 0 26 0;
diff --git a/pmpd2d-help.pd b/pmpd2d-help.pd
index 2a3a9fe..0c71303 100644
--- a/pmpd2d-help.pd
+++ b/pmpd2d-help.pd
@@ -1,4 +1,4 @@
-#N canvas 585 254 571 767 10;
+#N canvas 583 82 572 750 10;
#X obj 4 309 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 705 cnv 15 550 30 empty empty empty 20 12 0 14 -158509 -66577
@@ -19,16 +19,8 @@
0;
#X obj 5 675 cnv 15 550 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#N canvas 1 83 901 640 More_Info 0;
+#N canvas 460 50 901 640 More_Info 0;
#X text 96 12 pmpd : mass - spring - damper model;
-#X text 27 155 Be careful : if masses are deleted \, lists messages
-won't work;
-#X text 27 60 It is designed to implement particules physical model
-in PD.The model is based on two elements type : mass and link. The
-pmpd masses are the principals objects of the model. They got only
-one physical parameter \, the value of their mass. They can be mobile
-or fixed \, in this case forces applied on them automatically \, by
-links \, or manually \, by messages \, don't do anything.;
#X obj 426 -5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 426 294 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -41,7 +33,7 @@ links \, or manually \, by messages \, don't do anything.;
#X coords 0 3 3 -3 200 150 1;
#X restore 31 428 graph;
#X text 89 585 L0;
-#N canvas 324 73 956 727 figure 0;
+#N canvas 94 50 956 727 figure 0;
#X obj 284 53 loadbang;
#X msg 293 125 \; rigidity1 resize 1 \; rigidity1 resize 4 \; rigidity1
bounds 0 3 3 -3 \; rigidity1 0 -1 0 1 2 \; rigidity1 ylabel -0.5 \;
@@ -207,25 +199,33 @@ rigidity2 yticks 0 5 5 \; rigidity3 resize 51 \; rigidity3 xticks 0
#X text 496 75 else;
#X text 496 95 F[n] = D(L[n]-L[n-1]);
#X text 496 54 F[n] = K(L[n] - L[0])^P + D(L[n] - L[n-1]);
-#X text 28 187 Links connect masses two by two. They got 4 physicals
-parameters : length \, rigidity \, damping and power.;
-#X text 27 216 Rigidity \, damping and power are defined by the creation
-message. The lenght is initialised to the distance between the two
-masses at the creation.;
#X text 495 124 For oriented links \, the force F[n] is projected onto
a vector which is given during the creation of the link using x1y1
coordinates.;
-#X text 495 169 For normal vector \, the direction is calculated using
-the scalar product :;
-#X text 495 248 You can build specific links using different links
-messages defining the characteristic step by step.;
#X text 496 206 x1x2 + y1y2 = 0;
-#X text 27 257 Links can be created in one shot between mutiples masses
-\, instead of creation number \, the masses linked are defined with
-their Id.;
#X text 28 41 pmpd is the 2D object of the pmpd objects collection.
;
-#X connect 3 0 4 0;
+#X text 27 155 Be careful : if masses are deleted \, list messages
+won't work;
+#X text 27 216 Rigidity \, damping and power are defined by the creation
+messages. The lenght is initialised to the distance between the two
+masses at creation.;
+#X text 27 257 Links can be created in one shot between multiple masses
+\, instead of creation number \, the masses linked are defined by their
+Id.;
+#X text 495 169 For normal vectors \, the direction is calculated using
+the scalar product :;
+#X text 495 248 You can build specific links using different link messages
+defining the characteristics step by step.;
+#X text 28 187 Links connect masses two by two. They've got 4 physical
+parameters : length \, rigidity \, damping and power.;
+#X text 27 60 It is designed to implement particle physical models
+in PD.The model is based on a two element type : mass and link. The
+pmpd masses are the principal objects of the model. They've got only
+one physical parameter \, the value of their mass. They can be mobile
+or fixed \, in this case forces applied to them automatically \, by
+links \, or manually \, by messages \, don't do anything.;
+#X connect 1 0 2 0;
#X restore 16 713 pd More_Info;
#X text 12 76 Examples:;
#X text 9 309 Inlets:;
@@ -290,11 +290,8 @@ their Id.;
#X obj 172 220 r \$0-out;
#X obj 17 106 bng 15 250 50 0 empty empty reset 25 10 1 10 -262144
-1 -1;
-#X text 101 338 Bang - A bang at the left inlet compute the new model
-state based on previous instant.;
-#X text 182 429 To set the model parameters after creation.;
-#X text 182 407 To create the model masses and links.;
-#X text 183 459 To get the model parameters;
+#X text 162 428 To set the model parameters after creation.;
+#X text 162 407 To create the model masses and links.;
#X text 103 582 None;
#X text 18 623 - Left:;
#X text 101 624 Outputs the model parameters asked with the attributes
@@ -339,11 +336,11 @@ pmpd object. They are of three types :;
#X obj 393 224 gemhead;
#X obj 346 196 gemwin;
#X msg 357 173 0 \, destroy;
-#N canvas 472 258 550 319 gemrender 0;
+#N canvas 470 263 550 319 gemrender 0;
#X obj 48 203 translateXYZ;
#X obj 48 229 sphere 0.1;
#X obj 127 24 inlet;
-#X obj 360 32 inlet;
+#X obj 359 12 inlet;
#X obj 275 232 curve 2;
#X msg 431 81 \$4 \$5 0;
#X msg 359 77 \$2 \$3 0;
@@ -356,10 +353,10 @@ pmpd object. They are of three types :;
#X msg 275 160 0;
#X obj 275 127 loadbang;
#X obj 275 187 gemhead;
+#X obj 359 42 t a a;
#X connect 0 0 1 0;
#X connect 2 0 8 0;
-#X connect 3 0 5 0;
-#X connect 3 0 6 0;
+#X connect 3 0 16 0;
#X connect 5 0 4 2;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
@@ -374,6 +371,8 @@ pmpd object. They are of three types :;
#X connect 13 0 15 0;
#X connect 14 0 13 0;
#X connect 15 0 4 0;
+#X connect 16 0 6 0;
+#X connect 16 1 5 0;
#X restore 172 270 pd gemrender;
#X msg 346 129 reset \, create \, 1;
#X text 135 98 Sorry \, you need GEM for this example...;
@@ -384,7 +383,7 @@ pmpd object. They are of three types :;
#X text 11 19 DESCRIPTION: Physical modeling for Pd in 2d;
#X text 265 709 - Cyrille Henry 2011;
#X text 265 721 based on MSD by Nicolas Montgermont \, 2005;
-#N canvas 44 174 1207 766 links_attributes 0;
+#N canvas 44 50 1228 704 links_attributes 0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 8 260 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
@@ -393,8 +392,6 @@ pmpd object. They are of three types :;
0;
#X text 7 2 ATTRIBUTES Messages;
#X text 5 239 Lists :;
-#X text 168 332 Output all norm of position vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
#X obj 9 374 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 9 487 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
@@ -410,55 +407,11 @@ in a list on outlet No 1;
#X text 833 502 \$2 (optional): Masses Id;
#X text 832 489 \$1 : table name;
#X text 608 5 tables :;
-#X text 17 26 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
-and forces of links;
-#X text 168 272 Output all links center positions in a list on outlet
-No 1;
#X text 168 304 Output all links x or y in a list on outlet No 1;
#X obj 10 603 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 182 611 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X text 182 647 Output all link lenght deformation speed in x or y
-in a list on outlet No 1;
-#X text 212 675 Output all norm of link lenght deformation speed vector
-(sqrt(x*x+y*y)) in a list on outlet No 1;
#X obj 612 369 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
-#X text 808 377 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X text 808 413 Output all link lenght deformation speed in x or y
-in a list on outlet No 1;
-#X text 838 441 Output all norm of link lenght deformation speed vector
-(sqrt(x*x+y*y)) in a list on outlet No 1;
-#X text 794 35 Output all links center positions in a table [\$1];
-#X text 794 67 Output all links center positions x or y in a table
-[\$1];
-#X text 793 105 Output all norm of links center positions vector (sqrt(x*x+y*y))
-in a table [\$1];
-#X text 168 385 Output all link lenght in a list on outlet No 1;
-#X text 170 418 Output all link lenght in x or y in a list on outlet
-No 1;
-#X text 179 446 Output all norm of link lenght vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
-#X text 169 501 Output all link center speed in a list on outlet No
-1;
-#X text 173 531 Output all link center speed in x or y in a list on
-outlet No 1;
-#X text 192 567 Output all norm of link center speed vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
-#X text 797 154 Output all link length in a list on outlet No 1;
-#X text 796 181 Output all link length in x or y in a list on outlet
-No 1;
-#X text 799 218 Output all norm of link length vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
-#X text 795 264 Output all link center speed in a list on outlet No
-1;
-#X text 799 294 Output all link center speed in x or y in a list on
-outlet No 1;
-#X text 815 326 Output all norm of link center speed vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
#X msg 9 290 linkPosXL [\$1];
#X msg 10 309 linkPosYL [\$1];
#X msg 10 327 linkPosNormL [\$1];
@@ -495,8 +448,6 @@ in a list on outlet No 1;
;
#X msg 12 96 linkPos [\$1];
#X msg 12 156 linkEnd [\$1];
-#X text 173 113 output a message for every links :;
-#X text 173 173 output a message for every links :;
#X obj 2 69 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X text 5 69 generic :;
@@ -509,8 +460,6 @@ in a list on outlet No 1;
0;
#X text 611 522 tables :;
#X msg 628 551 linkEndT \$1 [\$2];
-#X text 790 551 Put position of the 2 link end on a table [\$1] \,
-filter on link id is possible;
#X msg 640 571 linkEnd1T \$1 [\$2];
#X msg 639 591 linkEnd2T \$1 [\$2];
#X msg 638 612 linkEndXT \$1 [\$2];
@@ -523,84 +472,129 @@ filter on link id is possible;
#X text 202 130 linkPos symbolId number centerX centerY;
#X text 172 189 linkEnd symbolId number posX1 posY1 posX2 posY2;
#X text 795 583 table is posX1 posY1 posX2 posY2 ....;
-#X restore 12 469 pd links_attributes ___;
-#N canvas 111 129 967 626 creation____________ 0;
+#X text 17 26 The attributes messages ask the object to output some
+of its internal parameters. They can be output as lists for positions
+and forces of links;
+#X text 173 113 output a message for every link :;
+#X text 173 173 output a message for every link :;
+#X text 794 35 Output all links center positions on a table [\$1];
+#X text 794 67 Output all links center positions x or y on a table
+[\$1];
+#X text 793 105 Output all norm of links center positions vector (sqrt(x*x+y*y))
+on a table [\$1];
+#X text 797 154 Output all link lengths in a list on outlet No 1;
+#X text 796 181 Output all link lengths in x or y in a list on outlet
+No 1;
+#X text 799 218 Output all norm of link length vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 182 674 Output all norm of link lenght deformation speed vectors
+(sqrt(x*x+y*y)) in a list on outlet No 1;
+#X text 182 647 Output all link lenghts deformation speed in x or y
+in a list on outlet No 1;
+#X text 182 611 Output all links lenghts deformation speed in a list
+on outlet No 1;
+#X text 192 567 Output all norm of link center speed vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 173 531 Output all link center speeds in x or y in a list on
+outlet No 1;
+#X text 169 501 Output all link center speeds in a list on outlet No
+1;
+#X text 179 446 Output all norm of link lenght vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 170 418 Output all link lenghts in x or y in a list on outlet
+No 1;
+#X text 168 385 Output all link lenghts in a list on outlet No 1;
+#X text 168 332 Output all norm of position vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 168 272 Output all link center positions in a list on outlet
+No 1;
+#X text 799 294 Output all link center speeds in x or y in a list on
+outlet No 1;
+#X text 795 264 Output all link center speeds in a list on outlet No
+1;
+#X text 815 326 Output all norm of link center speed vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 808 377 Output all link lenght deformation speeds in a list
+on outlet No 1;
+#X text 808 413 Output all link lenght deformation speeds in x or y
+in a list on outlet No 1;
+#X text 838 441 Output all norm of link lenght deformation speed vectors
+(sqrt(x*x+y*y)) in a list on outlet No 1;
+#X text 790 551 Put position of the 2 link ends on a table [\$1] \,
+filter on link id is possible;
+#X restore 12 466 pd links_attributes ___;
+#N canvas 280 143 935 531 creation____________ 0;
#X obj 5 75 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
0;
-#X obj 5 3 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 5 3 cnv 15 900 15 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 7 2 CREATION Messages;
+#X text 17 2 CREATION Messages;
#X obj 4 157 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
0;
-#X obj 3 371 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
+#X obj 3 291 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X msg 32 104 reset;
-#X text 202 187 Add a mass;
-#X text 57 211 \$1 : Id (symbol);
-#X text 57 231 \$2 : fixed or mobile (0/1);
-#X text 57 249 \$3 : mass;
+#X text 164 186 Add a mass;
+#X text 208 216 \$1 : Id (symbol);
+#X text 208 236 \$2 : fixed or mobile (0/1);
+#X text 208 254 \$3 : mass;
#X text 7 157 Masses :;
#X text 7 74 Reset :;
-#X text 129 105 Delete all masses \, links and internal variables;
-#X text 6 371 Links :;
-#X text 49 426 \$1 : Id (symbol);
-#X text 49 479 \$4 : rigidity;
-#X text 49 426 \$1 : Id (symbol);
-#X text 49 479 \$4 : rigidity;
-#X text 49 444 \$2 : creation No/Id of mass1;
-#X text 49 462 \$3 : creation No/Id of mass2;
-#X text 266 404 Add link(s);
-#X text 49 497 \$5 : damping;
+#X text 99 105 Delete all masses \, links and internal variables;
+#X text 6 291 Links :;
+#X text 207 357 \$1 : Id (symbol);
+#X text 207 410 \$4 : rigidity;
+#X text 207 357 \$1 : Id (symbol);
+#X text 207 410 \$4 : rigidity;
+#X text 207 375 \$2 : creation No/Id of mass1;
+#X text 207 393 \$3 : creation No/Id of mass2;
+#X text 266 324 Add link(s);
+#X text 207 428 \$5 : damping;
#X text 10 28 Creation messages are used to define the structure of
the model. Messages create links and masses or destroy them.;
-#X msg 32 187 mass \$1 \$2 \$3 \$4 \$5;
-#X text 57 267 \$4 \, \$5 : initial position;
-#X obj 471 75 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 501 75 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X obj 471 578 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 527 180 \$1 : Id (symbol);
-#X text 527 233 \$4 : rigidity;
-#X text 527 180 \$1 : Id (symbol);
-#X text 527 233 \$4 : rigidity;
-#X text 527 198 \$2 : creation No/Id of mass1;
-#X text 527 216 \$3 : creation No/Id of mass2;
-#X text 527 251 \$5 : damping;
-#X text 790 152 Add tangential link(s);
-#X text 506 102 In 2D (and 3D) there are two specials links : oriented
-links. They works as general links excepts their calculation is made
-following a vector.;
-#X text 526 270 \$6 \, \$7 : tangential vector (x \, y);
-#X text 504 75 Oriented links :;
-#X msg 502 406 tabLink \$1 \$2 \$3 \$4 \$5 \$6 \$7;
-#X text 532 453 \$1 : Id (symbol);
-#X text 532 453 \$1 : Id (symbol);
-#X text 532 471 \$2 : creation No/Id of mass1;
-#X text 532 489 \$3 : creation No/Id of mass2;
-#X text 527 434 Add non linear link(s);
-#X text 530 506 \$4 : table name for the rigidity;
-#X text 530 524 \$5 : length of the table;
-#X text 530 542 \$6 : table name for the damping;
-#X text 529 561 \$7 : length of the table;
-#X obj 494 351 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
-0;
-#X text 497 351 Table links :;
-#X msg 33 131 print;
-#X text 103 131 post surrent physical model topology;
-#X msg 30 404 link \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8]]];
-#X msg 507 153 tLink \$1 \$2 \$3 \$4 \$5 \$6 \$7 [\$8 [\$9 [\$10]]]
+#X msg 30 187 mass \$1 \$2 \$3 \$4 \$5;
+#X text 208 272 \$4 \, \$5 : initial position;
+#X obj 468 76 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 671 179 \$1 : Id (symbol);
+#X text 671 232 \$4 : rigidity;
+#X text 671 179 \$1 : Id (symbol);
+#X text 671 232 \$4 : rigidity;
+#X text 671 197 \$2 : creation No/Id of mass1;
+#X text 671 215 \$3 : creation No/Id of mass2;
+#X text 671 250 \$5 : damping;
+#X text 747 153 Add tangential link(s);
+#X text 670 269 \$6 \, \$7 : tangential vector (x \, y);
+#X text 471 75 Oriented links :;
+#X msg 464 372 tabLink \$1 \$2 \$3 \$4 \$5 \$6 \$7;
+#X text 673 397 \$1 : Id (symbol);
+#X text 673 397 \$1 : Id (symbol);
+#X text 673 414 \$2 : creation No/Id of mass1;
+#X text 673 430 \$3 : creation No/Id of mass2;
+#X text 655 374 Add non linear link(s);
+#X text 673 447 \$4 : table name for the rigidity;
+#X text 673 463 \$5 : length of the table;
+#X text 673 478 \$6 : table name for the damping;
+#X text 673 494 \$7 : length of the table;
+#X obj 461 351 cnv 15 450 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 464 351 Table links :;
+#X msg 32 131 print;
+#X msg 30 324 link \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8]]];
+#X msg 474 153 tLink \$1 \$2 \$3 \$4 \$5 \$6 \$7 [\$8 [\$9 [\$10]]]
;
-#X text 524 289 [\$8] : Power of the rigidity distance;
-#X text 524 308 [\$9] : minimum lenght of link;
-#X text 524 325 [\$10] : maximum lenght of link;
-#X text 46 515 [\$6] : Power of the rigidity distance;
-#X text 46 534 [\$7] : minimum lenght of link;
-#X text 46 551 [\$8] : maximum lenght of link;
-#X connect 25 0 27 0;
+#X text 668 288 [\$8] : Power of the rigidity distance;
+#X text 668 307 [\$9] : minimum lenght of link;
+#X text 668 324 [\$10] : maximum lenght of link;
+#X text 204 446 [\$6] : Power of the rigidity distance;
+#X text 204 465 [\$7] : minimum lenght of link;
+#X text 204 482 [\$8] : maximum lenght of link;
+#X text 101 131 post current physical model topology;
+#X text 472 99 In 2D (and 3D) there are two specials links : oriented
+links. They work as general links but their calculation is made following
+a vector.;
#X restore 12 407 pd creation____________;
-#N canvas 98 120 1133 862 dynamic 0;
+#N canvas 98 50 1133 700 dynamic 0;
#X obj 5 3 cnv 15 550 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 10 85 cnv 15 150 750 empty empty empty 20 12 0 14 -233017 -66577
@@ -614,7 +608,6 @@ following a vector.;
#X text 7 62 Masses :;
#X text 570 62 Links :;
#X text 7 2 DYNAMIC SETTINGS Messages;
-#X text 191 168 Add force on mass(es);
#X msg 30 183 forceX \$1 \$2;
#X text 190 114 \$1 : Id (symbol) or No;
#X text 193 185 \$1 : Id (symbol) or No;
@@ -636,8 +629,6 @@ following a vector.;
#X text 748 174 \$1 : Id (symbol) or No;
#X text 748 227 \$1 : Id (symbol) or No;
#X text 191 328 \$1 : Id (symbol) or No;
-#X text 10 25 Dynamic settings messages allows the user to redefine
-internal parameters of links and masses.;
#X msg 29 358 grabMass \$1 \$2 \$3;
#X msg 30 204 forceY \$1 \$2;
#X text 191 445 \$2 : New Id;
@@ -668,13 +659,10 @@ internal parameters of links and masses.;
#X msg 24 593 addPos \$1 \$2 \$3;
#X msg 588 346 setLinkId \$1 \$2;
#X text 742 347 Change the Id of a link;
-#X text 743 364 \$1 : link (number or Id);
#X text 746 381 \$2 : New Id;
#X msg 586 406 setLKTab \$1 \$2;
#X text 745 406 change the table (K) size of a non linear link;
-#X text 746 426 \$1 : link (number or Id);
#X text 747 443 \$2 : New KL;
-#X text 746 488 \$1 : link (number or Id);
#X msg 586 468 setLDTab \$1 \$2;
#X text 745 468 change the table (D) size of a non linear link;
#X text 747 505 \$2 : New DL;
@@ -682,8 +670,6 @@ internal parameters of links and masses.;
#X msg 31 245 max \$1 \$2;
#X msg 24 612 addPosX \$1 \$2;
#X msg 24 632 addPosY \$1 \$2;
-#X text 580 778 if only 1 argument is previded \, message generally
-used this argument as the value applayed to all masses (or link);
#X text 186 769 \$2 : damping;
#X text 185 754 \$1 : Id (symbol) or No;
#X msg 22 738 setDEnvOffset \$1 \$2;
@@ -704,21 +690,11 @@ used this argument as the value applayed to all masses (or link);
#X msg 581 271 setLCurrent \$1 [\$2];
#X text 727 308 \$2 : mix between link size (0) and curent length (1)
;
-#X text 722 326 if no \$2 arg is provide \, then L is set to curent
-length;
-#X text 746 596 \$1 : link (number or Id);
-#X text 745 552 \$1 : link (number or Id);
#X msg 586 576 setActive \$1 \$2;
#X msg 585 532 setInactive \$1 \$2;
-#X text 744 532 did not compute a link anymore;
#X text 745 576 compute the link at each bang;
-#X text 741 663 \$1 : link (number or Id);
#X msg 586 620 setOverdamp \$1 \$2;
#X text 741 677 \$2 : overdamp value;
-#X text 740 621 Change the overdamp of a link. i.e a strange parametter
-that amplifie forces that oposed to movment. Use at your own risk.
-;
-#X text 743 724 \$1 : link (number or Id);
#X msg 588 705 setEnd \$1 \$2 \$3;
#X text 742 740 \$2 : mass number for end 1;
#X text 742 707 Change the masses a link is connected to;
@@ -727,10 +703,27 @@ that amplifie forces that oposed to movment. Use at your own risk.
#X msg 600 750 setEnd2 \$1 \$2;
#X text 181 352 Grab nearest mass and move it;
#X text 196 372 \$1 \$2 : position;
-#X restore 12 428 pd dynamic settings ___;
+#X text 10 25 Dynamic settings messages allow the user to redefine
+internal parameters of links and masses.;
+#X text 191 168 Add force to mass(es);
+#X text 722 326 if no \$2 arg is provided \, then L is set to current
+length;
+#X text 744 532 do not compute a link anymore;
+#X text 740 621 Change the overdamp of a link. i.e a strange parameter
+that amplifies forces opposed to movment. Use at your own risk.;
+#X text 580 778 if only 1 argument is provided \, message generally
+uses this argument as the value applied to all masses (or links);
+#X text 741 363 \$1 : link (Id (symbol) or No);
+#X text 746 426 \$1 : link (Id (symbol) or No);
+#X text 747 488 \$1 : link (Id (symbol) or No);
+#X text 745 552 \$1 : link (Id (symbol) or No);
+#X text 746 596 \$1 : link (Id (symbol) or No);
+#X text 741 663 \$1 : link (Id (symbol) or No);
+#X text 743 724 \$1 : link (Id (symbol) or No);
+#X restore 12 427 pd dynamic settings ___;
#X text 112 658 54_pmpd2dtest.pd;
-#X obj 307 274 print;
-#N canvas 298 136 1221 757 masses_attributes___ 0;
+#X obj 325 272 print;
+#N canvas 16 50 1221 700 masses_attributes___ 0;
#X obj 5 75 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
@@ -742,29 +735,11 @@ that amplifie forces that oposed to movment. Use at your own risk.
#X text 7 74 General :;
#X text 7 2 ATTRIBUTES Messages;
#X text 7 357 Lists :;
-#X text 170 390 Output all masses positions in a list on outlet No
-1;
-#X text 15 30 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
-and forces of masses.;
-#X text 172 619 Output all forces applied on masses in a list on outlet
-No 1;
#X text 170 422 Output all masses x or y in a list on outlet No 1;
-#X text 170 450 Output all norm of position vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
#X obj 11 492 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 171 504 Output all masses speeds in a list on outlet No 1;
-#X text 172 536 Output all masses speeds in x or y in a list on outlet
-No 1;
-#X text 171 564 Output all norm of speed vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
#X obj 11 605 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 175 649 Output all masses forces in x or y in a list on outlet
-No 1;
-#X text 171 677 Output all norm of forces vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
#X obj 611 26 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 605 5 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
@@ -773,36 +748,21 @@ a list on outlet No 1;
-66577 0;
#X obj 612 253 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
-#X text 794 35 Output all masses positions in a table (\$1);
-#X text 794 67 Output all masses x or y in a table (\$1);
-#X text 794 95 Output all norm of position vector (sqrt(x*x+y*y)) in
-a table (\$1);
#X text 174 718 \$1 (optional): Masses Id;
#X text 815 376 \$2 (optional): Masses Id;
#X text 814 363 \$1 : table name;
#X text 608 5 tables :;
-#X text 799 263 Output all forces applied on masses in a table;
-#X text 798 294 Output all masses forces in x or y in a table;
-#X text 795 149 Output all masses speeds in a table;
-#X text 796 181 Output all masses speeds in x or y in a table;
-#X text 801 209 Output all norm of speed vector (sqrt(x*x+y*y)) in
-a table;
-#X text 804 322 Output all norm of forces vector (sqrt(x*x+y*y)) in
-a table;
#X obj 10 157 cnv 15 150 150 empty empty empty 20 12 0 14 -233017 -66577
0;
#X msg 14 165 massPos [\$1];
#X text 187 166 \$1 : id float or symbol of masses (nothing for all)
;
-#X text 188 186 output a message for every masses :;
#X text 218 203 massPos symbolId number posX posY posZ;
#X text 187 226 \$1 : id float or symbol of masses (nothing for all)
;
-#X text 188 246 output a message for every masses :;
#X text 218 263 massPos symbolId number speedX speedY speedZ;
#X text 187 285 \$1 : id float or symbol of masses (nothing for all)
;
-#X text 188 301 output a message for every masses :;
#X msg 14 284 massForce [\$1];
#X text 218 318 massPos symbolId number forceX forceY forceZ;
#X msg 14 225 massSpeed [\$1];
@@ -838,7 +798,6 @@ a table;
#X text 612 539 others :;
#X text 789 582 \$1 : x -position;
#X text 789 597 \$2 : y -position;
-#X text 781 648 output a series of message :;
#X msg 618 647 massDistance [\$1 [\$2]];
#X text 796 662 distance mass1 mass2 distanceX \, distanceY \, distanceZ
\, distance;
@@ -846,7 +805,6 @@ a table;
0;
#X text 768 464 \$1 : table name;
#X text 767 483 \$2 : masses name;
-#X text 766 441 apply a force to masses. Force come from a table;
#X obj 609 431 cnv 15 150 80 empty empty empty 20 12 0 14 -233017 -66577
0;
#X msg 617 438 forceXT \$1 [\$2];
@@ -854,31 +812,54 @@ a table;
#X msg 622 570 closestMass \$1 \$2 \$3 [\$4];
#X text 611 410 Table in:;
#X text 789 614 \$3 : none or Id;
-#X restore 12 449 pd masses_attributes___;
-#N canvas 909 146 770 592 tests 0;
+#X text 15 30 The attributes messages ask the object to output some
+of its internal parameters. They can be output as lists for positions
+and forces of masses.;
+#X text 188 186 output a message for every mass :;
+#X text 188 246 output a message for every mass :;
+#X text 188 301 output a message for every mass :;
+#X text 172 619 Output all forces applied to masses in a list on outlet
+No 1;
+#X text 799 263 Output all forces applied to masses on a table;
+#X text 766 441 apply a force to masses. Force comes from a table;
+#X text 781 648 output a series of messages :;
+#X text 170 390 Output all mass positions in a list on outlet No 1
+;
+#X text 171 451 Output all norm of position vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 171 504 Output all mass speeds in a list on outlet No 1;
+#X text 172 536 Output all mass speeds in x or y in a list on outlet
+No 1;
+#X text 171 564 Output all norm of speed vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 175 649 Output all mass forces in x or y in a list on outlet
+No 1;
+#X text 171 677 Output all norm of force vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 792 38 Output all mass positions on a table (\$1);
+#X text 794 67 Output all mass x or y on a table (\$1);
+#X text 794 95 Output all norm of position vectors (sqrt(x*x+y*y))
+on a table (\$1);
+#X text 795 149 Output all mass speeds on a table;
+#X text 796 181 Output all mass speeds in x or y on a table;
+#X text 801 209 Output all norm of speed vectors (sqrt(x*x+y*y)) on
+a table;
+#X text 798 294 Output all mass forces in x or y on a table;
+#X text 804 322 Output all norm of force vectors (sqrt(x*x+y*y)) on
+a table;
+#X restore 12 447 pd masses_attributes___;
+#N canvas 308 76 770 592 tests 0;
#X msg 20 26 testMass testId filterId filter_parametter ...;
-#X text 315 29 output a message for every masses that pass all the
-tests:;
#X text 265 52 testMass testId mass_number;
-#X text 327 92 output a list with 0 or 1 for every masses depending
-if it pass all test or not;
#X text 344 125 testMassL filterID 0/1 0/1 0/1 ...;
#X msg 22 154 testMassT tab_name filterId filter_parametter ...;
#X msg 22 93 testMassL testId filterId filter_parametter ....;
-#X text 341 153 Put in a table 0 or 1 depending if masses pass all
-tests;
#X text 38 191 masses test can be :;
#X msg 19 344 testLink testId filterId filter_parametter ...;
#X msg 21 411 testLinkL testId filterId filter_parametter ....;
#X msg 21 472 testLinkT tab_name filterId filter_parametter ...;
-#X text 314 347 output a message for every links that pass all the
-tests:;
#X text 264 370 testLink testId mass_number;
#X text 342 442 testLinkL filterID 0/1 0/1 0/1 ...;
-#X text 340 471 Put in a table 0 or 1 depending if links pass all tests
-;
-#X text 326 410 output a list with 0 or 1 for every links depending
-if it pass all test or not;
#X text 35 509 links test can be :;
#X text 180 191 Id \$1 / posXSup \$1 / posXInf \$1 / posYSup \$1 /
posYInf \$1 / speedXSup \$1 / speedXInf \$1 / speedYSup \$1 / speedYInf
@@ -891,18 +872,26 @@ posYInf \$1 / speedXSup \$1 / speedXInf \$1 / speedYSup \$1 / speedYInf
/ forceXInf \$1 / forceYSup \$1 / forceYInf \$1 / lengthSup \$1 / lengthInf
\$1 / lengthXSup \$1 / lengthXInf \$1 / lengthYSup \$1 / lengthYInf
\$1 / connectedTo \$1 (symbol or float);
-#X restore 12 490 pd tests ______________;
-#X text 188 493 To test specific parametters;
-#N canvas 989 194 547 405 interactors 0;
-#X text 28 58 \$1 : mess Id (float or symbol) to apply this interactor
-;
+#X text 315 29 output a message for every mass that passes all the
+tests:;
+#X text 327 92 output a list with 0 or 1 for every mass depending on
+whether it passes all tests or not;
+#X text 341 153 Put in a table 0 or 1 depending on whether masses pass
+all tests;
+#X text 314 347 output a message for every link that passes all the
+tests:;
+#X text 326 410 output a list with 0 or 1 for every link depending
+on whether it passes all tests or not;
+#X text 340 471 Put in a table 0 or 1 depending on whether links pass
+all tests;
+#X restore 12 486 pd tests ______________;
+#N canvas 93 109 547 405 interactors 0;
#X text 27 71 \$2 \$3 : center of the circle;
#X text 26 85 \$4 : circle radius;
#X text 26 99 \$5 : K;
#X text 26 112 \$6 : power of the force;
#X text 24 231 \$1 : mass Id (float or symbol) to apply this interactor
;
-#X text 23 244 \$2 \$3 : 1st point off the line;
#X text 22 258 \$4 \$5 : 2nd point of the line;
#X text 23 272 \$6 : K;
#X text 23 287 \$7 : power of the force;
@@ -915,8 +904,11 @@ posYInf \$1 / speedXSup \$1 / speedXInf \$1 / speedYSup \$1 / speedYInf
#X text 24 170 \$10 : maximum radius of the interactor;
#X msg 16 24 iCircle \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8 [\$9 [\$10
]]]]];
-#X restore 12 509 pd interactors ________;
-#N canvas 890 232 700 758 statistics 0;
+#X text 28 58 \$1 : mass Id (float or symbol) to apply this interactor
+;
+#X text 23 244 \$2 \$3 : 1st point of the line;
+#X restore 12 505 pd interactors ________;
+#N canvas 294 50 700 700 statistics 0;
#X obj 25 41 cnv 15 150 270 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 19 21 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
@@ -935,10 +927,6 @@ posYInf \$1 / speedXSup \$1 / speedXInf \$1 / speedYSup \$1 / speedYInf
#X msg 30 262 massSpeedStd \$1;
#X text 181 54 output the average position of masses and center distance
;
-#X text 182 91 output the standard deviation of masses position and
-center distance;
-#X text 182 178 output the standard deviation of masses force;
-#X text 181 263 output the standard deviation of masses velocity;
#X text 22 21 masses :;
#X obj 29 357 cnv 15 150 350 empty empty empty 20 12 0 14 -233017 -66577
0;
@@ -960,37 +948,46 @@ center distance;
#X msg 37 450 linkLengthMean \$1;
#X msg 38 538 linkPosSpeedMean \$1;
#X msg 39 618 linkLengthSpeedMean \$1;
-#X text 189 404 output the standard deviation of link center position
-;
-#X text 189 488 output the standard deviation of links length;
-#X text 192 572 output the standard deviation of links center position
-velocity;
-#X text 191 658 output the standard deviation of links length change
-;
#X text 26 337 links :;
-#X text 181 141 output the average force applyed to masses (X \, Y
-and Norm);
#X text 181 226 output the average velocity of masses (X \, Y \, Norm)
;
-#X text 188 361 output the average position of links center (X \, Y
-\, center disdance);
-#X text 188 451 output the average links length (X \, Y \, L);
#X text 188 536 output the average center position velocity of links
(X \, Y \, Norm);
-#X text 190 619 output the average change in links length (X \, Y \,
+#X text 182 91 output the standard deviation of mass positions and
+center distance;
+#X text 181 141 output the average force applied to masses (X \, Y
+and Norm);
+#X text 182 178 output the standard deviation of mass forces;
+#X text 181 263 output the standard deviation of mass velocities;
+#X text 189 404 output the standard deviation of link center positions
+;
+#X text 188 451 output the average link lengths (X \, Y \, L);
+#X text 189 488 output the standard deviation of link lengths;
+#X text 192 572 output the standard deviation of link center position
+velocities;
+#X text 190 619 output the average change in link lengths (X \, Y \,
Norm);
-#X restore 13 531 pd statistics _________;
-#X text 185 510 To send complex forces;
-#X text 187 533 To get statistical data of the simulation;
-#X connect 21 0 39 0;
+#X text 191 658 output the standard deviation of link lengths change
+;
+#X text 188 361 output the average position of link centers (X \, Y
+\, center disdance);
+#X restore 12 525 pd statistics _________;
+#X text 164 507 To send complex forces;
+#X text 163 526 To get statistical data of the simulation;
+#X text 101 338 Bang - A bang at the left inlet computes the new model
+state based on previous time step.;
+#X text 164 488 To test specific parameters;
+#X text 163 448 To get the model parameters (masses).;
+#X text 163 468 To get the model parameters (links).;
+#X connect 21 0 37 0;
#X connect 24 0 23 0;
-#X connect 25 0 50 0;
+#X connect 25 0 48 0;
#X connect 26 0 19 0;
-#X connect 39 0 20 0;
-#X connect 40 0 22 0;
+#X connect 37 0 20 0;
+#X connect 38 0 22 0;
+#X connect 39 0 38 0;
#X connect 41 0 40 0;
-#X connect 43 0 42 0;
-#X connect 45 0 42 0;
-#X connect 50 0 44 0;
-#X connect 50 1 44 1;
-#X connect 50 2 58 0;
+#X connect 43 0 40 0;
+#X connect 48 0 42 0;
+#X connect 48 1 42 1;
+#X connect 48 2 56 0;
diff --git a/pmpd3d-help.pd b/pmpd3d-help.pd
index e5d1eb1..f51e028 100644
--- a/pmpd3d-help.pd
+++ b/pmpd3d-help.pd
@@ -1,4 +1,4 @@
-#N canvas 12 250 570 717 10;
+#N canvas 579 22 570 717 10;
#X obj 4 289 cnv 15 550 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 675 cnv 15 550 30 empty empty empty 20 12 0 14 -158509 -66577
@@ -35,8 +35,6 @@
#X obj 44 37 pmpd;
#X obj 141 39 pmpd2d;
#X restore 122 683 pd Related_Objects;
-#X text 101 308 Bang - A bang at the left inlet compute the new model
-state based on previous instant.;
#X text 188 376 To create the model masses and links.;
#X text 188 430 To get the model parameters;
#X text 103 552 None;
@@ -173,9 +171,6 @@ the model. Messages create links and masses or destroy them.;
#X text 527 216 \$3 : creation No/Id of mass2;
#X text 527 251 \$5 : damping;
#X text 812 154 Add tangential link(s);
-#X text 506 102 In 2D (and 3D) there are two specials links : oriented
-links. They works as general links excepts their calculation is made
-following a vector.;
#X text 504 75 Oriented links :;
#X msg 502 406 tabLink \$1 \$2 \$3 \$4 \$5 \$6 \$7;
#X text 532 453 \$1 : Id (symbol);
@@ -194,7 +189,6 @@ following a vector.;
#X text 58 267 \$4 \, \$5 \, \$6 : initial position;
#X text 526 270 \$6 \, \$7 \, \$8 : tangential vector (x \, y);
#X msg 33 131 print;
-#X text 103 131 post surrent physical model topology;
#X msg 30 404 link \$1 \$2 \$3 \$4 \$5 [\$6 [\$7 [\$8]]];
#X msg 507 153 tLink \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 [\$9 [\$10 [\$11]]]
;
@@ -204,9 +198,13 @@ following a vector.;
#X text 46 515 [\$6] : Power of the rigidity distance;
#X text 46 534 [\$7] : minimum lenght of link;
#X text 46 551 [\$8] : maximum lenght of link;
+#X text 103 131 post current physical model topology;
+#X text 506 102 In 2D (and 3D) there are two specials links : oriented
+links. They work as general links except their calculation is made
+following a vector.;
#X connect 23 0 25 0;
#X restore 12 377 pd creation____________;
-#N canvas 609 157 1158 898 dynamic 0;
+#N canvas 61 22 1158 700 dynamic 0;
#X obj 5 3 cnv 15 550 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 10 85 cnv 15 150 800 empty empty empty 20 12 0 14 -233017 -66577
@@ -220,7 +218,6 @@ following a vector.;
#X text 7 62 Masses :;
#X text 570 62 Links :;
#X text 7 2 DYNAMIC SETTINGS Messages;
-#X text 191 178 Add force on mass(es);
#X msg 30 191 forceX \$1 \$2;
#X text 190 114 \$1 : Id (symbol) or No;
#X text 193 195 \$1 : Id (symbol) or No;
@@ -241,8 +238,6 @@ following a vector.;
#X text 716 172 \$1 : Id (symbol) or No;
#X text 718 231 \$1 : Id (symbol) or No;
#X text 191 364 \$1 : Id (symbol) or No;
-#X text 10 25 Dynamic settings messages allows the user to redefine
-internal parameters of links and masses.;
#X text 186 391 Grab nearest mass;
#X msg 30 210 forceY \$1 \$2;
#X text 191 476 \$2 : New Id;
@@ -307,29 +302,19 @@ internal parameters of links and masses.;
#X msg 31 96 setPos \$1 \$2 \$3;
#X msg 31 115 setPosX \$1 \$2;
#X msg 31 153 setPosZ \$1 \$2;
-#X text 579 796 if only 1 argument is provided \, message generally
-used this argument as the value applayed to all masses (or link);
#X text 176 778 Set environement damping offset (in order to force
a specific velocity to masses);
#X text 719 273 Set initial lenght of link(s);
#X text 725 291 \$1 : Id (symbol) or No;
#X msg 591 271 setLCurrent \$1 [\$2];
-#X text 725 309 \$2 : mix between link size (0) and curent length (1)
-;
-#X text 720 327 if no \$2 arg is provide \, then L is set to curent
-length;
#X text 747 610 \$1 : link (number or Id);
#X text 746 566 \$1 : link (number or Id);
#X msg 587 590 setActive \$1 \$2;
#X msg 586 546 setInactive \$1 \$2;
-#X text 745 546 did not compute a link anymore;
#X text 746 590 compute the link at each bang;
#X text 742 677 \$1 : link (number or Id);
#X msg 587 634 setOverdamp \$1 \$2;
#X text 742 691 \$2 : overdamp value;
-#X text 741 635 Change the overdamp of a link. i.e a strange parametter
-that amplifie forces that oposed to movment. Use at your own risk.
-;
#X text 744 728 \$1 : link (number or Id);
#X msg 589 709 setEnd \$1 \$2 \$3;
#X text 743 744 \$2 : mass number for end 1;
@@ -341,9 +326,22 @@ that amplifie forces that oposed to movment. Use at your own risk.
#X msg 31 134 setPosY \$1 \$2;
#X msg 29 391 grabMass \$1 \$2 \$3 \$4;
#X text 202 408 \$1 \$2 \$3 : position;
+#X text 10 25 Dynamic settings messages allow the user to redefine
+internal parameters of links and masses.;
+#X text 191 178 Add force to mass(es);
+#X text 725 309 \$2 : mix between link size (0) and current length
+(1);
+#X text 720 327 if no \$2 arg is provided \, then L is set to current
+length;
+#X text 745 546 do not compute a link anymore;
+#X text 741 632 Change the overdamp of a link. i.e a strange parameter
+that amplifies forces that oppose to movment. Use at your own risk.
+;
+#X text 579 796 if only 1 argument is provided \, message generally
+uses this argument as the value applied to all masses (or links);
#X restore 12 398 pd dynamic settings ___;
#X text 188 398 To set the model parameters after creation.;
-#N canvas 385 152 1237 753 masses_attributes 0;
+#N canvas 81 22 1237 700 masses_attributes 0;
#X obj 5 95 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
@@ -357,26 +355,11 @@ that amplifie forces that oposed to movment. Use at your own risk.
#X text 7 94 General :;
#X text 7 2 ATTRIBUTES Messages;
#X text 8 351 Lists :;
-#X text 171 384 Output all masses positions in a list on outlet No
-1;
-#X text 173 613 Output all forces applied on masses in a list on outlet
-No 1;
#X text 171 416 Output all masses x or y in a list on outlet No 1;
-#X text 171 449 Output all norm of position vector (sqrt(x*x+y*y))
-in a list on outlet No 1;
#X obj 12 486 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 172 498 Output all masses speeds in a list on outlet No 1;
-#X text 173 530 Output all masses speeds in x or y in a list on outlet
-No 1;
-#X text 180 567 Output all norm of speed vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
#X obj 12 599 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 176 643 Output all masses forces in x or y in a list on outlet
-No 1;
-#X text 176 677 Output all norm of forces vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
#X obj 611 26 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 605 5 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
@@ -385,27 +368,12 @@ a list on outlet No 1;
No 1;
#X obj 612 140 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
-#X text 795 149 Output all masses speeds in a list on outlet No 1;
-#X text 796 181 Output all masses speeds in x or y in a list on outlet
-No 1;
-#X text 801 209 Output all norm of speed vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
#X obj 612 253 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
-#X text 799 294 Output all masses forces in x or y in a list on outlet
-No 1;
-#X text 804 322 Output all norm of forces vector (sqrt(x*x+y*y)) in
-a list on outlet No 1;
-#X text 794 35 Output all masses positions in a table (\$1);
#X text 794 67 Output all masses x or y in a table (\$1);
-#X text 794 95 Output all norm of position vector (sqrt(x*x+y*y)) in
-a table (\$1);
#X text 175 712 \$1 (optional): Masses Id;
#X text 815 376 \$2 (optional): Masses Id;
#X text 814 363 \$1 : table name;
-#X text 15 30 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
-and forces of masses \, or directly send value to a table.;
#X obj 611 561 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
#X obj 609 539 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
@@ -431,7 +399,6 @@ and forces of masses \, or directly send value to a table.;
#X msg 14 284 massForce [\$1];
#X text 218 318 massPos symbolId number forceX forceY forceZ;
#X msg 14 225 massSpeed [\$1];
-#X text 781 648 output a series of message :;
#X msg 618 647 massDistance [\$1 [\$2]];
#X text 796 662 distance mass1 mass2 distanceX \, distanceY \, distanceZ
\, distance;
@@ -439,7 +406,6 @@ and forces of masses \, or directly send value to a table.;
0;
#X text 768 464 \$1 : table name;
#X text 767 483 \$2 : masses name;
-#X text 766 441 apply a force to masses. Force come from a table;
#X msg 13 383 massPosL [\$1];
#X msg 13 402 massPosXL [\$1];
#X msg 13 421 massPosYL [\$1];
@@ -478,8 +444,40 @@ and forces of masses \, or directly send value to a table.;
#X msg 622 570 closestMass \$1 \$2 \$3 [\$4];
#X text 608 5 tables out :;
#X text 611 410 Table in:;
+#X text 15 30 The attributes messages ask the object to output some
+of its internal parameters. They can be output as lists for positions
+and forces of masses \, or directly send value to a table.;
+#X text 171 449 Output all norm of position vectors (sqrt(x*x+y*y))
+in a list on outlet No 1;
+#X text 172 498 Output all mass speeds in a list on outlet No 1;
+#X text 173 530 Output all mass speeds in x or y in a list on outlet
+No 1;
+#X text 180 567 Output all norm of speed vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 173 613 Output all forces applied to masses in a list on outlet
+No 1;
+#X text 176 643 Output all mass forces in x or y in a list on outlet
+No 1;
+#X text 176 677 Output all norm of force vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 794 35 Output all mass positions in a table (\$1);
+#X text 794 95 Output all norm of position vectors (sqrt(x*x+y*y))
+in a table (\$1);
+#X text 795 149 Output all mass speeds in a list on outlet No 1;
+#X text 796 181 Output all mass speeds in x or y in a list on outlet
+No 1;
+#X text 801 209 Output all norm of speed vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 799 294 Output all mass forces in x or y in a list on outlet
+No 1;
+#X text 171 384 Output all mass positions in a list on outlet No 1
+;
+#X text 804 322 Output all norm of forces vectors (sqrt(x*x+y*y)) in
+a list on outlet No 1;
+#X text 766 441 apply a force to masses. Force comes from a table;
+#X text 781 648 output a series of messages :;
#X restore 12 419 pd masses_attributes __;
-#N canvas 146 101 1223 808 links_attributes 0;
+#N canvas -50 22 1223 700 links_attributes 0;
#X obj 5 3 cnv 15 590 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 8 260 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
@@ -503,41 +501,11 @@ and forces of masses \, or directly send value to a table.;
#X text 833 502 \$2 (optional): Masses Id;
#X text 832 489 \$1 : table name;
#X text 608 5 tables :;
-#X text 15 30 The attributes messages ask the object to output some
-of his internal parameters. They can be output by lists for positions
-and forces of links;
-#X text 168 272 Output all links center positions in a list on outlet
-No 1;
#X text 168 304 Output all links x or y in a list on outlet No 1;
#X obj 10 603 cnv 15 150 110 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 182 611 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X text 182 647 Output all link lenght deformation speed in x or y
-in a list on outlet No 1;
#X obj 612 369 cnv 15 150 110 empty empty empty 20 12 0 14 -233017
-66577 0;
-#X text 808 377 Output all link lenght deformation speed in a list
-on outlet No 1;
-#X text 808 413 Output all link lenght deformation speed in x or y
-in a list on outlet No 1;
-#X text 794 35 Output all links center positions in a table [\$1];
-#X text 794 67 Output all links center positions x or y in a table
-[\$1];
-#X text 168 385 Output all link lenght in a list on outlet No 1;
-#X text 170 418 Output all link lenght in x or y in a list on outlet
-No 1;
-#X text 169 501 Output all link center speed in a list on outlet No
-1;
-#X text 173 531 Output all link center speed in x or y in a list on
-outlet No 1;
-#X text 797 154 Output all link length in a list on outlet No 1;
-#X text 796 181 Output all link length in x or y in a list on outlet
-No 1;
-#X text 795 264 Output all link center speed in a list on outlet No
-1;
-#X text 799 294 Output all link center speed in x or y in a list on
-outlet No 1;
#X msg 9 290 linkPosXL [\$1];
#X msg 10 309 linkPosYL [\$1];
#X msg 10 328 linkPosZL [\$1];
@@ -582,8 +550,6 @@ outlet No 1;
;
#X msg 12 96 linkPos [\$1];
#X msg 12 156 linkEnd [\$1];
-#X text 173 113 output a message for every links :;
-#X text 173 173 output a message for every links :;
#X text 202 130 linkPos symbolId number centerX centerY centerZ;
#X text 172 189 linkEnd symbolId number posX1 posY1 posZ1 posX2 posY2
posZ2;
@@ -599,8 +565,6 @@ posZ2;
0;
#X text 611 522 tables :;
#X msg 628 551 linkEndT \$1 [\$2];
-#X text 790 551 Put position of the 2 link end on a table [\$1] \,
-filter on link id is possible;
#X text 795 583 table is posX1 posY1 posZ1 posX2 posY2 posZ2 ....;
#X msg 640 571 linkEnd1T \$1 [\$2];
#X msg 639 591 linkEnd2T \$1 [\$2];
@@ -614,33 +578,59 @@ filter on link id is possible;
#X msg 641 753 linkEnd1ZT \$1 [\$2];
#X msg 640 773 linkEnd2ZT \$1 [\$2];
#X msg 9 271 linkPosL [\$1);
-#X text 168 332 Output all norm of position vector (sqrt(x*x+y*y+z*z))
+#X text 15 25 The attributes messages ask the object to output some
+of its internal parameters. They can be output as lists for positions
+and forces of links;
+#X text 173 113 output a message for every link :;
+#X text 173 173 output a message for every link :;
+#X text 168 272 Output all link center positions in a list on outlet
+No 1;
+#X text 168 332 Output all norm of position vectors (sqrt(x*x+y*y+z*z))
+in a list on outlet No 1;
+#X text 168 385 Output all link lenghts in a list on outlet No 1;
+#X text 170 418 Output all link lenghts in x or y in a list on outlet
+No 1;
+#X text 179 446 Output all norm of link lenght vectors (sqrt(x*x+y*y+z*z))
in a list on outlet No 1;
-#X text 179 446 Output all norm of link lenght vector (sqrt(x*x+y*y+z*z))
+#X text 169 501 Output all link center speeds in a list on outlet No
+1;
+#X text 173 531 Output all link center speeds in x or y in a list on
+outlet No 1;
+#X text 192 565 Output all norm of link center speed vectors (sqrt(x*x+y*y+z*z))
in a list on outlet No 1;
-#X text 192 565 Output all norm of link center speed vector (sqrt(x*x+y*y+z*z))
+#X text 182 611 Output all link lenght deformation speeds in a list
+on outlet No 1;
+#X text 182 647 Output all link lenght deformation speeds in x or y
in a list on outlet No 1;
-#X text 212 675 Output all norm of link lenght deformation speed vector
+#X text 212 675 Output all norm of link lenght deformation speed vectors
(sqrt(x*x+y*y+z*z)) in a list on outlet No 1;
-#X text 793 105 Output all norm of links center positions vector (sqrt(x*x+y*y+z*z))
+#X text 794 35 Output all link center positions in a table [\$1];
+#X text 794 67 Output all link center positions x or y in a table [\$1]
+;
+#X text 793 105 Output all norm of link center positions vectors (sqrt(x*x+y*y+z*z))
in a table [\$1];
-#X text 799 218 Output all norm of link length vector (sqrt(x*x+y*y+z*z))
+#X text 797 154 Output all link lengths in a list on outlet No 1;
+#X text 796 181 Output all link lengths in x or y in a list on outlet
+No 1;
+#X text 799 218 Output all norm of link length vectors (sqrt(x*x+y*y+z*z))
+in a list on outlet No 1;
+#X text 795 264 Output all link center speeds in a list on outlet No
+1;
+#X text 799 294 Output all link center speeds in x or y in a list on
+outlet No 1;
+#X text 815 326 Output all norm of link center speed vectors (sqrt(x*x+y*y+z*z))
in a list on outlet No 1;
-#X text 815 326 Output all norm of link center speed vector (sqrt(x*x+y*y+z*z))
+#X text 808 377 Output all link lenght deformation speeds in a list
+on outlet No 1;
+#X text 808 413 Output all link lenght deformation speeds in x or y
in a list on outlet No 1;
-#X text 838 441 Output all norm of link lenght deformation speed vector
+#X text 838 441 Output all norm of link lenght deformation speed vectors
(sqrt(x*x+y*y+z*z)) in a list on outlet No 1;
+#X text 790 551 Put position of the 2 link ends on a table [\$1] \,
+filter on link id is possible;
#X restore 12 439 pd links_attributes ___;
-#N canvas 1 83 901 640 More_Info 0;
+#N canvas 26 42 901 640 More_Info 0;
#X text 96 12 pmpd : mass - spring - damper model;
-#X text 27 155 Be careful : if masses are deleted \, lists messages
-won't work;
-#X text 27 60 It is designed to implement particules physical model
-in PD.The model is based on two elements type : mass and link. The
-pmpd masses are the principals objects of the model. They got only
-one physical parameter \, the value of their mass. They can be mobile
-or fixed \, in this case forces applied on them automatically \, by
-links \, or manually \, by messages \, don't do anything.;
#X obj 426 -5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 426 294 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -819,25 +809,33 @@ rigidity2 yticks 0 5 5 \; rigidity3 resize 51 \; rigidity3 xticks 0
#X text 496 75 else;
#X text 496 95 F[n] = D(L[n]-L[n-1]);
#X text 496 54 F[n] = K(L[n] - L[0])^P + D(L[n] - L[n-1]);
-#X text 28 187 Links connect masses two by two. They got 4 physicals
-parameters : length \, rigidity \, damping and power.;
-#X text 27 216 Rigidity \, damping and power are defined by the creation
-message. The lenght is initialised to the distance between the two
-masses at the creation.;
#X text 495 124 For oriented links \, the force F[n] is projected onto
a vector which is given during the creation of the link using x1y1
coordinates.;
-#X text 495 169 For normal vector \, the direction is calculated using
-the scalar product :;
-#X text 495 248 You can build specific links using different links
-messages defining the characteristic step by step.;
#X text 496 206 x1x2 + y1y2 = 0;
-#X text 27 257 Links can be created in one shot between mutiples masses
-\, instead of creation number \, the masses linked are defined with
-their Id.;
#X text 28 41 pmpd is the 2D object of the pmpd objects collection.
;
-#X connect 3 0 4 0;
+#X text 27 155 Be careful : if masses are deleted \, list messages
+won't work;
+#X text 27 216 Rigidity \, damping and power are defined by the creation
+messages. The lenght is initialised to the distance between the two
+masses at creation.;
+#X text 27 257 Links can be created in one shot between multiple masses
+\, instead of creation number \, the masses linked are defined by their
+Id.;
+#X text 28 187 Links connect masses two by two. They've got 4 physical
+parameters : length \, rigidity \, damping and power.;
+#X text 27 60 It is designed to implement particle physical models
+in PD.The model is based on a two element type : mass and link. The
+pmpd masses are the principal objects of the model. They've got only
+one physical parameter \, the value of their mass. They can be mobile
+or fixed \, in this case forces applied to them automatically \, by
+links \, or manually \, by messages \, don't do anything.;
+#X text 495 169 For normal vectors \, the direction is calculated using
+the scalar product :;
+#X text 495 248 You can build specific links using different link messages
+defining the characteristic step by step.;
+#X connect 1 0 2 0;
#X restore 14 682 pd More_Info;
#X obj 225 254 print;
#X obj 102 229 route massPos linkEnd;
@@ -861,18 +859,12 @@ their Id.;
#X text 416 133 1 Create window;
#X msg 318 211 forceZ 1 30;
#X msg 318 233 forceX mob 10;
-#N canvas 911 140 774 655 tests 0;
+#N canvas 143 36 774 655 tests 0;
#X msg 20 26 testMass testId filterId filter_parametter ...;
-#X text 315 29 output a message for every masses that pass all the
-tests:;
#X text 265 52 testMass testId mass_number;
-#X text 327 92 output a list with 0 or 1 for every masses depending
-if it pass all test or not;
#X text 344 125 testMassL filterID 0/1 0/1 0/1 ...;
#X msg 22 154 testMassT tab_name filterId filter_parametter ...;
#X msg 22 93 testMassL testId filterId filter_parametter ....;
-#X text 341 153 Put in a table 0 or 1 depending if masses pass all
-tests;
#X text 38 191 masses test can be :;
#X text 180 191 Id \$1 / posXSup \$1 / posXInf \$1 / posYSup \$1 /
posYInf \$1 / posZSup \$1 / posZInf \$1 / speedXSup \$1 / speedXInf
@@ -885,23 +877,29 @@ forceYSup \$1 / forceYInf \$1 / forceZSup \$1 / forceZInf \$1;
#X msg 19 344 testLink testId filterId filter_parametter ...;
#X msg 21 411 testLinkL testId filterId filter_parametter ....;
#X msg 21 472 testLinkT tab_name filterId filter_parametter ...;
-#X text 314 347 output a message for every links that pass all the
-tests:;
#X text 264 370 testLink testId mass_number;
#X text 342 442 testLinkL filterID 0/1 0/1 0/1 ...;
-#X text 340 471 Put in a table 0 or 1 depending if links pass all tests
-;
-#X text 326 410 output a list with 0 or 1 for every links depending
-if it pass all test or not;
#X text 35 509 links test can be :;
#X text 177 509 Id \$1 / forceSup \$1 / forceInf \$1 / forceXSup \$1
/ forceXInf \$1 / forceYSup \$1 / forceYInf \$1 / forceZSup \$1 / forceZInf
\$1 / lengthSup \$1 / lengthInf \$1 / lengthXSup \$1 / lengthXInf \$1
/ lengthYSup \$1 / lengthYInf \$1 / lengthZSup \$1 / lengthZInf \$1
/ connectedTo \$1 (symbol or float);
+#X text 315 29 output a message for every mass that passes all tests:
+;
+#X text 327 92 output a list with 0 or 1 for every mass depending on
+whether it passes all tests or not;
+#X text 341 153 Put in a table 0 or 1 depending on whether masses pass
+all tests;
+#X text 314 347 output a message for every link that passes all tests:
+;
+#X text 326 410 output a list with 0 or 1 for every link depending
+on whether it passes all tests or not;
+#X text 340 471 Put in a table 0 or 1 depending on whether links pass
+all tests;
#X restore 12 460 pd tests ______________;
#X text 188 463 To test specific parametters;
-#N canvas 991 188 666 599 interactors 0;
+#N canvas 379 118 666 599 interactors 0;
#X msg 16 24 iCylinder \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 [\$10 [\$11
[\$12 [\$13 [\$14]]]]];
#X text 28 58 \$1 : mess Id (float or symbol) to apply this interactor
@@ -935,7 +933,7 @@ if it pass all test or not;
#X text 24 241 \$1 : mass Id (float or symbol) to apply this interactor
;
#X restore 12 479 pd interactors ________;
-#N canvas 1 95 700 758 statistics 0;
+#N canvas 388 22 700 700 statistics 0;
#X obj 25 41 cnv 15 150 270 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 19 21 cnv 15 590 15 empty empty empty 20 12 0 14 -158509 -66577
@@ -954,14 +952,8 @@ if it pass all test or not;
#X msg 30 262 massSpeedStd \$1;
#X text 181 54 output the average position of masses and center distance
;
-#X text 182 91 output the standard deviation of masses position and
-center distance;
-#X text 181 141 output the average force applyed to masses (X \, Y
-\, Z and Norm);
-#X text 182 178 output the standard deviation of masses force;
#X text 181 226 output the average velocity of masses (X \, Y \, Z
\, Norm);
-#X text 181 263 output the standard deviation of masses velocity;
#X text 22 21 masses :;
#X obj 29 357 cnv 15 150 350 empty empty empty 20 12 0 14 -233017 -66577
0;
@@ -983,33 +975,41 @@ center distance;
#X msg 37 450 linkLengthMean \$1;
#X msg 38 538 linkPosSpeedMean \$1;
#X msg 39 618 linkLengthSpeedMean \$1;
-#X text 189 404 output the standard deviation of link center position
-;
-#X text 188 364 output the average position of links center (X \, Y
-\, Z \, center disdance);
-#X text 189 488 output the standard deviation of links length;
-#X text 188 451 output the average links length (X \, Y \, Z \, L)
-;
#X text 188 536 output the average center position velocity of links
(X \, Y \, Z \, Norm);
-#X text 192 572 output the standard deviation of links center position
-velocity;
-#X text 190 620 output the average change in links length (X \, Y \,
+#X text 26 337 links :;
+#X text 182 91 output the standard deviation of mass positions and
+center distance;
+#X text 180 137 output the average force applied to masses (X \, Y
+\, Z and Norm);
+#X text 182 178 output the standard deviation of mass forces;
+#X text 181 263 output the standard deviation of mass velocities;
+#X text 188 364 output the average position of link centers (X \, Y
+\, Z \, center disdance);
+#X text 189 404 output the standard deviation of link center positions
+;
+#X text 188 451 output the average links lengths (X \, Y \, Z \, L)
+;
+#X text 189 488 output the standard deviation of link lengths;
+#X text 192 572 output the standard deviation of link center position
+velocities;
+#X text 190 620 output the average change in link lengths (X \, Y \,
Z \, Norm);
-#X text 191 658 output the standard deviation of links length change
+#X text 191 658 output the standard deviation of link lengths change
;
-#X text 26 337 links :;
#X restore 13 501 pd statistics _________;
#X text 185 480 To send complex forces;
#X text 187 503 To get statistical data of the simulation;
-#X connect 35 0 40 0;
-#X connect 38 0 50 0;
-#X connect 40 0 34 0;
-#X connect 50 0 39 0;
-#X connect 50 1 39 1;
-#X connect 50 2 49 0;
-#X connect 51 0 56 0;
-#X connect 53 0 52 0;
-#X connect 54 0 33 0;
-#X connect 56 0 36 0;
-#X connect 57 0 36 0;
+#X text 101 308 Bang - A bang at the left inlet computes the new model
+state based on previous time step.;
+#X connect 34 0 39 0;
+#X connect 37 0 49 0;
+#X connect 39 0 33 0;
+#X connect 49 0 38 0;
+#X connect 49 1 38 1;
+#X connect 49 2 48 0;
+#X connect 50 0 55 0;
+#X connect 52 0 51 0;
+#X connect 53 0 32 0;
+#X connect 55 0 35 0;
+#X connect 56 0 35 0;
diff --git a/pmpd~-help.pd b/pmpd~-help.pd
index b938e75..967631d 100644
--- a/pmpd~-help.pd
+++ b/pmpd~-help.pd
@@ -1,65 +1,65 @@
-#N canvas 247 25 766 656 10;
+#N canvas 356 22 766 656 10;
#X msg 103 243 inForce \$1 \$2 \$3;
#X msg 30 74 reset;
-#X text 77 75 Clear everything;
#X msg 44 100 mass \$1 \$2;
-#X text 135 99 Create a mass with argument : weight of the mass \,
-initial position. A mass with no weight will not move.;
-#X text 153 6 pmpd~ : 1d particular physical modeling for audio synthesis
-;
-#X text 181 138 connect 2 masses (\$1 and \$2) \, with a link rigidity
+#X text 168 133 connect 2 masses (\$1 and \$2) \, with a link rigidity
\$3 and damping \$4;
#X msg 70 171 NLlink \$1 \, \$2 \, \$3 \, \$4 \, \$5 \, \$6 \, \$7
\, \$8;
-#X text 340 173 like the link message \, but with extra arguments :
+#X text 302 166 like the link message \, but with extra arguments :
;
-#X text 361 188 \$5 is pow for a non-linear link;
-#X text 361 203 \$6 is the lenght of the link;
+#X text 323 181 \$5 is pow for a non-linear link;
+#X text 323 196 \$6 is the lenght of the link;
#X msg 160 371 outPos \$1 \$2 \$3;
#X msg 131 305 inPos \$1 \$2 \$3;
#X msg 179 411 outSpeed \$1 \$2 \$3;
-#X text 228 270 You can send many force to a single mass \, the resulting
-force will be the sum of all forces;
#X obj 30 593 pmpd~ 1 1;
-#X text 117 592 arg1 : number of audio inlet (min 1);
-#X text 117 606 arg2 : number of audio outlet (min 1);
-#X text 246 304 connect an inlet to the position of a specific mass
+#X text 226 299 connect an inlet to the position of a specific mass
(\$2) \, with an amplitude factor \$3;
-#X text 247 334 many inForce and inPos messages can be send \, so the
-same inlet can be used to move and send force to diferents masses;
#X obj 31 631 dac~;
-#X text 361 219 \$7 and \$8 are the min and max size of this link;
-#X text 281 372 Connect the Position of the \$2 mass to the \$1 outlet
-\, with amplitude \$3;
-#X text 314 410 Connect the Velocity of the \$2 mass to the \$1 outlet
-\, with amplitude \$3;
+#X text 323 212 \$7 and \$8 are the min and max size of this link;
#X msg 150 496 posX \$1 \$2;
#X msg 162 516 forceX \$1 \$2;
#X text 147 477 few messages can interact in real time with the simulation
;
#X text 117 621 arg3 : oversample factor (usefull to run the simulation
faster than audio rate);
-#X text 227 495 change the position (\$2) of a fixed mass (\$1);
-#X text 259 517 send a force (\$1) to a mass (\$2);
+#X text 217 494 change the position (\$2) of a fixed mass (\$1);
+#X text 239 515 send a force (\$1) to a mass (\$2);
#X obj 128 553 osc~ 444;
-#X text 191 552 interaction with the simulation is at audio rate;
+#X text 181 552 interaction with the simulation is at audio rate;
#X msg 54 137 link \$1 \$2 \$3 \$4;
-#X text 228 242 audio inlet \$1 send force to the mass \$2 \, with
+#X text 209 237 audio inlet \$1 send force to the mass \$2 \, with
an amplitude factor \$3;
-#X text 176 434 The output of a ontlet is the sum of the contribution
-of all out* messages;
-#X text 19 38 all this messages have to be send only 1 time to create
+#X text 153 6 pmpd~ : 1d particular physical modelling for audio synthesis
+;
+#X text 19 38 all these messages have to be sent only once to create
a physical model structure;
-#X connect 0 0 15 0;
-#X connect 1 0 15 0;
-#X connect 3 0 15 0;
-#X connect 7 0 15 0;
-#X connect 11 0 15 0;
-#X connect 12 0 15 0;
-#X connect 13 0 15 0;
-#X connect 15 0 20 0;
-#X connect 15 0 20 1;
-#X connect 24 0 15 0;
-#X connect 25 0 15 0;
-#X connect 30 0 15 0;
-#X connect 32 0 15 0;
+#X text 121 95 create a mass with argument : weight of the mass \,
+initial position. A mass with no weight will not move.;
+#X text 68 73 clear everything;
+#X text 209 265 You can send many forces to a single mass \, the resulting
+force will be the sum of all forces;
+#X text 225 323 many inForce and inPos messages can be sent \, so the
+same inlet can be used to move and send force to diferents masses;
+#X text 261 367 connect the Position of the \$2 mass to the \$1 outlet
+\, with amplitude \$3;
+#X text 290 404 connect the Velocity of the \$2 mass to the \$1 outlet
+\, with amplitude \$3;
+#X text 179 429 The output of an outlet is the sum of the contribution
+of all out* messages;
+#X text 117 592 arg1 : number of audio inlets (min 1);
+#X text 117 606 arg2 : number of audio outlets (min 1);
+#X connect 0 0 11 0;
+#X connect 1 0 11 0;
+#X connect 2 0 11 0;
+#X connect 4 0 11 0;
+#X connect 8 0 11 0;
+#X connect 9 0 11 0;
+#X connect 10 0 11 0;
+#X connect 11 0 13 0;
+#X connect 11 0 13 1;
+#X connect 15 0 11 0;
+#X connect 16 0 11 0;
+#X connect 21 0 11 0;
+#X connect 23 0 11 0;