# This file was automatically generated by SWIG (http://www.swig.org).
# Version 1.3.39
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
# This file is compatible with both classic and new-style classes.

from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_Core', [dirname(__file__)])
        except ImportError:
            import _Core
            return _Core
        if fp is not None:
            try:
                _mod = imp.load_module('_Core', fp, pathname, description)
            finally:
                fp.close()
                return _mod
    _Core = swig_import_helper()
    del swig_import_helper
else:
    import _Core
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static) or hasattr(self,name):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


try:
    import weakref
    weakref_proxy = weakref.proxy
except:
    weakref_proxy = lambda x: x


import Utils
import Physics
import MathLib
LEFT_STANCE = _Core.LEFT_STANCE
RIGHT_STANCE = _Core.RIGHT_STANCE
class SimGlobals(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SimGlobals, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SimGlobals, name)
    __repr__ = _swig_repr
    __swig_setmethods__["forceHeadingControl"] = _Core.SimGlobals_forceHeadingControl_set
    __swig_getmethods__["forceHeadingControl"] = _Core.SimGlobals_forceHeadingControl_get
    if _newclass:forceHeadingControl = _swig_property(_Core.SimGlobals_forceHeadingControl_get, _Core.SimGlobals_forceHeadingControl_set)
    __swig_setmethods__["desiredHeading"] = _Core.SimGlobals_desiredHeading_set
    __swig_getmethods__["desiredHeading"] = _Core.SimGlobals_desiredHeading_get
    if _newclass:desiredHeading = _swig_property(_Core.SimGlobals_desiredHeading_get, _Core.SimGlobals_desiredHeading_set)
    __swig_setmethods__["dt"] = _Core.SimGlobals_dt_set
    __swig_getmethods__["dt"] = _Core.SimGlobals_dt_get
    if _newclass:dt = _swig_property(_Core.SimGlobals_dt_get, _Core.SimGlobals_dt_set)
    __swig_setmethods__["activeRbEngine"] = _Core.SimGlobals_activeRbEngine_set
    __swig_getmethods__["activeRbEngine"] = _Core.SimGlobals_activeRbEngine_get
    if _newclass:activeRbEngine = _swig_property(_Core.SimGlobals_activeRbEngine_get, _Core.SimGlobals_activeRbEngine_set)
    __swig_setmethods__["targetPos"] = _Core.SimGlobals_targetPos_set
    __swig_getmethods__["targetPos"] = _Core.SimGlobals_targetPos_get
    if _newclass:targetPos = _swig_property(_Core.SimGlobals_targetPos_get, _Core.SimGlobals_targetPos_set)
    __swig_setmethods__["targetPosX"] = _Core.SimGlobals_targetPosX_set
    __swig_getmethods__["targetPosX"] = _Core.SimGlobals_targetPosX_get
    if _newclass:targetPosX = _swig_property(_Core.SimGlobals_targetPosX_get, _Core.SimGlobals_targetPosX_set)
    __swig_setmethods__["targetPosZ"] = _Core.SimGlobals_targetPosZ_set
    __swig_getmethods__["targetPosZ"] = _Core.SimGlobals_targetPosZ_get
    if _newclass:targetPosZ = _swig_property(_Core.SimGlobals_targetPosZ_get, _Core.SimGlobals_targetPosZ_set)
    __swig_setmethods__["conInterpolationValue"] = _Core.SimGlobals_conInterpolationValue_set
    __swig_getmethods__["conInterpolationValue"] = _Core.SimGlobals_conInterpolationValue_get
    if _newclass:conInterpolationValue = _swig_property(_Core.SimGlobals_conInterpolationValue_get, _Core.SimGlobals_conInterpolationValue_set)
    __swig_setmethods__["bipDesiredVelocity"] = _Core.SimGlobals_bipDesiredVelocity_set
    __swig_getmethods__["bipDesiredVelocity"] = _Core.SimGlobals_bipDesiredVelocity_get
    if _newclass:bipDesiredVelocity = _swig_property(_Core.SimGlobals_bipDesiredVelocity_get, _Core.SimGlobals_bipDesiredVelocity_set)
    __swig_setmethods__["constraintSoftness"] = _Core.SimGlobals_constraintSoftness_set
    __swig_getmethods__["constraintSoftness"] = _Core.SimGlobals_constraintSoftness_get
    if _newclass:constraintSoftness = _swig_property(_Core.SimGlobals_constraintSoftness_get, _Core.SimGlobals_constraintSoftness_set)
    __swig_setmethods__["CGIterCount"] = _Core.SimGlobals_CGIterCount_set
    __swig_getmethods__["CGIterCount"] = _Core.SimGlobals_CGIterCount_get
    if _newclass:CGIterCount = _swig_property(_Core.SimGlobals_CGIterCount_get, _Core.SimGlobals_CGIterCount_set)
    __swig_setmethods__["linearizationCount"] = _Core.SimGlobals_linearizationCount_set
    __swig_getmethods__["linearizationCount"] = _Core.SimGlobals_linearizationCount_get
    if _newclass:linearizationCount = _swig_property(_Core.SimGlobals_linearizationCount_get, _Core.SimGlobals_linearizationCount_set)
    __swig_setmethods__["rootSagittal"] = _Core.SimGlobals_rootSagittal_set
    __swig_getmethods__["rootSagittal"] = _Core.SimGlobals_rootSagittal_get
    if _newclass:rootSagittal = _swig_property(_Core.SimGlobals_rootSagittal_get, _Core.SimGlobals_rootSagittal_set)
    __swig_setmethods__["stanceKnee"] = _Core.SimGlobals_stanceKnee_set
    __swig_getmethods__["stanceKnee"] = _Core.SimGlobals_stanceKnee_get
    if _newclass:stanceKnee = _swig_property(_Core.SimGlobals_stanceKnee_get, _Core.SimGlobals_stanceKnee_set)
    def __init__(self): 
        this = _Core.new_SimGlobals()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_SimGlobals
    __del__ = lambda self : None;
    __swig_getmethods__["getRBEngine"] = lambda x: _Core.SimGlobals_getRBEngine
    if _newclass:getRBEngine = staticmethod(_Core.SimGlobals_getRBEngine)
SimGlobals_swigregister = _Core.SimGlobals_swigregister
SimGlobals_swigregister(SimGlobals)
cvar = _Core.cvar

def SimGlobals_getRBEngine():
  return _Core.SimGlobals_getRBEngine()
SimGlobals_getRBEngine = _Core.SimGlobals_getRBEngine

class ReducedCharacterStateArray(Utils.DynamicArrayDouble):
    __swig_setmethods__ = {}
    for _s in [Utils.DynamicArrayDouble]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, ReducedCharacterStateArray, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.DynamicArrayDouble]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, ReducedCharacterStateArray, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _Core.new_ReducedCharacterStateArray()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_ReducedCharacterStateArray
    __del__ = lambda self : None;
ReducedCharacterStateArray_swigregister = _Core.ReducedCharacterStateArray_swigregister
ReducedCharacterStateArray_swigregister(ReducedCharacterStateArray)

class Character(Physics.ArticulatedFigure):
    __swig_setmethods__ = {}
    for _s in [Physics.ArticulatedFigure]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, Character, name, value)
    __swig_getmethods__ = {}
    for _s in [Physics.ArticulatedFigure]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, Character, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _Core.new_Character()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_Character
    __del__ = lambda self : None;
    def getRelativeOrientation(self, *args): return _Core.Character_getRelativeOrientation(self, *args)
    def getRelativeAngularVelocity(self, *args): return _Core.Character_getRelativeAngularVelocity(self, *args)
    def readReducedStateFromFile(self, *args): return _Core.Character_readReducedStateFromFile(self, *args)
    def loadReducedStateFromFile(self, *args): return _Core.Character_loadReducedStateFromFile(self, *args)
    def saveReducedStateToFile(self, *args): return _Core.Character_saveReducedStateToFile(self, *args)
    def getState(self, *args): return _Core.Character_getState(self, *args)
    def setState(self, *args): return _Core.Character_setState(self, *args)
    def getStateDimension(self): return _Core.Character_getStateDimension(self)
    def getHeading(self): return _Core.Character_getHeading(self)
    def getHeadingAngle(self): return _Core.Character_getHeadingAngle(self)
    def recenter(self): return _Core.Character_recenter(self)
    def setHeading(self, *args): return _Core.Character_setHeading(self, *args)
    def reverseStanceOfStateArray(self, *args): return _Core.Character_reverseStanceOfStateArray(self, *args)
    def getReverseStanceState(self, *args): return _Core.Character_getReverseStanceState(self, *args)
    def getCOM(self): return _Core.Character_getCOM(self)
    def getCOMVelocity(self): return _Core.Character_getCOMVelocity(self)
Character_swigregister = _Core.Character_swigregister
Character_swigregister(Character)


def computeHeading(*args):
  return _Core.computeHeading(*args)
computeHeading = _Core.computeHeading
class RelevantJoint(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, RelevantJoint, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, RelevantJoint, name)
    __repr__ = _swig_repr
    __swig_setmethods__["jIndex"] = _Core.RelevantJoint_jIndex_set
    __swig_getmethods__["jIndex"] = _Core.RelevantJoint_jIndex_get
    if _newclass:jIndex = _swig_property(_Core.RelevantJoint_jIndex_get, _Core.RelevantJoint_jIndex_set)
    __swig_setmethods__["wQ"] = _Core.RelevantJoint_wQ_set
    __swig_getmethods__["wQ"] = _Core.RelevantJoint_wQ_get
    if _newclass:wQ = _swig_property(_Core.RelevantJoint_wQ_get, _Core.RelevantJoint_wQ_set)
    __swig_setmethods__["wV"] = _Core.RelevantJoint_wV_set
    __swig_getmethods__["wV"] = _Core.RelevantJoint_wV_get
    if _newclass:wV = _swig_property(_Core.RelevantJoint_wV_get, _Core.RelevantJoint_wV_set)
    def __init__(self): 
        this = _Core.new_RelevantJoint()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_RelevantJoint
    __del__ = lambda self : None;
RelevantJoint_swigregister = _Core.RelevantJoint_swigregister
RelevantJoint_swigregister(RelevantJoint)

class ReducedCharacterState(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ReducedCharacterState, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ReducedCharacterState, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _Core.new_ReducedCharacterState(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_ReducedCharacterState
    __del__ = lambda self : None;
    def getPosition(self): return _Core.ReducedCharacterState_getPosition(self)
    def setPosition(self, *args): return _Core.ReducedCharacterState_setPosition(self, *args)
    def getOrientation(self): return _Core.ReducedCharacterState_getOrientation(self)
    def setOrientation(self, *args): return _Core.ReducedCharacterState_setOrientation(self, *args)
    def getVelocity(self): return _Core.ReducedCharacterState_getVelocity(self)
    def setVelocity(self, *args): return _Core.ReducedCharacterState_setVelocity(self, *args)
    def getAngularVelocity(self): return _Core.ReducedCharacterState_getAngularVelocity(self)
    def setAngularVelocity(self, *args): return _Core.ReducedCharacterState_setAngularVelocity(self, *args)
    def getJointRelativeOrientation(self, *args): return _Core.ReducedCharacterState_getJointRelativeOrientation(self, *args)
    def setJointRelativeOrientation(self, *args): return _Core.ReducedCharacterState_setJointRelativeOrientation(self, *args)
    def getJointRelativeAngVelocity(self, *args): return _Core.ReducedCharacterState_getJointRelativeAngVelocity(self, *args)
    def setJointRelativeAngVelocity(self, *args): return _Core.ReducedCharacterState_setJointRelativeAngVelocity(self, *args)
    def raptor_computeDistanceTo(self, *args): return _Core.ReducedCharacterState_raptor_computeDistanceTo(self, *args)
    def bigBird3d_computeDistanceTo(self, *args): return _Core.ReducedCharacterState_bigBird3d_computeDistanceTo(self, *args)
    def bip3dv2_computeDistanceTo(self, *args): return _Core.ReducedCharacterState_bip3dv2_computeDistanceTo(self, *args)
ReducedCharacterState_swigregister = _Core.ReducedCharacterState_swigregister
ReducedCharacterState_swigregister(ReducedCharacterState)

class BalanceFeedback(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, BalanceFeedback, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, BalanceFeedback, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _Core.delete_BalanceFeedback
    __del__ = lambda self : None;
    def getFeedbackContribution(self, *args): return _Core.BalanceFeedback_getFeedbackContribution(self, *args)
    def writeToFile(self, *args): return _Core.BalanceFeedback_writeToFile(self, *args)
    def loadFromFile(self, *args): return _Core.BalanceFeedback_loadFromFile(self, *args)
BalanceFeedback_swigregister = _Core.BalanceFeedback_swigregister
BalanceFeedback_swigregister(BalanceFeedback)

class LinearBalanceFeedback(BalanceFeedback):
    __swig_setmethods__ = {}
    for _s in [BalanceFeedback]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, LinearBalanceFeedback, name, value)
    __swig_getmethods__ = {}
    for _s in [BalanceFeedback]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, LinearBalanceFeedback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["feedbackProjectionAxis"] = _Core.LinearBalanceFeedback_feedbackProjectionAxis_set
    __swig_getmethods__["feedbackProjectionAxis"] = _Core.LinearBalanceFeedback_feedbackProjectionAxis_get
    if _newclass:feedbackProjectionAxis = _swig_property(_Core.LinearBalanceFeedback_feedbackProjectionAxis_get, _Core.LinearBalanceFeedback_feedbackProjectionAxis_set)
    __swig_setmethods__["cd"] = _Core.LinearBalanceFeedback_cd_set
    __swig_getmethods__["cd"] = _Core.LinearBalanceFeedback_cd_get
    if _newclass:cd = _swig_property(_Core.LinearBalanceFeedback_cd_get, _Core.LinearBalanceFeedback_cd_set)
    __swig_setmethods__["cv"] = _Core.LinearBalanceFeedback_cv_set
    __swig_getmethods__["cv"] = _Core.LinearBalanceFeedback_cv_get
    if _newclass:cv = _swig_property(_Core.LinearBalanceFeedback_cv_get, _Core.LinearBalanceFeedback_cv_set)
    __swig_setmethods__["vMin"] = _Core.LinearBalanceFeedback_vMin_set
    __swig_getmethods__["vMin"] = _Core.LinearBalanceFeedback_vMin_get
    if _newclass:vMin = _swig_property(_Core.LinearBalanceFeedback_vMin_get, _Core.LinearBalanceFeedback_vMin_set)
    __swig_setmethods__["vMax"] = _Core.LinearBalanceFeedback_vMax_set
    __swig_getmethods__["vMax"] = _Core.LinearBalanceFeedback_vMax_get
    if _newclass:vMax = _swig_property(_Core.LinearBalanceFeedback_vMax_get, _Core.LinearBalanceFeedback_vMax_set)
    __swig_setmethods__["dMin"] = _Core.LinearBalanceFeedback_dMin_set
    __swig_getmethods__["dMin"] = _Core.LinearBalanceFeedback_dMin_get
    if _newclass:dMin = _swig_property(_Core.LinearBalanceFeedback_dMin_get, _Core.LinearBalanceFeedback_dMin_set)
    __swig_setmethods__["dMax"] = _Core.LinearBalanceFeedback_dMax_set
    __swig_getmethods__["dMax"] = _Core.LinearBalanceFeedback_dMax_get
    if _newclass:dMax = _swig_property(_Core.LinearBalanceFeedback_dMax_get, _Core.LinearBalanceFeedback_dMax_set)
    def __init__(self): 
        this = _Core.new_LinearBalanceFeedback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_LinearBalanceFeedback
    __del__ = lambda self : None;
    def setProjectionAxis(self, *args): return _Core.LinearBalanceFeedback_setProjectionAxis(self, *args)
    def getProjectionAxis(self): return _Core.LinearBalanceFeedback_getProjectionAxis(self)
    def setCd(self, *args): return _Core.LinearBalanceFeedback_setCd(self, *args)
    def getCd(self): return _Core.LinearBalanceFeedback_getCd(self)
    def setCv(self, *args): return _Core.LinearBalanceFeedback_setCv(self, *args)
    def getCv(self): return _Core.LinearBalanceFeedback_getCv(self)
    def setDLimits(self, *args): return _Core.LinearBalanceFeedback_setDLimits(self, *args)
    def getDMin(self): return _Core.LinearBalanceFeedback_getDMin(self)
    def getDMax(self): return _Core.LinearBalanceFeedback_getDMax(self)
    def setVLimits(self, *args): return _Core.LinearBalanceFeedback_setVLimits(self, *args)
    def getVMin(self): return _Core.LinearBalanceFeedback_getVMin(self)
    def getVMax(self): return _Core.LinearBalanceFeedback_getVMax(self)
    def getFeedbackContribution(self, *args): return _Core.LinearBalanceFeedback_getFeedbackContribution(self, *args)
    def writeToFile(self, *args): return _Core.LinearBalanceFeedback_writeToFile(self, *args)
    def loadFromFile(self, *args): return _Core.LinearBalanceFeedback_loadFromFile(self, *args)
LinearBalanceFeedback_swigregister = _Core.LinearBalanceFeedback_swigregister
LinearBalanceFeedback_swigregister(LinearBalanceFeedback)

class DoubleStanceFeedback(BalanceFeedback):
    __swig_setmethods__ = {}
    for _s in [BalanceFeedback]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DoubleStanceFeedback, name, value)
    __swig_getmethods__ = {}
    for _s in [BalanceFeedback]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, DoubleStanceFeedback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["feedbackProjectionAxis"] = _Core.DoubleStanceFeedback_feedbackProjectionAxis_set
    __swig_getmethods__["feedbackProjectionAxis"] = _Core.DoubleStanceFeedback_feedbackProjectionAxis_get
    if _newclass:feedbackProjectionAxis = _swig_property(_Core.DoubleStanceFeedback_feedbackProjectionAxis_get, _Core.DoubleStanceFeedback_feedbackProjectionAxis_set)
    __swig_setmethods__["maxFeedbackValue"] = _Core.DoubleStanceFeedback_maxFeedbackValue_set
    __swig_getmethods__["maxFeedbackValue"] = _Core.DoubleStanceFeedback_maxFeedbackValue_get
    if _newclass:maxFeedbackValue = _swig_property(_Core.DoubleStanceFeedback_maxFeedbackValue_get, _Core.DoubleStanceFeedback_maxFeedbackValue_set)
    __swig_setmethods__["minFeedbackValue"] = _Core.DoubleStanceFeedback_minFeedbackValue_set
    __swig_getmethods__["minFeedbackValue"] = _Core.DoubleStanceFeedback_minFeedbackValue_get
    if _newclass:minFeedbackValue = _swig_property(_Core.DoubleStanceFeedback_minFeedbackValue_get, _Core.DoubleStanceFeedback_minFeedbackValue_set)
    __swig_setmethods__["cd"] = _Core.DoubleStanceFeedback_cd_set
    __swig_getmethods__["cd"] = _Core.DoubleStanceFeedback_cd_get
    if _newclass:cd = _swig_property(_Core.DoubleStanceFeedback_cd_get, _Core.DoubleStanceFeedback_cd_set)
    __swig_setmethods__["cv"] = _Core.DoubleStanceFeedback_cv_set
    __swig_getmethods__["cv"] = _Core.DoubleStanceFeedback_cv_get
    if _newclass:cv = _swig_property(_Core.DoubleStanceFeedback_cv_get, _Core.DoubleStanceFeedback_cv_set)
    __swig_setmethods__["totalMultiplier"] = _Core.DoubleStanceFeedback_totalMultiplier_set
    __swig_getmethods__["totalMultiplier"] = _Core.DoubleStanceFeedback_totalMultiplier_get
    if _newclass:totalMultiplier = _swig_property(_Core.DoubleStanceFeedback_totalMultiplier_get, _Core.DoubleStanceFeedback_totalMultiplier_set)
    __swig_setmethods__["vMin"] = _Core.DoubleStanceFeedback_vMin_set
    __swig_getmethods__["vMin"] = _Core.DoubleStanceFeedback_vMin_get
    if _newclass:vMin = _swig_property(_Core.DoubleStanceFeedback_vMin_get, _Core.DoubleStanceFeedback_vMin_set)
    __swig_setmethods__["vMax"] = _Core.DoubleStanceFeedback_vMax_set
    __swig_getmethods__["vMax"] = _Core.DoubleStanceFeedback_vMax_get
    if _newclass:vMax = _swig_property(_Core.DoubleStanceFeedback_vMax_get, _Core.DoubleStanceFeedback_vMax_set)
    __swig_setmethods__["dMin"] = _Core.DoubleStanceFeedback_dMin_set
    __swig_getmethods__["dMin"] = _Core.DoubleStanceFeedback_dMin_get
    if _newclass:dMin = _swig_property(_Core.DoubleStanceFeedback_dMin_get, _Core.DoubleStanceFeedback_dMin_set)
    __swig_setmethods__["dMax"] = _Core.DoubleStanceFeedback_dMax_set
    __swig_getmethods__["dMax"] = _Core.DoubleStanceFeedback_dMax_get
    if _newclass:dMax = _swig_property(_Core.DoubleStanceFeedback_dMax_get, _Core.DoubleStanceFeedback_dMax_set)
    def __init__(self): 
        this = _Core.new_DoubleStanceFeedback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_DoubleStanceFeedback
    __del__ = lambda self : None;
    def getFeedbackContribution(self, *args): return _Core.DoubleStanceFeedback_getFeedbackContribution(self, *args)
    def writeToFile(self, *args): return _Core.DoubleStanceFeedback_writeToFile(self, *args)
    def loadFromFile(self, *args): return _Core.DoubleStanceFeedback_loadFromFile(self, *args)
DoubleStanceFeedback_swigregister = _Core.DoubleStanceFeedback_swigregister
DoubleStanceFeedback_swigregister(DoubleStanceFeedback)

class TrajectoryComponent(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, TrajectoryComponent, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, TrajectoryComponent, name)
    __repr__ = _swig_repr
    __swig_setmethods__["baseTraj"] = _Core.TrajectoryComponent_baseTraj_set
    __swig_getmethods__["baseTraj"] = _Core.TrajectoryComponent_baseTraj_get
    if _newclass:baseTraj = _swig_property(_Core.TrajectoryComponent_baseTraj_get, _Core.TrajectoryComponent_baseTraj_set)
    __swig_setmethods__["dTrajScale"] = _Core.TrajectoryComponent_dTrajScale_set
    __swig_getmethods__["dTrajScale"] = _Core.TrajectoryComponent_dTrajScale_get
    if _newclass:dTrajScale = _swig_property(_Core.TrajectoryComponent_dTrajScale_get, _Core.TrajectoryComponent_dTrajScale_set)
    __swig_setmethods__["vTrajScale"] = _Core.TrajectoryComponent_vTrajScale_set
    __swig_getmethods__["vTrajScale"] = _Core.TrajectoryComponent_vTrajScale_get
    if _newclass:vTrajScale = _swig_property(_Core.TrajectoryComponent_vTrajScale_get, _Core.TrajectoryComponent_vTrajScale_set)
    __swig_setmethods__["reverseAngleOnLeftStance"] = _Core.TrajectoryComponent_reverseAngleOnLeftStance_set
    __swig_getmethods__["reverseAngleOnLeftStance"] = _Core.TrajectoryComponent_reverseAngleOnLeftStance_get
    if _newclass:reverseAngleOnLeftStance = _swig_property(_Core.TrajectoryComponent_reverseAngleOnLeftStance_get, _Core.TrajectoryComponent_reverseAngleOnLeftStance_set)
    __swig_setmethods__["reverseAngleOnRightStance"] = _Core.TrajectoryComponent_reverseAngleOnRightStance_set
    __swig_getmethods__["reverseAngleOnRightStance"] = _Core.TrajectoryComponent_reverseAngleOnRightStance_get
    if _newclass:reverseAngleOnRightStance = _swig_property(_Core.TrajectoryComponent_reverseAngleOnRightStance_get, _Core.TrajectoryComponent_reverseAngleOnRightStance_set)
    __swig_setmethods__["rotationAxis"] = _Core.TrajectoryComponent_rotationAxis_set
    __swig_getmethods__["rotationAxis"] = _Core.TrajectoryComponent_rotationAxis_get
    if _newclass:rotationAxis = _swig_property(_Core.TrajectoryComponent_rotationAxis_get, _Core.TrajectoryComponent_rotationAxis_set)
    __swig_setmethods__["bFeedback"] = _Core.TrajectoryComponent_bFeedback_set
    __swig_getmethods__["bFeedback"] = _Core.TrajectoryComponent_bFeedback_get
    if _newclass:bFeedback = _swig_property(_Core.TrajectoryComponent_bFeedback_get, _Core.TrajectoryComponent_bFeedback_set)
    __swig_setmethods__["offset"] = _Core.TrajectoryComponent_offset_set
    __swig_getmethods__["offset"] = _Core.TrajectoryComponent_offset_get
    if _newclass:offset = _swig_property(_Core.TrajectoryComponent_offset_get, _Core.TrajectoryComponent_offset_set)
    ROS_LEFT = _Core.TrajectoryComponent_ROS_LEFT
    ROS_RIGHT = _Core.TrajectoryComponent_ROS_RIGHT
    ROS_DONT_REVERSE = _Core.TrajectoryComponent_ROS_DONT_REVERSE
    def __init__(self): 
        this = _Core.new_TrajectoryComponent()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_TrajectoryComponent
    __del__ = lambda self : None;
    def setRotationAxis(self, *args): return _Core.TrajectoryComponent_setRotationAxis(self, *args)
    def getRotationAxis(self): return _Core.TrajectoryComponent_getRotationAxis(self)
    def setReverseOnStance(self, *args): return _Core.TrajectoryComponent_setReverseOnStance(self, *args)
    def getReverseOnStance(self): return _Core.TrajectoryComponent_getReverseOnStance(self)
    def setFeedback(self, *args): return _Core.TrajectoryComponent_setFeedback(self, *args)
    def getFeedback(self): return _Core.TrajectoryComponent_getFeedback(self)
    def setBaseTrajectory(self, *args): return _Core.TrajectoryComponent_setBaseTrajectory(self, *args)
    def getBaseTrajectory(self): return _Core.TrajectoryComponent_getBaseTrajectory(self)
    def setVTrajScale(self, *args): return _Core.TrajectoryComponent_setVTrajScale(self, *args)
    def getVTrajScale(self): return _Core.TrajectoryComponent_getVTrajScale(self)
    def setDTrajScale(self, *args): return _Core.TrajectoryComponent_setDTrajScale(self, *args)
    def getDTrajScale(self): return _Core.TrajectoryComponent_getDTrajScale(self)
    def evaluateTrajectoryComponent(self, *args): return _Core.TrajectoryComponent_evaluateTrajectoryComponent(self, *args)
    def computeFeedback(self, *args): return _Core.TrajectoryComponent_computeFeedback(self, *args)
    def updateComponent(self, *args): return _Core.TrajectoryComponent_updateComponent(self, *args)
    def readTrajectoryComponent(self, *args): return _Core.TrajectoryComponent_readTrajectoryComponent(self, *args)
    def writeBaseTrajectory(self, *args): return _Core.TrajectoryComponent_writeBaseTrajectory(self, *args)
    def writeScaleTraj(self, *args): return _Core.TrajectoryComponent_writeScaleTraj(self, *args)
    def writeTrajectoryComponent(self, *args): return _Core.TrajectoryComponent_writeTrajectoryComponent(self, *args)
TrajectoryComponent_swigregister = _Core.TrajectoryComponent_swigregister
TrajectoryComponent_swigregister(TrajectoryComponent)

class ExternalForce(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, ExternalForce, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, ExternalForce, name)
    __repr__ = _swig_repr
    __swig_setmethods__["leftStanceARB"] = _Core.ExternalForce_leftStanceARB_set
    __swig_getmethods__["leftStanceARB"] = _Core.ExternalForce_leftStanceARB_get
    if _newclass:leftStanceARB = _swig_property(_Core.ExternalForce_leftStanceARB_get, _Core.ExternalForce_leftStanceARB_set)
    __swig_setmethods__["rightStanceARB"] = _Core.ExternalForce_rightStanceARB_set
    __swig_getmethods__["rightStanceARB"] = _Core.ExternalForce_rightStanceARB_get
    if _newclass:rightStanceARB = _swig_property(_Core.ExternalForce_rightStanceARB_get, _Core.ExternalForce_rightStanceARB_set)
    __swig_setmethods__["bName"] = _Core.ExternalForce_bName_set
    __swig_getmethods__["bName"] = _Core.ExternalForce_bName_get
    if _newclass:bName = _swig_property(_Core.ExternalForce_bName_get, _Core.ExternalForce_bName_set)
    __swig_setmethods__["forceX"] = _Core.ExternalForce_forceX_set
    __swig_getmethods__["forceX"] = _Core.ExternalForce_forceX_get
    if _newclass:forceX = _swig_property(_Core.ExternalForce_forceX_get, _Core.ExternalForce_forceX_set)
    __swig_setmethods__["forceY"] = _Core.ExternalForce_forceY_set
    __swig_getmethods__["forceY"] = _Core.ExternalForce_forceY_get
    if _newclass:forceY = _swig_property(_Core.ExternalForce_forceY_get, _Core.ExternalForce_forceY_set)
    __swig_setmethods__["forceZ"] = _Core.ExternalForce_forceZ_set
    __swig_getmethods__["forceZ"] = _Core.ExternalForce_forceZ_get
    if _newclass:forceZ = _swig_property(_Core.ExternalForce_forceZ_get, _Core.ExternalForce_forceZ_set)
    __swig_setmethods__["torqueX"] = _Core.ExternalForce_torqueX_set
    __swig_getmethods__["torqueX"] = _Core.ExternalForce_torqueX_get
    if _newclass:torqueX = _swig_property(_Core.ExternalForce_torqueX_get, _Core.ExternalForce_torqueX_set)
    __swig_setmethods__["torqueY"] = _Core.ExternalForce_torqueY_set
    __swig_getmethods__["torqueY"] = _Core.ExternalForce_torqueY_get
    if _newclass:torqueY = _swig_property(_Core.ExternalForce_torqueY_get, _Core.ExternalForce_torqueY_set)
    __swig_setmethods__["torqueZ"] = _Core.ExternalForce_torqueZ_set
    __swig_getmethods__["torqueZ"] = _Core.ExternalForce_torqueZ_get
    if _newclass:torqueZ = _swig_property(_Core.ExternalForce_torqueZ_get, _Core.ExternalForce_torqueZ_set)
    def __init__(self): 
        this = _Core.new_ExternalForce()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_ExternalForce
    __del__ = lambda self : None;
    def setForceX(self, *args): return _Core.ExternalForce_setForceX(self, *args)
    def setForceY(self, *args): return _Core.ExternalForce_setForceY(self, *args)
    def setForceZ(self, *args): return _Core.ExternalForce_setForceZ(self, *args)
    def setTorqueX(self, *args): return _Core.ExternalForce_setTorqueX(self, *args)
    def setTorqueY(self, *args): return _Core.ExternalForce_setTorqueY(self, *args)
    def setTorqueZ(self, *args): return _Core.ExternalForce_setTorqueZ(self, *args)
    def getForceX(self): return _Core.ExternalForce_getForceX(self)
    def getForceY(self): return _Core.ExternalForce_getForceY(self)
    def getForceZ(self): return _Core.ExternalForce_getForceZ(self)
    def getTorqueX(self): return _Core.ExternalForce_getTorqueX(self)
    def getTorqueY(self): return _Core.ExternalForce_getTorqueY(self)
    def getTorqueZ(self): return _Core.ExternalForce_getTorqueZ(self)
    def getARB(self, *args): return _Core.ExternalForce_getARB(self, *args)
    def setBodyName(self, *args): return _Core.ExternalForce_setBodyName(self, *args)
    def getBodyName(self): return _Core.ExternalForce_getBodyName(self)
ExternalForce_swigregister = _Core.ExternalForce_swigregister
ExternalForce_swigregister(ExternalForce)

class Trajectory(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, Trajectory, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, Trajectory, name)
    __repr__ = _swig_repr
    __swig_setmethods__["components"] = _Core.Trajectory_components_set
    __swig_getmethods__["components"] = _Core.Trajectory_components_get
    if _newclass:components = _swig_property(_Core.Trajectory_components_get, _Core.Trajectory_components_set)
    __swig_setmethods__["leftStanceIndex"] = _Core.Trajectory_leftStanceIndex_set
    __swig_getmethods__["leftStanceIndex"] = _Core.Trajectory_leftStanceIndex_get
    if _newclass:leftStanceIndex = _swig_property(_Core.Trajectory_leftStanceIndex_get, _Core.Trajectory_leftStanceIndex_set)
    __swig_setmethods__["rightStanceIndex"] = _Core.Trajectory_rightStanceIndex_set
    __swig_getmethods__["rightStanceIndex"] = _Core.Trajectory_rightStanceIndex_get
    if _newclass:rightStanceIndex = _swig_property(_Core.Trajectory_rightStanceIndex_get, _Core.Trajectory_rightStanceIndex_set)
    __swig_setmethods__["jName"] = _Core.Trajectory_jName_set
    __swig_getmethods__["jName"] = _Core.Trajectory_jName_get
    if _newclass:jName = _swig_property(_Core.Trajectory_jName_get, _Core.Trajectory_jName_set)
    __swig_setmethods__["relToCharFrame"] = _Core.Trajectory_relToCharFrame_set
    __swig_getmethods__["relToCharFrame"] = _Core.Trajectory_relToCharFrame_get
    if _newclass:relToCharFrame = _swig_property(_Core.Trajectory_relToCharFrame_get, _Core.Trajectory_relToCharFrame_set)
    __swig_setmethods__["strengthTraj"] = _Core.Trajectory_strengthTraj_set
    __swig_getmethods__["strengthTraj"] = _Core.Trajectory_strengthTraj_get
    if _newclass:strengthTraj = _swig_property(_Core.Trajectory_strengthTraj_get, _Core.Trajectory_strengthTraj_set)
    def __init__(self): 
        this = _Core.new_Trajectory()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_Trajectory
    __del__ = lambda self : None;
    def setStrengthTrajectory(self, *args): return _Core.Trajectory_setStrengthTrajectory(self, *args)
    def getStrengthTrajectory(self): return _Core.Trajectory_getStrengthTrajectory(self)
    def setRelativeToCharacterFrame(self, rel = True): return _Core.Trajectory_setRelativeToCharacterFrame(self, rel)
    def isRelativeToCharacterFrame(self): return _Core.Trajectory_isRelativeToCharacterFrame(self)
    def addTrajectoryComponent(self, *args): return _Core.Trajectory_addTrajectoryComponent(self, *args)
    def clearTrajectoryComponents(self): return _Core.Trajectory_clearTrajectoryComponents(self)
    def getTrajectoryComponent(self, *args): return _Core.Trajectory_getTrajectoryComponent(self, *args)
    def getTrajectoryComponentCount(self): return _Core.Trajectory_getTrajectoryComponentCount(self)
    def evaluateTrajectory(self, *args): return _Core.Trajectory_evaluateTrajectory(self, *args)
    def evaluateStrength(self, *args): return _Core.Trajectory_evaluateStrength(self, *args)
    def getJointIndex(self, *args): return _Core.Trajectory_getJointIndex(self, *args)
    def setJointName(self, *args): return _Core.Trajectory_setJointName(self, *args)
    def getJointName(self): return _Core.Trajectory_getJointName(self)
    def updateComponents(self, *args): return _Core.Trajectory_updateComponents(self, *args)
    def readTrajectory(self, *args): return _Core.Trajectory_readTrajectory(self, *args)
    def writeStrengthTrajectory(self, *args): return _Core.Trajectory_writeStrengthTrajectory(self, *args)
    def writeTrajectory(self, *args): return _Core.Trajectory_writeTrajectory(self, *args)
Trajectory_swigregister = _Core.Trajectory_swigregister
Trajectory_swigregister(Trajectory)

class SimBiConState(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SimBiConState, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, SimBiConState, name)
    __repr__ = _swig_repr
    STATE_LEFT_STANCE = _Core.SimBiConState_STATE_LEFT_STANCE
    STATE_RIGHT_STANCE = _Core.SimBiConState_STATE_RIGHT_STANCE
    STATE_REVERSE_STANCE = _Core.SimBiConState_STATE_REVERSE_STANCE
    STATE_KEEP_STANCE = _Core.SimBiConState_STATE_KEEP_STANCE
    def __init__(self): 
        this = _Core.new_SimBiConState()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_SimBiConState
    __del__ = lambda self : None;
    def getStateStance(self, *args): return _Core.SimBiConState_getStateStance(self, *args)
    def getStateTime(self): return _Core.SimBiConState_getStateTime(self)
    def getNextStateIndex(self): return _Core.SimBiConState_getNextStateIndex(self)
    def getExternalForceCount(self): return _Core.SimBiConState_getExternalForceCount(self)
    def getExternalForce(self, *args): return _Core.SimBiConState_getExternalForce(self, *args)
    def getTrajectoryCount(self): return _Core.SimBiConState_getTrajectoryCount(self)
    def getTrajectory(self, *args): return _Core.SimBiConState_getTrajectory(self, *args)
    def setDTrajX(self, *args): return _Core.SimBiConState_setDTrajX(self, *args)
    def setDTrajZ(self, *args): return _Core.SimBiConState_setDTrajZ(self, *args)
    def setVTrajX(self, *args): return _Core.SimBiConState_setVTrajX(self, *args)
    def setVTrajZ(self, *args): return _Core.SimBiConState_setVTrajZ(self, *args)
    def getDTrajX(self): return _Core.SimBiConState_getDTrajX(self)
    def getDTrajZ(self): return _Core.SimBiConState_getDTrajZ(self)
    def getVTrajX(self): return _Core.SimBiConState_getVTrajX(self)
    def getVTrajZ(self): return _Core.SimBiConState_getVTrajZ(self)
    def needTransition(self, *args): return _Core.SimBiConState_needTransition(self, *args)
    def setName(self, *args): return _Core.SimBiConState_setName(self, *args)
    def setNextStateIndex(self, *args): return _Core.SimBiConState_setNextStateIndex(self, *args)
    def setTransitionOnFootContact(self, transition = True): return _Core.SimBiConState_setTransitionOnFootContact(self, transition)
    def getTransitionOnFootContact(self): return _Core.SimBiConState_getTransitionOnFootContact(self)
    def setStance(self, *args): return _Core.SimBiConState_setStance(self, *args)
    def getStance(self): return _Core.SimBiConState_getStance(self)
    def setDuration(self, *args): return _Core.SimBiConState_setDuration(self, *args)
    def getDuration(self): return _Core.SimBiConState_getDuration(self)
    def addExternalForce(self, *args): return _Core.SimBiConState_addExternalForce(self, *args)
    def clearExternalForce(self): return _Core.SimBiConState_clearExternalForce(self)
    def addTrajectory(self, *args): return _Core.SimBiConState_addTrajectory(self, *args)
    def clearTrajectories(self): return _Core.SimBiConState_clearTrajectories(self)
    def getName(self): return _Core.SimBiConState_getName(self)
    def readState(self, *args): return _Core.SimBiConState_readState(self, *args)
    def writeState(self, *args): return _Core.SimBiConState_writeState(self, *args)
    def updateDVTrajectories(self, *args): return _Core.SimBiConState_updateDVTrajectories(self, *args)
    __swig_getmethods__["readTrajectory1d"] = lambda x: _Core.SimBiConState_readTrajectory1d
    if _newclass:readTrajectory1d = staticmethod(_Core.SimBiConState_readTrajectory1d)
    __swig_getmethods__["writeTrajectory1d"] = lambda x: _Core.SimBiConState_writeTrajectory1d
    if _newclass:writeTrajectory1d = staticmethod(_Core.SimBiConState_writeTrajectory1d)
SimBiConState_swigregister = _Core.SimBiConState_swigregister
SimBiConState_swigregister(SimBiConState)

def SimBiConState_readTrajectory1d(*args):
  return _Core.SimBiConState_readTrajectory1d(*args)
SimBiConState_readTrajectory1d = _Core.SimBiConState_readTrajectory1d

def SimBiConState_writeTrajectory1d(*args):
  return _Core.SimBiConState_writeTrajectory1d(*args)
SimBiConState_writeTrajectory1d = _Core.SimBiConState_writeTrajectory1d

class Controller(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, Controller, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, Controller, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _Core.delete_Controller
    __del__ = lambda self : None;
    def setName(self, *args): return _Core.Controller_setName(self, *args)
    def getName(self): return _Core.Controller_getName(self)
    def getCharacter(self): return _Core.Controller_getCharacter(self)
    def performPreTasks(self, *args): return _Core.Controller_performPreTasks(self, *args)
    def performPostTasks(self, *args): return _Core.Controller_performPostTasks(self, *args)
    def computeTorques(self, *args): return _Core.Controller_computeTorques(self, *args)
    def applyTorques(self): return _Core.Controller_applyTorques(self)
    def resetTorques(self): return _Core.Controller_resetTorques(self)
Controller_swigregister = _Core.Controller_swigregister
Controller_swigregister(Controller)

class ControlParams(Utils.Observable):
    __swig_setmethods__ = {}
    for _s in [Utils.Observable]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, ControlParams, name, value)
    __swig_getmethods__ = {}
    for _s in [Utils.Observable]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, ControlParams, name)
    __repr__ = _swig_repr
    __swig_setmethods__["joint"] = _Core.ControlParams_joint_set
    __swig_getmethods__["joint"] = _Core.ControlParams_joint_get
    if _newclass:joint = _swig_property(_Core.ControlParams_joint_get, _Core.ControlParams_joint_set)
    __swig_setmethods__["controlled"] = _Core.ControlParams_controlled_set
    __swig_getmethods__["controlled"] = _Core.ControlParams_controlled_get
    if _newclass:controlled = _swig_property(_Core.ControlParams_controlled_get, _Core.ControlParams_controlled_set)
    __swig_setmethods__["kp"] = _Core.ControlParams_kp_set
    __swig_getmethods__["kp"] = _Core.ControlParams_kp_get
    if _newclass:kp = _swig_property(_Core.ControlParams_kp_get, _Core.ControlParams_kp_set)
    __swig_setmethods__["kd"] = _Core.ControlParams_kd_set
    __swig_getmethods__["kd"] = _Core.ControlParams_kd_get
    if _newclass:kd = _swig_property(_Core.ControlParams_kd_get, _Core.ControlParams_kd_set)
    __swig_setmethods__["maxAbsTorque"] = _Core.ControlParams_maxAbsTorque_set
    __swig_getmethods__["maxAbsTorque"] = _Core.ControlParams_maxAbsTorque_get
    if _newclass:maxAbsTorque = _swig_property(_Core.ControlParams_maxAbsTorque_get, _Core.ControlParams_maxAbsTorque_set)
    __swig_setmethods__["scale"] = _Core.ControlParams_scale_set
    __swig_getmethods__["scale"] = _Core.ControlParams_scale_get
    if _newclass:scale = _swig_property(_Core.ControlParams_scale_get, _Core.ControlParams_scale_set)
    __swig_setmethods__["qRelExternallyComputed"] = _Core.ControlParams_qRelExternallyComputed_set
    __swig_getmethods__["qRelExternallyComputed"] = _Core.ControlParams_qRelExternallyComputed_get
    if _newclass:qRelExternallyComputed = _swig_property(_Core.ControlParams_qRelExternallyComputed_get, _Core.ControlParams_qRelExternallyComputed_set)
    __swig_setmethods__["strength"] = _Core.ControlParams_strength_set
    __swig_getmethods__["strength"] = _Core.ControlParams_strength_get
    if _newclass:strength = _swig_property(_Core.ControlParams_strength_get, _Core.ControlParams_strength_set)
    __swig_setmethods__["relToFrame"] = _Core.ControlParams_relToFrame_set
    __swig_getmethods__["relToFrame"] = _Core.ControlParams_relToFrame_get
    if _newclass:relToFrame = _swig_property(_Core.ControlParams_relToFrame_get, _Core.ControlParams_relToFrame_set)
    __swig_setmethods__["frame"] = _Core.ControlParams_frame_set
    __swig_getmethods__["frame"] = _Core.ControlParams_frame_get
    if _newclass:frame = _swig_property(_Core.ControlParams_frame_get, _Core.ControlParams_frame_set)
    __swig_setmethods__["frameAngularVelocityInWorld"] = _Core.ControlParams_frameAngularVelocityInWorld_set
    __swig_getmethods__["frameAngularVelocityInWorld"] = _Core.ControlParams_frameAngularVelocityInWorld_get
    if _newclass:frameAngularVelocityInWorld = _swig_property(_Core.ControlParams_frameAngularVelocityInWorld_get, _Core.ControlParams_frameAngularVelocityInWorld_set)
    def __init__(self, *args): 
        this = _Core.new_ControlParams(*args)
        try: self.this.append(this)
        except: self.this = this
    def getJointName(self): return _Core.ControlParams_getJointName(self)
    def getJoint(self): return _Core.ControlParams_getJoint(self)
    def setJoint(self, *args): return _Core.ControlParams_setJoint(self, *args)
    def setKp(self, *args): return _Core.ControlParams_setKp(self, *args)
    def getKp(self): return _Core.ControlParams_getKp(self)
    def setKd(self, *args): return _Core.ControlParams_setKd(self, *args)
    def getKd(self): return _Core.ControlParams_getKd(self)
    def setMaxAbsTorque(self, *args): return _Core.ControlParams_setMaxAbsTorque(self, *args)
    def getMaxAbsTorque(self): return _Core.ControlParams_getMaxAbsTorque(self)
    def setScale(self, *args): return _Core.ControlParams_setScale(self, *args)
    def getScale(self): return _Core.ControlParams_getScale(self)
    def setStrength(self, *args): return _Core.ControlParams_setStrength(self, *args)
    def getStrength(self): return _Core.ControlParams_getStrength(self)
    def setRelToFrame(self, *args): return _Core.ControlParams_setRelToFrame(self, *args)
    def getRelToFrame(self): return _Core.ControlParams_getRelToFrame(self)
    __swig_destroy__ = _Core.delete_ControlParams
    __del__ = lambda self : None;
ControlParams_swigregister = _Core.ControlParams_swigregister
ControlParams_swigregister(ControlParams)

class PoseController(Controller):
    __swig_setmethods__ = {}
    for _s in [Controller]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, PoseController, name, value)
    __swig_getmethods__ = {}
    for _s in [Controller]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, PoseController, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _Core.new_PoseController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_PoseController
    __del__ = lambda self : None;
    def addControlParams(self, *args): return _Core.PoseController_addControlParams(self, *args)
    def getControlParams(self, *args): return _Core.PoseController_getControlParams(self, *args)
    def scaleGains(self, *args): return _Core.PoseController_scaleGains(self, *args)
    def getControlParamsCount(self): return _Core.PoseController_getControlParamsCount(self)
    def computeTorques(self, *args): return _Core.PoseController_computeTorques(self, *args)
    __swig_getmethods__["computePDTorque"] = lambda x: _Core.PoseController_computePDTorque
    if _newclass:computePDTorque = staticmethod(_Core.PoseController_computePDTorque)
    __swig_getmethods__["scaleAndLimitTorque"] = lambda x: _Core.PoseController_scaleAndLimitTorque
    if _newclass:scaleAndLimitTorque = staticmethod(_Core.PoseController_scaleAndLimitTorque)
    __swig_getmethods__["limitTorque"] = lambda x: _Core.PoseController_limitTorque
    if _newclass:limitTorque = staticmethod(_Core.PoseController_limitTorque)
    def readGains(self, *args): return _Core.PoseController_readGains(self, *args)
    def writeGains(self, *args): return _Core.PoseController_writeGains(self, *args)
    def setTargetsFromState(self): return _Core.PoseController_setTargetsFromState(self)
PoseController_swigregister = _Core.PoseController_swigregister
PoseController_swigregister(PoseController)

def PoseController_computePDTorque(*args):
  return _Core.PoseController_computePDTorque(*args)
PoseController_computePDTorque = _Core.PoseController_computePDTorque

def PoseController_scaleAndLimitTorque(*args):
  return _Core.PoseController_scaleAndLimitTorque(*args)
PoseController_scaleAndLimitTorque = _Core.PoseController_scaleAndLimitTorque

def PoseController_limitTorque(*args):
  return _Core.PoseController_limitTorque(*args)
PoseController_limitTorque = _Core.PoseController_limitTorque

class SimBiControllerState(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SimBiControllerState, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SimBiControllerState, name)
    __repr__ = _swig_repr
    __swig_setmethods__["stance"] = _Core.SimBiControllerState_stance_set
    __swig_getmethods__["stance"] = _Core.SimBiControllerState_stance_get
    if _newclass:stance = _swig_property(_Core.SimBiControllerState_stance_get, _Core.SimBiControllerState_stance_set)
    __swig_setmethods__["phi"] = _Core.SimBiControllerState_phi_set
    __swig_getmethods__["phi"] = _Core.SimBiControllerState_phi_get
    if _newclass:phi = _swig_property(_Core.SimBiControllerState_phi_get, _Core.SimBiControllerState_phi_set)
    __swig_setmethods__["FSMStateIndex"] = _Core.SimBiControllerState_FSMStateIndex_set
    __swig_getmethods__["FSMStateIndex"] = _Core.SimBiControllerState_FSMStateIndex_get
    if _newclass:FSMStateIndex = _swig_property(_Core.SimBiControllerState_FSMStateIndex_get, _Core.SimBiControllerState_FSMStateIndex_set)
    __swig_setmethods__["bodyGroundContact"] = _Core.SimBiControllerState_bodyGroundContact_set
    __swig_getmethods__["bodyGroundContact"] = _Core.SimBiControllerState_bodyGroundContact_get
    if _newclass:bodyGroundContact = _swig_property(_Core.SimBiControllerState_bodyGroundContact_get, _Core.SimBiControllerState_bodyGroundContact_set)
    def __init__(self): 
        this = _Core.new_SimBiControllerState()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_SimBiControllerState
    __del__ = lambda self : None;
SimBiControllerState_swigregister = _Core.SimBiControllerState_swigregister
SimBiControllerState_swigregister(SimBiControllerState)

class SimBiController(PoseController):
    __swig_setmethods__ = {}
    for _s in [PoseController]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SimBiController, name, value)
    __swig_getmethods__ = {}
    for _s in [PoseController]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, SimBiController, name)
    __repr__ = _swig_repr
    __swig_setmethods__["startingState"] = _Core.SimBiController_startingState_set
    __swig_getmethods__["startingState"] = _Core.SimBiController_startingState_get
    if _newclass:startingState = _swig_property(_Core.SimBiController_startingState_get, _Core.SimBiController_startingState_set)
    __swig_setmethods__["startingStance"] = _Core.SimBiController_startingStance_set
    __swig_getmethods__["startingStance"] = _Core.SimBiController_startingStance_get
    if _newclass:startingStance = _swig_property(_Core.SimBiController_startingStance_get, _Core.SimBiController_startingStance_set)
    __swig_setmethods__["initialBipState"] = _Core.SimBiController_initialBipState_set
    __swig_getmethods__["initialBipState"] = _Core.SimBiController_initialBipState_get
    if _newclass:initialBipState = _swig_property(_Core.SimBiController_initialBipState_get, _Core.SimBiController_initialBipState_set)
    def __init__(self, *args): 
        this = _Core.new_SimBiController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_SimBiController
    __del__ = lambda self : None;
    def scaleGains(self, *args): return _Core.SimBiController_scaleGains(self, *args)
    def getPhiPtr(self): return _Core.SimBiController_getPhiPtr(self)
    def getDoubleStanceCOMError(self): return _Core.SimBiController_getDoubleStanceCOMError(self)
    def setStanceHipDamping(self, *args): return _Core.SimBiController_setStanceHipDamping(self, *args)
    def getStanceHipDamping(self): return _Core.SimBiController_getStanceHipDamping(self)
    def setStanceHipMaxVelocity(self, *args): return _Core.SimBiController_setStanceHipMaxVelocity(self, *args)
    def getStanceHipMaxVelocity(self): return _Core.SimBiController_getStanceHipMaxVelocity(self)
    def setStance(self, *args): return _Core.SimBiController_setStance(self, *args)
    def addControlParams(self, *args): return _Core.SimBiController_addControlParams(self, *args)
    def getRootControlParams(self): return _Core.SimBiController_getRootControlParams(self)
    def getState(self, *args): return _Core.SimBiController_getState(self, *args)
    def getCurrentState(self): return _Core.SimBiController_getCurrentState(self)
    def getStateCount(self): return _Core.SimBiController_getStateCount(self)
    def addState(self, *args): return _Core.SimBiController_addState(self, *args)
    def clearStates(self): return _Core.SimBiController_clearStates(self)
    def computeTorques(self, *args): return _Core.SimBiController_computeTorques(self, *args)
    def evaluateJointTargets(self): return _Core.SimBiController_evaluateJointTargets(self)
    def computePDTorques(self, *args): return _Core.SimBiController_computePDTorques(self, *args)
    def blendOutTorques(self): return _Core.SimBiController_blendOutTorques(self)
    def performPostTasks(self, *args): return _Core.SimBiController_performPostTasks(self, *args)
    def advanceInTime(self, *args): return _Core.SimBiController_advanceInTime(self, *args)
    def getControllerState(self, *args): return _Core.SimBiController_getControllerState(self, *args)
    def setControllerState(self, *args): return _Core.SimBiController_setControllerState(self, *args)
    def loadFromFile(self, *args): return _Core.SimBiController_loadFromFile(self, *args)
    def isBodyInContactWithTheGround(self): return _Core.SimBiController_isBodyInContactWithTheGround(self)
    def getPhase(self): return _Core.SimBiController_getPhase(self)
    def setPhase(self, *args): return _Core.SimBiController_setPhase(self, *args)
    def getV(self): return _Core.SimBiController_getV(self)
    def getD(self): return _Core.SimBiController_getD(self)
    def getStanceFootPos(self): return _Core.SimBiController_getStanceFootPos(self)
    def getSwingFootPos(self): return _Core.SimBiController_getSwingFootPos(self)
    def writeToFile(self, *args): return _Core.SimBiController_writeToFile(self, *args)
    def getFSMState(self): return _Core.SimBiController_getFSMState(self)
    def getCharacterFrame(self): return _Core.SimBiController_getCharacterFrame(self)
    def updateDAndV(self): return _Core.SimBiController_updateDAndV(self)
    def updateTrackingPose(self, *args): return _Core.SimBiController_updateTrackingPose(self, *args)
    def getStance(self): return _Core.SimBiController_getStance(self)
    def computeD0(self, *args): return _Core.SimBiController_computeD0(self, *args)
    def computeV0(self, *args): return _Core.SimBiController_computeV0(self, *args)
    __swig_getmethods__["computeDorV"] = lambda x: _Core.SimBiController_computeDorV
    if _newclass:computeDorV = staticmethod(_Core.SimBiController_computeDorV)
    def setStartingState(self, *args): return _Core.SimBiController_setStartingState(self, *args)
    def getStartingState(self): return _Core.SimBiController_getStartingState(self)
SimBiController_swigregister = _Core.SimBiController_swigregister
SimBiController_swigregister(SimBiController)

def SimBiController_computeDorV(*args):
  return _Core.SimBiController_computeDorV(*args)
SimBiController_computeDorV = _Core.SimBiController_computeDorV

class IKVMCController(SimBiController):
    __swig_setmethods__ = {}
    for _s in [SimBiController]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, IKVMCController, name, value)
    __swig_getmethods__ = {}
    for _s in [SimBiController]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, IKVMCController, name)
    __repr__ = _swig_repr
    __swig_setmethods__["velDSagittal"] = _Core.IKVMCController_velDSagittal_set
    __swig_getmethods__["velDSagittal"] = _Core.IKVMCController_velDSagittal_get
    if _newclass:velDSagittal = _swig_property(_Core.IKVMCController_velDSagittal_get, _Core.IKVMCController_velDSagittal_set)
    __swig_setmethods__["velDCoronal"] = _Core.IKVMCController_velDCoronal_set
    __swig_getmethods__["velDCoronal"] = _Core.IKVMCController_velDCoronal_get
    if _newclass:velDCoronal = _swig_property(_Core.IKVMCController_velDCoronal_get, _Core.IKVMCController_velDCoronal_set)
    __swig_setmethods__["swingFootTrajectorySagittal"] = _Core.IKVMCController_swingFootTrajectorySagittal_set
    __swig_getmethods__["swingFootTrajectorySagittal"] = _Core.IKVMCController_swingFootTrajectorySagittal_get
    if _newclass:swingFootTrajectorySagittal = _swig_property(_Core.IKVMCController_swingFootTrajectorySagittal_get, _Core.IKVMCController_swingFootTrajectorySagittal_set)
    __swig_setmethods__["swingFootTrajectoryCoronal"] = _Core.IKVMCController_swingFootTrajectoryCoronal_set
    __swig_getmethods__["swingFootTrajectoryCoronal"] = _Core.IKVMCController_swingFootTrajectoryCoronal_get
    if _newclass:swingFootTrajectoryCoronal = _swig_property(_Core.IKVMCController_swingFootTrajectoryCoronal_get, _Core.IKVMCController_swingFootTrajectoryCoronal_set)
    __swig_setmethods__["swingFootHeightTrajectory"] = _Core.IKVMCController_swingFootHeightTrajectory_set
    __swig_getmethods__["swingFootHeightTrajectory"] = _Core.IKVMCController_swingFootHeightTrajectory_get
    if _newclass:swingFootHeightTrajectory = _swig_property(_Core.IKVMCController_swingFootHeightTrajectory_get, _Core.IKVMCController_swingFootHeightTrajectory_set)
    __swig_setmethods__["swingFootTrajectoryDeltaSagittal"] = _Core.IKVMCController_swingFootTrajectoryDeltaSagittal_set
    __swig_getmethods__["swingFootTrajectoryDeltaSagittal"] = _Core.IKVMCController_swingFootTrajectoryDeltaSagittal_get
    if _newclass:swingFootTrajectoryDeltaSagittal = _swig_property(_Core.IKVMCController_swingFootTrajectoryDeltaSagittal_get, _Core.IKVMCController_swingFootTrajectoryDeltaSagittal_set)
    __swig_setmethods__["swingFootTrajectoryDeltaCoronal"] = _Core.IKVMCController_swingFootTrajectoryDeltaCoronal_set
    __swig_getmethods__["swingFootTrajectoryDeltaCoronal"] = _Core.IKVMCController_swingFootTrajectoryDeltaCoronal_get
    if _newclass:swingFootTrajectoryDeltaCoronal = _swig_property(_Core.IKVMCController_swingFootTrajectoryDeltaCoronal_get, _Core.IKVMCController_swingFootTrajectoryDeltaCoronal_set)
    __swig_setmethods__["swingFootTrajectoryDeltaHeight"] = _Core.IKVMCController_swingFootTrajectoryDeltaHeight_set
    __swig_getmethods__["swingFootTrajectoryDeltaHeight"] = _Core.IKVMCController_swingFootTrajectoryDeltaHeight_get
    if _newclass:swingFootTrajectoryDeltaHeight = _swig_property(_Core.IKVMCController_swingFootTrajectoryDeltaHeight_get, _Core.IKVMCController_swingFootTrajectoryDeltaHeight_set)
    __swig_setmethods__["swingLegPlaneOfRotation"] = _Core.IKVMCController_swingLegPlaneOfRotation_set
    __swig_getmethods__["swingLegPlaneOfRotation"] = _Core.IKVMCController_swingLegPlaneOfRotation_get
    if _newclass:swingLegPlaneOfRotation = _swig_property(_Core.IKVMCController_swingLegPlaneOfRotation_get, _Core.IKVMCController_swingLegPlaneOfRotation_set)
    __swig_setmethods__["doubleStanceMode"] = _Core.IKVMCController_doubleStanceMode_set
    __swig_getmethods__["doubleStanceMode"] = _Core.IKVMCController_doubleStanceMode_get
    if _newclass:doubleStanceMode = _swig_property(_Core.IKVMCController_doubleStanceMode_get, _Core.IKVMCController_doubleStanceMode_set)
    __swig_setmethods__["comOffsetSagittal"] = _Core.IKVMCController_comOffsetSagittal_set
    __swig_getmethods__["comOffsetSagittal"] = _Core.IKVMCController_comOffsetSagittal_get
    if _newclass:comOffsetSagittal = _swig_property(_Core.IKVMCController_comOffsetSagittal_get, _Core.IKVMCController_comOffsetSagittal_set)
    __swig_setmethods__["comOffsetCoronal"] = _Core.IKVMCController_comOffsetCoronal_set
    __swig_getmethods__["comOffsetCoronal"] = _Core.IKVMCController_comOffsetCoronal_get
    if _newclass:comOffsetCoronal = _swig_property(_Core.IKVMCController_comOffsetCoronal_get, _Core.IKVMCController_comOffsetCoronal_set)
    __swig_setmethods__["panicHeight"] = _Core.IKVMCController_panicHeight_set
    __swig_getmethods__["panicHeight"] = _Core.IKVMCController_panicHeight_get
    if _newclass:panicHeight = _swig_property(_Core.IKVMCController_panicHeight_get, _Core.IKVMCController_panicHeight_set)
    __swig_setmethods__["unplannedForHeight"] = _Core.IKVMCController_unplannedForHeight_set
    __swig_getmethods__["unplannedForHeight"] = _Core.IKVMCController_unplannedForHeight_get
    if _newclass:unplannedForHeight = _swig_property(_Core.IKVMCController_unplannedForHeight_get, _Core.IKVMCController_unplannedForHeight_set)
    def __init__(self, *args): 
        this = _Core.new_IKVMCController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_IKVMCController
    __del__ = lambda self : None;
    def setSwingFootTrajectoryDeltaSagittal(self, *args): return _Core.IKVMCController_setSwingFootTrajectoryDeltaSagittal(self, *args)
    def getSwingFootTrajectoryDeltaSagittal(self): return _Core.IKVMCController_getSwingFootTrajectoryDeltaSagittal(self)
    def setSwingFootTrajectoryDeltaCoronal(self, *args): return _Core.IKVMCController_setSwingFootTrajectoryDeltaCoronal(self, *args)
    def getSwingFootTrajectoryDeltaCoronal(self): return _Core.IKVMCController_getSwingFootTrajectoryDeltaCoronal(self)
    def setSwingFootTrajectoryDeltaHeight(self, *args): return _Core.IKVMCController_setSwingFootTrajectoryDeltaHeight(self, *args)
    def getSwingFootTrajectoryDeltaHeight(self): return _Core.IKVMCController_getSwingFootTrajectoryDeltaHeight(self)
    def computeSwingFootDelta(self, *args): return _Core.IKVMCController_computeSwingFootDelta(self, *args)
    def setBehaviour(self, *args): return _Core.IKVMCController_setBehaviour(self, *args)
    def getBehaviour(self): return _Core.IKVMCController_getBehaviour(self)
    def computeIPStepLocation(self): return _Core.IKVMCController_computeIPStepLocation(self)
    def computeIKSwingLegTargets(self, *args): return _Core.IKVMCController_computeIKSwingLegTargets(self, *args)
    def computeTorques(self, *args): return _Core.IKVMCController_computeTorques(self, *args)
    def getSwingFootTargetLocation(self, *args): return _Core.IKVMCController_getSwingFootTargetLocation(self, *args)
    def computeGravityCompensationTorques(self): return _Core.IKVMCController_computeGravityCompensationTorques(self)
    def updateSwingAndStanceReferences(self): return _Core.IKVMCController_updateSwingAndStanceReferences(self)
    def computeIKQandW(self, *args): return _Core.IKVMCController_computeIKQandW(self, *args)
    def bubbleUpTorques(self): return _Core.IKVMCController_bubbleUpTorques(self)
    def computeLegTorques(self, *args): return _Core.IKVMCController_computeLegTorques(self, *args)
    def COMJT(self, *args): return _Core.IKVMCController_COMJT(self, *args)
    def computeVirtualForce(self): return _Core.IKVMCController_computeVirtualForce(self)
    def preprocessAnkleVTorque(self, *args): return _Core.IKVMCController_preprocessAnkleVTorque(self, *args)
    def performPreTasks(self, *args): return _Core.IKVMCController_performPreTasks(self, *args)
    def performPostTasks(self, *args): return _Core.IKVMCController_performPostTasks(self, *args)
