Package jinngine.math

Examples of jinngine.math.Vector3


    scene = new DefaultScene(new SAP2(), new NonsmoothNonlinearConjugateGradient(44), new DisabledDeactivationPolicy());
    scene.setTimestep(0.1);
   
    // add boxes to bound the world
    Body floor = new Body("floor", new Box(1500,20,1500));
    floor.setPosition(new Vector3(0,-30,0));
    floor.setFixed(true);
   
    Body back = new Body( "back", new Box(200,200,20));   
    back.setPosition(new Vector3(0,0,-55));
    back.setFixed(true);

    Body front = new Body( "front", new Box(200,200,20));   
    front.setPosition(new Vector3(0,0,-7));
    front.setFixed(true);

    Body left = new Body( "left", new Box(20,200,200));   
    left.setPosition(new Vector3(-35,0,0));
    left.setFixed(true);

    Body right = new Body( "right", new Box(20,200,200));   
    right.setPosition(new Vector3(10,0,0));
    right.setFixed(true);   
   
    Box boxgeometry = new Box(6,6,6);
    Body box = new Body( "box", boxgeometry );
    box.setPosition(new Vector3(-10,-11,-25));
       
    // add all to scene
    scene.addBody(floor);
    scene.addBody(back);
    scene.addBody(front);   
View Full Code Here


    scene = new DefaultScene(new SAP2(), new NonsmoothNonlinearConjugateGradient(44), new DisabledDeactivationPolicy());
    scene.setTimestep(0.1);
   
    // add boxes to bound the world
    Body floor = new Body("floor", new Box(1500,20,1500));
    floor.setPosition(new Vector3(0,-30,0));
    floor.setFixed(true);
   
    Body back = new Body( "back", new Box(200,200,20));   
    back.setPosition(new Vector3(0,0,-55));
    back.setFixed(true);

    Body front = new Body( "front", new Box(200,200,20));   
    front.setPosition(new Vector3(0,0,-7));
    front.setFixed(true);

    Body left = new Body( "left", new Box(20,200,200));   
    left.setPosition(new Vector3(-35,0,0));
    left.setFixed(true);

    Body right = new Body( "right", new Box(20,200,200));   
    right.setPosition(new Vector3(10,0,0));
    right.setFixed(true);
   
    // create capsules
    UniformCapsule capgeo = new UniformCapsule(2,6);
    Body cap = new Body( "cap", capgeo );
    cap.setPosition(new Vector3(-10,-11,-25));

    UniformCapsule capgeo2 = new UniformCapsule(1.8,5);
    Body cap2 = new Body( "cap2", capgeo2 );
    cap2.setPosition(new Vector3(-10,-11,-25));

    UniformCapsule capgeo3 = new UniformCapsule(1.0,4);
    Body cap3 = new Body( "cap3", capgeo3 );
    cap3.setPosition(new Vector3(-10,-11,-25));

    UniformCapsule capgeo4 = new UniformCapsule(1.6,2);
    Body cap4 = new Body( "cap3", capgeo4 );
    cap4.setPosition(new Vector3(-10,-11,-25));

    // create a box
    Box boxgeometry = new Box(6,3,3);
    Body box = new Body( "box", boxgeometry );
    box.setPosition(new Vector3(-3,-11,-25));
   
    // add all to scene
    scene.addBody(floor);
    scene.addBody(back);
    scene.addBody(front);   
