JavaView® v2.12

jv.viewer
Class PvDisplay

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Canvas
              |
              +--jv.viewer.PvDisplay
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.KeyListener, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, PsUpdateIf, PvDisplayIf, java.lang.Runnable, java.io.Serializable

public final class PvDisplay
extends java.awt.Canvas
implements PvDisplayIf, java.lang.Runnable, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.ActionListener, java.io.Serializable

Display of JavaView for viewing and interaction with 3d geometries. The display is subclass of an AWT canvas and fulfills the interface PvDisplayIf. It may be included inside any Java containter with any layout manager.

A display may be obtained by three different ways:

  1. Simple applets may directly create a display, add a geometry, and call the instance methods of the display to configure it.
  2. A slightly advanced applet should obtain the default display from the central PvViewer instance using PvViewer#getDisplay(). This mechanism avoids any need to connect the geometry of the current project or viewer to the display.
  3. In some cases an applet or project may need additional displays.
Simple applets may directly create a display and call its instance methods.

Each class fulfilling the interface PvDisplayIf can serve as a display in JavaView, e.g. the VRML export filter is an implementation of this interface.

Version:
16.11.00, 4.10 revised (kp) Reflection of geometries added.
29.09.00, 4.00 revised (kp) Many set/get methods renamed to show/isShowing.
10.08.00, 3.40 revised (kp) Two methods for get/setting filename of background image removed.
18.07.00, 3.30 revised (kp) Mode MODE_DISPLAY_PICK now returns display pick events and no geometries.
10.07.00, 3.20 revised (kp) Flag determining backface drawing moved to element set.
06.05.00, 3.15 revised (kp) Number of methods to access PvPickListener reduced.
01.05.00, 3.10 revised (sk) Internationalization added.
27.04.00, 2.60 revised (kp) Default applet size is take on first call of resizeImage().
27.03.00, 2.50 revised (ep) Return type of getCamera() changed to PvCameraIf.
01.01.00, 2.40 revised (kp) Selecting geometries by picking somewhere, not just at vertices.
27.12.99, 2.30 revised (kp) Local transformation matrices incorporated in picking.
30.11.99, 2.20 revised (kp) Size if display modifiable.
20.11.99, 2.10 revised (kp) Aura along edges.
08.07.99, 2.04 revised (kp) Synchronization added again by synchronizing m_scene in all four methods
since there happend some flickering when auto-rotate and animation panel was enabled.
07.07.99, 2.03 revised (kp) Synchronization removed from update(Object), paintGeom(g), paint(g) and update(g).
since there was still a problem with deadlocks on a 2-processor linux machine.
01.07.99, 2.03 revised (kp) Only one camera added during construction, other added on request.
21.06.99, 2.02 revised (kp) Clipping activated.
18.04.99, 2.01 revised (kp) Automatic animation disabled as default because stopping the thread does not work on Mac.
00.00.97, 1.00 created (kp)
Author:
Konrad Polthier
See Also:
Serialized Form

Field Summary
 java.lang.String m_backgroundImage
          Background image for display.
 java.lang.String m_defBackgroundImage
          Default background image for display.
static int M_MODE_ADD
           
static int M_MODE_DELETE
           
static int M_MODE_DISPLAY_PICK
           
static int M_MODE_DUPLICATE
           
static int M_MODE_HIGHLIGHT
           
static int M_MODE_INITIAL_PICK
           
static int M_MODE_MARK
           
static int M_MODE_MARK_ELEMENTS
           
static int M_MODE_ORBIT
           
static int M_MODE_PICK
           
static int M_MODE_SCALE
           
static int M_MODE_SCALE_RECT
           
static int M_MODE_TRANS
           
static int M_MODE_TRANS_Z
           
static int M_MODE_UNMARK
           
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface jv.project.PvDisplayIf
CAMERA_MODEL, CAMERA_NAME, CAMERA_ORTHO_XY, CAMERA_ORTHO_XZ, CAMERA_ORTHO_YZ, CAMERA_PERSPECTIVE, IMAGE_CENTER, IMAGE_RESIZE, IMAGE_TESSELATE, MATRIX_AMBIENT, MATRIX_INV_AMBIENT, MATRIX_INV_MODEL, MATRIX_INV_PROJECT, MATRIX_INV_PROJVIEW, MATRIX_INV_TRANS, MATRIX_INV_VIEW, MATRIX_MODEL, MATRIX_PROJECT, MATRIX_PROJVIEW, MATRIX_TRANS, MATRIX_VIEW, MODE_ADD, MODE_DELETE, MODE_DISPLAY_PICK, MODE_DUPLICATE, MODE_HIGHLIGHT, MODE_INITIAL_PICK, MODE_MARK, MODE_MARK_ELEMENTS, MODE_ORBIT, MODE_PICK, MODE_SCALE, MODE_SCALE_RECT, MODE_TRANS, MODE_TRANS_Z, MODE_UNMARK, PAINT_ALL, PAINT_ANTIALIAS, PAINT_AXES, PAINT_BACKGROUND, PAINT_BACKIMAGE, PAINT_BNDBOX, PAINT_BORDER, PAINT_CENTER, PAINT_CLEAR_SCREEN, PAINT_CROSS, PAINT_FRAME, PAINT_INFO, PAINT_MAGNET, PAINT_SINGLE, PAINT_ZOOM, TRANSFORM_AMBIENT, TRANSFORM_CAMERA, TRANSFORM_MODEL
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PvDisplay()
          Constructor of display without viewer as parent.
PvDisplay(java.applet.Applet applet, java.awt.Frame frame)
          Constructor of display inside applet, or inside frame if applet is null.
