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