so
Class SceneVisualisation

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--so.SceneVisualisation
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable

public class SceneVisualisation
extends javax.swing.JPanel
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener

Classe servant a visualiser la scene - les rayons, dioptres, lentilles, sources. Effectue aussi les actions de zoom-in, zoom-out, restauree vue, deplacer.

See Also:
Serialized Form

Field Summary
(package private)  java.awt.Graphics2D bgg
          Graphics de l'image contenent le fond de la scene
(package private)  java.awt.image.BufferedImage bgImage
          l'image contenent le fond de la scene
(package private)  java.awt.Graphics2D cbg
          Graphics de l'image servant a dessiner les lentilles
(package private)  double centery
          Position y de la scene sur laquelle on est centre
(package private)  java.awt.image.BufferedImage compositeBuffer
          l'image servant a dessiner les lentilles
(package private)  double dx
          dimensions de la scene (cm)
(package private)  double dy
          dimensions de la scene (cm)
(package private)  double gridStepCm
          Variable de quadrillage
(package private)  double gridStepPixels
          Variable de quadrillage
(package private)  double gridX0
          Variable de quadrillage
(package private)  double gridY0
          Variable de quadrillage
(package private)  int height
          dimensions de l'image en pixels
(package private)  int MODE_HIDE
          mode faiblement visible de dessin des objets
(package private)  int MODE_HIGHLIGHT
          mode plus visible de dessin des objets
(package private)  int MODE_NORMAL
          mode normal de dessin des objets
static int MODE_TRANSLATE
          Le mode de la scene
static int MODE_ZOOMIN
          Le mode de la scene
static int MODE_ZOOMOUT
          Le mode de la scene
(package private)  java.awt.Graphics2D offg
          Graphics de l'image servant a dessiner les rayons
(package private)  java.awt.image.BufferedImage offscreen
          l'image contenant la scene
(package private)  java.awt.image.BufferedImage printBuffer
          l'image contenant la scene pour imprimer
(package private)  java.awt.Graphics2D printg
          Graphics de l'image contenant la scene pour imprimer
(package private)  java.awt.image.BufferedImage raysBuffer
          l'image servant a dessiner les rayons
(package private)  java.awt.Graphics2D raysg
          Graphics de l'image servant a dessiner les rayons
(package private)  java.awt.Graphics2D sceneg
          le 'g' de la scene
(package private)  int width
          dimensions de l'image en pixels
(package private)  double x1
          les bords de la scene (cm)
(package private)  double x2
          les bords de la scene (cm)
(package private)  double y1
          les bords de la scene (cm)
(package private)  double y2
          les bords de la scene (cm)
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SceneVisualisation()
          Creates a new instance of SceneVisualisation
 
Method Summary
 void AAOff()
          turn off antialiasing
 void AAOn()
          turn on antialiasing
 void applyDioptres(java.util.ArrayList data)
          charge le tableau dynamique des dioptres
 void applyLentilles(java.util.ArrayList data)
          charge le tableau dynamique des lentilles
 void applySources(java.util.ArrayList data)
          charge le tableau dynamique des sources
(package private)  void bgClear()
          nettoye le fond
(package private)  void calculateGridVariables()
          Recalcule les variables necessaires pour dessiner le quadrillage
 void clearRays()
          efface les rayons du dessin
(package private)  int cm2pixX(double cmx)
          transforme la mesure en cm en pixels , axe x
(package private)  int cm2pixY(double cmy)
          transforme la mesure en cm en pixels , axe y
(package private)  double correctDouble(double a)
          Correcte un Double en gardant 8 chiffres apres la virgule.
(package private)  double double_cm2pixX(double cmx)
          transforme la mesure en cm en pixels , axe x, version double
(package private)  double double_cm2pixY(double cmy)
          transforme la mesure en cm en pixels , axe y, version double
(package private)  void drawGrid(java.awt.Graphics2D g)
          Dessine le quadrillage de la scene
(package private)  void drawGridNumbers(java.awt.Graphics2D g)
          Dessine les numeros du quadrillage de la scene
 void drawRays(java.util.ArrayList[] rayons)
          dessine les rayons a partir des valeur calcules dans Calculator
 void drawSystem(java.awt.Graphics2D g)
          redessine le systeme - lentilles, dioptres et sources
 void highlightDioptre(int index, Dioptre d)
          selectionne le dioptre qui va etre distingue des autres
 void highlightLentille(int index, Lentille l)
          selectionne la lentille qui va etre distinguee des autres
 void highlightSource(int index, Source s)
          selectionne la source qui va etre distinguee des autres
(package private)  void lineclip(double x0, double y0, double x1, double y1, java.awt.Graphics2D g)
          Dessine ligne en appliquant clipping, en utilisant Cohen-Sutherland algorithme
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void paint(java.awt.Graphics gg)
           
(package private)  double pix2cmX(int absx)
          transforme la mesure en pixels en cm, axe x
(package private)  double pix2cmY(int absy)
          transforme la mesure en pixels en cm, axe y
 void printScene()
          Imprime la scene
 void printToG(java.awt.Graphics2D g)
           
 void repaintScene()
          redessine la scene
 void repaintSystem()
          dessine a nouveau le systeme
 void resetView()
          met le zoom dans la position initiale
 void setBounds(double xx1, double xx2, double centeryy)
          change les bornes de scene, donnees en cm
 void setInfoLabel(javax.swing.JLabel l)
          charge le label utilise pour ecrire des messages
 void setSceneMode(int mode)
          selectionne le mode de scene
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MODE_NORMAL

final int MODE_NORMAL
mode normal de dessin des objets

See Also:
Constant Field Values

MODE_HIDE

final int MODE_HIDE
mode faiblement visible de dessin des objets

See Also:
Constant Field Values

