From 2f8d7092bc2c9609fa98d6888106b96f38b22828 Mon Sep 17 00:00:00 2001 From: dan miller Date: Sun, 21 Oct 2007 08:36:32 +0000 Subject: libraries moved to opensim-libs, a new repository --- libraries/ode-0.9/docs/objects_8h-source.html | 563 -------------------------- 1 file changed, 563 deletions(-) delete mode 100644 libraries/ode-0.9/docs/objects_8h-source.html (limited to 'libraries/ode-0.9/docs/objects_8h-source.html') diff --git a/libraries/ode-0.9/docs/objects_8h-source.html b/libraries/ode-0.9/docs/objects_8h-source.html deleted file mode 100644 index 33871df..0000000 --- a/libraries/ode-0.9/docs/objects_8h-source.html +++ /dev/null @@ -1,563 +0,0 @@ - -
-00001 /************************************************************************* -00002 * * -00003 * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * -00004 * All rights reserved. Email: russ@q12.org Web: www.q12.org * -00005 * * -00006 * This library is free software; you can redistribute it and/or * -00007 * modify it under the terms of EITHER: * -00008 * (1) The GNU Lesser General Public License as published by the Free * -00009 * Software Foundation; either version 2.1 of the License, or (at * -00010 * your option) any later version. The text of the GNU Lesser * -00011 * General Public License is included with this library in the * -00012 * file LICENSE.TXT. * -00013 * (2) The BSD-style license that is included with this library in * -00014 * the file LICENSE-BSD.TXT. * -00015 * * -00016 * This library is distributed in the hope that it will be useful, * -00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * -00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * -00019 * LICENSE.TXT and LICENSE-BSD.TXT for more details. * -00020 * * -00021 *************************************************************************/ -00022 -00023 #ifndef _ODE_OBJECTS_H_ -00024 #define _ODE_OBJECTS_H_ -00025 -00026 #include <ode/common.h> -00027 #include <ode/mass.h> -00028 #include <ode/contact.h> -00029 -00030 #ifdef __cplusplus -00031 extern "C" { -00032 #endif -00033 -00052 ODE_API dWorldID dWorldCreate(void); -00053 -00054 -00064 ODE_API void dWorldDestroy (dWorldID world); -00065 -00066 -00075 ODE_API void dWorldSetGravity (dWorldID, dReal x, dReal y, dReal z); -00076 -00077 -00082 ODE_API void dWorldGetGravity (dWorldID, dVector3 gravity); -00083 -00084 -00092 ODE_API void dWorldSetERP (dWorldID, dReal erp); -00093 -00099 ODE_API dReal dWorldGetERP (dWorldID); -00100 -00101 -00109 ODE_API void dWorldSetCFM (dWorldID, dReal cfm); -00110 -00116 ODE_API dReal dWorldGetCFM (dWorldID); -00117 -00118 -00129 ODE_API void dWorldStep (dWorldID, dReal stepsize); -00130 -00131 -00146 ODE_API void dWorldImpulseToForce -00147 ( -00148 dWorldID, dReal stepsize, -00149 dReal ix, dReal iy, dReal iz, dVector3 force -00150 ); -00151 -00152 -00184 ODE_API void dWorldQuickStep (dWorldID w, dReal stepsize); -00185 -00186 -00196 ODE_API void dWorldSetQuickStepNumIterations (dWorldID, int num); -00197 -00198 -00205 ODE_API int dWorldGetQuickStepNumIterations (dWorldID); -00206 -00212 ODE_API void dWorldSetQuickStepW (dWorldID, dReal over_relaxation); -00213 -00219 ODE_API dReal dWorldGetQuickStepW (dWorldID); -00220 -00221 /* World contact parameter functions */ -00222 -00231 ODE_API void dWorldSetContactMaxCorrectingVel (dWorldID, dReal vel); -00232 -00238 ODE_API dReal dWorldGetContactMaxCorrectingVel (dWorldID); -00239 -00251 ODE_API void dWorldSetContactSurfaceLayer (dWorldID, dReal depth); -00252 -00258 ODE_API dReal dWorldGetContactSurfaceLayer (dWorldID); -00259 -00260 /* StepFast1 functions */ -00261 -00268 ODE_API void dWorldStepFast1(dWorldID, dReal stepsize, int maxiterations); -00269 -00270 -00306 ODE_API void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth); -00307 -00312 ODE_API int dWorldGetAutoEnableDepthSF1(dWorldID); -00313 -00319 ODE_API dReal dWorldGetAutoDisableLinearThreshold (dWorldID); -00320 -00326 ODE_API void dWorldSetAutoDisableLinearThreshold (dWorldID, dReal linear_threshold); -00327 -00333 ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID); -00334 -00340 ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_threshold); -00341 -00347 ODE_API dReal dWorldGetAutoDisableLinearAverageThreshold (dWorldID); -00348 -00354 ODE_API void dWorldSetAutoDisableLinearAverageThreshold (dWorldID, dReal linear_average_threshold); -00355 -00361 ODE_API dReal dWorldGetAutoDisableAngularAverageThreshold (dWorldID); -00362 -00368 ODE_API void dWorldSetAutoDisableAngularAverageThreshold (dWorldID, dReal angular_average_threshold); -00369 -00375 ODE_API int dWorldGetAutoDisableAverageSamplesCount (dWorldID); -00376 -00383 ODE_API void dWorldSetAutoDisableAverageSamplesCount (dWorldID, unsigned int average_samples_count ); -00384 -00390 ODE_API int dWorldGetAutoDisableSteps (dWorldID); -00391 -00397 ODE_API void dWorldSetAutoDisableSteps (dWorldID, int steps); -00398 -00404 ODE_API dReal dWorldGetAutoDisableTime (dWorldID); -00405 -00411 ODE_API void dWorldSetAutoDisableTime (dWorldID, dReal time); -00412 -00418 ODE_API int dWorldGetAutoDisableFlag (dWorldID); -00419 -00425 ODE_API void dWorldSetAutoDisableFlag (dWorldID, int do_auto_disable); -00426 -00427 -00428 -00468 ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID); -00469 -00475 ODE_API void dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_average_threshold); -00476 -00482 ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID); -00483 -00489 ODE_API void dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_average_threshold); -00490 -00496 ODE_API int dBodyGetAutoDisableAverageSamplesCount (dBodyID); -00497 -00503 ODE_API void dBodySetAutoDisableAverageSamplesCount (dBodyID, unsigned int average_samples_count); -00504 -00505 -00511 ODE_API int dBodyGetAutoDisableSteps (dBodyID); -00512 -00518 ODE_API void dBodySetAutoDisableSteps (dBodyID, int steps); -00519 -00525 ODE_API dReal dBodyGetAutoDisableTime (dBodyID); -00526 -00532 ODE_API void dBodySetAutoDisableTime (dBodyID, dReal time); -00533 -00539 ODE_API int dBodyGetAutoDisableFlag (dBodyID); -00540 -00546 ODE_API void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable); -00547 -00554 ODE_API void dBodySetAutoDisableDefaults (dBodyID); -00555 -00556 -00563 ODE_API dWorldID dBodyGetWorld (dBodyID); -00564 -00571 ODE_API dBodyID dBodyCreate (dWorldID); -00572 -00581 ODE_API void dBodyDestroy (dBodyID); -00582 -00588 ODE_API void dBodySetData (dBodyID, void *data); -00589 -00595 ODE_API void *dBodyGetData (dBodyID); -00596 -00605 ODE_API void dBodySetPosition (dBodyID, dReal x, dReal y, dReal z); -00606 -00615 ODE_API void dBodySetRotation (dBodyID, const dMatrix3 R); -00616 -00625 ODE_API void dBodySetQuaternion (dBodyID, const dQuaternion q); -00626 -00631 ODE_API void dBodySetLinearVel (dBodyID, dReal x, dReal y, dReal z); -00632 -00637 ODE_API void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z); -00638 -00648 ODE_API const dReal * dBodyGetPosition (dBodyID); -00649 -00650 -00658 ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos); -00659 -00660 -00666 ODE_API const dReal * dBodyGetRotation (dBodyID); -00667 -00668 -00676 ODE_API void dBodyCopyRotation (dBodyID, dMatrix3 R); -00677 -00678 -00684 ODE_API const dReal * dBodyGetQuaternion (dBodyID); -00685 -00686 -00694 ODE_API void dBodyCopyQuaternion(dBodyID body, dQuaternion quat); -00695 -00696 -00701 ODE_API const dReal * dBodyGetLinearVel (dBodyID); -00702 -00707 ODE_API const dReal * dBodyGetAngularVel (dBodyID); -00708 -00713 ODE_API void dBodySetMass (dBodyID, const dMass *mass); -00714 -00719 ODE_API void dBodyGetMass (dBodyID, dMass *mass); -00720 -00725 ODE_API void dBodyAddForce (dBodyID, dReal fx, dReal fy, dReal fz); -00726 -00731 ODE_API void dBodyAddTorque (dBodyID, dReal fx, dReal fy, dReal fz); -00732 -00737 ODE_API void dBodyAddRelForce (dBodyID, dReal fx, dReal fy, dReal fz); -00738 -00743 ODE_API void dBodyAddRelTorque (dBodyID, dReal fx, dReal fy, dReal fz); -00744 -00749 ODE_API void dBodyAddForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz, -00750 dReal px, dReal py, dReal pz); -00755 ODE_API void dBodyAddForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz, -00756 dReal px, dReal py, dReal pz); -00761 ODE_API void dBodyAddRelForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz, -00762 dReal px, dReal py, dReal pz); -00767 ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz, -00768 dReal px, dReal py, dReal pz); -00769 -00779 ODE_API const dReal * dBodyGetForce (dBodyID); -00780 -00790 ODE_API const dReal * dBodyGetTorque (dBodyID); -00791 -00800 ODE_API void dBodySetForce (dBodyID b, dReal x, dReal y, dReal z); -00801 -00810 ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z); -00811 -00817 ODE_API void dBodyGetRelPointPos -00818 ( -00819 dBodyID, dReal px, dReal py, dReal pz, -00820 dVector3 result -00821 ); -00822 -00828 ODE_API void dBodyGetRelPointVel -00829 ( -00830 dBodyID, dReal px, dReal py, dReal pz, -00831 dVector3 result -00832 ); -00833 -00840 ODE_API void dBodyGetPointVel -00841 ( -00842 dBodyID, dReal px, dReal py, dReal pz, -00843 dVector3 result -00844 ); -00845 -00854 ODE_API void dBodyGetPosRelPoint -00855 ( -00856 dBodyID, dReal px, dReal py, dReal pz, -00857 dVector3 result -00858 ); -00859 -00865 ODE_API void dBodyVectorToWorld -00866 ( -00867 dBodyID, dReal px, dReal py, dReal pz, -00868 dVector3 result -00869 ); -00870 -00876 ODE_API void dBodyVectorFromWorld -00877 ( -00878 dBodyID, dReal px, dReal py, dReal pz, -00879 dVector3 result -00880 ); -00881 -00899 ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode); -00900 -00917 ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z); -00918 -00924 ODE_API int dBodyGetFiniteRotationMode (dBodyID); -00925 -00931 ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result); -00932 -00938 ODE_API int dBodyGetNumJoints (dBodyID b); -00939 -00946 ODE_API dJointID dBodyGetJoint (dBodyID, int index); -00947 -00953 ODE_API void dBodyEnable (dBodyID); -00954 -00962 ODE_API void dBodyDisable (dBodyID); -00963 -00969 ODE_API int dBodyIsEnabled (dBodyID); -00970 -00978 ODE_API void dBodySetGravityMode (dBodyID b, int mode); -00979 -00985 ODE_API int dBodyGetGravityMode (dBodyID b); -00986 -00987 -00988 -01064 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID); -01065 -01072 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID); -01073 -01080 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID); -01081 -01088 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *); -01089 -01096 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID); -01097 -01104 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID); -01105 -01112 ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID); -01113 -01120 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID); -01121 -01122 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID); -01123 -01130 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID); -01131 -01138 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID); -01139 -01146 ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID); -01147 -01156 ODE_API void dJointDestroy (dJointID); -01157 -01158 -01164 ODE_API dJointGroupID dJointGroupCreate (int max_size); -01165 -01172 ODE_API void dJointGroupDestroy (dJointGroupID); -01173 -01181 ODE_API void dJointGroupEmpty (dJointGroupID); -01182 -01196 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2); -01197 -01202 ODE_API void dJointSetData (dJointID, void *data); -01203 -01208 ODE_API void *dJointGetData (dJointID); -01209 -01224 ODE_API int dJointGetType (dJointID); -01225 -01236 ODE_API dBodyID dJointGetBody (dJointID, int index); -01237 -01245 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *); -01246 -01251 ODE_API dJointFeedback *dJointGetFeedback (dJointID); -01252 -01260 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z); -01261 -01266 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z); -01267 -01272 ODE_API void dJointSetBallParam (dJointID, int parameter, dReal value); -01273 -01278 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z); -01279 -01280 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); -01281 -01286 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z); -01287 -01292 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value); -01293 -01302 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque); -01303 -01308 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z); -01309 -01313 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); -01314 -01319 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value); -01320 -01329 ODE_API void dJointAddSliderForce(dJointID joint, dReal force); -01330 -01335 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z); -01336 -01341 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z); -01342 -01347 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z); -01348 -01353 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value); -01354 -01361 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2); -01362 -01367 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z); -01368 -01373 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z); -01374 -01379 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z); -01380 -01385 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value); -01386 -01393 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2); -01394 -01395 -01400 ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z); -01401 -01406 ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z); -01407 -01412 ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z); -01413 -01420 ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value); -01421 -01430 ODE_API void dJointAddPRTorque (dJointID j, dReal torque); -01431 -01432 -01439 ODE_API void dJointSetFixed (dJointID); -01440 -01441 /* -01442 * @brief Sets joint parameter -01443 * -01444 * @ingroup joints -01445 */ -01446 ODE_API void dJointSetFixedParam (dJointID, int parameter, dReal value); -01447 -01453 ODE_API void dJointSetAMotorNumAxes (dJointID, int num); -01454 -01459 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel, -01460 dReal x, dReal y, dReal z); -01461 -01471 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle); -01472 -01477 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value); -01478 -01483 ODE_API void dJointSetAMotorMode (dJointID, int mode); -01484 -01493 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3); -01494 -01500 ODE_API void dJointSetLMotorNumAxes (dJointID, int num); -01501 -01513 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z); -01514 -01519 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value); -01520 -01524 ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value); -01525 -01530 ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value); -01531 -01535 ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value); -01536 -01543 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result); -01544 -01555 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result); -01556 -01561 ODE_API dReal dJointGetBallParam (dJointID, int parameter); -01562 -01570 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result); -01571 -01580 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result); -01581 -01586 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result); -01587 -01592 ODE_API dReal dJointGetHingeParam (dJointID, int parameter); -01593 -01604 ODE_API dReal dJointGetHingeAngle (dJointID); -01605 -01610 ODE_API dReal dJointGetHingeAngleRate (dJointID); -01611 -01619 ODE_API dReal dJointGetSliderPosition (dJointID); -01620 -01625 ODE_API dReal dJointGetSliderPositionRate (dJointID); -01626 -01631 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result); -01632 -01637 ODE_API dReal dJointGetSliderParam (dJointID, int parameter); -01638 -01645 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result); -01646 -01655 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result); -01656 -01661 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result); -01662 -01667 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result); -01668 -01673 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter); -01674 -01679 ODE_API dReal dJointGetHinge2Angle1 (dJointID); -01680 -01685 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID); -01686 -01691 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID); -01692 -01699 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result); -01700 -01714 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result); -01715 -01720 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result); -01721 -01726 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result); -01727 -01728 -01733 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter); -01734 -01746 ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angle2); -01747 -01752 ODE_API dReal dJointGetUniversalAngle1 (dJointID); -01753 -01758 ODE_API dReal dJointGetUniversalAngle2 (dJointID); -01759 -01764 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID); -01765 -01770 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID); -01771 -01772 -01773 -01780 ODE_API void dJointGetPRAnchor (dJointID, dVector3 result); -01781 -01793 ODE_API dReal dJointGetPRPosition (dJointID); -01794 -01800 ODE_API dReal dJointGetPRPositionRate (dJointID); -01801 -01802 -01807 ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result); -01808 -01813 ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result); -01814 -01819 ODE_API dReal dJointGetPRParam (dJointID, int parameter); -01820 -01821 -01822 -01831 ODE_API int dJointGetAMotorNumAxes (dJointID); -01832 -01842 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result); -01843 -01860 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum); -01861 -01870 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum); -01871 -01880 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum); -01881 -01886 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter); -01887 -01901 ODE_API int dJointGetAMotorMode (dJointID); -01902 -01907 ODE_API int dJointGetLMotorNumAxes (dJointID); -01908 -01913 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result); -01914 -01919 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter); -01920 -01925 ODE_API dReal dJointGetFixedParam (dJointID, int parameter); -01926 -01927 -01931 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID); -01932 -01936 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*); -01937 -01944 ODE_API int dAreConnected (dBodyID, dBodyID); -01945 -01959 ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type); -01960 -01961 -01962 #ifdef __cplusplus -01963 } -01964 #endif -01965 -01966 #endif -