View Full Code Here

    scene = new DefaultScene(new SAP2(), new NonsmoothNonlinearConjugateGradient(75), new DefaultDeactivationPolicy());
    scene.setTimestep(0.1);
   
    // add boxes to bound the world
    Body floor = new Body("floor", new Box(1500,20,1500));
    floor.setPosition(new Vector3(0,-30,0));
    floor.setFixed(true);
   
    Body back = new Body( "back", new Box(200,200,20));   
    back.setPosition(new Vector3(0,0,-55));
    back.setFixed(true);

    Body front = new Body( "front", new Box(200,200,20));   
    front.setPosition(new Vector3(0,0,-7));
    front.setFixed(true);

    Body left = new Body( "left", new Box(20,200,200));   
    left.setPosition(new Vector3(-35,0,0));
    left.setFixed(true);

    Body right = new Body( "right", new Box(20,200,200));   
    right.setPosition(new Vector3(10,0,0));
    right.setFixed(true);
   
    // head
    Geometry headgeometry = new Box(1,1,1);
    Body head = new Body( "head", headgeometry );
    head.setPosition(new Vector3(-5,-9.5,-25));

    // torso1
    Geometry torso1geometry = new Box(1.7,1,1.7);
    Body torso1 = new Body( "torso1", torso1geometry );
    torso1.setPosition(new Vector3(-5,-11,-25));

    Constraint neck = new UniversalJoint(head,torso1,new Vector3(-5,-10,-25), new Vector3(0,0,1), new Vector3(1,0,0));
    scene.addConstraint(neck);

    // torso2
    Geometry torso2geometry = new Box(1.5,1,1.5);
    Body torso2 = new Body( "torso2", torso2geometry );
    torso2.setPosition(new Vector3(-5,-12.5,-25));

    UniversalJoint spine = new UniversalJoint(torso1,torso2,new Vector3(-5,-12,-25), new Vector3(0,0,1), new Vector3(1,0,0));
    spine.getFirstAxisControler().setLimits(-0.2, 0.2);
    spine.getSecondAxisControler().setLimits(-0.2, 0.2);
    scene.addConstraint(spine);

    // torso3
    Geometry torso3geometry = new Box(1.2,1,1.2);
    Body torso3 = new Body( "torso3", torso3geometry );
    torso3.setPosition(new Vector3(-5,-14,-25));

    UniversalJoint spine2 = new UniversalJoint(torso2,torso3,new Vector3(-5,-13,-25), new Vector3(0,0,1), new Vector3(1,0,0));
    spine2.getFirstAxisControler().setLimits(-0.2, 0.2);
    spine2.getSecondAxisControler().setLimits(-0.2, 0.2);
    scene.addConstraint(spine2);

    // upper left arm
    Geometry upleftarmgeometry = new Box(0.5,2,0.5);
    Body upleftarm = new Body( "upleftarm", upleftarmgeometry );
    upleftarm.setPosition(new Vector3(-3.5,-12,-25));
   
    UniversalJoint leftshoulder = new UniversalJoint(torso1,upleftarm, new Vector3(-3.5,-11,-25), new Vector3(0,0,1), new Vector3(0,1,0));
    leftshoulder.getFirstAxisControler().setLimits(-0.5, 0.5);
    leftshoulder.getSecondAxisControler().setLimits(-0.5, 0.5);
    leftshoulder.getFirstAxisControler().setFrictionMagnitude(0.01);
    leftshoulder.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(leftshoulder);

    // upper right arm
    Geometry uprightarmgeometry = new Box(0.5,2,0.5);
    Body uprightarm = new Body( "uprightarm", uprightarmgeometry );
    uprightarm.setPosition(new Vector3(-6.5,-12,-25));
   
    UniversalJoint rightshoulder = new UniversalJoint(torso1,uprightarm, new Vector3(-6.5,-11,-25), new Vector3(0,0,1), new Vector3(0,1,0));
    rightshoulder.getFirstAxisControler().setLimits(-1.5, 1.5);
    rightshoulder.getSecondAxisControler().setLimits(-1.5, 1.5);
    rightshoulder.getFirstAxisControler().setFrictionMagnitude(0.01);
    rightshoulder.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(rightshoulder);
   
    // lower left arm
    Geometry lowerleftarmgeometry = new Box(0.5,1.5,0.5);
    Body lowerleftarm = new Body( "lowerleftarm", lowerleftarmgeometry );
    lowerleftarm.setPosition(new Vector3(-3.5,-14,-25));
   
    UniversalJoint leftelbow = new UniversalJoint(upleftarm, lowerleftarm, new Vector3(-3.5,-13.25,-25), new Vector3(1,0,0), new Vector3(0,1,0));
    leftelbow.getFirstAxisControler().setLimits(-0.0, 0.0);
    leftelbow.getSecondAxisControler().setLimits(-1.5, 1.5);
    leftelbow.getFirstAxisControler().setFrictionMagnitude(0.01);
    leftelbow.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(leftelbow);

    // lower right arm
    Geometry lowerrightarmgeometry = new Box(0.5,1.5,0.5);
    Body lowerrightarm = new Body( "lowerrightarm", lowerrightarmgeometry );
    lowerrightarm.setPosition(new Vector3(-6.5,-14,-25));
   
    UniversalJoint rightelbow = new UniversalJoint(uprightarm, lowerrightarm, new Vector3(-6.5,-13.25,-25), new Vector3(1,0,0), new Vector3(0,1,0));
    rightelbow.getFirstAxisControler().setLimits(-0.0, 0.0);
    rightelbow.getSecondAxisControler().setLimits(-1.5, 1.5);
    rightelbow.getFirstAxisControler().setFrictionMagnitude(0.01);
    rightelbow.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(rightelbow);

    // left thigh
    Geometry leftthighgeometry = new Box(0.5,1.5,0.5);
    Body leftthigh = new Body( "leftthigh", leftthighgeometry );
    leftthigh.setPosition(new Vector3(-5.5,-15.5,-25));

    UniversalJoint lefthip = new UniversalJoint(torso3, leftthigh, new Vector3(-5.5,-14,-25), new Vector3(1,0,0), new Vector3(0,0,1));
    lefthip.getFirstAxisControler().setLimits(-0.5, 0.5);
    lefthip.getSecondAxisControler().setLimits(-0.5, 0.5);
    lefthip.getFirstAxisControler().setFrictionMagnitude(0.01);
    lefthip.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(lefthip);

    // left taiba
    Geometry lefttaibageometry = new Box(0.5,1.5,0.5);
    Body lefttaiba = new Body( "lefttaiba", lefttaibageometry );
    lefttaiba.setPosition(new Vector3(-5.5,-17.5,-25));

    UniversalJoint lefttknee = new UniversalJoint(leftthigh, lefttaiba, new Vector3(-5.5,-16,-25), new Vector3(1,0,0), new Vector3(0,0,1));
    lefttknee.getFirstAxisControler().setLimits(-0.5, 0.5);
    lefttknee.getSecondAxisControler().setLimits(0, 0);
    lefttknee.getFirstAxisControler().setFrictionMagnitude(0.01);
    lefttknee.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(lefttknee);

   
    // right thigh
    Geometry rightthighgeometry = new Box(0.5,1.5,0.5);
    Body rightthigh = new Body( "rightthigh", rightthighgeometry );
    rightthigh.setPosition(new Vector3(-4.0,-15.5,-25));

    UniversalJoint righthip = new UniversalJoint(torso3, rightthigh, new Vector3(-4.0,-14,-25), new Vector3(1,0,0), new Vector3(0,0,1));
    righthip.getFirstAxisControler().setLimits(-0.5, 0.5);
    righthip.getSecondAxisControler().setLimits(-0.5, 0.5);
    righthip.getFirstAxisControler().setFrictionMagnitude(0.01);
    righthip.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(righthip);

    // right taiba
    Geometry righttaibageometry = new Box(0.5,1.5,0.5);
    Body righttaiba = new Body( "righttaiba", righttaibageometry );
    righttaiba.setPosition(new Vector3(-4.0,-17.5,-25));

    UniversalJoint righttknee = new UniversalJoint(rightthigh, righttaiba, new Vector3(-4.0,-16,-25), new Vector3(1,0,0), new Vector3(0,0,1));
    righttknee.getFirstAxisControler().setLimits(-0.5, 0.5);
    righttknee.getSecondAxisControler().setLimits(0, 0);
    righttknee.getFirstAxisControler().setFrictionMagnitude(0.01);
    righttknee.getSecondAxisControler().setFrictionMagnitude(0.01);
    scene.addConstraint(righttknee);
