00001 // -*- IDL -*- 00017 #ifndef ExtendedDataTypes_idl 00018 #define ExtendedDataTypes_idl 00019 00020 #include "BasicDataType.idl" 00021 00022 module RTC { 00028 struct RGBColour 00029 { 00030 double r; 00031 double g; 00032 double b; 00033 }; 00034 00035 //------------------------------------------------------------ 00036 // 2D data types 00037 //------------------------------------------------------------ 00038 00043 struct Point2D 00044 { 00046 double x; 00048 double y; 00049 }; 00050 00055 struct Vector2D 00056 { 00058 double x; 00060 double y; 00061 }; 00062 00067 struct Pose2D 00068 { 00070 Point2D position; 00072 double heading; 00073 }; 00074 00079 struct Velocity2D 00080 { 00082 double vx; 00084 double vy; 00086 double va; 00087 }; 00088 00093 struct Acceleration2D 00094 { 00096 double ax; 00098 double ay; 00099 }; 00100 00105 struct PoseVel2D 00106 { 00107 Pose2D pose; 00108 Velocity2D velocities; 00109 }; 00110 00115 struct Size2D 00116 { 00118 double l; 00120 double w; 00121 }; 00122 00127 struct Geometry2D 00128 { 00131 Pose2D pose; 00133 Size2D size; 00134 }; 00135 00140 struct Covariance2D 00141 { 00143 double xx; 00145 double xy; 00147 double xt; 00149 double yy; 00151 double yt; 00153 double tt; 00154 }; 00155 00160 struct PointCovariance2D 00161 { 00163 double xx; 00165 double xy; 00167 double yy; 00168 }; 00169 00174 struct Carlike 00175 { 00177 double speed; 00179 double steeringAngle; 00180 }; 00181 00186 struct SpeedHeading2D 00187 { 00189 double speed; 00191 double heading; 00192 }; 00193 00194 //------------------------------------------------------------ 00195 // 3D data types 00196 //------------------------------------------------------------ 00197 00202 struct Point3D 00203 { 00205 double x; 00207 double y; 00209 double z; 00210 }; 00211 00216 struct Vector3D 00217 { 00219 double x; 00221 double y; 00223 double z; 00224 }; 00225 00230 struct Orientation3D 00231 { 00233 double r; 00235 double p; 00237 double y; 00238 }; 00239 00244 struct Pose3D 00245 { 00247 Point3D position; 00249 Orientation3D orientation; 00250 }; 00251 00256 struct Velocity3D 00257 { 00259 double vx; 00261 double vy; 00263 double vz; 00265 double vr; 00267 double vp; 00269 double va; 00270 }; 00271 00276 struct AngularVelocity3D 00277 { 00279 double avx; 00281 double avy; 00283 double avz; 00284 }; 00285 00290 struct Acceleration3D 00291 { 00293 double ax; 00295 double ay; 00297 double az; 00298 }; 00299 00304 struct AngularAcceleration3D 00305 { 00307 double aax; 00309 double aay; 00311 double aaz; 00312 }; 00313 00318 struct PoseVel3D 00319 { 00320 Pose3D pose; 00321 Velocity3D velocities; 00322 }; 00323 00328 struct Size3D 00329 { 00331 double l; 00333 double w; 00335 double h; 00336 }; 00337 00342 struct Geometry3D 00343 { 00346 Pose3D pose; 00348 Size3D size; 00349 }; 00350 00355 struct Covariance3D 00356 { 00358 double xx; 00360 double xy; 00362 double xz; 00364 double xr; 00366 double xp; 00368 double xa; 00370 double yy; 00372 double yz; 00374 double yr; 00376 double yp; 00378 double ya; 00380 double zz; 00382 double zr; 00384 double zp; 00386 double za; 00388 double rr; 00390 double rp; 00392 double ra; 00394 double pp; 00396 double pa; 00398 double aa; 00399 }; 00400 00405 struct SpeedHeading3D 00406 { 00408 double speed; 00410 Orientation3D direction; 00411 }; 00412 00417 struct OAP 00418 { 00419 Vector3D orientation; 00420 Vector3D approach; 00421 Vector3D position; 00422 }; 00423 00424 //------------------------------------------------------------ 00425 // Timed data types 00426 //------------------------------------------------------------ 00427 00432 struct TimedRGBColour 00433 { 00434 Time tm; 00435 RGBColour data; 00436 }; 00437 00442 struct TimedPoint2D 00443 { 00444 Time tm; 00445 Point2D data; 00446 }; 00447 00452 struct TimedVector2D 00453 { 00454 Time tm; 00455 Vector2D data; 00456 }; 00457 00462 struct TimedPose2D 00463 { 00464 Time tm; 00465 Pose2D data; 00466 }; 00467 00472 struct TimedVelocity2D 00473 { 00474 Time tm; 00475 Velocity2D data; 00476 }; 00477 00482 struct TimedAcceleration2D 00483 { 00484 Time tm; 00485 Acceleration2D data; 00486 }; 00487 00492 struct TimedPoseVel2D 00493 { 00494 Time tm; 00495 PoseVel2D data; 00496 }; 00497 00502 struct TimedSize2D 00503 { 00504 Time tm; 00505 Size2D data; 00506 }; 00507 00512 struct TimedGeometry2D 00513 { 00514 Time tm; 00515 Geometry2D data; 00516 }; 00517 00522 struct TimedCovariance2D 00523 { 00524 Time tm; 00525 Covariance2D data; 00526 }; 00527 00532 struct TimedPointCovariance2D 00533 { 00534 Time tm; 00535 PointCovariance2D data; 00536 }; 00537 00542 struct TimedCarlike 00543 { 00544 Time tm; 00545 Carlike data; 00546 }; 00547 00552 struct TimedSpeedHeading2D 00553 { 00554 Time tm; 00555 SpeedHeading2D data; 00556 }; 00557 00562 struct TimedPoint3D 00563 { 00564 Time tm; 00565 Point3D data; 00566 }; 00567 00572 struct TimedVector3D 00573 { 00574 Time tm; 00575 Vector3D data; 00576 }; 00577 00582 struct TimedOrientation3D 00583 { 00584 Time tm; 00585 Orientation3D data; 00586 }; 00587 00592 struct TimedPose3D 00593 { 00594 Time tm; 00595 Pose3D data; 00596 }; 00597 00602 struct TimedVelocity3D 00603 { 00604 Time tm; 00605 Velocity3D data; 00606 }; 00607 00612 struct TimedAngularVelocity3D 00613 { 00614 Time tm; 00615 AngularVelocity3D data; 00616 }; 00617 00622 struct TimedAcceleration3D 00623 { 00624 Time tm; 00625 Acceleration3D data; 00626 }; 00627 00632 struct TimedAngularAcceleration3D 00633 { 00634 Time tm; 00635 AngularAcceleration3D data; 00636 }; 00637 00642 struct TimedPoseVel3D 00643 { 00644 Time tm; 00645 PoseVel3D data; 00646 }; 00647 00652 struct TimedSize3D 00653 { 00654 Time tm; 00655 Size3D data; 00656 }; 00657 00662 struct TimedGeometry3D 00663 { 00664 Time tm; 00665 Geometry3D data; 00666 }; 00667 00672 struct TimedCovariance3D 00673 { 00674 Time tm; 00675 Covariance3D data; 00676 }; 00677 00682 struct TimedSpeedHeading3D 00683 { 00684 Time tm; 00685 SpeedHeading3D data; 00686 }; 00687 00692 struct TimedOAP 00693 { 00694 Time tm; 00695 OAP data; 00696 }; 00697 00702 struct Quaternion 00703 { 00704 double x; 00705 double y; 00706 double z; 00707 double w; 00708 }; 00709 00714 struct TimedQuaternion 00715 { 00716 Time tm; 00717 Quaternion data; 00718 }; 00719 }; 00720 00721 #endif // ExtendedDataTypes_idl