package SimbodyAPI;

/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version: 1.3.19
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */


public class Model {
  public static Placement plus(Placement arg0) {
    return new Placement(ModelJNI.plus__SWIG_0(Placement.getCPtr(arg0)), true);
  }

  public static Placement minus(Placement arg0) {
    return new Placement(ModelJNI.minus__SWIG_0(Placement.getCPtr(arg0)), true);
  }

  public static Placement abs(Placement arg0) {
    return new Placement(ModelJNI.abs(Placement.getCPtr(arg0)), true);
  }

  public static Placement sqrt(Placement arg0) {
    return new Placement(ModelJNI.sqrt(Placement.getCPtr(arg0)), true);
  }

  public static Placement exp(Placement arg0) {
    return new Placement(ModelJNI.exp(Placement.getCPtr(arg0)), true);
  }

  public static Placement log(Placement arg0) {
    return new Placement(ModelJNI.log(Placement.getCPtr(arg0)), true);
  }

  public static Placement sin(Placement arg0) {
    return new Placement(ModelJNI.sin(Placement.getCPtr(arg0)), true);
  }

  public static Placement cos(Placement arg0) {
    return new Placement(ModelJNI.cos(Placement.getCPtr(arg0)), true);
  }

  public static Placement asin(Placement arg0) {
    return new Placement(ModelJNI.asin(Placement.getCPtr(arg0)), true);
  }

  public static Placement acos(Placement arg0) {
    return new Placement(ModelJNI.acos(Placement.getCPtr(arg0)), true);
  }

  public static Placement length(Placement arg0) {
    return new Placement(ModelJNI.length__SWIG_0(Placement.getCPtr(arg0)), true);
  }

  public static Placement normalize(Placement arg0) {
    return new Placement(ModelJNI.normalize__SWIG_0(Placement.getCPtr(arg0)), true);
  }

  public static Placement add(Placement l, Placement r) {
    return new Placement(ModelJNI.add(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement substract(Placement l, Placement r) {
    return new Placement(ModelJNI.substract(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement multiply(Placement l, Placement r) {
    return new Placement(ModelJNI.multiply(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement divide(Placement l, Placement r) {
    return new Placement(ModelJNI.divide(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement distance(Placement l, Placement r) {
    return new Placement(ModelJNI.distance(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement angle(Placement l, Placement r) {
    return new Placement(ModelJNI.angle(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement dot(Placement l, Placement r) {
    return new Placement(ModelJNI.dot(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement cross(Placement l, Placement r) {
    return new Placement(ModelJNI.cross(Placement.getCPtr(l), Placement.getCPtr(r)), true);
  }

  public static Placement plus(Feature f) {
    return new Placement(ModelJNI.plus__SWIG_1(Feature.getCPtr(f)), true);
  }

  public static Placement minus(Feature f) {
    return new Placement(ModelJNI.minus__SWIG_1(Feature.getCPtr(f)), true);
  }

  public static Placement length(Feature f) {
    return new Placement(ModelJNI.length__SWIG_1(Feature.getCPtr(f)), true);
  }

  public static Placement normalize(Feature f) {
    return new Placement(ModelJNI.normalize__SWIG_1(Feature.getCPtr(f)), true);
  }

  // enums and constants
  public final static int UnknownJointType = ModelJNI.get_UnknownJointType();
  public final static int ThisIsGround = ModelJNI.get_ThisIsGround();
  public final static int WeldJoint = ModelJNI.get_WeldJoint();
  public final static int TorsionJoint = ModelJNI.get_TorsionJoint();
  public final static int PinJoint = ModelJNI.get_PinJoint();
  public final static int SlidingJoint = ModelJNI.get_SlidingJoint();
  public final static int UJoint = ModelJNI.get_UJoint();
  public final static int CylinderJoint = ModelJNI.get_CylinderJoint();
  public final static int PlanarJoint = ModelJNI.get_PlanarJoint();
  public final static int GimbalJoint = ModelJNI.get_GimbalJoint();
  public final static int OrientationJoint = ModelJNI.get_OrientationJoint();
  public final static int BallJoint = ModelJNI.get_BallJoint();
  public final static int CartesianJoint = ModelJNI.get_CartesianJoint();
  public final static int FreeLineJoint = ModelJNI.get_FreeLineJoint();
  public final static int FreeJoint = ModelJNI.get_FreeJoint();
}