PvDisplay(PvViewerIf viewer)
          Constructor of display with given argument viewer as parent.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
           
 int addCamera(java.lang.String aName, PvCamera aCamera)
          Add new camera and make it accessible under the given name.
 void addCameraListener(PvCameraListenerIf listener)
          Add camera listener to receive camera events PvCameraEvent.
 boolean addGeometry(PgGeometryIf aGeom)
          Add geometry to display.
 void addPickListener(PvPickListenerIf listener)
          Add pick listener to receive pick events PvPickEvent.
 void center()
          Center geometry in window, do no scaling
 boolean containsGeometry(PgGeometryIf aGeom)
          Check whether geometry is registered in display.
 void enableClip(boolean aFlag)
          Deprecated. use #setEnabledClip
 void fit()
          Center and scale camera such that geometry fits exactly into window.
 int getAmbientProjection()
          Get projection mode of ambient space used in model camera.
 int getAmbientSpace()
          Get ambient space used in model transformations.
 PgAxes getAxes()
          Create a new axes geometry and a supervising axes project.
 java.awt.Color getBackgroundColor()
          Get color of background of display.
 java.awt.Image getBackgroundImage()
          Make image of display available to outside world.
 java.lang.String getBackgroundImageFile()
          Get filename of background image of display canvas.
 PvCameraIf getCamera()
          Get current camera object.
 PvCameraIf getCamera(int type)
          Get a camera object by type.
 PsPanel getCameraPanel()
          Get info panel of current camera.
 PvCameraIf[] getCameras()
          Get current camera object.
 double getFarClip()
          Get far clip distance of current camera.
 PsUpdateIf getFather()
          Get father of display.
 java.awt.Color getForegroundColor()
          Get foreground color.
 java.awt.Frame getFrame()
          Get reference to container frame of display, e.g. to allow display to hide/show frame.
 PgGeometryIf[] getGeometries()
          Get array with registered geometries where the first geometry is the currently active geometry.
 java.awt.Image getImage()
          Make image of display available to outside world.
 int getImageFitMode()
          Get the mode determining how a background image is scaled w.r.t. the display canvas.
 PsPanel getInfoPanel()
          Get info panel of display.
 int getMajorMode()
          Get current interaction mode.
 java.awt.Dimension getMinimumSize()
          Assure correct horizontal size of all project panels.
 java.lang.String getName()
          Get name of this display.
 double getNearClip()
          Get near clip distance of current camera.
 int getNumGeometries()
          Get number of all registered geometry in display.
 PvPickEvent getPickEvent(int x, int y)
          Find intersection of ray through pick locus on registered geometries.
 java.awt.Point getPosition(int xPos, int yPos)
          Get upper left corner of frame.
 java.awt.Dimension getPreferredSize()
          Assure correct horizontal size of all project panels.
 PgGeometryIf getSelectedGeometry()
          Get currently selected geometry.
 java.awt.Dimension getSize()
          Get height of drawing canvas.
 PdMatrix getTransMatrix(int type)
          Get 4*4 transformation matrix or components from current camera and display.
 boolean hasAxes()
          Check existence of axes geometry.
 boolean hasCamera(int type)
          Determine whether a camera object of given type is registered in display.
 boolean hasCameraListener(PvCameraListenerIf listener)
          Check for a registered listener.
 boolean hasPaintTag(int flags)
          Check whether either if the bits in parameter has been set.
 boolean hasPickListener(PvPickListenerIf listener)
          Check for a registered listener.
 boolean incrementAutoRotation()
          Do a single increment of auto-rotation animaton.
 void init()
          Initialize and reset dispay.
 boolean isClip()
          Deprecated. use #isEnabledClip
 boolean isEnabledAnimation()
          Check whether auto-rotation is enabled.
 boolean isEnabledClearScreen()
          Check whether screen is cleared after each repaint.
 boolean isEnabledClip()
          Check whether clipping with front and back plane is enabled.
 boolean isEnabledFastZBuffer()
          Check whether z-buffered is disabled during drawing.
 boolean isEnabledLocalTransform()
          Get flag whether local coordinate system is used in camera transformations.
 boolean isEnabledPainters()
          Check whether painter's algorithm during drawing is enabled.
 boolean isEnabledTags()
          Determine whether tag mode is enabled to move marked elements.
 boolean isEnabledUpdate()
          Determine whether update mechanism is enabled.
 boolean isEnabledZBuffer()
          Check whether z-buffered drawing is enabled.
 boolean isShowingAxes()
          Check whether axes of active geometry is currently showing.
 boolean isShowingBackImage()
          Check drawing of background image of display window.
 boolean isShowingBndBox()
          Check whether bounding box of active geometry is currently showing.
 boolean isShowingCopyright()
          Check drawing of copyright information in the display window.
 boolean isShowingDepthcue()
          True if depthcue is enabled.
 boolean isShowingEdgeAura()
          Check flag of drawing of edges by one or both elements adjacent to an edge.
 boolean isShowingEdgesOnce()
          Check flag of drawing of edges by one or both elements adjacent to an edge.
 boolean isShowingFrame()
          Check whether coordinate frame is currently showing.
 boolean isShowingGrid()
          Check whether grid is currently showing.
 boolean isShowingMagnet()
          Check whether cursor attached to vertices if nearby.
 void keyPressed(java.awt.event.KeyEvent event)
           
 void keyReleased(java.awt.event.KeyEvent event)
           
 void keyTyped(java.awt.event.KeyEvent event)
           
 void mouseClicked(java.awt.event.MouseEvent event)
           
 void mouseDragged(java.awt.event.MouseEvent event)
           
 void mouseEntered(java.awt.event.MouseEvent event)
           
 void mouseExited(java.awt.event.MouseEvent event)
           
 void mouseMoved(java.awt.event.MouseEvent event)
           
 void mousePressed(java.awt.event.MouseEvent event)
          Do not react on popup events or other than left mouse clicks.
 void mouseReleased(java.awt.event.MouseEvent event)
           
 void paint(java.awt.Graphics g)
          Override Canvas.paint(g) to initiate redrawing of geometries.
 void processMouseEvent(java.awt.event.MouseEvent event)
           
 void releasePickFocus()
          Release pick focus, i.e. to be the unique listener who receives pick events.
 boolean removeCamera(int type)
          Remove camera from list of registered cameras.
 boolean removeCameraListener(PvCameraListenerIf listener)
          Remove a registered listener from list of registered listeners.
 void removeGeometries()
          Remove all geometries from list of registered geometries.
 boolean removeGeometry(PgGeometryIf aGeom)
          Remove geometry from list of registered geometries.
 boolean removePickListener(PvPickListenerIf listener)
          Remove a registered listener from list of registered listeners.
 void requestPickFocus(PvPickListenerIf listener)
          Request pick focus, i.e. to be the unique listener who receives pick events.
 void resetTransformModel()
          Reset ambient and model matrix of current model and modelCamera.
 void run()
          Do the animation by incrementing the transformation matrix with the last action.
 boolean selectCamera(int type)
          Select current camera used in dispay by id.
 boolean selectGeometry(PgGeometryIf aGeom)
          Select geometry to be active and receive pick events.
 void setAmbientProjection(int mode)
          Set projection mode of ambient space used in model camera.
 void setAmbientSpace(int mode)
          Set ambient space used in model transformations.
 void setAutoCenter(boolean flag)
          Set flag which determines whether camera will automatically center on geometry.
 void setAutoRotation(PdVector axis, double angle)
          Set axis and angle for auto-rotation.
 void setAxes(PgAxes axes)
          Register axes geometry in this display.
 void setBackgroundColor(java.awt.Color aColor)
          Set color of background of display.
 void setBackgroundImage(java.awt.Image anImage)
          Set background image of display canvas.
 void setBackgroundImage(java.lang.String fileName)
          Set filename of background image of display canvas.
