Exemple #1
0
  /** Draws circular particle using a display list. */
  public void display(GL gl) {
    if (PARTICLE_DISPLAY_LIST < 0) { // MAKE DISPLAY LIST:
      int displayListIndex = gl.glGenLists(1);
      gl.glNewList(displayListIndex, GL.GL_COMPILE);
      drawParticle(gl, new Point3d(), radius); // /particle at origin
      gl.glEndList();
      System.out.println("MADE LIST " + displayListIndex + " : " + gl.glIsList(displayListIndex));
      PARTICLE_DISPLAY_LIST = displayListIndex;
    }

    // / COLOR: DEFAULT WHITE; GREEN IF HIGHLIGHTED; ADD RED IF PINNED
    Color3f c = new Color3f(1, 1, 1); // default: white
    if (pin) {
      c.x = 1f; // add red
      c.y *= 0.2f;
      c.z = 0;
    }
    if (highlight) {
      c.y = 1;
      c.z = 0;
    }
    if (GooParticle.class.isInstance(this)) {
      c.x = 0;
      c.y = 0;
      // now its blue
    }

    gl.glColor3f(c.x, c.y, c.z);

    // / DRAW ORIGIN-CIRCLE TRANSLATED TO "p":
    gl.glPushMatrix();
    gl.glTranslated(x.x, x.y, x.z);
    gl.glCallList(PARTICLE_DISPLAY_LIST);
    gl.glPopMatrix();
  }
 /** Creates a cube at 0,0 in the viewport. */
 void createCube() {
   GL.glNewList(cubeListIndexBase, GL.GL_COMPILE);
   GL.glBegin(GL.GL_QUADS);
   // front
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, -0.5f, 0.5f); // bottom left
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(0.5f, -0.5f, 0.5f); // bottom right
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, 0.5f); // top right
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, 0.5f); // top left
   // back
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(-0.5f, -0.5f, -0.5f); // bottom left
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, -0.5f, -0.5f); // bottom right
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, -0.5f); // top right
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, -0.5f); // top left
   // left
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(-0.5f, -0.5f, -0.5f); // bottom left
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, -0.5f, 0.5f); // bottom right
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, 0.5f); // top right
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, -0.5f); // top left
   // right
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(0.5f, -0.5f, 0.5f); // bottom left
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, -0.5f, -0.5f); // bottom right
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, -0.5f); // top right
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, 0.5f); // top left
   // top
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, -0.5f);
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, -0.5f);
   GL.glColor3f(1.0f, 0.0f, 0.0f);
   GL.glVertex3f(-0.5f, 0.5f, 0.5f);
   GL.glColor3f(1.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, 0.5f, 0.5f);
   // bottom
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(0.5f, -0.5f, 0.5f);
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(-0.5f, -0.5f, 0.5f);
   GL.glColor3f(0.0f, 0.0f, 1.0f);
   GL.glVertex3f(-0.5f, -0.5f, -0.5f);
   GL.glColor3f(0.0f, 1.0f, 0.0f);
   GL.glVertex3f(0.5f, -0.5f, -0.5f);
   GL.glEnd();
   GL.glEndList();
 }