View Full Code Here

    scene = new DefaultScene();
    scene.setTimestep(0.1);
   
    // add boxes to bound the world
    Body floor = new Body("floor", new Box(1500,20,1500));
    floor.setPosition(new Vector3(0,-30,0));
    floor.setFixed(true);
   
    Body back = new Body( "back", new Box(200,200,20));   
    back.setPosition(new Vector3(0,0,-55));
    back.setFixed(true);

    Body front = new Body( "front", new Box(200,200,20));   
    front.setPosition(new Vector3(0,0,-7));
    front.setFixed(true);

    Body left = new Body( "left", new Box(20,200,200));   
    left.setPosition(new Vector3(-35,0,0));
    left.setFixed(true);

    Body right = new Body( "right", new Box(20,200,200));   
    right.setPosition(new Vector3(10,0,0));
    right.setFixed(true);
   
    // create a box
    Box boxgeometry = new Box(2,2,2);
    Body box = new Body( "box", boxgeometry );
    box.setPosition(new Vector3(-10,-11,-25));
       
    // add all to scene
    scene.addBody(floor);
    scene.addBody(back);
    scene.addBody(front);   
View Full Code Here

        // if geometry is usable
        if ( gi instanceof SupportMap3) {

          RayCast raycast = new RayCast();
          Vector3 pb = new Vector3(), pc = new Vector3();
          double t = raycast.run((SupportMap3)gi, null, point, direction, pb, pc, 0, 0.05, 1e-7, true);

//          write out t for debugging
//          System.out.println("t="+t);
         
          if (t<parameter) {
            parameter = t;
            target = bi;
            pickpoint.assign(point.add(direction.multiply(t)));
//            pickpoint.print();
          }
        } // if support map
      } // body is unfixed
    }
   
    // clicked something?
    if (target != null) {
      interacting = true;
     
//      System.out.println("found " + target);
     
      // place controller body into the world at the centre of mass
      // of target body
      controller.setVelocity(new Vector3());
      controller.setPosition(pickpoint);
      controller.updateTransformations();
      target.updateTransformations();

      this.force = new BallInSocketJoint(target, controller, controller.getPosition(), new Vector3(0,1,0));
      this.force.setForceLimit(1.5*target.getMass());
      this.force.setCorrectionVelocityLimit(7);
     
      // copy angular mass properties
      inertia = new InertiaMatrix(target.state.inertia);
View Full Code Here

    Iterator<ContactPoint> i = g.getContacts();
    while (i.hasNext()) {
      ContactPoint cp = i.next();
      System.out.println(cp.point);
      System.out.println("dist="+cp.distance);
      result.add(new Vector3(cp.point));
    }
   
    // expected contact points, in counter clock-wise order
    expect.clear();
    expect.add(new Vector3(0.5,0.75,0.5));
    expect.add(new Vector3(-0.5,0.75,0.5));
    expect.add(new Vector3(-0.5,0.75,-0.5));
    expect.add(new Vector3(0.5,0.75,-0.5));

    // check
    assertTrue(verifyPolygon(expect, result));

 
    /*
     * Test 2, displace along negative y-axis
     */
   
    // displace box2
    body2.setPosition(0, -1.5, 0);
   
    // run contact point generation
    g.run();
   
    // extract contact points
    result.clear();
    i = g.getContacts();
    while (i.hasNext()) {
      ContactPoint cp = i.next();
      System.out.println(cp.point);
      System.out.println("dist="+cp.distance);
      result.add(new Vector3(cp.point));
    }
   
    // expected contact points, in counter clock-wise order
    expect.clear();
    expect.add(new Vector3( 0.5,-0.75,-0.5));
    expect.add(new Vector3(-0.5,-0.75,-0.5));
    expect.add(new Vector3(-0.5,-0.75, 0.5));
    expect.add(new Vector3( 0.5,-0.75, 0.5));

    // check
    assertTrue(verifyPolygon(expect, result));

 
    /*
     * Test 3, displace along positive x-axis
     */
   
    // displace box2
    body2.setPosition(1.5, 0, 0);
   
    // run contact point generation
    g.run();
   
    // extract contact points
    result.clear();
    i = g.getContacts();
    while (i.hasNext()) {
      ContactPoint cp = i.next();
      System.out.println(cp.point);
      System.out.println("dist="+cp.distance);
      result.add(new Vector3(cp.point));
    }
   
    // expected contact points, in counter clock-wise order
    expect.clear();
    expect.add(new Vector3( 0.75, 0.5, 0.5));
    expect.add(new Vector3( 0.75, 0.5,-0.5));
    expect.add(new Vector3( 0.75,-0.5,-0.5));
    expect.add(new Vector3( 0.75,-0.5, 0.5));

    // check
    assertTrue(verifyPolygon(expect, result));
   
  }
