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





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('_pydart2_api', [dirname(__file__)])
        except ImportError:
            import _pydart2_api
            return _pydart2_api
        if fp is not None:
            try:
                _mod = imp.load_module('_pydart2_api', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _pydart2_api = swig_import_helper()
    del swig_import_helper
else:
    import _pydart2_api
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):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            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_nondynamic(self, class_type, name, static=1):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    if (not static):
        return object.__getattr__(self, name)
    else:
        raise AttributeError(name)

def _swig_getattr(self, class_type, name):
    return _swig_getattr_nondynamic(self, class_type, name, 0)


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

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


class SwigPyIterator(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pydart2_api.delete_SwigPyIterator
    __del__ = lambda self: None

    def value(self) -> "PyObject *":
        return _pydart2_api.SwigPyIterator_value(self)

    def incr(self, n: 'size_t'=1) -> "swig::SwigPyIterator *":
        return _pydart2_api.SwigPyIterator_incr(self, n)

    def decr(self, n: 'size_t'=1) -> "swig::SwigPyIterator *":
        return _pydart2_api.SwigPyIterator_decr(self, n)

    def distance(self, x: 'SwigPyIterator') -> "ptrdiff_t":
        return _pydart2_api.SwigPyIterator_distance(self, x)

    def equal(self, x: 'SwigPyIterator') -> "bool":
        return _pydart2_api.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _pydart2_api.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _pydart2_api.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _pydart2_api.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _pydart2_api.SwigPyIterator_previous(self)

    def advance(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator *":
        return _pydart2_api.SwigPyIterator_advance(self, n)

    def __eq__(self, x: 'SwigPyIterator') -> "bool":
        return _pydart2_api.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: 'SwigPyIterator') -> "bool":
        return _pydart2_api.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator &":
        return _pydart2_api.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator &":
        return _pydart2_api.SwigPyIterator___isub__(self, n)

    def __add__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator *":
        return _pydart2_api.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _pydart2_api.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self
SwigPyIterator_swigregister = _pydart2_api.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

class IntVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, IntVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, IntVector, name)
    __repr__ = _swig_repr

    def iterator(self) -> "swig::SwigPyIterator *":
        return _pydart2_api.IntVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self) -> "bool":
        return _pydart2_api.IntVector___nonzero__(self)

    def __bool__(self) -> "bool":
        return _pydart2_api.IntVector___bool__(self)

    def __len__(self) -> "std::vector< int >::size_type":
        return _pydart2_api.IntVector___len__(self)

    def __getslice__(self, i: 'std::vector< int >::difference_type', j: 'std::vector< int >::difference_type') -> "std::vector< int,std::allocator< int > > *":
        return _pydart2_api.IntVector___getslice__(self, i, j)

    def __setslice__(self, *args) -> "void":
        return _pydart2_api.IntVector___setslice__(self, *args)

    def __delslice__(self, i: 'std::vector< int >::difference_type', j: 'std::vector< int >::difference_type') -> "void":
        return _pydart2_api.IntVector___delslice__(self, i, j)

    def __delitem__(self, *args) -> "void":
        return _pydart2_api.IntVector___delitem__(self, *args)

    def __getitem__(self, *args) -> "std::vector< int >::value_type const &":
        return _pydart2_api.IntVector___getitem__(self, *args)

    def __setitem__(self, *args) -> "void":
        return _pydart2_api.IntVector___setitem__(self, *args)

    def pop(self) -> "std::vector< int >::value_type":
        return _pydart2_api.IntVector_pop(self)

    def append(self, x: 'std::vector< int >::value_type const &') -> "void":
        return _pydart2_api.IntVector_append(self, x)

    def empty(self) -> "bool":
        return _pydart2_api.IntVector_empty(self)

    def size(self) -> "std::vector< int >::size_type":
        return _pydart2_api.IntVector_size(self)

    def swap(self, v: 'IntVector') -> "void":
        return _pydart2_api.IntVector_swap(self, v)

    def begin(self) -> "std::vector< int >::iterator":
        return _pydart2_api.IntVector_begin(self)

    def end(self) -> "std::vector< int >::iterator":
        return _pydart2_api.IntVector_end(self)

    def rbegin(self) -> "std::vector< int >::reverse_iterator":
        return _pydart2_api.IntVector_rbegin(self)

    def rend(self) -> "std::vector< int >::reverse_iterator":
        return _pydart2_api.IntVector_rend(self)

    def clear(self) -> "void":
        return _pydart2_api.IntVector_clear(self)

    def get_allocator(self) -> "std::vector< int >::allocator_type":
        return _pydart2_api.IntVector_get_allocator(self)

    def pop_back(self) -> "void":
        return _pydart2_api.IntVector_pop_back(self)

    def erase(self, *args) -> "std::vector< int >::iterator":
        return _pydart2_api.IntVector_erase(self, *args)

    def __init__(self, *args):
        this = _pydart2_api.new_IntVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def push_back(self, x: 'std::vector< int >::value_type const &') -> "void":
        return _pydart2_api.IntVector_push_back(self, x)

    def front(self) -> "std::vector< int >::value_type const &":
        return _pydart2_api.IntVector_front(self)

    def back(self) -> "std::vector< int >::value_type const &":
        return _pydart2_api.IntVector_back(self)

    def assign(self, n: 'std::vector< int >::size_type', x: 'std::vector< int >::value_type const &') -> "void":
        return _pydart2_api.IntVector_assign(self, n, x)

    def resize(self, *args) -> "void":
        return _pydart2_api.IntVector_resize(self, *args)

    def insert(self, *args) -> "void":
        return _pydart2_api.IntVector_insert(self, *args)

    def reserve(self, n: 'std::vector< int >::size_type') -> "void":
        return _pydart2_api.IntVector_reserve(self, n)

    def capacity(self) -> "std::vector< int >::size_type":
        return _pydart2_api.IntVector_capacity(self)
    __swig_destroy__ = _pydart2_api.delete_IntVector
    __del__ = lambda self: None
IntVector_swigregister = _pydart2_api.IntVector_swigregister
IntVector_swigregister(IntVector)


def init(verbose: 'bool'=True) -> "void":
    return _pydart2_api.init(verbose)
init = _pydart2_api.init

def destroy() -> "void":
    return _pydart2_api.destroy()
destroy = _pydart2_api.destroy

def setVerbose(verbose: 'bool'=True) -> "void":
    return _pydart2_api.setVerbose(verbose)
setVerbose = _pydart2_api.setVerbose

def getVerbose() -> "bool":
    return _pydart2_api.getVerbose()
getVerbose = _pydart2_api.getVerbose

def marker__getBodyNode(wid: 'int', skid: 'int', mid: 'int') -> "int":
    return _pydart2_api.marker__getBodyNode(wid, skid, mid)
marker__getBodyNode = _pydart2_api.marker__getBodyNode

def marker__getLocalPosition(wid: 'int', skid: 'int', mid: 'int') -> "double [3]":
    return _pydart2_api.marker__getLocalPosition(wid, skid, mid)
marker__getLocalPosition = _pydart2_api.marker__getLocalPosition

