Package jinngine.physics

Examples of jinngine.physics.Body


  public void testSphereSphere1() {
    GJK gjk = new GJK();
   
    //set up geometries
    Sphere s1 = new Sphere(1);
    Body b1 = new Body("default", s1);
    b1.setPosition(new Vector3(0,3,0));
    Sphere s2 = new Sphere(1);
    Body b2 = new Body("default", s2);
    b2.setPosition(new Vector3(0,0,0));
   
    //closest point vectors
    Vector3 p1 = new Vector3();
    Vector3 p2 = new Vector3();
       
View Full Code Here


    //small number
    double a = 1e-3;
       
    //set up geometries
    Sphere s1 = new Sphere(1);
    Body b1 = new Body("default", s1);
    b1.setPosition(new Vector3(0,1+a,0));
    Sphere s2 = new Sphere(1);
    Body b2 = new Body("default", s2);
    b2.setPosition(new Vector3(0,-1-a,0));
   
    //closest point vectors
    Vector3 p1 = new Vector3();
    Vector3 p2 = new Vector3();
       
View Full Code Here

  public void testOverlapSphere1() {
    GJK gjk = new GJK();
   
    //set up two spheres, occupying the exact same space
    Sphere s1 = new Sphere(1);
    Body b1 = new Body("default", s1);
    b1.setPosition(new Vector3(0,0,0));
    Sphere s2 = new Sphere(1);
    Body b2 = new Body("default", s2);
    b2.setPosition(new Vector3(0,0,0));
   
    //closest point vectors
    Vector3 p1 = new Vector3();
    Vector3 p2 = new Vector3();
       
View Full Code Here

   */
  public void testOverlapSphere2() {
   
    //set up two spheres, occupying the exact same space
    Sphere s1 = new Sphere(1);
    Body b1 = new Body("default", s1);
    b1.setPosition(new Vector3(0,0,0));
    Sphere s2 = new Sphere(1);
    Body b2 = new Body("default", s2);
    b2.setPosition(new Vector3(0,0,0));
   
    int N = 1024*2;
    Vector3 displacement = new Vector3(-4,1,-2);
    for (int i=0; i<N; i++) {
      // displace geometry and find the expected distance
View Full Code Here

   
    double epsilon = 1e-15;
   
    //create two cubes
    Box box1 = new Box(1,1,1);
    @SuppressWarnings("unused")
    Body b1 = new Body("Box 1", box1);
    Box box2 = new Box(1,1,1);
    Body b2 = new Body("Box 2", box2);
   
    // set the envelope size (or collision margin)
    final double env = 1.0;
    box1.setEnvelope(env);
    box2.setEnvelope(env);
   
   
    BroadphaseCollisionDetection.Handler handler = new Handler() {
      public void overlap(Pair<Geometry> pair) {
      }
      public void separation(Pair<Geometry> pair) {
      }
    };

    //create the detector with handler
    BroadphaseCollisionDetection sweep = new SAP2();
    sweep.addHandler(handler);

    //add both boxes
    sweep.add(box1);
    sweep.add(box2);
   
    // expect an overlap
    sweep.run();
    assertTrue( sweep.getOverlappingPairs().contains(new Pair<Geometry>(box1,box2)));
   
    // remove box2
    sweep.remove(box2);
   
    // expect no overlaps
    sweep.run();
    assertTrue( sweep.getOverlappingPairs().size() == 0);

    // add box2 again
    sweep.add(box2);
   
    // expect an overlap
    sweep.run();
    assertTrue( sweep.getOverlappingPairs().contains(new Pair<Geometry>(box1,box2)));

    //move box2 1.0 along z axis
    b2.setPosition(0,0,1.0);
   
    // expect an overlap
    sweep.run();
    assertTrue( sweep.getOverlappingPairs().contains(new Pair<Geometry>(box1,box2)));

    // move box2 by 1.0 + twice the envelope + epsilon
    // this will make bounding boxes only just separated
    b2.setPosition(0,0,1.0+2*env+epsilon);
   
    // expect no overlap
    sweep.run();
    assertTrue( !sweep.getOverlappingPairs().contains(new Pair<Geometry>(box1,box2)) );

    // move box2 by 1 + 2 env - epsilon
    // such that boxes will only just overlap by epsilon
    b2.setPosition(new Vector3(0,0,1.0+2*env-epsilon));

    // expect an overlap
    sweep.run();
    assertTrue( sweep.getOverlappingPairs().contains(new Pair<Geometry>(box1,box2)));
  }
View Full Code Here

TOP

Related Classes of jinngine.physics.Body

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.