View Full Code Here

    // iterator for second polygon
    ListIterator<Vector3> poly2iter = poly2.listIterator();

   
    boolean traversalStarted = false;
    Vector3 p2 = poly2iter.next(); // poly2iter will always have a next at this point
    for (Vector3 p1: templist) {
      if (traversalStarted) {   
        // check the next vertex from poly2
        if (poly2iter.hasNext()) {
          p2 = poly2iter.next();
         
          // distance less that epsilon
          if (p2.sub(p1).norm() >= epsilon)
            return false;
        } else {
          // no more vertices
          return true;
        }   
      } else {
        if (p2.sub(p1).norm() < epsilon) {
          traversalStarted = true;
        }
      }
    }
View Full Code Here

*/
public class Vector3Test {

    @Test
    public void testCtor01() {
        final Vector3 v = new Vector3();
        assertEquals(0., v.x);
        assertEquals(0., v.y);
        assertEquals(0., v.z);
    }
View Full Code Here

        assertEquals(0., v.z);
    }

    @Test(expected = NullPointerException.class)
    public void testCtor02() {
        new Vector3((Vector3) null);
    }
View Full Code Here

        new Vector3((Vector3) null);
    }

    @Test
    public void testCtor03() {
        final Vector3 v =
                new Vector3(new Vector3(Double.MIN_VALUE, Double.MAX_VALUE, 0.));
        assertEquals(Double.MIN_VALUE, v.x);
        assertEquals(Double.MAX_VALUE, v.y);
        assertEquals(0., v.z);

        final Vector3 w =
                new Vector3(new Vector3(Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY));
        assertEquals(Double.NaN, w.x);
        assertEquals(Double.POSITIVE_INFINITY, w.y);
        assertEquals(Double.NEGATIVE_INFINITY, w.z);
    }
View Full Code Here

TOP

Related Classes of jinngine.math.Vector3

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.