Package edu.cmu.cs.stage3.math

Examples of edu.cmu.cs.stage3.math.Matrix33


  }
  public void setTransformation( javax.vecmath.Matrix4d m, ReferenceFrame asSeenBy ) {
    setLocalTransformation( calculateTransformation( m, asSeenBy ) );
  }
  public void setPosition( javax.vecmath.Vector3d position, ReferenceFrame asSeenBy ) {
    Matrix33 axes = getAxes( null );
    Matrix44 m = new Matrix44();
    m.setPosition( position );
    m = calculateTransformation( m, asSeenBy );
    m.setAxes( axes );
    setLocalTransformation( m );
View Full Code Here


        m.m32 = offset.z;
        s_calculatePointAtHelperOffset.setLocalTransformation( m );
        actualTarget = s_calculatePointAtHelperOffset;
      }
 
      Matrix33 result;
      if( onlyAffectYaw ) {
        // setup "helperA" with the orientation of "asSeenBy" and the position of "this"
        s_calculatePointAtHelperA.setParent( asSeenBy );
        s_calculatePointAtHelperA.setLocalTransformation( new Matrix44() );
        s_calculatePointAtHelperA.setPosition( Vector3.ZERO, this );
 
        // calculate the angle of rotation around y of "actualTarget" as seen by "helperA"
        Vector3 targetPosition = actualTarget.getPosition( s_calculatePointAtHelperA );
        double targetTheta = Math.atan2( targetPosition.x, targetPosition.z );
 
        // place "helperB" out in front of "this"
        s_calculatePointAtHelperB.setParent( this );
        s_calculatePointAtHelperB.setPosition( MathUtilities.getZAxis(), this );
 
        // calculate the angle of rotation around Y of "helperB" as seen by "helperA"
        Vector3 forwardPosition = s_calculatePointAtHelperB.getPosition( s_calculatePointAtHelperA );
        double forwardTheta = Math.atan2( forwardPosition.x, forwardPosition.z );
 
        // setup "helperB" to have position and orientation of "this"
        s_calculatePointAtHelperB.setLocalTransformation( new Matrix44() );
 
        // calculate how much to rotate
        double deltaTheta = targetTheta - forwardTheta;
 
        // rotate "helperB" around Y as seen by "helperA"
        s_calculatePointAtHelperB.rotate( MathUtilities.getYAxis(), deltaTheta, s_calculatePointAtHelperA );
 
        // extract result
        result = s_calculatePointAtHelperB.getAxes( asSeenBy );
 
        // clean up
        s_calculatePointAtHelperA.setParent( null );
        s_calculatePointAtHelperB.setParent( null );
      } else {
        javax.vecmath.Vector3d targetPosition = actualTarget.getPosition( asSeenBy );
        javax.vecmath.Vector3d zAxis = MathUtilities.normalizeV( MathUtilities.subtract( targetPosition, position ) );
        javax.vecmath.Vector3d xAxis = MathUtilities.normalizeV( MathUtilities.crossProduct( upGuide, zAxis ) );
        if( Double.isNaN( xAxis.lengthSquared() ) ) {
          throw new RuntimeException( "cannot calculate point at: zAxis=" + zAxis + " upGuide=" + upGuide );
        }
        javax.vecmath.Vector3d yAxis = MathUtilities.crossProduct( zAxis, xAxis );
        result = new Matrix33( xAxis, yAxis, zAxis );
      }
 
      if( offset==null ) {
        s_calculatePointAtHelperOffset.setParent( null );
      }
View Full Code Here

    javax.vecmath.Vector3d xAxis = MathUtilities.normalizeV( MathUtilities.crossProduct( upGuide, zAxis ) );
    if( Double.isNaN( xAxis.lengthSquared() ) ) {
      throw new RuntimeException( "cannot calculate orientation: forward=" + forward + " upGuide=" + upGuide );
    }
    javax.vecmath.Vector3d yAxis = MathUtilities.crossProduct( zAxis, xAxis );
    return new Matrix33( xAxis, yAxis, zAxis );
  }