static void setDefaultSize(java.awt.Dimension size)
          Set default dimension of drawing canvas from outside.
 void setDrawingOrder(int order, PgGeometryIf aGeom)
          Choose z-order of geometry when drawn in display.
 void setEnabledAnimation(boolean aFlag)
          Enable and disable auto-rotation of scene.
 void setEnabledClearScreen(boolean aFlag)
          Enable clearing of screen after each repaint.
 void setEnabledClip(boolean aFlag)
          Enable and disable clipping with front and back plane.
 void setEnabledFastZBuffer(boolean aFlag)
          Enable and disable z-buffered drawing of scene.
 void setEnabledLocalTransform(boolean flag)
          Set flag whether local coordinate system is used in camera transformations.
 void setEnabledPainters(boolean aFlag)
          Enable and disable painter's algorithm during drawing, i.e. a z-sort of drawing items.
 void setEnabledTags(boolean aFlag)
          Enable and disable tag mode to move marked elements.
 void setEnabledUpdate(boolean flag)
          Set flag which determines whether update mechanism is enabled.
 void setEnabledZBuffer(boolean aFlag)
          Enable and disable z-buffered drawing of scene.
 void setFarClip(double dist)
          Set far clip distance of current camera, works even if clipping is disabled.
 void setForegroundColor(java.awt.Color aColor)
          Set foreground color.
 void setFrame(java.awt.Frame frame)
          Set reference to container frame of display, e.g. to allow display to hide/show frame.
 void setImageFitMode(int mode)
          Set the mode determining how a background image is scaled w.r.t. the display canvas.
 void setMajorMode(int mode)
          Switch between interaction modes like rotating or scaling, usually done interactively.
 void setName(java.lang.String aName)
          Set name of this display.
 void setNearClip(double dist)
          Set near clip distance of current camera, works even if clipping is disabled.
 void setPaintTag(int flags, boolean val)
          Set all bits which are set in parameter.
 void setParent(PsUpdateIf father)
          Set father of display which receives update events when current class has changed.
 void setPosition(int xPos, int yPos)
          Set position of upper left corner of frame from outside.
 void setSizeWithinFrame(int width, int height)
          Set dimension of display which is included in a parent frame.
 void setTransMatrix(int type, PdMatrix mat)
          Set transformation matrices PV, P, V and their inverses in current camera and display.
 void showAxes(boolean aFlag)
          Set visibility of axes active geometry, and create axes if not available.
 void showBackImage(boolean aFlag)
          Enable and disable drawing of background image of display window.
 void showBndBox(boolean aFlag)
          Set visibility of bounding box of active geometry, and create bounding box if not available.
 void showCopyright(boolean aFlag)
          Enable and disable drawing of copyright information in the display window.
 void showDepthcue(boolean aFlag)
          Enable and disable depthcue drawing.
 void showEdgeAura(boolean aFlag)
          Enable and disable drawing of edges by one or both elements adjacent to an edge.
 void showEdgesOnce(boolean aFlag)
          Enable and disable drawing of edges by one or both elements adjacent to an edge.
 void showFrame(boolean aFlag)
          Set visibility of coordinate frame is shown, and create frame if not available.
 void showGrid(boolean aFlag)
          Set visibility of grid, and create grid if not available.
 void showMagnet(boolean aFlag)
          Attach cursor to vertices if nearby.
 void start()
          Start animation by creating a new thread
 void stop()
          Stop animation by stopping the thread.
 void update(java.awt.Graphics g)
          Override Component.update(g) to initiate redrawing of geometries.
 boolean update(java.lang.Object event)
          Handle update events sent to display by JavaView.
 
Methods inherited from class java.awt.Canvas
addNotify, getAccessibleContext
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, deliverEvent, disable, dispatchEvent, doLayout, enable, enable, enableInputMethods, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getParent, getPeer, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setSize, setSize, setVisible, show, show, size, toString, transferFocus, validate
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jv.project.PvDisplayIf
addKeyListener, getGraphics, removeKeyListener
 

Field Detail

M_MODE_ORBIT

public static final int M_MODE_ORBIT

M_MODE_SCALE

public static final int M_MODE_SCALE

M_MODE_SCALE_RECT

