1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License as
4  * published by the Free Software Foundation; either version 2 of the
5  * License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful, but
8  * WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOUSE. See the GNU
10  * General Public License for more details.
11  *
12  * You should have recieved a copy of the GNU General Public License
13  * along with this program; if not write to the Free Software
14  * Foundation, inc., 59 Temple Place, Suite 330, Boston MA 02111-1307
15  * USA
16  */
17 
18 package gui;
19 
20 import javax.swing.*;
21 
22 import java.awt.*;
23 import java.awt.event.*;
24 import java.io.*;
25 import java.util.*;
26 import javax.media.j3d.*;
27 import javax.vecmath.*;
28 
29 import com.sun.j3d.utils.universe.*;
30 
31 import com.sun.j3d.utils.behaviors.mouse.*;
32 
33 
34 //import j3d.*;
35 
36 import javax.swing.event.*;
37 import javax.swing.filechooser.FileFilter;
38 
39 import util.PngEncoderB;
40 
41 import java.awt.image.*;
42 /**
43  *
44  * @author: Yuriy Mikhaylovskiy
45  */
46 
47 public class PostProcessor extends JPanel {
48   String project;
49   public static final String ver = "Post Processor";
50   Hashtable db_node = new Hashtable();
51   Hashtable db_node_tmp = new Hashtable();
52   Hashtable db_element = new Hashtable();
53   Hashtable db_element_type = new Hashtable();
54   Hashtable db_displacements = new Hashtable();
55   Hashtable db_strains = new Hashtable();
56   Hashtable db_stresses = new Hashtable();
57   private Properties ConfDB = new Properties();
58 
59   String[][] db_graph_tmp;
60   String db_graph_inf;
61   String[] st_result = { "DISPLACEMENTS (I)","DISPLACEMENTS (X)","DISPLACEMENTS (Y)","DISPLACEMENTS (Z)","STRAINS (I)","STRAINS (X)","STRAINS (Y)","STRAINS (Z)","STRAINS (XY)","STRAINS (YZ)","STRAINS (XZ)","STRESSES (I)","STRESSES (X)","STRESSES (Y)","STRESSES (Z)","STRESSES (XY)","STRESSES (YZ)","STRESSES (XZ)" };
62   //xx yy zz xy yz xz
63 
64   double maxdx,maxdy,maxdz,maxdi,maxex,maxey,maxez,maxexy,maxeyz,maxexz,maxsx,maxsy,maxsz,maxsxy,maxsyz,maxsxz,maxei,maxsi,
65   mindx,mindy,mindz,mindi,minex,miney,minez,minexy,mineyz,minexz,minei,minsx,minsy,minsz,minsxy,minsyz,minsxz,minsi;
66   double tfmax, tfmin;
67   double maxx, maxy, maxz;
68   double minx, miny, minz;
69   int fontsize = 0;
70 
71   ImageIcon img_new = new ImageIcon(PostProcessor.class.getResource("new.gif"));
72   ImageIcon img_open = new ImageIcon(PostProcessor.class.getResource("open.gif"));
73   ImageIcon img_add = new ImageIcon(PostProcessor.class.getResource("add.gif"));
74   ImageIcon img_save = new ImageIcon(PostProcessor.class.getResource("save.gif"));
75   ImageIcon img_saveall = new ImageIcon(PostProcessor.class.getResource("saveall.gif"));
76   ImageIcon img_zooma = new ImageIcon(PostProcessor.class.getResource("zooma.gif"));
77   ImageIcon img_zoomin = new ImageIcon(PostProcessor.class.getResource("zoomin.gif"));
78   ImageIcon img_zoomout = new ImageIcon(PostProcessor.class.getResource("zoomout.gif"));
79   ImageIcon img_view_top = new ImageIcon(PostProcessor.class.getResource("view_top.gif"));
80   ImageIcon img_view_bottom = new ImageIcon(PostProcessor.class.getResource("view_bottom.gif"));
81   ImageIcon img_view_left = new ImageIcon(PostProcessor.class.getResource("view_left.gif"));
82   ImageIcon img_view_right = new ImageIcon(PostProcessor.class.getResource("view_right.gif"));
83   ImageIcon img_view_front = new ImageIcon(PostProcessor.class.getResource("view_front.gif"));
84   ImageIcon img_view_back = new ImageIcon(PostProcessor.class.getResource("view_back.gif"));
85   ImageIcon img_view_sw = new ImageIcon(PostProcessor.class.getResource("view_sw.gif"));
86   ImageIcon img_view_se = new ImageIcon(PostProcessor.class.getResource("view_se.gif"));
87   ImageIcon img_view_ne = new ImageIcon(PostProcessor.class.getResource("view_ne.gif"));
88   ImageIcon img_view_nw = new ImageIcon(PostProcessor.class.getResource("view_nw.gif"));
89   ImageIcon img_gradient = new ImageIcon(PostProcessor.class.getResource("gradient.gif"));
90 
91   BufferedImage bi_grad;
92 
93   JTextField tf_deformed = new JTextField();
94   JTextField tf_max = new JTextField();
95   JTextField tf_min = new JTextField();
96 
97   JPanel jPanel2 = new JPanel();
98   JPanel jPanel3 = new JPanel();
99   JPanel jPanel5 = new JPanel();
100   JPanel jPanel7 = new JPanel();
101   JPanel jPanel8 = new JPanel();
102   JPanel jPanel9 = new JPanel();
103 
104   JButton b_viewbottom = new JButton();
105   JButton b_viewtop = new JButton();
106   JButton b_zoomout = new JButton();
107   JButton b_zoomin = new JButton();
108   JButton b_zooma = new JButton();
109   JButton b_open = new JButton();
110   JButton b_viewleft = new JButton();
111   JButton b_saveall = new JButton();
112   JButton b_save = new JButton();
113 
114   JCheckBox cb_conturfill = new JCheckBox();
115   JCheckBox cb_element = new JCheckBox();
116   JCheckBox cb_deformed = new JCheckBox();
117   JComboBox cb_result = new JComboBox(st_result);
118   JCheckBox cb_node = new JCheckBox();
119   JCheckBox cb_gradientresult = new JCheckBox();
120   JCheckBox cb_mesh = new JCheckBox();
121 
122   JScrollPane jScrollPane1 = new JScrollPane();
123 
124   JList time_step = new JList();
125   PostProcessor_Clip_Panel clip_panel = new PostProcessor_Clip_Panel();
126 
127   JToolBar jToolBar1 = new JToolBar();
128 
129   JLabel jLabel1 = new JLabel();
130   JLabel jLabel2 = new JLabel();
131   JLabel jLabel3 = new JLabel();
132 
133   GridLayout gridLayout1 = new GridLayout();
134 
135   JButton b_viewright = new JButton();
136   JButton b_viewsw = new JButton();
137   JButton b_viewse = new JButton();
138   JButton b_viewne = new JButton();
139   JButton b_viewnw = new JButton();
140   JButton b_viewfront = new JButton();
141   JButton b_viewback = new JButton();
142 
143   private Canvas3D J3D =  new Canvas3D(SimpleUniverse.getPreferredConfiguration());
144   public SimpleUniverse universe;
145   private BranchGroup brGroup = new BranchGroup();
146   private TransformGroup trGroup = new TransformGroup();
147   private Transform3D trans3d = new Transform3D();
148   private Background bgNode;
149   private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 1000000.0);
150   private MouseRotate mouseRotate = new MouseRotate();
151   private MouseZoom mouseZoom = new MouseZoom();
152   private MouseTranslate mouseTranslate = new MouseTranslate();
153   private BranchGroup brGroupMouseRotate = new BranchGroup();
154   private BranchGroup brGroupMouseZoom = new BranchGroup();
155   private BranchGroup brGroupMouseTranslate = new BranchGroup();
156   private BranchGroup brGroupClip = new BranchGroup();
157   private BranchGroup bgXYZ = new BranchGroup();
158   private BranchGroup resultGroup = new BranchGroup();
159   private ModelClip model_clip = new ModelClip();
160 
161 
PostProcessor()162   public PostProcessor() {
163     try { jbInit(); }catch(Exception e) { e.printStackTrace();     }
164   }
jbInit()165   private void jbInit() throws Exception {
166 	  	//-------------brGroup = new BranchGroup();
167 	    // Create the transform group node and initialize it to the
168 	    // identity.  Enable the TRANSFORM_WRITE capability so that
169 	    // our behavior code can modify it at runtime.  Add it to the
170 	    // root of the subgraph.
171 	    trGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
172 	    trGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
173 	    trans3d.setScale(0.005);
174 	    trGroup.setTransform(trans3d);
175 	    brGroup.addChild(trGroup);
176 	    // Set up the background
177 	    bgNode = new Background(new Color3f(1.0f, 1.0f, 1.0f));
178 	    bgNode.setCapability(Background.ALLOW_COLOR_READ);
179 	    bgNode.setCapability(Background.ALLOW_COLOR_WRITE);
180 	    bgNode.setCapability(Background.ALLOW_IMAGE_READ);
181 	    bgNode.setCapability(Background.ALLOW_IMAGE_WRITE);
182 	    bgNode.setCapability(Background.ALLOW_BOUNDS_READ);
183 	    bgNode.setCapability(Background.ALLOW_BOUNDS_WRITE);
184 	    bgNode.setCapability(Background.ALLOW_APPLICATION_BOUNDS_READ);
185 	    bgNode.setCapability(Background.ALLOW_APPLICATION_BOUNDS_WRITE);
186 	    trGroup.setCapability(Background.ALLOW_AUTO_COMPUTE_BOUNDS_READ);
187 	    trGroup.setCapability(Background.ALLOW_AUTO_COMPUTE_BOUNDS_WRITE);
188 	    resultGroup.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
189 	    resultGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
190 	    resultGroup.setCapability(BranchGroup.ALLOW_DETACH);
191 
192 	    bgNode.setApplicationBounds(bounds);
193 	    brGroup.addChild(bgNode);
194 	    // Set up the global lights
195 	    AmbientLight aLgt = new AmbientLight(new Color3f(0.2f, 0.2f, 0.2f));
196 	    aLgt.setInfluencingBounds(bounds);
197 	    DirectionalLight lgt1 = new DirectionalLight(new Color3f(0.7f, 0.7f, 0.7f), new Vector3f(1.0f, 1.0f, -1.0f));
198 	    lgt1.setInfluencingBounds(bounds);
199 	    brGroup.addChild(aLgt);
200 	    brGroup.addChild(lgt1);
201 	    // Controls the interactive viewing of objects in 3D
202 	    brGroupMouseRotate.addChild(mouseRotate);
203 	    brGroupMouseZoom.addChild(mouseZoom);
204 	    brGroupMouseTranslate.addChild(mouseTranslate);
205 	    brGroupMouseRotate.setCapability(BranchGroup.ALLOW_DETACH);
206 	    brGroupMouseZoom.setCapability(BranchGroup.ALLOW_DETACH);
207 	    brGroupMouseTranslate.setCapability(BranchGroup.ALLOW_DETACH);
208 	    brGroupClip.setCapability(BranchGroup.ALLOW_DETACH);
209 	    bgXYZ.addChild(new PostProcessor_shp_xyz());
210 	    bgXYZ.addChild(new PostProcessor_shp_xyz_x());
211 	    bgXYZ.addChild(new PostProcessor_shp_xyz_y());
212 	    bgXYZ.addChild(new PostProcessor_shp_xyz_z());
213 	    trGroup.addChild(bgXYZ);
214 	    brGroup.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
215 	    brGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
216 	    brGroup.setCapability(BranchGroup.ALLOW_COLLISION_BOUNDS_READ);
217 	    brGroup.setCapability(BranchGroup.ALLOW_COLLISION_BOUNDS_WRITE);
218 	    brGroup.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
219 	    brGroup.setCapability(BranchGroup.ALLOW_BOUNDS_READ );
220 	    brGroup.setCapability(BranchGroup.ALLOW_BOUNDS_WRITE );
221 	    trGroup.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
222 	    trGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
223 	    trGroup.setCapability(BranchGroup.ALLOW_COLLISION_BOUNDS_READ);
224 	    trGroup.setCapability(BranchGroup.ALLOW_COLLISION_BOUNDS_WRITE);
225 	    trGroup.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
226 	    bgXYZ.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
227 	    bgXYZ.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
228 	    bgXYZ.setCapability(BranchGroup.ALLOW_DETACH);
229 	    model_clip.setCapability(model_clip.ALLOW_PLANE_READ);
230 	    model_clip.setCapability(model_clip.ALLOW_PLANE_WRITE);
231 	    model_clip.setCapability(model_clip.ALLOW_INFLUENCING_BOUNDS_READ);
232 	    model_clip.setCapability(model_clip.ALLOW_INFLUENCING_BOUNDS_WRITE);
233 	    universe = new SimpleUniverse(J3D);
234 	    universe.addBranchGraph(brGroup);
235 	    universe.getViewingPlatform().setNominalViewingTransform();
236 	    // Create the rotate behavior node
237 	    mouseRotate.setTransformGroup(trGroup);
238 	    brGroupMouseRotate.detach();
239 	    trGroup.addChild(brGroupMouseRotate);
240 	    mouseRotate.setSchedulingBounds(bounds);
241 	    // Create the zoom behavior node
242 	    mouseZoom.setTransformGroup(trGroup);
243 	    brGroupMouseZoom.detach();
244 	    trGroup.addChild(brGroupMouseZoom);
245 	    mouseZoom.setSchedulingBounds(bounds);
246 	    // Create the translate behavior node
247 	    mouseTranslate.setTransformGroup(trGroup);
248 	    brGroupMouseTranslate.detach();
249 	    trGroup.addChild(brGroupMouseTranslate);
250 	    mouseTranslate.setSchedulingBounds(bounds);
251 
252 	    //Create Model Clip
253 	    boolean enables[] = {false, false, false, false, false, false};
254 	    Vector4d eqnx = new Vector4d(-1.0, 0.0, 0.0, 0.0);
255 	    Vector4d eqny = new Vector4d(-1.0, 0.0, 0.0, 0.0);
256 	    Vector4d eqnz = new Vector4d(-1.0, 0.0, 0.0, 0.0);
257 	    model_clip.setEnables(enables);
258 	    model_clip.setPlane(0, eqnx);
259 	    model_clip.setEnable(0, true);
260 	    model_clip.setPlane(1, eqny);
261 	    model_clip.setEnable(1, true);
262 	    model_clip.setPlane(2, eqnz);
263 	    model_clip.setEnable(2, true);
264 	    model_clip.setInfluencingBounds(bounds);
265 	    brGroupClip.addChild(model_clip);
266 	    clip_panel.sl_x.addChangeListener(new ChangeListener() {
267 	        public void stateChanged(ChangeEvent e) {
268 	            Vector4d eqn = new Vector4d(clip_panel.cb_x_reverse.isSelected()?1:-1.0, 0.0, 0.0, (clip_panel.cb_x_reverse.isSelected()?-1:1)*clip_panel.sl_x.getValue());
269 	            model_clip.setPlane(0, eqn);
270 	        }
271 	    });
272 	    clip_panel.sl_y.addChangeListener(new ChangeListener() {
273 	        public void stateChanged(ChangeEvent e) {
274 	            Vector4d eqn = new Vector4d(0.0, clip_panel.cb_y_reverse.isSelected()?1:-1.0, 0.0, (clip_panel.cb_y_reverse.isSelected()?-1:1)*clip_panel.sl_y.getValue());
275 	            model_clip.setPlane(1, eqn);
276 	        }
277 	    });
278 	    clip_panel.sl_z.addChangeListener(new ChangeListener() {
279 	        public void stateChanged(ChangeEvent e) {
280 	            Vector4d eqn = new Vector4d(0.0, 0.0, clip_panel.cb_z_reverse.isSelected()?1:-1.0, (clip_panel.cb_z_reverse.isSelected()?-1:1)*clip_panel.sl_z.getValue());
281 	            model_clip.setPlane(2, eqn);
282 	        }
283 	    });
284 	    clip_panel.cb_x_reverse.addItemListener(new java.awt.event.ItemListener() {
285 	        public void itemStateChanged(ItemEvent e) {
286 	        	Vector4d eqn = new Vector4d(clip_panel.cb_x_reverse.isSelected()?1:-1.0, 0.0, 0.0, (clip_panel.cb_x_reverse.isSelected()?-1:1)*clip_panel.sl_x.getValue());
287 	            model_clip.setPlane(0, eqn);
288 	        }
289 	    });
290 	    clip_panel.cb_y_reverse.addItemListener(new java.awt.event.ItemListener() {
291 	        public void itemStateChanged(ItemEvent e) {
292 	        	Vector4d eqn = new Vector4d(0.0, clip_panel.cb_y_reverse.isSelected()?1:-1.0, 0.0, (clip_panel.cb_y_reverse.isSelected()?-1:1)*clip_panel.sl_y.getValue());
293 	            model_clip.setPlane(1, eqn);
294 	        }
295 	    });
296 	    clip_panel.cb_z_reverse.addItemListener(new java.awt.event.ItemListener() {
297 	        public void itemStateChanged(ItemEvent e) {
298 	        	Vector4d eqn = new Vector4d(0.0, 0.0, clip_panel.cb_z_reverse.isSelected()?1:-1.0, (clip_panel.cb_z_reverse.isSelected()?-1:1)*clip_panel.sl_z.getValue());
299 	            model_clip.setPlane(2, eqn);
300 	        }
301 	    });
302 
303 
304 
305 
306 	load_configuration();
307 
308     mindi = 0;
309     minsi = 0;
310     minei = 0;
311 
312     bi_grad = new BufferedImage(img_gradient.getIconWidth(), img_gradient.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
313     Graphics2D big_grad = bi_grad.createGraphics();
314     big_grad.drawImage(img_gradient.getImage(),0,0,this);
315     jPanel7.setLayout(new BorderLayout());
316     tf_deformed.setText("1");
317     tf_deformed.setPreferredSize(new Dimension(30, 21));
318     tf_deformed.setMinimumSize(new Dimension(30, 21));
319 
320     tf_max.setPreferredSize(new Dimension(70, 21));
321     tf_min.setPreferredSize(new Dimension(70, 21));
322     tf_max.setMinimumSize(new Dimension(30, 21));
323     tf_min.setMinimumSize(new Dimension(30, 21));
324 
325     this.setLayout(new BorderLayout());
326     b_viewbottom.setToolTipText("Bottom View");
327     b_viewbottom.setIcon(img_view_bottom);
328     b_viewbottom.addActionListener(new java.awt.event.ActionListener() {
329       public void actionPerformed(ActionEvent e) {
330         b_viewbottom_actionPerformed(e);
331       }
332     });
333     cb_conturfill.setSelected(true);
334     cb_conturfill.setText("Contour fill");
335     cb_conturfill.addItemListener(new java.awt.event.ItemListener() {
336       public void itemStateChanged(ItemEvent e) {
337         draw();
338       }
339     });
340     b_viewtop.setToolTipText("Top View");
341     b_viewtop.setIcon(img_view_top);
342     b_viewtop.addActionListener(new java.awt.event.ActionListener() {
343       public void actionPerformed(ActionEvent e) {
344         b_viewtop_actionPerformed(e);
345       }
346     });
347 
348     b_zoomout.setToolTipText("Zoom out");
349     b_zoomout.setIcon(img_zoomout);
350     b_zoomout.addActionListener(new java.awt.event.ActionListener() {
351       public void actionPerformed(ActionEvent e) {
352         b_zoomout_actionPerformed(e);
353       }
354     });
355     b_zoomin.setToolTipText("Zoom in");
356     b_zoomin.setIcon(img_zoomin);
357     b_zoomin.addActionListener(new java.awt.event.ActionListener() {
358       public void actionPerformed(ActionEvent e) {
359         b_zoomin_actionPerformed(e);
360       }
361     });
362     jPanel3.setLayout(new BorderLayout());
363     b_zooma.setToolTipText("Zoom All");
364     b_zooma.setIcon(img_zooma);
365     b_zooma.addActionListener(new java.awt.event.ActionListener() {
366       public void actionPerformed(ActionEvent e) {
367           view_zoom_all();
368       }
369     });
370     cb_element.setText("Elements label");
371     cb_element.addItemListener(new java.awt.event.ItemListener() {
372       public void itemStateChanged(ItemEvent e) {
373         draw();
374       }
375     });
376     cb_deformed.setSelected(true);
377     cb_deformed.setText("Deformed");
378     cb_deformed.addItemListener(new java.awt.event.ItemListener() {
379       public void itemStateChanged(ItemEvent e) {
380         draw();
381       }
382     });
383     cb_node.setText("Nodes label");
384     cb_node.addItemListener(new java.awt.event.ItemListener() {
385       public void itemStateChanged(ItemEvent e) {
386         draw();
387       }
388     });
389     jScrollPane1.setPreferredSize(new Dimension(26, 160));
390     time_step.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
391       public void valueChanged(ListSelectionEvent e) {
392         draw();
393       }
394     });
395     b_open.setToolTipText("Open *.res");
396     b_open.setIcon(img_open);
397     b_open.addActionListener(new java.awt.event.ActionListener() {
398       public void actionPerformed(ActionEvent e) {
399         b_open_actionPerformed(e);
400       }
401     });
402     cb_mesh.setSelected(true);
403     cb_mesh.setText("Mesh");
404     cb_mesh.addItemListener(new java.awt.event.ItemListener() {
405       public void itemStateChanged(ItemEvent e) {
406         draw();
407       }
408     });
409     b_viewleft.setToolTipText("Left View");
410     b_viewleft.setIcon(img_view_left);
411     b_viewleft.addActionListener(new java.awt.event.ActionListener() {
412       public void actionPerformed(ActionEvent e) {
413         b_viewleft_actionPerformed(e);
414       }
415     });
416     b_saveall.setToolTipText("Save images");
417     b_saveall.setIcon(img_saveall);
418     b_saveall.addActionListener(new java.awt.event.ActionListener() {
419       public void actionPerformed(ActionEvent e) {
420         b_saveall_actionPerformed(e);
421       }
422     });
423     jToolBar1.setFloatable(false);
424     b_save.setToolTipText("Save image");
425     b_save.setIcon(img_save);
426     b_save.addActionListener(new java.awt.event.ActionListener() {
427       public void actionPerformed(ActionEvent e) {
428         b_save_actionPerformed(e);
429       }
430     });
431     jLabel3.setText("Time step");
432     J3D.setBackground(Color.white);
433     J3D.setBackground(Color.white);
434     jLabel2.setText("Result");
435     jLabel1.setText("Show");
436     b_viewright.setToolTipText("Right View");
437     b_viewright.setIcon(img_view_right);
438     b_viewright.addActionListener(new java.awt.event.ActionListener() {
439       public void actionPerformed(ActionEvent e) {
440         b_viewright_actionPerformed(e);
441       }
442     });
443     b_viewsw.setToolTipText("SW Isometric View");
444     b_viewsw.setIcon(img_view_sw);
445     b_viewsw.addActionListener(new java.awt.event.ActionListener() {
446       public void actionPerformed(ActionEvent e) {
447         b_viewsw_actionPerformed(e);
448       }
449     });
450     b_viewse.setToolTipText("SE Isometric View");
451     b_viewse.setIcon(img_view_se);
452     b_viewse.addActionListener(new java.awt.event.ActionListener() {
453       public void actionPerformed(ActionEvent e) {
454         b_viewse_actionPerformed(e);
455       }
456     });
457     b_viewne.setToolTipText("NE Isometric View");
458     b_viewne.setIcon(img_view_ne);
459     b_viewne.addActionListener(new java.awt.event.ActionListener() {
460       public void actionPerformed(ActionEvent e) {
461         b_viewne_actionPerformed(e);
462       }
463     });
464     b_viewnw.setToolTipText("NW Isometric View");
465     b_viewnw.setIcon(img_view_nw);
466     b_viewnw.addActionListener(new java.awt.event.ActionListener() {
467       public void actionPerformed(ActionEvent e) {
468         b_viewnw_actionPerformed(e);
469       }
470     });
471     b_viewfront.setToolTipText("Front View");
472     b_viewfront.setIcon(img_view_front);
473     b_viewfront.addActionListener(new java.awt.event.ActionListener() {
474       public void actionPerformed(ActionEvent e) {
475         b_viewfront_actionPerformed(e);
476       }
477     });
478     b_viewback.setToolTipText("Back View");
479     b_viewback.setIcon(img_view_back);
480     b_viewback.addActionListener(new java.awt.event.ActionListener() {
481       public void actionPerformed(ActionEvent e) {
482         b_viewback_actionPerformed(e);
483       }
484     });
485     cb_gradientresult.setSelected(true);
486     cb_gradientresult.setText("Gradient Result");
487     cb_gradientresult.addItemListener(new java.awt.event.ItemListener() {
488       public void itemStateChanged(ItemEvent e) {
489         draw();
490       }
491     });
492     cb_result.addItemListener(new java.awt.event.ItemListener() {
493       public void itemStateChanged(ItemEvent e) {
494 
495           switch (cb_result.getSelectedIndex()) {
496           case 0:
497               tf_max.setText("" + maxdi);
498               tfmax = maxdi;
499               tf_min.setText("" + mindi);
500               tfmin = mindi;
501               break;
502           case 1:
503               tf_max.setText("" + maxdx);
504               tfmax = maxdx;
505               tf_min.setText("" + mindx);
506               tfmin = mindx;
507               break;
508           case 2:
509               tf_max.setText("" + maxdy);
510               tfmax = maxdy;
511               tf_min.setText("" + mindy);
512               tfmin = mindy;
513               break;
514           case 3:
515               tf_max.setText("" + maxdz);
516               tfmax = maxdz;
517               tf_min.setText("" + mindz);
518               tfmin = mindz;
519               break;
520           case 4:
521               tf_max.setText("" + maxei);
522               tfmax = maxei;
523               tf_min.setText("" + minei);
524               tfmin = minei;
525               break;
526           case 5:
527               tf_max.setText("" + maxex);
528               tfmax = maxex;
529               tf_min.setText("" + minex);
530               tfmin = minex;
531               break;
532           case 6:
533               tf_max.setText("" + maxey);
534               tfmax = maxey;
535               tf_min.setText("" + miney);
536               tfmin = miney;
537               break;
538           case 7:
539               tf_max.setText("" + maxez);
540               tfmax = maxez;
541               tf_min.setText("" + minez);
542               tfmin = minez;
543               break;
544           case 8:
545               tf_max.setText("" + maxexy);
546               tfmax = maxexy;
547               tf_min.setText("" + minexy);
548               tfmin = minexy;
549               break;
550           case 9:
551               tf_max.setText("" + maxeyz);
552               tfmax = maxeyz;
553               tf_min.setText("" + mineyz);
554               tfmin = mineyz;
555               break;
556           case 10:
557               tf_max.setText("" + maxexz);
558               tfmax = maxexz;
559               tf_min.setText("" + minexz);
560               tfmin = minexz;
561               break;
562           case 11:
563               tf_max.setText("" + maxsi);
564               tfmax = maxsi;
565               tf_min.setText("" + minsi);
566               tfmin = minsi;
567               break;
568           case 12:
569               tf_max.setText("" + maxsx);
570               tfmax = maxsx;
571               tf_min.setText("" + minsx);
572               tfmin = minsx;
573               break;
574           case 13:
575               tf_max.setText("" + maxsy);
576               tfmax = maxsy;
577               tf_min.setText("" + minsy);
578               tfmin = minsy;
579               break;
580           case 14:
581               tf_max.setText("" + maxsz);
582               tfmax = maxsz;
583               tf_min.setText("" + minsz);
584               tfmin = minsz;
585               break;
586           case 15:
587               tf_max.setText("" + maxsxy);
588               tfmax = maxsxy;
589               tf_min.setText("" + minsxy);
590               tfmin = minsxy;
591               break;
592           case 16:
593               tf_max.setText("" + maxsyz);
594               tfmax = maxsyz;
595               tf_min.setText("" + minsyz);
596               tfmin = minsyz;
597               break;
598           case 17:
599               tf_max.setText("" + maxsxz);
600               tfmax = maxsxz;
601               tf_min.setText("" + minsxz);
602               tfmin = minsxz;
603               break;
604           }
605 
606         draw();
607       }
608     });
609 
610     tf_max.addKeyListener(new java.awt.event.KeyAdapter() {
611         public void keyPressed(KeyEvent e) {
612           tf_max_keyPressed(e);
613         }
614     });
615     tf_min.addKeyListener(new java.awt.event.KeyAdapter() {
616         public void keyPressed(KeyEvent e) {
617           tf_min_keyPressed(e);
618         }
619     });
620 
621     clip_panel.cb_clip.addItemListener(new java.awt.event.ItemListener() {
622         public void itemStateChanged(ItemEvent e) {
623         	clip_panel.p_clip.setEnabled(clip_panel.cb_clip.isSelected());
624         	if(clip_panel.cb_clip.isSelected()){
625         		trGroup.addChild(brGroupClip);
626         	}else{
627         		brGroupClip.detach();
628         	}
629         }
630     });
631 
632     this.add(jPanel2, BorderLayout.CENTER);
633     jPanel2.setLayout(new BorderLayout());
634     jPanel2.add(J3D, BorderLayout.CENTER);
635 
636     this.add(jPanel9, BorderLayout.NORTH);
637     jPanel9.setLayout(new BorderLayout());
638     jPanel9.add(jToolBar1,BorderLayout.WEST);
639     jPanel9.add(jPanel8,BorderLayout.EAST);
640     jPanel8.add(new JLabel("Min"), BorderLayout.WEST);
641     jPanel8.add(tf_min, BorderLayout.WEST);
642     jPanel8.add(new JLabel("Max"), BorderLayout.EAST);
643     jPanel8.add(tf_max, BorderLayout.EAST);
644 
645     jToolBar1.add(b_open, null);
646     jToolBar1.add(b_save, null);
647     jToolBar1.add(b_saveall, null);
648     jToolBar1.addSeparator();
649     jToolBar1.add(b_zoomin, null);
650     jToolBar1.add(b_zoomout, null);
651     jToolBar1.add(b_zooma, null);
652     jToolBar1.addSeparator();
653     jToolBar1.add(b_viewtop, null);
654     jToolBar1.add(b_viewbottom, null);
655     jToolBar1.add(b_viewleft, null);
656     jToolBar1.add(b_viewright, null);
657     jToolBar1.add(b_viewfront, null);
658     jToolBar1.add(b_viewback, null);
659     jToolBar1.addSeparator();
660     jToolBar1.add(b_viewsw, null);
661     jToolBar1.add(b_viewse, null);
662     jToolBar1.add(b_viewne, null);
663     jToolBar1.add(b_viewnw, null);
664     jToolBar1.addSeparator();
665 
666     this.add(jPanel3, BorderLayout.WEST);
667 
668     jPanel3.add(jScrollPane1, BorderLayout.CENTER);
669     jScrollPane1.getViewport().add(time_step, null);
670 
671     jPanel3.add(jPanel5, BorderLayout.NORTH);
672     jPanel3.add(clip_panel, BorderLayout.SOUTH);
673     jPanel5.setLayout(gridLayout1);
674         gridLayout1.setRows(10);
675     jPanel5.add(jLabel1, null);
676     jPanel5.add(cb_mesh, null);
677     jPanel5.add(jPanel7, null);
678         jPanel7.add(cb_deformed, BorderLayout.CENTER);
679         jPanel7.add(tf_deformed, BorderLayout.EAST);
680     jPanel5.add(cb_conturfill, null);
681     jPanel5.add(cb_node, null);
682     jPanel5.add(cb_element, null);
683     jPanel5.add(cb_gradientresult, null);
684     jPanel5.add(jLabel2, null);
685     jPanel5.add(cb_result, null);
686     jPanel5.add(jLabel3, null);
687 
688   }
689 
setVisible(boolean v)690   public void setVisible(boolean v){
691       super.setVisible(v);
692       J3D.setVisible(v);
693   }
694 
695 
error(Object st)696   public void error(Object st){
697     JOptionPane.showMessageDialog(null,"Error: "+st,"Error!",JOptionPane.ERROR_MESSAGE);
698     System.out.println("Error: "+st);
699   }
700 
701 
load(String st)702   public synchronized void load(String st){
703     try{
704       //Rod_2 "Type100" ElemType Linear "MeshType100"
705       //Beam_2 "Type110" ElemType Linear "MeshType110"
706       //Beam_Spring_2,Contact_Line "Type120" ElemType Linear "MeshType120"
707       //Contact_Triangle "Type420" ElemType Triangle "MeshType420"
708       //Shell_C0_3 "Type210" ElemType Triangle "MeshType210"
709       //Shell_BT_4 "Type300" ElemType Quadrilateral "MeshType300"
710       //Solid_Iso_6 "Type500" ElemType Hexahedra "MeshType500"
711 
712       time_step.removeAll();
713       maxdx=maxdy=maxdz=maxdi=maxex=maxey=maxez=maxexy=maxeyz=maxexz=maxsx=maxsy=maxsz=maxsxy=maxsyz=maxsxz=maxei=maxsi=Float.MIN_VALUE;
714       mindx=mindy=mindz=minex=miney=minez=minexy=mineyz=minexz=minsx=minsy=minsz=minsxy=minsyz=minsxz=Float.MAX_VALUE;
715       maxx = maxy = maxz = -Double.MAX_VALUE;
716       minx = miny = minz = Double.MAX_VALUE;
717       db_node = new Hashtable();
718       db_element = new Hashtable();
719       db_element_type = new Hashtable();
720       db_displacements = new Hashtable();
721       db_strains = new Hashtable();
722       db_stresses = new Hashtable();
723       DefaultListModel model = new DefaultListModel();
724       String st_msh = st.substring(0,st.length()-3)+"msh";
725       String st_dat = st;
726       RandomAccessFile in = new RandomAccessFile(st_msh, "r");
727       String dat;
728       System.out.print("\nLoading mesh ...");
729       while((dat=in.readLine())!=null){
730         if(dat.startsWith("COORDINATES")){
731           Point3d p3d;
732           while(!(dat=in.readLine()).startsWith("END")){
733             StringTokenizer st_t = new StringTokenizer(dat);
734             String index = st_t.nextToken();
735             p3d = toPoint3d(dat);
736             maxx = Math.max(maxx, p3d.x);
737             maxy = Math.max(maxy, p3d.y);
738             maxz = Math.max(maxz, p3d.z);
739             minx = Math.min(minx, p3d.x);
740             miny = Math.min(miny, p3d.y);
741             minz = Math.min(minz, p3d.z);
742             db_node.put(index,p3d);
743           }
744         }else if(dat.startsWith("ELEMENTS")){
745           fontsize = (int)((maxx-minx+maxy-miny+maxz-minz) / db_node.size());
746           if(fontsize==0) fontsize = 1;
747           while(!(dat=in.readLine()).startsWith("END")){
748             StringTokenizer st_t = new StringTokenizer(dat);
749             String index = st_t.nextToken();
750             int[] arr = toArrayInt(dat);
751             db_element.put(index,arr);
752           }
753         }
754       }
755       in.close();
756       in = new RandomAccessFile(st_dat, "r");
757       System.out.print("... OK\nLoading data ...");
758       dat=in.readLine();
759       int n = 1;
760       while(dat!=null){
761         headerMessage("loading block: "+(n++)+" ("+dat+")");
762         if(dat.toUpperCase().startsWith("GAUSSPOINTS")){
763           StringTokenizer st_t = new StringTokenizer(dat,"\"");
764           st_t.nextToken();
765           String et = st_t.nextToken();
766           dat=in.readLine();
767           st_t = new StringTokenizer(dat,":");
768           st_t.nextToken();
769           int np = Integer.parseInt(st_t.nextToken().trim());
770           db_element_type.put(et,""+np);
771           while(!(dat=in.readLine()).toUpperCase().startsWith("END")){  }
772         }else if(dat.indexOf("DISPLACEMENTS")!=-1){
773           StringTokenizer st_t = new StringTokenizer(dat.trim());
774           st_t.nextToken();
775           st_t.nextToken();
776           String step = st_t.nextToken();
777           model.addElement(step);
778           Hashtable v = new Hashtable();
779           while((dat=in.readLine())!=null && dat.indexOf("LOCAL")==-1 && dat.indexOf("GLOBAL")==-1){
780             st_t = new StringTokenizer(dat);
781             String key = st_t.nextToken();
782             Point3d p = toPoint3d(dat);
783             mindx=Math.min(mindx,p.x);
784             mindy=Math.min(mindy,p.y);
785             mindz=Math.min(mindz,p.z);
786             maxdx=Math.max(maxdx,p.x);
787             maxdy=Math.max(maxdy,p.y);
788             maxdz=Math.max(maxdz,p.z);
789             maxdi=Math.max(maxdi,(float)Math.sqrt(p.x*p.x+p.y*p.y+p.z*p.z));
790             v.put(key,p);
791           }
792           db_displacements.put(step,v);
793         }else if(dat.indexOf("STRESSES")!=-1){
794           StringTokenizer st_t = new StringTokenizer(dat.trim());
795           st_t.nextToken();
796           st_t.nextToken();
797           String step = st_t.nextToken();
798           Hashtable v = (Hashtable)db_stresses.get(step);
799           if(v==null) v = new Hashtable();
800           while((dat=in.readLine())!=null  && dat.indexOf("LOCAL")==-1 && dat.indexOf("GLOBAL")==-1 && dat.indexOf("DISPLACEMENTS")==-1){
801             st_t = new StringTokenizer(dat);
802             if(st_t.countTokens()==7){
803               long pos = in.getFilePointer();
804               String dat1=in.readLine();
805               StringTokenizer st_t1=null;
806               if(dat1!=null) st_t1 = new StringTokenizer(dat1);
807               if(dat1==null || st_t1.countTokens()==7 || dat1.indexOf("LOCAL")!=-1 || dat1.indexOf("GLOBAL")!=-1 || dat1.indexOf("DISPLACEMENTS")!=-1){
808                 in.seek(pos);
809               }else{
810                 dat+=" "+dat1+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine();
811               }
812             }
813             String key = st_t.nextToken();
814             float[] arr = toArrayFloat(dat);
815             if(arr.length==1){
816               minsx=Math.min(minsx,arr[0]);
817               maxsx=Math.max(maxsx,arr[0]);
818               maxsi=Math.max(maxsi,Math.abs(arr[0]));
819             }else if(arr.length==6){
820               minsx=Math.min(minsx,arr[0]);
821               minsy=Math.min(minsy,arr[1]);
822               minsz=Math.min(minsz,arr[2]);
823               minsxy=Math.min(minsxy,arr[3]);
824               minsyz=Math.min(minsyz,arr[4]);
825               minsxz=Math.min(minsxz,arr[5]);
826               maxsx=Math.max(maxsx,arr[0]);
827               maxsy=Math.max(maxsy,arr[1]);
828               maxsz=Math.max(maxsz,arr[2]);
829               maxsxy=Math.max(maxsxy,arr[3]);
830               maxsyz=Math.max(maxsyz,arr[4]);
831               maxsxz=Math.max(maxsxz,arr[5]);
832               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[0]-arr[1],2)+Math.pow(arr[1]-arr[2],2)+Math.pow(arr[2]-arr[0],2)+6*(arr[3]*arr[3]+arr[4]*arr[4]+arr[5]*arr[5])));
833             }else{
834               minsx=Math.min(minsx,(arr[0]+arr[6]+arr[12]+arr[18]+arr[24]+arr[30]+arr[36]+arr[42])/8);
835               minsy=Math.min(minsy,(arr[1]+arr[7]+arr[13]+arr[19]+arr[25]+arr[31]+arr[37]+arr[43])/8);
836               minsz=Math.min(minsz,(arr[2]+arr[8]+arr[14]+arr[20]+arr[26]+arr[32]+arr[38]+arr[44])/8);
837               minsxy=Math.min(minsxy,(arr[3]+arr[9]+arr[15]+arr[21]+arr[27]+arr[33]+arr[39]+arr[45])/8);
838               minsyz=Math.min(minsyz,(arr[4]+arr[10]+arr[16]+arr[22]+arr[28]+arr[34]+arr[40]+arr[46])/8);
839               minsxz=Math.min(minsxz,(arr[5]+arr[11]+arr[17]+arr[23]+arr[29]+arr[35]+arr[41]+arr[47])/8);
840               maxsx=Math.max(maxsx,(arr[0]+arr[6]+arr[12]+arr[18]+arr[24]+arr[30]+arr[36]+arr[42])/8);
841               maxsy=Math.max(maxsy,(arr[1]+arr[7]+arr[13]+arr[19]+arr[25]+arr[31]+arr[37]+arr[43])/8);
842               maxsz=Math.max(maxsz,(arr[2]+arr[8]+arr[14]+arr[20]+arr[26]+arr[32]+arr[38]+arr[44])/8);
843               maxsxy=Math.max(maxsxy,(arr[3]+arr[9]+arr[15]+arr[21]+arr[27]+arr[33]+arr[39]+arr[45])/8);
844               maxsyz=Math.max(maxsyz,(arr[4]+arr[10]+arr[16]+arr[22]+arr[28]+arr[34]+arr[40]+arr[46])/8);
845               maxsxz=Math.max(maxsxz,(arr[5]+arr[11]+arr[17]+arr[23]+arr[29]+arr[35]+arr[41]+arr[47])/8);
846               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[0]-arr[1],2)+Math.pow(arr[1]-arr[2],2)+Math.pow(arr[2]-arr[0],2)+6*(arr[3]*arr[3]+arr[4]*arr[4]+arr[5]*arr[5])));
847               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[6]-arr[7],2)+Math.pow(arr[7]-arr[8],2)+Math.pow(arr[8]-arr[6],2)+6*(arr[9]*arr[9]+arr[10]*arr[10]+arr[11]*arr[11])));
848               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[12]-arr[13],2)+Math.pow(arr[13]-arr[14],2)+Math.pow(arr[14]-arr[12],2)+6*(arr[15]*arr[15]+arr[16]*arr[16]+arr[17]*arr[17])));
849               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[18]-arr[19],2)+Math.pow(arr[19]-arr[20],2)+Math.pow(arr[20]-arr[18],2)+6*(arr[21]*arr[21]+arr[22]*arr[22]+arr[23]*arr[23])));
850               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[24]-arr[25],2)+Math.pow(arr[25]-arr[26],2)+Math.pow(arr[26]-arr[24],2)+6*(arr[27]*arr[27]+arr[28]*arr[28]+arr[29]*arr[29])));
851               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[30]-arr[31],2)+Math.pow(arr[31]-arr[32],2)+Math.pow(arr[32]-arr[30],2)+6*(arr[33]*arr[33]+arr[34]*arr[34]+arr[35]*arr[35])));
852               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[36]-arr[37],2)+Math.pow(arr[36]-arr[38],2)+Math.pow(arr[38]-arr[36],2)+6*(arr[39]*arr[39]+arr[40]*arr[40]+arr[41]*arr[41])));
853               maxsi=(float)Math.max(maxsi,Math.sqrt(2)/2*Math.sqrt(Math.pow(arr[42]-arr[43],2)+Math.pow(arr[43]-arr[44],2)+Math.pow(arr[44]-arr[42],2)+6*(arr[45]*arr[45]+arr[46]*arr[46]+arr[47]*arr[47])));
854             }
855             v.put(key,arr);
856           }
857           db_stresses.put(step,v);
858         }else if(dat.indexOf("STRAINS")!=-1){
859           StringTokenizer st_t = new StringTokenizer(dat.trim());
860           st_t.nextToken();
861           st_t.nextToken();
862           String step = st_t.nextToken();
863           Hashtable v = (Hashtable)db_strains.get(step);
864           if(v==null) v = new Hashtable();
865           while((dat=in.readLine())!=null  && dat.indexOf("LOCAL")==-1 && dat.indexOf("GLOBAL")==-1 && dat.indexOf("DISPLACEMENTS")==-1){
866             st_t = new StringTokenizer(dat);
867             if(st_t.countTokens()==7){
868               long pos = in.getFilePointer();
869               String dat1=in.readLine();
870               StringTokenizer st_t1=null;
871               if(dat1!=null) st_t1 = new StringTokenizer(dat1);
872               if(dat1==null || st_t1.countTokens()==7 || dat1.indexOf("LOCAL")!=-1 || dat1.indexOf("GLOBAL")!=-1 || dat1.indexOf("DISPLACEMENTS")!=-1){
873                 in.seek(pos);
874               }else{
875                 dat+=" "+dat1+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine()+" "+in.readLine();
876               }
877             }
878             String key = st_t.nextToken();
879             float[] arr = toArrayFloat(dat);
880             if(arr.length==1){
881               minex=Math.min(minex,arr[0]);
882               maxex=Math.max(maxex,arr[0]);
883               maxei=Math.max(maxei,Math.abs(arr[0]));
884             }else if(arr.length==6){
885               minex=Math.min(minex,arr[0]);
886               miney=Math.min(miney,arr[1]);
887               minez=Math.min(minez,arr[2]);
888               minexy=Math.min(minexy,arr[3]);
889               mineyz=Math.min(mineyz,arr[4]);
890               minexz=Math.min(minexz,arr[5]);
891               maxex=Math.max(maxex,arr[0]);
892               maxey=Math.max(maxey,arr[1]);
893               maxez=Math.max(maxez,arr[2]);
894               maxexy=Math.max(maxexy,arr[3]);
895               maxeyz=Math.max(maxeyz,arr[4]);
896               maxexz=Math.max(maxexz,arr[5]);
897               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[0]-arr[1],2)+Math.pow(arr[1]-arr[2],2)+Math.pow(arr[2]-arr[0],2)+1.5*(arr[3]*arr[3]+arr[4]*arr[4]+arr[5]*arr[5])));
898             }else{
899               minex=Math.min(minex,(arr[0]+arr[6]+arr[12]+arr[18]+arr[24]+arr[30]+arr[36]+arr[42])/8);
900               miney=Math.min(miney,(arr[1]+arr[7]+arr[13]+arr[19]+arr[25]+arr[31]+arr[37]+arr[43])/8);
901               minez=Math.min(minez,(arr[2]+arr[8]+arr[14]+arr[20]+arr[26]+arr[32]+arr[38]+arr[44])/8);
902               minexy=Math.min(minexy,(arr[3]+arr[9]+arr[15]+arr[21]+arr[27]+arr[33]+arr[39]+arr[45])/8);
903               mineyz=Math.min(mineyz,(arr[4]+arr[10]+arr[16]+arr[22]+arr[28]+arr[34]+arr[40]+arr[46])/8);
904               minexz=Math.min(minexz,(arr[5]+arr[11]+arr[17]+arr[23]+arr[29]+arr[35]+arr[41]+arr[47])/8);
905               maxex=Math.max(maxex,(arr[0]+arr[6]+arr[12]+arr[18]+arr[24]+arr[30]+arr[36]+arr[42])/8);
906               maxey=Math.max(maxey,(arr[1]+arr[7]+arr[13]+arr[19]+arr[25]+arr[31]+arr[37]+arr[43])/8);
907               maxez=Math.max(maxez,(arr[2]+arr[8]+arr[14]+arr[20]+arr[26]+arr[32]+arr[38]+arr[44])/8);
908               maxexy=Math.max(maxexy,(arr[3]+arr[9]+arr[15]+arr[21]+arr[27]+arr[33]+arr[39]+arr[45])/8);
909               maxeyz=Math.max(maxeyz,(arr[4]+arr[10]+arr[16]+arr[22]+arr[28]+arr[34]+arr[40]+arr[46])/8);
910               maxexz=Math.max(maxexz,(arr[5]+arr[11]+arr[17]+arr[23]+arr[29]+arr[35]+arr[41]+arr[47])/8);
911               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[0]-arr[1],2)+Math.pow(arr[1]-arr[2],2)+Math.pow(arr[2]-arr[0],2)+1.5*(arr[3]*arr[3]+arr[4]*arr[4]+arr[5]*arr[5])));
912               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[6]-arr[7],2)+Math.pow(arr[7]-arr[8],2)+Math.pow(arr[8]-arr[6],2)+1.5*(arr[9]*arr[9]+arr[10]*arr[10]+arr[11]*arr[11])));
913               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[12]-arr[13],2)+Math.pow(arr[13]-arr[14],2)+Math.pow(arr[14]-arr[12],2)+1.5*(arr[15]*arr[15]+arr[16]*arr[16]+arr[17]*arr[17])));
914               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[18]-arr[19],2)+Math.pow(arr[19]-arr[20],2)+Math.pow(arr[20]-arr[18],2)+1.5*(arr[21]*arr[21]+arr[22]*arr[22]+arr[23]*arr[23])));
915               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[24]-arr[25],2)+Math.pow(arr[25]-arr[26],2)+Math.pow(arr[26]-arr[24],2)+1.5*(arr[27]*arr[27]+arr[28]*arr[28]+arr[29]*arr[29])));
916               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[30]-arr[31],2)+Math.pow(arr[31]-arr[32],2)+Math.pow(arr[32]-arr[30],2)+1.5*(arr[33]*arr[33]+arr[34]*arr[34]+arr[35]*arr[35])));
917               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[36]-arr[37],2)+Math.pow(arr[36]-arr[38],2)+Math.pow(arr[38]-arr[36],2)+1.5*(arr[39]*arr[39]+arr[40]*arr[40]+arr[41]*arr[41])));
918               maxei=(float)Math.max(maxei,Math.sqrt(2)/3*Math.sqrt(Math.pow(arr[42]-arr[43],2)+Math.pow(arr[43]-arr[44],2)+Math.pow(arr[44]-arr[42],2)+1.5*(arr[45]*arr[45]+arr[46]*arr[46]+arr[47]*arr[47])));
919             }
920             v.put(key,arr);
921           }
922           db_strains.put(step,v);
923         }else dat=in.readLine();
924       }
925       in.close();
926       clip_panel.sl_x.setMinimum((int)(minx+mindx-Math.abs(minx*0.2)));
927 	  clip_panel.sl_x.setMaximum((int)(maxx+maxdx+Math.abs(maxx*0.2)));
928 	  clip_panel.sl_x.setValue((int)(minx+mindx-Math.abs(minx*0.2)));
929 	  clip_panel.sl_y.setMinimum((int)(miny+mindy-Math.abs(miny*0.2)));
930 	  clip_panel.sl_y.setMaximum((int)(maxy+maxdy+Math.abs(maxy*0.2)));
931 	  clip_panel.sl_y.setValue((int)(miny+mindy-Math.abs(miny*0.2)));
932 	  clip_panel.sl_z.setMinimum((int)(minz+mindz-Math.abs(minz*0.2)));
933 	  clip_panel.sl_z.setMaximum((int)(maxz+maxdz+Math.abs(maxz*0.2)));
934 	  clip_panel.sl_z.setValue((int)(minz+mindz-Math.abs(minz*0.2)));
935 	  model_clip.setInfluencingBounds(bounds);
936 	  System.out.print("... OK\n");
937       headerMessage(null);
938       try{
939         time_step.setModel(model);
940       } catch(Exception e2){}
941 
942 //    Set initial state
943       tf_max.setText("" + maxdi);
944       tfmax = maxdi;
945       tf_min.setText("" + mindi);
946       tfmin = mindi;
947 
948       time_step.setSelectedIndex(0);
949       J3D.repaint();
950     } catch(Exception e1) {error(e1);}
951 
952   }
953 
toPoint3d(String st)954   public Point3d toPoint3d(String st)throws Exception{
955     StringTokenizer st_t = new StringTokenizer(st);
956     st_t.nextToken();
957     return new Point3d(new Float(st_t.nextToken()).floatValue(),new Float(st_t.nextToken()).floatValue(),new Float(st_t.nextToken()).floatValue());
958   }
toArrayInt(String st)959   public int[] toArrayInt(String st)throws Exception{
960     StringTokenizer st_t = new StringTokenizer(st);
961     int[] arr = new int[st_t.countTokens()-1];
962     st_t.nextToken();
963     for(int i=0; i<arr.length; i++){
964       arr[i]= Integer.parseInt(st_t.nextToken());
965     }
966     return arr;
967   }
toArrayFloat(String st)968   public float[] toArrayFloat(String st)throws Exception{
969     StringTokenizer st_t = new StringTokenizer(st);
970     float[] arr = new float[st_t.countTokens()-1];
971     st_t.nextToken();
972     for(int i=0; i<arr.length; i++){
973       arr[i]= Float.parseFloat(st_t.nextToken());
974     }
975     return arr;
976   }
977 
getGradient(float min, float val, float max)978   public Color getGradient(float min, float val, float max){
979     int d = Math.round((val-min)/(max-min)*256);
980     if(d>255)d=255;
981     if(d<0)d=0;
982     return new Color(bi_grad.getRGB(0,d));
983   }
984 
985 
draw()986   public void draw(){
987 	  if(time_step.getModel().getSize()==0)return;
988 	  resultGroup.detach();
989 	  resultGroup.removeAllChildren();
990 	  Vector vLines = new Vector();
991 	  Vector vTriangle = new Vector();
992 	  Vector vQuad = new Vector();
993 	  Vector vLinesColor = new Vector();
994 	  Vector vTriangleColor = new Vector();
995 	  Vector vQuadColor = new Vector();
996 	  float kd = 1;
997 	  if(cb_deformed.isSelected())
998 		  try{kd=Float.parseFloat(tf_deformed.getText());}catch(Exception e){error("Factor of deformation - "+e);}
999 	      else kd=0;
1000 	  String time = time_step.getSelectedValue()+"";
1001 	  //Show nodes label
1002 	  if(cb_node.isSelected()){
1003 		  Hashtable db_node_tmp = (Hashtable)db_displacements.get(time);
1004 		  for(Enumeration en = db_node_tmp.keys(); en.hasMoreElements();){
1005 			  String key = en.nextElement()+"";
1006 			  Point3d p1 = (Point3d)db_node.get(key);
1007 			  Point3d p2 = (Point3d)db_node_tmp.get(key);
1008 			  resultGroup.addChild(new PostProcessor_shp_oriented_text(key,new Point3f((float)(p1.x+p2.x*kd),(float)(p1.y+p2.y*kd),(float)(p1.z+p2.z*kd)), fontsize));
1009 		  }
1010 	  }
1011 
1012     //Show elements label
1013     if(cb_element.isSelected()){
1014       Hashtable db_node_tmp = (Hashtable)db_displacements.get(time);
1015       Hashtable db_stresses_tmp = (Hashtable)db_stresses.get(time);
1016       for(Enumeration en = db_stresses_tmp.keys(); en.hasMoreElements();){
1017         String key = en.nextElement()+"";
1018 
1019         int[] arr = (int[])db_element.get(key);
1020         float x=0,y=0,z=0;
1021         for(int i=0; i<arr.length; i++){
1022           Point3d p = (Point3d)db_node.get(arr[i]+"");
1023           Point3d pt = (Point3d)db_node_tmp.get(arr[i]+"");
1024           x+=p.x+pt.x*kd;
1025           y+=p.y+pt.y*kd;
1026           z+=p.z+pt.z*kd;
1027         }
1028         x/=arr.length;
1029         y/=arr.length;
1030         z/=arr.length;
1031         resultGroup.addChild(new PostProcessor_shp_oriented_text(key,new Point3f((float)x,(float)y,(float)z), fontsize));
1032       }
1033     }
1034 
1035     //DISPLACEMENTS (I)
1036     if(cb_result.getSelectedIndex()<4){
1037       Hashtable db_node_tmp = (Hashtable)db_displacements.get(time);
1038       Hashtable db_stresses_tmp = (Hashtable)db_stresses.get(time);
1039       for(Enumeration en = db_stresses_tmp.keys(); en.hasMoreElements();){
1040         String key = en.nextElement()+"";
1041 
1042         int[] arr = (int[])db_element.get(key);
1043         if(arr.length==2){
1044           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1045           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1046           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1047           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1048           double x1 = p11.x+p21.x*kd;
1049           double x2 = p12.x+p22.x*kd;
1050           double y1 = p11.y+p21.y*kd;
1051           double y2 = p12.y+p22.y*kd;
1052           double z1 = p11.z+p21.z*kd;
1053           double z2 = p12.z+p22.z*kd;
1054           vLines.addElement(new Point3d(x1,y1,z1));
1055       	  vLines.addElement(new Point3d(x2,y2,z2));
1056           if(cb_result.getSelectedIndex()==0){
1057         	if(this.cb_conturfill.isSelected()){
1058         		vLinesColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1059         		vLinesColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1060         	} else {
1061         		vLinesColor.addElement(Color.black);
1062         		vLinesColor.addElement(Color.black);
1063         	}
1064           }else if(cb_result.getSelectedIndex()==1){
1065           	if(this.cb_conturfill.isSelected()){
1066         		vLinesColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1067         		vLinesColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1068         	} else {
1069         		vLinesColor.addElement(Color.black);
1070         		vLinesColor.addElement(Color.black);
1071         	}
1072           }else if(cb_result.getSelectedIndex()==2){
1073         	if(this.cb_conturfill.isSelected()){
1074           		vLinesColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1075           		vLinesColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1076           	} else {
1077           		vLinesColor.addElement(Color.black);
1078           		vLinesColor.addElement(Color.black);
1079           	}
1080           }else if(cb_result.getSelectedIndex()==3){
1081         	if(this.cb_conturfill.isSelected()){
1082             	vLinesColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1083             	vLinesColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1084             } else {
1085             	vLinesColor.addElement(Color.black);
1086             	vLinesColor.addElement(Color.black);
1087             }
1088           }
1089         }else if(arr.length==3){
1090           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1091           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1092           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1093           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1094           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1095           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1096           double x1=p11.x+p21.x*kd;
1097           double x2=p12.x+p22.x*kd;
1098           double x3=p13.x+p23.x*kd;
1099           double y1=p11.y+p21.y*kd;
1100           double y2=p12.y+p22.y*kd;
1101           double y3=p13.y+p23.y*kd;
1102           double z1=p11.z+p21.z*kd;
1103           double z2=p12.z+p22.z*kd;
1104           double z3=p13.z+p23.z*kd;
1105           if(this.cb_mesh.isSelected()){
1106         	  vLines.addElement(new Point3d(x1,y1,z1));
1107         	  vLines.addElement(new Point3d(x2,y2,z2));
1108         	  vLines.addElement(new Point3d(x2,y2,z2));
1109         	  vLines.addElement(new Point3d(x3,y3,z3));
1110         	  vLines.addElement(new Point3d(x3,y3,z3));
1111         	  vLines.addElement(new Point3d(x1,y1,z1));
1112         	  for(int i=0; i<6; i++)vLinesColor.addElement(Color.black);
1113           }
1114           if(this.cb_conturfill.isSelected()){
1115         	  if(cb_result.getSelectedIndex()==0){
1116         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1117         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1118         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1119         		  vTriangleColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1120         		  vTriangleColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1121         		  vTriangleColor.addElement(getGradient(0,(float)Math.sqrt(p23.x*p23.x+p23.y*p23.y+p23.z*p23.z),(float)maxdi));
1122         	  }else if(cb_result.getSelectedIndex()==1){
1123         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1124         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1125         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1126         		  vTriangleColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1127         		  vTriangleColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1128         		  vTriangleColor.addElement(getGradient((float)mindx,(float)p23.x,(float)maxdx));
1129         	  }else if(cb_result.getSelectedIndex()==2){
1130         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1131         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1132         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1133         		  vTriangleColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1134         		  vTriangleColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1135         		  vTriangleColor.addElement(getGradient((float)mindy,(float)p23.y,(float)maxdy));
1136         	  }else if(cb_result.getSelectedIndex()==3){
1137         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1138         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1139         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1140         		  vTriangleColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1141         		  vTriangleColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1142         		  vTriangleColor.addElement(getGradient((float)mindz,(float)p23.z,(float)maxdz));
1143         	  }
1144           }
1145         }else if(arr.length==4){
1146           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1147           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1148           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1149           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
1150           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1151           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1152           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1153           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
1154           double x1=p11.x+p21.x*kd;
1155           double x2=p12.x+p22.x*kd;
1156           double x3=p13.x+p23.x*kd;
1157           double x4=p14.x+p24.x*kd;
1158           double y1=p11.y+p21.y*kd;
1159           double y2=p12.y+p22.y*kd;
1160           double y3=p13.y+p23.y*kd;
1161           double y4=p14.y+p24.y*kd;
1162           double z1=p11.z+p21.z*kd;
1163           double z2=p12.z+p22.z*kd;
1164           double z3=p13.z+p23.z*kd;
1165           double z4=p14.z+p24.z*kd;
1166           if(this.cb_mesh.isSelected()){
1167         	  vLines.addElement(new Point3d(x1,y1,z1));
1168         	  vLines.addElement(new Point3d(x2,y2,z2));
1169         	  vLines.addElement(new Point3d(x2,y2,z2));
1170         	  vLines.addElement(new Point3d(x3,y3,z3));
1171         	  vLines.addElement(new Point3d(x3,y3,z3));
1172         	  vLines.addElement(new Point3d(x4,y4,z4));
1173         	  vLines.addElement(new Point3d(x4,y4,z4));
1174         	  vLines.addElement(new Point3d(x1,y1,z1));
1175         	  for(int i=0; i<8; i++)vLinesColor.addElement(Color.black);
1176           }
1177           if(this.cb_conturfill.isSelected()){
1178         	  if(cb_result.getSelectedIndex()==0){
1179         		  vQuad.addElement(new Point3d(x1,y1,z1));
1180         		  vQuad.addElement(new Point3d(x2,y2,z2));
1181         		  vQuad.addElement(new Point3d(x3,y3,z3));
1182         		  vQuad.addElement(new Point3d(x4,y4,z4));
1183         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1184         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1185         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p23.x*p23.x+p23.y*p23.y+p23.z*p23.z),(float)maxdi));
1186         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p24.x*p24.x+p24.y*p24.y+p24.z*p24.z),(float)maxdi));
1187         	  }else if(cb_result.getSelectedIndex()==1){
1188         		  vQuad.addElement(new Point3d(x1,y1,z1));
1189         		  vQuad.addElement(new Point3d(x2,y2,z2));
1190         		  vQuad.addElement(new Point3d(x3,y3,z3));
1191         		  vQuad.addElement(new Point3d(x4,y4,z4));
1192         		  vQuadColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1193         		  vQuadColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1194         		  vQuadColor.addElement(getGradient((float)mindx,(float)p23.x,(float)maxdx));
1195         		  vQuadColor.addElement(getGradient((float)mindx,(float)p24.x,(float)maxdx));
1196         	  }else if(cb_result.getSelectedIndex()==2){
1197         		  vQuad.addElement(new Point3d(x1,y1,z1));
1198         		  vQuad.addElement(new Point3d(x2,y2,z2));
1199         		  vQuad.addElement(new Point3d(x3,y3,z3));
1200         		  vQuad.addElement(new Point3d(x4,y4,z4));
1201         		  vQuadColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1202         		  vQuadColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1203         		  vQuadColor.addElement(getGradient((float)mindy,(float)p23.y,(float)maxdy));
1204         		  vQuadColor.addElement(getGradient((float)mindy,(float)p24.y,(float)maxdy));
1205         	  }else if(cb_result.getSelectedIndex()==3){
1206         		  vQuad.addElement(new Point3d(x1,y1,z1));
1207         		  vQuad.addElement(new Point3d(x2,y2,z2));
1208         		  vQuad.addElement(new Point3d(x3,y3,z3));
1209         		  vQuad.addElement(new Point3d(x4,y4,z4));
1210         		  vQuadColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1211         		  vQuadColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1212         		  vQuadColor.addElement(getGradient((float)mindz,(float)p23.z,(float)maxdz));
1213         		  vQuadColor.addElement(getGradient((float)mindz,(float)p24.z,(float)maxdz));
1214         	  }
1215           }
1216         } else if(arr.length==8){
1217           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1218           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1219           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1220           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
1221           Point3d p15 = (Point3d)db_node.get(arr[4]+"");
1222           Point3d p16 = (Point3d)db_node.get(arr[5]+"");
1223           Point3d p17 = (Point3d)db_node.get(arr[6]+"");
1224           Point3d p18 = (Point3d)db_node.get(arr[7]+"");
1225           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1226           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1227           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1228           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
1229           Point3d p25 = (Point3d)db_node_tmp.get(arr[4]+"");
1230           Point3d p26 = (Point3d)db_node_tmp.get(arr[5]+"");
1231           Point3d p27 = (Point3d)db_node_tmp.get(arr[6]+"");
1232           Point3d p28 = (Point3d)db_node_tmp.get(arr[7]+"");
1233           double x1=p11.x+p21.x*kd;
1234           double x2=p12.x+p22.x*kd;
1235           double x3=p13.x+p23.x*kd;
1236           double x4=p14.x+p24.x*kd;
1237           double x5=p15.x+p25.x*kd;
1238           double x6=p16.x+p26.x*kd;
1239           double x7=p17.x+p27.x*kd;
1240           double x8=p18.x+p28.x*kd;
1241           double y1=p11.y+p21.y*kd;
1242           double y2=p12.y+p22.y*kd;
1243           double y3=p13.y+p23.y*kd;
1244           double y4=p14.y+p24.y*kd;
1245           double y5=p15.y+p25.y*kd;
1246           double y6=p16.y+p26.y*kd;
1247           double y7=p17.y+p27.y*kd;
1248           double y8=p18.y+p28.y*kd;
1249           double z1=p11.z+p21.z*kd;
1250           double z2=p12.z+p22.z*kd;
1251           double z3=p13.z+p23.z*kd;
1252           double z4=p14.z+p24.z*kd;
1253           double z5=p15.z+p25.z*kd;
1254           double z6=p16.z+p26.z*kd;
1255           double z7=p17.z+p27.z*kd;
1256           double z8=p18.z+p28.z*kd;
1257           if(this.cb_mesh.isSelected()){
1258         	  vLines.addElement(new Point3d(x1,y1,z1));
1259         	  vLines.addElement(new Point3d(x2,y2,z2));
1260         	  vLines.addElement(new Point3d(x2,y2,z2));
1261         	  vLines.addElement(new Point3d(x3,y3,z3));
1262         	  vLines.addElement(new Point3d(x3,y3,z3));
1263         	  vLines.addElement(new Point3d(x4,y4,z4));
1264         	  vLines.addElement(new Point3d(x4,y4,z4));
1265         	  vLines.addElement(new Point3d(x1,y1,z1));
1266         	  vLines.addElement(new Point3d(x5,y5,z5));
1267         	  vLines.addElement(new Point3d(x6,y6,z6));
1268         	  vLines.addElement(new Point3d(x6,y6,z6));
1269         	  vLines.addElement(new Point3d(x7,y7,z7));
1270         	  vLines.addElement(new Point3d(x7,y7,z7));
1271         	  vLines.addElement(new Point3d(x8,y8,z8));
1272         	  vLines.addElement(new Point3d(x8,y8,z8));
1273         	  vLines.addElement(new Point3d(x5,y5,z5));
1274         	  vLines.addElement(new Point3d(x2,y2,z2));
1275         	  vLines.addElement(new Point3d(x6,y6,z6));
1276         	  vLines.addElement(new Point3d(x5,y5,z5));
1277         	  vLines.addElement(new Point3d(x1,y1,z1));
1278         	  vLines.addElement(new Point3d(x3,y3,z3));
1279         	  vLines.addElement(new Point3d(x7,y7,z7));
1280         	  vLines.addElement(new Point3d(x8,y8,z8));
1281         	  vLines.addElement(new Point3d(x4,y4,z4));
1282         	  for(int i=0; i<24; i++)vLinesColor.addElement(Color.black);
1283           }
1284           if(this.cb_conturfill.isSelected()){
1285         	  if(cb_result.getSelectedIndex()==0){
1286         		  vQuad.addElement(new Point3d(x1,y1,z1));
1287         		  vQuad.addElement(new Point3d(x2,y2,z2));
1288         		  vQuad.addElement(new Point3d(x3,y3,z3));
1289         		  vQuad.addElement(new Point3d(x4,y4,z4));
1290 
1291         		  vQuad.addElement(new Point3d(x5,y5,z5));
1292         		  vQuad.addElement(new Point3d(x6,y6,z6));
1293         		  vQuad.addElement(new Point3d(x7,y7,z7));
1294         		  vQuad.addElement(new Point3d(x8,y8,z8));
1295 
1296         		  vQuad.addElement(new Point3d(x1,y1,z1));
1297         		  vQuad.addElement(new Point3d(x2,y2,z2));
1298         		  vQuad.addElement(new Point3d(x6,y6,z6));
1299         		  vQuad.addElement(new Point3d(x5,y5,z5));
1300 
1301         		  vQuad.addElement(new Point3d(x4,y4,z4));
1302         		  vQuad.addElement(new Point3d(x3,y3,z3));
1303         		  vQuad.addElement(new Point3d(x7,y7,z7));
1304         		  vQuad.addElement(new Point3d(x8,y8,z8));
1305 
1306         		  vQuad.addElement(new Point3d(x2,y2,z2));
1307         		  vQuad.addElement(new Point3d(x3,y3,z3));
1308         		  vQuad.addElement(new Point3d(x7,y7,z7));
1309         		  vQuad.addElement(new Point3d(x6,y6,z6));
1310 
1311         		  vQuad.addElement(new Point3d(x1,y1,z1));
1312         		  vQuad.addElement(new Point3d(x4,y4,z4));
1313         		  vQuad.addElement(new Point3d(x8,y8,z8));
1314         		  vQuad.addElement(new Point3d(x5,y5,z5));
1315         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1316         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1317         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p23.x*p23.x+p23.y*p23.y+p23.z*p23.z),(float)maxdi));
1318         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p24.x*p24.x+p24.y*p24.y+p24.z*p24.z),(float)maxdi));
1319 
1320         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p25.x*p25.x+p25.y*p25.y+p25.z*p25.z),(float)maxdi));
1321         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p26.x*p26.x+p26.y*p26.y+p26.z*p26.z),(float)maxdi));
1322         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p27.x*p27.x+p27.y*p27.y+p27.z*p27.z),(float)maxdi));
1323         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p28.x*p28.x+p28.y*p28.y+p28.z*p28.z),(float)maxdi));
1324 
1325         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1326         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1327         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p26.x*p26.x+p26.y*p26.y+p26.z*p26.z),(float)maxdi));
1328         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p25.x*p25.x+p25.y*p25.y+p25.z*p25.z),(float)maxdi));
1329 
1330         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p24.x*p24.x+p24.y*p24.y+p24.z*p24.z),(float)maxdi));
1331         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p23.x*p23.x+p23.y*p23.y+p23.z*p23.z),(float)maxdi));
1332         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p27.x*p27.x+p27.y*p27.y+p27.z*p27.z),(float)maxdi));
1333         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p28.x*p28.x+p28.y*p28.y+p28.z*p28.z),(float)maxdi));
1334 
1335         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p22.x*p22.x+p22.y*p22.y+p22.z*p22.z),(float)maxdi));
1336         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p23.x*p23.x+p23.y*p23.y+p23.z*p23.z),(float)maxdi));
1337         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p27.x*p27.x+p27.y*p27.y+p27.z*p27.z),(float)maxdi));
1338         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p26.x*p26.x+p26.y*p26.y+p26.z*p26.z),(float)maxdi));
1339 
1340         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p21.x*p21.x+p21.y*p21.y+p21.z*p21.z),(float)maxdi));
1341         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p24.x*p24.x+p24.y*p24.y+p24.z*p24.z),(float)maxdi));
1342         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p28.x*p28.x+p28.y*p28.y+p28.z*p28.z),(float)maxdi));
1343         		  vQuadColor.addElement(getGradient(0,(float)Math.sqrt(p25.x*p25.x+p25.y*p25.y+p25.z*p25.z),(float)maxdi));
1344         	  }else if(cb_result.getSelectedIndex()==1){
1345         		  vQuad.addElement(new Point3d(x1,y1,z1));
1346         		  vQuad.addElement(new Point3d(x2,y2,z2));
1347         		  vQuad.addElement(new Point3d(x3,y3,z3));
1348         		  vQuad.addElement(new Point3d(x4,y4,z4));
1349 
1350         		  vQuad.addElement(new Point3d(x5,y5,z5));
1351         		  vQuad.addElement(new Point3d(x6,y6,z6));
1352         		  vQuad.addElement(new Point3d(x7,y7,z7));
1353         		  vQuad.addElement(new Point3d(x8,y8,z8));
1354 
1355         		  vQuad.addElement(new Point3d(x1,y1,z1));
1356         		  vQuad.addElement(new Point3d(x2,y2,z2));
1357         		  vQuad.addElement(new Point3d(x6,y6,z6));
1358         		  vQuad.addElement(new Point3d(x5,y5,z5));
1359 
1360         		  vQuad.addElement(new Point3d(x4,y4,z4));
1361         		  vQuad.addElement(new Point3d(x3,y3,z3));
1362         		  vQuad.addElement(new Point3d(x7,y7,z7));
1363         		  vQuad.addElement(new Point3d(x8,y8,z8));
1364 
1365         		  vQuad.addElement(new Point3d(x2,y2,z2));
1366         		  vQuad.addElement(new Point3d(x3,y3,z3));
1367         		  vQuad.addElement(new Point3d(x7,y7,z7));
1368         		  vQuad.addElement(new Point3d(x6,y6,z6));
1369 
1370         		  vQuad.addElement(new Point3d(x1,y1,z1));
1371         		  vQuad.addElement(new Point3d(x4,y4,z4));
1372         		  vQuad.addElement(new Point3d(x8,y8,z8));
1373         		  vQuad.addElement(new Point3d(x5,y5,z5));
1374         		  vQuadColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1375         		  vQuadColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1376         		  vQuadColor.addElement(getGradient((float)mindx,(float)p23.x,(float)maxdx));
1377         		  vQuadColor.addElement(getGradient((float)mindx,(float)p24.x,(float)maxdx));
1378 
1379         		  vQuadColor.addElement(getGradient((float)mindx,(float)p25.x,(float)maxdx));
1380         		  vQuadColor.addElement(getGradient((float)mindx,(float)p26.x,(float)maxdx));
1381         		  vQuadColor.addElement(getGradient((float)mindx,(float)p27.x,(float)maxdx));
1382         		  vQuadColor.addElement(getGradient((float)mindx,(float)p28.x,(float)maxdx));
1383 
1384         		  vQuadColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1385         		  vQuadColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1386         		  vQuadColor.addElement(getGradient((float)mindx,(float)p26.x,(float)maxdx));
1387         		  vQuadColor.addElement(getGradient((float)mindx,(float)p25.x,(float)maxdx));
1388 
1389         		  vQuadColor.addElement(getGradient((float)mindx,(float)p24.x,(float)maxdx));
1390         		  vQuadColor.addElement(getGradient((float)mindx,(float)p23.x,(float)maxdx));
1391         		  vQuadColor.addElement(getGradient((float)mindx,(float)p27.x,(float)maxdx));
1392         		  vQuadColor.addElement(getGradient((float)mindx,(float)p28.x,(float)maxdx));
1393 
1394         		  vQuadColor.addElement(getGradient((float)mindx,(float)p22.x,(float)maxdx));
1395         		  vQuadColor.addElement(getGradient((float)mindx,(float)p23.x,(float)maxdx));
1396         		  vQuadColor.addElement(getGradient((float)mindx,(float)p27.x,(float)maxdx));
1397         		  vQuadColor.addElement(getGradient((float)mindx,(float)p26.x,(float)maxdx));
1398 
1399         		  vQuadColor.addElement(getGradient((float)mindx,(float)p21.x,(float)maxdx));
1400         		  vQuadColor.addElement(getGradient((float)mindx,(float)p24.x,(float)maxdx));
1401         		  vQuadColor.addElement(getGradient((float)mindx,(float)p28.x,(float)maxdx));
1402         		  vQuadColor.addElement(getGradient((float)mindx,(float)p25.x,(float)maxdx));
1403         	  }else if(cb_result.getSelectedIndex()==2){
1404         		  vQuad.addElement(new Point3d(x1,y1,z1));
1405         		  vQuad.addElement(new Point3d(x2,y2,z2));
1406         		  vQuad.addElement(new Point3d(x3,y3,z3));
1407         		  vQuad.addElement(new Point3d(x4,y4,z4));
1408 
1409         		  vQuad.addElement(new Point3d(x5,y5,z5));
1410         		  vQuad.addElement(new Point3d(x6,y6,z6));
1411         		  vQuad.addElement(new Point3d(x7,y7,z7));
1412         		  vQuad.addElement(new Point3d(x8,y8,z8));
1413 
1414         		  vQuad.addElement(new Point3d(x1,y1,z1));
1415         		  vQuad.addElement(new Point3d(x2,y2,z2));
1416         		  vQuad.addElement(new Point3d(x6,y6,z6));
1417         		  vQuad.addElement(new Point3d(x5,y5,z5));
1418 
1419         		  vQuad.addElement(new Point3d(x4,y4,z4));
1420         		  vQuad.addElement(new Point3d(x3,y3,z3));
1421         		  vQuad.addElement(new Point3d(x7,y7,z7));
1422         		  vQuad.addElement(new Point3d(x8,y8,z8));
1423 
1424         		  vQuad.addElement(new Point3d(x2,y2,z2));
1425         		  vQuad.addElement(new Point3d(x3,y3,z3));
1426         		  vQuad.addElement(new Point3d(x7,y7,z7));
1427         		  vQuad.addElement(new Point3d(x6,y6,z6));
1428 
1429         		  vQuad.addElement(new Point3d(x1,y1,z1));
1430         		  vQuad.addElement(new Point3d(x4,y4,z4));
1431         		  vQuad.addElement(new Point3d(x8,y8,z8));
1432         		  vQuad.addElement(new Point3d(x5,y5,z5));
1433         		  vQuadColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1434         		  vQuadColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1435         		  vQuadColor.addElement(getGradient((float)mindy,(float)p23.y,(float)maxdy));
1436         		  vQuadColor.addElement(getGradient((float)mindy,(float)p24.y,(float)maxdy));
1437 
1438         		  vQuadColor.addElement(getGradient((float)mindy,(float)p25.y,(float)maxdy));
1439         		  vQuadColor.addElement(getGradient((float)mindy,(float)p26.y,(float)maxdy));
1440         		  vQuadColor.addElement(getGradient((float)mindy,(float)p27.y,(float)maxdy));
1441         		  vQuadColor.addElement(getGradient((float)mindy,(float)p28.y,(float)maxdy));
1442 
1443         		  vQuadColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1444         		  vQuadColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1445         		  vQuadColor.addElement(getGradient((float)mindy,(float)p26.y,(float)maxdy));
1446         		  vQuadColor.addElement(getGradient((float)mindy,(float)p25.y,(float)maxdy));
1447 
1448         		  vQuadColor.addElement(getGradient((float)mindy,(float)p24.y,(float)maxdy));
1449         		  vQuadColor.addElement(getGradient((float)mindy,(float)p23.y,(float)maxdy));
1450         		  vQuadColor.addElement(getGradient((float)mindy,(float)p27.y,(float)maxdy));
1451         		  vQuadColor.addElement(getGradient((float)mindy,(float)p28.y,(float)maxdy));
1452 
1453         		  vQuadColor.addElement(getGradient((float)mindy,(float)p22.y,(float)maxdy));
1454         		  vQuadColor.addElement(getGradient((float)mindy,(float)p23.y,(float)maxdy));
1455         		  vQuadColor.addElement(getGradient((float)mindy,(float)p27.y,(float)maxdy));
1456         		  vQuadColor.addElement(getGradient((float)mindy,(float)p26.y,(float)maxdy));
1457 
1458         		  vQuadColor.addElement(getGradient((float)mindy,(float)p21.y,(float)maxdy));
1459         		  vQuadColor.addElement(getGradient((float)mindy,(float)p24.y,(float)maxdy));
1460         		  vQuadColor.addElement(getGradient((float)mindy,(float)p28.y,(float)maxdy));
1461         		  vQuadColor.addElement(getGradient((float)mindy,(float)p25.y,(float)maxdy));
1462         	  }else if(cb_result.getSelectedIndex()==3){
1463         		  vQuad.addElement(new Point3d(x1,y1,z1));
1464         		  vQuad.addElement(new Point3d(x2,y2,z2));
1465         		  vQuad.addElement(new Point3d(x3,y3,z3));
1466         		  vQuad.addElement(new Point3d(x4,y4,z4));
1467 
1468         		  vQuad.addElement(new Point3d(x5,y5,z5));
1469         		  vQuad.addElement(new Point3d(x6,y6,z6));
1470         		  vQuad.addElement(new Point3d(x7,y7,z7));
1471         		  vQuad.addElement(new Point3d(x8,y8,z8));
1472 
1473         		  vQuad.addElement(new Point3d(x1,y1,z1));
1474         		  vQuad.addElement(new Point3d(x2,y2,z2));
1475         		  vQuad.addElement(new Point3d(x6,y6,z6));
1476         		  vQuad.addElement(new Point3d(x5,y5,z5));
1477 
1478         		  vQuad.addElement(new Point3d(x4,y4,z4));
1479         		  vQuad.addElement(new Point3d(x3,y3,z3));
1480         		  vQuad.addElement(new Point3d(x7,y7,z7));
1481         		  vQuad.addElement(new Point3d(x8,y8,z8));
1482 
1483         		  vQuad.addElement(new Point3d(x2,y2,z2));
1484         		  vQuad.addElement(new Point3d(x3,y3,z3));
1485         		  vQuad.addElement(new Point3d(x7,y7,z7));
1486         		  vQuad.addElement(new Point3d(x6,y6,z6));
1487 
1488         		  vQuad.addElement(new Point3d(x1,y1,z1));
1489         		  vQuad.addElement(new Point3d(x4,y4,z4));
1490         		  vQuad.addElement(new Point3d(x8,y8,z8));
1491         		  vQuad.addElement(new Point3d(x5,y5,z5));
1492         		  vQuadColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1493         		  vQuadColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1494         		  vQuadColor.addElement(getGradient((float)mindz,(float)p23.z,(float)maxdz));
1495         		  vQuadColor.addElement(getGradient((float)mindz,(float)p24.z,(float)maxdz));
1496 
1497         		  vQuadColor.addElement(getGradient((float)mindz,(float)p25.z,(float)maxdz));
1498         		  vQuadColor.addElement(getGradient((float)mindz,(float)p26.z,(float)maxdz));
1499         		  vQuadColor.addElement(getGradient((float)mindz,(float)p27.z,(float)maxdz));
1500         		  vQuadColor.addElement(getGradient((float)mindz,(float)p28.z,(float)maxdz));
1501 
1502         		  vQuadColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1503         		  vQuadColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1504         		  vQuadColor.addElement(getGradient((float)mindz,(float)p26.z,(float)maxdz));
1505         		  vQuadColor.addElement(getGradient((float)mindz,(float)p25.z,(float)maxdz));
1506 
1507         		  vQuadColor.addElement(getGradient((float)mindz,(float)p24.z,(float)maxdz));
1508         		  vQuadColor.addElement(getGradient((float)mindz,(float)p23.z,(float)maxdz));
1509         		  vQuadColor.addElement(getGradient((float)mindz,(float)p27.z,(float)maxdz));
1510         		  vQuadColor.addElement(getGradient((float)mindz,(float)p28.z,(float)maxdz));
1511 
1512         		  vQuadColor.addElement(getGradient((float)mindz,(float)p22.z,(float)maxdz));
1513         		  vQuadColor.addElement(getGradient((float)mindz,(float)p23.z,(float)maxdz));
1514         		  vQuadColor.addElement(getGradient((float)mindz,(float)p27.z,(float)maxdz));
1515         		  vQuadColor.addElement(getGradient((float)mindz,(float)p26.z,(float)maxdz));
1516 
1517         		  vQuadColor.addElement(getGradient((float)mindz,(float)p21.z,(float)maxdz));
1518         		  vQuadColor.addElement(getGradient((float)mindz,(float)p24.z,(float)maxdz));
1519         		  vQuadColor.addElement(getGradient((float)mindz,(float)p28.z,(float)maxdz));
1520         		  vQuadColor.addElement(getGradient((float)mindz,(float)p25.z,(float)maxdz));
1521         	  }
1522           }
1523         }
1524       }
1525     //STRAINS
1526     }else if(cb_result.getSelectedIndex()<11){
1527       Hashtable db_node_tmp = (Hashtable)db_displacements.get(time);
1528       Hashtable db_strains_tmp = (Hashtable)db_strains.get(time);
1529       for(Enumeration en = db_strains_tmp.keys(); en.hasMoreElements();){
1530         String key = en.nextElement()+"";
1531 
1532         int[] arr = (int[])db_element.get(key);
1533         if(arr.length==2){
1534           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1535           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1536           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1537           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1538           double x1=p11.x+p21.x*kd;
1539           double x2=p12.x+p22.x*kd;
1540           double y1=p11.y+p21.y*kd;
1541           double y2=p12.y+p22.y*kd;
1542           double z1=p11.z+p21.z*kd;
1543           double z2=p12.z+p22.z*kd;
1544           float[] ee = (float[])db_strains_tmp.get(key);
1545           vLines.addElement(new Point3d(x1,y1,z1));
1546       	  vLines.addElement(new Point3d(x2,y2,z2));
1547 
1548       	  if(cb_result.getSelectedIndex()==4 || cb_result.getSelectedIndex()==5){
1549       		  if(this.cb_conturfill.isSelected()){
1550       			  vLinesColor.addElement(getGradient((float)minei,ee[0],(float)maxei));
1551       			  vLinesColor.addElement(getGradient((float)minei,ee[0],(float)maxei));
1552       		  } else {
1553       			  vLinesColor.addElement(Color.black);
1554       			  vLinesColor.addElement(Color.black);
1555       		  }
1556           }else {
1557         	  vLinesColor.addElement(Color.black);
1558   			  vLinesColor.addElement(Color.black);
1559           }
1560         }else if(arr.length==3){
1561           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1562           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1563           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1564           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1565           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1566           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1567           double x1=p11.x+p21.x*kd;
1568           double x2=p12.x+p22.x*kd;
1569           double x3=p13.x+p23.x*kd;
1570           double y1=p11.y+p21.y*kd;
1571           double y2=p12.y+p22.y*kd;
1572           double y3=p13.y+p23.y*kd;
1573           double z1=p11.z+p21.z*kd;
1574           double z2=p12.z+p22.z*kd;
1575           double z3=p13.z+p23.z*kd;
1576           float[] ee = (float[])db_strains_tmp.get(key);
1577           if(this.cb_mesh.isSelected()){
1578         	  vLines.addElement(new Point3d(x1,y1,z1));
1579         	  vLines.addElement(new Point3d(x2,y2,z2));
1580         	  vLines.addElement(new Point3d(x2,y2,z2));
1581         	  vLines.addElement(new Point3d(x3,y3,z3));
1582         	  vLines.addElement(new Point3d(x3,y3,z3));
1583         	  vLines.addElement(new Point3d(x1,y1,z1));
1584         	  for(int i=0; i<6; i++)vLinesColor.addElement(Color.black);
1585           }
1586           if(this.cb_conturfill.isSelected()){
1587         	  if(cb_result.getSelectedIndex()==4){
1588         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1589         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1590         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1591         		  float ei = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+1.5*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
1592         		  Color fill = getGradient((float)minei,ei,(float)maxei);
1593         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1594         	  }else if(cb_result.getSelectedIndex()==5){
1595         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1596         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1597         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1598         		  Color fill = getGradient((float)minex,ee[0],(float)maxex);
1599         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1600         	  }else if(cb_result.getSelectedIndex()==6){
1601         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1602         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1603         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1604         		  Color fill = getGradient((float)miney,ee[1],(float)maxey);
1605         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1606         	  }else if(cb_result.getSelectedIndex()==7){
1607         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1608         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1609         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1610         		  Color fill = getGradient((float)minez,ee[2],(float)maxez);
1611         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1612         	  }else if(cb_result.getSelectedIndex()==8){
1613         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1614         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1615         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1616         		  Color fill = getGradient((float)minexy,ee[3],(float)maxexy);
1617         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1618         	  }else if(cb_result.getSelectedIndex()==9){
1619         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1620         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1621         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1622         		  Color fill = getGradient((float)mineyz,ee[4],(float)maxeyz);
1623         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1624         	  }else if(cb_result.getSelectedIndex()==10){
1625         		  vTriangle.addElement(new Point3d(x1,y1,z1));
1626         		  vTriangle.addElement(new Point3d(x2,y2,z2));
1627         		  vTriangle.addElement(new Point3d(x3,y3,z3));
1628         		  Color fill = getGradient((float)minexz,ee[5],(float)maxexz);
1629         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
1630         	  }
1631           }
1632         }else if(arr.length==4){
1633           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1634           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1635           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1636           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
1637           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1638           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1639           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1640           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
1641           double x1=p11.x+p21.x*kd;
1642           double x2=p12.x+p22.x*kd;
1643           double x3=p13.x+p23.x*kd;
1644           double x4=p14.x+p24.x*kd;
1645           double y1=p11.y+p21.y*kd;
1646           double y2=p12.y+p22.y*kd;
1647           double y3=p13.y+p23.y*kd;
1648           double y4=p14.y+p24.y*kd;
1649           double z1=p11.z+p21.z*kd;
1650           double z2=p12.z+p22.z*kd;
1651           double z3=p13.z+p23.z*kd;
1652           double z4=p14.z+p24.z*kd;
1653           float[] ee = (float[])db_strains_tmp.get(key);
1654           if(this.cb_mesh.isSelected()){
1655         	  vLines.addElement(new Point3d(x1,y1,z1));
1656         	  vLines.addElement(new Point3d(x2,y2,z2));
1657         	  vLines.addElement(new Point3d(x2,y2,z2));
1658         	  vLines.addElement(new Point3d(x3,y3,z3));
1659         	  vLines.addElement(new Point3d(x3,y3,z3));
1660         	  vLines.addElement(new Point3d(x4,y4,z4));
1661         	  vLines.addElement(new Point3d(x4,y4,z4));
1662         	  vLines.addElement(new Point3d(x1,y1,z1));
1663         	  for(int i=0; i<8; i++)vLinesColor.addElement(Color.black);
1664           }
1665           if(this.cb_conturfill.isSelected()){
1666         	  if(cb_result.getSelectedIndex()==4){
1667         		  vQuad.addElement(new Point3d(x1,y1,z1));
1668         		  vQuad.addElement(new Point3d(x2,y2,z2));
1669         		  vQuad.addElement(new Point3d(x3,y3,z3));
1670         		  vQuad.addElement(new Point3d(x4,y4,z4));
1671         		  float ei = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+1.5*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
1672         		  Color fill = getGradient((float)minei,ei,(float)maxei);
1673         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1674         	  }else if(cb_result.getSelectedIndex()==5){
1675         		  vQuad.addElement(new Point3d(x1,y1,z1));
1676         		  vQuad.addElement(new Point3d(x2,y2,z2));
1677         		  vQuad.addElement(new Point3d(x3,y3,z3));
1678         		  vQuad.addElement(new Point3d(x4,y4,z4));
1679         		  Color fill = getGradient((float)minex,ee[0],(float)maxex);
1680         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1681         	  }else if(cb_result.getSelectedIndex()==6){
1682         		  vQuad.addElement(new Point3d(x1,y1,z1));
1683         		  vQuad.addElement(new Point3d(x2,y2,z2));
1684         		  vQuad.addElement(new Point3d(x3,y3,z3));
1685         		  vQuad.addElement(new Point3d(x4,y4,z4));
1686         		  Color fill = getGradient((float)miney,ee[1],(float)maxey);
1687         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1688         	  }else if(cb_result.getSelectedIndex()==7){
1689         		  vQuad.addElement(new Point3d(x1,y1,z1));
1690         		  vQuad.addElement(new Point3d(x2,y2,z2));
1691         		  vQuad.addElement(new Point3d(x3,y3,z3));
1692         		  vQuad.addElement(new Point3d(x4,y4,z4));
1693         		  Color fill = getGradient((float)minez,ee[2],(float)maxez);
1694         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1695         	  }else if(cb_result.getSelectedIndex()==8){
1696         		  vQuad.addElement(new Point3d(x1,y1,z1));
1697         		  vQuad.addElement(new Point3d(x2,y2,z2));
1698         		  vQuad.addElement(new Point3d(x3,y3,z3));
1699         		  vQuad.addElement(new Point3d(x4,y4,z4));
1700         		  Color fill = getGradient((float)minexy,ee[3],(float)maxexy);
1701         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1702         	  }else if(cb_result.getSelectedIndex()==9){
1703         		  vQuad.addElement(new Point3d(x1,y1,z1));
1704         		  vQuad.addElement(new Point3d(x2,y2,z2));
1705         		  vQuad.addElement(new Point3d(x3,y3,z3));
1706         		  vQuad.addElement(new Point3d(x4,y4,z4));
1707         		  Color fill = getGradient((float)mineyz,ee[4],(float)maxeyz);
1708         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1709         	  }else if(cb_result.getSelectedIndex()==10){
1710         		  vQuad.addElement(new Point3d(x1,y1,z1));
1711         		  vQuad.addElement(new Point3d(x2,y2,z2));
1712         		  vQuad.addElement(new Point3d(x3,y3,z3));
1713         		  vQuad.addElement(new Point3d(x4,y4,z4));
1714         		  Color fill = getGradient((float)minexz,ee[5],(float)maxexz);
1715         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
1716         	  }
1717           }
1718         }else if(arr.length==8){
1719           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
1720           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
1721           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
1722           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
1723           Point3d p15 = (Point3d)db_node.get(arr[4]+"");
1724           Point3d p16 = (Point3d)db_node.get(arr[5]+"");
1725           Point3d p17 = (Point3d)db_node.get(arr[6]+"");
1726           Point3d p18 = (Point3d)db_node.get(arr[7]+"");
1727           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
1728           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
1729           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
1730           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
1731           Point3d p25 = (Point3d)db_node_tmp.get(arr[4]+"");
1732           Point3d p26 = (Point3d)db_node_tmp.get(arr[5]+"");
1733           Point3d p27 = (Point3d)db_node_tmp.get(arr[6]+"");
1734           Point3d p28 = (Point3d)db_node_tmp.get(arr[7]+"");
1735           double x1=p11.x+p21.x*kd;
1736           double x2=p12.x+p22.x*kd;
1737           double x3=p13.x+p23.x*kd;
1738           double x4=p14.x+p24.x*kd;
1739           double x5=p15.x+p25.x*kd;
1740           double x6=p16.x+p26.x*kd;
1741           double x7=p17.x+p27.x*kd;
1742           double x8=p18.x+p28.x*kd;
1743           double y1=p11.y+p21.y*kd;
1744           double y2=p12.y+p22.y*kd;
1745           double y3=p13.y+p23.y*kd;
1746           double y4=p14.y+p24.y*kd;
1747           double y5=p15.y+p25.y*kd;
1748           double y6=p16.y+p26.y*kd;
1749           double y7=p17.y+p27.y*kd;
1750           double y8=p18.y+p28.y*kd;
1751           double z1=p11.z+p21.z*kd;
1752           double z2=p12.z+p22.z*kd;
1753           double z3=p13.z+p23.z*kd;
1754           double z4=p14.z+p24.z*kd;
1755           double z5=p15.z+p25.z*kd;
1756           double z6=p16.z+p26.z*kd;
1757           double z7=p17.z+p27.z*kd;
1758           double z8=p18.z+p28.z*kd;
1759           float[] ee = (float[])db_strains_tmp.get(key);
1760           if(this.cb_mesh.isSelected()){
1761         	  vLines.addElement(new Point3d(x1,y1,z1));
1762         	  vLines.addElement(new Point3d(x2,y2,z2));
1763         	  vLines.addElement(new Point3d(x2,y2,z2));
1764         	  vLines.addElement(new Point3d(x3,y3,z3));
1765         	  vLines.addElement(new Point3d(x3,y3,z3));
1766         	  vLines.addElement(new Point3d(x4,y4,z4));
1767         	  vLines.addElement(new Point3d(x4,y4,z4));
1768         	  vLines.addElement(new Point3d(x1,y1,z1));
1769         	  vLines.addElement(new Point3d(x5,y5,z5));
1770         	  vLines.addElement(new Point3d(x6,y6,z6));
1771         	  vLines.addElement(new Point3d(x6,y6,z6));
1772         	  vLines.addElement(new Point3d(x7,y7,z7));
1773         	  vLines.addElement(new Point3d(x7,y7,z7));
1774         	  vLines.addElement(new Point3d(x8,y8,z8));
1775         	  vLines.addElement(new Point3d(x8,y8,z8));
1776         	  vLines.addElement(new Point3d(x5,y5,z5));
1777         	  vLines.addElement(new Point3d(x2,y2,z2));
1778         	  vLines.addElement(new Point3d(x6,y6,z6));
1779         	  vLines.addElement(new Point3d(x5,y5,z5));
1780         	  vLines.addElement(new Point3d(x1,y1,z1));
1781         	  vLines.addElement(new Point3d(x3,y3,z3));
1782         	  vLines.addElement(new Point3d(x7,y7,z7));
1783         	  vLines.addElement(new Point3d(x8,y8,z8));
1784         	  vLines.addElement(new Point3d(x4,y4,z4));
1785         	  for(int i=0; i<24; i++)vLinesColor.addElement(Color.black);
1786           }
1787           if(this.cb_conturfill.isSelected()){
1788         	  if(cb_result.getSelectedIndex()==4){
1789         		  if(ee.length==6){
1790         			  vQuad.addElement(new Point3d(x1,y1,z1));
1791         			  vQuad.addElement(new Point3d(x2,y2,z2));
1792             		  vQuad.addElement(new Point3d(x3,y3,z3));
1793             		  vQuad.addElement(new Point3d(x4,y4,z4));
1794 
1795             		  vQuad.addElement(new Point3d(x5,y5,z5));
1796             		  vQuad.addElement(new Point3d(x6,y6,z6));
1797             		  vQuad.addElement(new Point3d(x7,y7,z7));
1798             		  vQuad.addElement(new Point3d(x8,y8,z8));
1799 
1800             		  vQuad.addElement(new Point3d(x1,y1,z1));
1801             		  vQuad.addElement(new Point3d(x2,y2,z2));
1802             		  vQuad.addElement(new Point3d(x6,y6,z6));
1803             		  vQuad.addElement(new Point3d(x5,y5,z5));
1804 
1805             		  vQuad.addElement(new Point3d(x4,y4,z4));
1806             		  vQuad.addElement(new Point3d(x3,y3,z3));
1807             		  vQuad.addElement(new Point3d(x7,y7,z7));
1808             		  vQuad.addElement(new Point3d(x8,y8,z8));
1809 
1810             		  vQuad.addElement(new Point3d(x2,y2,z2));
1811             		  vQuad.addElement(new Point3d(x3,y3,z3));
1812             		  vQuad.addElement(new Point3d(x7,y7,z7));
1813             		  vQuad.addElement(new Point3d(x6,y6,z6));
1814 
1815             		  vQuad.addElement(new Point3d(x1,y1,z1));
1816             		  vQuad.addElement(new Point3d(x4,y4,z4));
1817             		  vQuad.addElement(new Point3d(x8,y8,z8));
1818             		  vQuad.addElement(new Point3d(x5,y5,z5));
1819             		  float ei = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+1.5*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
1820             		  Color fill = getGradient(0,ei,(float)maxei);
1821             		  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
1822         		  }else{
1823         			  float ei1 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+1.5*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
1824         			  float ei2 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[6]-ee[7],2)+Math.pow(ee[7]-ee[8],2)+Math.pow(ee[8]-ee[6],2)+1.5*(ee[9]*ee[9]+ee[10]*ee[10]+ee[11]*ee[11])));
1825         			  float ei3 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[12]-ee[13],2)+Math.pow(ee[13]-ee[14],2)+Math.pow(ee[14]-ee[12],2)+1.5*(ee[15]*ee[15]+ee[16]*ee[16]+ee[17]*ee[17])));
1826         			  float ei4 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[18]-ee[19],2)+Math.pow(ee[19]-ee[20],2)+Math.pow(ee[20]-ee[18],2)+1.5*(ee[21]*ee[21]+ee[22]*ee[22]+ee[23]*ee[23])));
1827         			  float ei5 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[24]-ee[25],2)+Math.pow(ee[25]-ee[26],2)+Math.pow(ee[26]-ee[24],2)+1.5*(ee[27]*ee[27]+ee[28]*ee[28]+ee[29]*ee[29])));
1828         			  float ei6 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[30]-ee[31],2)+Math.pow(ee[31]-ee[32],2)+Math.pow(ee[32]-ee[30],2)+1.5*(ee[33]*ee[33]+ee[34]*ee[34]+ee[35]*ee[35])));
1829         			  float ei7 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[36]-ee[37],2)+Math.pow(ee[37]-ee[38],2)+Math.pow(ee[38]-ee[36],2)+1.5*(ee[39]*ee[39]+ee[40]*ee[40]+ee[41]*ee[41])));
1830         			  float ei8 = (float)(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[42]-ee[43],2)+Math.pow(ee[43]-ee[44],2)+Math.pow(ee[44]-ee[42],2)+1.5*(ee[45]*ee[45]+ee[46]*ee[46]+ee[47]*ee[47])));
1831         			  Color fill1 = getGradient(0,ei1,(float)maxei);
1832         			  Color fill2 = getGradient(0,ei2,(float)maxei);
1833         			  Color fill3 = getGradient(0,ei3,(float)maxei);
1834         			  Color fill4 = getGradient(0,ei4,(float)maxei);
1835         			  Color fill5 = getGradient(0,ei5,(float)maxei);
1836         			  Color fill6 = getGradient(0,ei6,(float)maxei);
1837         			  Color fill7 = getGradient(0,ei7,(float)maxei);
1838         			  Color fill8 = getGradient(0,ei8,(float)maxei);
1839         			  vQuad.addElement(new Point3d(x1,y1,z1));
1840             		  vQuad.addElement(new Point3d(x2,y2,z2));
1841             		  vQuad.addElement(new Point3d(x3,y3,z3));
1842             		  vQuad.addElement(new Point3d(x4,y4,z4));
1843             		  vQuadColor.addElement(fill1);
1844             		  vQuadColor.addElement(fill2);
1845             		  vQuadColor.addElement(fill3);
1846             		  vQuadColor.addElement(fill4);
1847 
1848             		  vQuad.addElement(new Point3d(x5,y5,z5));
1849             		  vQuad.addElement(new Point3d(x6,y6,z6));
1850             		  vQuad.addElement(new Point3d(x7,y7,z7));
1851             		  vQuad.addElement(new Point3d(x8,y8,z8));
1852             		  vQuadColor.addElement(fill5);
1853             		  vQuadColor.addElement(fill6);
1854             		  vQuadColor.addElement(fill7);
1855             		  vQuadColor.addElement(fill8);
1856 
1857             		  vQuad.addElement(new Point3d(x1,y1,z1));
1858             		  vQuad.addElement(new Point3d(x2,y2,z2));
1859             		  vQuad.addElement(new Point3d(x6,y6,z6));
1860             		  vQuad.addElement(new Point3d(x5,y5,z5));
1861             		  vQuadColor.addElement(fill1);
1862             		  vQuadColor.addElement(fill2);
1863             		  vQuadColor.addElement(fill6);
1864             		  vQuadColor.addElement(fill5);
1865 
1866             		  vQuad.addElement(new Point3d(x4,y4,z4));
1867             		  vQuad.addElement(new Point3d(x3,y3,z3));
1868             		  vQuad.addElement(new Point3d(x7,y7,z7));
1869             		  vQuad.addElement(new Point3d(x8,y8,z8));
1870             		  vQuadColor.addElement(fill4);
1871             		  vQuadColor.addElement(fill3);
1872             		  vQuadColor.addElement(fill7);
1873             		  vQuadColor.addElement(fill8);
1874 
1875             		  vQuad.addElement(new Point3d(x2,y2,z2));
1876             		  vQuad.addElement(new Point3d(x3,y3,z3));
1877             		  vQuad.addElement(new Point3d(x7,y7,z7));
1878             		  vQuad.addElement(new Point3d(x6,y6,z6));
1879             		  vQuadColor.addElement(fill2);
1880             		  vQuadColor.addElement(fill3);
1881             		  vQuadColor.addElement(fill7);
1882             		  vQuadColor.addElement(fill6);
1883 
1884             		  vQuad.addElement(new Point3d(x1,y1,z1));
1885             		  vQuad.addElement(new Point3d(x4,y4,z4));
1886             		  vQuad.addElement(new Point3d(x8,y8,z8));
1887             		  vQuad.addElement(new Point3d(x5,y5,z5));
1888             		  vQuadColor.addElement(fill1);
1889             		  vQuadColor.addElement(fill4);
1890             		  vQuadColor.addElement(fill8);
1891             		  vQuadColor.addElement(fill5);
1892         		  }
1893         	  }else if(cb_result.getSelectedIndex()==5){
1894         		  if(ee.length==6){
1895         			  vQuad.addElement(new Point3d(x1,y1,z1));
1896         			  vQuad.addElement(new Point3d(x2,y2,z2));
1897         			  vQuad.addElement(new Point3d(x3,y3,z3));
1898         			  vQuad.addElement(new Point3d(x4,y4,z4));
1899 
1900         			  vQuad.addElement(new Point3d(x5,y5,z5));
1901         			  vQuad.addElement(new Point3d(x6,y6,z6));
1902         			  vQuad.addElement(new Point3d(x7,y7,z7));
1903         			  vQuad.addElement(new Point3d(x8,y8,z8));
1904 
1905         			  vQuad.addElement(new Point3d(x1,y1,z1));
1906         			  vQuad.addElement(new Point3d(x2,y2,z2));
1907         			  vQuad.addElement(new Point3d(x6,y6,z6));
1908         			  vQuad.addElement(new Point3d(x5,y5,z5));
1909 
1910         			  vQuad.addElement(new Point3d(x4,y4,z4));
1911         			  vQuad.addElement(new Point3d(x3,y3,z3));
1912         			  vQuad.addElement(new Point3d(x7,y7,z7));
1913         			  vQuad.addElement(new Point3d(x8,y8,z8));
1914 
1915         			  vQuad.addElement(new Point3d(x2,y2,z2));
1916         			  vQuad.addElement(new Point3d(x3,y3,z3));
1917         			  vQuad.addElement(new Point3d(x7,y7,z7));
1918         			  vQuad.addElement(new Point3d(x6,y6,z6));
1919 
1920         			  vQuad.addElement(new Point3d(x1,y1,z1));
1921         			  vQuad.addElement(new Point3d(x4,y4,z4));
1922         			  vQuad.addElement(new Point3d(x8,y8,z8));
1923         			  vQuad.addElement(new Point3d(x5,y5,z5));
1924         			  Color fill = getGradient((float)minex,ee[0],(float)maxex);
1925         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
1926         		  }else{
1927         			  Color fill1 = getGradient((float)minex,ee[0],(float)maxex);
1928         			  Color fill2 = getGradient((float)minex,ee[6],(float)maxex);
1929         			  Color fill3 = getGradient((float)minex,ee[12],(float)maxex);
1930         			  Color fill4 = getGradient((float)minex,ee[18],(float)maxex);
1931         			  Color fill5 = getGradient((float)minex,ee[24],(float)maxex);
1932         			  Color fill6 = getGradient((float)minex,ee[30],(float)maxex);
1933         			  Color fill7 = getGradient((float)minex,ee[36],(float)maxex);
1934         			  Color fill8 = getGradient((float)minex,ee[42],(float)maxex);
1935         			  vQuad.addElement(new Point3d(x1,y1,z1));
1936         			  vQuad.addElement(new Point3d(x2,y2,z2));
1937         			  vQuad.addElement(new Point3d(x3,y3,z3));
1938         			  vQuad.addElement(new Point3d(x4,y4,z4));
1939         			  vQuadColor.addElement(fill1);
1940         			  vQuadColor.addElement(fill2);
1941         			  vQuadColor.addElement(fill3);
1942         			  vQuadColor.addElement(fill4);
1943 
1944         			  vQuad.addElement(new Point3d(x5,y5,z5));
1945         			  vQuad.addElement(new Point3d(x6,y6,z6));
1946         			  vQuad.addElement(new Point3d(x7,y7,z7));
1947         			  vQuad.addElement(new Point3d(x8,y8,z8));
1948         			  vQuadColor.addElement(fill5);
1949         			  vQuadColor.addElement(fill6);
1950         			  vQuadColor.addElement(fill7);
1951         			  vQuadColor.addElement(fill8);
1952 
1953         			  vQuad.addElement(new Point3d(x1,y1,z1));
1954         			  vQuad.addElement(new Point3d(x2,y2,z2));
1955         			  vQuad.addElement(new Point3d(x6,y6,z6));
1956         			  vQuad.addElement(new Point3d(x5,y5,z5));
1957         			  vQuadColor.addElement(fill1);
1958         			  vQuadColor.addElement(fill2);
1959         			  vQuadColor.addElement(fill6);
1960         			  vQuadColor.addElement(fill5);
1961 
1962         			  vQuad.addElement(new Point3d(x4,y4,z4));
1963         			  vQuad.addElement(new Point3d(x3,y3,z3));
1964         			  vQuad.addElement(new Point3d(x7,y7,z7));
1965         			  vQuad.addElement(new Point3d(x8,y8,z8));
1966         			  vQuadColor.addElement(fill4);
1967         			  vQuadColor.addElement(fill3);
1968         			  vQuadColor.addElement(fill7);
1969         			  vQuadColor.addElement(fill8);
1970 
1971         			  vQuad.addElement(new Point3d(x2,y2,z2));
1972         			  vQuad.addElement(new Point3d(x3,y3,z3));
1973         			  vQuad.addElement(new Point3d(x7,y7,z7));
1974         			  vQuad.addElement(new Point3d(x6,y6,z6));
1975         			  vQuadColor.addElement(fill2);
1976         			  vQuadColor.addElement(fill3);
1977         			  vQuadColor.addElement(fill7);
1978         			  vQuadColor.addElement(fill6);
1979 
1980         			  vQuad.addElement(new Point3d(x1,y1,z1));
1981         			  vQuad.addElement(new Point3d(x4,y4,z4));
1982         			  vQuad.addElement(new Point3d(x8,y8,z8));
1983         			  vQuad.addElement(new Point3d(x5,y5,z5));
1984         			  vQuadColor.addElement(fill1);
1985         			  vQuadColor.addElement(fill4);
1986         			  vQuadColor.addElement(fill8);
1987         			  vQuadColor.addElement(fill5);
1988         		  }
1989         	  }else if(cb_result.getSelectedIndex()==6){
1990         		  if(ee.length==6){
1991         			  vQuad.addElement(new Point3d(x1,y1,z1));
1992         			  vQuad.addElement(new Point3d(x2,y2,z2));
1993         			  vQuad.addElement(new Point3d(x3,y3,z3));
1994         			  vQuad.addElement(new Point3d(x4,y4,z4));
1995 
1996         			  vQuad.addElement(new Point3d(x5,y5,z5));
1997         			  vQuad.addElement(new Point3d(x6,y6,z6));
1998         			  vQuad.addElement(new Point3d(x7,y7,z7));
1999         			  vQuad.addElement(new Point3d(x8,y8,z8));
2000 
2001         			  vQuad.addElement(new Point3d(x1,y1,z1));
2002         			  vQuad.addElement(new Point3d(x2,y2,z2));
2003         			  vQuad.addElement(new Point3d(x6,y6,z6));
2004         			  vQuad.addElement(new Point3d(x5,y5,z5));
2005 
2006         			  vQuad.addElement(new Point3d(x4,y4,z4));
2007         			  vQuad.addElement(new Point3d(x3,y3,z3));
2008         			  vQuad.addElement(new Point3d(x7,y7,z7));
2009         			  vQuad.addElement(new Point3d(x8,y8,z8));
2010 
2011         			  vQuad.addElement(new Point3d(x2,y2,z2));
2012         			  vQuad.addElement(new Point3d(x3,y3,z3));
2013         			  vQuad.addElement(new Point3d(x7,y7,z7));
2014         			  vQuad.addElement(new Point3d(x6,y6,z6));
2015 
2016         			  vQuad.addElement(new Point3d(x1,y1,z1));
2017         			  vQuad.addElement(new Point3d(x4,y4,z4));
2018         			  vQuad.addElement(new Point3d(x8,y8,z8));
2019         			  vQuad.addElement(new Point3d(x5,y5,z5));
2020         			  Color fill = getGradient((float)miney,ee[1],(float)maxey);
2021         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2022         		  }else{
2023         			  Color fill1 = getGradient((float)miney,ee[1],(float)maxey);
2024         			  Color fill2 = getGradient((float)miney,ee[7],(float)maxey);
2025         			  Color fill3 = getGradient((float)miney,ee[13],(float)maxey);
2026         			  Color fill4 = getGradient((float)miney,ee[19],(float)maxey);
2027         			  Color fill5 = getGradient((float)miney,ee[25],(float)maxey);
2028         			  Color fill6 = getGradient((float)miney,ee[31],(float)maxey);
2029         			  Color fill7 = getGradient((float)miney,ee[37],(float)maxey);
2030         			  Color fill8 = getGradient((float)miney,ee[43],(float)maxey);
2031         			  vQuad.addElement(new Point3d(x1,y1,z1));
2032         			  vQuad.addElement(new Point3d(x2,y2,z2));
2033         			  vQuad.addElement(new Point3d(x3,y3,z3));
2034         			  vQuad.addElement(new Point3d(x4,y4,z4));
2035         			  vQuadColor.addElement(fill1);
2036         			  vQuadColor.addElement(fill2);
2037         			  vQuadColor.addElement(fill3);
2038         			  vQuadColor.addElement(fill4);
2039 
2040         			  vQuad.addElement(new Point3d(x5,y5,z5));
2041         			  vQuad.addElement(new Point3d(x6,y6,z6));
2042         			  vQuad.addElement(new Point3d(x7,y7,z7));
2043         			  vQuad.addElement(new Point3d(x8,y8,z8));
2044         			  vQuadColor.addElement(fill5);
2045         			  vQuadColor.addElement(fill6);
2046         			  vQuadColor.addElement(fill7);
2047         			  vQuadColor.addElement(fill8);
2048 
2049         			  vQuad.addElement(new Point3d(x1,y1,z1));
2050         			  vQuad.addElement(new Point3d(x2,y2,z2));
2051         			  vQuad.addElement(new Point3d(x6,y6,z6));
2052         			  vQuad.addElement(new Point3d(x5,y5,z5));
2053         			  vQuadColor.addElement(fill1);
2054         			  vQuadColor.addElement(fill2);
2055         			  vQuadColor.addElement(fill6);
2056         			  vQuadColor.addElement(fill5);
2057 
2058         			  vQuad.addElement(new Point3d(x4,y4,z4));
2059         			  vQuad.addElement(new Point3d(x3,y3,z3));
2060         			  vQuad.addElement(new Point3d(x7,y7,z7));
2061         			  vQuad.addElement(new Point3d(x8,y8,z8));
2062         			  vQuadColor.addElement(fill4);
2063         			  vQuadColor.addElement(fill3);
2064         			  vQuadColor.addElement(fill7);
2065         			  vQuadColor.addElement(fill8);
2066 
2067         			  vQuad.addElement(new Point3d(x2,y2,z2));
2068         			  vQuad.addElement(new Point3d(x3,y3,z3));
2069         			  vQuad.addElement(new Point3d(x7,y7,z7));
2070         			  vQuad.addElement(new Point3d(x6,y6,z6));
2071         			  vQuadColor.addElement(fill2);
2072         			  vQuadColor.addElement(fill3);
2073         			  vQuadColor.addElement(fill7);
2074         			  vQuadColor.addElement(fill6);
2075 
2076         			  vQuad.addElement(new Point3d(x1,y1,z1));
2077         			  vQuad.addElement(new Point3d(x4,y4,z4));
2078         			  vQuad.addElement(new Point3d(x8,y8,z8));
2079         			  vQuad.addElement(new Point3d(x5,y5,z5));
2080         			  vQuadColor.addElement(fill1);
2081         			  vQuadColor.addElement(fill4);
2082         			  vQuadColor.addElement(fill8);
2083         			  vQuadColor.addElement(fill5);
2084         		  }
2085         	  }else if(cb_result.getSelectedIndex()==7){
2086         		  if(ee.length==6){
2087         			  vQuad.addElement(new Point3d(x1,y1,z1));
2088         			  vQuad.addElement(new Point3d(x2,y2,z2));
2089         			  vQuad.addElement(new Point3d(x3,y3,z3));
2090         			  vQuad.addElement(new Point3d(x4,y4,z4));
2091 
2092         			  vQuad.addElement(new Point3d(x5,y5,z5));
2093         			  vQuad.addElement(new Point3d(x6,y6,z6));
2094         			  vQuad.addElement(new Point3d(x7,y7,z7));
2095         			  vQuad.addElement(new Point3d(x8,y8,z8));
2096 
2097         			  vQuad.addElement(new Point3d(x1,y1,z1));
2098         			  vQuad.addElement(new Point3d(x2,y2,z2));
2099         			  vQuad.addElement(new Point3d(x6,y6,z6));
2100         			  vQuad.addElement(new Point3d(x5,y5,z5));
2101 
2102         			  vQuad.addElement(new Point3d(x4,y4,z4));
2103         			  vQuad.addElement(new Point3d(x3,y3,z3));
2104         			  vQuad.addElement(new Point3d(x7,y7,z7));
2105         			  vQuad.addElement(new Point3d(x8,y8,z8));
2106 
2107         			  vQuad.addElement(new Point3d(x2,y2,z2));
2108         			  vQuad.addElement(new Point3d(x3,y3,z3));
2109         			  vQuad.addElement(new Point3d(x7,y7,z7));
2110         			  vQuad.addElement(new Point3d(x6,y6,z6));
2111 
2112         			  vQuad.addElement(new Point3d(x1,y1,z1));
2113         			  vQuad.addElement(new Point3d(x4,y4,z4));
2114         			  vQuad.addElement(new Point3d(x8,y8,z8));
2115         			  vQuad.addElement(new Point3d(x5,y5,z5));
2116         			  Color fill = getGradient((float)minez,ee[2],(float)maxez);
2117         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2118         		  }else{
2119         			  Color fill1 = getGradient((float)minez,ee[2],(float)maxez);
2120         			  Color fill2 = getGradient((float)minez,ee[8],(float)maxez);
2121         			  Color fill3 = getGradient((float)minez,ee[14],(float)maxez);
2122         			  Color fill4 = getGradient((float)minez,ee[20],(float)maxez);
2123         			  Color fill5 = getGradient((float)minez,ee[26],(float)maxez);
2124         			  Color fill6 = getGradient((float)minez,ee[32],(float)maxez);
2125         			  Color fill7 = getGradient((float)minez,ee[38],(float)maxez);
2126         			  Color fill8 = getGradient((float)minez,ee[44],(float)maxez);
2127         			  vQuad.addElement(new Point3d(x1,y1,z1));
2128         			  vQuad.addElement(new Point3d(x2,y2,z2));
2129         			  vQuad.addElement(new Point3d(x3,y3,z3));
2130         			  vQuad.addElement(new Point3d(x4,y4,z4));
2131         			  vQuadColor.addElement(fill1);
2132         			  vQuadColor.addElement(fill2);
2133         			  vQuadColor.addElement(fill3);
2134         			  vQuadColor.addElement(fill4);
2135 
2136         			  vQuad.addElement(new Point3d(x5,y5,z5));
2137         			  vQuad.addElement(new Point3d(x6,y6,z6));
2138         			  vQuad.addElement(new Point3d(x7,y7,z7));
2139         			  vQuad.addElement(new Point3d(x8,y8,z8));
2140         			  vQuadColor.addElement(fill5);
2141         			  vQuadColor.addElement(fill6);
2142         			  vQuadColor.addElement(fill7);
2143         			  vQuadColor.addElement(fill8);
2144 
2145         			  vQuad.addElement(new Point3d(x1,y1,z1));
2146         			  vQuad.addElement(new Point3d(x2,y2,z2));
2147         			  vQuad.addElement(new Point3d(x6,y6,z6));
2148         			  vQuad.addElement(new Point3d(x5,y5,z5));
2149         			  vQuadColor.addElement(fill1);
2150         			  vQuadColor.addElement(fill2);
2151         			  vQuadColor.addElement(fill6);
2152         			  vQuadColor.addElement(fill5);
2153 
2154         			  vQuad.addElement(new Point3d(x4,y4,z4));
2155         			  vQuad.addElement(new Point3d(x3,y3,z3));
2156         			  vQuad.addElement(new Point3d(x7,y7,z7));
2157         			  vQuad.addElement(new Point3d(x8,y8,z8));
2158         			  vQuadColor.addElement(fill4);
2159         			  vQuadColor.addElement(fill3);
2160         			  vQuadColor.addElement(fill7);
2161         			  vQuadColor.addElement(fill8);
2162 
2163         			  vQuad.addElement(new Point3d(x2,y2,z2));
2164         			  vQuad.addElement(new Point3d(x3,y3,z3));
2165         			  vQuad.addElement(new Point3d(x7,y7,z7));
2166         			  vQuad.addElement(new Point3d(x6,y6,z6));
2167         			  vQuadColor.addElement(fill2);
2168         			  vQuadColor.addElement(fill3);
2169         			  vQuadColor.addElement(fill7);
2170         			  vQuadColor.addElement(fill6);
2171 
2172         			  vQuad.addElement(new Point3d(x1,y1,z1));
2173         			  vQuad.addElement(new Point3d(x4,y4,z4));
2174         			  vQuad.addElement(new Point3d(x8,y8,z8));
2175         			  vQuad.addElement(new Point3d(x5,y5,z5));
2176         			  vQuadColor.addElement(fill1);
2177         			  vQuadColor.addElement(fill4);
2178         			  vQuadColor.addElement(fill8);
2179         			  vQuadColor.addElement(fill5);
2180         		  }
2181         	  }else if(cb_result.getSelectedIndex()==8){
2182         		  if(ee.length==6){
2183         			  vQuad.addElement(new Point3d(x1,y1,z1));
2184         			  vQuad.addElement(new Point3d(x2,y2,z2));
2185         			  vQuad.addElement(new Point3d(x3,y3,z3));
2186         			  vQuad.addElement(new Point3d(x4,y4,z4));
2187 
2188         			  vQuad.addElement(new Point3d(x5,y5,z5));
2189         			  vQuad.addElement(new Point3d(x6,y6,z6));
2190         			  vQuad.addElement(new Point3d(x7,y7,z7));
2191         			  vQuad.addElement(new Point3d(x8,y8,z8));
2192 
2193         			  vQuad.addElement(new Point3d(x1,y1,z1));
2194         			  vQuad.addElement(new Point3d(x2,y2,z2));
2195         			  vQuad.addElement(new Point3d(x6,y6,z6));
2196         			  vQuad.addElement(new Point3d(x5,y5,z5));
2197 
2198         			  vQuad.addElement(new Point3d(x4,y4,z4));
2199         			  vQuad.addElement(new Point3d(x3,y3,z3));
2200         			  vQuad.addElement(new Point3d(x7,y7,z7));
2201         			  vQuad.addElement(new Point3d(x8,y8,z8));
2202 
2203         			  vQuad.addElement(new Point3d(x2,y2,z2));
2204         			  vQuad.addElement(new Point3d(x3,y3,z3));
2205         			  vQuad.addElement(new Point3d(x7,y7,z7));
2206         			  vQuad.addElement(new Point3d(x6,y6,z6));
2207 
2208         			  vQuad.addElement(new Point3d(x1,y1,z1));
2209         			  vQuad.addElement(new Point3d(x4,y4,z4));
2210         			  vQuad.addElement(new Point3d(x8,y8,z8));
2211         			  vQuad.addElement(new Point3d(x5,y5,z5));
2212         			  Color fill = getGradient((float)minexy,ee[3],(float)maxexy);
2213         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2214         		  }else{
2215         			  Color fill1 = getGradient((float)minexy,ee[3],(float)maxexy);
2216         			  Color fill2 = getGradient((float)minexy,ee[9],(float)maxexy);
2217         			  Color fill3 = getGradient((float)minexy,ee[15],(float)maxexy);
2218         			  Color fill4 = getGradient((float)minexy,ee[21],(float)maxexy);
2219         			  Color fill5 = getGradient((float)minexy,ee[27],(float)maxexy);
2220         			  Color fill6 = getGradient((float)minexy,ee[33],(float)maxexy);
2221         			  Color fill7 = getGradient((float)minexy,ee[39],(float)maxexy);
2222         			  Color fill8 = getGradient((float)minexy,ee[45],(float)maxexy);
2223         			  vQuad.addElement(new Point3d(x1,y1,z1));
2224         			  vQuad.addElement(new Point3d(x2,y2,z2));
2225         			  vQuad.addElement(new Point3d(x3,y3,z3));
2226         			  vQuad.addElement(new Point3d(x4,y4,z4));
2227         			  vQuadColor.addElement(fill1);
2228         			  vQuadColor.addElement(fill2);
2229         			  vQuadColor.addElement(fill3);
2230         			  vQuadColor.addElement(fill4);
2231 
2232         			  vQuad.addElement(new Point3d(x5,y5,z5));
2233         			  vQuad.addElement(new Point3d(x6,y6,z6));
2234         			  vQuad.addElement(new Point3d(x7,y7,z7));
2235         			  vQuad.addElement(new Point3d(x8,y8,z8));
2236         			  vQuadColor.addElement(fill5);
2237         			  vQuadColor.addElement(fill6);
2238         			  vQuadColor.addElement(fill7);
2239         			  vQuadColor.addElement(fill8);
2240 
2241         			  vQuad.addElement(new Point3d(x1,y1,z1));
2242         			  vQuad.addElement(new Point3d(x2,y2,z2));
2243         			  vQuad.addElement(new Point3d(x6,y6,z6));
2244         			  vQuad.addElement(new Point3d(x5,y5,z5));
2245         			  vQuadColor.addElement(fill1);
2246         			  vQuadColor.addElement(fill2);
2247         			  vQuadColor.addElement(fill6);
2248         			  vQuadColor.addElement(fill5);
2249 
2250         			  vQuad.addElement(new Point3d(x4,y4,z4));
2251         			  vQuad.addElement(new Point3d(x3,y3,z3));
2252         			  vQuad.addElement(new Point3d(x7,y7,z7));
2253         			  vQuad.addElement(new Point3d(x8,y8,z8));
2254         			  vQuadColor.addElement(fill4);
2255         			  vQuadColor.addElement(fill3);
2256         			  vQuadColor.addElement(fill7);
2257         			  vQuadColor.addElement(fill8);
2258 
2259         			  vQuad.addElement(new Point3d(x2,y2,z2));
2260         			  vQuad.addElement(new Point3d(x3,y3,z3));
2261         			  vQuad.addElement(new Point3d(x7,y7,z7));
2262         			  vQuad.addElement(new Point3d(x6,y6,z6));
2263         			  vQuadColor.addElement(fill2);
2264         			  vQuadColor.addElement(fill3);
2265         			  vQuadColor.addElement(fill7);
2266         			  vQuadColor.addElement(fill6);
2267 
2268         			  vQuad.addElement(new Point3d(x1,y1,z1));
2269         			  vQuad.addElement(new Point3d(x4,y4,z4));
2270         			  vQuad.addElement(new Point3d(x8,y8,z8));
2271         			  vQuad.addElement(new Point3d(x5,y5,z5));
2272         			  vQuadColor.addElement(fill1);
2273         			  vQuadColor.addElement(fill4);
2274         			  vQuadColor.addElement(fill8);
2275         			  vQuadColor.addElement(fill5);
2276         		  }
2277         	  }else if(cb_result.getSelectedIndex()==9){
2278         		  if(ee.length==6){
2279         			  vQuad.addElement(new Point3d(x1,y1,z1));
2280         			  vQuad.addElement(new Point3d(x2,y2,z2));
2281         			  vQuad.addElement(new Point3d(x3,y3,z3));
2282         			  vQuad.addElement(new Point3d(x4,y4,z4));
2283 
2284         			  vQuad.addElement(new Point3d(x5,y5,z5));
2285         			  vQuad.addElement(new Point3d(x6,y6,z6));
2286         			  vQuad.addElement(new Point3d(x7,y7,z7));
2287         			  vQuad.addElement(new Point3d(x8,y8,z8));
2288 
2289         			  vQuad.addElement(new Point3d(x1,y1,z1));
2290         			  vQuad.addElement(new Point3d(x2,y2,z2));
2291         			  vQuad.addElement(new Point3d(x6,y6,z6));
2292         			  vQuad.addElement(new Point3d(x5,y5,z5));
2293 
2294         			  vQuad.addElement(new Point3d(x4,y4,z4));
2295         			  vQuad.addElement(new Point3d(x3,y3,z3));
2296         			  vQuad.addElement(new Point3d(x7,y7,z7));
2297         			  vQuad.addElement(new Point3d(x8,y8,z8));
2298 
2299         			  vQuad.addElement(new Point3d(x2,y2,z2));
2300         			  vQuad.addElement(new Point3d(x3,y3,z3));
2301         			  vQuad.addElement(new Point3d(x7,y7,z7));
2302         			  vQuad.addElement(new Point3d(x6,y6,z6));
2303 
2304         			  vQuad.addElement(new Point3d(x1,y1,z1));
2305         			  vQuad.addElement(new Point3d(x4,y4,z4));
2306         			  vQuad.addElement(new Point3d(x8,y8,z8));
2307         			  vQuad.addElement(new Point3d(x5,y5,z5));
2308         			  Color fill = getGradient((float)mineyz,ee[4],(float)maxeyz);
2309         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2310         		  }else{
2311         			  Color fill1 = getGradient((float)mineyz,ee[4],(float)maxeyz);
2312         			  Color fill2 = getGradient((float)mineyz,ee[10],(float)maxeyz);
2313         			  Color fill3 = getGradient((float)mineyz,ee[16],(float)maxeyz);
2314         			  Color fill4 = getGradient((float)mineyz,ee[22],(float)maxeyz);
2315         			  Color fill5 = getGradient((float)mineyz,ee[28],(float)maxeyz);
2316         			  Color fill6 = getGradient((float)mineyz,ee[34],(float)maxeyz);
2317         			  Color fill7 = getGradient((float)mineyz,ee[40],(float)maxeyz);
2318         			  Color fill8 = getGradient((float)mineyz,ee[46],(float)maxeyz);
2319         			  vQuad.addElement(new Point3d(x1,y1,z1));
2320         			  vQuad.addElement(new Point3d(x2,y2,z2));
2321         			  vQuad.addElement(new Point3d(x3,y3,z3));
2322         			  vQuad.addElement(new Point3d(x4,y4,z4));
2323         			  vQuadColor.addElement(fill1);
2324         			  vQuadColor.addElement(fill2);
2325         			  vQuadColor.addElement(fill3);
2326         			  vQuadColor.addElement(fill4);
2327 
2328         			  vQuad.addElement(new Point3d(x5,y5,z5));
2329         			  vQuad.addElement(new Point3d(x6,y6,z6));
2330         			  vQuad.addElement(new Point3d(x7,y7,z7));
2331         			  vQuad.addElement(new Point3d(x8,y8,z8));
2332         			  vQuadColor.addElement(fill5);
2333         			  vQuadColor.addElement(fill6);
2334         			  vQuadColor.addElement(fill7);
2335         			  vQuadColor.addElement(fill8);
2336 
2337         			  vQuad.addElement(new Point3d(x1,y1,z1));
2338         			  vQuad.addElement(new Point3d(x2,y2,z2));
2339         			  vQuad.addElement(new Point3d(x6,y6,z6));
2340         			  vQuad.addElement(new Point3d(x5,y5,z5));
2341         			  vQuadColor.addElement(fill1);
2342         			  vQuadColor.addElement(fill2);
2343         			  vQuadColor.addElement(fill6);
2344         			  vQuadColor.addElement(fill5);
2345 
2346         			  vQuad.addElement(new Point3d(x4,y4,z4));
2347         			  vQuad.addElement(new Point3d(x3,y3,z3));
2348         			  vQuad.addElement(new Point3d(x7,y7,z7));
2349         			  vQuad.addElement(new Point3d(x8,y8,z8));
2350         			  vQuadColor.addElement(fill4);
2351         			  vQuadColor.addElement(fill3);
2352         			  vQuadColor.addElement(fill7);
2353         			  vQuadColor.addElement(fill8);
2354 
2355         			  vQuad.addElement(new Point3d(x2,y2,z2));
2356         			  vQuad.addElement(new Point3d(x3,y3,z3));
2357         			  vQuad.addElement(new Point3d(x7,y7,z7));
2358         			  vQuad.addElement(new Point3d(x6,y6,z6));
2359         			  vQuadColor.addElement(fill2);
2360         			  vQuadColor.addElement(fill3);
2361         			  vQuadColor.addElement(fill7);
2362         			  vQuadColor.addElement(fill6);
2363 
2364         			  vQuad.addElement(new Point3d(x1,y1,z1));
2365         			  vQuad.addElement(new Point3d(x4,y4,z4));
2366         			  vQuad.addElement(new Point3d(x8,y8,z8));
2367         			  vQuad.addElement(new Point3d(x5,y5,z5));
2368         			  vQuadColor.addElement(fill1);
2369         			  vQuadColor.addElement(fill4);
2370         			  vQuadColor.addElement(fill8);
2371         			  vQuadColor.addElement(fill5);
2372         		  }
2373         	  }else if(cb_result.getSelectedIndex()==10){
2374         		  if(ee.length==6){
2375         			  vQuad.addElement(new Point3d(x1,y1,z1));
2376         			  vQuad.addElement(new Point3d(x2,y2,z2));
2377         			  vQuad.addElement(new Point3d(x3,y3,z3));
2378         			  vQuad.addElement(new Point3d(x4,y4,z4));
2379 
2380         			  vQuad.addElement(new Point3d(x5,y5,z5));
2381         			  vQuad.addElement(new Point3d(x6,y6,z6));
2382         			  vQuad.addElement(new Point3d(x7,y7,z7));
2383         			  vQuad.addElement(new Point3d(x8,y8,z8));
2384 
2385         			  vQuad.addElement(new Point3d(x1,y1,z1));
2386         			  vQuad.addElement(new Point3d(x2,y2,z2));
2387         			  vQuad.addElement(new Point3d(x6,y6,z6));
2388         			  vQuad.addElement(new Point3d(x5,y5,z5));
2389 
2390         			  vQuad.addElement(new Point3d(x4,y4,z4));
2391         			  vQuad.addElement(new Point3d(x3,y3,z3));
2392         			  vQuad.addElement(new Point3d(x7,y7,z7));
2393         			  vQuad.addElement(new Point3d(x8,y8,z8));
2394 
2395         			  vQuad.addElement(new Point3d(x2,y2,z2));
2396         			  vQuad.addElement(new Point3d(x3,y3,z3));
2397         			  vQuad.addElement(new Point3d(x7,y7,z7));
2398         			  vQuad.addElement(new Point3d(x6,y6,z6));
2399 
2400         			  vQuad.addElement(new Point3d(x1,y1,z1));
2401         			  vQuad.addElement(new Point3d(x4,y4,z4));
2402         			  vQuad.addElement(new Point3d(x8,y8,z8));
2403         			  vQuad.addElement(new Point3d(x5,y5,z5));
2404         			  Color fill = getGradient((float)minexz,ee[5],(float)maxexz);
2405         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2406         		  }else{
2407         			  Color fill1 = getGradient((float)minexz,ee[5],(float)maxexz);
2408         			  Color fill2 = getGradient((float)minexz,ee[11],(float)maxexz);
2409         			  Color fill3 = getGradient((float)minexz,ee[17],(float)maxexz);
2410         			  Color fill4 = getGradient((float)minexz,ee[23],(float)maxexz);
2411         			  Color fill5 = getGradient((float)minexz,ee[29],(float)maxexz);
2412         			  Color fill6 = getGradient((float)minexz,ee[35],(float)maxexz);
2413         			  Color fill7 = getGradient((float)minexz,ee[41],(float)maxexz);
2414         			  Color fill8 = getGradient((float)minexz,ee[47],(float)maxexz);
2415         			  vQuad.addElement(new Point3d(x1,y1,z1));
2416         			  vQuad.addElement(new Point3d(x2,y2,z2));
2417         			  vQuad.addElement(new Point3d(x3,y3,z3));
2418         			  vQuad.addElement(new Point3d(x4,y4,z4));
2419         			  vQuadColor.addElement(fill1);
2420         			  vQuadColor.addElement(fill2);
2421         			  vQuadColor.addElement(fill3);
2422         			  vQuadColor.addElement(fill4);
2423 
2424         			  vQuad.addElement(new Point3d(x5,y5,z5));
2425         			  vQuad.addElement(new Point3d(x6,y6,z6));
2426         			  vQuad.addElement(new Point3d(x7,y7,z7));
2427         			  vQuad.addElement(new Point3d(x8,y8,z8));
2428         			  vQuadColor.addElement(fill5);
2429         			  vQuadColor.addElement(fill6);
2430         			  vQuadColor.addElement(fill7);
2431         			  vQuadColor.addElement(fill8);
2432 
2433         			  vQuad.addElement(new Point3d(x1,y1,z1));
2434         			  vQuad.addElement(new Point3d(x2,y2,z2));
2435         			  vQuad.addElement(new Point3d(x6,y6,z6));
2436         			  vQuad.addElement(new Point3d(x5,y5,z5));
2437         			  vQuadColor.addElement(fill1);
2438         			  vQuadColor.addElement(fill2);
2439         			  vQuadColor.addElement(fill6);
2440         			  vQuadColor.addElement(fill5);
2441 
2442         			  vQuad.addElement(new Point3d(x4,y4,z4));
2443         			  vQuad.addElement(new Point3d(x3,y3,z3));
2444         			  vQuad.addElement(new Point3d(x7,y7,z7));
2445         			  vQuad.addElement(new Point3d(x8,y8,z8));
2446         			  vQuadColor.addElement(fill4);
2447         			  vQuadColor.addElement(fill3);
2448         			  vQuadColor.addElement(fill7);
2449         			  vQuadColor.addElement(fill8);
2450 
2451         			  vQuad.addElement(new Point3d(x2,y2,z2));
2452         			  vQuad.addElement(new Point3d(x3,y3,z3));
2453         			  vQuad.addElement(new Point3d(x7,y7,z7));
2454         			  vQuad.addElement(new Point3d(x6,y6,z6));
2455         			  vQuadColor.addElement(fill2);
2456         			  vQuadColor.addElement(fill3);
2457         			  vQuadColor.addElement(fill7);
2458         			  vQuadColor.addElement(fill6);
2459 
2460         			  vQuad.addElement(new Point3d(x1,y1,z1));
2461         			  vQuad.addElement(new Point3d(x4,y4,z4));
2462         			  vQuad.addElement(new Point3d(x8,y8,z8));
2463         			  vQuad.addElement(new Point3d(x5,y5,z5));
2464         			  vQuadColor.addElement(fill1);
2465         			  vQuadColor.addElement(fill4);
2466         			  vQuadColor.addElement(fill8);
2467         			  vQuadColor.addElement(fill5);
2468         		  }
2469         	  }
2470           }
2471         }
2472       }
2473     //STRESSES
2474     }else{
2475       Hashtable db_node_tmp = (Hashtable)db_displacements.get(time);
2476       Hashtable db_stresses_tmp = (Hashtable)db_stresses.get(time);
2477       for(Enumeration en = db_stresses_tmp.keys(); en.hasMoreElements();){
2478         String key = en.nextElement()+"";
2479 
2480         int[] arr = (int[])db_element.get(key);
2481         if(arr.length==2){
2482         	Point3d p11 = (Point3d)db_node.get(arr[0]+"");
2483             Point3d p12 = (Point3d)db_node.get(arr[1]+"");
2484             Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
2485             Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
2486             double x1=p11.x+p21.x*kd;
2487             double x2=p12.x+p22.x*kd;
2488             double y1=p11.y+p21.y*kd;
2489             double y2=p12.y+p22.y*kd;
2490             double z1=p11.z+p21.z*kd;
2491             double z2=p12.z+p22.z*kd;
2492             float[] ee = (float[])db_stresses_tmp.get(key);
2493             vLines.addElement(new Point3d(x1,y1,z1));
2494         	vLines.addElement(new Point3d(x2,y2,z2));
2495 
2496         	if(cb_result.getSelectedIndex()==11 || cb_result.getSelectedIndex()==12){
2497         		if(this.cb_conturfill.isSelected()){
2498         			vLinesColor.addElement(getGradient((float)minsi,ee[0],(float)maxsi));
2499         			vLinesColor.addElement(getGradient((float)minsi,ee[0],(float)maxsi));
2500         		} else {
2501         			vLinesColor.addElement(Color.black);
2502         			vLinesColor.addElement(Color.black);
2503         		}
2504             }else {
2505           	  	vLinesColor.addElement(Color.black);
2506           	  	vLinesColor.addElement(Color.black);
2507             }
2508         }else if(arr.length==3){
2509           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
2510           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
2511           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
2512           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
2513           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
2514           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
2515           double x1=p11.x+p21.x*kd;
2516           double x2=p12.x+p22.x*kd;
2517           double x3=p13.x+p23.x*kd;
2518           double y1=p11.y+p21.y*kd;
2519           double y2=p12.y+p22.y*kd;
2520           double y3=p13.y+p23.y*kd;
2521           double z1=p11.z+p21.z*kd;
2522           double z2=p12.z+p22.z*kd;
2523           double z3=p13.z+p23.z*kd;
2524           float[] ee = (float[])db_stresses_tmp.get(key);
2525           if(this.cb_mesh.isSelected()){
2526         	  vLines.addElement(new Point3d(x1,y1,z1));
2527         	  vLines.addElement(new Point3d(x2,y2,z2));
2528         	  vLines.addElement(new Point3d(x2,y2,z2));
2529         	  vLines.addElement(new Point3d(x3,y3,z3));
2530         	  vLines.addElement(new Point3d(x3,y3,z3));
2531         	  vLines.addElement(new Point3d(x1,y1,z1));
2532         	  for(int i=0; i<6; i++)vLinesColor.addElement(Color.black);
2533           }
2534           if(this.cb_conturfill.isSelected()){
2535         	  if(cb_result.getSelectedIndex()==11){
2536         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2537         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2538         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2539         		  float ei = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+6*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
2540         		  Color fill = getGradient((float)minsi,ei,(float)maxsi);
2541         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2542         	  }else if(cb_result.getSelectedIndex()==12){
2543         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2544         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2545         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2546         		  Color fill = getGradient((float)minsx,ee[0],(float)maxsx);
2547         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2548         	  }else if(cb_result.getSelectedIndex()==13){
2549         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2550         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2551         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2552         		  Color fill = getGradient((float)minsy,ee[1],(float)maxsy);
2553         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2554         	  }else if(cb_result.getSelectedIndex()==14){
2555         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2556         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2557         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2558         		  Color fill = getGradient((float)minsz,ee[2],(float)maxsz);
2559         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2560         	  }else if(cb_result.getSelectedIndex()==15){
2561         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2562         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2563         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2564         		  Color fill = getGradient((float)minsxy,ee[3],(float)maxsxy);
2565         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2566         	  }else if(cb_result.getSelectedIndex()==16){
2567         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2568         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2569         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2570         		  Color fill = getGradient((float)minsyz,ee[4],(float)maxsyz);
2571         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2572         	  }else if(cb_result.getSelectedIndex()==17){
2573         		  vTriangle.addElement(new Point3d(x1,y1,z1));
2574         		  vTriangle.addElement(new Point3d(x2,y2,z2));
2575         		  vTriangle.addElement(new Point3d(x3,y3,z3));
2576         		  Color fill = getGradient((float)minsxz,ee[5],(float)maxsxz);
2577         		  for(int i=0; i<3; i++)vTriangleColor.addElement(fill);
2578         	  }
2579           }
2580         }else if(arr.length==4){
2581           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
2582           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
2583           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
2584           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
2585           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
2586           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
2587           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
2588           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
2589           double x1=p11.x+p21.x*kd;
2590           double x2=p12.x+p22.x*kd;
2591           double x3=p13.x+p23.x*kd;
2592           double x4=p14.x+p24.x*kd;
2593           double y1=p11.y+p21.y*kd;
2594           double y2=p12.y+p22.y*kd;
2595           double y3=p13.y+p23.y*kd;
2596           double y4=p14.y+p24.y*kd;
2597           double z1=p11.z+p21.z*kd;
2598           double z2=p12.z+p22.z*kd;
2599           double z3=p13.z+p23.z*kd;
2600           double z4=p14.z+p24.z*kd;
2601           float[] ee = (float[])db_stresses_tmp.get(key);
2602           if(this.cb_mesh.isSelected()){
2603         	  vLines.addElement(new Point3d(x1,y1,z1));
2604         	  vLines.addElement(new Point3d(x2,y2,z2));
2605         	  vLines.addElement(new Point3d(x2,y2,z2));
2606         	  vLines.addElement(new Point3d(x3,y3,z3));
2607         	  vLines.addElement(new Point3d(x3,y3,z3));
2608         	  vLines.addElement(new Point3d(x4,y4,z4));
2609         	  vLines.addElement(new Point3d(x4,y4,z4));
2610         	  vLines.addElement(new Point3d(x1,y1,z1));
2611         	  for(int i=0; i<8; i++)vLinesColor.addElement(Color.black);
2612           }
2613           if(this.cb_conturfill.isSelected()){
2614         	  if(cb_result.getSelectedIndex()==11){
2615         		  vQuad.addElement(new Point3d(x1,y1,z1));
2616         		  vQuad.addElement(new Point3d(x2,y2,z2));
2617         		  vQuad.addElement(new Point3d(x3,y3,z3));
2618         		  vQuad.addElement(new Point3d(x4,y4,z4));
2619         		  float ei = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+6*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
2620         		  Color fill = getGradient((float)minsi,ei,(float)maxsi);
2621         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2622         	  }else if(cb_result.getSelectedIndex()==12){
2623         		  vQuad.addElement(new Point3d(x1,y1,z1));
2624         		  vQuad.addElement(new Point3d(x2,y2,z2));
2625         		  vQuad.addElement(new Point3d(x3,y3,z3));
2626         		  vQuad.addElement(new Point3d(x4,y4,z4));
2627         		  Color fill = getGradient((float)minsx,ee[0],(float)maxsx);
2628         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2629         	  }else if(cb_result.getSelectedIndex()==13){
2630         		  vQuad.addElement(new Point3d(x1,y1,z1));
2631         		  vQuad.addElement(new Point3d(x2,y2,z2));
2632         		  vQuad.addElement(new Point3d(x3,y3,z3));
2633         		  vQuad.addElement(new Point3d(x4,y4,z4));
2634         		  Color fill = getGradient((float)minsy,ee[1],(float)maxsy);
2635         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2636         	  }else if(cb_result.getSelectedIndex()==14){
2637         		  vQuad.addElement(new Point3d(x1,y1,z1));
2638         		  vQuad.addElement(new Point3d(x2,y2,z2));
2639         		  vQuad.addElement(new Point3d(x3,y3,z3));
2640         		  vQuad.addElement(new Point3d(x4,y4,z4));
2641         		  Color fill = getGradient((float)minsz,ee[2],(float)maxsz);
2642         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2643         	  }else if(cb_result.getSelectedIndex()==15){
2644         		  vQuad.addElement(new Point3d(x1,y1,z1));
2645         		  vQuad.addElement(new Point3d(x2,y2,z2));
2646         		  vQuad.addElement(new Point3d(x3,y3,z3));
2647         		  vQuad.addElement(new Point3d(x4,y4,z4));
2648         		  Color fill = getGradient((float)minsxy,ee[3],(float)maxsxy);
2649         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2650         	  }else if(cb_result.getSelectedIndex()==16){
2651         		  vQuad.addElement(new Point3d(x1,y1,z1));
2652         		  vQuad.addElement(new Point3d(x2,y2,z2));
2653         		  vQuad.addElement(new Point3d(x3,y3,z3));
2654         		  vQuad.addElement(new Point3d(x4,y4,z4));
2655         		  Color fill = getGradient((float)minsyz,ee[4],(float)maxsyz);
2656         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2657         	  }else if(cb_result.getSelectedIndex()==17){
2658         		  vQuad.addElement(new Point3d(x1,y1,z1));
2659         		  vQuad.addElement(new Point3d(x2,y2,z2));
2660         		  vQuad.addElement(new Point3d(x3,y3,z3));
2661         		  vQuad.addElement(new Point3d(x4,y4,z4));
2662         		  Color fill = getGradient((float)minsxz,ee[5],(float)maxsxz);
2663         		  for(int i=0; i<4; i++)vQuadColor.addElement(fill);
2664         	  }
2665           }
2666         }else if(arr.length==8){
2667           Point3d p11 = (Point3d)db_node.get(arr[0]+"");
2668           Point3d p12 = (Point3d)db_node.get(arr[1]+"");
2669           Point3d p13 = (Point3d)db_node.get(arr[2]+"");
2670           Point3d p14 = (Point3d)db_node.get(arr[3]+"");
2671           Point3d p15 = (Point3d)db_node.get(arr[4]+"");
2672           Point3d p16 = (Point3d)db_node.get(arr[5]+"");
2673           Point3d p17 = (Point3d)db_node.get(arr[6]+"");
2674           Point3d p18 = (Point3d)db_node.get(arr[7]+"");
2675           Point3d p21 = (Point3d)db_node_tmp.get(arr[0]+"");
2676           Point3d p22 = (Point3d)db_node_tmp.get(arr[1]+"");
2677           Point3d p23 = (Point3d)db_node_tmp.get(arr[2]+"");
2678           Point3d p24 = (Point3d)db_node_tmp.get(arr[3]+"");
2679           Point3d p25 = (Point3d)db_node_tmp.get(arr[4]+"");
2680           Point3d p26 = (Point3d)db_node_tmp.get(arr[5]+"");
2681           Point3d p27 = (Point3d)db_node_tmp.get(arr[6]+"");
2682           Point3d p28 = (Point3d)db_node_tmp.get(arr[7]+"");
2683           double x1=p11.x+p21.x*kd;
2684           double x2=p12.x+p22.x*kd;
2685           double x3=p13.x+p23.x*kd;
2686           double x4=p14.x+p24.x*kd;
2687           double x5=p15.x+p25.x*kd;
2688           double x6=p16.x+p26.x*kd;
2689           double x7=p17.x+p27.x*kd;
2690           double x8=p18.x+p28.x*kd;
2691           double y1=p11.y+p21.y*kd;
2692           double y2=p12.y+p22.y*kd;
2693           double y3=p13.y+p23.y*kd;
2694           double y4=p14.y+p24.y*kd;
2695           double y5=p15.y+p25.y*kd;
2696           double y6=p16.y+p26.y*kd;
2697           double y7=p17.y+p27.y*kd;
2698           double y8=p18.y+p28.y*kd;
2699           double z1=p11.z+p21.z*kd;
2700           double z2=p12.z+p22.z*kd;
2701           double z3=p13.z+p23.z*kd;
2702           double z4=p14.z+p24.z*kd;
2703           double z5=p15.z+p25.z*kd;
2704           double z6=p16.z+p26.z*kd;
2705           double z7=p17.z+p27.z*kd;
2706           double z8=p18.z+p28.z*kd;
2707           float[] ee = (float[])db_stresses_tmp.get(key);
2708           if(this.cb_mesh.isSelected()){
2709         	  vLines.addElement(new Point3d(x1,y1,z1));
2710         	  vLines.addElement(new Point3d(x2,y2,z2));
2711         	  vLines.addElement(new Point3d(x2,y2,z2));
2712         	  vLines.addElement(new Point3d(x3,y3,z3));
2713         	  vLines.addElement(new Point3d(x3,y3,z3));
2714         	  vLines.addElement(new Point3d(x4,y4,z4));
2715         	  vLines.addElement(new Point3d(x4,y4,z4));
2716         	  vLines.addElement(new Point3d(x1,y1,z1));
2717         	  vLines.addElement(new Point3d(x5,y5,z5));
2718         	  vLines.addElement(new Point3d(x6,y6,z6));
2719         	  vLines.addElement(new Point3d(x6,y6,z6));
2720         	  vLines.addElement(new Point3d(x7,y7,z7));
2721         	  vLines.addElement(new Point3d(x7,y7,z7));
2722         	  vLines.addElement(new Point3d(x8,y8,z8));
2723         	  vLines.addElement(new Point3d(x8,y8,z8));
2724         	  vLines.addElement(new Point3d(x5,y5,z5));
2725         	  vLines.addElement(new Point3d(x2,y2,z2));
2726         	  vLines.addElement(new Point3d(x6,y6,z6));
2727         	  vLines.addElement(new Point3d(x5,y5,z5));
2728         	  vLines.addElement(new Point3d(x1,y1,z1));
2729         	  vLines.addElement(new Point3d(x3,y3,z3));
2730         	  vLines.addElement(new Point3d(x7,y7,z7));
2731         	  vLines.addElement(new Point3d(x8,y8,z8));
2732         	  vLines.addElement(new Point3d(x4,y4,z4));
2733         	  for(int i=0; i<24; i++)vLinesColor.addElement(Color.black);
2734           }
2735           if(this.cb_conturfill.isSelected()){
2736         	  if(cb_result.getSelectedIndex()==11){
2737         		  if(ee.length==6){
2738         			  vQuad.addElement(new Point3d(x1,y1,z1));
2739             		  vQuad.addElement(new Point3d(x2,y2,z2));
2740             		  vQuad.addElement(new Point3d(x3,y3,z3));
2741             		  vQuad.addElement(new Point3d(x4,y4,z4));
2742 
2743             		  vQuad.addElement(new Point3d(x5,y5,z5));
2744             		  vQuad.addElement(new Point3d(x6,y6,z6));
2745             		  vQuad.addElement(new Point3d(x7,y7,z7));
2746             		  vQuad.addElement(new Point3d(x8,y8,z8));
2747 
2748             		  vQuad.addElement(new Point3d(x1,y1,z1));
2749             		  vQuad.addElement(new Point3d(x2,y2,z2));
2750             		  vQuad.addElement(new Point3d(x6,y6,z6));
2751             		  vQuad.addElement(new Point3d(x5,y5,z5));
2752 
2753             		  vQuad.addElement(new Point3d(x4,y4,z4));
2754             		  vQuad.addElement(new Point3d(x3,y3,z3));
2755             		  vQuad.addElement(new Point3d(x7,y7,z7));
2756             		  vQuad.addElement(new Point3d(x8,y8,z8));
2757 
2758             		  vQuad.addElement(new Point3d(x2,y2,z2));
2759             		  vQuad.addElement(new Point3d(x3,y3,z3));
2760             		  vQuad.addElement(new Point3d(x7,y7,z7));
2761             		  vQuad.addElement(new Point3d(x6,y6,z6));
2762 
2763             		  vQuad.addElement(new Point3d(x1,y1,z1));
2764             		  vQuad.addElement(new Point3d(x4,y4,z4));
2765             		  vQuad.addElement(new Point3d(x8,y8,z8));
2766             		  vQuad.addElement(new Point3d(x5,y5,z5));
2767             		  float ei = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+6*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
2768             		  Color fill = getGradient(0,ei,(float)maxsi);
2769             		  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2770         		  }else{
2771         			  float ei1 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+6*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])));
2772         			  float ei2 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[6]-ee[7],2)+Math.pow(ee[7]-ee[8],2)+Math.pow(ee[8]-ee[6],2)+6*(ee[9]*ee[9]+ee[10]*ee[10]+ee[11]*ee[11])));
2773         			  float ei3 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[12]-ee[13],2)+Math.pow(ee[13]-ee[14],2)+Math.pow(ee[14]-ee[12],2)+6*(ee[15]*ee[15]+ee[16]*ee[16]+ee[17]*ee[17])));
2774         			  float ei4 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[18]-ee[19],2)+Math.pow(ee[19]-ee[20],2)+Math.pow(ee[20]-ee[18],2)+6*(ee[21]*ee[21]+ee[22]*ee[22]+ee[23]*ee[23])));
2775         			  float ei5 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[24]-ee[25],2)+Math.pow(ee[25]-ee[26],2)+Math.pow(ee[26]-ee[24],2)+6*(ee[27]*ee[27]+ee[28]*ee[28]+ee[29]*ee[29])));
2776         			  float ei6 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[30]-ee[31],2)+Math.pow(ee[31]-ee[32],2)+Math.pow(ee[32]-ee[30],2)+6*(ee[33]*ee[33]+ee[34]*ee[34]+ee[35]*ee[35])));
2777         			  float ei7 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[36]-ee[37],2)+Math.pow(ee[37]-ee[38],2)+Math.pow(ee[38]-ee[36],2)+6*(ee[39]*ee[39]+ee[40]*ee[40]+ee[41]*ee[41])));
2778         			  float ei8 = (float)(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[42]-ee[43],2)+Math.pow(ee[43]-ee[44],2)+Math.pow(ee[44]-ee[42],2)+6*(ee[45]*ee[45]+ee[46]*ee[46]+ee[47]*ee[47])));
2779         			  Color fill1 = getGradient(0,ei1,(float)maxsi);
2780         			  Color fill2 = getGradient(0,ei2,(float)maxsi);
2781         			  Color fill3 = getGradient(0,ei3,(float)maxsi);
2782         			  Color fill4 = getGradient(0,ei4,(float)maxsi);
2783         			  Color fill5 = getGradient(0,ei5,(float)maxsi);
2784         			  Color fill6 = getGradient(0,ei6,(float)maxsi);
2785         			  Color fill7 = getGradient(0,ei7,(float)maxsi);
2786         			  Color fill8 = getGradient(0,ei8,(float)maxsi);
2787         			  vQuad.addElement(new Point3d(x1,y1,z1));
2788             		  vQuad.addElement(new Point3d(x2,y2,z2));
2789             		  vQuad.addElement(new Point3d(x3,y3,z3));
2790             		  vQuad.addElement(new Point3d(x4,y4,z4));
2791             		  vQuadColor.addElement(fill1);
2792             		  vQuadColor.addElement(fill2);
2793             		  vQuadColor.addElement(fill3);
2794             		  vQuadColor.addElement(fill4);
2795 
2796             		  vQuad.addElement(new Point3d(x5,y5,z5));
2797             		  vQuad.addElement(new Point3d(x6,y6,z6));
2798             		  vQuad.addElement(new Point3d(x7,y7,z7));
2799             		  vQuad.addElement(new Point3d(x8,y8,z8));
2800             		  vQuadColor.addElement(fill5);
2801             		  vQuadColor.addElement(fill6);
2802             		  vQuadColor.addElement(fill7);
2803             		  vQuadColor.addElement(fill8);
2804 
2805             		  vQuad.addElement(new Point3d(x1,y1,z1));
2806             		  vQuad.addElement(new Point3d(x2,y2,z2));
2807             		  vQuad.addElement(new Point3d(x6,y6,z6));
2808             		  vQuad.addElement(new Point3d(x5,y5,z5));
2809             		  vQuadColor.addElement(fill1);
2810             		  vQuadColor.addElement(fill2);
2811             		  vQuadColor.addElement(fill6);
2812             		  vQuadColor.addElement(fill5);
2813 
2814             		  vQuad.addElement(new Point3d(x4,y4,z4));
2815             		  vQuad.addElement(new Point3d(x3,y3,z3));
2816             		  vQuad.addElement(new Point3d(x7,y7,z7));
2817             		  vQuad.addElement(new Point3d(x8,y8,z8));
2818             		  vQuadColor.addElement(fill4);
2819             		  vQuadColor.addElement(fill3);
2820             		  vQuadColor.addElement(fill7);
2821             		  vQuadColor.addElement(fill8);
2822 
2823             		  vQuad.addElement(new Point3d(x2,y2,z2));
2824             		  vQuad.addElement(new Point3d(x3,y3,z3));
2825             		  vQuad.addElement(new Point3d(x7,y7,z7));
2826             		  vQuad.addElement(new Point3d(x6,y6,z6));
2827             		  vQuadColor.addElement(fill2);
2828             		  vQuadColor.addElement(fill3);
2829             		  vQuadColor.addElement(fill7);
2830             		  vQuadColor.addElement(fill6);
2831 
2832             		  vQuad.addElement(new Point3d(x1,y1,z1));
2833             		  vQuad.addElement(new Point3d(x4,y4,z4));
2834             		  vQuad.addElement(new Point3d(x8,y8,z8));
2835             		  vQuad.addElement(new Point3d(x5,y5,z5));
2836             		  vQuadColor.addElement(fill1);
2837             		  vQuadColor.addElement(fill4);
2838             		  vQuadColor.addElement(fill8);
2839             		  vQuadColor.addElement(fill5);
2840         		  }
2841         	  }else if(cb_result.getSelectedIndex()==12){
2842         		  if(ee.length==6){
2843         			  vQuad.addElement(new Point3d(x1,y1,z1));
2844         			  vQuad.addElement(new Point3d(x2,y2,z2));
2845         			  vQuad.addElement(new Point3d(x3,y3,z3));
2846         			  vQuad.addElement(new Point3d(x4,y4,z4));
2847 
2848         			  vQuad.addElement(new Point3d(x5,y5,z5));
2849         			  vQuad.addElement(new Point3d(x6,y6,z6));
2850         			  vQuad.addElement(new Point3d(x7,y7,z7));
2851         			  vQuad.addElement(new Point3d(x8,y8,z8));
2852 
2853         			  vQuad.addElement(new Point3d(x1,y1,z1));
2854         			  vQuad.addElement(new Point3d(x2,y2,z2));
2855         			  vQuad.addElement(new Point3d(x6,y6,z6));
2856         			  vQuad.addElement(new Point3d(x5,y5,z5));
2857 
2858         			  vQuad.addElement(new Point3d(x4,y4,z4));
2859         			  vQuad.addElement(new Point3d(x3,y3,z3));
2860         			  vQuad.addElement(new Point3d(x7,y7,z7));
2861         			  vQuad.addElement(new Point3d(x8,y8,z8));
2862 
2863         			  vQuad.addElement(new Point3d(x2,y2,z2));
2864         			  vQuad.addElement(new Point3d(x3,y3,z3));
2865         			  vQuad.addElement(new Point3d(x7,y7,z7));
2866         			  vQuad.addElement(new Point3d(x6,y6,z6));
2867 
2868         			  vQuad.addElement(new Point3d(x1,y1,z1));
2869         			  vQuad.addElement(new Point3d(x4,y4,z4));
2870         			  vQuad.addElement(new Point3d(x8,y8,z8));
2871         			  vQuad.addElement(new Point3d(x5,y5,z5));
2872         			  Color fill = getGradient((float)minsx,ee[0],(float)maxsx);
2873         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2874         		  }else{
2875         			  Color fill1 = getGradient((float)minsx,ee[0],(float)maxsx);
2876         			  Color fill2 = getGradient((float)minsx,ee[6],(float)maxsx);
2877         			  Color fill3 = getGradient((float)minsx,ee[12],(float)maxsx);
2878         			  Color fill4 = getGradient((float)minsx,ee[18],(float)maxsx);
2879         			  Color fill5 = getGradient((float)minsx,ee[24],(float)maxsx);
2880         			  Color fill6 = getGradient((float)minsx,ee[30],(float)maxsx);
2881         			  Color fill7 = getGradient((float)minsx,ee[36],(float)maxsx);
2882         			  Color fill8 = getGradient((float)minsx,ee[42],(float)maxsx);
2883         			  vQuad.addElement(new Point3d(x1,y1,z1));
2884         			  vQuad.addElement(new Point3d(x2,y2,z2));
2885         			  vQuad.addElement(new Point3d(x3,y3,z3));
2886         			  vQuad.addElement(new Point3d(x4,y4,z4));
2887         			  vQuadColor.addElement(fill1);
2888         			  vQuadColor.addElement(fill2);
2889         			  vQuadColor.addElement(fill3);
2890         			  vQuadColor.addElement(fill4);
2891 
2892         			  vQuad.addElement(new Point3d(x5,y5,z5));
2893         			  vQuad.addElement(new Point3d(x6,y6,z6));
2894         			  vQuad.addElement(new Point3d(x7,y7,z7));
2895         			  vQuad.addElement(new Point3d(x8,y8,z8));
2896         			  vQuadColor.addElement(fill5);
2897         			  vQuadColor.addElement(fill6);
2898         			  vQuadColor.addElement(fill7);
2899         			  vQuadColor.addElement(fill8);
2900 
2901         			  vQuad.addElement(new Point3d(x1,y1,z1));
2902         			  vQuad.addElement(new Point3d(x2,y2,z2));
2903         			  vQuad.addElement(new Point3d(x6,y6,z6));
2904         			  vQuad.addElement(new Point3d(x5,y5,z5));
2905         			  vQuadColor.addElement(fill1);
2906         			  vQuadColor.addElement(fill2);
2907         			  vQuadColor.addElement(fill6);
2908         			  vQuadColor.addElement(fill5);
2909 
2910         			  vQuad.addElement(new Point3d(x4,y4,z4));
2911         			  vQuad.addElement(new Point3d(x3,y3,z3));
2912         			  vQuad.addElement(new Point3d(x7,y7,z7));
2913         			  vQuad.addElement(new Point3d(x8,y8,z8));
2914         			  vQuadColor.addElement(fill4);
2915         			  vQuadColor.addElement(fill3);
2916         			  vQuadColor.addElement(fill7);
2917         			  vQuadColor.addElement(fill8);
2918 
2919         			  vQuad.addElement(new Point3d(x2,y2,z2));
2920         			  vQuad.addElement(new Point3d(x3,y3,z3));
2921         			  vQuad.addElement(new Point3d(x7,y7,z7));
2922         			  vQuad.addElement(new Point3d(x6,y6,z6));
2923         			  vQuadColor.addElement(fill2);
2924         			  vQuadColor.addElement(fill3);
2925         			  vQuadColor.addElement(fill7);
2926         			  vQuadColor.addElement(fill6);
2927 
2928         			  vQuad.addElement(new Point3d(x1,y1,z1));
2929         			  vQuad.addElement(new Point3d(x4,y4,z4));
2930         			  vQuad.addElement(new Point3d(x8,y8,z8));
2931         			  vQuad.addElement(new Point3d(x5,y5,z5));
2932         			  vQuadColor.addElement(fill1);
2933         			  vQuadColor.addElement(fill4);
2934         			  vQuadColor.addElement(fill8);
2935         			  vQuadColor.addElement(fill5);
2936         		  }
2937         	  }else if(cb_result.getSelectedIndex()==13){
2938         		  if(ee.length==6){
2939         			  vQuad.addElement(new Point3d(x1,y1,z1));
2940         			  vQuad.addElement(new Point3d(x2,y2,z2));
2941         			  vQuad.addElement(new Point3d(x3,y3,z3));
2942         			  vQuad.addElement(new Point3d(x4,y4,z4));
2943 
2944         			  vQuad.addElement(new Point3d(x5,y5,z5));
2945         			  vQuad.addElement(new Point3d(x6,y6,z6));
2946         			  vQuad.addElement(new Point3d(x7,y7,z7));
2947         			  vQuad.addElement(new Point3d(x8,y8,z8));
2948 
2949         			  vQuad.addElement(new Point3d(x1,y1,z1));
2950         			  vQuad.addElement(new Point3d(x2,y2,z2));
2951         			  vQuad.addElement(new Point3d(x6,y6,z6));
2952         			  vQuad.addElement(new Point3d(x5,y5,z5));
2953 
2954         			  vQuad.addElement(new Point3d(x4,y4,z4));
2955         			  vQuad.addElement(new Point3d(x3,y3,z3));
2956         			  vQuad.addElement(new Point3d(x7,y7,z7));
2957         			  vQuad.addElement(new Point3d(x8,y8,z8));
2958 
2959         			  vQuad.addElement(new Point3d(x2,y2,z2));
2960         			  vQuad.addElement(new Point3d(x3,y3,z3));
2961         			  vQuad.addElement(new Point3d(x7,y7,z7));
2962         			  vQuad.addElement(new Point3d(x6,y6,z6));
2963 
2964         			  vQuad.addElement(new Point3d(x1,y1,z1));
2965         			  vQuad.addElement(new Point3d(x4,y4,z4));
2966         			  vQuad.addElement(new Point3d(x8,y8,z8));
2967         			  vQuad.addElement(new Point3d(x5,y5,z5));
2968         			  Color fill = getGradient((float)minsy,ee[1],(float)maxsy);
2969         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
2970         		  }else{
2971         			  Color fill1 = getGradient((float)minsy,ee[1],(float)maxsy);
2972         			  Color fill2 = getGradient((float)minsy,ee[7],(float)maxsy);
2973         			  Color fill3 = getGradient((float)minsy,ee[13],(float)maxsy);
2974         			  Color fill4 = getGradient((float)minsy,ee[19],(float)maxsy);
2975         			  Color fill5 = getGradient((float)minsy,ee[25],(float)maxsy);
2976         			  Color fill6 = getGradient((float)minsy,ee[31],(float)maxsy);
2977         			  Color fill7 = getGradient((float)minsy,ee[37],(float)maxsy);
2978         			  Color fill8 = getGradient((float)minsy,ee[43],(float)maxsy);
2979         			  vQuad.addElement(new Point3d(x1,y1,z1));
2980         			  vQuad.addElement(new Point3d(x2,y2,z2));
2981         			  vQuad.addElement(new Point3d(x3,y3,z3));
2982         			  vQuad.addElement(new Point3d(x4,y4,z4));
2983         			  vQuadColor.addElement(fill1);
2984         			  vQuadColor.addElement(fill2);
2985         			  vQuadColor.addElement(fill3);
2986         			  vQuadColor.addElement(fill4);
2987 
2988         			  vQuad.addElement(new Point3d(x5,y5,z5));
2989         			  vQuad.addElement(new Point3d(x6,y6,z6));
2990         			  vQuad.addElement(new Point3d(x7,y7,z7));
2991         			  vQuad.addElement(new Point3d(x8,y8,z8));
2992         			  vQuadColor.addElement(fill5);
2993         			  vQuadColor.addElement(fill6);
2994         			  vQuadColor.addElement(fill7);
2995         			  vQuadColor.addElement(fill8);
2996 
2997         			  vQuad.addElement(new Point3d(x1,y1,z1));
2998         			  vQuad.addElement(new Point3d(x2,y2,z2));
2999         			  vQuad.addElement(new Point3d(x6,y6,z6));
3000         			  vQuad.addElement(new Point3d(x5,y5,z5));
3001         			  vQuadColor.addElement(fill1);
3002         			  vQuadColor.addElement(fill2);
3003         			  vQuadColor.addElement(fill6);
3004         			  vQuadColor.addElement(fill5);
3005 
3006         			  vQuad.addElement(new Point3d(x4,y4,z4));
3007         			  vQuad.addElement(new Point3d(x3,y3,z3));
3008         			  vQuad.addElement(new Point3d(x7,y7,z7));
3009         			  vQuad.addElement(new Point3d(x8,y8,z8));
3010         			  vQuadColor.addElement(fill4);
3011         			  vQuadColor.addElement(fill3);
3012         			  vQuadColor.addElement(fill7);
3013         			  vQuadColor.addElement(fill8);
3014 
3015         			  vQuad.addElement(new Point3d(x2,y2,z2));
3016         			  vQuad.addElement(new Point3d(x3,y3,z3));
3017         			  vQuad.addElement(new Point3d(x7,y7,z7));
3018         			  vQuad.addElement(new Point3d(x6,y6,z6));
3019         			  vQuadColor.addElement(fill2);
3020         			  vQuadColor.addElement(fill3);
3021         			  vQuadColor.addElement(fill7);
3022         			  vQuadColor.addElement(fill6);
3023 
3024         			  vQuad.addElement(new Point3d(x1,y1,z1));
3025         			  vQuad.addElement(new Point3d(x4,y4,z4));
3026         			  vQuad.addElement(new Point3d(x8,y8,z8));
3027         			  vQuad.addElement(new Point3d(x5,y5,z5));
3028         			  vQuadColor.addElement(fill1);
3029         			  vQuadColor.addElement(fill4);
3030         			  vQuadColor.addElement(fill8);
3031         			  vQuadColor.addElement(fill5);
3032         		  }
3033         	  }else if(cb_result.getSelectedIndex()==14){
3034         		  if(ee.length==6){
3035         			  vQuad.addElement(new Point3d(x1,y1,z1));
3036         			  vQuad.addElement(new Point3d(x2,y2,z2));
3037         			  vQuad.addElement(new Point3d(x3,y3,z3));
3038         			  vQuad.addElement(new Point3d(x4,y4,z4));
3039 
3040         			  vQuad.addElement(new Point3d(x5,y5,z5));
3041         			  vQuad.addElement(new Point3d(x6,y6,z6));
3042         			  vQuad.addElement(new Point3d(x7,y7,z7));
3043         			  vQuad.addElement(new Point3d(x8,y8,z8));
3044 
3045         			  vQuad.addElement(new Point3d(x1,y1,z1));
3046         			  vQuad.addElement(new Point3d(x2,y2,z2));
3047         			  vQuad.addElement(new Point3d(x6,y6,z6));
3048         			  vQuad.addElement(new Point3d(x5,y5,z5));
3049 
3050         			  vQuad.addElement(new Point3d(x4,y4,z4));
3051         			  vQuad.addElement(new Point3d(x3,y3,z3));
3052         			  vQuad.addElement(new Point3d(x7,y7,z7));
3053         			  vQuad.addElement(new Point3d(x8,y8,z8));
3054 
3055         			  vQuad.addElement(new Point3d(x2,y2,z2));
3056         			  vQuad.addElement(new Point3d(x3,y3,z3));
3057         			  vQuad.addElement(new Point3d(x7,y7,z7));
3058         			  vQuad.addElement(new Point3d(x6,y6,z6));
3059 
3060         			  vQuad.addElement(new Point3d(x1,y1,z1));
3061         			  vQuad.addElement(new Point3d(x4,y4,z4));
3062         			  vQuad.addElement(new Point3d(x8,y8,z8));
3063         			  vQuad.addElement(new Point3d(x5,y5,z5));
3064         			  Color fill = getGradient((float)minsz,ee[2],(float)maxsz);
3065         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
3066         		  }else{
3067         			  Color fill1 = getGradient((float)minsz,ee[2],(float)maxsz);
3068         			  Color fill2 = getGradient((float)minsz,ee[8],(float)maxsz);
3069         			  Color fill3 = getGradient((float)minsz,ee[14],(float)maxsz);
3070         			  Color fill4 = getGradient((float)minsz,ee[20],(float)maxsz);
3071         			  Color fill5 = getGradient((float)minsz,ee[26],(float)maxsz);
3072         			  Color fill6 = getGradient((float)minsz,ee[32],(float)maxsz);
3073         			  Color fill7 = getGradient((float)minsz,ee[38],(float)maxsz);
3074         			  Color fill8 = getGradient((float)minsz,ee[44],(float)maxsz);
3075         			  vQuad.addElement(new Point3d(x1,y1,z1));
3076         			  vQuad.addElement(new Point3d(x2,y2,z2));
3077         			  vQuad.addElement(new Point3d(x3,y3,z3));
3078         			  vQuad.addElement(new Point3d(x4,y4,z4));
3079         			  vQuadColor.addElement(fill1);
3080         			  vQuadColor.addElement(fill2);
3081         			  vQuadColor.addElement(fill3);
3082         			  vQuadColor.addElement(fill4);
3083 
3084         			  vQuad.addElement(new Point3d(x5,y5,z5));
3085         			  vQuad.addElement(new Point3d(x6,y6,z6));
3086         			  vQuad.addElement(new Point3d(x7,y7,z7));
3087         			  vQuad.addElement(new Point3d(x8,y8,z8));
3088         			  vQuadColor.addElement(fill5);
3089         			  vQuadColor.addElement(fill6);
3090         			  vQuadColor.addElement(fill7);
3091         			  vQuadColor.addElement(fill8);
3092 
3093         			  vQuad.addElement(new Point3d(x1,y1,z1));
3094         			  vQuad.addElement(new Point3d(x2,y2,z2));
3095         			  vQuad.addElement(new Point3d(x6,y6,z6));
3096         			  vQuad.addElement(new Point3d(x5,y5,z5));
3097         			  vQuadColor.addElement(fill1);
3098         			  vQuadColor.addElement(fill2);
3099         			  vQuadColor.addElement(fill6);
3100         			  vQuadColor.addElement(fill5);
3101 
3102         			  vQuad.addElement(new Point3d(x4,y4,z4));
3103         			  vQuad.addElement(new Point3d(x3,y3,z3));
3104         			  vQuad.addElement(new Point3d(x7,y7,z7));
3105         			  vQuad.addElement(new Point3d(x8,y8,z8));
3106         			  vQuadColor.addElement(fill4);
3107         			  vQuadColor.addElement(fill3);
3108         			  vQuadColor.addElement(fill7);
3109         			  vQuadColor.addElement(fill8);
3110 
3111         			  vQuad.addElement(new Point3d(x2,y2,z2));
3112         			  vQuad.addElement(new Point3d(x3,y3,z3));
3113         			  vQuad.addElement(new Point3d(x7,y7,z7));
3114         			  vQuad.addElement(new Point3d(x6,y6,z6));
3115         			  vQuadColor.addElement(fill2);
3116         			  vQuadColor.addElement(fill3);
3117         			  vQuadColor.addElement(fill7);
3118         			  vQuadColor.addElement(fill6);
3119 
3120         			  vQuad.addElement(new Point3d(x1,y1,z1));
3121         			  vQuad.addElement(new Point3d(x4,y4,z4));
3122         			  vQuad.addElement(new Point3d(x8,y8,z8));
3123         			  vQuad.addElement(new Point3d(x5,y5,z5));
3124         			  vQuadColor.addElement(fill1);
3125         			  vQuadColor.addElement(fill4);
3126         			  vQuadColor.addElement(fill8);
3127         			  vQuadColor.addElement(fill5);
3128         		  }
3129         	  }else if(cb_result.getSelectedIndex()==15){
3130         		  if(ee.length==6){
3131         			  vQuad.addElement(new Point3d(x1,y1,z1));
3132         			  vQuad.addElement(new Point3d(x2,y2,z2));
3133         			  vQuad.addElement(new Point3d(x3,y3,z3));
3134         			  vQuad.addElement(new Point3d(x4,y4,z4));
3135 
3136         			  vQuad.addElement(new Point3d(x5,y5,z5));
3137         			  vQuad.addElement(new Point3d(x6,y6,z6));
3138         			  vQuad.addElement(new Point3d(x7,y7,z7));
3139         			  vQuad.addElement(new Point3d(x8,y8,z8));
3140 
3141         			  vQuad.addElement(new Point3d(x1,y1,z1));
3142         			  vQuad.addElement(new Point3d(x2,y2,z2));
3143         			  vQuad.addElement(new Point3d(x6,y6,z6));
3144         			  vQuad.addElement(new Point3d(x5,y5,z5));
3145 
3146         			  vQuad.addElement(new Point3d(x4,y4,z4));
3147         			  vQuad.addElement(new Point3d(x3,y3,z3));
3148         			  vQuad.addElement(new Point3d(x7,y7,z7));
3149         			  vQuad.addElement(new Point3d(x8,y8,z8));
3150 
3151         			  vQuad.addElement(new Point3d(x2,y2,z2));
3152         			  vQuad.addElement(new Point3d(x3,y3,z3));
3153         			  vQuad.addElement(new Point3d(x7,y7,z7));
3154         			  vQuad.addElement(new Point3d(x6,y6,z6));
3155 
3156         			  vQuad.addElement(new Point3d(x1,y1,z1));
3157         			  vQuad.addElement(new Point3d(x4,y4,z4));
3158         			  vQuad.addElement(new Point3d(x8,y8,z8));
3159         			  vQuad.addElement(new Point3d(x5,y5,z5));
3160         			  Color fill = getGradient((float)minsxy,ee[3],(float)maxsxy);
3161         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
3162         		  }else{
3163         			  Color fill1 = getGradient((float)minsxy,ee[3],(float)maxsxy);
3164         			  Color fill2 = getGradient((float)minsxy,ee[9],(float)maxsxy);
3165         			  Color fill3 = getGradient((float)minsxy,ee[15],(float)maxsxy);
3166         			  Color fill4 = getGradient((float)minsxy,ee[21],(float)maxsxy);
3167         			  Color fill5 = getGradient((float)minsxy,ee[27],(float)maxsxy);
3168         			  Color fill6 = getGradient((float)minsxy,ee[33],(float)maxsxy);
3169         			  Color fill7 = getGradient((float)minsxy,ee[39],(float)maxsxy);
3170         			  Color fill8 = getGradient((float)minsxy,ee[45],(float)maxsxy);
3171         			  vQuad.addElement(new Point3d(x1,y1,z1));
3172         			  vQuad.addElement(new Point3d(x2,y2,z2));
3173         			  vQuad.addElement(new Point3d(x3,y3,z3));
3174         			  vQuad.addElement(new Point3d(x4,y4,z4));
3175         			  vQuadColor.addElement(fill1);
3176         			  vQuadColor.addElement(fill2);
3177         			  vQuadColor.addElement(fill3);
3178         			  vQuadColor.addElement(fill4);
3179 
3180         			  vQuad.addElement(new Point3d(x5,y5,z5));
3181         			  vQuad.addElement(new Point3d(x6,y6,z6));
3182         			  vQuad.addElement(new Point3d(x7,y7,z7));
3183         			  vQuad.addElement(new Point3d(x8,y8,z8));
3184         			  vQuadColor.addElement(fill5);
3185         			  vQuadColor.addElement(fill6);
3186         			  vQuadColor.addElement(fill7);
3187         			  vQuadColor.addElement(fill8);
3188 
3189         			  vQuad.addElement(new Point3d(x1,y1,z1));
3190         			  vQuad.addElement(new Point3d(x2,y2,z2));
3191         			  vQuad.addElement(new Point3d(x6,y6,z6));
3192         			  vQuad.addElement(new Point3d(x5,y5,z5));
3193         			  vQuadColor.addElement(fill1);
3194         			  vQuadColor.addElement(fill2);
3195         			  vQuadColor.addElement(fill6);
3196         			  vQuadColor.addElement(fill5);
3197 
3198         			  vQuad.addElement(new Point3d(x4,y4,z4));
3199         			  vQuad.addElement(new Point3d(x3,y3,z3));
3200         			  vQuad.addElement(new Point3d(x7,y7,z7));
3201         			  vQuad.addElement(new Point3d(x8,y8,z8));
3202         			  vQuadColor.addElement(fill4);
3203         			  vQuadColor.addElement(fill3);
3204         			  vQuadColor.addElement(fill7);
3205         			  vQuadColor.addElement(fill8);
3206 
3207         			  vQuad.addElement(new Point3d(x2,y2,z2));
3208         			  vQuad.addElement(new Point3d(x3,y3,z3));
3209         			  vQuad.addElement(new Point3d(x7,y7,z7));
3210         			  vQuad.addElement(new Point3d(x6,y6,z6));
3211         			  vQuadColor.addElement(fill2);
3212         			  vQuadColor.addElement(fill3);
3213         			  vQuadColor.addElement(fill7);
3214         			  vQuadColor.addElement(fill6);
3215 
3216         			  vQuad.addElement(new Point3d(x1,y1,z1));
3217         			  vQuad.addElement(new Point3d(x4,y4,z4));
3218         			  vQuad.addElement(new Point3d(x8,y8,z8));
3219         			  vQuad.addElement(new Point3d(x5,y5,z5));
3220         			  vQuadColor.addElement(fill1);
3221         			  vQuadColor.addElement(fill4);
3222         			  vQuadColor.addElement(fill8);
3223         			  vQuadColor.addElement(fill5);
3224         		  }
3225         	  }else if(cb_result.getSelectedIndex()==16){
3226         		  if(ee.length==6){
3227         			  vQuad.addElement(new Point3d(x1,y1,z1));
3228         			  vQuad.addElement(new Point3d(x2,y2,z2));
3229         			  vQuad.addElement(new Point3d(x3,y3,z3));
3230         			  vQuad.addElement(new Point3d(x4,y4,z4));
3231 
3232         			  vQuad.addElement(new Point3d(x5,y5,z5));
3233         			  vQuad.addElement(new Point3d(x6,y6,z6));
3234         			  vQuad.addElement(new Point3d(x7,y7,z7));
3235         			  vQuad.addElement(new Point3d(x8,y8,z8));
3236 
3237         			  vQuad.addElement(new Point3d(x1,y1,z1));
3238         			  vQuad.addElement(new Point3d(x2,y2,z2));
3239         			  vQuad.addElement(new Point3d(x6,y6,z6));
3240         			  vQuad.addElement(new Point3d(x5,y5,z5));
3241 
3242         			  vQuad.addElement(new Point3d(x4,y4,z4));
3243         			  vQuad.addElement(new Point3d(x3,y3,z3));
3244         			  vQuad.addElement(new Point3d(x7,y7,z7));
3245         			  vQuad.addElement(new Point3d(x8,y8,z8));
3246 
3247         			  vQuad.addElement(new Point3d(x2,y2,z2));
3248         			  vQuad.addElement(new Point3d(x3,y3,z3));
3249         			  vQuad.addElement(new Point3d(x7,y7,z7));
3250         			  vQuad.addElement(new Point3d(x6,y6,z6));
3251 
3252         			  vQuad.addElement(new Point3d(x1,y1,z1));
3253         			  vQuad.addElement(new Point3d(x4,y4,z4));
3254         			  vQuad.addElement(new Point3d(x8,y8,z8));
3255         			  vQuad.addElement(new Point3d(x5,y5,z5));
3256         			  Color fill = getGradient((float)minsyz,ee[4],(float)maxsyz);
3257         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
3258         		  }else{
3259         			  Color fill1 = getGradient((float)minsyz,ee[4],(float)maxsyz);
3260         			  Color fill2 = getGradient((float)minsyz,ee[10],(float)maxsyz);
3261         			  Color fill3 = getGradient((float)minsyz,ee[16],(float)maxsyz);
3262         			  Color fill4 = getGradient((float)minsyz,ee[22],(float)maxsyz);
3263         			  Color fill5 = getGradient((float)minsyz,ee[28],(float)maxsyz);
3264         			  Color fill6 = getGradient((float)minsyz,ee[34],(float)maxsyz);
3265         			  Color fill7 = getGradient((float)minsyz,ee[40],(float)maxsyz);
3266         			  Color fill8 = getGradient((float)minsyz,ee[46],(float)maxsyz);
3267         			  vQuad.addElement(new Point3d(x1,y1,z1));
3268         			  vQuad.addElement(new Point3d(x2,y2,z2));
3269         			  vQuad.addElement(new Point3d(x3,y3,z3));
3270         			  vQuad.addElement(new Point3d(x4,y4,z4));
3271         			  vQuadColor.addElement(fill1);
3272         			  vQuadColor.addElement(fill2);
3273         			  vQuadColor.addElement(fill3);
3274         			  vQuadColor.addElement(fill4);
3275 
3276         			  vQuad.addElement(new Point3d(x5,y5,z5));
3277         			  vQuad.addElement(new Point3d(x6,y6,z6));
3278         			  vQuad.addElement(new Point3d(x7,y7,z7));
3279         			  vQuad.addElement(new Point3d(x8,y8,z8));
3280         			  vQuadColor.addElement(fill5);
3281         			  vQuadColor.addElement(fill6);
3282         			  vQuadColor.addElement(fill7);
3283         			  vQuadColor.addElement(fill8);
3284 
3285         			  vQuad.addElement(new Point3d(x1,y1,z1));
3286         			  vQuad.addElement(new Point3d(x2,y2,z2));
3287         			  vQuad.addElement(new Point3d(x6,y6,z6));
3288         			  vQuad.addElement(new Point3d(x5,y5,z5));
3289         			  vQuadColor.addElement(fill1);
3290         			  vQuadColor.addElement(fill2);
3291         			  vQuadColor.addElement(fill6);
3292         			  vQuadColor.addElement(fill5);
3293 
3294         			  vQuad.addElement(new Point3d(x4,y4,z4));
3295         			  vQuad.addElement(new Point3d(x3,y3,z3));
3296         			  vQuad.addElement(new Point3d(x7,y7,z7));
3297         			  vQuad.addElement(new Point3d(x8,y8,z8));
3298         			  vQuadColor.addElement(fill4);
3299         			  vQuadColor.addElement(fill3);
3300         			  vQuadColor.addElement(fill7);
3301         			  vQuadColor.addElement(fill8);
3302 
3303         			  vQuad.addElement(new Point3d(x2,y2,z2));
3304         			  vQuad.addElement(new Point3d(x3,y3,z3));
3305         			  vQuad.addElement(new Point3d(x7,y7,z7));
3306         			  vQuad.addElement(new Point3d(x6,y6,z6));
3307         			  vQuadColor.addElement(fill2);
3308         			  vQuadColor.addElement(fill3);
3309         			  vQuadColor.addElement(fill7);
3310         			  vQuadColor.addElement(fill6);
3311 
3312         			  vQuad.addElement(new Point3d(x1,y1,z1));
3313         			  vQuad.addElement(new Point3d(x4,y4,z4));
3314         			  vQuad.addElement(new Point3d(x8,y8,z8));
3315         			  vQuad.addElement(new Point3d(x5,y5,z5));
3316         			  vQuadColor.addElement(fill1);
3317         			  vQuadColor.addElement(fill4);
3318         			  vQuadColor.addElement(fill8);
3319         			  vQuadColor.addElement(fill5);
3320         		  }
3321         	  }else if(cb_result.getSelectedIndex()==17){
3322         		  if(ee.length==6){
3323         			  vQuad.addElement(new Point3d(x1,y1,z1));
3324         			  vQuad.addElement(new Point3d(x2,y2,z2));
3325         			  vQuad.addElement(new Point3d(x3,y3,z3));
3326         			  vQuad.addElement(new Point3d(x4,y4,z4));
3327 
3328         			  vQuad.addElement(new Point3d(x5,y5,z5));
3329         			  vQuad.addElement(new Point3d(x6,y6,z6));
3330         			  vQuad.addElement(new Point3d(x7,y7,z7));
3331         			  vQuad.addElement(new Point3d(x8,y8,z8));
3332 
3333         			  vQuad.addElement(new Point3d(x1,y1,z1));
3334         			  vQuad.addElement(new Point3d(x2,y2,z2));
3335         			  vQuad.addElement(new Point3d(x6,y6,z6));
3336         			  vQuad.addElement(new Point3d(x5,y5,z5));
3337 
3338         			  vQuad.addElement(new Point3d(x4,y4,z4));
3339         			  vQuad.addElement(new Point3d(x3,y3,z3));
3340         			  vQuad.addElement(new Point3d(x7,y7,z7));
3341         			  vQuad.addElement(new Point3d(x8,y8,z8));
3342 
3343         			  vQuad.addElement(new Point3d(x2,y2,z2));
3344         			  vQuad.addElement(new Point3d(x3,y3,z3));
3345         			  vQuad.addElement(new Point3d(x7,y7,z7));
3346         			  vQuad.addElement(new Point3d(x6,y6,z6));
3347 
3348         			  vQuad.addElement(new Point3d(x1,y1,z1));
3349         			  vQuad.addElement(new Point3d(x4,y4,z4));
3350         			  vQuad.addElement(new Point3d(x8,y8,z8));
3351         			  vQuad.addElement(new Point3d(x5,y5,z5));
3352         			  Color fill = getGradient((float)minsxz,ee[5],(float)maxsxz);
3353         			  for(int i=0; i<24; i++)vQuadColor.addElement(fill);
3354         		  }else{
3355         			  Color fill1 = getGradient((float)minsxz,ee[5],(float)maxsxz);
3356         			  Color fill2 = getGradient((float)minsxz,ee[11],(float)maxsxz);
3357         			  Color fill3 = getGradient((float)minsxz,ee[17],(float)maxsxz);
3358         			  Color fill4 = getGradient((float)minsxz,ee[23],(float)maxsxz);
3359         			  Color fill5 = getGradient((float)minsxz,ee[29],(float)maxsxz);
3360         			  Color fill6 = getGradient((float)minsxz,ee[35],(float)maxsxz);
3361         			  Color fill7 = getGradient((float)minsxz,ee[41],(float)maxsxz);
3362         			  Color fill8 = getGradient((float)minsxz,ee[47],(float)maxsxz);
3363         			  vQuad.addElement(new Point3d(x1,y1,z1));
3364         			  vQuad.addElement(new Point3d(x2,y2,z2));
3365         			  vQuad.addElement(new Point3d(x3,y3,z3));
3366         			  vQuad.addElement(new Point3d(x4,y4,z4));
3367         			  vQuadColor.addElement(fill1);
3368         			  vQuadColor.addElement(fill2);
3369         			  vQuadColor.addElement(fill3);
3370         			  vQuadColor.addElement(fill4);
3371 
3372         			  vQuad.addElement(new Point3d(x5,y5,z5));
3373         			  vQuad.addElement(new Point3d(x6,y6,z6));
3374         			  vQuad.addElement(new Point3d(x7,y7,z7));
3375         			  vQuad.addElement(new Point3d(x8,y8,z8));
3376         			  vQuadColor.addElement(fill5);
3377         			  vQuadColor.addElement(fill6);
3378         			  vQuadColor.addElement(fill7);
3379         			  vQuadColor.addElement(fill8);
3380 
3381         			  vQuad.addElement(new Point3d(x1,y1,z1));
3382         			  vQuad.addElement(new Point3d(x2,y2,z2));
3383         			  vQuad.addElement(new Point3d(x6,y6,z6));
3384         			  vQuad.addElement(new Point3d(x5,y5,z5));
3385         			  vQuadColor.addElement(fill1);
3386         			  vQuadColor.addElement(fill2);
3387         			  vQuadColor.addElement(fill6);
3388         			  vQuadColor.addElement(fill5);
3389 
3390         			  vQuad.addElement(new Point3d(x4,y4,z4));
3391         			  vQuad.addElement(new Point3d(x3,y3,z3));
3392         			  vQuad.addElement(new Point3d(x7,y7,z7));
3393         			  vQuad.addElement(new Point3d(x8,y8,z8));
3394         			  vQuadColor.addElement(fill4);
3395         			  vQuadColor.addElement(fill3);
3396         			  vQuadColor.addElement(fill7);
3397         			  vQuadColor.addElement(fill8);
3398 
3399         			  vQuad.addElement(new Point3d(x2,y2,z2));
3400         			  vQuad.addElement(new Point3d(x3,y3,z3));
3401         			  vQuad.addElement(new Point3d(x7,y7,z7));
3402         			  vQuad.addElement(new Point3d(x6,y6,z6));
3403         			  vQuadColor.addElement(fill2);
3404         			  vQuadColor.addElement(fill3);
3405         			  vQuadColor.addElement(fill7);
3406         			  vQuadColor.addElement(fill6);
3407 
3408         			  vQuad.addElement(new Point3d(x1,y1,z1));
3409         			  vQuad.addElement(new Point3d(x4,y4,z4));
3410         			  vQuad.addElement(new Point3d(x8,y8,z8));
3411         			  vQuad.addElement(new Point3d(x5,y5,z5));
3412         			  vQuadColor.addElement(fill1);
3413         			  vQuadColor.addElement(fill4);
3414         			  vQuadColor.addElement(fill8);
3415         			  vQuadColor.addElement(fill5);
3416         		  }
3417         	  }
3418           }
3419         }
3420       }
3421     }
3422 
3423     if(cb_gradientresult.isSelected()){
3424       BufferedImage image = (BufferedImage)createImage(130,290);
3425       Graphics g = image.getGraphics();
3426       double min = 0;
3427       double max = 0;
3428       if(cb_result.getSelectedIndex()==0){max=maxdi; min=mindi;}
3429       else if(cb_result.getSelectedIndex()==1){max=maxdx; min=mindx;}
3430       else if(cb_result.getSelectedIndex()==2){max=maxdy; min=mindy;}
3431       else if(cb_result.getSelectedIndex()==3){max=maxdz; min=mindz;}
3432       else if(cb_result.getSelectedIndex()==4){max=maxei; min=minei;}
3433       else if(cb_result.getSelectedIndex()==5){max=maxex; min=minex;}
3434       else if(cb_result.getSelectedIndex()==6){max=maxey; min=miney;}
3435       else if(cb_result.getSelectedIndex()==7){max=maxez; min=minez;}
3436       else if(cb_result.getSelectedIndex()==8){max=maxexy; min=minexy;}
3437       else if(cb_result.getSelectedIndex()==9){max=maxeyz; min=mineyz;}
3438       else if(cb_result.getSelectedIndex()==10){max=maxexz; min=minexz;}
3439       else if(cb_result.getSelectedIndex()==11){max=maxsi; min=minsi;}
3440       else if(cb_result.getSelectedIndex()==12){max=maxsx; min=minsx;}
3441       else if(cb_result.getSelectedIndex()==13){max=maxsy; min=minsy;}
3442       else if(cb_result.getSelectedIndex()==14){max=maxsz; min=minsz;}
3443       else if(cb_result.getSelectedIndex()==15){max=maxsxy; min=minsxy;}
3444       else if(cb_result.getSelectedIndex()==16){max=maxsyz; min=minsyz;}
3445       else if(cb_result.getSelectedIndex()==17){max=maxsxz; min=minsxz;}
3446       if(max<min)min=0;
3447       g.setColor(Color.white);
3448       g.fillRect(0,0,image.getWidth(),image.getHeight());
3449       g.setColor(Color.black);
3450       g.drawRect(0,0,image.getWidth()-2,image.getHeight()-2);
3451       g.drawString(cb_result.getSelectedItem()+"",5,15);
3452       for(int i=0; i<17; i++) {
3453     	  String st_val = ""+(min+(max-min)/16*i);
3454     	  int len = 16;
3455     	  if(st_val.length()>len){
3456     		  if(st_val.toUpperCase().indexOf("E")!=-1){
3457     			  String st2 = st_val.substring(st_val.toUpperCase().indexOf("E"),st_val.length());
3458     			  String st1 = st_val.substring(0,len-st2.length());
3459     			  st_val = st1+st2;
3460     		  }else{
3461     			  st_val = st_val.substring(0,len);
3462     		  }
3463     	  }
3464     	  g.drawString(st_val,16,i*16+5+25);
3465       }
3466       for(int i=5; i<15; i++) g.drawImage(img_gradient.getImage(),i,25,null);
3467       bgNode.setImage(new ImageComponent2D(ImageComponent2D.FORMAT_RGB8,image));
3468     }else{ bgNode.setImage(null);}
3469 
3470 
3471     // Shape3D Line
3472     if(vLines.size()>0){
3473     	Point3d[] MPoint = new Point3d[vLines.size()];
3474     	Color3f[] MColor = new Color3f[vLinesColor.size()];
3475     	for(int i=0; i<vLines.size(); i++){
3476     		MPoint[i] = (Point3d) vLines.elementAt(i);
3477     		MColor[i] = new Color3f((Color) vLinesColor.elementAt(i));
3478     	}
3479     	Shape3D Shape3DLine = new Shape3D();
3480     	Shape3DLine.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
3481     	LineArray gla = new LineArray(MPoint.length, LineArray.COORDINATES | LineArray.COLOR_3);
3482     	gla.setCapability(LineArray.ALLOW_COUNT_READ);
3483     	gla.setCapability(LineArray.ALLOW_FORMAT_READ);
3484     	gla.setCapability(LineArray.ALLOW_COORDINATE_READ);
3485     	gla.setCoordinates(0, MPoint);
3486     	gla.setColors(0, MColor);
3487     	Shape3DLine.setGeometry(gla,0);
3488     	resultGroup.addChild(Shape3DLine);
3489     }
3490     // Shape3D Triangle
3491     if(vTriangle.size()>0){
3492     	Point3d[] MPoint = new Point3d[vTriangle.size()];
3493     	Color3f[] MColor = new Color3f[vTriangleColor.size()];
3494     	for(int i=0; i<vTriangle.size(); i++){
3495     		MPoint[i] = (Point3d) vTriangle.elementAt(i);
3496     		MColor[i] = new Color3f((Color) vTriangleColor.elementAt(i));
3497     	}
3498     	Appearance app = new Appearance();
3499     	PolygonAttributes pa = new PolygonAttributes();
3500     	pa.setCullFace(PolygonAttributes.CULL_NONE);
3501     	app.setPolygonAttributes(pa);
3502     	Shape3D Shape3DTriangle = new Shape3D();
3503     	Shape3DTriangle.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
3504     	TriangleArray gta = new TriangleArray(MPoint.length, TriangleArray.COORDINATES | TriangleArray.COLOR_3);
3505     	gta.setCapability(TriangleArray.ALLOW_COUNT_READ);
3506     	gta.setCapability(TriangleArray.ALLOW_FORMAT_READ);
3507     	gta.setCapability(TriangleArray.ALLOW_COORDINATE_READ);
3508     	gta.setCoordinates(0, MPoint);
3509     	gta.setColors(0, MColor);
3510     	Shape3DTriangle.setAppearance(app);
3511     	Shape3DTriangle.setGeometry(gta,0);
3512     	resultGroup.addChild(Shape3DTriangle);
3513     }
3514     // Shape3D Quad
3515     if(vQuad.size()>0){
3516     	Point3d[] MPoint = new Point3d[vQuad.size()];
3517     	Color3f[] MColor = new Color3f[vQuadColor.size()];
3518     	for(int i=0; i<vQuad.size(); i++){
3519     		MPoint[i] = (Point3d) vQuad.elementAt(i);
3520     		MColor[i] = new Color3f((Color) vQuadColor.elementAt(i));
3521     	}
3522     	Appearance app = new Appearance();
3523     	PolygonAttributes pa = new PolygonAttributes();
3524     	pa.setCullFace(PolygonAttributes.CULL_NONE);
3525     	app.setPolygonAttributes(pa);
3526     	Shape3D Shape3DQuad = new Shape3D();
3527     	Shape3DQuad.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
3528     	QuadArray gqa = new QuadArray(MPoint.length, TriangleArray.COORDINATES | TriangleArray.COLOR_3);
3529     	gqa.setCapability(QuadArray.ALLOW_COUNT_READ);
3530     	gqa.setCapability(QuadArray.ALLOW_FORMAT_READ);
3531     	gqa.setCapability(QuadArray.ALLOW_COORDINATE_READ);
3532     	gqa.setCoordinates(0, MPoint);
3533     	gqa.setColors(0, MColor);
3534     	Shape3DQuad.setAppearance(app);
3535     	Shape3DQuad.setGeometry(gqa,0);
3536     	resultGroup.addChild(Shape3DQuad);
3537     }
3538     trGroup.addChild(resultGroup);
3539   }
3540 
getFrame(Component component)3541   public static Frame getFrame(Component component){
3542     for(; component != null && !(component instanceof Frame); component = component.getParent());
3543     return (Frame)component;
3544   }
3545 
3546 
b_open_actionPerformed(ActionEvent e)3547   void b_open_actionPerformed(ActionEvent e) {
3548       FileFilter f1 =  new FileFilter() {
3549           public boolean accept(File f) {
3550               if (f.isDirectory()) return true;
3551               return f.getName().toLowerCase().endsWith(".res");
3552           }
3553 
3554           public String getDescription() {
3555               return "Open solver result (.res)";
3556           }
3557       };
3558 
3559       JFileChooser fd = new JFileChooser(ConfDB.getProperty("Filepath"));
3560       fd.setSize(350,200);
3561       fd.addChoosableFileFilter(f1);
3562 
3563       try {
3564 
3565           int choise = fd.showOpenDialog(this);
3566 
3567           if(choise == JFileChooser.APPROVE_OPTION && fd.getSelectedFile()!=null){
3568               String infile = fd.getSelectedFile().getAbsolutePath();
3569 
3570               if (fd.getFileFilter().equals(f1) || infile.toLowerCase().endsWith(".in")){
3571                   load(infile);
3572                   view_zoom_all();
3573               }
3574           }
3575 
3576           // Update configuration file with path
3577           if (fd.getSelectedFile() != null) {
3578               ConfDB.setProperty("Filepath", fd.getSelectedFile().getAbsolutePath());
3579               save_configuration();
3580               header(fd.getSelectedFile().getName());
3581           }
3582 
3583     } catch(Exception e1) {error(e1);}
3584   }
3585 
3586 
db_graph_preparation(int Y, String nd_el)3587   void db_graph_preparation(int Y, String nd_el) {
3588       String info=null;
3589       String[][] arr = new String[time_step.getModel().getSize()][2];
3590       switch(Y){
3591         case 0://DISPLACEMENTS (I)
3592         info="#The results are from node: "+nd_el+"\n#X: time   Y: displacement in direction (I)";
3593         for(int i=0; i<arr.length; i++){
3594           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3595           Hashtable ht = (Hashtable)db_displacements.get(arr[i][0]);
3596           Point3d p3d = (Point3d)ht.get(nd_el);
3597           arr[i][1]=Math.sqrt(p3d.x*p3d.x+p3d.y*p3d.y+p3d.z*p3d.z)+"";
3598         }
3599         break;
3600         case 1://DISPLACEMENTS (X)
3601         info="#The results are from node: "+nd_el+"\n#X: time   Y: displacement in direction (X)";
3602         for(int i=0; i<arr.length; i++){
3603           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3604           Hashtable ht = (Hashtable)db_displacements.get(arr[i][0]);
3605           Point3d p3d = (Point3d)ht.get(nd_el);
3606           arr[i][1]=p3d.x+"";
3607         }
3608         break;
3609         case 2://DISPLACEMENTS (Y)
3610         info="#The results are from node: "+nd_el+"\n#X: time   Y: displacement in direction (Y)";
3611         for(int i=0; i<arr.length; i++){
3612           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3613           Hashtable ht = (Hashtable)db_displacements.get(arr[i][0]);
3614           Point3d p3d = (Point3d)ht.get(nd_el);
3615           arr[i][1]=p3d.y+"";
3616         }
3617         break;
3618         case 3://DISPLACEMENTS (Z)
3619         info="#The results are from node: "+nd_el+"\n#X: time   Y: displacement in direction (Z)";
3620         for(int i=0; i<arr.length; i++){
3621           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3622           Hashtable ht = (Hashtable)db_displacements.get(arr[i][0]);
3623           Point3d p3d = (Point3d)ht.get(nd_el);
3624           arr[i][1]=p3d.z+"";
3625         }
3626         break;
3627         case 4://STRAINS (I)
3628         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (I)";
3629         for(int i=0; i<arr.length; i++){
3630           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3631           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3632           float[] ee = (float[])ht.get(nd_el);
3633           try{
3634             arr[i][1]=(Math.sqrt(2)/3*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+1.5*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])))+"";
3635           }catch(Exception e1){arr[i][1]="";}
3636         }
3637         break;
3638         case 5://STRAINS (X)
3639         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (X)";
3640         for(int i=0; i<arr.length; i++){
3641           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3642           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3643           float[] ee = (float[])ht.get(nd_el);
3644           try{ arr[i][1]=ee[0]+""; }catch(Exception e1){arr[i][1]="";}
3645         }
3646         break;
3647         case 6://STRAINS (Y)
3648         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (Y)";
3649         for(int i=0; i<arr.length; i++){
3650           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3651           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3652           float[] ee = (float[])ht.get(nd_el);
3653           try{ arr[i][1]=ee[1]+""; }catch(Exception e1){arr[i][1]="";}
3654         }
3655         break;
3656         case 7://STRAINS (Z)
3657         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (Z)";
3658         for(int i=0; i<arr.length; i++){
3659           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3660           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3661           float[] ee = (float[])ht.get(nd_el);
3662           try{ arr[i][1]=ee[2]+""; }catch(Exception e1){arr[i][1]="";}
3663         }
3664         break;
3665         case 8://STRAINS (XY)
3666         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (XY)";
3667         for(int i=0; i<arr.length; i++){
3668           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3669           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3670           float[] ee = (float[])ht.get(nd_el);
3671           try{ arr[i][1]=ee[3]+""; }catch(Exception e1){arr[i][1]="";}
3672         }
3673         break;
3674         case 9://STRAINS (YZ)
3675         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (YZ)";
3676         for(int i=0; i<arr.length; i++){
3677           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3678           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3679           float[] ee = (float[])ht.get(nd_el);
3680           try{ arr[i][1]=ee[4]+""; }catch(Exception e1){arr[i][1]="";}
3681         }
3682         break;
3683         case 10://STRAINS (XZ)
3684         info="#The results are from element: "+nd_el+"\n#X: time   Y: strain in direction (XZ)";
3685         for(int i=0; i<arr.length; i++){
3686           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3687           Hashtable ht = (Hashtable)db_strains.get(arr[i][0]);
3688           float[] ee = (float[])ht.get(nd_el);
3689           try{ arr[i][1]=ee[5]+""; }catch(Exception e1){arr[i][1]="";}
3690         }
3691         break;
3692         case 11://STRESSES (I)
3693         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (I)";
3694         for(int i=0; i<arr.length; i++){
3695           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3696           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3697           float[] ee = (float[])ht.get(nd_el);
3698           try{
3699             arr[i][1]=(Math.sqrt(2)/2*Math.sqrt(Math.pow(ee[0]-ee[1],2)+Math.pow(ee[1]-ee[2],2)+Math.pow(ee[2]-ee[0],2)+6*(ee[3]*ee[3]+ee[4]*ee[4]+ee[5]*ee[5])))+"";
3700           }catch(Exception e1){arr[i][1]="";}
3701         }
3702         break;
3703         case 12://STRESSES (X)
3704         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (X)";
3705         for(int i=0; i<arr.length; i++){
3706           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3707           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3708           float[] ee = (float[])ht.get(nd_el);
3709           try{ arr[i][1]=ee[0]+""; }catch(Exception e1){arr[i][1]="";}
3710         }
3711         break;
3712         case 13://STRESSES (Y)
3713         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (Y)";
3714         for(int i=0; i<arr.length; i++){
3715           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3716           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3717           float[] ee = (float[])ht.get(nd_el);
3718           try{ arr[i][1]=ee[1]+""; }catch(Exception e1){arr[i][1]="";}
3719         }
3720         break;
3721         case 14://STRESSES (Z)
3722         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (Z)";
3723         for(int i=0; i<arr.length; i++){
3724           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3725           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3726           float[] ee = (float[])ht.get(nd_el);
3727           try{ arr[i][1]=ee[2]+""; }catch(Exception e1){arr[i][1]="";}
3728         }
3729         break;
3730         case 15://STRESSES (XY)
3731         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (XY)";
3732         for(int i=0; i<arr.length; i++){
3733           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3734           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3735           float[] ee = (float[])ht.get(nd_el);
3736           try{ arr[i][1]=ee[3]+""; }catch(Exception e1){arr[i][1]="";}
3737         }
3738         break;
3739         case 16://STRESSES (YZ)
3740         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (YZ)";
3741         for(int i=0; i<arr.length; i++){
3742           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3743           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3744           float[] ee = (float[])ht.get(nd_el);
3745           try{ arr[i][1]=ee[4]+""; }catch(Exception e1){arr[i][1]="";}
3746         }
3747         break;
3748         case 17://STRESSES (XZ)
3749         info="#The results are from element: "+nd_el+"\n#X: time   Y: stress in direction (XZ)";
3750         for(int i=0; i<arr.length; i++){
3751           arr[i][0]=time_step.getModel().getElementAt(i)+"";
3752           Hashtable ht = (Hashtable)db_stresses.get(arr[i][0]);
3753           float[] ee = (float[])ht.get(nd_el);
3754           try{ arr[i][1]=ee[5]+""; }catch(Exception e1){arr[i][1]="";}
3755         }
3756         break;
3757         default: break;
3758       }
3759       db_graph_tmp=arr;
3760       db_graph_inf=info;
3761   }
3762 
3763 
b_save_actionPerformed(ActionEvent e)3764   void b_save_actionPerformed(ActionEvent e) {
3765       FileFilter f1 = new FileFilter() {
3766           public boolean accept(File f) {
3767               if (f.isDirectory()) return true;
3768               return f.getName().toLowerCase().endsWith(".png");
3769           }
3770 
3771           public String getDescription() {
3772               return "Picture of result (.png)";
3773           }
3774       };
3775 
3776       try {
3777 
3778           JFileChooser fd = new JFileChooser(ConfDB.getProperty("Filepath"));
3779           fd.setSize(350,200);
3780           fd.addChoosableFileFilter(f1);
3781 
3782           int choise = fd.showSaveDialog(this);
3783 
3784           if(choise == JFileChooser.APPROVE_OPTION && fd.getSelectedFile()!=null){
3785               String st = fd.getSelectedFile().getAbsolutePath();
3786 
3787               if (fd.getFileFilter().equals(f1)) {
3788                   if(!st.toLowerCase().endsWith(".png"))st+=".png";
3789                   save_Image(st);
3790                   System.out.println("Save image file: "+st);
3791                   // Update configuration file with path
3792                   ConfDB.setProperty("Filepath", fd.getSelectedFile().getAbsolutePath());
3793                   save_configuration();
3794               }
3795           }
3796       } catch(Exception e1) {error(e1);}
3797   }
3798 
b_zoomin_actionPerformed(ActionEvent e)3799   void b_zoomin_actionPerformed(ActionEvent e) {
3800 	  view_zoom_in();
3801   }
3802 
b_zoomout_actionPerformed(ActionEvent e)3803   void b_zoomout_actionPerformed(ActionEvent e) {
3804 	  view_zoom_out();
3805   }
3806 
b_viewtop_actionPerformed(ActionEvent e)3807   void b_viewtop_actionPerformed(ActionEvent e) {
3808     view_top();
3809   }
3810 
b_viewbottom_actionPerformed(ActionEvent e)3811   void b_viewbottom_actionPerformed(ActionEvent e) {
3812     view_bottom();
3813   }
3814 
b_viewsw_actionPerformed(ActionEvent e)3815   void b_viewsw_actionPerformed(ActionEvent e) {
3816     view_sw();
3817   }
3818 
b_viewse_actionPerformed(ActionEvent e)3819   void b_viewse_actionPerformed(ActionEvent e) {
3820     view_se();
3821   }
3822 
b_viewne_actionPerformed(ActionEvent e)3823   void b_viewne_actionPerformed(ActionEvent e) {
3824     view_ne();
3825   }
3826 
b_viewnw_actionPerformed(ActionEvent e)3827   void b_viewnw_actionPerformed(ActionEvent e) {
3828     view_nw();
3829   }
3830 
b_viewleft_actionPerformed(ActionEvent e)3831   void b_viewleft_actionPerformed(ActionEvent e) {
3832     view_left();
3833   }
3834 
b_viewright_actionPerformed(ActionEvent e)3835   void b_viewright_actionPerformed(ActionEvent e) {
3836     view_right();
3837   }
3838 
b_viewfront_actionPerformed(ActionEvent e)3839   void b_viewfront_actionPerformed(ActionEvent e) {
3840     view_front();
3841   }
3842 
b_viewback_actionPerformed(ActionEvent e)3843   void b_viewback_actionPerformed(ActionEvent e) {
3844     view_back();
3845   }
3846 
b_saveall_actionPerformed(ActionEvent e)3847   void b_saveall_actionPerformed(ActionEvent e) {
3848       /*FileFilter f1 = new FileFilter() {
3849           public boolean accept(File f) {
3850               if (f.isDirectory()) return true;
3851               return f.getName().toLowerCase().endsWith(".png");
3852           }
3853 
3854           public String getDescription() {
3855               return "Directory for pictures";
3856           }
3857       };*/
3858 
3859       try {
3860 
3861           JFileChooser fd = new JFileChooser(ConfDB.getProperty("Filepath"));
3862           fd.setSize(350,200);
3863           //fd.addChoosableFileFilter(f1);
3864           fd.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
3865 
3866           int choise = fd.showSaveDialog(this);
3867 
3868           if(choise == JFileChooser.APPROVE_OPTION && fd.getSelectedFile()!=null){
3869               String file = fd.getSelectedFile().getAbsolutePath();
3870 
3871               //if (fd.getFileFilter().equals(f1)) {
3872                   if(file.toLowerCase().endsWith(".png")) file=file.substring(0,file.lastIndexOf("."));
3873                   File f = new File(file);
3874                   if(f.exists()){
3875                       error("File '"+file+"' exists!");
3876                       return;
3877                   }
3878                   f.mkdir();
3879                   for(int i=0; i<time_step.getModel().getSize(); i++){
3880                       time_step.setSelectedIndex(i);
3881                       String resultFilename = file+File.separator+time_step.getSelectedValue()+".png";
3882                       headerMessage("Save result to image: "+resultFilename);
3883                       save_Image(resultFilename);
3884                       System.out.println("Save image file: "+resultFilename);
3885                   }
3886                   // Update configuration file with path
3887                   ConfDB.setProperty("Filepath", fd.getSelectedFile().getAbsolutePath());
3888                   save_configuration();
3889                   headerMessage(null);
3890               //}
3891           }
3892       } catch(Exception e1) {error(e1);}
3893   }
3894 
tf_max_keyPressed(KeyEvent e)3895   void tf_max_keyPressed(KeyEvent e) {
3896       if(e.getKeyCode()==KeyEvent.VK_ENTER){
3897         try{
3898           tfmax=Float.parseFloat(tf_max.getText());
3899 
3900           switch (cb_result.getSelectedIndex()) {
3901           case 0:
3902               maxdi = tfmax;
3903               break;
3904           case 1:
3905               maxdx = tfmax;
3906               break;
3907           case 2:
3908               maxdy = tfmax;
3909               break;
3910           case 3:
3911               maxdz = tfmax;
3912               break;
3913           case 4:
3914               maxei = tfmax;
3915               break;
3916           case 5:
3917               maxex = tfmax;
3918               break;
3919           case 6:
3920               maxey = tfmax;
3921               break;
3922           case 7:
3923               maxez = tfmax;
3924               break;
3925           case 8:
3926               maxexy = tfmax;
3927               break;
3928           case 9:
3929               maxeyz = tfmax;
3930               break;
3931           case 10:
3932               maxexz = tfmax;
3933               break;
3934           case 11:
3935               maxsi = tfmax;
3936               break;
3937           case 12:
3938               maxsx = tfmax;
3939               break;
3940           case 13:
3941               maxsy = tfmax;
3942               break;
3943           case 14:
3944               maxsz = tfmax;
3945               break;
3946           case 15:
3947               maxsxy = tfmax;
3948               break;
3949           case 16:
3950               maxsyz = tfmax;
3951               break;
3952           case 17:
3953               maxsxz = tfmax;
3954               break;
3955 
3956           }
3957 
3958           draw();
3959         }catch(Exception e1){error(e1);}
3960       }else if(e.getKeyCode()==KeyEvent.VK_ESCAPE)  tf_max.setText(tfmax+"");
3961     }
3962 
tf_min_keyPressed(KeyEvent e)3963     void tf_min_keyPressed(KeyEvent e) {
3964       if(e.getKeyCode()==KeyEvent.VK_ENTER){
3965         try{
3966           tfmin=Float.parseFloat(tf_min.getText());
3967 
3968           switch (cb_result.getSelectedIndex()) {
3969           case 0:
3970               mindi = tfmin;
3971               break;
3972           case 1:
3973               mindx = tfmin;
3974               break;
3975           case 2:
3976               mindy = tfmin;
3977               break;
3978           case 3:
3979               mindz = tfmin;
3980               break;
3981           case 4:
3982               minei = tfmin;
3983               break;
3984           case 5:
3985               minex = tfmin;
3986               break;
3987           case 6:
3988               miney = tfmin;
3989               break;
3990           case 7:
3991               minez = tfmin;
3992               break;
3993           case 8:
3994               minexy = tfmin;
3995               break;
3996           case 9:
3997               mineyz = tfmin;
3998               break;
3999           case 10:
4000               minexz = tfmin;
4001               break;
4002           case 11:
4003               minsi = tfmin;
4004               break;
4005           case 12:
4006               minsx = tfmin;
4007               break;
4008           case 13:
4009               minsy = tfmin;
4010               break;
4011           case 14:
4012               minsz = tfmin;
4013               break;
4014           case 15:
4015               minsxy = tfmin;
4016               break;
4017           case 16:
4018               minsyz = tfmin;
4019               break;
4020           case 17:
4021               minsxz = tfmin;
4022               break;
4023 
4024           }
4025           draw();
4026         }catch(Exception e1){error(e1);}
4027       }else if(e.getKeyCode()==KeyEvent.VK_ESCAPE)  tf_min.setText(tfmin+"");
4028     }
4029 
4030 
4031 
exit()4032   public void exit(){
4033     System.out.println("PostProcessor finalize.");
4034   }
4035 
load_configuration()4036   private void load_configuration() {
4037 	  FileInputStream fin = null;
4038 	  try {
4039 		  ConfDB.clear();
4040 		  fin = new FileInputStream("Post.conf");
4041 		  ConfDB.load(fin);
4042 		  fin.close();
4043 	  } catch (IOException e) {
4044 		  error(e); }
4045   }
save_configuration()4046   private void save_configuration() {
4047 	  FileOutputStream fout;
4048 	  try {
4049 		  fout = new FileOutputStream("Post.conf");
4050 		  ConfDB.store(fout, "Configuration file for Impact Postprocessor");
4051 		  fout.close();
4052 	  } catch (IOException e) {
4053 		  error(e); }
4054   }
headerMessage(String m)4055 public void headerMessage(String m) {
4056      Frame f = getFrame(this);
4057      if(m==null)m = ImpactGUI.ver;
4058      String s = f.getTitle();
4059      String s1 = s.substring(0,s.lastIndexOf("]")+1);
4060      f.setTitle(s1+" " + m);
4061 
4062  }
header(String m)4063 	public void header(String m) {
4064 		Frame f = getFrame(this);
4065 		String s = f.getTitle();
4066 
4067 		String s1 = s.substring(0,s.indexOf("[POST:")+6);
4068 		String s2 = s.substring(s.indexOf("[GRPH:"), s.length());
4069 		f.setTitle(s1+m+"] "+s2);
4070 	}
4071 
save_Image(String file)4072 	public void save_Image(String file) {
4073 		byte[] pngbytes;
4074 		PngEncoderB png;
4075 	    try {
4076 	      if(file.toLowerCase().indexOf(".png")==-1) file+=".png";
4077 	      FileOutputStream out = new FileOutputStream(file);
4078 	      try { J3D.waitForOffScreenRendering(); }catch(Exception e) {}
4079 	      GraphicsContext3D  ctx = J3D.getGraphicsContext3D();
4080 	      int w = J3D.getWidth();
4081 	      int h = J3D.getHeight();
4082 	      BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
4083 	      ImageComponent2D image2d = new ImageComponent2D(ImageComponent.FORMAT_RGB, image);
4084 	      javax.media.j3d.Raster ras = new javax.media.j3d.Raster(new Point3f( -1.0f, -1.0f, -1.0f ),  javax.media.j3d.Raster.RASTER_COLOR, 0, 0, w, h, image2d, null );
4085 	      ctx.flush(true);
4086 	      ctx.readRaster( ras );
4087 	      png = new PngEncoderB(ras.getImage().getImage(),false,0,5); // Encode at level 5 compression
4088 	      pngbytes = png.pngEncode();
4089 	      out.write(pngbytes);
4090 	      out.flush();
4091 	      out.close();
4092 	    }catch(FileNotFoundException fnfe) {
4093 	      System.err.println("File not found: " + file);
4094 	    }catch(IOException ioe){ System.err.println("Could not write file: " + file); }
4095 	  }
4096 
view_top()4097 	public void view_top(){
4098 		if(time_step.getModel().getSize()==0)return;
4099 		Transform3D tr3D = new Transform3D();
4100 		Transform3D tr3D_new = new Transform3D();
4101 		trGroup.getTransform(tr3D);
4102 		tr3D_new.setScale(tr3D.getScale());
4103 		trGroup.setTransform(tr3D_new);
4104 	}
4105 
view_bottom()4106 	public void view_bottom(){
4107 		if(time_step.getModel().getSize()==0)return;
4108 		Transform3D tr3D = new Transform3D();
4109 		Transform3D tr3D_new = new Transform3D();
4110 		trGroup.getTransform(tr3D);
4111 		tr3D_new.rotY(Math.PI);
4112 		tr3D_new.setScale(tr3D.getScale());
4113 		trGroup.setTransform(tr3D_new);
4114 	}
4115 
view_left()4116 	public void view_left(){
4117 		if(time_step.getModel().getSize()==0)return;
4118 		Transform3D tr3D = new Transform3D();
4119 		Transform3D tr3D_new = new Transform3D();
4120 		trGroup.getTransform(tr3D);
4121 		tr3D_new.rotY(Math.PI/2);
4122 		tr3D_new.setScale(tr3D.getScale());
4123 		trGroup.setTransform(tr3D_new);
4124 	}
4125 
view_right()4126 	public void view_right(){
4127 		if(time_step.getModel().getSize()==0)return;
4128 		Transform3D tr3D = new Transform3D();
4129 		Transform3D tr3D_new = new Transform3D();
4130 		trGroup.getTransform(tr3D);
4131 		tr3D_new.rotY(-Math.PI/2);
4132 		tr3D_new.setScale(tr3D.getScale());
4133 		trGroup.setTransform(tr3D_new);
4134 	}
4135 
view_front()4136 	public void view_front(){
4137 		if(time_step.getModel().getSize()==0)return;
4138 		Transform3D tr3D = new Transform3D();
4139 		Transform3D tr3D_new = new Transform3D();
4140 		trGroup.getTransform(tr3D);
4141 		tr3D_new.rotX(Math.PI/2);
4142 		tr3D_new.setScale(tr3D.getScale());
4143 		trGroup.setTransform(tr3D_new);
4144 	}
4145 
view_back()4146 	public void view_back(){
4147 		if(time_step.getModel().getSize()==0)return;
4148 		Transform3D tr3D = new Transform3D();
4149 		Transform3D tr3D_new = new Transform3D();
4150 		trGroup.getTransform(tr3D);
4151 		tr3D_new.rotX(-Math.PI/2);
4152 		tr3D_new.setScale(tr3D.getScale());
4153 		trGroup.setTransform(tr3D_new);
4154 	}
4155 
view_sw()4156 	public void view_sw(){
4157 		if(time_step.getModel().getSize()==0)return;
4158 		Transform3D tr3D = new Transform3D();
4159 		Transform3D tr3D_new = new Transform3D();
4160 		trGroup.getTransform(tr3D);
4161 		Matrix3d m3dx = new Matrix3d();
4162 		Matrix3d m3dy = new Matrix3d();
4163 		m3dx.rotX(Math.PI/4);
4164 		m3dy.rotY(-Math.PI/4);
4165 		m3dx.mul(m3dy);
4166 		tr3D_new.setRotation(m3dx);
4167 		tr3D_new.setScale(tr3D.getScale());
4168 		trGroup.setTransform(tr3D_new);
4169 	}
4170 
view_se()4171 	public void view_se(){
4172 		if(time_step.getModel().getSize()==0)return;
4173 		Transform3D tr3D = new Transform3D();
4174 		Transform3D tr3D_new = new Transform3D();
4175 		trGroup.getTransform(tr3D);
4176 		Matrix3d m3dx = new Matrix3d();
4177 		Matrix3d m3dy = new Matrix3d();
4178 		m3dx.rotX(-Math.PI/4);
4179 		m3dy.rotY(Math.PI/4);
4180 		m3dx.mul(m3dy);
4181 		tr3D_new.setRotation(m3dx);
4182 		tr3D_new.setScale(tr3D.getScale());
4183 		trGroup.setTransform(tr3D_new);
4184 	}
4185 
view_ne()4186 	public void view_ne(){
4187 		if(time_step.getModel().getSize()==0)return;
4188 		Transform3D tr3D = new Transform3D();
4189 		Transform3D tr3D_new = new Transform3D();
4190 		trGroup.getTransform(tr3D);
4191 		Matrix3d m3dx = new Matrix3d();
4192 		Matrix3d m3dy = new Matrix3d();
4193 		m3dx.rotX(-Math.PI/4);
4194 		m3dy.rotY(-Math.PI/4);
4195 		m3dx.mul(m3dy);
4196 		tr3D_new.setRotation(m3dx);
4197 		tr3D_new.setScale(tr3D.getScale());
4198 		trGroup.setTransform(tr3D_new);
4199 	}
4200 
view_nw()4201 	public void view_nw(){
4202 		if(time_step.getModel().getSize()==0)return;
4203 		Transform3D tr3D = new Transform3D();
4204 		Transform3D tr3D_new = new Transform3D();
4205 		trGroup.getTransform(tr3D);
4206 		Matrix3d m3dx = new Matrix3d();
4207 		Matrix3d m3dy = new Matrix3d();
4208 		m3dx.rotX(Math.PI/4);
4209 		m3dy.rotY(Math.PI/4);
4210 		m3dx.mul(m3dy);
4211 		tr3D_new.setRotation(m3dx);
4212 		tr3D_new.setScale(tr3D.getScale());
4213 		trGroup.setTransform(tr3D_new);
4214 	}
4215 
view_zoom_all()4216 	public void view_zoom_all(){
4217 		if(time_step.getModel().getSize()==0)return;
4218 		Transform3D tr3D_new = new Transform3D();
4219 		trGroup.getTransform(tr3D_new);
4220 		tr3D_new.getScale();
4221 		//BoundingSphere bs = new BoundingSphere(trGroup.getBounds());
4222 		//tr3D.setScale(1/bs.getRadius());
4223 		tr3D_new.setScale(1/Math.max(maxx-minx, Math.max(maxy-miny,maxz-minz)));
4224 		trGroup.setTransform(tr3D_new);
4225 	}
4226 
view_zoom_in()4227 	public void view_zoom_in(){
4228 		if(time_step.getModel().getSize()==0)return;
4229 		Transform3D tr3D_new = new Transform3D();
4230 		trGroup.getTransform(tr3D_new);
4231 		tr3D_new.setScale(tr3D_new.getScale()*1.2);
4232 		trGroup.setTransform(tr3D_new);
4233 	}
4234 
view_zoom_out()4235 	public void view_zoom_out(){
4236 		if(time_step.getModel().getSize()==0)return;
4237 		Transform3D tr3D_new = new Transform3D();
4238 		trGroup.getTransform(tr3D_new);
4239 		tr3D_new.setScale(tr3D_new.getScale()*0.8);
4240 		trGroup.setTransform(tr3D_new);
4241 	}
4242 
4243 
4244 }
4245