/*
MobileRobots Advanced Robotics Navigation and Localization (ARNL)
Version 1.7.1

Copyright (C) 2004, 2005 ActivMedia Robotics LLC
Copyright (C) 2006, 2007, 2008, 2009 MobileRobots Inc.

All Rights Reserved.

MobileRobots Inc does not make any representations about the
suitability of this software for any purpose.  It is provided "as is"
without express or implied warranty.

The license for this software is distributed as LICENSE.txt in the top
level directory.

robots@mobilerobots.com
MobileRobots
10 Columbia Drive
Amherst, NH 03031
800-639-9481

*/
/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.29
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package com.mobilerobots.BaseArnl;

  import com.mobilerobots.Aria.*;
  import com.mobilerobots.ArNetworking.*;

public class ArPathPlanningTask extends ArASyncTask {
  private long swigCPtr;

  /* for internal use by swig only */
  public ArPathPlanningTask(long cPtr, boolean cMemoryOwn) {
    super(BaseArnlJavaJNI.SWIGArPathPlanningTaskUpcast(cPtr), cMemoryOwn);
    swigCPtr = cPtr;
  }

  /* for internal use by swig only */
  public static long getCPtr(ArPathPlanningTask obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public void delete() {
    if(swigCPtr != 0 && swigCMemOwn) {
      swigCMemOwn = false;
      BaseArnlJavaJNI.delete_ArPathPlanningTask(swigCPtr);
    }
    swigCPtr = 0;
    super.delete();
  }

  public ArPathPlanningTask(ArRobot robot, ArRangeDevice laser, ArRangeDevice sonar, ArMapInterface m) {
    this(BaseArnlJavaJNI.new_ArPathPlanningTask__SWIG_0(ArRobot.getCPtr(robot), ArRangeDevice.getCPtr(laser), ArRangeDevice.getCPtr(sonar), ArMapInterface.getCPtr(m)), true);
  }

  public ArPathPlanningTask(ArRobot robot, ArRangeDevice sonar, ArMapInterface map) {
    this(BaseArnlJavaJNI.new_ArPathPlanningTask__SWIG_1(ArRobot.getCPtr(robot), ArRangeDevice.getCPtr(sonar), ArMapInterface.getCPtr(map)), true);
  }

  public boolean pathPlanToPose(ArPose goal, boolean headingFlag, boolean printFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_pathPlanToPose__SWIG_0(swigCPtr, ArPose.getCPtr(goal), headingFlag, printFlag);
  }

  public boolean pathPlanToPose(ArPose goal, boolean headingFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_pathPlanToPose__SWIG_1(swigCPtr, ArPose.getCPtr(goal), headingFlag);
  }

  public boolean pathPlanToGoal(String goalname, boolean strictGoalTypeMatching) {
    return BaseArnlJavaJNI.ArPathPlanningTask_pathPlanToGoal__SWIG_0(swigCPtr, goalname, strictGoalTypeMatching);
  }

  public boolean pathPlanToGoal(String goalname) {
    return BaseArnlJavaJNI.ArPathPlanningTask_pathPlanToGoal__SWIG_1(swigCPtr, goalname);
  }

  public boolean startPathPlanToLocalPose(boolean printFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_startPathPlanToLocalPose(swigCPtr, printFlag);
  }

  public boolean continuePathPlanToLocalPose(ArPose goal, boolean headingFlag, boolean printFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_continuePathPlanToLocalPose__SWIG_0(swigCPtr, ArPose.getCPtr(goal), headingFlag, printFlag);
  }

  public boolean continuePathPlanToLocalPose(ArPose goal, boolean headingFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_continuePathPlanToLocalPose__SWIG_1(swigCPtr, ArPose.getCPtr(goal), headingFlag);
  }

  public boolean endPathPlanToLocalPose(boolean printFlag) {
    return BaseArnlJavaJNI.ArPathPlanningTask_endPathPlanToLocalPose(swigCPtr, printFlag);
  }

  public ArActionPlanAndMoveToGoal getPathPlanAction() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getPathPlanAction(swigCPtr);
    return (cPtr == 0) ? null : new ArActionPlanAndMoveToGoal(cPtr, false);
  }