public static final int M_MODE_SCALE_RECT

M_MODE_TRANS

public static final int M_MODE_TRANS

M_MODE_TRANS_Z

public static final int M_MODE_TRANS_Z

M_MODE_PICK

public static final int M_MODE_PICK

M_MODE_INITIAL_PICK

public static final int M_MODE_INITIAL_PICK

M_MODE_HIGHLIGHT

public static final int M_MODE_HIGHLIGHT

M_MODE_DISPLAY_PICK

public static final int M_MODE_DISPLAY_PICK

M_MODE_MARK

public static final int M_MODE_MARK

M_MODE_MARK_ELEMENTS

public static final int M_MODE_MARK_ELEMENTS

M_MODE_UNMARK

public static final int M_MODE_UNMARK

M_MODE_ADD

public static final int M_MODE_ADD

M_MODE_DELETE

public static final int M_MODE_DELETE

M_MODE_DUPLICATE

public static final int M_MODE_DUPLICATE

m_defBackgroundImage

public java.lang.String m_defBackgroundImage
Default background image for display.

m_backgroundImage

public java.lang.String m_backgroundImage
Background image for display.
Constructor Detail

PvDisplay

public PvDisplay()
Constructor of display without viewer as parent. Allows display to act as bean.

PvDisplay

public PvDisplay(PvViewerIf viewer)
Constructor of display with given argument viewer as parent.
Parameters:
viewer - parent of display to handle certain events like export.

PvDisplay

public PvDisplay(java.applet.Applet applet,
                 java.awt.Frame frame)
Constructor of display inside applet, or inside frame if applet is null. Frame is used to allow modification of size of display if no viewer available.
Parameters:
applet - which is container of display
frame - which contains applet, or is container of display
Method Detail

init

public void init()
Description copied from interface: PvDisplayIf
Initialize and reset dispay.
Specified by:
init in interface PvDisplayIf

getName

public java.lang.String getName()
Get name of this display.
Specified by:
getName in interface PvDisplayIf
Overrides:
getName in class java.awt.Component

setName

public void setName(java.lang.String aName)
Set name of this display.
Specified by:
setName in interface PvDisplayIf
Overrides:
setName in class java.awt.Component

getFrame

public java.awt.Frame getFrame()
Get reference to container frame of display, e.g. to allow display to hide/show frame.
Specified by:
getFrame in interface PvDisplayIf

setFrame

public void setFrame(java.awt.Frame frame)
Set reference to container frame of display, e.g. to allow display to hide/show frame.
Specified by:
setFrame in interface PvDisplayIf

addPickListener

public void addPickListener(PvPickListenerIf listener)
Add pick listener to receive pick events PvPickEvent.
Specified by:
addPickListener in interface PvDisplayIf
Parameters:
PickListenerIf -  
See Also:
hasPickListener(PvPickListenerIf), removePickListener(PvPickListenerIf)

hasPickListener

public boolean hasPickListener(PvPickListenerIf listener)
Check for a registered listener.
Specified by:
hasPickListener in interface PvDisplayIf
Parameters:
PickListenerIf -  
Returns:
true if registered listener found.
See Also:
addPickListener(PvPickListenerIf), removePickListener(PvPickListenerIf)

removePickListener

public boolean removePickListener(PvPickListenerIf listener)
Remove a registered listener from list of registered listeners.
Specified by:
removePickListener in interface PvDisplayIf
Parameters:
PickListenerIf -  
Returns:
false if listener does not exists.
See Also:
addPickListener(PvPickListenerIf), hasPickListener(PvPickListenerIf)

addCameraListener

public void addCameraListener(PvCameraListenerIf listener)
Add camera listener to receive camera events PvCameraEvent.
Specified by:
addCameraListener in interface PvDisplayIf
Parameters:
CameraListenerIf -  
Returns:
false if same instance already registered.
See Also:
hasCameraListener(PvCameraListenerIf), removeCameraListener(PvCameraListenerIf)

hasCameraListener

public boolean hasCameraListener(PvCameraListenerIf listener)
Check for a registered listener.
Specified by:
hasCameraListener in interface PvDisplayIf
Parameters:
CameraListenerIf -  
Returns:
true if registered listener found.
See Also:
addCameraListener(PvCameraListenerIf), removeCameraListener(PvCameraListenerIf)

removeCameraListener

public boolean removeCameraListener(PvCameraListenerIf listener)
Remove a registered listener from list of registered listeners.
Specified by:
removeCameraListener in interface PvDisplayIf
Parameters:
CameraListenerIf -  
Returns:
false if listener does not exists.
See Also:
addCameraListener(PvCameraListenerIf), hasCameraListener(PvCameraListenerIf)

requestPickFocus

public void requestPickFocus(PvPickListenerIf listener)
Request pick focus, i.e. to be the unique listener who receives pick events. The focus should only be requested temporarily, and must be released after use.
Specified by:
requestPickFocus in interface PvDisplayIf
Parameters:
PickListenerIf -  
See Also:
releasePickFocus()

releasePickFocus

public void releasePickFocus()
Release pick focus, i.e. to be the unique listener who receives pick events. The focus should only be requested temporarily, and must be released after use.
Specified by:
releasePickFocus in interface PvDisplayIf
Parameters:
PickListenerIf -  
See Also:
requestPickFocus(PvPickListenerIf)

addGeometry

public boolean addGeometry(PgGeometryIf aGeom)
Add geometry to display. Display may show several geometries among one of them is the currently active geometry. The active geometry is the target for picking.

After the first geometry is added, the display performs a fit() operation to center and scale the camera such that the geometry is completely visible in the display.

The first geometry added to a display automatically becomes the active geometry. After having added several geometries the active geometry may be selected with selectGeometry().

