> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://studio.sketchpad.cc/sp/pad/view/ro.-JEwV1qYbIA/rev.9
 * 
 * authors: 
 *   GoToLoop

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



/**
 * Orbital System (v2.10)
 * by  Sephm (2014/Feb)
 * mod GoToLoop
 *
 * forum.processing.org/two/discussion/3206/
 * rotate-around-objects-local-coordinate-system
 *
 * studio.processingtogether.com/sp/pad/export/ro.9c4pxAevkAbwG/latest
 */

static final int DIM1 = 50, DIM2 = 20;
float ang, step = .05;

void setup() {
  size(600, 600, P3D);
  smooth(8);
  noStroke();
}

void draw() {
  background(-1);
  lights();
  translate(width>>1, height>>1);

  fill(#FFC000);
  sphere(DIM1);

  pushMatrix();
  rotateX(ang += step);
  translate(0, height/3);

  fill(#FF0000);
  box(DIM2);
  popMatrix();

  rotateY(ang);
  translate(width/3, 0);

  fill(#00FF00);
  box(DIM2);
}

void mousePressed() {
  step = -step;
}

void keyPressed() {
  step *= -1.;
}