View Full Code Here

  public void setOrientation( javax.vecmath.Vector3d forward, javax.vecmath.Vector3d upGuide, ReferenceFrame asSeenBy ) {
    setAxes( calculateOrientation( forward, upGuide ), asSeenBy );
  }

  public Matrix33 calculateStandUp( ReferenceFrame asSeenBy ) {
    Matrix33 axes = getAxes( asSeenBy );
    javax.vecmath.Vector3d yAxis = MathUtilities.getYAxis();
    javax.vecmath.Vector3d zAxis = MathUtilities.normalizeV( MathUtilities.crossProduct( axes.getRow( 0 ), yAxis ) );
    javax.vecmath.Vector3d xAxis = MathUtilities.crossProduct( yAxis, zAxis );
    return new Matrix33( xAxis, yAxis, zAxis );
  }
View Full Code Here

          dy = 0.0;
          dz = m_zHermite.evaluateDerivative(portion);
   
   
          if (!((dx == 0) && (dy==0) && (dz==0))){
            Matrix33 orient = new Matrix33();
            orient.setForwardUpGuide(new javax.vecmath.Vector3d(dx,dy,dz), new javax.vecmath.Vector3d(0,1,0));
            //System.out.println(m_asSeenBy);
            subject.setOrientationRightNow(orient, m_asSeenBy);
            //subject.s
          } else {
            //System.out.println("deriv 0");
View Full Code Here

      return Math.sqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z);
    }
   
    double getAngle(Vector3 a, Vector3 b) { 
      // calculate angle
      Vector3 c = Vector3.subtract(a, b);
      double cLength = getLength(c);
      double aLength = getLength(a);
      double bLength = getLength(b);   
      double cosC = ((cLength * cLength) - (aLength * aLength) - (bLength * bLength)) / (-2.0 * aLength * bLength);
     
 
View Full Code Here

    /*protected Vector3 getHandForward() {
      return null;
    }*/
   
    protected void setVectors() {
      Vector3 rightUpperPos = upperLimb.getPosition(upperLimb);
      Vector3 targetPos = getTargetPosition(); //m_target.getPosition(upperLimb); 
      targetVector = Vector3.subtract(targetPos,rightUpperPos);
      //targetVector.normalize();
     
      javax.vecmath.Vector3d currentDir = null;
      if (lowerLimb == null) {
View Full Code Here

      if (asb == null) asb = upperLimb;
     
      javax.vecmath.Vector3d targPos = m_target.getBoundingBox(asb).getCenter();
      Vector3d offsetDir = null;
     
      HowMuch howMuch = HowMuch.INSTANCE_AND_PARTS;
      // if target is not a top-level object, just get the bounding box for that one part
      if ( !(m_target.getParent().equals(m_target.getWorld() )) ){
        howMuch = HowMuch.INSTANCE;
      }
     
View Full Code Here

    protected java.util.Vector createPopupStructure() {
      java.util.Vector structure = createExpressionStructure();
      if( (structure != null) && isNullValid ) {
        if( structure.size() > 0 ) {
          structure.insertElementAt( new StringObjectPair( "Separator", javax.swing.JSeparator.class ), 0 );
        }
        //structure.insertElementAt( new StringObjectPair( "<None>", objectRunnableFactory.createRunnable( null ) ), 0 );
      }
      return structure;
    }
View Full Code Here

        structure.add( new edu.cmu.cs.stage3.util.StringObjectPair( "Expressions which evaluate to " + className, expressionStructure ) );
      }

      if( isNullValid ) {
        if( structure.size() > 0 ) {
          structure.insertElementAt( new StringObjectPair( "Separator", javax.swing.JSeparator.class ), 0 );
        }
        //structure.insertElementAt( new StringObjectPair( "<None>", objectRunnableFactory.createRunnable( null ) ), 0 );
      }

      return structure;
View Full Code Here

TOP

Related Classes of edu.cmu.cs.stage3.math.Matrix33

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.