Note, default drawing order is PvGeometryIf#DRAW_ORDER_STANDARD which means, that z-depth of geometry elements are orderer in comparison with all other geometries. Except, if drawing order is PvGeometryIf#DRAW_ORDER_FRONT or PvGeometryIf.DRAW_ORDER_BACK then no comparison is done during display. Use method #setDrawingOrder(int, jv.project.PgGeometryIf) to modify the drawing order of a geometry after it has been added to the display.

Specified by:
addGeometry in interface PvDisplayIf

removeGeometries

public void removeGeometries()
Remove all geometries from list of registered geometries. The current geometry is null after this call.

This method does not remove any special geometry like bounding box, axis frame etc. The special geometries must be removed individually using methods like showBndBox(false).

Specified by:
removeGeometries in interface PvDisplayIf

removeGeometry

public boolean removeGeometry(PgGeometryIf aGeom)
Remove geometry from list of registered geometries. The current geometry changes if it was the removed geometry.

If the currently active geometry is removed, then the first geometry becomes active.

Specified by:
removeGeometry in interface PvDisplayIf

selectGeometry

public boolean selectGeometry(PgGeometryIf aGeom)
Select geometry to be active and receive pick events.
Specified by:
selectGeometry in interface PvDisplayIf

containsGeometry

public boolean containsGeometry(PgGeometryIf aGeom)
Check whether geometry is registered in display.
Specified by:
containsGeometry in interface PvDisplayIf

getNumGeometries

public int getNumGeometries()
Get number of all registered geometry in display. Method does not return any special geometries like bounding box, coordinate frames etc.
Specified by:
getNumGeometries in interface PvDisplayIf

getGeometries

public PgGeometryIf[] getGeometries()
Get array with registered geometries where the first geometry is the currently active geometry. Method does not return any special geometries like bounding box.
Specified by:
getGeometries in interface PvDisplayIf

getSelectedGeometry

public PgGeometryIf getSelectedGeometry()
Get currently selected geometry.
Specified by:
getSelectedGeometry in interface PvDisplayIf

center

public void center()
Center geometry in window, do no scaling

fit

public void fit()
Center and scale camera such that geometry fits exactly into window.
Specified by:
fit in interface PvDisplayIf

getBackgroundColor

public java.awt.Color getBackgroundColor()
Get color of background of display. If background image is set, then color has no influence.
Specified by:
getBackgroundColor in interface PvDisplayIf

setBackgroundColor

public void setBackgroundColor(java.awt.Color aColor)
Set color of background of display. If background image is set, then color has no influence.
Specified by:
setBackgroundColor in interface PvDisplayIf

getForegroundColor

public java.awt.Color getForegroundColor()
Get foreground color. Currently neither defined nor used.
Specified by:
getForegroundColor in interface PvDisplayIf

setForegroundColor

public void setForegroundColor(java.awt.Color aColor)
Set foreground color. Currently neither defined nor used.
Specified by:
setForegroundColor in interface PvDisplayIf

isEnabledAnimation

public boolean isEnabledAnimation()
Check whether auto-rotation is enabled.
Specified by:
isEnabledAnimation in interface PvDisplayIf

setEnabledAnimation

public void setEnabledAnimation(boolean aFlag)
Enable and disable auto-rotation of scene.
Specified by:
setEnabledAnimation in interface PvDisplayIf

getAmbientSpace

public int getAmbientSpace()
Get ambient space used in model transformations.

setAmbientSpace

public void setAmbientSpace(int mode)
Set ambient space used in model transformations.

getAmbientProjection

public int getAmbientProjection()
Get projection mode of ambient space used in model camera.

setAmbientProjection

public void setAmbientProjection(int mode)
Set projection mode of ambient space used in model camera.

isEnabledLocalTransform

public boolean isEnabledLocalTransform()
Get flag whether local coordinate system is used in camera transformations.

setEnabledLocalTransform

public void setEnabledLocalTransform(boolean flag)
Set flag whether local coordinate system is used in camera transformations.

resetTransformModel

public void resetTransformModel()
Reset ambient and model matrix of current model and modelCamera.

getImageFitMode

public int getImageFitMode()
Get the mode determining how a background image is scaled w.r.t. the display canvas.
Specified by:
getImageFitMode in interface PvDisplayIf

setImageFitMode

public void setImageFitMode(int mode)
Set the mode determining how a background image is scaled w.r.t. the display canvas.
Specified by:
setImageFitMode in interface PvDisplayIf

isShowingBackImage

public boolean isShowingBackImage()
Check drawing of background image of display window.
Specified by:
isShowingBackImage in interface PvDisplayIf

showBackImage

public void showBackImage(boolean aFlag)
Enable and disable drawing of background image of display window.
Specified by:
showBackImage in interface PvDisplayIf

isShowingCopyright

public boolean isShowingCopyright()
Check drawing of copyright information in the display window.

showCopyright

public void showCopyright(boolean aFlag)
Enable and disable drawing of copyright information in the display window.

isShowingDepthcue

public boolean isShowingDepthcue()
True if depthcue is enabled. No depthcue for non-perspective projections. Depthcue is always switched off for non-perspective projections since they usually show planar geometries where depthcue makes not too much sense.
Specified by:
isShowingDepthcue in interface PvDisplayIf

showDepthcue

public void showDepthcue(boolean aFlag)
Enable and disable depthcue drawing.
Specified by:
showDepthcue in interface PvDisplayIf

isShowingEdgesOnce

public boolean isShowingEdgesOnce()
Check flag of drawing of edges by one or both elements adjacent to an edge.
Specified by:
isShowingEdgesOnce in interface PvDisplayIf

showEdgesOnce

public void showEdgesOnce(boolean aFlag)
Enable and disable drawing of edges by one or both elements adjacent to an edge.
Specified by:
showEdgesOnce in interface PvDisplayIf

isShowingEdgeAura

public boolean isShowingEdgeAura()
Check flag of drawing of edges by one or both elements adjacent to an edge.
Specified by:
isShowingEdgeAura in interface PvDisplayIf