MODE_HIGHLIGHT

final int MODE_HIGHLIGHT
mode plus visible de dessin des objets

See Also:
Constant Field Values

gridStepCm

double gridStepCm
Variable de quadrillage


gridStepPixels

double gridStepPixels
Variable de quadrillage


gridX0

double gridX0
Variable de quadrillage


gridY0

double gridY0
Variable de quadrillage


x1

double x1
les bords de la scene (cm)


x2

double x2
les bords de la scene (cm)


y1

double y1
les bords de la scene (cm)


y2

double y2
les bords de la scene (cm)


dx

double dx
dimensions de la scene (cm)


dy

double dy
dimensions de la scene (cm)


width

int width
dimensions de l'image en pixels


height

int height
dimensions de l'image en pixels


centery

double centery
Position y de la scene sur laquelle on est centre


sceneg

java.awt.Graphics2D sceneg
le 'g' de la scene


bgImage

java.awt.image.BufferedImage bgImage
l'image contenent le fond de la scene


bgg

java.awt.Graphics2D bgg
Graphics de l'image contenent le fond de la scene


compositeBuffer

java.awt.image.BufferedImage compositeBuffer
l'image servant a dessiner les lentilles


cbg

java.awt.Graphics2D cbg
Graphics de l'image servant a dessiner les lentilles


raysBuffer

java.awt.image.BufferedImage raysBuffer
l'image servant a dessiner les rayons


raysg

java.awt.Graphics2D raysg
Graphics de l'image servant a dessiner les rayons


offscreen

java.awt.image.BufferedImage offscreen
l'image contenant la scene


offg

java.awt.Graphics2D offg
Graphics de l'image servant a dessiner les rayons


printBuffer

java.awt.image.BufferedImage printBuffer
l'image contenant la scene pour imprimer


printg

java.awt.Graphics2D printg
Graphics de l'image contenant la scene pour imprimer


MODE_ZOOMIN

public static final int MODE_ZOOMIN
Le mode de la scene

See Also:
Constant Field Values

MODE_ZOOMOUT

public static final int MODE_ZOOMOUT
Le mode de la scene

See Also:
Constant Field Values

MODE_TRANSLATE

public static final int MODE_TRANSLATE
Le mode de la scene

See Also:
Constant Field Values
Constructor Detail

SceneVisualisation

public SceneVisualisation()
Creates a new instance of SceneVisualisation

Method Detail

setInfoLabel

public void setInfoLabel(javax.swing.JLabel l)
charge le label utilise pour ecrire des messages


drawSystem

public void drawSystem(java.awt.Graphics2D g)
redessine le systeme - lentilles, dioptres et sources


lineclip

void lineclip(double x0,
              double y0,
              double x1,
              double y1,
              java.awt.Graphics2D g)
Dessine ligne en appliquant clipping, en utilisant Cohen-Sutherland algorithme


drawRays

public void drawRays(java.util.ArrayList[] rayons)
dessine les rayons a partir des valeur calcules dans Calculator


clearRays

public void clearRays()
efface les rayons du dessin


applySources

public void applySources(java.util.ArrayList data)
charge le tableau dynamique des sources


applyLentilles

public void applyLentilles(java.util.ArrayList data)
charge le tableau dynamique des lentilles


applyDioptres

public void applyDioptres(java.util.ArrayList data)
charge le tableau dynamique des dioptres


highlightSource

public void highlightSource(int index,
                            Source s)
selectionne la source qui va etre distinguee des autres


highlightDioptre

public void highlightDioptre(int index,
                             Dioptre d)
selectionne le dioptre qui va etre distingue des autres


highlightLentille

public void highlightLentille(int index,
                              Lentille l)
selectionne la lentille qui va etre distinguee des autres


setBounds

public void setBounds(double xx1,
                      double xx2,
                      double centeryy)
change les bornes de scene, donnees en cm


calculateGridVariables

void calculateGridVariables()
Recalcule les variables necessaires pour dessiner le quadrillage


correctDouble

double correctDouble(double a)
Correcte un Double en gardant 8 chiffres apres la virgule. Parce que en fait, 1.0 + 0.8 n'est pas toujours egal a 1.8, cela peut etre aussi 1.7999999999996, a cause de l'imprecision hardware


drawGridNumbers

void drawGridNumbers(java.awt.Graphics2D g)
Dessine les numeros du quadrillage de la scene


drawGrid

void drawGrid(java.awt.Graphics2D g)
Dessine le quadrillage de la scene


pix2cmX

double pix2cmX(int absx)
transforme la mesure en pixels en cm, axe x


pix2cmY

double pix2cmY(int absy)
transforme la mesure en pixels en cm, axe y


cm2pixX

int cm2pixX(double cmx)
transforme la mesure en cm en pixels , axe x


cm2pixY

int cm2pixY(double cmy)
transforme la mesure en cm en pixels , axe y


double_cm2pixX

double double_cm2pixX(double cmx)
transforme la mesure en cm en pixels , axe x, version double


double_cm2pixY

double double_cm2pixY(double cmy)
transforme la mesure en cm en pixels , axe y, version double


bgClear

void bgClear()
nettoye le fond


repaintSystem

public void repaintSystem()
dessine a nouveau le systeme


resetView

public void resetView()
met le zoom dans la position initiale


setSceneMode

public void setSceneMode(int mode)
selectionne le mode de scene


repaintScene

public void repaintScene()
redessine la scene


paint

public void paint(java.awt.Graphics gg)
Overrides:
paint in class javax.swing.JComponent

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

printToG

public void printToG(java.awt.Graphics2D g)

printScene

public void printScene()
Imprime la scene


AAOn

public void AAOn()
turn on antialiasing


AAOff

public void AAOff()
turn off antialiasing