| collision.h | | collision.h | |
| | | | |
| skipping to change at line 175 | | skipping to change at line 175 | |
| * @returns A pointer to the geom's position vector. | | * @returns A pointer to the geom's position vector. | |
| * @remarks The returned value is a pointer to the geom's internal | | * @remarks The returned value is a pointer to the geom's internal | |
| * data structure. It is valid until any changes are made | | * data structure. It is valid until any changes are made | |
| * to the geom. | | * to the geom. | |
| * @sa dBodyGetPosition | | * @sa dBodyGetPosition | |
| * @ingroup collide | | * @ingroup collide | |
| */ | | */ | |
| ODE_API const dReal * dGeomGetPosition (dGeomID geom); | | ODE_API const dReal * dGeomGetPosition (dGeomID geom); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Copy the position of a geom into a vector. | |
| | | * @ingroup collide | |
| | | * @param geom the geom to query | |
| | | * @param pos a copy of the geom position | |
| | | * @sa dGeomGetPosition | |
| | | */ | |
| | | ODE_API void dGeomCopyPosition (dGeomID geom, dVector3 pos); | |
| | | | |
| | | /** | |
| * @brief Get the rotation matrix of a placeable geom. | | * @brief Get the rotation matrix of a placeable geom. | |
| * | | * | |
| * If the geom is attached to a body, the body's rotation will be returned. | | * If the geom is attached to a body, the body's rotation will be returned. | |
| * | | * | |
| * Calling this function on a non-placeable geom results in a runtime error
in | | * Calling this function on a non-placeable geom results in a runtime error
in | |
| * the debug build of ODE. | | * the debug build of ODE. | |
| * | | * | |
| * @param geom the geom to query. | | * @param geom the geom to query. | |
| * @returns A pointer to the geom's rotation matrix. | | * @returns A pointer to the geom's rotation matrix. | |
| * @remarks The returned value is a pointer to the geom's internal | | * @remarks The returned value is a pointer to the geom's internal | |
| * data structure. It is valid until any changes are made | | * data structure. It is valid until any changes are made | |
| * to the geom. | | * to the geom. | |
| * @sa dBodyGetRotation | | * @sa dBodyGetRotation | |
| * @ingroup collide | | * @ingroup collide | |
| */ | | */ | |
| ODE_API const dReal * dGeomGetRotation (dGeomID geom); | | ODE_API const dReal * dGeomGetRotation (dGeomID geom); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Get the rotation matrix of a placeable geom. | |
| | | * | |
| | | * If the geom is attached to a body, the body's rotation will be returned. | |
| | | * | |
| | | * Calling this function on a non-placeable geom results in a runtime error | |
| | | in | |
| | | * the debug build of ODE. | |
| | | * | |
| | | * @param geom the geom to query. | |
| | | * @param R a copy of the geom rotation | |
| | | * @sa dGeomGetRotation | |
| | | * @ingroup collide | |
| | | */ | |
| | | ODE_API void dGeomCopyRotation(dGeomID geom, dMatrix3 R); | |
| | | | |
| | | /** | |
| * @brief Get the rotation quaternion of a placeable geom. | | * @brief Get the rotation quaternion of a placeable geom. | |
| * | | * | |
| * If the geom is attached to a body, the body's quaternion will be returne
d. | | * If the geom is attached to a body, the body's quaternion will be returne
d. | |
| * | | * | |
| * Calling this function on a non-placeable geom results in a runtime error
in | | * Calling this function on a non-placeable geom results in a runtime error
in | |
| * the debug build of ODE. | | * the debug build of ODE. | |
| * | | * | |
| * @param geom the geom to query. | | * @param geom the geom to query. | |
| * @param result a copy of the rotation quaternion. | | * @param result a copy of the rotation quaternion. | |
| * @sa dBodyGetQuaternion | | * @sa dBodyGetQuaternion | |
| | | | |
| skipping to change at line 507 | | skipping to change at line 531 | |
| * @param geom the geom to query. | | * @param geom the geom to query. | |
| * @returns A pointer to the geom's offset vector. | | * @returns A pointer to the geom's offset vector. | |
| * @remarks The returned value is a pointer to the geom's internal | | * @remarks The returned value is a pointer to the geom's internal | |
| * data structure. It is valid until any changes are made | | * data structure. It is valid until any changes are made | |
| * to the geom. | | * to the geom. | |
| * @ingroup collide | | * @ingroup collide | |
| */ | | */ | |
| ODE_API const dReal * dGeomGetOffsetPosition (dGeomID geom); | | ODE_API const dReal * dGeomGetOffsetPosition (dGeomID geom); | |
| | | | |
| /** | | /** | |
|
| * @brief Get the offset position vector of a geom. | | * @brief Copy the offset position vector of a geom. | |
| * | | * | |
| * Returns the positional offset of the geom in local coordinates. | | * Returns the positional offset of the geom in local coordinates. | |
| * If the geom has no offset, this function returns the zero vector. | | * If the geom has no offset, this function returns the zero vector. | |
| * | | * | |
|
| | | * @param geom the geom to query. | |
| | | * @param pos returns the offset position | |
| | | * @ingroup collide | |
| | | */ | |
| | | ODE_API void dGeomCopyOffsetPosition (dGeomID geom, dVector3 pos); | |
| | | | |
| | | /** | |
| | | * @brief Get the offset rotation matrix of a geom. | |
| | | * | |
| | | * Returns the rotational offset of the geom in local coordinates. | |
| | | * If the geom has no offset, this function returns the identity | |
| | | * matrix. | |
| | | * | |
| * @param geom the geom to query. | | * @param geom the geom to query. | |
|
| * @returns A pointer to the geom's offset vector. | | * @returns A pointer to the geom's offset rotation matrix. | |
| * @remarks The returned value is a pointer to the geom's internal | | * @remarks The returned value is a pointer to the geom's internal | |
| * data structure. It is valid until any changes are made | | * data structure. It is valid until any changes are made | |
| * to the geom. | | * to the geom. | |
| * @ingroup collide | | * @ingroup collide | |
| */ | | */ | |
| ODE_API const dReal * dGeomGetOffsetRotation (dGeomID geom); | | ODE_API const dReal * dGeomGetOffsetRotation (dGeomID geom); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Copy the offset rotation matrix of a geom. | |
| | | * | |
| | | * Returns the rotational offset of the geom in local coordinates. | |
| | | * If the geom has no offset, this function returns the identity | |
| | | * matrix. | |
| | | * | |
| | | * @param geom the geom to query. | |
| | | * @param R returns the rotation matrix. | |
| | | * @ingroup collide | |
| | | */ | |
| | | ODE_API void dGeomCopyOffsetRotation (dGeomID geom, dMatrix3 R); | |
| | | | |
| | | /** | |
| * @brief Get the offset rotation quaternion of a geom. | | * @brief Get the offset rotation quaternion of a geom. | |
| * | | * | |
| * Returns the rotation offset of the geom as a quaternion. | | * Returns the rotation offset of the geom as a quaternion. | |
| * If the geom has no offset, the identity quaternion is returned. | | * If the geom has no offset, the identity quaternion is returned. | |
| * | | * | |
| * @param geom the geom to query. | | * @param geom the geom to query. | |
| * @param result a copy of the rotation quaternion. | | * @param result a copy of the rotation quaternion. | |
| * @ingroup collide | | * @ingroup collide | |
| */ | | */ | |
| ODE_API void dGeomGetOffsetQuaternion (dGeomID geom, dQuaternion result); | | ODE_API void dGeomGetOffsetQuaternion (dGeomID geom, dQuaternion result); | |
| | | | |
| skipping to change at line 1237 | | skipping to change at line 1287 | |
| const dVector3 side1, const dVector3 _p2, | | const dVector3 side1, const dVector3 _p2, | |
| const dMatrix3 R2, const dVector3 side2); | | const dMatrix3 R2, const dVector3 side2); | |
| | | | |
| ODE_API int dBoxBox (const dVector3 p1, const dMatrix3 R1, | | ODE_API int dBoxBox (const dVector3 p1, const dMatrix3 R1, | |
| const dVector3 side1, const dVector3 p2, | | const dVector3 side1, const dVector3 p2, | |
| const dMatrix3 R2, const dVector3 side2, | | const dMatrix3 R2, const dVector3 side2, | |
| dVector3 normal, dReal *depth, int *return_code, | | dVector3 normal, dReal *depth, int *return_code, | |
| int maxc, dContactGeom *contact, int skip); | | int maxc, dContactGeom *contact, int skip); | |
| | | | |
| ODE_API void dInfiniteAABB (dGeomID geom, dReal aabb[6]); | | ODE_API void dInfiniteAABB (dGeomID geom, dReal aabb[6]); | |
|
| | | ODE_API void dInitODE(void); | |
| ODE_API void dCloseODE(void); | | ODE_API void dCloseODE(void); | |
| | | | |
| /* ************************************************************************
*/ | | /* ************************************************************************
*/ | |
| /* custom classes */ | | /* custom classes */ | |
| | | | |
| typedef void dGetAABBFn (dGeomID, dReal aabb[6]); | | typedef void dGetAABBFn (dGeomID, dReal aabb[6]); | |
| typedef int dColliderFn (dGeomID o1, dGeomID o2, | | typedef int dColliderFn (dGeomID o1, dGeomID o2, | |
| int flags, dContactGeom *contact, int skip); | | int flags, dContactGeom *contact, int skip); | |
| typedef dColliderFn * dGetColliderFnFn (int num); | | typedef dColliderFn * dGetColliderFnFn (int num); | |
| typedef void dGeomDtorFn (dGeomID o); | | typedef void dGeomDtorFn (dGeomID o); | |
| | | | |
End of changes. 7 change blocks. |
| 2 lines changed or deleted | | 54 lines changed or added | |
|
| config.h | | config.h | |
|
| /* include/ode/config.h. Generated by configure. */ | | /* include/ode/config.h. Generated from config.h.in by configure. */ | |
| /* include/ode/config.h.in. Generated from configure.in by autoheader. */ | | /* include/ode/config.h.in. Generated from configure.in by autoheader. */ | |
| | | | |
| #ifndef ODE_CONFIG_H | | #ifndef ODE_CONFIG_H | |
| #define ODE_CONFIG_H | | #define ODE_CONFIG_H | |
| | | | |
| /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP | | /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP | |
| systems. This function is required for `alloca.c' support on those syste
ms. | | systems. This function is required for `alloca.c' support on those syste
ms. | |
| */ | | */ | |
| /* #undef CRAY_STACKSEG_END */ | | /* #undef CRAY_STACKSEG_END */ | |
| | | | |
| | | | |
| skipping to change at line 190 | | skipping to change at line 190 | |
| /* Define to 1 if you have the `__isnan' function. */ | | /* Define to 1 if you have the `__isnan' function. */ | |
| #define HAVE___ISNAN 1 | | #define HAVE___ISNAN 1 | |
| | | | |
| /* Define to 1 if you have the `__isnanf' function. */ | | /* Define to 1 if you have the `__isnanf' function. */ | |
| #define HAVE___ISNANF 1 | | #define HAVE___ISNANF 1 | |
| | | | |
| /* Name of package */ | | /* Name of package */ | |
| #define PACKAGE "ODE" | | #define PACKAGE "ODE" | |
| | | | |
| /* Define to the address where bug reports for this package should be sent.
*/ | | /* Define to the address where bug reports for this package should be sent.
*/ | |
|
| #define PACKAGE_BUGREPORT "ode@q12.org" | | #define PACKAGE_BUGREPORT "ode@ode.org" | |
| | | | |
| /* Define to the full name of this package. */ | | /* Define to the full name of this package. */ | |
| #define PACKAGE_NAME "ODE" | | #define PACKAGE_NAME "ODE" | |
| | | | |
| /* Define to the full name and version of this package. */ | | /* Define to the full name and version of this package. */ | |
|
| #define PACKAGE_STRING "ODE 0.6.1" | | #define PACKAGE_STRING "ODE 0.8" | |
| | | | |
| /* Define to the one symbol short name of this package. */ | | /* Define to the one symbol short name of this package. */ | |
| #define PACKAGE_TARNAME "ode" | | #define PACKAGE_TARNAME "ode" | |
| | | | |
| /* Define to the version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "0.6.1" | | #define PACKAGE_VERSION "0.8" | |
| | | | |
| /* is this a pentium on a gcc-based platform? */ | | /* is this a pentium on a gcc-based platform? */ | |
| #define PENTIUM 1 | | #define PENTIUM 1 | |
| | | | |
| /* Define to the type of arg 1 for `select'. */ | | /* Define to the type of arg 1 for `select'. */ | |
| #define SELECT_TYPE_ARG1 int | | #define SELECT_TYPE_ARG1 int | |
| | | | |
| /* Define to the type of args 2, 3 and 4 for `select'. */ | | /* Define to the type of args 2, 3 and 4 for `select'. */ | |
| #define SELECT_TYPE_ARG234 (fd_set *) | | #define SELECT_TYPE_ARG234 (fd_set *) | |
| | | | |
| /* Define to the type of arg 5 for `select'. */ | | /* Define to the type of arg 5 for `select'. */ | |
| #define SELECT_TYPE_ARG5 (struct timeval *) | | #define SELECT_TYPE_ARG5 (struct timeval *) | |
| | | | |
|
| /* The size of a `char', as computed by sizeof. */ | | /* The size of `char', as computed by sizeof. */ | |
| #define SIZEOF_CHAR 1 | | #define SIZEOF_CHAR 1 | |
| | | | |
|
| /* The size of a `int', as computed by sizeof. */ | | /* The size of `int', as computed by sizeof. */ | |
| #define SIZEOF_INT 4 | | #define SIZEOF_INT 4 | |
| | | | |
|
| /* The size of a `long int', as computed by sizeof. */ | | /* The size of `long int', as computed by sizeof. */ | |
| #define SIZEOF_LONG_INT 4 | | #define SIZEOF_LONG_INT 4 | |
| | | | |
|
| /* The size of a `short', as computed by sizeof. */ | | /* The size of `short', as computed by sizeof. */ | |
| #define SIZEOF_SHORT 2 | | #define SIZEOF_SHORT 2 | |
| | | | |
|
| /* The size of a `void*', as computed by sizeof. */ | | /* The size of `void*', as computed by sizeof. */ | |
| #define SIZEOF_VOIDP 4 | | #define SIZEOF_VOIDP 4 | |
| | | | |
| /* The extension for shared libraries. */ | | /* The extension for shared libraries. */ | |
| #define SO_EXT ".so" | | #define SO_EXT ".so" | |
| | | | |
| /* If using the C implementation of alloca, define if you know the | | /* If using the C implementation of alloca, define if you know the | |
| direction of stack growth for your system; otherwise it will be | | direction of stack growth for your system; otherwise it will be | |
|
| automatically deduced at run-time. | | automatically deduced at runtime. | |
| STACK_DIRECTION > 0 => grows toward higher addresses | | STACK_DIRECTION > 0 => grows toward higher addresses | |
| STACK_DIRECTION < 0 => grows toward lower addresses | | STACK_DIRECTION < 0 => grows toward lower addresses | |
| STACK_DIRECTION = 0 => direction of growth unknown */ | | STACK_DIRECTION = 0 => direction of growth unknown */ | |
| /* #undef STACK_DIRECTION */ | | /* #undef STACK_DIRECTION */ | |
| | | | |
| /* Define to 1 if you have the ANSI C header files. */ | | /* Define to 1 if you have the ANSI C header files. */ | |
| #define STDC_HEADERS 1 | | #define STDC_HEADERS 1 | |
| | | | |
| /* Version number of package */ | | /* Version number of package */ | |
|
| #define VERSION "0.6.1" | | #define VERSION "0.8.0" | |
| | | | |
| /* Define to 1 if your processor stores words with the most significant byt
e | | /* Define to 1 if your processor stores words with the most significant byt
e | |
| first (like Motorola and SPARC, unlike Intel and VAX). */ | | first (like Motorola and SPARC, unlike Intel and VAX). */ | |
| /* #undef WORDS_BIGENDIAN */ | | /* #undef WORDS_BIGENDIAN */ | |
| | | | |
| /* is this a X86_64 system on a gcc-based platform? */ | | /* is this a X86_64 system on a gcc-based platform? */ | |
| /* #undef X86_64_SYSTEM */ | | /* #undef X86_64_SYSTEM */ | |
| | | | |
| /* Define to 1 if the X Window System is missing or not being used. */ | | /* Define to 1 if the X Window System is missing or not being used. */ | |
| /* #undef X_DISPLAY_MISSING */ | | /* #undef X_DISPLAY_MISSING */ | |
| | | | |
| skipping to change at line 291 | | skipping to change at line 291 | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| /* #undef inline */ | | /* #undef inline */ | |
| #endif | | #endif | |
| | | | |
| /* Define to rpl_malloc if the replacement function should be used. */ | | /* Define to rpl_malloc if the replacement function should be used. */ | |
| /* #undef malloc */ | | /* #undef malloc */ | |
| | | | |
| /* Define to rpl_realloc if the replacement function should be used. */ | | /* Define to rpl_realloc if the replacement function should be used. */ | |
| /* #undef realloc */ | | /* #undef realloc */ | |
| | | | |
|
| /* Define to `unsigned' if <sys/types.h> does not define. */ | | /* Define to `unsigned int' if <sys/types.h> does not define. */ | |
| /* #undef size_t */ | | /* #undef size_t */ | |
| | | | |
| /* Define to empty if the keyword `volatile' does not work. Warning: valid | | /* Define to empty if the keyword `volatile' does not work. Warning: valid | |
| code using `volatile' can become incorrect without. Disable with care. *
/ | | code using `volatile' can become incorrect without. Disable with care. *
/ | |
| /* #undef volatile */ | | /* #undef volatile */ | |
| | | | |
| #ifdef HAVE_ALLOCA_H | | #ifdef HAVE_ALLOCA_H | |
| #include <alloca.h> | | #include <alloca.h> | |
| #endif | | #endif | |
| #if defined(HAVE_IEEEFP_H) && !defined(__CYGWIN__) | | #if defined(HAVE_IEEEFP_H) && !defined(__CYGWIN__) | |
| | | | |
| skipping to change at line 337 | | skipping to change at line 337 | |
| #include <float.h> | | #include <float.h> | |
| #endif | | #endif | |
| #if SIZEOF_CHAR == 1 | | #if SIZEOF_CHAR == 1 | |
| typedef char int8; | | typedef char int8; | |
| typedef unsigned char uint8; | | typedef unsigned char uint8; | |
| #else | | #else | |
| #error "expecting sizeof(char) == 1" | | #error "expecting sizeof(char) == 1" | |
| #endif | | #endif | |
| #if SIZEOF_SHORT == 2 | | #if SIZEOF_SHORT == 2 | |
| typedef short int16; | | typedef short int16; | |
|
| typedef unsigned short uint16;; | | typedef unsigned short uint16; | |
| #else | | #else | |
| #error "can not find 2 byte integer type" | | #error "can not find 2 byte integer type" | |
| #endif | | #endif | |
| /* integer types (we assume int >= 32 bits) */ | | /* integer types (we assume int >= 32 bits) */ | |
| #if SIZEOF_INT == 4 | | #if SIZEOF_INT == 4 | |
| typedef short int32; | | typedef short int32; | |
| typedef unsigned short uint32; | | typedef unsigned short uint32; | |
| #else | | #else | |
| #error "can not find 4 byte integer type" | | #error "can not find 4 byte integer type" | |
| #endif | | #endif | |
| | | | |
End of changes. 13 change blocks. |
| 13 lines changed or deleted | | 13 lines changed or added | |
|
| objects.h | | objects.h | |
| | | | |
| skipping to change at line 278 | | skipping to change at line 278 | |
| * | | * | |
| * Disabled bodies do not consume CPU time, therefore to speed up the simul
ation | | * Disabled bodies do not consume CPU time, therefore to speed up the simul
ation | |
| * bodies should be disabled when they come to rest. This can be done autom
atically | | * bodies should be disabled when they come to rest. This can be done autom
atically | |
| * with the auto-disable feature. | | * with the auto-disable feature. | |
| * | | * | |
| * If a body has its auto-disable flag turned on, it will automatically dis
able | | * If a body has its auto-disable flag turned on, it will automatically dis
able | |
| * itself when | | * itself when | |
| * @li It has been idle for a given number of simulation steps. | | * @li It has been idle for a given number of simulation steps. | |
| * @li It has also been idle for a given amount of simulation time. | | * @li It has also been idle for a given amount of simulation time. | |
| * | | * | |
|
| * A body is considered to be idle when the magnitudes of both its linear v | | * A body is considered to be idle when the magnitudes of both its | |
| elocity | | * linear average velocity and angular average velocity are below given thr | |
| * and angular velocity are below given thresholds. | | esholds. | |
| | | * The sample size for the average defaults to one and can be disabled by s | |
| | | etting | |
| | | * to zero with | |
| | | * | |
| | | * Thus, every body has six auto-disable parameters: an enabled flag, a idl | |
| | | e step | |
| | | * count, an idle time, linear/angular average velocity thresholds, and the | |
| | | * average samples count. | |
| * | | * | |
|
| * Thus, every body has five auto-disable parameters: an enabled flag, a id | | * Newly created bodies get these parameters from world. | |
| le step | | | |
| * count, an idle time, and linear/angular velocity thresholds. Newly creat | | | |
| ed bodies | | | |
| * get these parameters from world. | | | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @brief Set the AutoEnableDepth parameter used by the StepFast1 algorithm
. | | * @brief Set the AutoEnableDepth parameter used by the StepFast1 algorithm
. | |
| * @ingroup disable | | * @ingroup disable | |
| */ | | */ | |
| ODE_API void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth); | | ODE_API void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth); | |
| | | | |
| /** | | /** | |
| * @brief Get the AutoEnableDepth parameter used by the StepFast1 algorithm
. | | * @brief Get the AutoEnableDepth parameter used by the StepFast1 algorithm
. | |
| | | | |
| skipping to change at line 327 | | skipping to change at line 331 | |
| ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID); | | ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID); | |
| | | | |
| /** | | /** | |
| * @brief Set auto disable angular threshold for newly created bodies. | | * @brief Set auto disable angular threshold for newly created bodies. | |
| * @param linear_threshold default is 0.01 | | * @param linear_threshold default is 0.01 | |
| * @ingroup disable | | * @ingroup disable | |
| */ | | */ | |
| ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_
threshold); | | ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_
threshold); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Get auto disable linear average threshold for newly created bodie | |
| | | s. | |
| | | * @ingroup disable | |
| | | * @return the threshold | |
| | | */ | |
| | | ODE_API dReal dWorldGetAutoDisableLinearAverageThreshold (dWorldID); | |
| | | | |
| | | /** | |
| | | * @brief Set auto disable linear average threshold for newly created bodie | |
| | | s. | |
| | | * @param linear_average_threshold default is 0.01 | |
| | | * @ingroup disable | |
| | | */ | |
| | | ODE_API void dWorldSetAutoDisableLinearAverageThreshold (dWorldID, dReal l | |
| | | inear_average_threshold); | |
| | | | |
| | | /** | |
| | | * @brief Get auto disable angular average threshold for newly created bodi | |
| | | es. | |
| | | * @ingroup disable | |
| | | * @return the threshold | |
| | | */ | |
| | | ODE_API dReal dWorldGetAutoDisableAngularAverageThreshold (dWorldID); | |
| | | | |
| | | /** | |
| | | * @brief Set auto disable angular average threshold for newly created bodi | |
| | | es. | |
| | | * @param linear_average_threshold default is 0.01 | |
| | | * @ingroup disable | |
| | | */ | |
| | | ODE_API void dWorldSetAutoDisableAngularAverageThreshold (dWorldID, dReal a | |
| | | ngular_average_threshold); | |
| | | | |
| | | /** | |
| | | * @brief Get auto disable sample count for newly created bodies. | |
| | | * @ingroup disable | |
| | | * @return number of samples used | |
| | | */ | |
| | | ODE_API int dWorldGetAutoDisableAverageSamplesCount (dWorldID); | |
| | | | |
| | | /** | |
| | | * @brief Set auto disable average sample count for newly created bodies. | |
| | | * @ingroup disable | |
| | | * @param average_samples_count Default is 1, meaning only instantaneous ve | |
| | | locity is used. | |
| | | * Set to zero to disable sampling and thus prevent any body from auto-disa | |
| | | bling. | |
| | | */ | |
| | | ODE_API void dWorldSetAutoDisableAverageSamplesCount (dWorldID, unsigned in | |
| | | t average_samples_count ); | |
| | | | |
| | | /** | |
| * @brief Get auto disable steps for newly created bodies. | | * @brief Get auto disable steps for newly created bodies. | |
| * @ingroup disable | | * @ingroup disable | |
| * @return nr of steps | | * @return nr of steps | |
| */ | | */ | |
| ODE_API int dWorldGetAutoDisableSteps (dWorldID); | | ODE_API int dWorldGetAutoDisableSteps (dWorldID); | |
| | | | |
| /** | | /** | |
| * @brief Set auto disable steps for newly created bodies. | | * @brief Set auto disable steps for newly created bodies. | |
| * @ingroup disable | | * @ingroup disable | |
| * @param steps default is 10 | | * @param steps default is 10 | |
| | | | |
| skipping to change at line 402 | | skipping to change at line 449 | |
| * The origin of this coordinate frame is the body's point of reference. So
me values | | * The origin of this coordinate frame is the body's point of reference. So
me values | |
| * in ODE (vectors, matrices etc) are relative to the body coordinate frame
, and others | | * in ODE (vectors, matrices etc) are relative to the body coordinate frame
, and others | |
| * are relative to the global coordinate frame. | | * are relative to the global coordinate frame. | |
| * | | * | |
| * Note that the shape of a rigid body is not a dynamical property (except
insofar as | | * Note that the shape of a rigid body is not a dynamical property (except
insofar as | |
| * it influences the various mass properties). It is only collision detecti
on that cares | | * it influences the various mass properties). It is only collision detecti
on that cares | |
| * about the detailed shape of the body. | | * about the detailed shape of the body. | |
| */ | | */ | |
| | | | |
| /** | | /** | |
|
| * @brief Get auto disable linear threshold. | | * @brief Get auto disable linear average threshold. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return the threshold | | * @return the threshold | |
| */ | | */ | |
| ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID); | | ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID); | |
| | | | |
| /** | | /** | |
|
| * @brief Set auto disable linear threshold. | | * @brief Set auto disable linear average threshold. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return the threshold | | * @return the threshold | |
| */ | | */ | |
|
| ODE_API void dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_thr
eshold); | | ODE_API void dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_ave
rage_threshold); | |
| | | | |
| /** | | /** | |
|
| * @brief Get auto disable angular threshold. | | * @brief Get auto disable angular average threshold. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return the threshold | | * @return the threshold | |
| */ | | */ | |
| ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID); | | ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID); | |
| | | | |
| /** | | /** | |
|
| * @brief Set auto disable angular threshold. | | * @brief Set auto disable angular average threshold. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return the threshold | | * @return the threshold | |
| */ | | */ | |
|
| ODE_API void dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_t | | ODE_API void dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_a | |
| hreshold); | | verage_threshold); | |
| | | | |
| | | /** | |
| | | * @brief Get auto disable average size (samples count). | |
| | | * @ingroup bodies | |
| | | * @return the nr of steps/size. | |
| | | */ | |
| | | ODE_API int dBodyGetAutoDisableAverageSamplesCount (dBodyID); | |
| | | | |
| | | /** | |
| | | * @brief Set auto disable average buffer size (average steps). | |
| | | * @ingroup bodies | |
| | | * @param average_samples_count the nr of samples to review. | |
| | | */ | |
| | | ODE_API void dBodySetAutoDisableAverageSamplesCount (dBodyID, unsigned int | |
| | | average_samples_count); | |
| | | | |
| /** | | /** | |
|
| * @brief Get auto disable steps. | | * @brief Get auto steps a body must be thought of as idle to disable | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return the nr of steps | | * @return the nr of steps | |
| */ | | */ | |
| ODE_API int dBodyGetAutoDisableSteps (dBodyID); | | ODE_API int dBodyGetAutoDisableSteps (dBodyID); | |
| | | | |
| /** | | /** | |
| * @brief Set auto disable steps. | | * @brief Set auto disable steps. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @param steps the nr of steps. | | * @param steps the nr of steps. | |
| */ | | */ | |
| | | | |
| skipping to change at line 480 | | skipping to change at line 541 | |
| | | | |
| /** | | /** | |
| * @brief Set auto disable defaults. | | * @brief Set auto disable defaults. | |
| * @remarks | | * @remarks | |
| * Set the values for the body to those set as default for the world. | | * Set the values for the body to those set as default for the world. | |
| * @ingroup bodies | | * @ingroup bodies | |
| */ | | */ | |
| ODE_API void dBodySetAutoDisableDefaults (dBodyID); | | ODE_API void dBodySetAutoDisableDefaults (dBodyID); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Retrives the world attached to te given body. | |
| | | * @remarks | |
| | | * | |
| | | * @ingroup bodies | |
| | | */ | |
| | | ODE_API dWorldID dBodyGetWorld (dBodyID); | |
| | | | |
| | | /** | |
| * @brief Create a body in given world. | | * @brief Create a body in given world. | |
| * @remarks | | * @remarks | |
| * Default mass parameters are at position (0,0,0). | | * Default mass parameters are at position (0,0,0). | |
| * @ingroup bodies | | * @ingroup bodies | |
| */ | | */ | |
| ODE_API dBodyID dBodyCreate (dWorldID); | | ODE_API dBodyID dBodyCreate (dWorldID); | |
| | | | |
| /** | | /** | |
| * @brief Destroy a body. | | * @brief Destroy a body. | |
| * @remarks | | * @remarks | |
| | | | |
| skipping to change at line 581 | | skipping to change at line 650 | |
| ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos); | | ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos); | |
| | | | |
| /** | | /** | |
| * @brief Get the rotation of a body. | | * @brief Get the rotation of a body. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return pointer to a 4x3 rotation matrix. | | * @return pointer to a 4x3 rotation matrix. | |
| */ | | */ | |
| ODE_API const dReal * dBodyGetRotation (dBodyID); | | ODE_API const dReal * dBodyGetRotation (dBodyID); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Copy the rotation of a body. | |
| | | * @ingroup bodies | |
| | | * @param body the body to query | |
| | | * @param R a copy of the rotation matrix | |
| | | * @sa dBodyGetRotation | |
| | | */ | |
| | | ODE_API void dBodyCopyRotation (dBodyID, dMatrix3 R); | |
| | | | |
| | | /** | |
| * @brief Get the rotation of a body. | | * @brief Get the rotation of a body. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @return pointer to 4 scalars that represent the quaternion. | | * @return pointer to 4 scalars that represent the quaternion. | |
| */ | | */ | |
| ODE_API const dReal * dBodyGetQuaternion (dBodyID); | | ODE_API const dReal * dBodyGetQuaternion (dBodyID); | |
| | | | |
| /** | | /** | |
| * @brief Copy the orientation of a body into a quaternion. | | * @brief Copy the orientation of a body into a quaternion. | |
| * @ingroup bodies | | * @ingroup bodies | |
| * @param body the body to query | | * @param body the body to query | |
| | | | |
| skipping to change at line 1003 | | skipping to change at line 1081 | |
| | | | |
| /** | | /** | |
| * @brief Create a new joint of the universal type. | | * @brief Create a new joint of the universal type. | |
| * @ingroup joints | | * @ingroup joints | |
| * @param dJointGroupID set to 0 to allocate the joint normally. | | * @param dJointGroupID set to 0 to allocate the joint normally. | |
| * If it is nonzero the joint is allocated in the given joint group. | | * If it is nonzero the joint is allocated in the given joint group. | |
| */ | | */ | |
| ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID); | | ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Create a new joint of the PR (Prismatic and Rotoide) type. | |
| | | * @ingroup joints | |
| | | * @param dJointGroupID set to 0 to allocate the joint normally. | |
| | | * If it is nonzero the joint is allocated in the given joint group. | |
| | | */ | |
| | | ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID); | |
| | | | |
| | | /** | |
| * @brief Create a new joint of the fixed type. | | * @brief Create a new joint of the fixed type. | |
| * @ingroup joints | | * @ingroup joints | |
| * @param dJointGroupID set to 0 to allocate the joint normally. | | * @param dJointGroupID set to 0 to allocate the joint normally. | |
| * If it is nonzero the joint is allocated in the given joint group. | | * If it is nonzero the joint is allocated in the given joint group. | |
| */ | | */ | |
| ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID); | | ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID); | |
| | | | |
| ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID); | | ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID); | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 1277 | | skipping to change at line 1363 | |
| | | | |
| /** | | /** | |
| * @brief Applies torque1 about the universal's axis 1, torque2 about the | | * @brief Applies torque1 about the universal's axis 1, torque2 about the | |
| * universal's axis 2. | | * universal's axis 2. | |
| * @remarks This function is just a wrapper for dBodyAddTorque(). | | * @remarks This function is just a wrapper for dBodyAddTorque(). | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal
torque2); | | ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal
torque2); | |
| | | | |
| /** | | /** | |
|
| | | * @brief set anchor | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z); | |
| | | | |
| | | /** | |
| | | * @brief set the axis for the prismatic articulation | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z); | |
| | | | |
| | | /** | |
| | | * @brief set the axis for the rotoide articulation | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z); | |
| | | | |
| | | /** | |
| | | * @brief set joint parameter | |
| | | * @ingroup joints | |
| | | * | |
| | | * @note parameterX where X equal 2 refer to parameter for the rotoide arti | |
| | | culation | |
| | | */ | |
| | | ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value); | |
| | | | |
| | | /** | |
| | | * @brief Applies the torque about the rotoide axis of the PR joint | |
| | | * | |
| | | * That is, it applies a torque with specified magnitude in the direction | |
| | | * of the rotoide axis, to body 1, and with the same magnitude but in oppos | |
| | | ite | |
| | | * direction to body 2. This function is just a wrapper for dBodyAddTorque( | |
| | | )} | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointAddPRTorque (dJointID j, dReal torque); | |
| | | | |
| | | /** | |
| * @brief Call this on the fixed joint after it has been attached to | | * @brief Call this on the fixed joint after it has been attached to | |
| * remember the current desired relative offset and desired relative | | * remember the current desired relative offset and desired relative | |
| * rotation between the bodies. | | * rotation between the bodies. | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API void dJointSetFixed (dJointID); | | ODE_API void dJointSetFixed (dJointID); | |
| | | | |
| /** | | /** | |
| * @brief set the nr of axes | | * @brief set the nr of axes | |
| * @param num 0..3 | | * @param num 0..3 | |
| | | | |
| skipping to change at line 1565 | | skipping to change at line 1687 | |
| */ | | */ | |
| ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result); | | ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result); | |
| | | | |
| /** | | /** | |
| * @brief get joint parameter | | * @brief get joint parameter | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API dReal dJointGetUniversalParam (dJointID, int parameter); | | ODE_API dReal dJointGetUniversalParam (dJointID, int parameter); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Get both angles at the same time. | |
| | | * @ingroup joints | |
| | | * | |
| | | * @param joint The universal joint for which we want to calculate the an | |
| | | gles | |
| | | * @param angle1 The angle between the body1 and the axis 1 | |
| | | * @param angle2 The angle between the body2 and the axis 2 | |
| | | * | |
| | | * @note This function combine getUniversalAngle1 and getUniversalAngle2 to | |
| | | gether | |
| | | * and try to avoid redundant calculation | |
| | | */ | |
| | | ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angl | |
| | | e2); | |
| | | | |
| | | /** | |
| * @brief Get angle | | * @brief Get angle | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API dReal dJointGetUniversalAngle1 (dJointID); | | ODE_API dReal dJointGetUniversalAngle1 (dJointID); | |
| | | | |
| /** | | /** | |
| * @brief Get angle | | * @brief Get angle | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API dReal dJointGetUniversalAngle2 (dJointID); | | ODE_API dReal dJointGetUniversalAngle2 (dJointID); | |
| | | | |
| skipping to change at line 1589 | | skipping to change at line 1724 | |
| */ | | */ | |
| ODE_API dReal dJointGetUniversalAngle1Rate (dJointID); | | ODE_API dReal dJointGetUniversalAngle1Rate (dJointID); | |
| | | | |
| /** | | /** | |
| * @brief Get time derivative of angle | | * @brief Get time derivative of angle | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API dReal dJointGetUniversalAngle2Rate (dJointID); | | ODE_API dReal dJointGetUniversalAngle2Rate (dJointID); | |
| | | | |
| /** | | /** | |
|
| | | * @brief Get the joint anchor point, in world coordinates. | |
| | | * @return the point on body 1. If the joint is perfectly satisfied, | |
| | | * this will be the same as the point on body 2. | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointGetPRAnchor (dJointID, dVector3 result); | |
| | | | |
| | | /** | |
| | | * @brief Get the PR linear position (i.e. the prismatic's extension) | |
| | | * | |
| | | * When the axis is set, the current position of the attached bodies is | |
| | | * examined and that position will be the zero position. | |
| | | * | |
| | | * The position is the "oriented" length between the | |
| | | * position = (Prismatic axis) dot_product [(body1 + offset) - (body2 + anc | |
| | | hor2)] | |
| | | * | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API dReal dJointGetPRPosition (dJointID); | |
| | | | |
| | | /** | |
| | | * @brief Get the PR linear position's time derivative | |
| | | * | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API dReal dJointGetPRPositionRate (dJointID); | |
| | | | |
| | | /** | |
| | | * @brief Get the prismatic axis | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result); | |
| | | | |
| | | /** | |
| | | * @brief Get the Rotoide axis | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result); | |
| | | | |
| | | /** | |
| | | * @brief get joint parameter | |
| | | * @ingroup joints | |
| | | */ | |
| | | ODE_API dReal dJointGetPRParam (dJointID, int parameter); | |
| | | | |
| | | /** | |
| * @brief Get the number of angular axes that will be controlled by the | | * @brief Get the number of angular axes that will be controlled by the | |
| * AMotor. | | * AMotor. | |
| * @param num can range from 0 (which effectively deactivates the | | * @param num can range from 0 (which effectively deactivates the | |
| * joint) to 3. | | * joint) to 3. | |
| * This is automatically set to 3 in dAMotorEuler mode. | | * This is automatically set to 3 in dAMotorEuler mode. | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API int dJointGetAMotorNumAxes (dJointID); | | ODE_API int dJointGetAMotorNumAxes (dJointID); | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 1708 | | skipping to change at line 1889 | |
| * @return 1 if the two bodies are connected together by | | * @return 1 if the two bodies are connected together by | |
| * a joint, otherwise return 0. | | * a joint, otherwise return 0. | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
| ODE_API int dAreConnected (dBodyID, dBodyID); | | ODE_API int dAreConnected (dBodyID, dBodyID); | |
| | | | |
| /** | | /** | |
| * @brief Utility function | | * @brief Utility function | |
| * @return 1 if the two bodies are connected together by | | * @return 1 if the two bodies are connected together by | |
| * a joint that does not have type @arg{joint_type}, otherwise return 0. | | * a joint that does not have type @arg{joint_type}, otherwise return 0. | |
|
| | | * @param body1 A body to check. | |
| | | * @param body2 A body to check. | |
| * @param joint_type is a dJointTypeXXX constant. | | * @param joint_type is a dJointTypeXXX constant. | |
| * This is useful for deciding whether to add contact joints between two bo
dies: | | * This is useful for deciding whether to add contact joints between two bo
dies: | |
| * if they are already connected by non-contact joints then it may not be | | * if they are already connected by non-contact joints then it may not be | |
| * appropriate to add contacts, however it is okay to add more contact betw
een- | | * appropriate to add contacts, however it is okay to add more contact betw
een- | |
| * bodies that already have contacts. | | * bodies that already have contacts. | |
| * @ingroup joints | | * @ingroup joints | |
| */ | | */ | |
|
| ODE_API int dAreConnectedExcluding (dBodyID, dBodyID, int joint_type); | | ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint
_type); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 18 change blocks. |
| 17 lines changed or deleted | | 217 lines changed or added | |
|
| odecpp.h | | odecpp.h | |
| | | | |
| skipping to change at line 451 | | skipping to change at line 451 | |
| void getAnchor (dVector3 result) const | | void getAnchor (dVector3 result) const | |
| { dJointGetUniversalAnchor (_id, result); } | | { dJointGetUniversalAnchor (_id, result); } | |
| void getAnchor2 (dVector3 result) const | | void getAnchor2 (dVector3 result) const | |
| { dJointGetUniversalAnchor2 (_id, result); } | | { dJointGetUniversalAnchor2 (_id, result); } | |
| void getAxis1 (dVector3 result) const | | void getAxis1 (dVector3 result) const | |
| { dJointGetUniversalAxis1 (_id, result); } | | { dJointGetUniversalAxis1 (_id, result); } | |
| void getAxis2 (dVector3 result) const | | void getAxis2 (dVector3 result) const | |
| { dJointGetUniversalAxis2 (_id, result); } | | { dJointGetUniversalAxis2 (_id, result); } | |
| dReal getParam (int parameter) const | | dReal getParam (int parameter) const | |
| { return dJointGetUniversalParam (_id, parameter); } | | { return dJointGetUniversalParam (_id, parameter); } | |
|
| | | void getAngles(dReal *angle1, dReal *angle2) const | |
| | | { dJointGetUniversalAngles (_id, angle1, angle2); } | |
| | | | |
| dReal getAngle1() const | | dReal getAngle1() const | |
| { return dJointGetUniversalAngle1 (_id); } | | { return dJointGetUniversalAngle1 (_id); } | |
| dReal getAngle1Rate() const | | dReal getAngle1Rate() const | |
| { return dJointGetUniversalAngle1Rate (_id); } | | { return dJointGetUniversalAngle1Rate (_id); } | |
| dReal getAngle2() const | | dReal getAngle2() const | |
| { return dJointGetUniversalAngle2 (_id); } | | { return dJointGetUniversalAngle2 (_id); } | |
| dReal getAngle2Rate() const | | dReal getAngle2Rate() const | |
| { return dJointGetUniversalAngle2Rate (_id); } | | { return dJointGetUniversalAngle2Rate (_id); } | |
| | | | |
| void addTorques (dReal torque1, dReal torque2) | | void addTorques (dReal torque1, dReal torque2) | |
| | | | |
| skipping to change at line 511 | | skipping to change at line 514 | |
| | | | |
| void setParam (int parameter, dReal value) | | void setParam (int parameter, dReal value) | |
| { dJointSetHinge2Param (_id, parameter, value); } | | { dJointSetHinge2Param (_id, parameter, value); } | |
| dReal getParam (int parameter) const | | dReal getParam (int parameter) const | |
| { return dJointGetHinge2Param (_id, parameter); } | | { return dJointGetHinge2Param (_id, parameter); } | |
| | | | |
| void addTorques(dReal torque1, dReal torque2) | | void addTorques(dReal torque1, dReal torque2) | |
| { dJointAddHinge2Torques(_id, torque1, torque2); } | | { dJointAddHinge2Torques(_id, torque1, torque2); } | |
| }; | | }; | |
| | | | |
|
| | | class dPRJoint : public dJoint { | |
| | | dPRJoint (const dPRJoint &); | |
| | | void operator = (const dPRJoint &); | |
| | | | |
| | | public: | |
| | | dPRJoint() { } | |
| | | dPRJoint (dWorldID world, dJointGroupID group=0) | |
| | | { _id = dJointCreatePR (world, group); } | |
| | | | |
| | | void create (dWorldID world, dJointGroupID group=0) { | |
| | | if (_id) dJointDestroy (_id); | |
| | | _id = dJointCreatePR (world, group); | |
| | | } | |
| | | | |
| | | void setAnchor (dReal x, dReal y, dReal z) | |
| | | { dJointSetPRAnchor (_id, x, y, z); } | |
| | | void setAxis1 (dReal x, dReal y, dReal z) | |
| | | { dJointSetPRAxis1 (_id, x, y, z); } | |
| | | void setAxis2 (dReal x, dReal y, dReal z) | |
| | | { dJointSetPRAxis2 (_id, x, y, z); } | |
| | | | |
| | | void getAnchor (dVector3 result) const | |
| | | { dJointGetPRAnchor (_id, result); } | |
| | | void getAxis1 (dVector3 result) const | |
| | | { dJointGetPRAxis1 (_id, result); } | |
| | | void getAxis2 (dVector3 result) const | |
| | | { dJointGetPRAxis2 (_id, result); } | |
| | | | |
| | | dReal getPosition() const | |
| | | { return dJointGetPRPosition (_id); } | |
| | | dReal getPositionRate() const | |
| | | { return dJointGetPRPositionRate (_id); } | |
| | | | |
| | | void setParam (int parameter, dReal value) | |
| | | { dJointSetPRParam (_id, parameter, value); } | |
| | | dReal getParam (int parameter) const | |
| | | { return dJointGetPRParam (_id, parameter); } | |
| | | }; | |
| | | | |
| class dFixedJoint : public dJoint { | | class dFixedJoint : public dJoint { | |
| // intentionally undefined, don't use these | | // intentionally undefined, don't use these | |
| dFixedJoint (const dFixedJoint &); | | dFixedJoint (const dFixedJoint &); | |
| void operator = (const dFixedJoint &); | | void operator = (const dFixedJoint &); | |
| | | | |
| public: | | public: | |
| dFixedJoint() { } | | dFixedJoint() { } | |
| dFixedJoint (dWorldID world, dJointGroupID group=0) | | dFixedJoint (dWorldID world, dJointGroupID group=0) | |
| { _id = dJointCreateFixed (world, group); } | | { _id = dJointCreateFixed (world, group); } | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 42 lines changed or added | |
|