|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--java.awt.Panel | +--java.applet.Applet | +--Fotorred
Clase principal del programa. Establece el "layout" de la ventana principal del programa y crea la barra de menús. Genera los modelos tridimensionales del edificio y el suelo, controlando los eventos de ratón para cambiar el punto de vista del observador. Mantiene el estado general de la simulación recibiendo información de las clases que permiten modificar variables. También ejecuta las rutinas de finalización cuando se cierra el programa.
Inner classes inherited from class java.applet.Applet |
java.applet.Applet.AccessibleApplet |
Inner classes inherited from class java.awt.Panel |
java.awt.Panel.AccessibleAWTPanel |
Inner classes inherited from class java.awt.Container |
java.awt.Container.AccessibleAWTContainer |
Inner classes inherited from class java.awt.Component |
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock |
Field Summary | |
private boolean |
acabar
|
float |
alto
|
float |
altoSup
|
private float |
altoSupTemp
|
private float |
altoTemp
|
private float |
alturaPiso
|
private static float |
ALTURAPISOMINIMA
|
private float |
alturaPisoTemp
|
private Matrix3D |
amat
|
private float |
ancho
|
private float |
anchoTemp
|
private int |
azul
|
private int |
azulEdif
|
private int |
azulLateral
|
private int |
azulSuelo
|
private Geometria3D |
baseDef
|
private int |
beta
|
private int |
betaTemp
|
private float[] |
dimensiones
|
private Objeto3D |
edif
|
private Geometria3D |
edificio
|
private float |
escala
|
private float |
escalaInicial
|
private float |
factorX
|
private float |
factorZ
|
static java.lang.String |
FECHA
|
private int |
grados
|
(package private) java.awt.Label |
infoLabel
|
private java.awt.Panel |
infoPanel
|
private boolean |
infoSi
|
static int |
INITAZUL
|
static int |
INITAZULEDIF
|
static int |
INITAZULSUELO
|
static int |
INITCOLORTRANSP
|
static int |
INITROJO
|
static int |
INITROJOEDIF
|
static int |
INITROJOSUELO
|
static int |
INITVERDE
|
static int |
INITVERDEEDIF
|
static int |
INITVERDESUELO
|
static float |
INITX
|
static float |
INITXSup
|
static float |
INITY
|
static float |
INITZ
|
static float |
INITZSup
|
private float |
largo
|
private float |
largoSup
|
private float |
largoSupTemp
|
private float |
largoTemp
|
static int |
MAXPISOS
|
private MenuFrame |
menus
|
private java.lang.String |
message
|
private java.lang.String |
messageSuelo
|
private boolean |
mostrarCuadricula
|
private boolean |
mostrarPisos
|
private float |
muro
|
private float |
muroTemp
|
static float |
MUROTIPO
|
private java.lang.Thread |
myThread
|
private int |
nPisosAltoTemp
|
private int |
nPisosBajoTemp
|
private java.awt.Graphics |
offScreenGraphics
|
private java.awt.Image |
offScreenImage
|
private java.awt.Dimension |
offScreenSize
|
private static int |
OFFSETAZUL
|
private static int |
OFFSETROJO
|
private boolean |
painted
|
static float |
PISOTIPO
|
private int |
prevX
|
private int |
prevY
|
private int |
rojo
|
private int |
rojoEdif
|
private int |
rojoSuelo
|
private int |
rojoTejado
|
static int |
ROTIPO
|
private Matrix3D |
samat
|
private float |
sombra
|
private float |
sombraTemp
|
static float |
SOMBRATIPO
|
private Matrix3D |
stmat
|
private Objeto3D |
suelo
|
private Matrix3D |
tmat
|
private int |
transparencia
|
private float |
transVidrio
|
private float |
transVidrioTemp
|
static float |
TRANSVIDRIOTIPO
|
static java.net.URL |
URLBase
|
private int |
verde
|
private int |
verdeEdif
|
private int |
verdeSuelo
|
static java.lang.String |
VERSION
|
private float |
vidrio
|
private float |
vidrioTemp
|
static float |
VIDRIOTIPO
|
private float |
xalfa
|
private float |
xfac
|
private float |
xfacTemp
|
private float |
yalfa
|
Fields inherited from class java.applet.Applet |
accessibleContext, serialVersionUID, stub |
Fields inherited from class java.awt.Panel |
base, nameCounter |
Fields inherited from class java.awt.Container |
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads |
Fields inherited from class java.awt.Component |
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y |
Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
Fotorred()
|
Method Summary | |
void |
cargarModelo(float[] float_data)
Reconstruye un ejemplo de simulación con los datos leídos desde un fichero. |
private void |
crearModelos()
Genera los modelos tridimensionales, determina sus límites exteriores y determina el factor de escala. |
void |
destroy()
Rutina de finalización llamada por el navegador cuando el applet ya no es visible (después de ejecutar stop). |
private float |
escalar(Objeto3D modelo)
Calcula el factor de escala adecuado para mostrar un objeto 3D en el espacio disponible de la pantalla. |
java.lang.String |
getAppletInfo()
Muestra información sobre el autor y la versión del programa. |
float[] |
getDim()
Obtiene las dimensiones actuales del edificio, tanto en su parte inferior como superior. |
float |
getMuro()
Obtiene el valor del coeficiente de transmisión del muro del edificio. |
java.lang.String[][] |
getParameterInfo()
Obtiene información sobre los parámetros modificables en la página HTML del applet. |
float |
getSombra()
Obtiene el valor del factor de sombra del vidrio empleado en el edificio. |
float |
getTransVidrio()
Obtiene el valor del coeficiente de transmisión del vidrio empleado en el edificio. |
float |
getVidrio()
Obtiene el valor actual del porcentaje de superficie acristalada del edificio. |
void |
init()
Establece el color de fondo inicial, el "layout" y determina los límites de la ventana principal. |
private void |
leerGeometria()
A partir de las opciones seleccionadas por el usuario prepara la creación de un nuevo modelo 3D del edificio. |
private void |
leerGeometriaSuelo()
Prepara la creación de un nuevo modelo 3D del plano del suelo (con o sin cuadrícula). |
void |
mostrarTipo(boolean state)
Muestra u oculta el modelo del edificio tipo. |
boolean |
mouseDown(java.awt.Event e,
int x,
int y)
Determinar las coordenadas del punto donde el usuario ha pinchado con el ratón. |
boolean |
mouseDrag(java.awt.Event e,
int x,
int y)
Se ejecuta cuando el usuario arrastra el ratón para cambiar el punto de vista. |
private void |
nuevoEdif()
Crea un nuevo modelo tridimensional del edificio y lo muestra en pantalla en su posición inicial. |
void |
paint(java.awt.Graphics g)
Rutina de representación gráfica. |
void |
redraw()
Crea nuevos modelos 3D a partir de los valores seleccionados por el usuario y los muestra en la posición inicial. |
private void |
restaurarZoom(float factor)
Restaura el valor de zoom original para mostrar el edificio tipo. |
private void |
rotar(Matrix3D mat1,
Matrix3D mat2,
float angX,
float angY)
Aplicar rotaciones sobre los ejes X e Y de la pantalla. |
private void |
rotInit(int grad,
int incr)
Aplica rotación a los modelos 3D en torno al eje Z y en sentido horario. |
void |
run()
Crea los modelos tridimensionales iniciales y los muestra en pantalla. |
private void |
setPainted()
Establece el flag control gráfico y notifica a los objetos "observadores" que se acaba de actualizar la representación en pantalla. |
void |
start()
Este método es ejecutado por el navegador cada vez que se cargar la página HTML que contiene el applet. |
void |
stop()
Lo ejecuta el navegador al abandonar la página HTML. |
void |
tipo()
Reconstruye el edificio tipo para mostrarlo en pantalla. |
void |
toggleCuadricula(boolean infoState)
Muestra u oculta todos la cuadrícula en el modelo 3D del suelo. |
void |
toggleInfo(boolean infoState)
Muestra u oculta la línea de información de la parte inferior de la pantalla. |
void |
togglePlantas(boolean infoState)
Muestra u oculta todos los pisos en el modelo 3D del edificio. |
void |
update(java.awt.Graphics g)
Permite utilizar "Double Buffering" para evitar parpadeo de la imagen. |
void |
updateCoefVidrio(float coefVidrioNew)
Modifica el coeficiente de transmisión del vidrio. |
void |
updateColor(float roj,
float verd,
float azu)
Permite modificar el color de fondo en la ventana principal del programa. |
void |
updateColorEdif(float roj,
float verd,
float azu)
Permite modificar el color del modelo 3D del edificio. |
void |
updateColorSuelo(float roj,
float verd,
float azu)
Cambia el color del modelo 3D del plano del suelo. |
void |
updateDim(float larg,
float anch,
float alt)
A instancias del usuario, se solicita la creación de un nuevo modelo del edificio con nuevas dimensiones sobre los ejes X, Y, Z. |
void |
updateDimSup(float largSup,
float altSup)
El usuario ha modificado las dimensiones de la parte superior del edificio. |
void |
updateMuro(float muroNew)
Modifica el coeficiente de transmisión del muro. |
void |
updatePiso(float altNew)
Modifica la altura de los pisos. |
void |
updateRot(int angulo)
Gira el edificio sobre el suelo en sentido horario (en torno al eje Z). |
void |
updateSombra(float sombraNew)
Modifica el factor de sombra del vidrio. |
void |
updateTranspColor(float transp)
Modifica el grado de transparencia de los colores del edificio y el suelo. |
void |
updateVidrio(float vidrioNew)
Modifica el porcentaje de superficie acristalada del edificio. |
void |
updateZoom(int increm)
Modifica el factor de zoom de la representación gráfica en pantalla. |
Methods inherited from class java.applet.Applet |
getAccessibleContext, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus |
Methods inherited from class java.awt.Panel |
|
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, paramString, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, readObject, remove, remove, removeAll, removeContainerListener, removeNotify, setFocusOwner, setFont, setLayout, transferFocus, validate, validateTree, writeObject |
Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkit, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, resetGC, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait |
Field Detail |
public static final java.lang.String VERSION
public static final java.lang.String FECHA
public static java.net.URL URLBase
private boolean painted
private float xfac
private int prevX
private int prevY
private float xalfa
private float yalfa
private float escala
private int grados
private float[] dimensiones
private Objeto3D edif
private Objeto3D suelo
private Matrix3D amat
private Matrix3D tmat
private Matrix3D samat
private Matrix3D stmat
public static final float INITX
public static final float INITY
public static final float INITZ
public static final float INITXSup
public static final float INITZSup
public static final int INITROJO
public static final int INITVERDE
public static final int INITAZUL
public static final int INITROJOEDIF
public static final int INITVERDEEDIF
public static final int INITAZULEDIF
public static final int INITROJOSUELO
public static final int INITVERDESUELO
public static final int INITAZULSUELO
public static final int INITCOLORTRANSP
private int rojo
private int verde
private int azul
private int rojoEdif
private static final int OFFSETROJO
private static final int OFFSETAZUL
private int rojoTejado
private int azulLateral
private int verdeEdif
private int azulEdif
private int rojoSuelo
private int verdeSuelo
private int azulSuelo
private int transparencia
public static final int MAXPISOS
private static final float ALTURAPISOMINIMA
private float largo
private float ancho
public float alto
private float largoSup
public float altoSup
private float factorZ
private float factorX
public static final float PISOTIPO
public static final int ROTIPO
public static final float VIDRIOTIPO
public static final float MUROTIPO
public static final float TRANSVIDRIOTIPO
public static final float SOMBRATIPO
private float alturaPiso
private int beta
private float vidrio
private float muro
private float transVidrio
private float sombra
private int nPisosBajoTemp
private int nPisosAltoTemp
private float alturaPisoTemp
private float largoTemp
private float anchoTemp
private float altoTemp
private float largoSupTemp
private float altoSupTemp
private int betaTemp
private float vidrioTemp
private float muroTemp
private float transVidrioTemp
private float sombraTemp
private float xfacTemp
private float escalaInicial
private java.awt.Panel infoPanel
java.awt.Label infoLabel
private boolean infoSi
private Geometria3D edificio
private Geometria3D baseDef
private java.lang.String message
private java.lang.String messageSuelo
private MenuFrame menus
private boolean acabar
private boolean mostrarPisos
private boolean mostrarCuadricula
private java.awt.Image offScreenImage
private java.awt.Dimension offScreenSize
private java.awt.Graphics offScreenGraphics
private java.lang.Thread myThread
Constructor Detail |
public Fotorred()
Method Detail |
public void init()
init
in class java.applet.Applet
private void rotInit(int grad, int incr)
grad
- grados de rotación para perspectiva inicial (se aplica al edificio y al suelo).incr
- grados de rotación seleccionados por el usuario (sólo se aplica al edificio).public void start()
start
in class java.applet.Applet
public void run()
run
in interface java.lang.Runnable
private void crearModelos()
private float escalar(Objeto3D modelo)
modelo
- Modelo tridimensional del que se va a calcular el factor de escala.public boolean mouseDown(java.awt.Event e, int x, int y)
mouseDown
in class java.awt.Component
e
- Evento procedente del ratón.x
- Coordenada sobre el eje X de la pantalla.y
- Coordenada sobre el eje Y de la pantalla.public boolean mouseDrag(java.awt.Event e, int x, int y)
mouseDrag
in class java.awt.Component
e
- Evento procedente del ratón.x
- Coordenada final del arrastre sobre el eje X de la pantalla.y
- Coordenada final del arrastre sobre el eje Y de la pantalla.private void rotar(Matrix3D mat1, Matrix3D mat2, float angX, float angY)
mat1
- Matriz de coordenadas 3D transformadas.mat2
- Matriz de coordenadas 3D a transformar.angX
- Ángulo a rotar en torno al eje X.angY
- Ángulo a rotar en torno al eje Y.public void redraw()
public final void update(java.awt.Graphics g)
update
in class java.awt.Container
g
- Entorno gráfico donde dibujar.public void stop()
stop
in class java.applet.Applet
public void paint(java.awt.Graphics g)
paint
in class java.awt.Container
g
- Entorno gráfico donde dibujar.private void setPainted()
public void updateDim(float larg, float anch, float alt)
larg
- Nueva longitud del edificio (en metros).anch
- Nuevo valor de la anchura en metros.alt
- Altura en metros.public void updateDimSup(float largSup, float altSup)
largSup
- Longitud de la parte superior del edificio (en metros).altSup
- Altura de la parte superior del edificio (en metros).private void nuevoEdif()
private void leerGeometria()
private void leerGeometriaSuelo()
public void updateColor(float roj, float verd, float azu)
roj
- Nivel de color rojo (valor entero entre 0 y 255)verd
- Grado de color verde.azu
- Nivel de color azul.public void updateColorEdif(float roj, float verd, float azu)
roj
- Grado de color rojo (valor entero entre 0 y 255).verd
- Grado de color verde (valor entero entre 0 y 255).azu
- Grado de color azul (valor entero entre 0 y 255).public void updateColorSuelo(float roj, float verd, float azu)
roj
- Nivel de color rojo.verd
- Nivel de color verde.azu
- Nivel de color azul.public void updateTranspColor(float transp)
transp
- Grado de transparencia (float entre 0 y 1)public void updateRot(int angulo)
angulo
- Ángulo de rotación en grados.public void updateZoom(int increm)
increm
- Valor entero porcentual del factor de zoom de la imagen.private void restaurarZoom(float factor)
factor
- Factor de zoom.public void updatePiso(float altNew)
altNew
- Nuevo valor de la altura de piso en metros.public void updateVidrio(float vidrioNew)
vidrioNew
- Nuevo valor del porcentaje de vidrio.public void updateMuro(float muroNew)
Nuevo
- valor del coeficiente de transmisión del muro empleado.public void updateCoefVidrio(float coefVidrioNew)
Nuevo
- valor del coeficiente de transmisión del tipo de vidrio empleado.public void updateSombra(float sombraNew)
Nuevo
- valor del factor de sombra del vidrio empleado.public void tipo()
public float[] getDim()
public float getVidrio()
public float getMuro()
public float getTransVidrio()
public float getSombra()
public void toggleInfo(boolean infoState)
infoState
- Flag para controlar la visualización (True: mostrar info. False: Ocultar).public void togglePlantas(boolean infoState)
infoState
- Flag para controlar la visualización (True: mostrar pisos. False: Ocultar).public void toggleCuadricula(boolean infoState)
infoState
- Flag para controlar la visualización (True: mostrar cuadrícula. False: Ocultar).public void mostrarTipo(boolean state)
state.
- Flag para controla la visualización del edificio tipo.
(True: Mostrar edificio tipo. False: Ocultar el edificio tipo y mostrar
el edificio bajo simulación).public void cargarModelo(float[] float_data)
float_data
- Datos del modelo.public void destroy()
destroy
in class java.applet.Applet
public java.lang.String[][] getParameterInfo()
getParameterInfo
in class java.applet.Applet
public java.lang.String getAppletInfo()
getAppletInfo
in class java.applet.Applet
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |