addChild(ti);
Cylinder link = new Cylinder(1.5f, (float)source.distance(destination));
link.setAppearance(base);
Vector3d destination0 = new Vector3d(destination);
destination0.negate();
destination0.add(source);
Vector3d diff = new Vector3d(destination0);
destination0.y = -destination0.y;
double angle = destination0.angle(new Vector3d(0.0, -1.0, 0.0));
destination0.cross(destination0, new Vector3d(0.0, -1.0, 0.0));
Quat4d rot = new Quat4d();
rot.set(new AxisAngle4d(destination0, angle));
diff.scale(.5);
destination.add(diff);
TransformGroup tg = new TransformGroup(new Transform3D(rot, new Vector3d(destination), 1.0));
tg.addChild(link);
addChild(tg);
setCapability(ALLOW_DETACH);
setPickable(false);
}