Hier der komplette Code (ich hab die Imports weggelassen, weil das ne ewig lange Liste ist, aber alles was importiert werden muss hierfür wurde importiert):
public class test extends Applet {
public BranchGroup deswirdBG(Canvas3D canvas){
BranchGroup meineBG=new BranchGroup();
// ---------------------------------------------------------------------------
TransformGroup objRotate = null;
Transform3D transform = new Transform3D();
transform.setTranslation(new Vector3f(0.6f, 0.0f, 0.6f));
objRotate = new TransformGroup(transform);
objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); //Erlaubt die Veränderung durch die PickBehavior Objekte
objRotate.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
//------------------------------------------------------------------------------
Inspector3DS loader=new Inspector3DS("./mon.3ds");
loader.setTextureLightingOn();
loader.setTexturePath("./");
loader.parseIt();
TransformGroup theModel=loader.getModel();
// ******* ------------------------------------------------------------------------------
Appearance app_box = new Appearance();
ColoringAttributes c_box = new ColoringAttributes();
c_box.setColor(0f,1.0f,0f);
app_box.setColoringAttributes(c_box);
Box box = new Box(0.9f, 0.3f, 0.3f, app_box);
box.addMouseListener(new MyMouseListener());
// Und genau dieses box.addMouseListener: ich darf hier keinen addMouseListener anfügen, weil er dann rummault!
//Fehler: The method addMouseListener(MyMouseListener) is undefined for the type Box
theModel.addChild(box);
objRotate.addChild(theModel);
meineBG.addChild(objRotate);
// ******* ------------------------------------------------------------------------------
// ------------------------------------------------------------------------------
AmbientLight meinLicht=new AmbientLight(true,new Color3f(1.0f,1.0f,1.0f));
meinLicht.setInfluencingBounds(new BoundingSphere(new Point3d(),10000.0f));
meineBG.addChild(meinLicht);
// ------------------------------------------------------------------------------
Background meinBack=new Background(new Color3f(1.0f,1.0f,1.0f));
meinBack.setApplicationBounds(new BoundingSphere(new Point3d(), 1000.0f)); //Steuert den hintergrund
meineBG.addChild(meinBack);
//---------------------------------------------------------------------------
BoundingSphere behaveBounds = new BoundingSphere();
PickRotateBehavior pickRotate = new PickRotateBehavior(meineBG, canvas, behaveBounds);
PickTranslateBehavior pickTrans = new PickTranslateBehavior(meineBG, canvas, behaveBounds);
PickZoomBehavior pickZoom = new PickZoomBehavior(meineBG, canvas, behaveBounds);
meineBG.addChild(pickRotate);
meineBG.addChild(pickTrans);
meineBG.addChild(pickZoom);
meineBG.compile();
return meineBG;
}
public test(){
setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
add("Center", canvas3D);
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
BranchGroup scene = deswirdBG(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
//-----------------------------------------------------------------------------------------
TransformGroup vpTrans=simpleU.getViewingPlatform().getViewPlatformTransform();
Vector3f translate=new Vector3f();
translate.set(0,0,15);
Transform3D T3D=new Transform3D(); //Bewegt den Punkt des Betrachters an jede beliebige Stelle
T3D.setTranslation(translate);
vpTrans.setTransform(T3D);
//----------------------------------------------------------------------------------
simpleU.addBranchGraph(scene);
}
public static void main(String[] args){
Frame frame=new MainFrame(new test(),500,500);
}
}
class MyMouseListener extends MouseAdapter {
public void mousePressed(MouseEvent event) {
System.out.println("Mouse Pressed!");
}
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse Clicked!");
}
public void mouseEntered(MouseEvent e) {
System.out.println("Mouse Entered!");
}
public void mouseExited(MouseEvent e) {
System.out.println("Mouse Exited!");
}
public void mouseReleased(MouseEvent e) {
System.out.println("Mouse Released!");
}
}