showEdgeAura

public void showEdgeAura(boolean aFlag)
Enable and disable drawing of edges by one or both elements adjacent to an edge.
Specified by:
showEdgeAura in interface PvDisplayIf

setDrawingOrder

public void setDrawingOrder(int order,
                            PgGeometryIf aGeom)
Choose z-order of geometry when drawn in display. For possible values see e.g. PvGeometryIf#DRAW_ORDER_STANDARD.
Specified by:
setDrawingOrder in interface PvDisplayIf
See Also:
PvGeometryIf

isShowingGrid

public boolean isShowingGrid()
Check whether grid is currently showing.
Specified by:
isShowingGrid in interface PvDisplayIf

showGrid

public void showGrid(boolean aFlag)
Set visibility of grid, and create grid if not available.
Specified by:
showGrid in interface PvDisplayIf

isShowingFrame

public boolean isShowingFrame()
Check whether coordinate frame is currently showing.
Specified by:
isShowingFrame in interface PvDisplayIf

showFrame

public void showFrame(boolean aFlag)
Set visibility of coordinate frame is shown, and create frame if not available.
Specified by:
showFrame in interface PvDisplayIf

isShowingBndBox

public boolean isShowingBndBox()
Check whether bounding box of active geometry is currently showing.
Specified by:
isShowingBndBox in interface PvDisplayIf

showBndBox

public void showBndBox(boolean aFlag)
Set visibility of bounding box of active geometry, and create bounding box if not available.
Specified by:
showBndBox in interface PvDisplayIf

isEnabledClearScreen

public boolean isEnabledClearScreen()
Check whether screen is cleared after each repaint.

setEnabledClearScreen

public void setEnabledClearScreen(boolean aFlag)
Enable clearing of screen after each repaint.

hasAxes

public boolean hasAxes()
Check existence of axes geometry.

getAxes

public PgAxes getAxes()
Create a new axes geometry and a supervising axes project. If the axes project shall be under user control, then the axes must be created outside this display by hand and assigned to this display, and to an outside axes project.

setAxes

public void setAxes(PgAxes axes)
Register axes geometry in this display. By default, the axes is not visible.

isShowingAxes

public boolean isShowingAxes()
Check whether axes of active geometry is currently showing.
Specified by:
isShowingAxes in interface PvDisplayIf

showAxes

public void showAxes(boolean aFlag)
Set visibility of axes active geometry, and create axes if not available. If visibility is set to false, then axes are removed from the display but not deleted.
Specified by:
showAxes in interface PvDisplayIf

isShowingMagnet

public boolean isShowingMagnet()
Check whether cursor attached to vertices if nearby.
Specified by:
isShowingMagnet in interface PvDisplayIf

showMagnet

public void showMagnet(boolean aFlag)
Attach cursor to vertices if nearby.
Specified by:
showMagnet in interface PvDisplayIf

isEnabledFastZBuffer

public boolean isEnabledFastZBuffer()
Check whether z-buffered is disabled during drawing. Note, z-buffered drawing must be enabled using method setEnabledZBuffer.
See Also:
setEnabledZBuffer(boolean), setEnabledFastZBuffer(boolean)

setEnabledFastZBuffer

public void setEnabledFastZBuffer(boolean aFlag)
Enable and disable z-buffered drawing of scene. Note, z-buffered drawing must be enabled using method setEnabledZBuffer..
See Also:
setEnabledZBuffer(boolean), isEnabledFastZBuffer()

isEnabledZBuffer

public boolean isEnabledZBuffer()
Check whether z-buffered drawing is enabled.
Specified by:
isEnabledZBuffer in interface PvDisplayIf

setEnabledZBuffer

public void setEnabledZBuffer(boolean aFlag)
Enable and disable z-buffered drawing of scene. Note, z-buffered drawing may be automatically disabled during dragging of mouse using setEnabledFastZBuffer.
Specified by:
setEnabledZBuffer in interface PvDisplayIf
See Also:
isEnabledZBuffer(), setEnabledFastZBuffer(boolean), #setEnabledNewZBuffer

isEnabledTags

public boolean isEnabledTags()
Determine whether tag mode is enabled to move marked elements.

setEnabledTags

public void setEnabledTags(boolean aFlag)
Enable and disable tag mode to move marked elements.

isEnabledPainters

public boolean isEnabledPainters()
Check whether painter's algorithm during drawing is enabled.
Specified by:
isEnabledPainters in interface PvDisplayIf

setEnabledPainters

public void setEnabledPainters(boolean aFlag)
Enable and disable painter's algorithm during drawing, i.e. a z-sort of drawing items.
Specified by:
setEnabledPainters in interface PvDisplayIf

isEnabledClip

public boolean isEnabledClip()
Check whether clipping with front and back plane is enabled.
Specified by:
isEnabledClip in interface PvDisplayIf

setEnabledClip

public void setEnabledClip(boolean aFlag)
Enable and disable clipping with front and back plane.
Specified by:
setEnabledClip in interface PvDisplayIf

isClip

public boolean isClip()
Deprecated. use #isEnabledClip

Check whether clipping with front and back plane is enabled.
Specified by:
isClip in interface PvDisplayIf

enableClip

public void enableClip(boolean aFlag)
Deprecated. use #setEnabledClip

Enable and disable clipping with front and back plane.
Specified by:
enableClip in interface PvDisplayIf

getNearClip

public double getNearClip()
Get near clip distance of current camera. Returns a value even if clipping is disabled.
Specified by:
getNearClip in interface PvDisplayIf

setNearClip

public void setNearClip(double dist)
Set near clip distance of current camera, works even if clipping is disabled.
Specified by:
setNearClip in interface PvDisplayIf

getFarClip

public double getFarClip()
Get far clip distance of current camera. Returns a value even if clipping is disabled.
Specified by:
getFarClip in interface PvDisplayIf

setFarClip

