Hello,

i've a problem with the collision detection system. I'm trying to
collidate a IndexedTriangleArray(ita) with another Shape.
Sometimes it works fine, sometimes occurs that only the half part of the
ita(its a rectangular) is been detected. I tryied and retried but i havnt
found the problem.
I've attached a sampleCode, it's only a nonsense but i think it shows the
problem well.(my problem is much much bigger)

thanks for any helps



    ColorCube cc= new ColorCube(0.2);
    QuadArray geom=(QuadArray) cc.getGeometry();

    config= SimpleUniverse.getPreferredConfiguration();
    canvas= new Canvas3D(config);
    universe= new SimpleUniverse(canvas);
    this.getContentPane().add(canvas,"Center");
    //ColorCube 1

    QuadArray quad= new QuadArray(24,QuadArray.COORDINATES);
    for (int i=0; i<geom.getVertexCount();i++) {
      double[] d= new double[3];
      geom.getCoordinate(i,d);
      quad.setCoordinate(i,d);
    }

    IndexedTriangleArray ita= new IndexedTriangleArray
(4,IndexedTriangleArray.COORDINATES,12);
    ita.setCapability(ita.ALLOW_INTERSECT);
    ita.setCoordinate(0,new Point3d(0.0,0.0,0));
    ita.setCoordinate(1,new Point3d(0.0,0.4,0.0));
    ita.setCoordinate(2,new Point3d(0.4,0.4,0));
    ita.setCoordinate(3,new Point3d(0.4,0.0,0.0));
    ita.setCoordinateIndex(0,1);
    ita.setCoordinateIndex(1,2);
    ita.setCoordinateIndex(2,0);
    ita.setCoordinateIndex(3,0);
    ita.setCoordinateIndex(4,2);
    ita.setCoordinateIndex(5,3);
    ita.setCoordinateIndex(6,2);
    ita.setCoordinateIndex(7,1);
    ita.setCoordinateIndex(8,0);
    ita.setCoordinateIndex(9,0);
    ita.setCoordinateIndex(10,3);
    ita.setCoordinateIndex(11,2);


    /*mit ColorCube funkts wunderbar... da muss irgendwas bezüglich keine
ahnung sein.....
     jetzt funkt nichts mehr

     */
    TransformGroup tg= new TransformGroup();
    tg.setCapability(tg.ENABLE_PICK_REPORTING);
    tg.setCapability(tg.ENABLE_COLLISION_REPORTING);
    tg.setCapability(tg.ALLOW_TRANSFORM_READ);
    tg.setCapability(tg.ALLOW_TRANSFORM_WRITE);
    Shape3D s3d= new Shape3D(ita);
    s3d.setCapability(s3d.ENABLE_COLLISION_REPORTING);

    tg.addChild(s3d);


    mainBranchGroup.addChild(tg);


    //ColorCube 2
    tg= new TransformGroup();
    Transform3D t3d= new Transform3D();
    tg.setTransform(t3d);
    tg.setCapability(tg.ENABLE_PICK_REPORTING);
    tg.setCapability(tg.ENABLE_COLLISION_REPORTING);
    tg.setCapability(tg.ALLOW_TRANSFORM_READ);
    tg.setCapability(tg.ALLOW_TRANSFORM_WRITE);

    QuadArray quad2= new QuadArray(24,QuadArray.COORDINATES);
    for (int i=0; i<geom.getVertexCount();i++) {
      double[] d= new double[3];
      geom.getCoordinate(i,d);
      quad2.setCoordinate(i,d);
    }

    Shape3D s= new Shape3D(quad2);
    s.setCapability(s.ENABLE_COLLISION_REPORTING);
    s.setCapability(s.ALLOW_GEOMETRY_READ);
    s.setBoundsAutoCompute(true);
    tg.addChild(s);
    mainBranchGroup.addChild(tg);
    MyCollisionBehavior mcb= new MyCollisionBehavior(tg);
    mainBranchGroup.addChild(mcb);

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to