| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 
 |     public BranchGroup createSceneGraph(SimpleUniverse u) {
 
        BranchGroup objRoot = new BranchGroup();
        BoundingSphere largeBounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),4000.0); // Aire de la scène 4000m, centrée en 0/0/0
 
        // Permet de redéfinir la distance de la vue d'un objet (par défaut à 10m)ici on a mis à 4000m
        View view = u.getViewer().getView();
        view.setBackClipDistance(4000);
 
        Vector3f ldir = new Vector3f(1.0F,1.0F,-1.0F);
        Color3f lcouldl = new Color3f(1.0F,1.0F,1.0F);
        DirectionalLight dl = new DirectionalLight(lcouldl,ldir);
        dl.setInfluencingBounds(largeBounds);
        objRoot.addChild(dl);
 
        Color3f lcoulal = new Color3f(0.2F,0.2F,0.1F);
        AmbientLight al = new AmbientLight(lcoulal);
        al.setInfluencingBounds(largeBounds);
        objRoot.addChild(al);
 
        TransformGroup objTrans = new TransformGroup();
        objRoot.addChild(objTrans);
        Transform3D t = new Transform3D();
        t.setTranslation(new Vector3d(0.0F,0.0F,-8.0F)) ;
        objTrans.setTransform(t);
        TransformGroup objTr2 = new TransformGroup();
        objTrans.addChild(objTr2);
        Transform3D tt = new Transform3D();
        objTr2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objTr2.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        objTr2.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
        objTr2.setTransform(tt);
        Appearance a = new Appearance();
        Material m = new Material();
        m.setDiffuseColor(1.0f,1.0f,1.0f);
        m.setSpecularColor(1.0f,1.0f,1.0f);
        m.setAmbientColor(1.0f,1.0f,1.0f);
        m.setShininess(25.0f);
        a.setMaterial(m);
 
        for(int i=0;i<pts_ligne.pp.size();i++) {
            Point n=pts_ligne.pp.get(i);
            TransformGroup objTran = new TransformGroup();
            objTr2.addChild(objTran);
            Transform3D t1 = new Transform3D();
            t1.setTranslation(new Vector3d( n.x, n.y , n.z)) ;
            objTran.setTransform(t1);
            objTran.addChild(new Box(1,1,1,a));
            //pts2[i] = new Vector3d( n.x, n.y , n.z);
        }
 
        BoundingSphere bounds;
        bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
 
        MouseRotate behavior = new MouseRotate(objTr2);
        behavior.setFactor(0.01); // sensibilité de la rotation
        objTr2.addChild(behavior);
        behavior.setSchedulingBounds(bounds);
 
        MouseZoom behavior2 = new MouseZoom(objTr2);
        behavior2.setFactor(0.25); // sensibilité du zoom
        objTr2.addChild(behavior2);
        behavior2.setSchedulingBounds(bounds);
 
        MouseTranslate behavior3 = new MouseTranslate(objTr2);
        behavior3.setFactor(0.25); // sensibilité de la translation
        objTr2.addChild(behavior3);
        behavior3.setSchedulingBounds(bounds);
 
        objRoot.compile();
        return objRoot;
    } | 
Partager