Class Cara3D

java.lang.Object
  extended by Cara3D

public class Cara3D
extends java.lang.Object

Representa uno de los dos triangulos (que forman un cuadrado) que forman una cara de una pieza del cubo rubik. Usada para dibujar el cubo rubik en pantalla. El orden en que se definan sus vertices indicara hacia donde 'mira' esta cara, esta caracteristica es importante para saber si esta cara debe ser dibujada o no. En este proyecto se definio que todas las caras miren 'hacia afuera' de su 'Pieza'. Un observador que ve el lado externo de la cara, vera que los vertices siguen un orden antihorario.


Field Summary
private  int color
          Define el color de esta cara.
private  Pieza piezaBase
          Pieza a la que pertenece esta cara.
private  int[] vertice
          Identificafion de los tres vertices que definen esta cara.
 
Constructor Summary
private Cara3D(Pieza pBase, int[] ve, int co)
          Crea e inicializa una Cara3D, con las caracteristicas especificadas.
  Cara3D(Pieza ba, int v0, int v1, int v2, int col)
          Crea e inicializa una Cara3D, con las caracteristicas especificadas.
 
Method Summary
 Cara3D clone()
          Retorna una copia de esta cara, cuidando de no perder la referencia a su Pieza base original.
 Point3D getCentro()
          Retorna un Point3D que define la posicion de esta cara en el espacio 3D.
 int getColor()
          Retorna el color de esta cara.
 Point3D getVectorNormal()
          Retorna un vector (Point3D) normal a esta cara y que apunta hacia su lado exterior.
 Point3D[] getVertices()
          Retorna el arraglo que identifica los vertices de esta cara.
 void setColor(int co)
          Cambia el color de esta cara.
 void setPieza(Pieza pB)
          Cambia la Pieza a la que pertenece esta cara.
 void setVerticeArray(int[] ve)
          Cambia el arreglo que identifica los vertices de esta cara.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

piezaBase

private Pieza piezaBase
Pieza a la que pertenece esta cara.


vertice

private int[] vertice
Identificafion de los tres vertices que definen esta cara.


color

private int color
Define el color de esta cara.

Constructor Detail

Cara3D

public Cara3D(Pieza ba,
              int v0,
              int v1,
              int v2,
              int col)
Crea e inicializa una Cara3D, con las caracteristicas especificadas.

Parameters:
ba - Pieza a la que pertenece esta cara.
v0 - Primer vertice.
v1 - Segundo vertice.
v2 - Tercer vertice.
col - Color de la cara (definido en Triangulo.java).

Cara3D

private Cara3D(Pieza pBase,
               int[] ve,
               int co)
Crea e inicializa una Cara3D, con las caracteristicas especificadas. Usado por 'clone()'.

Parameters:
pBase - Pieza a la que pertenece esta cara.
ve - Arreglo que contiene los tres vertices.
co - Color de la cara (definido en Triangulo.java).
Method Detail

setPieza

public void setPieza(Pieza pB)
Cambia la Pieza a la que pertenece esta cara.

Parameters:
pB - Pieza a la que pertenecera esta cara.

setVerticeArray

public void setVerticeArray(int[] ve)
Cambia el arreglo que identifica los vertices de esta cara.

Parameters:
ve - Arreglo que identifica los vertices de esta cara.

setColor

public void setColor(int co)
Cambia el color de esta cara.

Parameters:
co - Nuevo color de esta cara.

getVertices

public Point3D[] getVertices()
Retorna el arraglo que identifica los vertices de esta cara.

Returns:
El arraglo que identifica los vertices de esta cara.

getColor

public int getColor()
Retorna el color de esta cara.

Returns:
El color de esta cara.

getVectorNormal

public Point3D getVectorNormal()
Retorna un vector (Point3D) normal a esta cara y que apunta hacia su lado exterior.

Returns:
un vector (Point3D) normal a esta cara y que apunta hacia su lado exterior.

clone

public Cara3D clone()
Retorna una copia de esta cara, cuidando de no perder la referencia a su Pieza base original.

Overrides:
clone in class java.lang.Object

getCentro

public Point3D getCentro()
Retorna un Point3D que define la posicion de esta cara en el espacio 3D.