  public ArActionGroup getPathPlanActionGroup() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getPathPlanActionGroup(swigCPtr);
    return (cPtr == 0) ? null : new ArActionGroup(cPtr, false);
  }

  public void setPathPlanActionGroup(ArActionGroup group, boolean takeOwnershipOfGroup) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPathPlanActionGroup__SWIG_0(swigCPtr, ArActionGroup.getCPtr(group), takeOwnershipOfGroup);
  }

  public void setPathPlanActionGroup(ArActionGroup group) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPathPlanActionGroup__SWIG_1(swigCPtr, ArActionGroup.getCPtr(group));
  }

  public boolean loadParamFile(String file) {
    return BaseArnlJavaJNI.ArPathPlanningTask_loadParamFile(swigCPtr, file);
  }

  public double getSafeCollisionRange() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSafeCollisionRange(swigCPtr);
  }

  public boolean saveParams(String filename) {
    return BaseArnlJavaJNI.ArPathPlanningTask_saveParams(swigCPtr, filename);
  }

  public void addGoalDoneCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addGoalDoneCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void remGoalDoneCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGoalDoneCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void addGoalFailedCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addGoalFailedCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void remGoalFailedCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGoalFailedCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void addGoalInterruptedCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addGoalInterruptedCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void remGoalInterruptedCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGoalInterruptedCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void addNewGoalCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addNewGoalCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void remNewGoalCB(SWIGTYPE_p_ArFunctor1TArPose_t functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remNewGoalCB(swigCPtr, SWIGTYPE_p_ArFunctor1TArPose_t.getCPtr(functor));
  }

  public void addGoalFinishedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addGoalFinishedCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remGoalFinishedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGoalFinishedCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void addPlainNewGoalCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainNewGoalCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainNewGoalCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainNewGoalCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainNewGoalCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainNewGoalCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void addPlainGoalFinishedCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalFinishedCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainGoalFinishedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalFinishedCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainGoalFinishedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainGoalFinishedCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void addPlainGoalDoneCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalDoneCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainGoalDoneCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalDoneCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainGoalDoneCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainGoalDoneCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void addPlainGoalFailedCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalFailedCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainGoalFailedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalFailedCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainGoalFailedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainGoalFailedCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void addPlainGoalInterruptedCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalInterruptedCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainGoalInterruptedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainGoalInterruptedCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainGoalInterruptedCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainGoalInterruptedCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void trackingFailed(int failedTimes) {
    BaseArnlJavaJNI.ArPathPlanningTask_trackingFailed(swigCPtr, failedTimes);
  }

  public void cancelPathPlan() {
    BaseArnlJavaJNI.ArPathPlanningTask_cancelPathPlan(swigCPtr);
  }

  public void setVerboseFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setVerboseFlag(swigCPtr, f);
  }

  public ArPose getCurrentGoal() {
    return new ArPose(BaseArnlJavaJNI.ArPathPlanningTask_getCurrentGoal(swigCPtr), true);
  }

  public boolean getInitializedFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getInitializedFlag(swigCPtr);
  }

  public boolean getVerboseFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getVerboseFlag(swigCPtr);
  }

  public ArPathPlanningTask.PathPlanningState getState() {
    return ArPathPlanningTask.PathPlanningState.swigToEnum(BaseArnlJavaJNI.ArPathPlanningTask_getState(swigCPtr));
  }

  public void getFailureString(String str, long len) {
    BaseArnlJavaJNI.ArPathPlanningTask_getFailureString(swigCPtr, str, len);
  }

  public void getStatusString(String str, long len) {
    BaseArnlJavaJNI.ArPathPlanningTask_getStatusString(swigCPtr, str, len);
  }

  public ArPoseList getCurrentPath(ArPose from, boolean local) {
    return new ArPoseList(BaseArnlJavaJNI.ArPathPlanningTask_getCurrentPath__SWIG_0(swigCPtr, ArPose.getCPtr(from), local), true);
  }

  public ArPoseList getCurrentPath(ArPose from) {
    return new ArPoseList(BaseArnlJavaJNI.ArPathPlanningTask_getCurrentPath__SWIG_1(swigCPtr, ArPose.getCPtr(from)), true);
  }

  public ArMapInterface getAriaMap() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getAriaMap(swigCPtr);
    return (cPtr == 0) ? null : new ArMapInterface(cPtr, false);
  }

  public boolean getUseLaserFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseLaserFlag(swigCPtr);
  }

  public boolean getUseSonarFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseSonarFlag(swigCPtr);
  }

  public boolean getMapChangedFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMapChangedFlag(swigCPtr);
  }

  public boolean getUseOneWaysFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseOneWaysFlag(swigCPtr);
  }

  public boolean getUseResistanceFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseResistanceFlag__SWIG_0(swigCPtr);
  }

  public double getMarkOldPathFactor() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMarkOldPathFactor__SWIG_0(swigCPtr);
  }

  public short getResistance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getResistance__SWIG_0(swigCPtr);
  }

  public double getMaxSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMaxSpeed(swigCPtr);
  }

  public double getMaxRotSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMaxRotSpeed(swigCPtr);
  }

  public double getCollisionRange() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getCollisionRange(swigCPtr);
  }

  public double getSlowSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSlowSpeed(swigCPtr);
  }

  public double getFastSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getFastSpeed(swigCPtr);
  }

  public double getSideClearanceAtSlowSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSideClearanceAtSlowSpeed(swigCPtr);
  }

  public double getSideClearanceAtFastSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSideClearanceAtFastSpeed(swigCPtr);
  }

  public double getFrontClearance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getFrontClearance(swigCPtr);
  }

  public double getFrontPaddingAtSlowSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getFrontPaddingAtSlowSpeed(swigCPtr);
  }

  public double getFrontPaddingAtFastSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getFrontPaddingAtFastSpeed(swigCPtr);
  }

  public double getSuperMaxTransDecel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSuperMaxTransDecel(swigCPtr);
  }

  public double getEmergencyMaxTransDecel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getEmergencyMaxTransDecel(swigCPtr);
  }

  public double getWidth() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getWidth(swigCPtr);
  }

  public double getLength() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLength(swigCPtr);
  }

  public double getPlanMapResolution() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getPlanMapResolution(swigCPtr);
  }

  public double getPlanFreeSpace() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getPlanFreeSpace(swigCPtr);
  }

  public double getHeadingWt() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getHeadingWt(swigCPtr);
  }

  public double getDistanceWt() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getDistanceWt(swigCPtr);
  }

  public double getVelocityWt() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getVelocityWt(swigCPtr);
  }

  public double getSmoothingWt() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSmoothingWt(swigCPtr);
  }

  public int getLinVelIncrements() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLinVelIncrements(swigCPtr);
  }

  public int getRotVelIncrements() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getRotVelIncrements(swigCPtr);
  }

  public int getSmoothSize() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSmoothSize(swigCPtr);
  }

  public double getObsThreshold() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getObsThreshold(swigCPtr);
  }

  public double getMaxExpansionFactor() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMaxExpansionFactor(swigCPtr);
  }

  public boolean getUseCollisionRangeForPlanningFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseCollisionRangeForPlanningFlag(swigCPtr);
  }

  public double getGoalDistanceTolerance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalDistanceTolerance(swigCPtr);
  }

  public double getGoalAngleTolerance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalAngleTolerance(swigCPtr);
  }

  public double getGoalSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalSpeed(swigCPtr);
  }

  public double getGoalRotSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalRotSpeed(swigCPtr);
  }

  public double getGoalTransAccel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalTransAccel(swigCPtr);
  }

  public double getGoalRotAccel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalRotAccel(swigCPtr);
  }

  public double getGoalTransDecel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalTransDecel(swigCPtr);
  }

  public double getGoalRotDecel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalRotDecel(swigCPtr);
  }

  public double getGoalSwitchTime() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalSwitchTime(swigCPtr);
  }

  public boolean getGoalUseEncoderFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalUseEncoderFlag(swigCPtr);
  }

  public double getGoalOccupiedFailDistance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getGoalOccupiedFailDistance(swigCPtr);
  }

  public double getLocalPathFailDistance() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLocalPathFailDistance(swigCPtr);
  }

  public double getHeadingRotSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getHeadingRotSpeed(swigCPtr);
  }

  public double getHeadingRotAccel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getHeadingRotAccel(swigCPtr);
  }

  public double getHeadingRotDecel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getHeadingRotDecel(swigCPtr);
  }

  public int getSecsToFail() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSecsToFail(swigCPtr);
  }

  public double getAlignSpeed() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getAlignSpeed(swigCPtr);
  }

  public double getAlignAngle() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getAlignAngle(swigCPtr);
  }

  public int getSplineDegree() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getSplineDegree(swigCPtr);
  }

  public int getNumSplinePoints() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getNumSplinePoints(swigCPtr);
  }

  public boolean getPlanEverytimeFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getPlanEverytimeFlag(swigCPtr);
  }

  public boolean getClearOnFailFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getClearOnFailFlag(swigCPtr);
  }

  public boolean getUseEStopFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUseEStopFlag(swigCPtr);
  }

  public double getCurvatureSpeedFactor() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getCurvatureSpeedFactor(swigCPtr);
  }

  public double getOneWayCost() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getOneWayCost(swigCPtr);
  }

  public double getCenterAwayCost() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getCenterAwayCost(swigCPtr);
  }

  public boolean getLogFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLogFlag(swigCPtr);
  }

  public int getPathPlanningLogLevel() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getPathPlanningLogLevel(swigCPtr);
  }

  public double getMatchLengths() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getMatchLengths(swigCPtr);
  }

  public boolean getLocalPathPlanningFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLocalPathPlanningFlag(swigCPtr);
  }

  public void setUseLaserFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseLaserFlag(swigCPtr, f);
  }

  public void setUseSonarFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseSonarFlag(swigCPtr, f);
  }

  public void setMapChangedFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMapChangedFlag(swigCPtr, f);
  }

  public void setUseOneWaysFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseOneWaysFlag(swigCPtr, f);
  }

  public void setResistance(short f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setResistance(swigCPtr, f);
  }

  public void setPlanDoneCallBack(ArFunctor prcb) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPlanDoneCallBack(swigCPtr, ArFunctor.getCPtr(prcb));
  }

  public void setUseCollisionRangeForPlanningFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseCollisionRangeForPlanningFlag(swigCPtr, f);
  }

  public void setMaxSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMaxSpeed(swigCPtr, f);
  }

  public void setMaxRotSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMaxRotSpeed(swigCPtr, f);
  }

  public void setCollisionRange(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setCollisionRange(swigCPtr, f);
  }

  public void setSlowSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSlowSpeed(swigCPtr, f);
  }

  public void setFastSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setFastSpeed(swigCPtr, f);
  }

  public void setSideClearanceAtSlowSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSideClearanceAtSlowSpeed(swigCPtr, f);
  }

  public void setSideClearanceAtFastSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSideClearanceAtFastSpeed(swigCPtr, f);
  }

  public void setFrontClearance(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setFrontClearance(swigCPtr, f);
  }

  public void setFrontPaddingAtSlowSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setFrontPaddingAtSlowSpeed(swigCPtr, f);
  }

  public void setFrontPaddingAtFastSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setFrontPaddingAtFastSpeed(swigCPtr, f);
  }

  public void setSuperMaxTransDecel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSuperMaxTransDecel(swigCPtr, f);
  }

  public void setEmergencyMaxTransDecel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setEmergencyMaxTransDecel(swigCPtr, f);
  }

  public void setWidth(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setWidth(swigCPtr, f);
  }

  public void setLength(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLength(swigCPtr, f);
  }

  public void setPlanMapResolution(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPlanMapResolution(swigCPtr, f);
  }

  public void setPlanFreeSpace(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPlanFreeSpace(swigCPtr, f);
  }

  public void setHeadingWt(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setHeadingWt(swigCPtr, f);
  }

  public void setDistanceWt(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setDistanceWt(swigCPtr, f);
  }

  public void setVelocityWt(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setVelocityWt(swigCPtr, f);
  }

  public void setSmoothingWt(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSmoothingWt(swigCPtr, f);
  }

  public void setLinVelIncrements(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLinVelIncrements(swigCPtr, f);
  }

  public void setRotVelIncrements(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setRotVelIncrements(swigCPtr, f);
  }

  public void setSmoothWinSize(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSmoothWinSize(swigCPtr, f);
  }

  public void setObsThreshold(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setObsThreshold(swigCPtr, f);
  }

  public void setMaxExpansionFactor(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMaxExpansionFactor(swigCPtr, f);
  }

  public void setGoalDistanceTolerance(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalDistanceTolerance(swigCPtr, f);
  }

  public void setGoalAngleTolerance(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalAngleTolerance(swigCPtr, f);
  }

  public void setGoalSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalSpeed(swigCPtr, f);
  }

  public void setGoalRotSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalRotSpeed(swigCPtr, f);
  }

  public void setGoalTransAccel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalTransAccel(swigCPtr, f);
  }

  public void setGoalRotAccel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalRotAccel(swigCPtr, f);
  }

  public void setGoalTransDecel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalTransDecel(swigCPtr, f);
  }

  public void setGoalRotDecel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalRotDecel(swigCPtr, f);
  }

  public void setGoalSwitchTime(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalSwitchTime(swigCPtr, f);
  }

  public void setGoalUseEncoderFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalUseEncoderFlag(swigCPtr, f);
  }

  public void setGoalOccupiedFailDistance(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setGoalOccupiedFailDistance(swigCPtr, f);
  }

  public void setHeadingRotSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setHeadingRotSpeed(swigCPtr, f);
  }

  public void setHeadingRotAccel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setHeadingRotAccel(swigCPtr, f);
  }

  public void setHeadingRotDecel(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setHeadingRotDecel(swigCPtr, f);
  }

  public void setSecsToFail(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSecsToFail(swigCPtr, f);
  }

  public void setAlignAngle(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setAlignAngle(swigCPtr, f);
  }

  public void setAlignSpeed(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setAlignSpeed(swigCPtr, f);
  }

  public void setSplineDegree(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setSplineDegree(swigCPtr, f);
  }

  public void setNumSplinePoints(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setNumSplinePoints(swigCPtr, f);
  }

  public void setPlanEverytimeFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPlanEverytimeFlag(swigCPtr, f);
  }

  public void setClearOnFailFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setClearOnFailFlag(swigCPtr, f);
  }

  public void setUseEStopFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseEStopFlag(swigCPtr, f);
  }

  public void setUseResistanceFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setUseResistanceFlag(swigCPtr, f);
  }

  public void setMarkOldPathFactor(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMarkOldPathFactor(swigCPtr, f);
  }

  public void setLogFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLogFlag(swigCPtr, f);
  }

  public void setLogLevel(int f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLogLevel(swigCPtr, f);
  }

  public void setMatchLengths(double f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMatchLengths(swigCPtr, f);
  }

  public void setLocalPathPlanningFlag(boolean f) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLocalPathPlanningFlag(swigCPtr, f);
  }

  public void setPlanParams(double robotWidth, double robotLength, double frontClearance, double sideClearance, double obsThreshold, double maxLinAcc, double maxRotAcc, double maxLinDec, double maxRotDec, double maxLinVel, double maxRotVel, double headingWt, double distanceWt, double velocityWt, double smoothingWt, double gridRes, int nli, int nri, int sws, double maxObsDistance, double goalDistTol, double goalAngTol, double PlanFreeSpace, int secsToFail, double alignAngle, double alignSpeed, int splineDegree, int numSplinePoints, double goalOccupiedFailDistance, double curvatureSpeedFactor, boolean useCollisionRangeForPlanningFlag, double oneWayCost, double centerAwayCost, double localPathFailDistance, short resistance, double markOldPathFactor, double matchLengths, boolean checkInsideRadius) {
    BaseArnlJavaJNI.ArPathPlanningTask_setPlanParams(swigCPtr, robotWidth, robotLength, frontClearance, sideClearance, obsThreshold, maxLinAcc, maxRotAcc, maxLinDec, maxRotDec, maxLinVel, maxRotVel, headingWt, distanceWt, velocityWt, smoothingWt, gridRes, nli, nri, sws, maxObsDistance, goalDistTol, goalAngTol, PlanFreeSpace, secsToFail, alignAngle, alignSpeed, splineDegree, numSplinePoints, goalOccupiedFailDistance, curvatureSpeedFactor, useCollisionRangeForPlanningFlag, oneWayCost, centerAwayCost, localPathFailDistance, resistance, markOldPathFactor, matchLengths, checkInsideRadius);
  }

  public void setMovementParams(double linVel, double rotVel, double linAcc, double rotAcc, double linDec, double rotDec) {
    BaseArnlJavaJNI.ArPathPlanningTask_setMovementParams(swigCPtr, linVel, rotVel, linAcc, rotAcc, linDec, rotDec);
  }

  public void addRangeDevice(ArRangeDevice device, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_addRangeDevice(swigCPtr, ArRangeDevice.getCPtr(device), type.swigValue());
  }

  public void remRangeDevice(String name, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_remRangeDevice__SWIG_0(swigCPtr, name, type.swigValue());
  }

  public void remRangeDevice(ArRangeDevice device, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_remRangeDevice__SWIG_1(swigCPtr, ArRangeDevice.getCPtr(device), type.swigValue());
  }

  public void addGlobalPlanningRangeDevice(ArRangeDevice device, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_addGlobalPlanningRangeDevice(swigCPtr, ArRangeDevice.getCPtr(device), type.swigValue());
  }

  public void remGlobalPlanningRangeDevice(String name, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGlobalPlanningRangeDevice__SWIG_0(swigCPtr, name, type.swigValue());
  }

  public void remGlobalPlanningRangeDevice(ArRangeDevice device, ArPathPlanningTask.RangeType type) {
    BaseArnlJavaJNI.ArPathPlanningTask_remGlobalPlanningRangeDevice__SWIG_1(swigCPtr, ArRangeDevice.getCPtr(device), type.swigValue());
  }

  public ArRangeDevicePtrList getRangeDeviceList() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getRangeDeviceList(swigCPtr);
    return (cPtr == 0) ? null : new ArRangeDevicePtrList(cPtr, false);
  }

  public ArRangeDevicePtrList getCumRangeDeviceList() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getCumRangeDeviceList(swigCPtr);
    return (cPtr == 0) ? null : new ArRangeDevicePtrList(cPtr, false);
  }

  public ArRangeDevicePtrList getGlobalPlanningRangeDeviceList() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getGlobalPlanningRangeDeviceList(swigCPtr);
    return (cPtr == 0) ? null : new ArRangeDevicePtrList(cPtr, false);
  }

  public ArRangeDevicePtrList getGlobalPlanningCumRangeDeviceList() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getGlobalPlanningCumRangeDeviceList(swigCPtr);
    return (cPtr == 0) ? null : new ArRangeDevicePtrList(cPtr, false);
  }

  public void clearRangeDevices() {
    BaseArnlJavaJNI.ArPathPlanningTask_clearRangeDevices(swigCPtr);
  }

  public void clearGlobalPlanningRangeDevices() {
    BaseArnlJavaJNI.ArPathPlanningTask_clearGlobalPlanningRangeDevices(swigCPtr);
  }

  public void clearGlobalPlanningCumRangeDevices(long cyt) {
    BaseArnlJavaJNI.ArPathPlanningTask_clearGlobalPlanningCumRangeDevices(swigCPtr, cyt);
  }

  public void clearCumRangeDevices(long cyt) {
    BaseArnlJavaJNI.ArPathPlanningTask_clearCumRangeDevices(swigCPtr, cyt);
  }

  public void goalFailed(ArPose goal, String failureString, ArPathPlanningTask.PathPlanningState state) {
    BaseArnlJavaJNI.ArPathPlanningTask_goalFailed__SWIG_0(swigCPtr, ArPose.getCPtr(goal), failureString, state.swigValue());
  }

  public void goalFailed(ArPose goal, String failureString) {
    BaseArnlJavaJNI.ArPathPlanningTask_goalFailed__SWIG_1(swigCPtr, ArPose.getCPtr(goal), failureString);
  }

  public void goalFailed(ArPose goal) {
    BaseArnlJavaJNI.ArPathPlanningTask_goalFailed__SWIG_2(swigCPtr, ArPose.getCPtr(goal));
  }

  public double getLastMoveTime() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLastMoveTime(swigCPtr);
  }

  public double getLastLinearMoveTime() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getLastLinearMoveTime(swigCPtr);
  }

  public void setLastMoveTime(double t) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLastMoveTime(swigCPtr, t);
  }

  public void setLastLinearMoveTime(double t) {
    BaseArnlJavaJNI.ArPathPlanningTask_setLastLinearMoveTime(swigCPtr, t);
  }

  public double computeProgress(ArPose robotPose) {
    return BaseArnlJavaJNI.ArPathPlanningTask_computeProgress__SWIG_0(swigCPtr, ArPose.getCPtr(robotPose));
  }

  public double computeProgress() {
    return BaseArnlJavaJNI.ArPathPlanningTask_computeProgress__SWIG_1(swigCPtr);
  }

  public double estimateTimeToGoal(ArPose robotPose) {
    return BaseArnlJavaJNI.ArPathPlanningTask_estimateTimeToGoal__SWIG_0(swigCPtr, ArPose.getCPtr(robotPose));
  }

  public double estimateTimeToGoal() {
    return BaseArnlJavaJNI.ArPathPlanningTask_estimateTimeToGoal__SWIG_1(swigCPtr);
  }

  public double estimateDistanceToGoal(ArPose robotPose) {
    return BaseArnlJavaJNI.ArPathPlanningTask_estimateDistanceToGoal__SWIG_0(swigCPtr, ArPose.getCPtr(robotPose));
  }

  public double estimateDistanceToGoal() {
    return BaseArnlJavaJNI.ArPathPlanningTask_estimateDistanceToGoal__SWIG_1(swigCPtr);
  }

  public void drawSearchRectangle(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawSearchRectangle(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawNewPoints(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawNewPoints(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawGridPoints(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawGridPoints(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawPathPoints(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawPathPoints(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawObsPoints(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawObsPoints(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawFailPoints(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawFailPoints(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawVelocityPath(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawVelocityPath(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawRobotBounds(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawRobotBounds(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public void drawCollidePath(ArServerClient client, ArNetPacket packet) {
    BaseArnlJavaJNI.ArPathPlanningTask_drawCollidePath(swigCPtr, ArServerClient.getCPtr(client), ArNetPacket.getCPtr(packet));
  }

  public SWIGTYPE_p_ArPathPlan__LocalPathState getLocalPathState() {
    return new SWIGTYPE_p_ArPathPlan__LocalPathState(BaseArnlJavaJNI.ArPathPlanningTask_getLocalPathState(swigCPtr), true);
  }

  public SWIGTYPE_p_ArPathPlan__SearchVelocityState getDWAState() {
    return new SWIGTYPE_p_ArPathPlan__SearchVelocityState(BaseArnlJavaJNI.ArPathPlanningTask_getDWAState(swigCPtr), true);
  }

  public double getCost() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getCost(swigCPtr);
  }

  public double getUtil() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getUtil(swigCPtr);
  }

  public ArPoseList getPathFromTo(ArPose from, ArPose to) {
    return new ArPoseList(BaseArnlJavaJNI.ArPathPlanningTask_getPathFromTo(swigCPtr, ArPose.getCPtr(from), ArPose.getCPtr(to)), true);
  }

  public void addStateChangeCB(ArFunctor cb) {
    BaseArnlJavaJNI.ArPathPlanningTask_addStateChangeCB(swigCPtr, ArFunctor.getCPtr(cb));
  }

  public void remStateChangeCB(ArFunctor cb) {
    BaseArnlJavaJNI.ArPathPlanningTask_remStateChangeCB(swigCPtr, ArFunctor.getCPtr(cb));
  }

  public ArPoseList getObsListPtr() {
    long cPtr = BaseArnlJavaJNI.ArPathPlanningTask_getObsListPtr(swigCPtr);
    return (cPtr == 0) ? null : new ArPoseList(cPtr, false);
  }

  public void addBlockedPathCB(SWIGTYPE_p_ArFunctor1Tstd__listTArPose_t_const_p_t cb) {
    BaseArnlJavaJNI.ArPathPlanningTask_addBlockedPathCB(swigCPtr, SWIGTYPE_p_ArFunctor1Tstd__listTArPose_t_const_p_t.getCPtr(cb));
  }

  public void remBlockedPathCB(SWIGTYPE_p_ArFunctor1Tstd__listTArPose_t_const_p_t cb) {
    BaseArnlJavaJNI.ArPathPlanningTask_remBlockedPathCB(swigCPtr, SWIGTYPE_p_ArFunctor1Tstd__listTArPose_t_const_p_t.getCPtr(cb));
  }

  public void addPlainBlockedPathCB(ArFunctor functor, int position) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainBlockedPathCB__SWIG_0(swigCPtr, ArFunctor.getCPtr(functor), position);
  }

  public void addPlainBlockedPathCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_addPlainBlockedPathCB__SWIG_1(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void remPlainBlockedPathCB(ArFunctor functor) {
    BaseArnlJavaJNI.ArPathPlanningTask_remPlainBlockedPathCB(swigCPtr, ArFunctor.getCPtr(functor));
  }

  public void invokeBlockedPathCB() {
    BaseArnlJavaJNI.ArPathPlanningTask_invokeBlockedPathCB(swigCPtr);
  }

  public boolean getWaitingToFailFlag() {
    return BaseArnlJavaJNI.ArPathPlanningTask_getWaitingToFailFlag(swigCPtr);
  }

  public final static class PathPlanningState {
    public final static PathPlanningState NOT_INITIALIZED = new PathPlanningState("NOT_INITIALIZED");
    public final static PathPlanningState PLANNING_PATH = new PathPlanningState("PLANNING_PATH");
    public final static PathPlanningState MOVING_TO_GOAL = new PathPlanningState("MOVING_TO_GOAL");
    public final static PathPlanningState REACHED_GOAL = new PathPlanningState("REACHED_GOAL");
    public final static PathPlanningState FAILED_PLAN = new PathPlanningState("FAILED_PLAN");
    public final static PathPlanningState FAILED_MOVE = new PathPlanningState("FAILED_MOVE");
    public final static PathPlanningState ABORTED_PATHPLAN = new PathPlanningState("ABORTED_PATHPLAN");
    public final static PathPlanningState INVALID = new PathPlanningState("INVALID");

    public final int swigValue() {
      return swigValue;
    }

    public String toString() {
      return swigName;
    }

    public static PathPlanningState swigToEnum(int swigValue) {
      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
        return swigValues[swigValue];
      for (int i = 0; i < swigValues.length; i++)
        if (swigValues[i].swigValue == swigValue)
          return swigValues[i];
      throw new IllegalArgumentException("No enum " + PathPlanningState.class + " with value " + swigValue);
    }

    private PathPlanningState(String swigName) {
      this.swigName = swigName;
      this.swigValue = swigNext++;
    }

    private PathPlanningState(String swigName, int swigValue) {
      this.swigName = swigName;
      this.swigValue = swigValue;
      swigNext = swigValue+1;
    }

    private PathPlanningState(String swigName, PathPlanningState swigEnum) {
      this.swigName = swigName;
      this.swigValue = swigEnum.swigValue;
      swigNext = this.swigValue+1;
    }

    private static PathPlanningState[] swigValues = { NOT_INITIALIZED, PLANNING_PATH, MOVING_TO_GOAL, REACHED_GOAL, FAILED_PLAN, FAILED_MOVE, ABORTED_PATHPLAN, INVALID };
    private static int swigNext = 0;
    private final int swigValue;
    private final String swigName;
  }

  public final static class LocalPlanningState {
    public final static LocalPlanningState NO_LOCAL_PLAN_GFD = new LocalPlanningState("NO_LOCAL_PLAN_GFD");
    public final static LocalPlanningState NO_LOCAL_PLAN_LFD = new LocalPlanningState("NO_LOCAL_PLAN_LFD");
    public final static LocalPlanningState NO_LOCAL_PLAN = new LocalPlanningState("NO_LOCAL_PLAN");
    public final static LocalPlanningState GOAL_OCCUPIED = new LocalPlanningState("GOAL_OCCUPIED");
    public final static LocalPlanningState NO_MOVE = new LocalPlanningState("NO_MOVE");
    public final static LocalPlanningState OBSTACLE_TOO_CLOSE = new LocalPlanningState("OBSTACLE_TOO_CLOSE");
    public final static LocalPlanningState COMPLETELY_BLOCKED = new LocalPlanningState("COMPLETELY_BLOCKED");
    public final static LocalPlanningState GOT_PLAN_AND_VEL_HEADING = new LocalPlanningState("GOT_PLAN_AND_VEL_HEADING");
    public final static LocalPlanningState GOT_PLAN_AND_VELS = new LocalPlanningState("GOT_PLAN_AND_VELS");
    public final static LocalPlanningState GOT_BLOCKED_PLAN_AND_VEL_HEADING = new LocalPlanningState("GOT_BLOCKED_PLAN_AND_VEL_HEADING");
    public final static LocalPlanningState GOT_BLOCKED_PLAN_AND_VELS = new LocalPlanningState("GOT_BLOCKED_PLAN_AND_VELS");

    public final int swigValue() {
      return swigValue;
    }

    public String toString() {
      return swigName;
    }

    public static LocalPlanningState swigToEnum(int swigValue) {
      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
        return swigValues[swigValue];
      for (int i = 0; i < swigValues.length; i++)
        if (swigValues[i].swigValue == swigValue)
          return swigValues[i];
      throw new IllegalArgumentException("No enum " + LocalPlanningState.class + " with value " + swigValue);
    }

    private LocalPlanningState(String swigName) {
      this.swigName = swigName;
      this.swigValue = swigNext++;
    }

    private LocalPlanningState(String swigName, int swigValue) {
      this.swigName = swigName;
      this.swigValue = swigValue;
      swigNext = swigValue+1;
    }

    private LocalPlanningState(String swigName, LocalPlanningState swigEnum) {
      this.swigName = swigName;
      this.swigValue = swigEnum.swigValue;
      swigNext = this.swigValue+1;
    }

    private static LocalPlanningState[] swigValues = { NO_LOCAL_PLAN_GFD, NO_LOCAL_PLAN_LFD, NO_LOCAL_PLAN, GOAL_OCCUPIED, NO_MOVE, OBSTACLE_TOO_CLOSE, COMPLETELY_BLOCKED, GOT_PLAN_AND_VEL_HEADING, GOT_PLAN_AND_VELS, GOT_BLOCKED_PLAN_AND_VEL_HEADING, GOT_BLOCKED_PLAN_AND_VELS };
    private static int swigNext = 0;
    private final int swigValue;
    private final String swigName;
  }

  public final static class RangeType {
    public final static RangeType NEITHER = new RangeType("NEITHER");
    public final static RangeType CURRENT = new RangeType("CURRENT");
    public final static RangeType CUMULATIVE = new RangeType("CUMULATIVE");
    public final static RangeType BOTH = new RangeType("BOTH");

    public final int swigValue() {
      return swigValue;
    }

    public String toString() {
      return swigName;
    }

    public static RangeType swigToEnum(int swigValue) {
      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
        return swigValues[swigValue];
      for (int i = 0; i < swigValues.length; i++)
        if (swigValues[i].swigValue == swigValue)
          return swigValues[i];
      throw new IllegalArgumentException("No enum " + RangeType.class + " with value " + swigValue);
    }

    private RangeType(String swigName) {
      this.swigName = swigName;
      this.swigValue = swigNext++;
    }

    private RangeType(String swigName, int swigValue) {
      this.swigName = swigName;
      this.swigValue = swigValue;
      swigNext = swigValue+1;
    }

    private RangeType(String swigName, RangeType swigEnum) {
      this.swigName = swigName;
      this.swigValue = swigEnum.swigValue;
      swigNext = this.swigValue+1;
    }

    private static RangeType[] swigValues = { NEITHER, CURRENT, CUMULATIVE, BOTH };
    private static int swigNext = 0;
    private final int swigValue;
    private final String swigName;
  }

}