def marker__setLocalPosition(wid: 'int', skid: 'int', mid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.marker__setLocalPosition(wid, skid, mid, inv3)
marker__setLocalPosition = _pydart2_api.marker__setLocalPosition

def marker__getWorldPosition(wid: 'int', skid: 'int', mid: 'int') -> "double [3]":
    return _pydart2_api.marker__getWorldPosition(wid, skid, mid)
marker__getWorldPosition = _pydart2_api.marker__getWorldPosition

def marker__render(wid: 'int', skid: 'int', mid: 'int') -> "void":
    return _pydart2_api.marker__render(wid, skid, mid)
marker__render = _pydart2_api.marker__render

def collisionresult__getNumContacts(wid: 'int') -> "int":
    return _pydart2_api.collisionresult__getNumContacts(wid)
collisionresult__getNumContacts = _pydart2_api.collisionresult__getNumContacts

def collisionresult__getContacts(wid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.collisionresult__getContacts(wid, outv)
collisionresult__getContacts = _pydart2_api.collisionresult__getContacts

def collisionresult__getCollidingBodyNodes(wid: 'int') -> "std::vector< int,std::allocator< int > >":
    return _pydart2_api.collisionresult__getCollidingBodyNodes(wid)
collisionresult__getCollidingBodyNodes = _pydart2_api.collisionresult__getCollidingBodyNodes

def collisionresult__renderContact(inv6: 'double [6]', size: 'double', scale: 'double') -> "void":
    return _pydart2_api.collisionresult__renderContact(inv6, size, scale)
collisionresult__renderContact = _pydart2_api.collisionresult__renderContact

def addBallJointConstraint(wid: 'int', skid1: 'int', bid1: 'int', skid2: 'int', bid2: 'int', inv3: 'double [3]') -> "int":
    return _pydart2_api.addBallJointConstraint(wid, skid1, bid1, skid2, bid2, inv3)
addBallJointConstraint = _pydart2_api.addBallJointConstraint

def createWorld(timestep: 'double') -> "int":
    return _pydart2_api.createWorld(timestep)
createWorld = _pydart2_api.createWorld

def createWorldFromSkel(path: 'char const *const') -> "int":
    return _pydart2_api.createWorldFromSkel(path)
createWorldFromSkel = _pydart2_api.createWorldFromSkel

def destroyWorld(wid: 'int') -> "void":
    return _pydart2_api.destroyWorld(wid)
destroyWorld = _pydart2_api.destroyWorld

def world__addSkeleton(wid: 'int', path: 'char const *const') -> "int":
    return _pydart2_api.world__addSkeleton(wid, path)
world__addSkeleton = _pydart2_api.world__addSkeleton

def world__getNumSkeletons(wid: 'int') -> "int":
    return _pydart2_api.world__getNumSkeletons(wid)
world__getNumSkeletons = _pydart2_api.world__getNumSkeletons

def world__reset(wid: 'int') -> "void":
    return _pydart2_api.world__reset(wid)
world__reset = _pydart2_api.world__reset

def world__step(wid: 'int') -> "void":
    return _pydart2_api.world__step(wid)
world__step = _pydart2_api.world__step

def world__checkCollision(wid: 'int') -> "void":
    return _pydart2_api.world__checkCollision(wid)
world__checkCollision = _pydart2_api.world__checkCollision

def world__render(wid: 'int') -> "void":
    return _pydart2_api.world__render(wid)
world__render = _pydart2_api.world__render

def world__setTimeStep(wid: 'int', _timeStep: 'double') -> "void":
    return _pydart2_api.world__setTimeStep(wid, _timeStep)
world__setTimeStep = _pydart2_api.world__setTimeStep

def world__getTimeStep(wid: 'int') -> "double":
    return _pydart2_api.world__getTimeStep(wid)
world__getTimeStep = _pydart2_api.world__getTimeStep

def world__setTime(wid: 'int', _time: 'double') -> "void":
    return _pydart2_api.world__setTime(wid, _time)
world__setTime = _pydart2_api.world__setTime

def world__getTime(wid: 'int') -> "double":
    return _pydart2_api.world__getTime(wid)
world__getTime = _pydart2_api.world__getTime

def world__getSimFrames(wid: 'int') -> "int":
    return _pydart2_api.world__getSimFrames(wid)
world__getSimFrames = _pydart2_api.world__getSimFrames

def world__getIndex(wid: 'int', _index: 'int') -> "int":
    return _pydart2_api.world__getIndex(wid, _index)
world__getIndex = _pydart2_api.world__getIndex

def world__setGravity(wid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.world__setGravity(wid, inv3)
world__setGravity = _pydart2_api.world__setGravity

def world__getGravity(wid: 'int') -> "double [3]":
    return _pydart2_api.world__getGravity(wid)
world__getGravity = _pydart2_api.world__getGravity

def world__setCollisionDetector(wid: 'int', detector_type: 'int') -> "void":
    return _pydart2_api.world__setCollisionDetector(wid, detector_type)
world__setCollisionDetector = _pydart2_api.world__setCollisionDetector

def world__getCollisionDetector(wid: 'int') -> "int":
    return _pydart2_api.world__getCollisionDetector(wid)
world__getCollisionDetector = _pydart2_api.world__getCollisionDetector

def world__removeAllConstraints(wid: 'int') -> "void":
    return _pydart2_api.world__removeAllConstraints(wid)
world__removeAllConstraints = _pydart2_api.world__removeAllConstraints

def skeleton__render(wid: 'int', skid: 'int') -> "void":
    return _pydart2_api.skeleton__render(wid, skid)
skeleton__render = _pydart2_api.skeleton__render

def skeleton__renderWithColor(wid: 'int', skid: 'int', inv4: 'double [4]') -> "void":
    return _pydart2_api.skeleton__renderWithColor(wid, skid, inv4)
skeleton__renderWithColor = _pydart2_api.skeleton__renderWithColor

def skeleton__getName(wid: 'int', skid: 'int') -> "char const *":
    return _pydart2_api.skeleton__getName(wid, skid)
skeleton__getName = _pydart2_api.skeleton__getName

def skeleton__getMass(wid: 'int', skid: 'int') -> "double":
    return _pydart2_api.skeleton__getMass(wid, skid)
skeleton__getMass = _pydart2_api.skeleton__getMass

def skeleton__isMobile(wid: 'int', skid: 'int') -> "bool":
    return _pydart2_api.skeleton__isMobile(wid, skid)
skeleton__isMobile = _pydart2_api.skeleton__isMobile

def skeleton__setMobile(wid: 'int', skid: 'int', mobile: 'bool') -> "void":
    return _pydart2_api.skeleton__setMobile(wid, skid, mobile)
skeleton__setMobile = _pydart2_api.skeleton__setMobile

def skeleton__getSelfCollisionCheck(wid: 'int', skid: 'int') -> "bool":
    return _pydart2_api.skeleton__getSelfCollisionCheck(wid, skid)
skeleton__getSelfCollisionCheck = _pydart2_api.skeleton__getSelfCollisionCheck

def skeleton__setSelfCollisionCheck(wid: 'int', skid: 'int', enable: 'int') -> "void":
    return _pydart2_api.skeleton__setSelfCollisionCheck(wid, skid, enable)
skeleton__setSelfCollisionCheck = _pydart2_api.skeleton__setSelfCollisionCheck

def skeleton__getAdjacentBodyCheck(wid: 'int', skid: 'int') -> "bool":
    return _pydart2_api.skeleton__getAdjacentBodyCheck(wid, skid)
skeleton__getAdjacentBodyCheck = _pydart2_api.skeleton__getAdjacentBodyCheck

def skeleton__setAdjacentBodyCheck(wid: 'int', skid: 'int', enable: 'int') -> "void":
    return _pydart2_api.skeleton__setAdjacentBodyCheck(wid, skid, enable)
skeleton__setAdjacentBodyCheck = _pydart2_api.skeleton__setAdjacentBodyCheck

def skeleton__setRootJointToTransAndEuler(wid: 'int', skid: 'int') -> "void":
    return _pydart2_api.skeleton__setRootJointToTransAndEuler(wid, skid)
skeleton__setRootJointToTransAndEuler = _pydart2_api.skeleton__setRootJointToTransAndEuler

def skeleton__setRootJointToWeld(wid: 'int', skid: 'int') -> "void":
    return _pydart2_api.skeleton__setRootJointToWeld(wid, skid)
skeleton__setRootJointToWeld = _pydart2_api.skeleton__setRootJointToWeld

def skeleton__getNumBodyNodes(wid: 'int', skid: 'int') -> "int":
    return _pydart2_api.skeleton__getNumBodyNodes(wid, skid)
skeleton__getNumBodyNodes = _pydart2_api.skeleton__getNumBodyNodes

def skeleton__getNumJoints(wid: 'int', skid: 'int') -> "int":
    return _pydart2_api.skeleton__getNumJoints(wid, skid)
skeleton__getNumJoints = _pydart2_api.skeleton__getNumJoints

def skeleton__getNumDofs(wid: 'int', skid: 'int') -> "int":
    return _pydart2_api.skeleton__getNumDofs(wid, skid)
skeleton__getNumDofs = _pydart2_api.skeleton__getNumDofs

def skeleton__getNumMarkers(wid: 'int', skid: 'int') -> "int":
    return _pydart2_api.skeleton__getNumMarkers(wid, skid)
skeleton__getNumMarkers = _pydart2_api.skeleton__getNumMarkers

def skeleton__getPositions(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getPositions(wid, skid, outv)
skeleton__getPositions = _pydart2_api.skeleton__getPositions

def skeleton__setPositions(wid: 'int', skid: 'int', inv: 'double *') -> "void":
    return _pydart2_api.skeleton__setPositions(wid, skid, inv)
skeleton__setPositions = _pydart2_api.skeleton__setPositions

def skeleton__getVelocities(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getVelocities(wid, skid, outv)
skeleton__getVelocities = _pydart2_api.skeleton__getVelocities

def skeleton__setVelocities(wid: 'int', skid: 'int', inv: 'double *') -> "void":
    return _pydart2_api.skeleton__setVelocities(wid, skid, inv)
skeleton__setVelocities = _pydart2_api.skeleton__setVelocities

def skeleton__getAccelerations(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getAccelerations(wid, skid, outv)
skeleton__getAccelerations = _pydart2_api.skeleton__getAccelerations

def skeleton__setForces(wid: 'int', skid: 'int', inv: 'double *') -> "void":
    return _pydart2_api.skeleton__setForces(wid, skid, inv)
skeleton__setForces = _pydart2_api.skeleton__setForces

def skeleton__getPositionDifferences(wid: 'int', skid: 'int', inv1: 'double *', inv2: 'double *', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getPositionDifferences(wid, skid, inv1, inv2, outv)
skeleton__getPositionDifferences = _pydart2_api.skeleton__getPositionDifferences

def skeleton__getVelocityDifferences(wid: 'int', skid: 'int', inv1: 'double *', inv2: 'double *', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getVelocityDifferences(wid, skid, inv1, inv2, outv)
skeleton__getVelocityDifferences = _pydart2_api.skeleton__getVelocityDifferences

def skeleton__getPositionLowerLimits(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getPositionLowerLimits(wid, skid, outv)
skeleton__getPositionLowerLimits = _pydart2_api.skeleton__getPositionLowerLimits

def skeleton__getPositionUpperLimits(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getPositionUpperLimits(wid, skid, outv)
skeleton__getPositionUpperLimits = _pydart2_api.skeleton__getPositionUpperLimits

def skeleton__getForceLowerLimits(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getForceLowerLimits(wid, skid, outv)
skeleton__getForceLowerLimits = _pydart2_api.skeleton__getForceLowerLimits

def skeleton__getForceUpperLimits(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getForceUpperLimits(wid, skid, outv)
skeleton__getForceUpperLimits = _pydart2_api.skeleton__getForceUpperLimits

def skeleton__getCOM(wid: 'int', skid: 'int') -> "double [3]":
    return _pydart2_api.skeleton__getCOM(wid, skid)
skeleton__getCOM = _pydart2_api.skeleton__getCOM

def skeleton__getCOMLinearVelocity(wid: 'int', skid: 'int') -> "double [3]":
    return _pydart2_api.skeleton__getCOMLinearVelocity(wid, skid)
skeleton__getCOMLinearVelocity = _pydart2_api.skeleton__getCOMLinearVelocity

def skeleton__getCOMLinearAcceleration(wid: 'int', skid: 'int') -> "double [3]":
    return _pydart2_api.skeleton__getCOMLinearAcceleration(wid, skid)
skeleton__getCOMLinearAcceleration = _pydart2_api.skeleton__getCOMLinearAcceleration

def skeleton__getMassMatrix(wid: 'int', skid: 'int', outm: 'double *') -> "void":
    return _pydart2_api.skeleton__getMassMatrix(wid, skid, outm)
skeleton__getMassMatrix = _pydart2_api.skeleton__getMassMatrix

def skeleton__getCoriolisAndGravityForces(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getCoriolisAndGravityForces(wid, skid, outv)
skeleton__getCoriolisAndGravityForces = _pydart2_api.skeleton__getCoriolisAndGravityForces

def skeleton__getConstraintForces(wid: 'int', skid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.skeleton__getConstraintForces(wid, skid, outv)
skeleton__getConstraintForces = _pydart2_api.skeleton__getConstraintForces

def bodynode__getName(wid: 'int', skid: 'int', bid: 'int') -> "char const *":
    return _pydart2_api.bodynode__getName(wid, skid, bid)
bodynode__getName = _pydart2_api.bodynode__getName

def bodynode__getParentBodyNode(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getParentBodyNode(wid, skid, bid)
bodynode__getParentBodyNode = _pydart2_api.bodynode__getParentBodyNode

def bodynode__getNumChildBodyNodes(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getNumChildBodyNodes(wid, skid, bid)
bodynode__getNumChildBodyNodes = _pydart2_api.bodynode__getNumChildBodyNodes

def bodynode__getChildBodyNode(wid: 'int', skid: 'int', bid: 'int', _index: 'int') -> "int":
    return _pydart2_api.bodynode__getChildBodyNode(wid, skid, bid, _index)
bodynode__getChildBodyNode = _pydart2_api.bodynode__getChildBodyNode

def bodynode__getParentJoint(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getParentJoint(wid, skid, bid)
bodynode__getParentJoint = _pydart2_api.bodynode__getParentJoint

def bodynode__getNumChildJoints(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getNumChildJoints(wid, skid, bid)
bodynode__getNumChildJoints = _pydart2_api.bodynode__getNumChildJoints

def bodynode__getChildJoint(wid: 'int', skid: 'int', bid: 'int', _index: 'int') -> "int":
    return _pydart2_api.bodynode__getChildJoint(wid, skid, bid, _index)
bodynode__getChildJoint = _pydart2_api.bodynode__getChildJoint

def bodynode__getNumDependentDofs(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getNumDependentDofs(wid, skid, bid)
bodynode__getNumDependentDofs = _pydart2_api.bodynode__getNumDependentDofs

def bodynode__getDependentDof(wid: 'int', skid: 'int', bid: 'int', _index: 'int') -> "int":
    return _pydart2_api.bodynode__getDependentDof(wid, skid, bid, _index)
bodynode__getDependentDof = _pydart2_api.bodynode__getDependentDof

def bodynode__getNumShapeNodes(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getNumShapeNodes(wid, skid, bid)
bodynode__getNumShapeNodes = _pydart2_api.bodynode__getNumShapeNodes

def bodynode__getIndexInSkeleton(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getIndexInSkeleton(wid, skid, bid)
bodynode__getIndexInSkeleton = _pydart2_api.bodynode__getIndexInSkeleton

def bodynode__getIndexInTree(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getIndexInTree(wid, skid, bid)
bodynode__getIndexInTree = _pydart2_api.bodynode__getIndexInTree

def bodynode__getTreeIndex(wid: 'int', skid: 'int', bid: 'int') -> "int":
    return _pydart2_api.bodynode__getTreeIndex(wid, skid, bid)
bodynode__getTreeIndex = _pydart2_api.bodynode__getTreeIndex

def bodynode__setGravityMode(wid: 'int', skid: 'int', bid: 'int', _gravityMode: 'bool') -> "void":
    return _pydart2_api.bodynode__setGravityMode(wid, skid, bid, _gravityMode)
bodynode__setGravityMode = _pydart2_api.bodynode__setGravityMode

def bodynode__getGravityMode(wid: 'int', skid: 'int', bid: 'int') -> "bool":
    return _pydart2_api.bodynode__getGravityMode(wid, skid, bid)
bodynode__getGravityMode = _pydart2_api.bodynode__getGravityMode

def bodynode__isCollidable(wid: 'int', skid: 'int', bid: 'int') -> "bool":
    return _pydart2_api.bodynode__isCollidable(wid, skid, bid)
bodynode__isCollidable = _pydart2_api.bodynode__isCollidable

def bodynode__setCollidable(wid: 'int', skid: 'int', bid: 'int', _isCollidable: 'bool') -> "void":
    return _pydart2_api.bodynode__setCollidable(wid, skid, bid, _isCollidable)
bodynode__setCollidable = _pydart2_api.bodynode__setCollidable

def bodynode__getMass(wid: 'int', skid: 'int', bid: 'int') -> "double":
    return _pydart2_api.bodynode__getMass(wid, skid, bid)
bodynode__getMass = _pydart2_api.bodynode__getMass

def bodynode__setMass(wid: 'int', skid: 'int', bid: 'int', mass: 'double') -> "void":
    return _pydart2_api.bodynode__setMass(wid, skid, bid, mass)
bodynode__setMass = _pydart2_api.bodynode__setMass

def bodynode__getInertia(wid: 'int', skid: 'int', bid: 'int') -> "double [3][3]":
    return _pydart2_api.bodynode__getInertia(wid, skid, bid)
bodynode__getInertia = _pydart2_api.bodynode__getInertia

def bodynode__setInertia(wid: 'int', skid: 'int', bid: 'int', inv33: 'double [3][3]') -> "void":
    return _pydart2_api.bodynode__setInertia(wid, skid, bid, inv33)
bodynode__setInertia = _pydart2_api.bodynode__setInertia

def bodynode__getLocalCOM(wid: 'int', skid: 'int', bid: 'int') -> "double [3]":
    return _pydart2_api.bodynode__getLocalCOM(wid, skid, bid)
bodynode__getLocalCOM = _pydart2_api.bodynode__getLocalCOM

def bodynode__getCOM(wid: 'int', skid: 'int', bid: 'int') -> "double [3]":
    return _pydart2_api.bodynode__getCOM(wid, skid, bid)
bodynode__getCOM = _pydart2_api.bodynode__getCOM

def bodynode__getCOMLinearVelocity(wid: 'int', skid: 'int', bid: 'int') -> "double [3]":
    return _pydart2_api.bodynode__getCOMLinearVelocity(wid, skid, bid)
bodynode__getCOMLinearVelocity = _pydart2_api.bodynode__getCOMLinearVelocity

def bodynode__getCOMSpatialVelocity(wid: 'int', skid: 'int', bid: 'int') -> "double [6]":
    return _pydart2_api.bodynode__getCOMSpatialVelocity(wid, skid, bid)
bodynode__getCOMSpatialVelocity = _pydart2_api.bodynode__getCOMSpatialVelocity

def bodynode__getCOMLinearAcceleration(wid: 'int', skid: 'int', bid: 'int') -> "double [3]":
    return _pydart2_api.bodynode__getCOMLinearAcceleration(wid, skid, bid)
bodynode__getCOMLinearAcceleration = _pydart2_api.bodynode__getCOMLinearAcceleration

def bodynode__getCOMSpatialAcceleration(wid: 'int', skid: 'int', bid: 'int') -> "double [6]":
    return _pydart2_api.bodynode__getCOMSpatialAcceleration(wid, skid, bid)
bodynode__getCOMSpatialAcceleration = _pydart2_api.bodynode__getCOMSpatialAcceleration

def bodynode__setFrictionCoeff(wid: 'int', skid: 'int', bid: 'int', _coeff: 'double') -> "void":
    return _pydart2_api.bodynode__setFrictionCoeff(wid, skid, bid, _coeff)
bodynode__setFrictionCoeff = _pydart2_api.bodynode__setFrictionCoeff

def bodynode__getFrictionCoeff(wid: 'int', skid: 'int', bid: 'int') -> "double":
    return _pydart2_api.bodynode__getFrictionCoeff(wid, skid, bid)
bodynode__getFrictionCoeff = _pydart2_api.bodynode__getFrictionCoeff

def bodynode__setRestitutionCoeff(wid: 'int', skid: 'int', bid: 'int', _coeff: 'double') -> "void":
    return _pydart2_api.bodynode__setRestitutionCoeff(wid, skid, bid, _coeff)
bodynode__setRestitutionCoeff = _pydart2_api.bodynode__setRestitutionCoeff

def bodynode__getRestitutionCoeff(wid: 'int', skid: 'int', bid: 'int') -> "double":
    return _pydart2_api.bodynode__getRestitutionCoeff(wid, skid, bid)
bodynode__getRestitutionCoeff = _pydart2_api.bodynode__getRestitutionCoeff

def bodynode__getTransform(wid: 'int', skid: 'int', bid: 'int') -> "double [4][4]":
    return _pydart2_api.bodynode__getTransform(wid, skid, bid)
bodynode__getTransform = _pydart2_api.bodynode__getTransform

def bodynode__getWorldTransform(wid: 'int', skid: 'int', bid: 'int') -> "double [4][4]":
    return _pydart2_api.bodynode__getWorldTransform(wid, skid, bid)
bodynode__getWorldTransform = _pydart2_api.bodynode__getWorldTransform

def bodynode__getRelativeTransform(wid: 'int', skid: 'int', bid: 'int') -> "double [4][4]":
    return _pydart2_api.bodynode__getRelativeTransform(wid, skid, bid)
bodynode__getRelativeTransform = _pydart2_api.bodynode__getRelativeTransform

def bodynode__addExtForce(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', inv3_2: 'double [3]', _isForceLocal: 'bool', _isOffsetLocal: 'bool') -> "void":
    return _pydart2_api.bodynode__addExtForce(wid, skid, bid, inv3, inv3_2, _isForceLocal, _isOffsetLocal)
bodynode__addExtForce = _pydart2_api.bodynode__addExtForce

def bodynode__setExtForce(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', inv3_2: 'double [3]', _isForceLocal: 'bool', _isOffsetLocal: 'bool') -> "void":
    return _pydart2_api.bodynode__setExtForce(wid, skid, bid, inv3, inv3_2, _isForceLocal, _isOffsetLocal)
bodynode__setExtForce = _pydart2_api.bodynode__setExtForce

def bodynode__addExtTorque(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', _isLocal: 'bool') -> "void":
    return _pydart2_api.bodynode__addExtTorque(wid, skid, bid, inv3, _isLocal)
bodynode__addExtTorque = _pydart2_api.bodynode__addExtTorque

def bodynode__setExtTorque(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', _isLocal: 'bool') -> "void":
    return _pydart2_api.bodynode__setExtTorque(wid, skid, bid, inv3, _isLocal)
bodynode__setExtTorque = _pydart2_api.bodynode__setExtTorque

def bodynode__getJacobian(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getJacobian(wid, skid, bid, inv3, outm)
bodynode__getJacobian = _pydart2_api.bodynode__getJacobian

def bodynode__getLinearJacobian(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getLinearJacobian(wid, skid, bid, inv3, outm)
bodynode__getLinearJacobian = _pydart2_api.bodynode__getLinearJacobian

def bodynode__getAngularJacobian(wid: 'int', skid: 'int', bid: 'int', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getAngularJacobian(wid, skid, bid, outm)
bodynode__getAngularJacobian = _pydart2_api.bodynode__getAngularJacobian

def bodynode__getWorldJacobian(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getWorldJacobian(wid, skid, bid, inv3, outm)
bodynode__getWorldJacobian = _pydart2_api.bodynode__getWorldJacobian

def bodynode__getLinearJacobianDeriv(wid: 'int', skid: 'int', bid: 'int', inv3: 'double [3]', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getLinearJacobianDeriv(wid, skid, bid, inv3, outm)
bodynode__getLinearJacobianDeriv = _pydart2_api.bodynode__getLinearJacobianDeriv

def bodynode__getAngularJacobianDeriv(wid: 'int', skid: 'int', bid: 'int', outm: 'double *') -> "void":
    return _pydart2_api.bodynode__getAngularJacobianDeriv(wid, skid, bid, outm)
bodynode__getAngularJacobianDeriv = _pydart2_api.bodynode__getAngularJacobianDeriv

def dof__getName(wid: 'int', skid: 'int', dofid: 'int') -> "char const *":
    return _pydart2_api.dof__getName(wid, skid, dofid)
dof__getName = _pydart2_api.dof__getName

def dof__getIndexInSkeleton(wid: 'int', skid: 'int', dofid: 'int') -> "int":
    return _pydart2_api.dof__getIndexInSkeleton(wid, skid, dofid)
dof__getIndexInSkeleton = _pydart2_api.dof__getIndexInSkeleton

def dof__getIndexInTree(wid: 'int', skid: 'int', dofid: 'int') -> "int":
    return _pydart2_api.dof__getIndexInTree(wid, skid, dofid)
dof__getIndexInTree = _pydart2_api.dof__getIndexInTree

def dof__getIndexInJoint(wid: 'int', skid: 'int', dofid: 'int') -> "int":
    return _pydart2_api.dof__getIndexInJoint(wid, skid, dofid)
dof__getIndexInJoint = _pydart2_api.dof__getIndexInJoint

def dof__getTreeIndex(wid: 'int', skid: 'int', dofid: 'int') -> "int":
    return _pydart2_api.dof__getTreeIndex(wid, skid, dofid)
dof__getTreeIndex = _pydart2_api.dof__getTreeIndex

def dof__getPosition(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getPosition(wid, skid, dofid)
dof__getPosition = _pydart2_api.dof__getPosition

def dof__setPosition(wid: 'int', skid: 'int', dofid: 'int', _position: 'double') -> "void":
    return _pydart2_api.dof__setPosition(wid, skid, dofid, _position)
dof__setPosition = _pydart2_api.dof__setPosition

def dof__getInitialPosition(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getInitialPosition(wid, skid, dofid)
dof__getInitialPosition = _pydart2_api.dof__getInitialPosition

def dof__setInitialPosition(wid: 'int', skid: 'int', dofid: 'int', _initial: 'double') -> "void":
    return _pydart2_api.dof__setInitialPosition(wid, skid, dofid, _initial)
dof__setInitialPosition = _pydart2_api.dof__setInitialPosition

def dof__hasPositionLimit(wid: 'int', skid: 'int', dofid: 'int') -> "bool":
    return _pydart2_api.dof__hasPositionLimit(wid, skid, dofid)
dof__hasPositionLimit = _pydart2_api.dof__hasPositionLimit

def dof__getPositionLowerLimit(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getPositionLowerLimit(wid, skid, dofid)
dof__getPositionLowerLimit = _pydart2_api.dof__getPositionLowerLimit

def dof__setPositionLowerLimit(wid: 'int', skid: 'int', dofid: 'int', _limit: 'double') -> "void":
    return _pydart2_api.dof__setPositionLowerLimit(wid, skid, dofid, _limit)
dof__setPositionLowerLimit = _pydart2_api.dof__setPositionLowerLimit

def dof__getPositionUpperLimit(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getPositionUpperLimit(wid, skid, dofid)
dof__getPositionUpperLimit = _pydart2_api.dof__getPositionUpperLimit

def dof__setPositionUpperLimit(wid: 'int', skid: 'int', dofid: 'int', _limit: 'double') -> "void":
    return _pydart2_api.dof__setPositionUpperLimit(wid, skid, dofid, _limit)
dof__setPositionUpperLimit = _pydart2_api.dof__setPositionUpperLimit

def dof__getVelocity(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getVelocity(wid, skid, dofid)
dof__getVelocity = _pydart2_api.dof__getVelocity

def dof__setVelocity(wid: 'int', skid: 'int', dofid: 'int', _velocity: 'double') -> "void":
    return _pydart2_api.dof__setVelocity(wid, skid, dofid, _velocity)
dof__setVelocity = _pydart2_api.dof__setVelocity

def dof__getInitialVelocity(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getInitialVelocity(wid, skid, dofid)
dof__getInitialVelocity = _pydart2_api.dof__getInitialVelocity

def dof__setInitialVelocity(wid: 'int', skid: 'int', dofid: 'int', _initial: 'double') -> "void":
    return _pydart2_api.dof__setInitialVelocity(wid, skid, dofid, _initial)
dof__setInitialVelocity = _pydart2_api.dof__setInitialVelocity

def dof__getVelocityLowerLimit(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getVelocityLowerLimit(wid, skid, dofid)
dof__getVelocityLowerLimit = _pydart2_api.dof__getVelocityLowerLimit

def dof__setVelocityLowerLimit(wid: 'int', skid: 'int', dofid: 'int', _limit: 'double') -> "void":
    return _pydart2_api.dof__setVelocityLowerLimit(wid, skid, dofid, _limit)
dof__setVelocityLowerLimit = _pydart2_api.dof__setVelocityLowerLimit

def dof__getVelocityUpperLimit(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getVelocityUpperLimit(wid, skid, dofid)
dof__getVelocityUpperLimit = _pydart2_api.dof__getVelocityUpperLimit

def dof__setVelocityUpperLimit(wid: 'int', skid: 'int', dofid: 'int', _limit: 'double') -> "void":
    return _pydart2_api.dof__setVelocityUpperLimit(wid, skid, dofid, _limit)
dof__setVelocityUpperLimit = _pydart2_api.dof__setVelocityUpperLimit

def dof__getSpringStiffness(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getSpringStiffness(wid, skid, dofid)
dof__getSpringStiffness = _pydart2_api.dof__getSpringStiffness

def dof__setSpringStiffness(wid: 'int', skid: 'int', dofid: 'int', _k: 'double') -> "void":
    return _pydart2_api.dof__setSpringStiffness(wid, skid, dofid, _k)
dof__setSpringStiffness = _pydart2_api.dof__setSpringStiffness

def dof__getRestPosition(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getRestPosition(wid, skid, dofid)
dof__getRestPosition = _pydart2_api.dof__getRestPosition

def dof__setRestPosition(wid: 'int', skid: 'int', dofid: 'int', _q0: 'double') -> "void":
    return _pydart2_api.dof__setRestPosition(wid, skid, dofid, _q0)
dof__setRestPosition = _pydart2_api.dof__setRestPosition

def dof__getDampingCoefficient(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getDampingCoefficient(wid, skid, dofid)
dof__getDampingCoefficient = _pydart2_api.dof__getDampingCoefficient

def dof__setDampingCoefficient(wid: 'int', skid: 'int', dofid: 'int', _coeff: 'double') -> "void":
    return _pydart2_api.dof__setDampingCoefficient(wid, skid, dofid, _coeff)
dof__setDampingCoefficient = _pydart2_api.dof__setDampingCoefficient

def dof__getCoulombFriction(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getCoulombFriction(wid, skid, dofid)
dof__getCoulombFriction = _pydart2_api.dof__getCoulombFriction

def dof__setCoulombFriction(wid: 'int', skid: 'int', dofid: 'int', _friction: 'double') -> "void":
    return _pydart2_api.dof__setCoulombFriction(wid, skid, dofid, _friction)
dof__setCoulombFriction = _pydart2_api.dof__setCoulombFriction

def dof__getConstraintImpulse(wid: 'int', skid: 'int', dofid: 'int') -> "double":
    return _pydart2_api.dof__getConstraintImpulse(wid, skid, dofid)
dof__getConstraintImpulse = _pydart2_api.dof__getConstraintImpulse

def dof__setConstraintImpulse(wid: 'int', skid: 'int', dofid: 'int', _impulse: 'double') -> "void":
    return _pydart2_api.dof__setConstraintImpulse(wid, skid, dofid, _impulse)
dof__setConstraintImpulse = _pydart2_api.dof__setConstraintImpulse

def joint__getName(wid: 'int', skid: 'int', jid: 'int') -> "char const *":
    return _pydart2_api.joint__getName(wid, skid, jid)
joint__getName = _pydart2_api.joint__getName

def joint__setName(wid: 'int', skid: 'int', jid: 'int', _name: 'char const *', _renameDofs: 'bool') -> "char const *":
    return _pydart2_api.joint__setName(wid, skid, jid, _name, _renameDofs)
joint__setName = _pydart2_api.joint__setName

def joint__isKinematic(wid: 'int', skid: 'int', jid: 'int') -> "bool":
    return _pydart2_api.joint__isKinematic(wid, skid, jid)
joint__isKinematic = _pydart2_api.joint__isKinematic

def joint__isDynamic(wid: 'int', skid: 'int', jid: 'int') -> "bool":
    return _pydart2_api.joint__isDynamic(wid, skid, jid)
joint__isDynamic = _pydart2_api.joint__isDynamic

def joint__getType(wid: 'int', skid: 'int', jid: 'int') -> "char const *":
    return _pydart2_api.joint__getType(wid, skid, jid)
joint__getType = _pydart2_api.joint__getType

def joint__setActuatorType(wid: 'int', skid: 'int', jid: 'int', actuator_type: 'int') -> "void":
    return _pydart2_api.joint__setActuatorType(wid, skid, jid, actuator_type)
joint__setActuatorType = _pydart2_api.joint__setActuatorType

def joint__getActuatorType(wid: 'int', skid: 'int', jid: 'int') -> "int":
    return _pydart2_api.joint__getActuatorType(wid, skid, jid)
joint__getActuatorType = _pydart2_api.joint__getActuatorType

def joint__getParentBodyNode(wid: 'int', skid: 'int', jid: 'int') -> "int":
    return _pydart2_api.joint__getParentBodyNode(wid, skid, jid)
joint__getParentBodyNode = _pydart2_api.joint__getParentBodyNode

def joint__getChildBodyNode(wid: 'int', skid: 'int', jid: 'int') -> "int":
    return _pydart2_api.joint__getChildBodyNode(wid, skid, jid)
joint__getChildBodyNode = _pydart2_api.joint__getChildBodyNode

def joint__setTransformFromParentBodyNode(wid: 'int', skid: 'int', jid: 'int', inv44: 'double [4][4]') -> "void":
    return _pydart2_api.joint__setTransformFromParentBodyNode(wid, skid, jid, inv44)
joint__setTransformFromParentBodyNode = _pydart2_api.joint__setTransformFromParentBodyNode

def joint__setTransformFromChildBodyNode(wid: 'int', skid: 'int', jid: 'int', inv44: 'double [4][4]') -> "void":
    return _pydart2_api.joint__setTransformFromChildBodyNode(wid, skid, jid, inv44)
joint__setTransformFromChildBodyNode = _pydart2_api.joint__setTransformFromChildBodyNode

def joint__getTransformFromParentBodyNode(wid: 'int', skid: 'int', jid: 'int') -> "double [4][4]":
    return _pydart2_api.joint__getTransformFromParentBodyNode(wid, skid, jid)
joint__getTransformFromParentBodyNode = _pydart2_api.joint__getTransformFromParentBodyNode

def joint__getTransformFromChildBodyNode(wid: 'int', skid: 'int', jid: 'int') -> "double [4][4]":
    return _pydart2_api.joint__getTransformFromChildBodyNode(wid, skid, jid)
joint__getTransformFromChildBodyNode = _pydart2_api.joint__getTransformFromChildBodyNode

def joint__setPositionLimitEnforced(wid: 'int', skid: 'int', jid: 'int', _isPositionLimitEnforced: 'bool') -> "void":
    return _pydart2_api.joint__setPositionLimitEnforced(wid, skid, jid, _isPositionLimitEnforced)
joint__setPositionLimitEnforced = _pydart2_api.joint__setPositionLimitEnforced

def joint__isPositionLimitEnforced(wid: 'int', skid: 'int', jid: 'int') -> "bool":
    return _pydart2_api.joint__isPositionLimitEnforced(wid, skid, jid)
joint__isPositionLimitEnforced = _pydart2_api.joint__isPositionLimitEnforced

def joint__hasPositionLimit(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "bool":
    return _pydart2_api.joint__hasPositionLimit(wid, skid, jid, _index)
joint__hasPositionLimit = _pydart2_api.joint__hasPositionLimit

def joint__getPositionLowerLimit(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getPositionLowerLimit(wid, skid, jid, _index)
joint__getPositionLowerLimit = _pydart2_api.joint__getPositionLowerLimit

def joint__setPositionLowerLimit(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _position: 'double') -> "void":
    return _pydart2_api.joint__setPositionLowerLimit(wid, skid, jid, _index, _position)
joint__setPositionLowerLimit = _pydart2_api.joint__setPositionLowerLimit

def joint__getPositionUpperLimit(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getPositionUpperLimit(wid, skid, jid, _index)
joint__getPositionUpperLimit = _pydart2_api.joint__getPositionUpperLimit

def joint__setPositionUpperLimit(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _position: 'double') -> "void":
    return _pydart2_api.joint__setPositionUpperLimit(wid, skid, jid, _index, _position)
joint__setPositionUpperLimit = _pydart2_api.joint__setPositionUpperLimit

def joint__getDof(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "int":
    return _pydart2_api.joint__getDof(wid, skid, jid, _index)
joint__getDof = _pydart2_api.joint__getDof

def joint__getNumDofs(wid: 'int', skid: 'int', jid: 'int') -> "int":
    return _pydart2_api.joint__getNumDofs(wid, skid, jid)
joint__getNumDofs = _pydart2_api.joint__getNumDofs

def joint__getSpringStiffness(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getSpringStiffness(wid, skid, jid, _index)
joint__getSpringStiffness = _pydart2_api.joint__getSpringStiffness

def joint__setSpringStiffness(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _k: 'double') -> "void":
    return _pydart2_api.joint__setSpringStiffness(wid, skid, jid, _index, _k)
joint__setSpringStiffness = _pydart2_api.joint__setSpringStiffness

def joint__getRestPosition(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getRestPosition(wid, skid, jid, _index)
joint__getRestPosition = _pydart2_api.joint__getRestPosition

def joint__setRestPosition(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _q0: 'double') -> "void":
    return _pydart2_api.joint__setRestPosition(wid, skid, jid, _index, _q0)
joint__setRestPosition = _pydart2_api.joint__setRestPosition

def joint__getDampingCoefficient(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getDampingCoefficient(wid, skid, jid, _index)
joint__getDampingCoefficient = _pydart2_api.joint__getDampingCoefficient

def joint__setDampingCoefficient(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _coeff: 'double') -> "void":
    return _pydart2_api.joint__setDampingCoefficient(wid, skid, jid, _index, _coeff)
joint__setDampingCoefficient = _pydart2_api.joint__setDampingCoefficient

def joint__getCoulombFriction(wid: 'int', skid: 'int', jid: 'int', _index: 'int') -> "double":
    return _pydart2_api.joint__getCoulombFriction(wid, skid, jid, _index)
joint__getCoulombFriction = _pydart2_api.joint__getCoulombFriction

def joint__setCoulombFriction(wid: 'int', skid: 'int', jid: 'int', _index: 'int', _friction: 'double') -> "void":
    return _pydart2_api.joint__setCoulombFriction(wid, skid, jid, _index, _friction)
joint__setCoulombFriction = _pydart2_api.joint__setCoulombFriction

def revolute_joint__getAxis(wid: 'int', skid: 'int', jid: 'int') -> "double [3]":
    return _pydart2_api.revolute_joint__getAxis(wid, skid, jid)
revolute_joint__getAxis = _pydart2_api.revolute_joint__getAxis

def revolute_joint__setAxis(wid: 'int', skid: 'int', jid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.revolute_joint__setAxis(wid, skid, jid, inv3)
revolute_joint__setAxis = _pydart2_api.revolute_joint__setAxis

def prismatic_joint__getAxis(wid: 'int', skid: 'int', jid: 'int') -> "double [3]":
    return _pydart2_api.prismatic_joint__getAxis(wid, skid, jid)
prismatic_joint__getAxis = _pydart2_api.prismatic_joint__getAxis

def prismatic_joint__setAxis(wid: 'int', skid: 'int', jid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.prismatic_joint__setAxis(wid, skid, jid, inv3)
prismatic_joint__setAxis = _pydart2_api.prismatic_joint__setAxis

def universal_joint__getAxis1(wid: 'int', skid: 'int', jid: 'int') -> "double [3]":
    return _pydart2_api.universal_joint__getAxis1(wid, skid, jid)
universal_joint__getAxis1 = _pydart2_api.universal_joint__getAxis1

def universal_joint__setAxis1(wid: 'int', skid: 'int', jid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.universal_joint__setAxis1(wid, skid, jid, inv3)
universal_joint__setAxis1 = _pydart2_api.universal_joint__setAxis1

def universal_joint__getAxis2(wid: 'int', skid: 'int', jid: 'int') -> "double [3]":
    return _pydart2_api.universal_joint__getAxis2(wid, skid, jid)
universal_joint__getAxis2 = _pydart2_api.universal_joint__getAxis2

def universal_joint__setAxis2(wid: 'int', skid: 'int', jid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.universal_joint__setAxis2(wid, skid, jid, inv3)
universal_joint__setAxis2 = _pydart2_api.universal_joint__setAxis2

def euler_joint__getAxisOrder(wid: 'int', skid: 'int', jid: 'int') -> "char const *":
    return _pydart2_api.euler_joint__getAxisOrder(wid, skid, jid)
euler_joint__getAxisOrder = _pydart2_api.euler_joint__getAxisOrder

def euler_joint__setAxisOrder(wid: 'int', skid: 'int', jid: 'int', axisorder: 'char const *') -> "void":
    return _pydart2_api.euler_joint__setAxisOrder(wid, skid, jid, axisorder)
euler_joint__setAxisOrder = _pydart2_api.euler_joint__setAxisOrder

def shapenode__getOffset(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.shapenode__getOffset(wid, skid, bid, sid)
shapenode__getOffset = _pydart2_api.shapenode__getOffset

def shapenode__setOffset(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.shapenode__setOffset(wid, skid, bid, sid, inv3)
shapenode__setOffset = _pydart2_api.shapenode__setOffset

def shapenode__getRelativeTransform(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [4][4]":
    return _pydart2_api.shapenode__getRelativeTransform(wid, skid, bid, sid)
shapenode__getRelativeTransform = _pydart2_api.shapenode__getRelativeTransform

def shapenode__setRelativeTransform(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv44: 'double [4][4]') -> "void":
    return _pydart2_api.shapenode__setRelativeTransform(wid, skid, bid, sid, inv44)
shapenode__setRelativeTransform = _pydart2_api.shapenode__setRelativeTransform

def shapenode__hasVisualAspect(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "bool":
    return _pydart2_api.shapenode__hasVisualAspect(wid, skid, bid, sid)
shapenode__hasVisualAspect = _pydart2_api.shapenode__hasVisualAspect

def shapenode__hasCollisionAspect(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "bool":
    return _pydart2_api.shapenode__hasCollisionAspect(wid, skid, bid, sid)
shapenode__hasCollisionAspect = _pydart2_api.shapenode__hasCollisionAspect

def shapenode__getVisualAspectRGBA(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [4]":
    return _pydart2_api.shapenode__getVisualAspectRGBA(wid, skid, bid, sid)
shapenode__getVisualAspectRGBA = _pydart2_api.shapenode__getVisualAspectRGBA

def shapenode__setVisualAspectRGBA(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv4: 'double [4]') -> "void":
    return _pydart2_api.shapenode__setVisualAspectRGBA(wid, skid, bid, sid, inv4)
shapenode__setVisualAspectRGBA = _pydart2_api.shapenode__setVisualAspectRGBA

def shape__getVolume(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.shape__getVolume(wid, skid, bid, sid)
shape__getVolume = _pydart2_api.shape__getVolume

def shape__getType(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "char const *":
    return _pydart2_api.shape__getType(wid, skid, bid, sid)
shape__getType = _pydart2_api.shape__getType

def shape__getTypeID(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "int":
    return _pydart2_api.shape__getTypeID(wid, skid, bid, sid)
shape__getTypeID = _pydart2_api.shape__getTypeID

def shape__render(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "void":
    return _pydart2_api.shape__render(wid, skid, bid, sid)
shape__render = _pydart2_api.shape__render

def shape__getBoundingBoxMin(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.shape__getBoundingBoxMin(wid, skid, bid, sid)
shape__getBoundingBoxMin = _pydart2_api.shape__getBoundingBoxMin

def shape__getBoundingBoxMax(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.shape__getBoundingBoxMax(wid, skid, bid, sid)
shape__getBoundingBoxMax = _pydart2_api.shape__getBoundingBoxMax

def sphere_shape__getRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.sphere_shape__getRadius(wid, skid, bid, sid)
sphere_shape__getRadius = _pydart2_api.sphere_shape__getRadius

def sphere_shape__setRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int', radius: 'double') -> "void":
    return _pydart2_api.sphere_shape__setRadius(wid, skid, bid, sid, radius)
sphere_shape__setRadius = _pydart2_api.sphere_shape__setRadius

def box_shape__getSize(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.box_shape__getSize(wid, skid, bid, sid)
box_shape__getSize = _pydart2_api.box_shape__getSize

def box_shape__setSize(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.box_shape__setSize(wid, skid, bid, sid, inv3)
box_shape__setSize = _pydart2_api.box_shape__setSize

def ellipsoid_shape__getSize(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.ellipsoid_shape__getSize(wid, skid, bid, sid)
ellipsoid_shape__getSize = _pydart2_api.ellipsoid_shape__getSize

def ellipsoid_shape__setSize(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.ellipsoid_shape__setSize(wid, skid, bid, sid, inv3)
ellipsoid_shape__setSize = _pydart2_api.ellipsoid_shape__setSize

def cylindershape__getRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.cylindershape__getRadius(wid, skid, bid, sid)
cylindershape__getRadius = _pydart2_api.cylindershape__getRadius

def cylindershape__setRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int', _radius: 'double') -> "void":
    return _pydart2_api.cylindershape__setRadius(wid, skid, bid, sid, _radius)
cylindershape__setRadius = _pydart2_api.cylindershape__setRadius

def cylindershape__getHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.cylindershape__getHeight(wid, skid, bid, sid)
cylindershape__getHeight = _pydart2_api.cylindershape__getHeight

def cylindershape__setHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int', _height: 'double') -> "void":
    return _pydart2_api.cylindershape__setHeight(wid, skid, bid, sid, _height)
cylindershape__setHeight = _pydart2_api.cylindershape__setHeight

def capsuleshape__getRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.capsuleshape__getRadius(wid, skid, bid, sid)
capsuleshape__getRadius = _pydart2_api.capsuleshape__getRadius

def capsuleshape__setRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int', radius: 'double') -> "void":
    return _pydart2_api.capsuleshape__setRadius(wid, skid, bid, sid, radius)
capsuleshape__setRadius = _pydart2_api.capsuleshape__setRadius

def capsuleshape__getHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.capsuleshape__getHeight(wid, skid, bid, sid)
capsuleshape__getHeight = _pydart2_api.capsuleshape__getHeight

def capsuleshape__setHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int', height: 'double') -> "void":
    return _pydart2_api.capsuleshape__setHeight(wid, skid, bid, sid, height)
capsuleshape__setHeight = _pydart2_api.capsuleshape__setHeight

def coneshape__getRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.coneshape__getRadius(wid, skid, bid, sid)
coneshape__getRadius = _pydart2_api.coneshape__getRadius

def coneshape__setRadius(wid: 'int', skid: 'int', bid: 'int', sid: 'int', radius: 'double') -> "void":
    return _pydart2_api.coneshape__setRadius(wid, skid, bid, sid, radius)
coneshape__setRadius = _pydart2_api.coneshape__setRadius

def coneshape__getHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.coneshape__getHeight(wid, skid, bid, sid)
coneshape__getHeight = _pydart2_api.coneshape__getHeight

def coneshape__setHeight(wid: 'int', skid: 'int', bid: 'int', sid: 'int', height: 'double') -> "void":
    return _pydart2_api.coneshape__setHeight(wid, skid, bid, sid, height)
coneshape__setHeight = _pydart2_api.coneshape__setHeight

def planeshape__getNormal(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.planeshape__getNormal(wid, skid, bid, sid)
planeshape__getNormal = _pydart2_api.planeshape__getNormal

def planeshape__setNormal(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv3: 'double [3]') -> "void":
    return _pydart2_api.planeshape__setNormal(wid, skid, bid, sid, inv3)
planeshape__setNormal = _pydart2_api.planeshape__setNormal

def planeshape__getOffset(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double":
    return _pydart2_api.planeshape__getOffset(wid, skid, bid, sid)
planeshape__getOffset = _pydart2_api.planeshape__getOffset

def planeshape__setOffset(wid: 'int', skid: 'int', bid: 'int', sid: 'int', _offset: 'double') -> "void":
    return _pydart2_api.planeshape__setOffset(wid, skid, bid, sid, _offset)
planeshape__setOffset = _pydart2_api.planeshape__setOffset

def multisphereshape__addSphere(wid: 'int', skid: 'int', bid: 'int', sid: 'int', inv4: 'double [4]') -> "void":
    return _pydart2_api.multisphereshape__addSphere(wid, skid, bid, sid, inv4)
multisphereshape__addSphere = _pydart2_api.multisphereshape__addSphere

def multisphereshape__getSpheres(wid: 'int', skid: 'int', bid: 'int', sid: 'int', outv: 'double *') -> "int":
    return _pydart2_api.multisphereshape__getSpheres(wid, skid, bid, sid, outv)
multisphereshape__getSpheres = _pydart2_api.multisphereshape__getSpheres

def multisphereshape__getNumSpheres(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "int":
    return _pydart2_api.multisphereshape__getNumSpheres(wid, skid, bid, sid)
multisphereshape__getNumSpheres = _pydart2_api.multisphereshape__getNumSpheres

def mesh_shape__getScale(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "double [3]":
    return _pydart2_api.mesh_shape__getScale(wid, skid, bid, sid)
mesh_shape__getScale = _pydart2_api.mesh_shape__getScale

def mesh_shape__getMeshPath(wid: 'int', skid: 'int', bid: 'int', sid: 'int') -> "char const *":
    return _pydart2_api.mesh_shape__getMeshPath(wid, skid, bid, sid)
mesh_shape__getMeshPath = _pydart2_api.mesh_shape__getMeshPath
# This file is compatible with both classic and new-style classes.


