Java Reference
In-Depth Information
Figure 12. Code segment and result for ViewProjectionApp.java
1.
public void actionPerformed(ActionEvent e) {
2.
Object target = e.getSource(); // sync step sizes for both panels
3.
if (target == stepSizeSel) stepSizeSel2.setSelectedIndex(stepSizeSel.getSelectedIndex());
4.
else if (target == stepSizeSel2) stepSizeSel.setSelectedIndex(stepSizeSel2.getSelectedIndex());
5.
6.
double topVal = updateView(topInc, topDec, topLabel, target); // get inputs for frustum projection
7.
double botVal = updateView(botInc, botDec, botLabel, target);
8.
double lefVal = updateView(lefInc, lefDec, lefLabel, target);
9.
double rigVal = updateView(rigInc, rigDec, rigLabel, target);
10.
double neaVal = updateView(neaInc, neaDec, neaLabel, target);
11.
double farVal = updateView(farInc, farDec, farLabel, target);
12.
Transform3D viewFrustum = new Transform3D(); // update view frustum
13.
viewFrustum.frustum(lefVal, rigVal, botVal, topVal, neaVal, farVal);
14.
view[0].setLeftProjection(viewFrustum);
15.
16.
double fovVal = updateView(fovInc, fovDec, fovLabel, target); // get inputs for perspective proj.
17.
double aspVal = updateView(aspInc, aspDec, aspLabel, target);
18.
double zneVal = updateView(zneInc, zneDec, zneLabel, target);
19.
double zfaVal = updateView(zfaInc, zfaDec, zfaLabel, target);
20.
Transform3D viewPerspective = new Transform3D(); // update view perspective
21.
viewPerspective.perspective(Math.toRadians(fovVal), aspVal, zneVal, zfaVal);
22.
view[1].setLeftProjection(viewPerspective); }
23.
24. private double updateView(JButton incButton, JButton decButton, JLabel value, Object target) {
25. double tarVal = Double.parseDouble(value.getText());
26. if (target == incButton) tarVal += ((Double) stepSizeSel.getSelectedItem()).doubleValue();
27. if (target == decButton) tarVal -= ((Double) stepSizeSel.getSelectedItem()).doubleValue();
28. DecimalFormat df = new DecimalFormat("#0.00"); value.setText(df.format(tarVal));
29. return Double.parseDouble(value.getText()); }
Search WWH ::




Custom Search