MouseJoint.java :  » Game » rokon » com » badlogic » gdx » physics » box2d » joints » Android Open Source

Android Open Source » Game » rokon 
rokon » com » badlogic » gdx » physics » box2d » joints » MouseJoint.java
package com.badlogic.gdx.physics.box2d.joints;

import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Joint;
import com.badlogic.gdx.physics.box2d.World;

/**
 *  A mouse joint is used to make a point on a body track a
 * specified world point. This a soft constraint with a maximum
 * force. This allows the constraint to stretch and without
 * applying huge forces.
 * NOTE: this joint is not documented in the manual because it was
 * developed to be used in the testbed. If you want to learn how to
 * use the mouse joint, look at the testbed.
 */
public class MouseJoint extends Joint
{
  public MouseJoint(World world, long addr) {
    super(world, addr);
  }

  /**
   *  Use this to update the target point.
   */
  public void setTarget(Vector2 target)
  {
    jniSetTarget( addr, target.x, target.y );
  }
  
  private native void jniSetTarget( long addr, float x, float y );
  
  /**
   *  Use this to update the target point.
   */
  final float[] tmp = new float[2];
  private final Vector2 target = new Vector2( );
  public Vector2 getTarget()
  {
    jniGetTarget( addr, tmp );
    target.x = tmp[0]; target.y = tmp[1];
    return target;
  }
  
  private native void jniGetTarget( long addr, float[] target );

  /**
   *  Set/get the maximum force in Newtons.
   */
  public void setMaxForce(float force)
  {
    jniSetMaxForce( addr, force );
  }
  
  private native void jniSetMaxForce( long addr, float force );
  
  /**
   *  Set/get the maximum force in Newtons.
   */
  public float getMaxForce()
  {
    return jniGetMaxForce( addr );
  }
  
  private native float jniGetMaxForce( long addr );

  /**
   * Set/get the frequency in Hertz.
   */
  public void setFrequency(float hz)
  {
    jniSetFrequency( addr, hz );
  }
  
  private native void jniSetFrequency( long addr, float hz );
  
  /**
   * Set/get the frequency in Hertz.
   */
  public float getFrequency()
  {
    return jniGetFrequency( addr );
  }

  private native float jniGetFrequency( long addr );
  
  /**
   *  Set/get the damping ratio (dimensionless).
   */
  public void setDampingRatio(float ratio)
  {
    jniSetDampingRatio( addr, ratio );
  }
  
  private native void jniSetDampingRatio( long addr, float ratio );
  
  /**
   *  Set/get the damping ratio (dimensionless).
   */
  public float getDampingRatio()
  {
    return jniGetDampingRatio( addr );
  }
  
  private native float jniGetDampingRatio( long addr );
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.