function trelis (corner,size,nx,ny, stiff,reinforce) {
let p = [];
let c = [];
let dx = Vec(size.x/nx,0);
let dy = Vec(0,size.y/ny);
let m = nx+1;
for (let i = 0; i <= ny; i++) {
let q = corner.add (dy.scale (i));
for (let j = 0; j <= nx; j++) {
p.push (new Particle(q.add (dx.scale(j))));
let k = i*m+j;
if (j > 0) c.push (new LinearConstraint (p[k], p[k-1]));
if (i > 0) c.push (new LinearConstraint (p[k], p[k-m]));
if (i > 0 && j > 0 && stiff) c.push (new LinearConstraint (p[k-1], p[k-m]),
new LinearConstraint (p[k], p[k-m-1]));
}
}
if (nx > 1 && ny > 1 && reinforce) {
c.push (new LinearConstraint(p[0],p[p.length-1]),
new LinearConstraint(p[0],p[m-1]),
new LinearConstraint(p[0],p[p.length-m]),
new LinearConstraint(p[p.length-m],p[m-1]),
new LinearConstraint(p[m-1],p[p.length-1]),
new LinearConstraint(p[p.length-m],p[p.length-1])
);
}
return new Body(p,c);
}