bbb.defaultSolver = new ClSimplexSolver()
hand = $world.firstHand();
pos = hand.getPosition().addPt(pt(200, 0));
start = $part('Rectangle', 'PartsBin/Basic').openInWorld(pos);
end = $part('Rectangle', 'PartsBin/Basic').openInWorld(pos.addXY(100,100));
[start,end].invoke('applyStyle', {extent: pt(10,10)});
midP = $part('Ellipse', 'PartsBin/Basic').openInWorld(pos);
midP.setExtent(pt(20,20));
midP.addScript(function update() {
this.setPosition(this.getPosition());
start.setPosition(start.getPosition());
});
midP.startStepping(100, 'update')
always: {
var center = start.getPosition().addPt(end.getPosition()).scaleBy(0.5);
midP.getPosition().eqPt(center);
}
editCallback = bbb.edit(start.getPosition(), ["x", "y"]);
this.onMouseMove = function (evt) {
editCallback(evt.getPosition().addPt(pt(20, 20)));
}
editCallback();
editCallback = null;
this.onMouseMove = function (evt) {};
[start,end,midP].invoke('remove');
start = end = midP = hand = null;