/*
* -------------------------------------------------------------------------
* $Id: SurfacePlot.java,v 1.3 2006/03/16 22:34:50 estewart Exp $
* -------------------------------------------------------------------------
* Copyright (c) 1999 Visual Numerics Inc. All Rights Reserved.
*
* This software is confidential information which is proprietary to
* and a trade secret of Visual Numerics, Inc. Use, duplication or
* disclosure is subject to the terms of an appropriate license
* agreement.
*
* VISUAL NUMERICS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
* SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. VISUAL
* NUMERICS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
* AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR
* ITS DERIVATIVES.
*--------------------------------------------------------------------------
*/
/*
* SurfacePlot.java
*
* Created on September 15, 2004, 4:56 PM
*/
package com.imsl.demo.fitting;
import com.imsl.chart3d.*;
public class SurfacePlot extends javax.swing.JDialog {
private com.imsl.chart.JPanelChart jPanelChart;
private Canvas3DChart canvas;
private AxisXYZ axis;
private Data data;
private Surface surface;
private javax.swing.JTextField displayField;
private javax.swing.JCheckBox selectBox;
public SurfacePlot(java.awt.Frame parent, javax.swing.JCheckBox selectBox) {
super(parent, false);
initComponents();
this.selectBox = selectBox;
java.awt.Dimension parentSize = parent.getSize();
java.awt.Point parentLoc = parent.getLocationOnScreen();
parentLoc.x += parentSize.width/1.5;
parentLoc.y += parentSize.height/2.5;
setLocation(parentLoc.x, parentLoc.y);
jPanelChart = new com.imsl.chart.JPanelChart();
int h = (int)(parentSize.height/2);
int w = (int)(h/0.8);
setChart(w,h);
pack();
}
private void setChart(int w, int h) {
java.awt.Container cp = getContentPane();
Chart3D chart = new Chart3D();
axis = new AxisXYZ(chart);
axis.setAxisTitlePosition(axis.AXIS_TITLE_PARALLEL);
axis.setDataType(Data.DATA_TYPE_MARKER);
axis.setMarkerType(Data.MARKER_TYPE_SIMPLE_CUBE);
axis.getAxisX().getAxisTitle().setTitle("X Location");
axis.getAxisY().getAxisTitle().setTitle("Y Location");
axis.getAxisZ().getAxisTitle().setTitle("Elevation, m");
canvas = new Canvas3DChart(chart);
canvas.setSize(w, h);
cp.add(canvas);
// Create the display panel
javax.swing.JPanel displayPanel = new javax.swing.JPanel();
displayField = new javax.swing.JTextField("");
displayField.setBorder(null);
displayField.setEditable(false);
displayPanel.add(displayField);
cp.add(displayPanel, java.awt.BorderLayout.SOUTH);
canvas.render();
}
void draw(double[] x, double[] y, double[] z) {
displayField.setText("Display Field");
if (data != null) data.remove();
if (surface != null) surface.remove();
data = new Data(axis, x, y, z);
surface = new Surface(axis, x, y, z);
surface.setSurfaceType(Surface.SURFACE_TYPE_NICEST);
canvas.render();
}
void clearData() {
if (data != null) data.remove();
if (surface != null) surface.remove();
displayField.setText("");
setTitle("3D View");
repaint();
}
private void initComponents() {
setTitle("3D View");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
pack();
}
private void closeDialog(java.awt.event.WindowEvent evt) {
selectBox.setSelected(false);
setVisible(false);
dispose();
}
}