......import ausgelassen.......
public class Modell {
private JFrame fenster3;
private Container contentPane3;
private JPanel merkmale;
private JLabel lAugen, lNase, lMund, lOhren;
private JSlider sAugen, sNase, sMund, sOhren;
private Canvas3D canvas;
private SimpleUniverse universe;
private BranchGroup szene, lichtBG;
private Hashtable alleObjekte;
double d = 1;
public Modell() {
modell();
}
public void modell() {
fenster3 = new JFrame("3D Modell");
contentPane3 = fenster3.getContentPane();
contentPane3.setLayout(new BorderLayout(0, 0));
canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
contentPane3.add(BorderLayout.CENTER, canvas);
universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
erzeugeSzenenGraph(universe);
erzeugeLicht(universe);
OrbitBehavior ob = new OrbitBehavior(canvas);
BoundingSphere bs = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
Double.MAX_VALUE);
ob.setTranslateEnable(false);
ob.setSchedulingBounds(bs);
ob.setRotFactors(1, 0);
universe.getViewingPlatform().setViewPlatformBehavior(ob);
merkmale = new JPanel();
merkmale.setLayout(new GridLayout(0, 1, 0, 0));
merkmale.setBackground(Color.LIGHT_GRAY);
JButton testPlus = new JButton("testPlus");
testPlus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
skaliereMerkmalPlus();
}
});
JButton testMinus = new JButton("testMinus");
testMinus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
skaliereMerkmalMinus(universe);
}
});
merkmale.add(testPlus);
merkmale.add(testMinus);
// Hinzufügen des Panels zum westlichen Bereich des Fensters
contentPane3.add(merkmale, BorderLayout.WEST);
// Einstellungen des Fensters
fenster3.setVisible(true);
fenster3.setSize(1000, 700);
}
public void erzeugeSzenenGraph(SimpleUniverse su) {
ObjectFile kopf = new ObjectFile(ObjectFile.RESIZE);
Scene scene = null;
try {
scene = kopf.load("KopfM.obj");
} catch (Exception e) {
e.printStackTrace();
}
szene = new BranchGroup();
TransformGroup tgSzene = new TransformGroup();
tgSzene.addChild(scene.getSceneGroup());
alleObjekte = scene.getNamedObjects();
szene.addChild(tgSzene);
szene.compile();
su.addBranchGraph(szene);
}
public void skaliereMerkmalPlus() {
Transform3D oKopf = (Transform3D) alleObjekte.get("Cube");
oKopf.setScale(d);
if (d <= 5 && d >= 1) {
oKopf.setScale(d + 1);
d = oKopf.getScale();
} else {
d = 5;
}
}
public void skaliereMerkmalMinus(SimpleUniverse su) {
Transform3D oKopf = (Transform3D) alleObjekte.get("Cube");
oKopf.setScale(d);
if (d <= 6 && d >= 1) {
oKopf.setScale(d - 1);
d = oKopf.getScale();
} else {
d = 1;
}
BranchGroup bgScale = new BranchGroup();
TransformGroup tgScale = new TransformGroup(oKopf);
bgScale.addChild(tgScale);
su.addBranchGraph(bgScale);
}
public void erzeugeLicht(SimpleUniverse su) {
BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
Double.MAX_VALUE);
Color3f farbe = new Color3f(0.55f, 0.55f, 0.55f);
AmbientLight aL1 = new AmbientLight(farbe);
aL1.setInfluencingBounds(bounds);
Vector3f v1 = new Vector3f(-20.0f, 5.0f, 0.0f);
DirectionalLight dL1 = new DirectionalLight(farbe, v1);
dL1.setInfluencingBounds(bounds);
lichtBG = new BranchGroup();
lichtBG.addChild(aL1);
lichtBG.addChild(dL1);
su.addBranchGraph(lichtBG);
}
public static void main(String[] args) {
new Modell();
}
}