public void setFarClip(double dist)
Set far clip distance of current camera, works even if clipping is disabled.
Specified by:
setFarClip in interface PvDisplayIf

getTransMatrix

public PdMatrix getTransMatrix(int type)
Get 4*4 transformation matrix or components from current camera and display. Allows to transform world coordinates into screen coordinates [0,0]*[width-1,height-1] of display.
Specified by:
getTransMatrix in interface PvDisplayIf
Following copied from interface: jv.project.PvDisplayIf
Parameters:
type - Any matrix type jv.project.PvDisplayIf#MATRIX_...

setTransMatrix

public void setTransMatrix(int type,
                           PdMatrix mat)
Set transformation matrices PV, P, V and their inverses in current camera and display. Allows to transform world coordinates into screen coordinates [0,0]*[width-1,height-1] of display.

Modeling matrix should be set in original geometry model.

Specified by:
setTransMatrix in interface PvDisplayIf
Following copied from interface: jv.project.PvDisplayIf
Parameters:
type - Any matrix type jv.project.PvDisplayIf#MATRIX_...

addCamera

public int addCamera(java.lang.String aName,
                     PvCamera aCamera)
Add new camera and make it accessible under the given name. Most applications use the built-in cameras. TODO: Method currently does not allow to add user defined cameras.
Returns:
unique key of camera which allows to select camera, or -1 if error.

getCamera

public PvCameraIf getCamera()
Get current camera object.
Specified by:
getCamera in interface PvDisplayIf
Returns:
current camera object

getCameras

public PvCameraIf[] getCameras()
Get current camera object.
Specified by:
getCameras in interface PvDisplayIf
Returns:
current camera object

getCamera

public PvCameraIf getCamera(int type)
Get a camera object by type. Type is among PvDisplayIf#CAMERA_PERSPECTIVE, PvDisplayIf#CAMERA_ORTHO_XY, PvDisplayIf#CAMERA_ORTHO_XZ, PvDisplayIf#CAMERA_ORTHO_YZ, For a list of possible types see PvDisplayIf.
Specified by:
getCamera in interface PvDisplayIf
Parameters:
type - of camera
Returns:
null if argument out of bounds or camera not found.

hasCamera

public boolean hasCamera(int type)
Determine whether a camera object of given type is registered in display. Type is among PvDisplayIf#CAMERA_PERSPECTIVE, PvDisplayIf#CAMERA_ORTHO_XY, PvDisplayIf#CAMERA_ORTHO_XZ, PvDisplayIf#CAMERA_ORTHO_YZ, For a list of possible types see PvDisplayIf.
Specified by:
hasCamera in interface PvDisplayIf
Parameters:
type - of camera
Returns:
null if argument out of bounds or camera not found.
See Also:
selectCamera(int)

selectCamera

public boolean selectCamera(int type)
Select current camera used in dispay by id. If a requested system camera has not been instantiated yet, then it is created now. Type is among PvDisplayIf#CAMERA_PERSPECTIVE, PvDisplayIf#CAMERA_ORTHO_XY, PvDisplayIf#CAMERA_ORTHO_XZ, PvDisplayIf#CAMERA_ORTHO_YZ, For a list of possible types see PvDisplayIf.
Specified by:
selectCamera in interface PvDisplayIf
Parameters:
type - of camera
Returns:
false if type is outOfBounds.

removeCamera

public boolean removeCamera(int type)
Remove camera from list of registered cameras. Type is among PvDisplayIf#CAMERA_PERSPECTIVE, PvDisplayIf#CAMERA_ORTHO_XY, PvDisplayIf#CAMERA_ORTHO_XZ, PvDisplayIf#CAMERA_ORTHO_YZ, For a list of possible types see PvDisplayIf.
Specified by:
removeCamera in interface PvDisplayIf
Parameters:
type - of camera
Returns:
true if camera was found and successfully removed.

getPosition

public java.awt.Point getPosition(int xPos,
                                  int yPos)
Get upper left corner of frame.

setPosition

public void setPosition(int xPos,
                        int yPos)
Set position of upper left corner of frame from outside.

getSize

public java.awt.Dimension getSize()
Get height of drawing canvas.
Specified by:
getSize in interface PvDisplayIf
Overrides:
getSize in class java.awt.Component

setSizeWithinFrame

public void setSizeWithinFrame(int width,
                               int height)
Set dimension of display which is included in a parent frame. This call should be used instead of a direct call of #setSize(Dimension) resp. #setSize(int, int). Size of parent frame is the size of the display plus the its border margins.
Specified by:
setSizeWithinFrame in interface PvDisplayIf
Parameters:
width - width of display area, not of parent frame
height - height of display area, not of parent frame

setDefaultSize

public static void setDefaultSize(java.awt.Dimension size)
Set default dimension of drawing canvas from outside.

getFather

public PsUpdateIf getFather()
Get father of display. Method must be defined since PvDisplay does not derive from PsObject.
Specified by:
getFather in interface PsUpdateIf
Following copied from interface: jv.object.PsUpdateIf
See Also:
PsUpdateIf.setParent(PsUpdateIf), PsUpdateIf.update(Object)

setParent

public void setParent(PsUpdateIf father)
Set father of display which receives update events when current class has changed. Method must be defined since PvDisplay does not derive from PsObject.
Specified by:
setParent in interface PsUpdateIf
Following copied from interface: jv.object.PsUpdateIf
Parameters:
aParent - will receive events which this does not handle
See Also:
PsUpdateIf.getFather(), PsUpdateIf.update(Object)

isEnabledUpdate

public boolean isEnabledUpdate()
Determine whether update mechanism is enabled.
Specified by:
isEnabledUpdate in interface PvDisplayIf

setEnabledUpdate

public void setEnabledUpdate(boolean flag)
Set flag which determines whether update mechanism is enabled.
Specified by:
setEnabledUpdate in interface PvDisplayIf

update

