API of ODE
注:ODEã®å˜ä½ç³»ã¯çµ±ä¸€ãŒå–れã¦ã„れã°ä½•ã§ã‚‚ã‹ã¾ã„ã¾ã›ã‚“.ãŸã ã—,角度ã¯radianã¨ãªã‚Šã¾ã™ï¼Žã“ã®ã‚µã‚¤ãƒˆã‚„ODE本ã§ã¯æ¨™æº–çš„ãªSIå˜ä½ç³»ã‚’使ã£ã¦ã„ã¾ã™ï¼ŽãªãŠã€drawstuffã®APIã§ã‚ã‚‹dsSetViewpoint(float xyz[3], float hpr[3])ã®è¦–ç·šæ–¹å‘ã®è§’度をè¨å®šã™ã‚‹é…列hprã®å˜ä½ã ã‘ã¯åº¦ã¨ãªã‚Šã¾ã™ã€‚
Open Dynamics Engineã®API集ã§ã™ï¼Žï¼’å¹´å‰ã«ODE本ã«ä»˜éŒ²ã§æŽ²è¼‰ã—よã†ã¨ã—ã¾ã—ãŸãŒãƒšãƒ¼ã‚¸æ•°ã®åˆ¶ç´„ã§æ–念ã—ã¾ã—ãŸï¼Žå°‘ã—å¤ã完全ãªAPI集ã§ã¯ã‚りã¾ã›ã‚“ãŒï¼Œå‚考ã«ãªã‚‹ã“ã¨ã‚’願ã£ã¦æŽ²è¼‰ã—ã¾ã™ï¼Žã¾ãŸï¼Œåˆ©ä¾¿æ€§ã®ãŸã‚ã«drawstuffã®APIも入れã¦ã„ã¾ã™ï¼Ždrawstuffã®APIã¯å°æ–‡å—ã®dsã§å§‹ã¾ã‚Šï¼ŒSã®é …ã«å…¥ã‚Œã¦ã„ã¾ã™ï¼Žæ™‚間を見ã¤ã‘ã¦ãƒ–ラッシュアップã—ã¦ã„ããŸã„ã¨æ€ã£ã¦ã„ã¾ã™ï¼Ž
A
- int dAllocateODEDataForThread(unsigned AllocateFlags);
ODEを使ã†å…¨ã¦ã®ã‚¹ãƒ¬ãƒƒãƒ‰ã‹ã‚‰å‘¼ã³å‡ºã•ãªã‘れã°ãªã‚‰ãªã„.AllocateFlagsã¯ï¼ã¾ãŸã¯dAllocateFlagCollisinDateã§ã‚る.
- int dAreConnected (dBodyID body1, dBodyID body2);
ボディbody1ã¨body2ãŒã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã§çµåˆã•れã¦ã„ãŸã‚‰1 ã‚’è¿”ã—,ãれ以外ã¯0ã‚’è¿”ã™ï¼Ž
- int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type);
ボディ1ã¨ãƒœãƒ‡ã‚£2ãŒjoint_typeã‚’æŒãŸãªã„ジョイントã§çµåˆã•れã¦ã„ãŸã‚‰1 ã‚’è¿”ã—,ãれ以外ã¯0 ã‚’ã™ï¼Žjoint_typeã¯dJointTypeXXX定数ã§ã‚る.ã“ã®å®šæ•°ã¯dJointGetType()ã‚’å‚照.ã“れã¯2 ã¤ã®ãƒœãƒ‡ã‚£ã«æŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹ã‹ã©ã†ã‹æ±ºã‚ã‚‹ã¨ãã«å½¹ç«‹ã¤ï¼Žã‚‚ã—,ã™ã§ã«æŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆä»¥å¤–ã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã§çµåˆã•れã¦ã„ã‚‹å ´åˆã«æŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹ã“ã¨ã¯é©åˆ‡ã§ã¯ãªã„ãŒï¼ŒæŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã§çµåˆã•れã¦ã„ã‚‹å ´åˆã«æŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹ã“ã¨ã¯å•題ãªã„.
B
- void dBodyAddForce(dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddTorque(dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddRelForce(dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddRelTorque(dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddForceAtPos(dBodyID, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
- void dBodyAddForceAtRelPos(dBodyID, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
- void dBodyAddRelForceAtPos(dBodyID, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
- void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz);
力をボディã«çµ¶å¯¾åº§æ¨™ç³»ã¾ãŸã¯ç›¸å¯¾åº§æ¨™ç³»ã§ä¸Žãˆã‚‹ï¼ŽåŠ›ã¯å„ボディã«è“„ç©ã•れるãŒï¼Œå„時間ステップ毎ã«0 ã«åˆæœŸåŒ–ã•れる.***RelForceã¨***RelTorque ã¯ç‰©ä½“ã®ç›¸å¯¾åº§æ¨™ç³»ã§ã®ä½ç½®(x, y, z) ã«åŠ›ã¾ãŸã¯ãƒˆãƒ«ã‚¯ã‚’作用ã™ã‚‹é–¢æ•°ã§ï¼Œ***ForceAtPos ã¨***ForceAtRelPos ã¯æŒ‡å®šã—ãŸä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ã«åŠ›ã‚’ä½œç”¨ã™ã‚‹é–¢æ•°ã§ã‚る.
- dBodyID dBodyCreate(dWorldID);
与ãˆã‚‰ã‚ŒãŸãƒ¯ãƒ¼ãƒ«ãƒ‰ã«ãƒœãƒ‡ã‚£ã‚’絶対座標系ã§ã®ä½ç½®(0,0,0) ã«ç”Ÿæˆã—,ãã®ID 番å·ã‚’è¿”ã™.
- void dBodyDestroy(dBodyID);
dBodyID ã§æŒ‡å®šã•れãŸãƒœãƒ‡ã‚£ã‚’ç ´å£Šã™ã‚‹ï¼Žãƒœãƒ‡ã‚£ã«æŽ¥ç¶šã•れã¦ã„ãŸã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã¯æ©Ÿèƒ½ã—ãªããªã‚‹ãŒç ´å£Šã¯ã•れãªã„.
- const dReal *dBodyGetForce(dBodyID);
- const dReal *dBodyGetTorque(dBodyID);
ボディã«åŠ ãˆã‚‰ã‚Œã¦ã„る力ã€ãƒˆãƒ«ã‚¯ã‚’å–å¾—ã™ã‚‹ï¼Žé–¢ç¯€ã§çµåˆã•れã¦ã„る複数ã®ãƒœãƒ‡ã‚£ã®åŠ›ï¼Œãƒˆãƒ«ã‚¯ã‚’å–å¾—ã—ãŸã„å ´åˆã¯ï¼ŒdJointGetFeedback()を使ã†ã“ã¨ï¼Ž
- void dBodyGetPointVel (dBodyID b, dReal px, dReal py, dReal pz,  dVector3 result)
絶対座標系ã§è¡¨ã•れã¦ã„ã‚‹ä½ç½®(px, py, pz)ã®é€Ÿåº¦ã‚’絶対座標系ã§å–å¾—ã™ã‚‹ã€‚
- const dReal *dBodyGetPosition(dBodyID);
ボディã®ä½ç½®ã‚’å–å¾—ã™ã‚‹ï¼Žè¦ç´ 数3個ã®é…列ã§ã‚るボディã®ä½ç½®(x, y, z) ã¸ã®const ãƒã‚¤ãƒ³ã‚¿ã‚’è¿”ã™ï¼Ž
- void dBodyGetPosRelPoint (dBodyID b, dReal px, dReal py, dReal pz, dVector3 result)
絶対座標系ã®ä½ç½®(px, py, pz)を相対座標系ã«å¤‰æ›ã™ã‚‹ã€‚dBodyGetRelPointPosã®å対。
- void dBodyGetRelPointVel (dBodyID b, dReal px, dReal py, dReal pz, dVector3 result)
ボディ座標系ã§è¡¨ã•れã¦ã„ã‚‹ä½ç½®(px, py, pz)ã®é€Ÿåº¦ã‚’絶対座標系ã§å–å¾—ã™ã‚‹ã€‚
- void dBodyGetRelPointPos (dBodyID b, dReal px, dReal py, dReal pz, dVector3 result)
相対座標系ã®ä½ç½®(px, py, pz)を絶対座標系ã«å¤‰æ›ã™ã‚‹ã€‚
- const dReal *dBodyGetRotation(dBodyID);
ボディã®ä½ç½®ã—,dBodyGetRotation ã¯å›žè»¢è¡Œåˆ—(4行3列)ã¸ã®constãƒã‚¤ãƒ³ã‚¿ã‚’è¿”ã™ï¼Ž
- const dReal * dBodyGetTorque(dBodyID);
ボディã«åŠ ãˆã‚‰ã‚Œã¦ã„るトルクをå–å¾—ã™ã‚‹ï¼Ž
- void dBodySetMass(dBodyID, const dMass *mass);
質é‡ãƒ‘ラメータをボディã«ã‚»ãƒƒãƒˆã™ã‚‹ï¼Ž
- void dBodySetPosition(dBodyID, dReal x, dReal y, dReal z);
dBodyID 番å·ã®ã¤ã„ãŸãƒœãƒ‡ã‚£ã®ä½ç½®ã‚’絶対座標系(x,y,z) ã«è¨å®šã™ã‚‹.
- dBodySetQuaternion(dBodyID body, const dQuaternion q);
body ã«ã‚¯ã‚ªãƒ¼ã‚¿ãƒ‹ã‚ªãƒ³q ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dBodySetRotation(dBodyID, const dMatrix3 R);
ボディã®å§¿å‹¢ã‚’回転行列R ã«è¨å®šã™ã‚‹.
- void dBodyVectorToWorld(dBodyID body, Â dReal px, dReal py, dReal pz, dVector3 result);
bodyã®åº§æ¨™ç³»ï¼ˆç›¸å¯¾åº§æ¨™ç³»ï¼‰ã®ãƒ™ã‚¯ãƒˆãƒ«(px, py, pz)を世界座標系(絶対座標系)ã¸å¤‰æ›ã—ï¼Œçµæžœã‚’resultã«æ ¼ç´ã™ã‚‹ï¼Ž
- void dBodyVectorFromWorld(dBodyID body, Â dReal px, dReal py, dReal pz, dVector3 result);
世界座標系(絶対座標系)ã®ãƒ™ã‚¯ãƒˆãƒ«(px, py, pz)ã‚’bodyã®åº§æ¨™ç³»ï¼ˆç›¸å¯¾åº§æ¨™ç³»ï¼‰ã¸å¤‰æ›ã—ï¼Œçµæžœã‚’resultã«æ ¼ç´ã™ã‚‹ï¼Ž
C
- void dCleanupODEAllDataForThread();
ライブラリãŒdInitFlagManualThreadCleanupã§åˆæœŸåŒ–ã•れãŸã¨ãã ã‘,ライブラリをクリーンアップã™ã‚‹ãŸã‚(終了ã•ã›ã‚‹å‰ã®ãŠæŽƒé™¤ï¼‰ã«åˆ©ç”¨ã™ã‚‹ï¼Ž
- void dCloseODE();
ライブラリを終了ã™ã‚‹ï¼ŽdInitODE2()ã¾ãŸã¯dInitODE()ãŒå…ˆã«å‘¼ã³å‡ºã•れã¦ã„ãªã‘れã°ã„ã‘ãªã„.ODEをシングルスレッドã‹ã‚‰ä½¿ã†å ´åˆã®ã¿ä½¿ç”¨ã™ã‚‹ã“ã¨ï¼Ž
- int dCollide(dGeomID o1, dGeomID o2, int flags, dContactGeom *contact, int skip);
与ãˆã‚‰ã‚ŒãŸï¼’ã¤ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªo1 ã¨o2 ãŒäº¤å·®ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã¨ãã«ï¼Œãã‚Œã‚‰ã®æŽ¥è§¦æƒ…å ±ã‚’ç”Ÿæˆã™ã‚‹ï¼Žå¼•æ•°flags ã¯ç¾åœ¨ã®ã¨ã“ã‚ã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒæŽ¥è§¦ã—ãŸéš›ã®æœ€å¤§æŽ¥è§¦ç‚¹æ•°ã‚’指定ã™ã‚‹æ•´æ•°ã§ã‚る.ãれãŒ0 ã«è¨å®šã•れãŸå ´åˆã¯, 接触点ãŒï¼‘個ã‚ã‚‹ã‚‚ã®ã¨ã—ã¦è¨ˆç®—ã•れる.
引数contact ã¯dContactGeom æ§‹é€ ä½“é…列ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã§ã‚る.ã“ã®æ§‹é€ 体ã¯å°‘ãªãã¨ã‚‚æŽ¥è§¦ç‚¹ã®æœ€å¤§æ•°åˆ†ã®æƒ…å ±ã‚’ä¿æŒã§ããªã‘れã°ãªã‚‰ãªã„.dContactGeom æ§‹é€ ä½“ã¯ã‚ã‚‹é…列ã®ä¸ã«å¤§ããªæ§‹é€ 体ã¨ã—ã¦åŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„ã‚‹.
引数skip ã¯é…列ä¸ã®ã‚ã‚‹dContactGeom æ§‹é€ ä½“ã‹ã‚‰æ¬¡ã®ãれã¸ã®ãƒã‚¤ãƒˆã‚ªãƒ•セットã§ã‚る.skip ã®ã‚µã‚¤ã‚ºãŒsizeof(dContact)ãªã‚‰ã°é€šå¸¸ï¼ˆC 言語スタイル)ã®é…列ã§ã‚り,ãれよりå°ã•ã„å ´åˆã¯ã‚¨ãƒ©ãƒ¼ã¨ãªã‚‹ï¼Žã‚‚ã—,ジオメトリãŒäº¤å·®ã—ãŸã‚‰ï¼ˆæŽ¥è§¦é…列を更新ã—ã¦ï¼‰æŽ¥è§¦ç‚¹æ•°ã‚’è¿”ã™ï¼Žäº¤å·®ã—ãªã„å ´åˆã¯0 ã‚’è¿”ã™ï¼Ž
ã“ã®é–¢æ•°ã¯o1 ã¨o2 ãŒåŒã˜ã‚¹ãƒšãƒ¼ã‚¹ã ã‚ã†ãŒé•ã†ã‚¹ãƒšãƒ¼ã‚¹ã«æ‰€å±žã—ã¦ã‚‚ã‹ã¾ã‚ãšã«è¨ˆç®—ã™ã‚‹ï¼Ž
struct dContact {
dSurfaceParameters <strong>surface</strong>;
dContactGeom <strong>geom</strong>;
dVector3 <strong>fdir1</strong>;
};
struct dSurfaceParameters {
int <strong>mode</strong>; // 接触フラグ.以下ã®è¡¨ã‚’å‚ç…§
dReal <strong>mu</strong>; // 摩擦係数.ã“れã¯å¿…ãšè¨å®šã—ãªã‘れã°ãªã‚‰ãªã„.
// 以下ã®ãƒ¡ãƒ³ãƒã‚’使ã†ãŸã‚ã«å¯¾å¿œã™ã‚‹flagã‚’modeã§è¨å®šã—ãªã‘れã°ãªã‚‰ãªã„
dReal <strong>mu2</strong>; // muãŒæ‘©æ“¦æ–¹å‘1,mu2ã¯æ‘©æ“¦æ–¹å‘2, mu2ãŒè¨å®šã•れãªã„å ´åˆã¯muãŒä¸¡æ–¹å‘ã«é©ç”¨
dReal <strong>bounce</strong>; // å発係数
dReal <strong>bounce_vel</strong>; // è·³ã返るãŸã‚ã®æœ€ä½Žé€Ÿåº¦ï¼Žbounceã‚’è¨å®šã—ãŸå ´åˆã“れもè¨å®šã—ãªã‘れã°ãªã‚‰ãªã„.
dReal <strong>soft_erp</strong>; // æŽ¥è§¦ç‚¹ã®æ³•ç·šæ–¹å‘ã®erp
dReal <strong>soft_cfm</strong>; // æŽ¥è§¦ç‚¹ã®æ³•ç·šæ–¹å‘ã®cfm
dReal <strong>motion1</strong>, <strong>motion2</strong>, <strong>motionN</strong>; // 摩擦方å‘1,2,法線方å‘ã®è¡¨é¢é€Ÿåº¦
dReal <strong>slip1</strong>, <strong>slip2</strong>; // 摩擦方å‘1,2ã®ã‚¹ãƒªãƒƒãƒ—(force-dependent slip)
};
modeã®è¡¨
| dContactMu2 | è¨å®šã•れãªã„å ´åˆã¯muãŒä¸¡æ–¹å‘ã®æ‘©æ“¦ä¿‚æ•°ã«é©ç”¨ï¼Žè¨å®šã•れãŸå ´åˆã¯muãŒæ‘©æ“¦æ–¹å‘1,mu2ã¯æ‘©æ“¦æ–¹å‘ï¼’ |
| dContactFDir1 | è¨å®šã•れãŸå ´åˆã¯fdir1ãŒæ‘©æ“¦æ–¹å‘1ã¨ãªã‚Šï¼Œãã‚Œä»¥å¤–ã¯æŽ¥è§¦ç‚¹ã®æ³•ç·šæ–¹å‘ã¨åž‚ç›´ã«ãªã‚‹ã‚ˆã†ã«æ‘©æ“¦æ–¹å‘1ãŒè¨ˆç®—ã•れる. |
| dContactBounce | è¨å®šã•ã‚ŒãŸæŽ¥è§¦è¡¨é¢ãŒå発性をæŒã¤ï¼Žå発係数ã¯bounceã§è¨å®šã™ã‚‹ï¼Ž |
| dContactSoftERP | è¨å®šã•れãŸå ´åˆï¼ŒæŽ¥è§¦ç‚¹ã®æŽ¥ç·šæ–¹å‘ã«erpã‚’è¨å®šã™ã‚‹ï¼Žè¡¨é¢ã‚’ã‚„ã‚らã‹ãã™ã‚‹åŠ¹æžœã‚’æŒã¤ï¼Ž |
| dContactSoftCFM | è¨å®šã•れãŸå ´åˆï¼ŒæŽ¥è§¦ç‚¹ã®æŽ¥ç·šæ–¹å‘ã«cfmã‚’è¨å®šã™ã‚‹ï¼Žè¡¨é¢ã‚’ã‚„ã‚らã‹ãã™ã‚‹åŠ¹æžœã‚’æŒã¤ï¼Ž |
| ContactMotion1 | è¨å®šã•れãŸå ´åˆï¼Œæ‘©æ“¦è¡¨é¢ã¯ãƒœãƒ‡ã‚£ã®é‹å‹•ã«ç„¡é–¢ä¿‚ã«ç§»å‹•ã™ã‚‹ï¼Žãƒ™ãƒ«ãƒˆã‚³ãƒ³ãƒ™ã‚¢ãŒæ‘©æ“¦è¡¨é¢ã«ã‚ã‚‹ã“ã¨ã‚’想åƒã—ã¦æ¬²ã—ã„.ã“ã®ãƒ•ラグã¯motion1を摩擦方å‘1ã«è¨å®šã™ã‚‹ï¼Ž |
| dContactMotion2 | åŒä¸Šï¼ŽãŸã ã—,摩擦方å‘ï¼’ |
| dContactMotionN | åŒä¸Šï¼ŽãŸã ã—ï¼Œæ³•ç·šæ–¹å‘ |
| dContactSlip1 | 摩擦方å‘1ã®åŠ›ä¾å˜æ€§ã‚¹ãƒªãƒƒãƒ—(Force-dependent-slip,FDS) |
| dContactSlip2 | 摩擦方å‘ï¼’ã®FDS |
| dContactApprox1_1 | è¨å®šã•れãŸå ´åˆã¯æ‘©æ“¦æ–¹å‘ï¼‘ã«æ‘©æ“¦å››è§’éŒãƒ¢ãƒ‡ãƒ«ã‚’é©ç”¨ã™ã‚‹ï¼Žè¨å®šã•れãªã„å ´åˆã¯åŠ›é™ç•Œå®šæ•°è¿‘似(constant-force-limit)ãŒç”¨ã„られる.ã“ã®å ´åˆã¯ï¼Œmuã¯æ‘©æ“¦åŠ›ã®é™ç•Œå€¤ã¨ãªã‚‹ï¼Ž |
| dContactApprox1_2 | è¨å®šã•れãŸå ´åˆã¯æ‘©æ“¦æ–¹å‘ï¼’ã«æ‘©æ“¦å››è§’éŒãƒ¢ãƒ‡ãƒ«ã‚’é©ç”¨ã™ã‚‹ï¼Žè¨å®šã•れãªã„å ´åˆã¯åŠ›é™ç•Œå®šæ•°è¿‘似(constant-force-limit)ãŒç”¨ã„られる.ã“ã®å ´åˆã¯ï¼Œmuã¯æ‘©æ“¦åŠ›ã®é™ç•Œå€¤ã¨ãªã‚‹ï¼Ž |
| dContactApprox1 | è¨å®šã•れãŸå ´åˆã¯ï¼Œæ‘©æ“¦æ–¹å‘1ã¨ï¼’ã«æ‘©æ“¦å››è§’éŒãƒ¢ãƒ‡ãƒ«ã‚’é©ç”¨ã™ã‚‹ï¼Ž |
- dGeomID dCreateBox (dSpaceID space, dReal lx, dReal ly, dReal lz);
space ã§æŒ‡å®šã•れãŸã‚¹ãƒšãƒ¼ã‚¹ã«x,y,z è»¸ã«æ²¿ã£ãŸé•·ã•lx,ly,lz ã®ç›´æ–¹ä½“ジオメトリを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žç›´æ–¹ä½“ジオメトリã®å‚照点ã¯ãã®é‡å¿ƒã§ã‚る.
- dGeomID dCreateCapsule(dSpaceID space, dReal r, dReal l);
space ã§æŒ‡å®šã•れãŸã‚¹ãƒšãƒ¼ã‚¹ã«åŠå¾„r,長ã•l ã®ã‚«ãƒ—セルジオメトリを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žã‚«ãƒ—ã‚»ãƒ«ã¯æ™®é€šã®å††æŸ±ã®ä¸¡ç«¯ã«åŠçƒã‚’被ã›ãŸã‚ˆã†ãªã‚‚ã®ã§ã‚る.ã“ã®ç‰¹å¾´ã¯è¡çªæ¤œå‡ºã®å†…部コードを拘æŸã‹ã¤æ£ç¢ºã«ã™ã‚‹ã“ã¨ãŒã§ãる.引数l ã«ã¯åŠçƒã®ã‚ャップを入れãªã„.ã‚ャップã®åŠå¾„ã¯å††æŸ±ã®åŠå¾„r ã¨åŒã˜ã§ã‚る.
- dGeomID dCreateCylinder(dSpaceID space, dReal r, dReal l);
スペースspaceã«åŠå¾„r,長ã•l ã®å††æŸ±ã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žâ€˜
- dGeomID dCreateGeomTransform(dSpaceID space);
スペースspaceã«ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒˆãƒ©ãƒ³ã‚¹ãƒ•ォームを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
- dGeomID dCreateRay(dSpaceID space, dReal l);
スペースspace ã«ï¼Œé•·ã•lã®å…‰ç·šã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’作æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
- dGeomID dCreateSphere(dSpaceID space, dReal r);
åŠå¾„rã®çƒã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
- dGeomID dCreatePlane(dSpaceID space, dReal a, dReal b, dReal c, dReal d);
å¹³é¢ã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’与ãˆã‚‰ã‚ŒãŸå¼•æ•°ã«ã‚ˆã‚Šç”Ÿæˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žå¼•æ•°space ãŒ0 ã§ãªã‘れã°ï¼Œãã®space ã«å¹³é¢ã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’挿入ã™ã‚‹ï¼Žå¼•æ•°a,b,c,d ã¯å¹³é¢ã®æ–¹ç¨‹å¼ã€€ax+by+cz = d ã®ãƒ‘ラメータã§ã‚る.平é¢ã®æ³•線ベクトルã¯(a,b,c) ã§ã‚り長ã•ã¯ï¼‘ã§ãªã‘れã°ãªã‚‰ãªã„.平é¢ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¯è¨ç½®ä¸å¯èƒ½(non-placeable),ã¤ã¾ã‚Šä½ç½®ã‚„姿勢を定義ã§ããªã„特別ãªã‚¸ã‚ªãƒ¡ãƒˆãƒªã§å¸¸ã«çµ¶å¯¾åº§æ¨™ç³»ã§å®šç¾©ã—ãªã‘れã°ãªã‚‰ãªã„.ã¤ã¾ã‚Šï¼Œå¹³é¢ã‚ªãƒ–ジェクトã¯å¸¸ã«é™çš„ãªç’°å¢ƒã®ä¸€éƒ¨ã¨ã—ã¦ä½¿ã‚れるã“ã¨ã‚’仮定ã—ã¦ã„る.
- dGeomID dCreateTriMesh(dSpaceID space, dTriMeshDataID Data, dTriCallback *Callback,dTriArrayCallback * ArrayCallback, dTriRayCallback* RayCallback);
三角メッシュジオメトリを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
- void dCROSS(a,op,b,c)
外ç©ã®è¨ˆç®—。a op b × cを計算ã™ã‚‹ã€‚ã“ã“ã§ã€opã¯=,  +=, ã¾ãŸã¯-=ã¨ãªã‚Šã€ a, b, cã¯3次元ベクトル。
D
- void dGeomTriMeshDataBuild (dTriMeshDataID g, const void* Vertices, int VertexStride, int VertexCount,const void* Indices, int IndexCount, int TriStride, const void* Normals);
dTriMeshData オブジェクトをデータã§è©°ã‚ã‚‹ã®ã«ä½¿ã‚れる.ã“ã“ã§ã¯ï¼Œãƒ‡ãƒ¼ã‚¿ã¯ã‚³ãƒ”ーã•れãªã„ã®ã§ï¼Œã“ã®é–¢æ•°ã‚’通éŽã™ã‚‹ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã¯æœ‰åйã§ãªã‘れã°ã„ã‘ãªã„.
E
F
G
- dBodyID dGeomGetBody(dGeomID geom);
ジオメトリgeomã«å¯¾å¿œã™ã‚‹ãƒœãƒ‡ã‚£ID ã‚’å–å¾—ã™ã‚‹ï¼Ž
- void dGeomDestroy(dGeomID geom);
ジオメトリgeomã‚’ç ´å£Šã—スペースã‹ã‚‰å‰Šé™¤ã™ã‚‹ï¼Ž
- void dGeomDisable (dGeomID geom);
- void dGeomEnable (dGeomID geom);
ジオメトリgeomを無効ã¾ãŸã¯æœ‰åйã«ã™ã‚‹ï¼Žç„¡åйã«ã•れãŸã‚¸ã‚ªãƒ¡ãƒˆãƒªã¯ã‚¹ãƒšãƒ¼ã‚¹ã«ã¯å±žã—ã¦ã„ã‚‹ãŒdSpaceCollide() ã¨dSpaceCollide2() ã«ç„¡è¦–ã•れる.
- int dGeomIsEnabled(dGeomID geom);
ジオメトリgeomãŒç„¡åйãªã‚‰0 ã‚’è¿”ã—,有効ãªã‚‰1 ã‚’è¿”ã™ï¼Žæ–°ã—ã„ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¯æœ‰åйãªçŠ¶æ…‹ã§ä½œæˆã•れる.
- int dGeomGetClass(dGeomID);
ジオメトリgeomã®ã‚¯ãƒ©ã‚¹ç•ªå·ã‚’è¿”ã™ï¼Žã‚¯ãƒ©ã‚¹ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã‚る.
- dSphereClass: çƒ
- dBoxClass: 直方体
- dCapsuleClass: カプセル
- dCylinderClass: シリンダ
- dPlaneClass: å¹³é¢
- dGeomTransformClass: ジオメトリトランスフォーム(Geometry transform)
- dRayClass: 光線(Ray)
- dTriMeshClass: 三角メッシュ(Triangle mesh)
- dSimpleSpaceClass: å˜ç´”スペース
- dHashSpaceClass: ãƒãƒƒã‚·ãƒ¥è¡¨ãƒ™ãƒ¼ã‚¹ã®ã‚¹ãƒšãƒ¼ã‚¹
- const dReal *dGeomGetPosition(dGeomID geom);
ジオメトリgeomã®çµ¶å¯¾åº§æ¨™ç³»ã§ã®ä½ç½®ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’è¿”ã™ï¼Žã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒãƒœãƒ‡ã‚£ã«è¨å®šã•れãŸå ´åˆã¯ï¼Œãƒœãƒ‡ã‚£ã®ä½ç½®ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’è¿”ã™ï¼Žã¤ã¾ã‚Šï¼ŒdBodyGetPosition() ã¨åŒã˜ã§ã‚る.
- void dGeomGetQuaternion(dGeomID geom, dQuaternion result);
ジオメトリgeomã®ã‚¯ã‚ªãƒ¼ã‚¿ãƒ‹ã‚ªãƒ³ã‚’第2 引数ã®resultã¸ã‚³ãƒ”ーã™ã‚‹ï¼Žã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒãƒœãƒ‡ã‚£ã«è¨å®šã•れãŸå ´åˆã¯ï¼ŒdBodyGetQuaternion() ã¨åŒã˜ã§ã‚る.
- const dReal *dGeomGetRotation(dGeomID);
dGeomID ã§æŒ‡å®šã•れãŸã‚¸ã‚ªãƒ¡ãƒˆãƒªã®å›žè»¢è¡Œåˆ—ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’è¿”ã™ï¼Žã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒãƒœãƒ‡ã‚£ã«è¨å®šã•れãŸå ´åˆã¯ï¼ŒdBodyGetRotation() ã¨åŒã˜ã§ã‚る.
- dSpaceID dGeomGetSpace (dGeomID geom);
ジオメトリgeomã‚’æ ¼ç´ã—ã¦ã„るスペースID ã‚’è¿”ã™ï¼Žã‚‚ã—,ã©ã®ã‚¹ãƒšãƒ¼ã‚¹ã«ã‚‚属ã—ã¦ã„ãªã‘れã°0 ã‚’è¿”ã™ï¼Ž
- void dGeomSetBody(dGeomID, dBodyID);
ã“ã®é–¢æ•°ã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¨ãƒœãƒ‡ã‚£ã‚’関連付ã‘る.ジオメトリã«ãƒœãƒ‡ã‚£ã‚’è¨å®šã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šä¸¡è€…ã®ä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ã¨å›žè»¢è¡Œåˆ—ã¯è‡ªå‹•çš„ã«çµã³ä»˜ã‘られる.ã¤ã¾ã‚Šï¼Œä½ç½®ã¨å§¿å‹¢ã¯ãƒœãƒ‡ã‚£ã‹ã‚¸ã‚ªãƒ¡ãƒˆãƒªã ã‘ã«è¨å®šã™ã‚Œã°ã‚ˆã„.ãŸã ã—,è¨ç½®ä¸å¯èƒ½ãªå¹³é¢ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¯å‹•力å¦è¨ˆç®—ã®å¯¾è±¡ã«ãªã‚‰ãªã„ã®ã§ã“ã®é–¢æ•°ã‚’呼ã³å‡ºã™ã¨ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ï¼Ž
- void dGeomTriMeshDataBuild (dTriMeshDataID g, const void* Vertices, int VertexStride, int VertexCount, const void* Indices, int IndexCount, int TriStride, const void* Normals);
三角メッシュオブジェクトをデータã§åŸ‹ã‚る.ã“ã“ã§ã¯ãƒ‡ãƒ¼ã‚¿ã¯ã‚³ãƒ”ーã•れãªã„.ãƒã‚¤ãƒ³ã‚¿ãŒã“ã®é–¢æ•°ã«æ¸¡ã•れる.
- void dGeomSetData (dGeomID, void *);
- void *dGeomGetData (dGeomID);
ユーザ定義データã®ãƒã‚¤ãƒ³ã‚¿ã‚’ジオメトリã«è¨å®šã‚ã‚‹ã„ã¯å–å¾—ã™ã‚‹ï¼Ž
- void dGeomSetOffsetPosition (dGeomID, dReal x, dReal y, dReal z);
- void dGeomSetOffsetRotation (dGeomID, const dMatrix3 R);
- void dGeomSetOffsetQuaternion (dGeomID, const dQuaternion);
ä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ï¼Œå›žè»¢è¡Œåˆ—,クオータニオンã®ã‚ªãƒ•セットを相対座標系ã§è¨å®šã™ã‚‹ï¼Žäºˆã‚ジオメトリã¯ãƒœãƒ‡ã‚£ã¨é–¢é€£ä»˜ã‘られã¦ã„ãªã‘れã°ãªã‚‰ãªã„.
- void dGeomSetPosition (dGeomID, dReal x, dReal y, dReal z);
- void dGeomSetRotation (dGeomID, const dMatrix3 R);
- void dGeomSetQuaternion (dGeomID, const dQuaternion);
ä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ï¼Œå›žè»¢è¡Œåˆ—,クオータニオンをè¨å®šã™ã‚‹ï¼Žã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒãƒœãƒ‡ã‚£ã«è¨å®šã•れãŸå ´ã¯ï¼ŒdBodySetPosition(), dBodySetRotation(), dBodySetQuaternion() ã¨åŒä¸€ã¨ãªã‚‹
- void dGeomTriMeshDataBuildSimple (dTriMeshDataID g, const dVector3*Vertices, int VertexCount, const int* Indices,int IndexCount);
三角メッシュã®ãƒ‡ãƒ¼ã‚¿ã‚’ç°¡å˜ã«ä½œæˆã™ã‚‹é–¢æ•°ï¼Ž
H
- dSpaceID dHashSpaceCreate (dSpaceID space);
高速ã«è¨ˆç®—å¯èƒ½ãªãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルを備ãˆãŸè¡çªæ¤œå‡ºè¨ˆç®—用スペースã®ç”Ÿæˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
I
- void dInitODE();
ODEã‚’åˆæœŸåŒ–ã™ã‚‹ï¼Žã“れを使ã†å ´åˆã¯dInitODE2()を呼ã³å‡ºã™å¿…è¦ã¯ãªã„.内部ã§dInitODE2()を呼ã³å‡ºã—ã¦ã„る.
- int dInitODE2(unsigned InitFlags);
ライブラリをåˆã‚ã¦ä½¿ã†å ´åˆã«ã“れを呼ã³å‡ºã•ãªã‘れã°ãªã‚‰ãªã„.InitFlagsã¯ï¼ã¾ãŸã¯dInitFlagManualThreadCleanupã§ã‚る.dCloseODE()ãŒå‘¼ã³å‡ºã•れるã¾ã§ï¼‘度ã ã‘呼ã³å‡ºã•ãªã‘れã°ãªã‚‰ãªã„.
J
- void dJointAttach(dJointID, dBodyID body1, dBodyID body2);
ジョイントを新ã—ã„ボディã«å–り付ã‘る.ã™ã§ã«ãã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå–り付ã‘られã¦ã„ãŸã‚‰ï¼Œã¾ãšå¤ã„ボディã‹ã‚‰å–り外ã•れる.ジョイントをボディ1個ã ã‘ã«å–り付ã‘ã‚‹ãŸã‚ã«ã¯ï¼Œå¼•æ•°body1 ã‹body2 ã‚’0 ã«è¨å®šã™ã‚‹ï¼ŽID 番å·0 ã®ãƒœãƒ‡ã‚£ã¯é™çš„ãªç’°å¢ƒã‚’指ã™ï¼Žä¸¡æ–¹ã®ãƒœãƒ‡ã‚£ã‚’0 ã«è¨å®šã™ã‚‹ã¨ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ä¸Šã§ã¯ä½•ã®åŠ¹æžœã‚‚æŒãŸãªã„.
- dJointID dJointCreateBall(dWorldID, dJointGroupID);
- dJointID dJointCreateHinge(dWorldID, dJointGroupID);
- dJointID dJointCreateSlider(dWorldID, dJointGroupID);
- dJointID dJointCreateContact(dWorldID,dJointGroupID,const dContact*);
- dJointID dJointCreateUniversal(dWorldID, dJointGroupID);
- dJointID dJointCreateHinge2(dWorldID, dJointGroupID);
- dJointID dJointCreateFixed(dWorldID, dJointGroupID);
- dJointID dJointCreateAMotor(dWorldID, dJointGroupID);
指定ã•れãŸã‚¿ã‚¤ãƒ—ã®æ–°ã—ã„ジョイントを生æˆã™ã‚‹ï¼Žãƒœãƒ‡ã‚£ã«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒçµåˆã•れãªã„é™ã‚Šï¼Œã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«åŠ¹æžœã‚’åŠã¼ã•ãªã„.dJointGroupID ã«ã¯é€šå¸¸0 ã‚’è¨å®šã™ã‚‹ï¼Ž
- dJointID dJointCreateContact(dWorldID, dJointGroupID,const dContact *);
æ–°ã—ã„ジョイントを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žå¼•æ•°dJointGroupIDã¯é€šå¸¸ã¯0 ã‚’è¨å®šã™ã‚‹ï¼ŽãれãŒ0 ã§ãªã„å ´åˆã¯ï¼Œã™ã§ã«å˜åœ¨ã™ã‚‹ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹ï¼ŽæŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã¯æ—¢ã«ä½œæˆã•れã¦ã„ã‚‹dContact æ§‹é€ ä½“ã§åˆæœŸåŒ–ã•れる.
- void dJointDestroy(dJointID);
ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚’ç ´å£Šã™ã‚‹ï¼Žçµåˆã•れã¦ã„るボディã‹ã‚‰ãã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚’å–り外ã—,ワールドã‹ã‚‰ã‚‚削除ã™ã‚‹ï¼Ž
- void dJointGetHingeAnchor(dJointID, dVector3 result);
ヒンジジョイントã®å›žè»¢ä¸å¿ƒç‚¹ã‚’絶対座標ã§å–å¾—ã™ã‚‹ï¼Žã“れã¯ãƒœãƒ‡ã‚£1上ã®ç‚¹ã‚’è¿”ã™ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå®Œå…¨ãªå ´åˆã¯ãƒœãƒ‡ã‚£2 上ã®ç‚¹ã¨ä¸€è‡´ã™ã‚‹ï¼Ž
- void dJointGetHingeAnchor2(dJointID, dVector3 result);
ヒンジジョイントã®å›žè»¢ä¸å¿ƒç‚¹ã‚’絶対座標ã§å–å¾—ã™ã‚‹ï¼Žã“れã¯ãƒœãƒ‡ã‚£2上ã®ç‚¹ã‚’è¿”ã™ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå®Œå…¨ãªå ´åˆã¯ãƒœãƒ‡ã‚£1 上ã®ç‚¹ã¨ä¸€è‡´ã—,ä¸å®Œå…¨ãªå ´åˆã¯ãšã‚ŒãŒã‚る.ã“れを使ã„ジョイントã®ãšã‚Œã‚’調ã¹ã‚‹ã“ã¨ãŒã§ãる.
- dReal dJointGetHingeAngle(dJointID);
ヒンジジョイントã®è§’度[rad] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetHingeAngleRate (dJointID);
ヒンジジョイントã®è§’速度[rad/s] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- void dJointGetHingeAxis (dJointID, dVector3 result);
ヒンジジョイントã®å›žè»¢è»¸ãƒ™ã‚¯ãƒˆãƒ«ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetHingeParam(dJointID, int parameter);
ヒンジジョイントã®ãƒ‘ラメータをå–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetHinge2Param(dJointID, int parameter);
ヒンジ2 ジョイントã®ãƒ‘ラメータをå–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetSliderParam(dJointID, int parameter);
スライダージョイントã®ãƒ‘ラメータをå–å¾—ã™ã‚‹ï¼Ž
- int dJointGetType(dJointID);
| dJointTypeBall | ボールジョイント |
| dJointTypeHinge | ヒンジジョイント |
| dJointTypeSlider | スライダージョイント |
| dJointTypeContact | 接触ジョイント |
| dJointTypeUniversal | ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆ |
| dJointTypeHinge2 | ヒンジ2ジョイント |
| dJointTypeFixed | 固定ジョイント |
| dJointTypeAMotor | 角度モータジョイント |
| dJointTypeLMotor | リニアモータジョイント |
| dJointTypePlane2D | 2次元平é¢ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆ. |
| dJointTypePR | 直動-Rotoide ジョイント |
| dJointTypePU | ç›´å‹•ï¼ãƒ¦ãƒ‹ãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆ |
| dJointTypePiston | ピストンジョイント |
- void dJointGetUniversalAnchor(dJointID, dVector3 result);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢ä¸å¿ƒç‚¹ã‚’å–å¾—ã™ã‚‹ï¼Žã“れã¯ãƒœãƒ‡ã‚£1 上ã®ç‚¹ã‚’è¿”ã™ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå®Œå…¨ãªå ´åˆã¯ãƒœãƒ‡ã‚£2 上ã®ç‚¹ã¨ä¸€è‡´ã™ã‚‹ï¼Ž
- void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢ä¸å¿ƒç‚¹ã‚’絶対座標ã§å–å¾—ã™ã‚‹ï¼Žã“れã¯ãƒœãƒ‡ã‚£2 上ã®ç‚¹ã‚’è¿”ã™ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆãŒå®Œå…¨ãªå ´åˆã¯ãƒœãƒ‡ã‚£1 上ã®ç‚¹ã¨ä¸€è‡´ã—,ä¸å®Œå…¨ãªå ´åˆã¯ãšã‚ŒãŒã‚る.ã“れを使ã„ジョイントã®ãšã‚Œã‚’調ã¹ã‚‹ã“ã¨ãŒã§ãる.
- void dJointGetUniversalAxis1(dJointID, dVector3 result);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸1 ã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’å–å¾—ã™ã‚‹ï¼Ž
- void dJointGetUniversalAxis2 (dJointID, dVector3 result);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸2 ã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetUniversalAngle1(dJointID);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸1 ã®è§’度[rad] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetUniversalAngle2(dJointID);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸2 ã®è§’度[rad] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetUniversalAngle1Rate(dJointID);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸1 ã®è§’速度[rad/s] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetUniversalAngle2Rate(dJointID);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®å›žè»¢è»¸2 ã®è§’速度[rad/s] ã‚’å–å¾—ã™ã‚‹ï¼Ž
- dReal dJointGetUniversalParam(dJointID, int parameter);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®ãƒ‘ラメータをå–å¾—ã™ã‚‹ï¼Ž
- dJointGroupID dJointGroupCreate(0);
ジョイントグループã®ç”Ÿæˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žä»¥å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ç¢ºä¿ã™ã‚‹é ˜åŸŸã®å¤§ãã•を確ä¿ã—ã¦ã„ãŸãŒç¾åœ¨ã¯ä½¿ã‚れã¦ãŠã‚‰ãšäº’æ›æ€§ã‚’ä¿ã¤ãŸã‚0 ã‚’è¨å®šã™ã‚‹.
- void dJointGroupDestroy (dJointGroupID);
ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ã‚’ç ´å£Šã™ã‚‹ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ä¸ã®å…¨ã¦ã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã¯ç ´å£Šã•れる.
- void dJointGroupEmpty(dJointGroupID);
ジョイントグループを空ã«ã™ã‚‹ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—内ã®å…¨ã¦ã®ã‚¸ãƒ§ã‚¤
ントã¯ç ´å£Šã•れるãŒï¼Œã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ãã®ã‚‚ã®ã¯ç ´å£Šã•れãªã„.
- dReal dJointGetAMotorParam(dJointID, int parameter);
A モータã®ãƒ‘ラメータをå–å¾—ã™ã‚‹ï¼Ž
- void dJointSetFixed(dJointID joint);
ジョイントjointを固定ジョイントã«è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHingeAnchor(dJointID joint, dReal x, dReal y, dReal z);
ジョイントjointã®ä¸å¿ƒç‚¹(anchor) ã®åº§æ¨™(x; y; z) ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHingeAxis(dJointID joint, dReal x, dReal y, dReal z);
ジョイントjointã®å›žè»¢è»¸ãƒ™ã‚¯ãƒˆãƒ«(x; y; z) ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHinge2Anchor(dJointID, dReal x, dReal y, dReal z);
指定ã•れãŸã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®ä¸å¿ƒç‚¹(anchor) ã®åº§æ¨™(x; y; z) ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHinge2Axis1(dJointID, dReal x, dReal y, dReal z);
ジョイントã®å›žè»¢è»¸1 ã®ãƒ™ã‚¯ãƒˆãƒ«(x; y; z) ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHinge2Axis2(dJointID, dReal x, dReal y, dReal z);
ジョイントã®å›žè»¢è»¸2 ã®ãƒ™ã‚¯ãƒˆãƒ«(x; y; z) ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetHingeParam(dJointID, int parameter, dReal value);
ヒンジジョイントã®ãƒ‘ラメータをè¨å®šã™ã‚‹ï¼Ž
- void dJointSetHinge2Param(dJointID, int parameter, dReal value);
ヒンジ2ジョイントã®ãƒ‘ラメータをè¨å®šã™ã‚‹ï¼Ž
- void dJointSetSliderAxis(dJointID, dReal x, dReal y, dReal z);
スライダジョイントã®è»¸ãƒ™ã‚¯ãƒˆãƒ«(x, y, z)ã‚’è¨å®šã™ã‚‹ï¼Ž
- void dJointSetSliderParam(dJointID, int parameter, dReal value);
スライダジョイントã®ãƒ‘ラメータをè¨å®šã™ã‚‹ï¼Ž
- void dJointSetUniversalParam(dJointID, int parameter, dReal value);
ユニãƒãƒ¼ã‚µãƒ«ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®ãƒ‘ラメータをè¨å®šã™ã‚‹ï¼Ž
ジョイントパラメータã®ç¨®é¡ž
| dParamLoStop | ジョイントã®å¯å‹•域ã®ä¸‹é™å€¤ï¼Žãƒ‡ãƒ•ォルト値ã¯-dInfinityã¨ãªã£ã¦ãŠã‚Šä¸‹é™ãŒãªã„.回転ジョイントã®å ´åˆã¯ï¼Ï€ã‚ˆã‚Šå¤§ãããªã‘ã‚Œã°æœ‰åйã«ãªã‚‰ãªã„. |
| dParamHiStop | ジョイントã®å¯å‹•域ã®ä¸Šé™å€¤ï¼Žãƒ‡ãƒ•ォルト値ã¯dInfinity ã¨ãªã£ã¦ãŠã‚Šä¸Šé™ãŒãªã„.回転ジョイントã®å ´åˆã¯Ï€ã‚ˆã‚Šå°ã•ããªã‘ã‚Œã°æœ‰åйã«ãªã‚‰ãªã„. |
| dParamVel | モータã®ç›®æ¨™é€Ÿåº¦ï¼ˆå›žè»¢å¼ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã¯è§’速度,スライダーã¯é€Ÿåº¦) |
| dParamFMax | モータãŒç›®æ¨™é€Ÿåº¦ã«é”æˆã™ã‚‹ãŸã‚ã«ä¸Žãˆã‚‹æœ€å¤§åŠ›ï¼ˆå›žè»¢å¼ã¯ãƒˆãƒ«ã‚¯ï¼Œã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã¯åŠ›ï¼‰ |
| dParamFudgeFactor | ç¾åœ¨ã®ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã®åœæ¢ã¨ãƒ¢ãƒ¼ã‚¿ã®å®Ÿè£…ã«ã¯è‹¥å¹²å•題ãŒã‚る.ジョイントãŒåœæ¢ã—ã¦ã„る時ã«ï¼Œãƒ¢ãƒ¼ã‚¿ãŒãれを動ã‹ãã†ã¨ã™ã‚‹ã¨éžå¸¸ã«å¤§ããªåŠ›ãŒã‹ã‹ã£ã¦ã—ã¾ã„.ジャンプã™ã‚‹æŒ™å‹•ãŒç™ºç”Ÿã™ã‚‹ï¼ŽFudge factor ã¯ã“ã®éŽåº¦ãªåŠ›ã‚’åŠ æ¸›ã—ã¾ã™ï¼Žã“ã®å€¤ã¯ï¼ä»¥ä¸Šï¼‘以下ã§ã‚り,1ãŒãƒ‡ãƒ•ォルト値ã§ã™ï¼Žã‚¸ãƒ£ãƒ³ãƒ—ã™ã‚‹æŒ™å‹•ãŒè¦‹ã‚‰ã‚Œã‚‹å ´åˆã¯ã“ã®å€¤ã‚’å°ã•ãã™ã‚‹ã¨è‰¯ã„.ãŸã ã—,ã“ã®å€¤ã‚’å°ã•ãã™ã‚‹ã¨ãƒ¢ãƒ¼ã‚¿ãŒå‹•ã‹ãªããªã‚‹ |
| dParamBounce | å発係数.値ã¯0 ã‹ã‚‰1.0 ã¯å…¨ãå発ã›ãšï¼Œ1 ã¯æœ€å¤§å発. |
| dParamCFM | åœæ¢ã—ãªã„ã¨ãã«ä½¿ç”¨ã•れる拘æŸåŠ›æ··åˆãƒ‘ラメータ(CFM)ï¼Žåœæ¢æ™‚ã¯dParamStopCFM |
| dParamStopERP | åœæ¢æ™‚ã«ä½¿ç”¨ã•れる誤差削減パラメータ(ERP). |
| dParamStopCFM | åœæ¢æ™‚ã«ä½¿ç”¨ã•れる拘æŸåŠ›æ··åˆãƒ‘ラメータ(CFM).ERP ã¨åŒæ™‚ã«ä½¿ç”¨ã™ã‚‹ã¨ã‚¹ãƒãƒ³ã‚¸ã®ã‚ˆã†ãªã‚½ãƒ•トãªåœæ¢ã‚’実ç¾ã§ãる.ã“れã¯ãƒ‘ワーãŒä¾›çµ¦ã•れã¦ã„ãªã„ジョイントã«å¯¾ã—ã¦æœ‰åйã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„.パワーã®ã‚るジョイントã§ã¯åŠ¹æžœçš„ã«æ©Ÿèƒ½ã—ãªã„. |
| dParamSuspensionERP | サスペンションERP パラメータ.ç¾åœ¨ï¼Œãƒ’ンジ2ã«ã®ã¿å®Ÿè£…ã—ã¦ã„る. |
| dParamSuspensionCFM | サスペンションCFM パラメータ.ç¾åœ¨ï¼Œãƒ’ンジ2ã«ã®ã¿å®Ÿè£…ã—ã¦ã„る. |
K
L
M
- void dMassAdd(dMass *a, const dMass *b);
質é‡ãƒ‘ラメータb を質é‡ãƒ‘ラメータ a ã«åŠ ãˆã‚‹ï¼Ž
- void dMassAdjust(dMass *, dReal newmass);
ã‚る物体ã®è³ªé‡ãƒ‘ラメータãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ã,全質é‡ãŒnewmass ã«ãªã‚‹ã‚ˆã†ã«èª¿æ•´ã™ã‚‹ï¼Ž
- void dMassRotate(dMass *, const dMatrix3 R);
ã‚る物体ã®è³ªé‡ãƒ‘ラメータãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ã,物体ã®ç›¸å¯¾åº§æ¨™ç³»ã§R回転ã—ãŸã¨ãã®è³ªé‡ãƒ‘ラメータã«èª¿æ•´ã™ã‚‹ï¼Ž
- void dMassSetBoxTotal(dMass *mass,dReal total_mass,dReal lx, dReal ly, dReal lz);
æ§‹é€ ä½“mass ã«ç›´æ–¹ä½“ã®è³ªé‡ãƒ‘ラメータをè¨å®š
- void dMassSetCappedCylinder(dMass *mass,dReal density, int direction, dReal radius, dReal length);
æ§‹é€ ä½“mass ã«ã‚ャップ付円柱ã®è³ªé‡ãƒ‘ラメータ(密度density,方å‘direction(x=1,y=2,z=3),åŠå¾„radius,長ã•length)をè¨å®šã™ã‚‹ï¼Ž
- void dMassSetCapsuleTotal(dMass *mass,dReal total_mass, int direction, dReal r, dReal l);
æ§‹é€ ä½“mass ã«ã‚«ãƒ—セルã®è³ªé‡ãƒ‘ラメータ(全質é‡total_mass,方å‘direction(x=1,y=2,z=3),åŠå¾„r,長ã•l)をè¨å®š
- void dMassSetCylinder(dMass *mass,dReal density, int direction, dReal radius, dReal length);
æ§‹é€ ä½“mass ã«å††æŸ±ã®è³ªé‡ãƒ‘ラメータ(密度density,方å‘direction(x=1,y=2,z=3),åŠå¾„radius,長ã•length)をè¨å®šã™ã‚‹ï¼Ž
- void dMassSetCylinderTotal(dMass *mass,dReal total_mass, int direction, dReal r, dReal l);
æ§‹é€ ä½“mass ã«å††æŸ±ã®è³ªé‡ãƒ‘ラメータ(全質é‡total_mass,方å‘direction(x=1,y=2,z=3),åŠå¾„r,長ã•l)をè¨å®š
- void dMassSetSpherel(dMass *, dReal density, dReal radius);
与ãˆã‚‰ã‚ŒãŸåŠå¾„radius ã¨å…¨è³ªé‡total_mass ã«å¯¾ã™ã‚‹è³ªé‡ãƒ‘ラメータ(密度density, åŠå¾„radius) ã‚’è¨å®šã™ã‚‹ï¼Žã“ã®ã¨ã,é‡å¿ƒã¯ã‚ªãƒ–ジェクトã«å¯¾ã—ã¦(0,0,0)ã®ä½ç½®ã¨ãªã‚‹ï¼Ž
- void dMassSetSphereTotal(dMass *, dReal total_mass, dReal r);
与ãˆã‚‰ã‚ŒãŸåŠå¾„radius ã¨å…¨è³ªé‡total_mass ã«å¯¾ã™ã‚‹è³ªé‡ãƒ‘ラメータ(全質é‡total_mass, åŠå¾„r) ã‚’è¨å®šã™ã‚‹ï¼Žã“ã®ã¨ã,é‡å¿ƒã¯ã‚ªãƒ–ジェクトã«å¯¾ã—ã¦(0,0,0)ã®ä½ç½®ã¨ãªã‚‹ï¼Ž
- void dMassSetZero(dMass *);
å…¨ã¦ã®è³ªé‡ãƒ‘ラメータ0 ã«è¨å®šã™ã‚‹ï¼Ž
- void dMassTranslate(dMass *, dReal x, dReal y, dReal z);
ã‚る物体ã®è³ªé‡ãƒ‘ラメータãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ã,物体ã®ç›¸å¯¾åº§æ¨™ç³»ã§ã®ä½ç½®(x, y, z) ã«è³ªé‡ãƒ‘ラメータを調整ã™ã‚‹ï¼Žé‡å¿ƒã‚’移動ã™ã‚‹å ´åˆãªã©ã«ä½¿ã‚れる.
- void dMultiply0_331 (dReal *A, const dReal *B, const dReal *C);
- void dMultiply1_331 (dReal *A, const dReal *B, const dReal *C);
- void dMultiply1_331 (dReal *A, const dReal *B, const dReal *C);
è¡Œåˆ—ã®æŽ›ã‘算。 dMultiply*ã®*ã¯0, 1, 2ã®å€¤ã§ã‚ã‚Šæ¬¡ã®æ„味をæŒã¤ã€‚
* Â 0: Â A = B Â * C Â
* Â 1: Â A = B' * C Â
* Â 2: Â A = B * Â C'
ã“ã“ã§ã€â€™ã¯è»¢ç½®ã®æ„味。 Aã¯ï¼“行1列ã€ï¼¢ã¯ï¼“行3列ã€ï¼£ã¯ï¼“行1列ã®è¡Œåˆ—。
N
- typedef void dNearCallback (void *data, dGeomID o1, dGeomID o2);
引数data ã¯dSpaceCollide ã‹ã‚‰dNearCallback ã¸ãã®ã¾ã¾æ¸¡ã•れる.ãã®æ„味ã¯ãƒ¦ãƒ¼ã‚¶ã«ã‚ˆã‚Šå®šç¾©ã•れる.引数o1 ã¨o2 ã¯è¿‘接ã—ã¦ã„るジオメトリã§ã‚る.ã“ã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã¯o1 ã¨o2 ã«å¯¾ã—ã¦å„ãƒšã‚¢é–“ã®æŽ¥è§¦ç‚¹ã‚’ç®—å‡ºã™ã‚‹ãŸã‚ã«dCollide() を呼ã³å‡ºã™ã“ã¨ãŒã§ã,ã“ã‚Œã‚‰ã®æŽ¥è§¦ç‚¹ã¯æŽ¥è§¦ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã¨ã—ã¦ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«ä»˜ã‘åŠ ãˆã‚‰ã‚Œã‚‹ï¼Ž
dSpaceCollide() ã¯å…¨ã¦ã®äº¤å·®ã™ã‚‹ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒšã‚¢ã‚’通éŽã•ã›ã‚‹ã“ã¨ã‚’ä¿éšœã™ã‚‹ãŒï¼Œäº¤å·®ã—ãªã„ジオメトリペアを誤ã£ã¦é€šéŽã•ã›ã‚‹å¯èƒ½æ€§ã‚‚ã‚る.間é•ãˆã‚‹æ•°ã¯ã‚¹ãƒšãƒ¼ã‚¹ã«ã‚ˆã£ã¦ä½¿ã‚れる内部ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«ä¾å˜ã™ã‚‹ï¼Žå¾“ã£ã¦ï¼ŒdCollide ãŒå…¨ã¦ã®ãƒšã‚¢ã«ã¤ã„ã¦æŽ¥è§¦ç‚¹ã‚’è¿”ã™ä¿éšœã¯ãªã„.
O
P
Q
- void dQFromAxisAndAngle(dQuaternion q, dReal ax, dReal ay, dReal az,dReal angle);
回転軸ベクトル(ax; ay; az) ã‚’ä¸å¿ƒã«angle 回転ã—ãŸã¨ãã®ã‚¯ã‚ªãƒ¼ã‚¿ãƒ‹ã‚ªãƒ³q ã‚’å–å¾—ã™ã‚‹ï¼Ž
- void dQtoR(dQuaternion q, dMatrix3 R);
クオータニオンq を回転行列R ã«å¤‰æ›ã™ã‚‹ï¼Ž
R
- dRFromAxisAndAngle(dMatrix3 R, dReal ax, dReal ay, dReal az, dReal angle);
回転軸ベクトル(ax, ay, az) ã‚’ä¸å¿ƒã«angle 回転ã—ãŸã¨ãã®å›žè»¢è¡Œåˆ—Rã‚’å–å¾—ã™ã‚‹ï¼Ž
S
- void dsDrawBox(const float pos[3], const float R[12], const float sides[3]);
ä½ç½®pos[3], 回転行列R[12], x,y,z è»¸ã«æ²¿ã£ãŸé•·ã•ãŒãれãžã‚Œsides[0],sides[1],sides[2] ã®ãƒœãƒƒã‚¯ã‚¹ã‚’æç”»ã™ã‚‹ï¼Ž
- void dsDrawSphere(const float pos[3], const float R[12], float r);
ä½ç½®pos[3], 回転行列R[12],  åŠå¾„r ã®çƒã‚’æç”»ã™ã‚‹ï¼Ž
- void dsDrawTriangle(const float pos[3], const float R[12], const float *v0, const float *v1, const float *v2, int solid);
é ‚ç‚¹åº§æ¨™(v0,v1,v2) ã®ä¸‰è§’形をæç”»ã™ã‚‹ï¼Žsolid ãŒ0 ã®å ´åˆã¯ä¸‰è§’å½¢ã®ç·š(ワイヤーフレーム)ã ã‘を表示, 1 ã®å ´åˆã¯ä¸‰è§’å½¢ã®é¢ã‚’表示ã™ã‚‹ï¼Ž
- void dsDrawCylinder(const float pos[3], const float R[12], float l, float r);
z è»¸ã«æ²¿ã£ãŸé•·ã•l(エル),åŠå¾„r ã®å††æŸ±ã‚’æç”»ã™ã‚‹ï¼Ž
- void dsDrawCapsule(const float pos[3], const float R[12], float l, float r);
z è»¸ã«æ²¿ã£ãŸé•·ã•l,åŠå¾„r ã®ã‚«ãƒ—セルをæç”»ã—ã¾ã™ï¼Ž
- void dsDrawLine(const float pos1[3], const float pos2[3]);
点1(pos1[0],pos1[1],pos1[2]) ã¨ç‚¹2(pos2[0],pos2[1],pos2[2]) ã‚’çµã¶ç·šã‚’æç”»ã—ã¾ã™ï¼Ž
- void dsDrawBoxD(const double pos[3], const double R[12],const double sides[3]);
dsDrawBox ã®å€ç²¾åº¦ç‰ˆ
- void dsDrawSphereD(const double pos[3], const double R[12],const float r);
dsDrawSphere ã®å€ç²¾åº¦ç‰ˆ
- void dsDrawTriangleD(const double pos[3], const double R[12], const double *v0, const double *v1, const double *v2, int solid);
dsDrawTriangle ã®å€ç²¾åº¦ç‰ˆ
- void dsDrawCylinderD(const double pos[3], const double R[12], float l, float r);
dsDrawCylinder ã®å€ç²¾åº¦ç‰ˆ
- void dsDrawCapsuleD(const double pos[3], const double R[12], float l, float r);
dsDrawCappedCylinder ã®å€ç²¾åº¦ç‰ˆ
- void dsDrawLineD(const double pos1[3], const double pos2[3]);
dsDrawLine ã®å€ç²¾åº¦ç‰ˆ
- void dsGetViewPoint(float xyz[3], float hpr[3]);
カメラã®ä½ç½®ã¨è¦–ç·šã‚’å–å¾—ã™ã‚‹ï¼Žxyz ã¯ã‚«ãƒ¡ãƒ©ã®ä½ç½®(x,y,z), hpr ã¯ã‚«ãƒ¡ãƒ©ã®è¦–ç·šheading(yow ã«ç›¸å½“), pitch, roll を表ã—å˜ä½ã¯åº¦ã§ã‚る.heading=0 ã¯x è»¸ã«æ²¿ã£ãŸæ–¹å‘,pitch=0 ã¯æ°´å¹³ç·šã®æ–¹å‘,roll=0 ã¯ãƒãƒ¼ãƒ«ãªã—.
- void dsStop();
ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ«ãƒ¼ãƒ—ã‚’åœæ¢ã™ã‚‹ï¼ŽdsSimulationLoop() ã®å†…部ã§ã“ã®API を呼ã³å‡ºã™ã¨exit ã—呼ã³å‡ºã—å´ã«æˆ»ã‚Šï¼Œexit コマンドを使ã†ã®ã¨åŒã˜ã§ã‚る.ループã®å¤–ã§ã“ã®API を呼ã³å‡ºã—ã¦ã‚‚効果ã¯ãªã„.
- void dsSetColor(float red, float green, float blue);
オブジェクトã®è‰²ã‚’è¨å®šã™ã‚‹ï¼Žred(赤), green(ç·‘), blue(é’) ã¯0 ã‹ã‚‰1ã¾ã§å€¤ã§ã‚る.
- void dsSetColorAlpha(float red, float green, float blue, float alpha);
オブジェクトã®è‰²ã¨é€æ˜Žåº¦ã‚’è¨å®šã™ã‚‹ï¼Žred, gree, blue, alpha(逿˜Žåº¦)ã¯0 ã‹ã‚‰1 ã¾ã§å€¤ã§ã‚る.
- void dsSetSphereQuality(int n);
çƒã®æç”»ã®è³ªã‚’è¨å®šã™ã‚‹ï¼Žå¤§ããªå€¤ã«ãªã‚‹ã»ã©è³ªã¯å‘上ã™ã‚‹ãŒé€Ÿåº¦ã¯é…ããªã‚‹ï¼Žãƒ‡ãƒ•ォール値ã®1 ã®å ´åˆã¯æ£20 é¢ä½“(é ‚ç‚¹æ•°12, æ£ä¸‰è§’å½¢ã®é¢æ•°20) ã¨ãªã‚Šï¼Œn ã®å€¤ãŒå¤§ãããªã‚‹ã¨å¤šè§’形を構æˆã™ã‚‹3 角形をå†å¸°çš„ã«åˆ†å‰²ã™ã‚‹ï¼Ž
- dsSetCappedCylinderQuality(int n);
å††æŸ±ã®æç”»ã®è³ªã‚’è¨å®šã™ã‚‹ï¼Žå¤§ããªå€¤ã«ãªã‚‹ã»ã©è³ªã¯å‘上ã™ã‚‹ãŒé€Ÿåº¦ã¯é…ããªã‚‹ï¼Žå††æŸ±ã®æ–é¢ã¯4n 多角形ã¨ãªã‚‹ï¼Žãƒ‡ãƒ•ォール値ã®3 ã¯12 è§’å½¢ã¨ãªã‚‹ï¼Ž
- void dsSetTexture(int texture_number);
オブジェクトã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’è¨å®šã™ã‚‹ï¼Žtexture_number ã¯DS_WOOD(木目) ã‚„DS_NONE(テクスãƒãƒ£ãªã—) ãªã©ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£å®šæ•°ã§ãªã‘れã°ã„ã‘ãªã„.ç¾åœ¨ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã¯ç¾åœ¨ã®è‰²ã§å¡—られる.
- void dsSetViewPoint(float xyz[3], float hpr[3]);
カメラã®ä½ç½®ã¨è¦–ç·šã‚’è¨å®šã™ã‚‹ï¼Žxyz ã¯ã‚«ãƒ¡ãƒ©ã®ä½ç½®(x,y,z), hpr ã¯ã‚«ãƒ¡ãƒ©ã®è¦–ç·šheading(yow ã«ç›¸å½“), pitch, roll を表ã—å˜ä½ã¯[°]ã§ã‚る.ODEã®APIã¯å…¨ã¦è§’度をradianã§è¡¨ã™ãŒï¼Œã“ã®drawstuffã®APIã¯è§’度を[°]ã§è¡¨ã™ã®ã§æ³¨æ„.heading=0 ã¯x è»¸ã«æ²¿ã£ãŸæ–¹å‘,pitch=0 ã¯æ°´å¹³ç·šã®æ–¹å‘,roll=0 ã¯ãƒãƒ¼ãƒ«ãªã—.
- dSpaceID dSimpleSpaceCreate(dSpaceID space);
å˜ç´”ãªè¡çªæ¤œå‡ºè¨ˆç®—用スペースを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Žï¼Ž
- void dSpaceCollide(dSpaceID space, void *data, dNearCallback *callback);
ã“ã®é–¢æ•°ã¯è¡çªã—よã†ãªï¼’ã¤ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒšã‚¢ã®é›†å›£ã‚’探ã—,å„ペアã«3 番目ã®å¼•æ•°ã§æŒ‡å®šã™ã‚‹ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã‚’呼ã³å‡ºã™ï¼Žãã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã¯dNearCallback åž‹ã§æ¬¡ã®ã‚ˆã†ã«å®šç¾©ã•れã¦ã„る.
- void dSpaceDestroy(dSpaceID);
ã‚¹ãƒšãƒ¼ã‚¹ã‚’ç ´å£Šã™ã‚‹ï¼Žã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—モードãŒ1 ã®å ´åˆï¼ˆãƒ‡ãƒ•ォールト),スペースã®ä¸ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¯è‡ªå‹•çš„ã«ç ´å£Šã•れる.
- void dSpaceCollide2(dGeomID o1, dGeomID o2, void *data, dNearCallback *callback);
ã‚るスペースã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªãŒåˆ¥ã®ã‚¹ãƒšãƒ¼ã‚¹ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªã¨è¡çªã™ã‚‹å¯èƒ½æ€§ãŒã‚るペアを計算ã—コールãƒãƒƒã‚¯é–¢æ•°ã‚’よã¶ï¼Žã“れã¯è¡çªæ¤œå‡ºã‚’拘æŸã«ã™ã‚‹ãŸã‚ã«ã‚¹ãƒšãƒ¼ã‚¹ã‚’éšŽå±¤çŠ¶ã«æ§‹ç¯‰ã—ã¦ã„ã‚‹å ´åˆã«å½¹ç«‹ã¤ï¼ŽdSpaceCollide ã¨ã®é•ã„ã¯o1,o2 ã®2 ã¤ã®å¼•æ•°ã‚’ã¨ã‚‹ã“ã¨ã§ã‚り,コールãƒãƒƒã‚¯é–¢æ•°ã‚’è¡çªã™ã‚‹å¯èƒ½æ€§ã®ã‚ã‚‹å…¨ã¦ã®ãƒšã‚¢ã‚’呼ã¶ï¼Ž
T
- dTriMeshDataID dGeomTriMeshDataCreate();
メッシュデータをä¿å˜ã™ã‚‹dTriMeshData オブジェクトを生æˆã™ã‚‹.
U
V
W
- WorldID dWorldCreate();
æ–°ã—ã„動力å¦è¨ˆç®—用ワールドを生æˆã—,ãã®ID 番å·ã‚’è¿”ã™ï¼Ž
- void dWorldDestroy(dWorldID);
ワールドã¨ãã®ä¸ã«ã‚ã‚‹å…¨ã¦ã‚’ç ´å£Šã™ã‚‹ï¼Žã“れã«ã¯ï¼Œå…¨ã¦ã®ãƒœãƒ‡ã‚£ã¨ã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ã«å«ã¾ã‚Œã¦ã„ãªã„å…¨ã¦ã®é–¢ç¯€ãŒå«ã¾ã‚Œã‚‹ï¼Žã‚¸ãƒ§ã‚¤ãƒ³ãƒˆã‚°ãƒ«ãƒ¼ãƒ—ã«å«ã¾ã‚Œã‚‹å…¨ã¦ã®é–¢ç¯€ã¯ä¾‹ãˆã°ï¼ŒdJointGroupEmpty ãªã©ã®é–¢æ•°å‘¼ã³å‡ºã—ã«ã‚ˆã£ã¦ç ´å£Šã•れる.
- dReal dWorldGetCFM (dWorldID);
- dReal dWorldGetERP (dWorldID);
関節誤差修æ£ãƒ‘ラメータERP ã‚’å–å¾—ã™ã‚‹.
- void dWorldGetGravity(dWorldID, dVector3 gravity);
world ã®é‡åŠ›ãƒ™ã‚¯ãƒˆãƒ«ã‚’å–å¾—ã™ã‚‹ï¼Žåœ°çƒã®é‡åŠ›ãƒ™ã‚¯ãƒˆãƒ«ã¯z 軸ã®å‘ãを上ã«ã¨ã‚‹ã¨(0,0,-9.81) ã¨ãªã‚‹ï¼Žãƒ‡ãƒ•ォルト値ã¯ç„¡é‡åŠ›(0,0,0) ã¨ãªã‚‹ï¼Ž
- void dWorldSetGravity(dWorldID, dReal x, dReal y, dReal z);
ワールドã®é‡åŠ›ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¨å®šã™ã‚‹ï¼Žæ¨™æº–ã¯(0,0,0) ã§ã‚る.
- void dWorldQuickStep(dWorldID, dReal stepsize);
ワールドを引数stepsize [s] ã ã‘1ステップ進ã‚る.ã“れã¯å復計算ã«ã‚ˆã‚‹æ–¹æ³•ã§ã‚ã‚‹ãŸã‚dWorldStep()より高速ã§ã‚ã‚‹ãŒï¼Œç²¾åº¦ã¯é«˜ããªã„.計算é‡ã¯O(mN),mã¯åˆ¶ç´„ã®è¡Œæ•°ï¼ŒNã¯ç¹°ã‚Šè¿”ã—回数ã§ã‚る.ãªãŠï¼ŒNã®ãƒ‡ãƒ•ォルト値ã¯20ã§ã‚る.ã“ã®å€¤ã¯dWorldSetQuickStepNumIteration()ã§è¨å®šã™ã‚‹ï¼Ž
- void dWorldSetQuickStepNumIteration(dWorldID, int num);
- void dWorldStep(dWorldID, dReal stepsize);
ワールドを引数stepsize [s] ã ã‘1ステップ進ã‚る.ã“れã¯å¤§ããªè¡Œåˆ—を方法ãªã®ã§è¨ˆç®—é‡ã¯O(m3),メモリã¯O(m2) å¿…è¦ã«ãªã‚‹ï¼Žã“ã“ã§ï¼Œm ã¯åˆ¶ç´„ã®è¡Œæ•°ã§ã‚る.大ããªã‚·ã‚¹ãƒ†ãƒ ã§ã¯ãƒ¡ãƒ¢ãƒªãŒéžå¸¸ã«å¤šãå¿…è¦ã«ãªã‚Šã¨ã¦ã‚‚é…ããªã‚‹ãŒï¼Œç¾åœ¨æœ€ã‚‚æ£ç¢ºãªæ–¹æ³•ã§ã‚る.
- void dWorldSetGravity(dWorldID, dReal x, dReal y, dReal z);
- void dWorldSetCFM(dWorldID, dReal cfm);
拘æŸåŠ›æ··åˆãƒ‘ラメータCFM (constraint force mixing) ã®è¨å®šåŠã³å–å¾—ã™ã‚‹ï¼Žå…¸åž‹çš„ãªå€¤ã¯10