IKVMCController_swigregister = _Core.IKVMCController_swigregister
IKVMCController_swigregister(IKVMCController)

class WorldOracle(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, WorldOracle, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, WorldOracle, name)
    __repr__ = _swig_repr
    def __init__(self): 
        this = _Core.new_WorldOracle()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_WorldOracle
    __del__ = lambda self : None;
    def getWorldHeightAt(self, *args): return _Core.WorldOracle_getWorldHeightAt(self, *args)
    def initializeWorld(self, *args): return _Core.WorldOracle_initializeWorld(self, *args)
    def draw(self): return _Core.WorldOracle_draw(self)
WorldOracle_swigregister = _Core.WorldOracle_swigregister
WorldOracle_swigregister(WorldOracle)

class BehaviourController(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, BehaviourController, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, BehaviourController, name)
    __repr__ = _swig_repr
    __swig_setmethods__["alternateFootTraj"] = _Core.BehaviourController_alternateFootTraj_set
    __swig_getmethods__["alternateFootTraj"] = _Core.BehaviourController_alternateFootTraj_get
    if _newclass:alternateFootTraj = _swig_property(_Core.BehaviourController_alternateFootTraj_get, _Core.BehaviourController_alternateFootTraj_set)
    def setUpperBodyPose(self, *args): return _Core.BehaviourController_setUpperBodyPose(self, *args)
    def setKneeBend(self, *args): return _Core.BehaviourController_setKneeBend(self, *args)
    def setDuckWalkDegree(self, *args): return _Core.BehaviourController_setDuckWalkDegree(self, *args)
    def setDesiredHeading(self, *args): return _Core.BehaviourController_setDesiredHeading(self, *args)
    def setVelocities(self, *args): return _Core.BehaviourController_setVelocities(self, *args)
    def __init__(self, *args): 
        this = _Core.new_BehaviourController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_BehaviourController
    __del__ = lambda self : None;
    def adjustStepHeight(self): return _Core.BehaviourController_adjustStepHeight(self)
    def setElbowAngles(self, *args): return _Core.BehaviourController_setElbowAngles(self, *args)
    def setShoulderAngles(self, *args): return _Core.BehaviourController_setShoulderAngles(self, *args)
    def requestStepTime(self, *args): return _Core.BehaviourController_requestStepTime(self, *args)
    def requestStepHeight(self, *args): return _Core.BehaviourController_requestStepHeight(self, *args)
    def requestVelocities(self, *args): return _Core.BehaviourController_requestVelocities(self, *args)
    def requestUpperBodyPose(self, *args): return _Core.BehaviourController_requestUpperBodyPose(self, *args)
    def requestKneeBend(self, *args): return _Core.BehaviourController_requestKneeBend(self, *args)
    def requestDuckFootedness(self, *args): return _Core.BehaviourController_requestDuckFootedness(self, *args)
    def requestCoronalStepWidth(self, *args): return _Core.BehaviourController_requestCoronalStepWidth(self, *args)
    def getDesiredStepTime(self): return _Core.BehaviourController_getDesiredStepTime(self)
    def getDesiredVelocitySagittal(self): return _Core.BehaviourController_getDesiredVelocitySagittal(self)
    def getCoronalStepWidth(self): return _Core.BehaviourController_getCoronalStepWidth(self)
    def setDesiredSwingFootLocation(self): return _Core.BehaviourController_setDesiredSwingFootLocation(self)
    def computeSwingFootLocationEstimate(self, *args): return _Core.BehaviourController_computeSwingFootLocationEstimate(self, *args)
    def requestHeading(self, *args): return _Core.BehaviourController_requestHeading(self, *args)
    def initializeDefaultParameters(self): return _Core.BehaviourController_initializeDefaultParameters(self)
    def simStepPlan(self, *args): return _Core.BehaviourController_simStepPlan(self, *args)
    def conTransitionPlan(self): return _Core.BehaviourController_conTransitionPlan(self)
    def getPanicLevel(self): return _Core.BehaviourController_getPanicLevel(self)
    def shouldAbort(self): return _Core.BehaviourController_shouldAbort(self)
    def onAbort(self): return _Core.BehaviourController_onAbort(self)
    def detectPossibleLegCrossing(self, *args): return _Core.BehaviourController_detectPossibleLegCrossing(self, *args)
    def adjustCoronalStepLocation(self, *args): return _Core.BehaviourController_adjustCoronalStepLocation(self, *args)
BehaviourController_swigregister = _Core.BehaviourController_swigregister
BehaviourController_swigregister(BehaviourController)

class TurnController(BehaviourController):
    __swig_setmethods__ = {}
    for _s in [BehaviourController]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, TurnController, name, value)
    __swig_getmethods__ = {}
    for _s in [BehaviourController]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, TurnController, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _Core.new_TurnController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_TurnController
    __del__ = lambda self : None;
    def initializeDefaultParameters(self): return _Core.TurnController_initializeDefaultParameters(self)
    def simStepPlan(self, *args): return _Core.TurnController_simStepPlan(self, *args)
    def conTransitionPlan(self): return _Core.TurnController_conTransitionPlan(self)
    def getPanicLevel(self): return _Core.TurnController_getPanicLevel(self)
    def requestHeading(self, *args): return _Core.TurnController_requestHeading(self, *args)
TurnController_swigregister = _Core.TurnController_swigregister
TurnController_swigregister(TurnController)

class DuckController(BehaviourController):
    __swig_setmethods__ = {}
    for _s in [BehaviourController]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DuckController, name, value)
    __swig_getmethods__ = {}
    for _s in [BehaviourController]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, DuckController, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _Core.new_DuckController(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _Core.delete_DuckController
    __del__ = lambda self : None;
    def simStepPlan(self, *args): return _Core.DuckController_simStepPlan(self, *args)
    def getPanicLevel(self): return _Core.DuckController_getPanicLevel(self)
DuckController_swigregister = _Core.DuckController_swigregister
DuckController_swigregister(DuckController)

class TwoLinkIK(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, TwoLinkIK, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, TwoLinkIK, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_getmethods__["solve"] = lambda x: _Core.TwoLinkIK_solve
    if _newclass:solve = staticmethod(_Core.TwoLinkIK_solve)
    __swig_getmethods__["getParentOrientation"] = lambda x: _Core.TwoLinkIK_getParentOrientation
    if _newclass:getParentOrientation = staticmethod(_Core.TwoLinkIK_getParentOrientation)
    __swig_getmethods__["getChildRotationAngle"] = lambda x: _Core.TwoLinkIK_getChildRotationAngle
    if _newclass:getChildRotationAngle = staticmethod(_Core.TwoLinkIK_getChildRotationAngle)
    __swig_getmethods__["getIKOrientations"] = lambda x: _Core.TwoLinkIK_getIKOrientations
    if _newclass:getIKOrientations = staticmethod(_Core.TwoLinkIK_getIKOrientations)
TwoLinkIK_swigregister = _Core.TwoLinkIK_swigregister
TwoLinkIK_swigregister(TwoLinkIK)

def TwoLinkIK_solve(*args):
  return _Core.TwoLinkIK_solve(*args)
TwoLinkIK_solve = _Core.TwoLinkIK_solve

def TwoLinkIK_getParentOrientation(*args):
  return _Core.TwoLinkIK_getParentOrientation(*args)
TwoLinkIK_getParentOrientation = _Core.TwoLinkIK_getParentOrientation

def TwoLinkIK_getChildRotationAngle(*args):
  return _Core.TwoLinkIK_getChildRotationAngle(*args)
TwoLinkIK_getChildRotationAngle = _Core.TwoLinkIK_getChildRotationAngle

def TwoLinkIK_getIKOrientations(*args):
  return _Core.TwoLinkIK_getIKOrientations(*args)
TwoLinkIK_getIKOrientations = _Core.TwoLinkIK_getIKOrientations


def castToCharacter(*args):
  return _Core.castToCharacter(*args)
castToCharacter = _Core.castToCharacter

def castToController(*args):
  return _Core.castToController(*args)
castToController = _Core.castToController

def castToPoseController(*args):
  return _Core.castToPoseController(*args)
castToPoseController = _Core.castToPoseController

def castToSimBiController(*args):
  return _Core.castToSimBiController(*args)
castToSimBiController = _Core.castToSimBiController

def castToIKVMCController(*args):
  return _Core.castToIKVMCController(*args)
castToIKVMCController = _Core.castToIKVMCController

def castToControlParams(*args):
  return _Core.castToControlParams(*args)
castToControlParams = _Core.castToControlParams

def castToSimBiConState(*args):
  return _Core.castToSimBiConState(*args)
castToSimBiConState = _Core.castToSimBiConState

def castToExternalForce(*args):
  return _Core.castToExternalForce(*args)
castToExternalForce = _Core.castToExternalForce

def castToTrajectory(*args):
  return _Core.castToTrajectory(*args)
castToTrajectory = _Core.castToTrajectory

def castToTrajectoryComponent(*args):
  return _Core.castToTrajectoryComponent(*args)
castToTrajectoryComponent = _Core.castToTrajectoryComponent

def castToBalanceFeedback(*args):
  return _Core.castToBalanceFeedback(*args)
castToBalanceFeedback = _Core.castToBalanceFeedback

def castToLinearBalanceFeedback(*args):
  return _Core.castToLinearBalanceFeedback(*args)
castToLinearBalanceFeedback = _Core.castToLinearBalanceFeedback