public boolean update(java.lang.Object event)
Handle update events sent to display by JavaView. Notice, Java itself sends update(Graphics) calls to display too.
Specified by:
update in interface PvDisplayIf
Following copied from interface: jv.object.PsUpdateIf
Parameters:
event - carries a lot of information
Returns:
true if event has been handled, otherwise false
See Also:
PsObject, PsUpdateIf.getFather(), PsUpdateIf.setParent(PsUpdateIf)

hasPaintTag

public boolean hasPaintTag(int flags)
Check whether either if the bits in parameter has been set.
Specified by:
hasPaintTag in interface PvDisplayIf
See Also:
setPaintTag(int, boolean)

setPaintTag

public void setPaintTag(int flags,
                        boolean val)
Set all bits which are set in parameter. See jv.project.PvDisplayIf for a list of possible flags.

Special flag for internal purpose is PAINT_ZOOM: Scale transformation matrix to simulate floating point accuracy in pixel integers. Required for PostScript printing to increase pixel accurracy.

HACK: This PostScript Driver temporarily scales all integer valued quantities during display by a factor of 1000 to increase accuracy. The variable PvThickGraphics.ZOOM is set to allow to adjust all 'thickness' sizes as well. The thickness sizes are not scaled by PostScript, so we must do it in PvThickGraphics by hand. This procedure is very error proneous.

Setting flag PvDisplayIf#PAINT_ALL invokes a repaint() of the display, just for convience.

Specified by:
setPaintTag in interface PvDisplayIf
See Also:
hasPaintTag(int)

paint

public void paint(java.awt.Graphics g)
Override Canvas.paint(g) to initiate redrawing of geometries.
Overrides:
paint in class java.awt.Canvas

update

public void update(java.awt.Graphics g)
Override Component.update(g) to initiate redrawing of geometries.
Overrides:
update in class java.awt.Component

setAutoCenter

public void setAutoCenter(boolean flag)
Set flag which determines whether camera will automatically center on geometry. An argument false will prevent automatic centering.
Specified by:
setAutoCenter in interface PvDisplayIf

getImage

public java.awt.Image getImage()
Make image of display available to outside world.
Specified by:
getImage in interface PvDisplayIf

getBackgroundImage

public java.awt.Image getBackgroundImage()
Make image of display available to outside world.
Specified by:
getBackgroundImage in interface PvDisplayIf

setBackgroundImage

public void setBackgroundImage(java.awt.Image anImage)
Set background image of display canvas.
Specified by:
setBackgroundImage in interface PvDisplayIf

getBackgroundImageFile

public java.lang.String getBackgroundImageFile()
Get filename of background image of display canvas.
Returns:
relative file name of image.

setBackgroundImage

public void setBackgroundImage(java.lang.String fileName)
Set filename of background image of display canvas. Method tries to load file immediately.
Specified by:
setBackgroundImage in interface PvDisplayIf
Parameters:
fileName - relative file name of image.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

processMouseEvent

public void processMouseEvent(java.awt.event.MouseEvent event)

mousePressed

public void mousePressed(java.awt.event.MouseEvent event)
Do not react on popup events or other than left mouse clicks.
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseDragged

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

mouseReleased

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

getPickEvent

public PvPickEvent getPickEvent(int x,
                                int y)
Find intersection of ray through pick locus on registered geometries. First, intersection of ray with active geometry is tested, then intersection with all other visible geometries in the order they appear in the display panel. Non visible geometries are ignored.

mouseMoved

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

mouseEntered

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

mouseExited

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

mouseClicked

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

getMajorMode

public int getMajorMode()
Description copied from interface: PvDisplayIf
Get current interaction mode.
Specified by:
getMajorMode in interface PvDisplayIf

setMajorMode

public void setMajorMode(int mode)
Description copied from interface: PvDisplayIf
Switch between interaction modes like rotating or scaling, usually done interactively.
Specified by:
setMajorMode in interface PvDisplayIf

keyTyped

public void keyTyped(java.awt.event.KeyEvent event)
Specified by:
keyTyped in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent event)
Specified by:
keyReleased in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent event)
Specified by:
keyPressed in interface java.awt.event.KeyListener

getInfoPanel

public PsPanel getInfoPanel()
Get info panel of display. Display allocates panel if it does not exist.
Specified by:
getInfoPanel in interface PvDisplayIf

getCameraPanel

public PsPanel getCameraPanel()
Get info panel of current camera. Camera allocates panel if it does not exist.
Specified by:
getCameraPanel in interface PvDisplayIf

getMinimumSize

public java.awt.Dimension getMinimumSize()
Assure correct horizontal size of all project panels. TODO: locate preferred horizontal size in PsConfig. This method was necessary since especially PaParmSurface_IP tends to shrink.
Overrides:
getMinimumSize in class java.awt.Component

getPreferredSize

public java.awt.Dimension getPreferredSize()
Assure correct horizontal size of all project panels. TODO: locate preferred horizontal size in PsConfig. This method was necessary since especially PaParmSurface_IP tends to shrink.
Overrides:
getPreferredSize in class java.awt.Component

start

public void start()
Start animation by creating a new thread
Specified by:
start in interface PvDisplayIf

stop

public void stop()
Stop animation by stopping the thread. Netscape does not like to suspend a thread.
Specified by:
stop in interface PvDisplayIf

setAutoRotation

public void setAutoRotation(PdVector axis,
                            double angle)
Set axis and angle for auto-rotation.
Specified by:
setAutoRotation in interface PvDisplayIf

incrementAutoRotation

public boolean incrementAutoRotation()
Do a single increment of auto-rotation animaton. Method is invoked from PvViewer to generate Gif animations.
Specified by:
incrementAutoRotation in interface PvDisplayIf

run

public void run()
Do the animation by incrementing the transformation matrix with the last action.
Specified by:
run in interface java.lang.Runnable

JavaView® v2.12

The software JavaView® is copyright protected. All Rights Reserved.