dartpy 7.0.0.dev0__cp312-cp312-manylinux_2_39_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dartpy might be problematic. Click here for more details.

Files changed (994) hide show
  1. dartpy-7.0.0.dev0.dist-info/METADATA +86 -0
  2. dartpy-7.0.0.dev0.dist-info/RECORD +994 -0
  3. dartpy-7.0.0.dev0.dist-info/WHEEL +5 -0
  4. dartpy-7.0.0.dev0.dist-info/licenses/LICENSE +31 -0
  5. dartpy.cpython-312-x86_64-linux-gnu.so +0 -0
  6. dartpy.libs/libBulletCollision-f96eb02c.so.3.25 +0 -0
  7. dartpy.libs/libBulletDynamics-3cff1f18.so.3.25 +0 -0
  8. dartpy.libs/libBulletSoftBody-220f01bd.so.3.25 +0 -0
  9. dartpy.libs/libLinearMath-71568d02.so.3.25 +0 -0
  10. dartpy.libs/libOpenThreads-8bc434db.so.3.3.1 +0 -0
  11. dartpy.libs/libSDL2-2-3db87ac0.0.so.0.3200.56 +0 -0
  12. dartpy.libs/libassimp-44cf3e77.so.5.4.3 +0 -0
  13. dartpy.libs/libccd-4f119cf4.so.2.0 +0 -0
  14. dartpy.libs/libconsole_bridge-f26e11cc.so.1.0 +0 -0
  15. dartpy.libs/libfcl-2607815a.so.0.7.0 +0 -0
  16. dartpy.libs/libfmt-277170bf.so.11.2.0 +0 -0
  17. dartpy.libs/libfontconfig-559ff509.so.1.14.0 +0 -0
  18. dartpy.libs/libfreetype-64806fc6.so.6.20.4 +0 -0
  19. dartpy.libs/libglfw-6f066845.so.3.4 +0 -0
  20. dartpy.libs/libimgui-ab87b07d.so +0 -0
  21. dartpy.libs/libnlopt-78f9bc34.so.1.0.0 +0 -0
  22. dartpy.libs/liboctomap-38e56f99.so.1.10.0 +0 -0
  23. dartpy.libs/liboctomath-bff26442.so.1.10.0 +0 -0
  24. dartpy.libs/libode-caca20fc.so.8.2.0 +0 -0
  25. dartpy.libs/libosg-e67375e5.so.3.6.5 +0 -0
  26. dartpy.libs/libosgDB-22ae780f.so.3.6.5 +0 -0
  27. dartpy.libs/libosgGA-6af4078b.so.3.6.5 +0 -0
  28. dartpy.libs/libosgManipulator-3270f659.so.3.6.5 +0 -0
  29. dartpy.libs/libosgShadow-127a8d77.so.3.6.5 +0 -0
  30. dartpy.libs/libosgText-87d82d87.so.3.6.5 +0 -0
  31. dartpy.libs/libosgUtil-55896958.so.3.6.5 +0 -0
  32. dartpy.libs/libosgViewer-76d832e3.so.3.6.5 +0 -0
  33. dartpy.libs/libpng16-bd65464e.so.16.50.0 +0 -0
  34. dartpy.libs/libtinyxml2-8d10763c.so.11.0.0 +0 -0
  35. dartpy.libs/liburdfdom_model-7b26ae88.so.4.0 +0 -0
  36. dartpy.libs/liburdfdom_model_state-95a5ad6e.so.4.0 +0 -0
  37. dartpy.libs/liburdfdom_sensor-55a145ea.so.4.0 +0 -0
  38. dartpy.libs/liburdfdom_world-a32c7194.so.4.0 +0 -0
  39. dartpy.libs/libvulkan-8caf1954.so.1.4.328 +0 -0
  40. include/dart/collision/CollisionDetector.hpp +305 -0
  41. include/dart/collision/CollisionFilter.hpp +126 -0
  42. include/dart/collision/CollisionGroup.hpp +546 -0
  43. include/dart/collision/CollisionObject.hpp +90 -0
  44. include/dart/collision/CollisionOption.hpp +71 -0
  45. include/dart/collision/CollisionResult.hpp +109 -0
  46. include/dart/collision/Contact.hpp +103 -0
  47. include/dart/collision/DistanceFilter.hpp +66 -0
  48. include/dart/collision/DistanceOption.hpp +80 -0
  49. include/dart/collision/DistanceResult.hpp +123 -0
  50. include/dart/collision/Option.hpp +42 -0
  51. include/dart/collision/RaycastOption.hpp +58 -0
  52. include/dart/collision/RaycastResult.hpp +80 -0
  53. include/dart/collision/Result.hpp +42 -0
  54. include/dart/collision/SmartPointer.hpp +51 -0
  55. include/dart/collision/all.hpp +17 -0
  56. include/dart/collision/bullet/BulletCollisionDetector.hpp +168 -0
  57. include/dart/collision/bullet/BulletCollisionGroup.hpp +98 -0
  58. include/dart/collision/bullet/BulletCollisionObject.hpp +75 -0
  59. include/dart/collision/bullet/BulletCollisionShape.hpp +62 -0
  60. include/dart/collision/bullet/BulletInclude.hpp +47 -0
  61. include/dart/collision/bullet/BulletTypes.hpp +57 -0
  62. include/dart/collision/bullet/all.hpp +8 -0
  63. include/dart/collision/bullet/bullet.hpp +14 -0
  64. include/dart/collision/bullet/detail/BulletCollisionDispatcher.hpp +70 -0
  65. include/dart/collision/bullet/detail/BulletOverlapFilterCallback.hpp +72 -0
  66. include/dart/collision/collision.hpp +14 -0
  67. include/dart/collision/dart/DARTCollide.hpp +106 -0
  68. include/dart/collision/dart/DARTCollisionDetector.hpp +109 -0
  69. include/dart/collision/dart/DARTCollisionGroup.hpp +82 -0
  70. include/dart/collision/dart/DARTCollisionObject.hpp +63 -0
  71. include/dart/collision/dart/all.hpp +6 -0
  72. include/dart/collision/dart/dart.hpp +14 -0
  73. include/dart/collision/detail/CollisionDetector.hpp +66 -0
  74. include/dart/collision/detail/CollisionGroup.hpp +287 -0
  75. include/dart/collision/detail/Contact-impl.hpp +56 -0
  76. include/dart/collision/detail/UnorderedPairs.hpp +153 -0
  77. include/dart/collision/fcl/BackwardCompatibility.hpp +145 -0
  78. include/dart/collision/fcl/CollisionShapes.hpp +374 -0
  79. include/dart/collision/fcl/FCLCollisionDetector.hpp +204 -0
  80. include/dart/collision/fcl/FCLCollisionGroup.hpp +95 -0
  81. include/dart/collision/fcl/FCLCollisionObject.hpp +72 -0
  82. include/dart/collision/fcl/FCLTypes.hpp +62 -0
  83. include/dart/collision/fcl/TriTriIntersectionTest.hpp +17 -0
  84. include/dart/collision/fcl/all.hpp +9 -0
  85. include/dart/collision/fcl/fcl.hpp +14 -0
  86. include/dart/collision/fcl/tri_tri_intersection_test.hpp +332 -0
  87. include/dart/collision/ode/OdeCollisionDetector.hpp +131 -0
  88. include/dart/collision/ode/OdeCollisionGroup.hpp +87 -0
  89. include/dart/collision/ode/OdeCollisionObject.hpp +89 -0
  90. include/dart/collision/ode/OdeTypes.hpp +51 -0
  91. include/dart/collision/ode/all.hpp +6 -0
  92. include/dart/collision/ode/detail/OdeBox.hpp +58 -0
  93. include/dart/collision/ode/detail/OdeCapsule.hpp +58 -0
  94. include/dart/collision/ode/detail/OdeCylinder.hpp +58 -0
  95. include/dart/collision/ode/detail/OdeGeom.hpp +83 -0
  96. include/dart/collision/ode/detail/OdeHeightmap-impl.hpp +170 -0
  97. include/dart/collision/ode/detail/OdeHeightmap.hpp +70 -0
  98. include/dart/collision/ode/detail/OdeMesh.hpp +83 -0
  99. include/dart/collision/ode/detail/OdePlane.hpp +67 -0
  100. include/dart/collision/ode/detail/OdeSphere.hpp +58 -0
  101. include/dart/collision/ode/ode.hpp +14 -0
  102. include/dart/common/Aspect.hpp +215 -0
  103. include/dart/common/AspectWithVersion.hpp +180 -0
  104. include/dart/common/CAllocator.hpp +65 -0
  105. include/dart/common/Castable.hpp +102 -0
  106. include/dart/common/ClassWithVirtualBase.hpp +47 -0
  107. include/dart/common/Cloneable.hpp +327 -0
  108. include/dart/common/Composite.hpp +205 -0
  109. include/dart/common/CompositeJoiner.hpp +160 -0
  110. include/dart/common/Console.hpp +75 -0
  111. include/dart/common/Deprecated.hpp +126 -0
  112. include/dart/common/EmbeddedAspect.hpp +466 -0
  113. include/dart/common/Empty.hpp +55 -0
  114. include/dart/common/Factory.hpp +146 -0
  115. include/dart/common/Filesystem.hpp +112 -0
  116. include/dart/common/FreeListAllocator.hpp +162 -0
  117. include/dart/common/IncludeWindows.hpp +50 -0
  118. include/dart/common/LocalResource.hpp +76 -0
  119. include/dart/common/LocalResourceRetriever.hpp +63 -0
  120. include/dart/common/LockableReference.hpp +166 -0
  121. include/dart/common/Logging.hpp +146 -0
  122. include/dart/common/Macros.hpp +78 -0
  123. include/dart/common/Memory.hpp +215 -0
  124. include/dart/common/MemoryAllocator.hpp +120 -0
  125. include/dart/common/MemoryAllocatorDebugger.hpp +98 -0
  126. include/dart/common/MemoryManager.hpp +189 -0
  127. include/dart/common/Metaprogramming.hpp +68 -0
  128. include/dart/common/NameManager.hpp +184 -0
  129. include/dart/common/Observer.hpp +85 -0
  130. include/dart/common/Optional.hpp +48 -0
  131. include/dart/common/Platform.hpp +92 -0
  132. include/dart/common/PoolAllocator.hpp +141 -0
  133. include/dart/common/Profile.hpp +56 -0
  134. include/dart/common/ProxyAspect.hpp +93 -0
  135. include/dart/common/RequiresAspect.hpp +79 -0
  136. include/dart/common/Resource.hpp +96 -0
  137. include/dart/common/ResourceRetriever.hpp +82 -0
  138. include/dart/common/SharedLibrary.hpp +201 -0
  139. include/dart/common/Signal.hpp +250 -0
  140. include/dart/common/Singleton.hpp +85 -0
  141. include/dart/common/SmartPointer.hpp +63 -0
  142. include/dart/common/SpecializedForAspect.hpp +207 -0
  143. include/dart/common/StlAllocator.hpp +111 -0
  144. include/dart/common/StlHelpers.hpp +61 -0
  145. include/dart/common/Stopwatch.hpp +143 -0
  146. include/dart/common/String.hpp +71 -0
  147. include/dart/common/SubPtr.hpp +17 -0
  148. include/dart/common/Subject.hpp +84 -0
  149. include/dart/common/Timer.hpp +119 -0
  150. include/dart/common/Uri.hpp +229 -0
  151. include/dart/common/VersionCounter.hpp +68 -0
  152. include/dart/common/Virtual.hpp +51 -0
  153. include/dart/common/all.hpp +53 -0
  154. include/dart/common/common.hpp +14 -0
  155. include/dart/common/detail/Aspect.hpp +102 -0
  156. include/dart/common/detail/AspectWithVersion.hpp +455 -0
  157. include/dart/common/detail/Castable-impl.hpp +109 -0
  158. include/dart/common/detail/Cloneable.hpp +638 -0
  159. include/dart/common/detail/Composite.hpp +241 -0
  160. include/dart/common/detail/CompositeData.hpp +393 -0
  161. include/dart/common/detail/CompositeJoiner.hpp +128 -0
  162. include/dart/common/detail/ConnectionBody.hpp +157 -0
  163. include/dart/common/detail/EmbeddedAspect.hpp +487 -0
  164. include/dart/common/detail/Factory-impl.hpp +200 -0
  165. include/dart/common/detail/LockableReference-impl.hpp +156 -0
  166. include/dart/common/detail/Logging-impl.hpp +162 -0
  167. include/dart/common/detail/Memory-impl.hpp +66 -0
  168. include/dart/common/detail/MemoryAllocator-impl.hpp +97 -0
  169. include/dart/common/detail/MemoryAllocatorDebugger-impl.hpp +201 -0
  170. include/dart/common/detail/MemoryManager-impl.hpp +102 -0
  171. include/dart/common/detail/Metaprogramming-impl.hpp +89 -0
  172. include/dart/common/detail/NameManager.hpp +301 -0
  173. include/dart/common/detail/NoOp.hpp +57 -0
  174. include/dart/common/detail/ProxyAspect.hpp +172 -0
  175. include/dart/common/detail/RequiresAspect.hpp +51 -0
  176. include/dart/common/detail/SharedLibraryManager.hpp +106 -0
  177. include/dart/common/detail/Signal.hpp +242 -0
  178. include/dart/common/detail/Singleton-impl.hpp +74 -0
  179. include/dart/common/detail/SpecializedForAspect.hpp +331 -0
  180. include/dart/common/detail/StlAllocator-impl.hpp +108 -0
  181. include/dart/common/detail/Stopwatch-impl.hpp +242 -0
  182. include/dart/common/detail/SubPtr.hpp +17 -0
  183. include/dart/common/detail/TemplateJoinerDispatchMacro.hpp +59 -0
  184. include/dart/common/detail/sub_ptr.hpp +139 -0
  185. include/dart/common/sub_ptr.hpp +103 -0
  186. include/dart/config.hpp +100 -0
  187. include/dart/constraint/BalanceConstraint.hpp +202 -0
  188. include/dart/constraint/BallJointConstraint.hpp +142 -0
  189. include/dart/constraint/BoxedLcpConstraintSolver.hpp +182 -0
  190. include/dart/constraint/BoxedLcpSolver.hpp +101 -0
  191. include/dart/constraint/ConstrainedGroup.hpp +120 -0
  192. include/dart/constraint/ConstraintBase.hpp +141 -0
  193. include/dart/constraint/ConstraintSolver.hpp +325 -0
  194. include/dart/constraint/ContactConstraint.hpp +286 -0
  195. include/dart/constraint/ContactSurface.hpp +191 -0
  196. include/dart/constraint/DantzigBoxedLcpSolver.hpp +71 -0
  197. include/dart/constraint/DantzigLCPSolver.hpp +87 -0
  198. include/dart/constraint/DynamicJointConstraint.hpp +120 -0
  199. include/dart/constraint/JointConstraint.hpp +182 -0
  200. include/dart/constraint/JointCoulombFrictionConstraint.hpp +149 -0
  201. include/dart/constraint/JointLimitConstraint.hpp +185 -0
  202. include/dart/constraint/LCPSolver.hpp +71 -0
  203. include/dart/constraint/MimicMotorConstraint.hpp +164 -0
  204. include/dart/constraint/PGSLCPSolver.hpp +109 -0
  205. include/dart/constraint/PgsBoxedLcpSolver.hpp +106 -0
  206. include/dart/constraint/ServoMotorConstraint.hpp +151 -0
  207. include/dart/constraint/SmartPointer.hpp +69 -0
  208. include/dart/constraint/SoftContactConstraint.hpp +262 -0
  209. include/dart/constraint/WeldJointConstraint.hpp +133 -0
  210. include/dart/constraint/all.hpp +25 -0
  211. include/dart/constraint/constraint.hpp +14 -0
  212. include/dart/constraint/detail/ConstraintSolver-impl.hpp +78 -0
  213. include/dart/dart.hpp +44 -0
  214. include/dart/dynamics/ArrowShape.hpp +121 -0
  215. include/dart/dynamics/AssimpInputResourceAdaptor.hpp +129 -0
  216. include/dart/dynamics/BallJoint.hpp +143 -0
  217. include/dart/dynamics/BodyNode.hpp +1279 -0
  218. include/dart/dynamics/BoxShape.hpp +90 -0
  219. include/dart/dynamics/Branch.hpp +107 -0
  220. include/dart/dynamics/CapsuleShape.hpp +105 -0
  221. include/dart/dynamics/Chain.hpp +142 -0
  222. include/dart/dynamics/CompositeNode.hpp +114 -0
  223. include/dart/dynamics/ConeShape.hpp +107 -0
  224. include/dart/dynamics/CylinderShape.hpp +96 -0
  225. include/dart/dynamics/DegreeOfFreedom.hpp +415 -0
  226. include/dart/dynamics/EllipsoidShape.hpp +115 -0
  227. include/dart/dynamics/EndEffector.hpp +158 -0
  228. include/dart/dynamics/Entity.hpp +258 -0
  229. include/dart/dynamics/EntityNode.hpp +77 -0
  230. include/dart/dynamics/EulerJoint.hpp +174 -0
  231. include/dart/dynamics/FixedFrame.hpp +105 -0
  232. include/dart/dynamics/FixedJacobianNode.hpp +168 -0
  233. include/dart/dynamics/Frame.hpp +388 -0
  234. include/dart/dynamics/FreeJoint.hpp +369 -0
  235. include/dart/dynamics/GenericJoint.hpp +825 -0
  236. include/dart/dynamics/Group.hpp +270 -0
  237. include/dart/dynamics/HeightmapShape.hpp +195 -0
  238. include/dart/dynamics/HierarchicalIK.hpp +419 -0
  239. include/dart/dynamics/IkFast.hpp +277 -0
  240. include/dart/dynamics/Inertia.hpp +176 -0
  241. include/dart/dynamics/InvalidIndex.hpp +46 -0
  242. include/dart/dynamics/InverseKinematics.hpp +1401 -0
  243. include/dart/dynamics/JacobianNode.hpp +312 -0
  244. include/dart/dynamics/Joint.hpp +1128 -0
  245. include/dart/dynamics/LineSegmentShape.hpp +140 -0
  246. include/dart/dynamics/Linkage.hpp +246 -0
  247. include/dart/dynamics/Marker.hpp +126 -0
  248. include/dart/dynamics/MeshShape.hpp +225 -0
  249. include/dart/dynamics/MetaSkeleton.hpp +1034 -0
  250. include/dart/dynamics/MimicDofProperties.hpp +62 -0
  251. include/dart/dynamics/MultiSphereConvexHullShape.hpp +111 -0
  252. include/dart/dynamics/MultiSphereShape.hpp +42 -0
  253. include/dart/dynamics/Node.hpp +273 -0
  254. include/dart/dynamics/NodeManagerJoiner.hpp +190 -0
  255. include/dart/dynamics/PlanarJoint.hpp +161 -0
  256. include/dart/dynamics/PlaneShape.hpp +105 -0
  257. include/dart/dynamics/PointCloudShape.hpp +186 -0
  258. include/dart/dynamics/PointMass.hpp +709 -0
  259. include/dart/dynamics/PrismaticJoint.hpp +120 -0
  260. include/dart/dynamics/PyramidShape.hpp +122 -0
  261. include/dart/dynamics/ReferentialSkeleton.hpp +550 -0
  262. include/dart/dynamics/RevoluteJoint.hpp +120 -0
  263. include/dart/dynamics/ScrewJoint.hpp +126 -0
  264. include/dart/dynamics/Shape.hpp +231 -0
  265. include/dart/dynamics/ShapeFrame.hpp +291 -0
  266. include/dart/dynamics/ShapeNode.hpp +134 -0
  267. include/dart/dynamics/SharedLibraryIkFast.hpp +147 -0
  268. include/dart/dynamics/SimpleFrame.hpp +247 -0
  269. include/dart/dynamics/Skeleton.hpp +1350 -0
  270. include/dart/dynamics/SmartPointer.hpp +185 -0
  271. include/dart/dynamics/SoftBodyNode.hpp +472 -0
  272. include/dart/dynamics/SoftMeshShape.hpp +100 -0
  273. include/dart/dynamics/SpecializedNodeManager.hpp +230 -0
  274. include/dart/dynamics/SphereShape.hpp +89 -0
  275. include/dart/dynamics/TemplatedJacobianNode.hpp +128 -0
  276. include/dart/dynamics/TranslationalJoint.hpp +105 -0
  277. include/dart/dynamics/TranslationalJoint2D.hpp +156 -0
  278. include/dart/dynamics/UniversalJoint.hpp +128 -0
  279. include/dart/dynamics/VoxelGridShape.hpp +171 -0
  280. include/dart/dynamics/WeldJoint.hpp +116 -0
  281. include/dart/dynamics/ZeroDofJoint.hpp +562 -0
  282. include/dart/dynamics/all.hpp +69 -0
  283. include/dart/dynamics/detail/BasicNodeManager.hpp +539 -0
  284. include/dart/dynamics/detail/BodyNode.hpp +344 -0
  285. include/dart/dynamics/detail/BodyNodeAspect.hpp +177 -0
  286. include/dart/dynamics/detail/BodyNodePtr.hpp +351 -0
  287. include/dart/dynamics/detail/CompositeNode.hpp +93 -0
  288. include/dart/dynamics/detail/DegreeOfFreedomPtr.hpp +338 -0
  289. include/dart/dynamics/detail/EndEffectorAspect.hpp +106 -0
  290. include/dart/dynamics/detail/EntityNode.hpp +81 -0
  291. include/dart/dynamics/detail/EntityNodeAspect.hpp +101 -0
  292. include/dart/dynamics/detail/EulerJointAspect.hpp +93 -0
  293. include/dart/dynamics/detail/FixedFrameAspect.hpp +58 -0
  294. include/dart/dynamics/detail/FixedJacobianNode.hpp +55 -0
  295. include/dart/dynamics/detail/GenericJoint.hpp +2471 -0
  296. include/dart/dynamics/detail/GenericJointAspect.hpp +353 -0
  297. include/dart/dynamics/detail/HeightmapShape-impl.hpp +243 -0
  298. include/dart/dynamics/detail/InverseKinematics.hpp +83 -0
  299. include/dart/dynamics/detail/InverseKinematicsPtr.hpp +341 -0
  300. include/dart/dynamics/detail/JointAspect.hpp +161 -0
  301. include/dart/dynamics/detail/JointPtr.hpp +293 -0
  302. include/dart/dynamics/detail/MarkerAspect.hpp +68 -0
  303. include/dart/dynamics/detail/MetaSkeleton-impl.hpp +151 -0
  304. include/dart/dynamics/detail/Node.hpp +532 -0
  305. include/dart/dynamics/detail/NodeManagerJoiner.hpp +184 -0
  306. include/dart/dynamics/detail/NodePtr.hpp +259 -0
  307. include/dart/dynamics/detail/PlanarJointAspect.hpp +136 -0
  308. include/dart/dynamics/detail/PrismaticJointAspect.hpp +85 -0
  309. include/dart/dynamics/detail/RevoluteJointAspect.hpp +86 -0
  310. include/dart/dynamics/detail/ScrewJointAspect.hpp +90 -0
  311. include/dart/dynamics/detail/ShapeFrameAspect.hpp +169 -0
  312. include/dart/dynamics/detail/ShapeNode.hpp +51 -0
  313. include/dart/dynamics/detail/Skeleton.hpp +92 -0
  314. include/dart/dynamics/detail/SkeletonAspect.hpp +181 -0
  315. include/dart/dynamics/detail/SoftBodyNodeAspect.hpp +132 -0
  316. include/dart/dynamics/detail/SpecializedNodeManager.hpp +324 -0
  317. include/dart/dynamics/detail/TemplatedJacobianNode.hpp +294 -0
  318. include/dart/dynamics/detail/TranslationalJoint2DAspect.hpp +140 -0
  319. include/dart/dynamics/detail/UniversalJointAspect.hpp +86 -0
  320. include/dart/dynamics/dynamics.hpp +14 -0
  321. include/dart/dynamics/ikfast.h +345 -0
  322. include/dart/external/convhull_3d/convhull_3d.h +1878 -0
  323. include/dart/external/convhull_3d/safe_convhull_3d.h +53 -0
  324. include/dart/external/odelcpsolver/common.h +418 -0
  325. include/dart/external/odelcpsolver/error.h +62 -0
  326. include/dart/external/odelcpsolver/lcp.h +75 -0
  327. include/dart/external/odelcpsolver/matrix.h +277 -0
  328. include/dart/external/odelcpsolver/misc.h +82 -0
  329. include/dart/external/odelcpsolver/odeconfig.h +110 -0
  330. include/dart/gui/osg/DefaultEventHandler.hpp +237 -0
  331. include/dart/gui/osg/DragAndDrop.hpp +360 -0
  332. include/dart/gui/osg/GridVisual.hpp +218 -0
  333. include/dart/gui/osg/ImGuiHandler.hpp +113 -0
  334. include/dart/gui/osg/ImGuiViewer.hpp +83 -0
  335. include/dart/gui/osg/ImGuiWidget.hpp +91 -0
  336. include/dart/gui/osg/IncludeImGui.hpp +75 -0
  337. include/dart/gui/osg/InteractiveFrame.hpp +170 -0
  338. include/dart/gui/osg/MouseEventHandler.hpp +76 -0
  339. include/dart/gui/osg/RealTimeWorldNode.hpp +126 -0
  340. include/dart/gui/osg/ShapeFrameNode.hpp +117 -0
  341. include/dart/gui/osg/SupportPolygonVisual.hpp +202 -0
  342. include/dart/gui/osg/TrackballManipulator.hpp +97 -0
  343. include/dart/gui/osg/Utils.hpp +120 -0
  344. include/dart/gui/osg/Viewer.hpp +427 -0
  345. include/dart/gui/osg/WorldNode.hpp +211 -0
  346. include/dart/gui/osg/all.hpp +19 -0
  347. include/dart/gui/osg/detail/CameraModeCallback.hpp +82 -0
  348. include/dart/gui/osg/detail/Utils-impl.hpp +160 -0
  349. include/dart/gui/osg/osg.hpp +14 -0
  350. include/dart/gui/osg/render/BoxShapeNode.hpp +74 -0
  351. include/dart/gui/osg/render/CapsuleShapeNode.hpp +75 -0
  352. include/dart/gui/osg/render/ConeShapeNode.hpp +74 -0
  353. include/dart/gui/osg/render/CylinderShapeNode.hpp +75 -0
  354. include/dart/gui/osg/render/EllipsoidShapeNode.hpp +76 -0
  355. include/dart/gui/osg/render/HeightmapShapeNode.hpp +485 -0
  356. include/dart/gui/osg/render/LineSegmentShapeNode.hpp +75 -0
  357. include/dart/gui/osg/render/MeshShapeNode.hpp +86 -0
  358. include/dart/gui/osg/render/MultiSphereShapeNode.hpp +76 -0
  359. include/dart/gui/osg/render/PlaneShapeNode.hpp +75 -0
  360. include/dart/gui/osg/render/PointCloudShapeNode.hpp +85 -0
  361. include/dart/gui/osg/render/PyramidShapeNode.hpp +75 -0
  362. include/dart/gui/osg/render/ShapeNode.hpp +126 -0
  363. include/dart/gui/osg/render/SoftMeshShapeNode.hpp +75 -0
  364. include/dart/gui/osg/render/SphereShapeNode.hpp +76 -0
  365. include/dart/gui/osg/render/VoxelGridShapeNode.hpp +83 -0
  366. include/dart/gui/osg/render/WarningShapeNode.hpp +64 -0
  367. include/dart/gui/osg/render/all.hpp +19 -0
  368. include/dart/gui/osg/render/render.hpp +14 -0
  369. include/dart/integration/EulerIntegrator.hpp +64 -0
  370. include/dart/integration/Integrator.hpp +104 -0
  371. include/dart/integration/RK4Integrator.hpp +68 -0
  372. include/dart/integration/SemiImplicitEulerIntegrator.hpp +64 -0
  373. include/dart/integration/all.hpp +6 -0
  374. include/dart/integration/integration.hpp +14 -0
  375. include/dart/lcpsolver/Lemke.hpp +54 -0
  376. include/dart/lcpsolver/ODELCPSolver.hpp +88 -0
  377. include/dart/lcpsolver/all.hpp +4 -0
  378. include/dart/lcpsolver/lcpsolver.hpp +14 -0
  379. include/dart/math/ConfigurationSpace.hpp +144 -0
  380. include/dart/math/Constants.hpp +79 -0
  381. include/dart/math/Geometry.hpp +659 -0
  382. include/dart/math/Helpers.hpp +481 -0
  383. include/dart/math/Icosphere.hpp +106 -0
  384. include/dart/math/MathTypes.hpp +100 -0
  385. include/dart/math/Mesh.hpp +108 -0
  386. include/dart/math/Random.hpp +225 -0
  387. include/dart/math/TriMesh.hpp +121 -0
  388. include/dart/math/all.hpp +11 -0
  389. include/dart/math/detail/ConfigurationSpace.hpp +235 -0
  390. include/dart/math/detail/Geometry-impl.hpp +126 -0
  391. include/dart/math/detail/Icosphere-impl.hpp +214 -0
  392. include/dart/math/detail/Mesh-impl.hpp +151 -0
  393. include/dart/math/detail/Random-impl.hpp +353 -0
  394. include/dart/math/detail/TriMesh-impl.hpp +202 -0
  395. include/dart/math/math.hpp +14 -0
  396. include/dart/optimizer/Function.hpp +203 -0
  397. include/dart/optimizer/GenericMultiObjectiveProblem.hpp +174 -0
  398. include/dart/optimizer/GradientDescentSolver.hpp +240 -0
  399. include/dart/optimizer/MultiObjectiveProblem.hpp +168 -0
  400. include/dart/optimizer/MultiObjectiveSolver.hpp +168 -0
  401. include/dart/optimizer/Population.hpp +108 -0
  402. include/dart/optimizer/Problem.hpp +191 -0
  403. include/dart/optimizer/Solver.hpp +182 -0
  404. include/dart/optimizer/all.hpp +10 -0
  405. include/dart/optimizer/ipopt/BackwardCompatibility.hpp +43 -0
  406. include/dart/optimizer/ipopt/IpoptSolver.hpp +223 -0
  407. include/dart/optimizer/ipopt/all.hpp +4 -0
  408. include/dart/optimizer/ipopt/ipopt.hpp +14 -0
  409. include/dart/optimizer/nlopt/NloptSolver.hpp +212 -0
  410. include/dart/optimizer/nlopt/all.hpp +3 -0
  411. include/dart/optimizer/nlopt/nlopt.hpp +14 -0
  412. include/dart/optimizer/optimizer.hpp +14 -0
  413. include/dart/simulation/Recording.hpp +118 -0
  414. include/dart/simulation/SmartPointer.hpp +46 -0
  415. include/dart/simulation/World.hpp +405 -0
  416. include/dart/simulation/all.hpp +5 -0
  417. include/dart/simulation/detail/World-impl.hpp +129 -0
  418. include/dart/simulation/simulation.hpp +14 -0
  419. include/dart/utils/C3D.hpp +107 -0
  420. include/dart/utils/CompositeResourceRetriever.hpp +97 -0
  421. include/dart/utils/DartResourceRetriever.hpp +104 -0
  422. include/dart/utils/FileInfoC3D.hpp +91 -0
  423. include/dart/utils/FileInfoDof.hpp +109 -0
  424. include/dart/utils/FileInfoWorld.hpp +75 -0
  425. include/dart/utils/PackageResourceRetriever.hpp +118 -0
  426. include/dart/utils/SkelParser.hpp +70 -0
  427. include/dart/utils/VskParser.hpp +108 -0
  428. include/dart/utils/XmlHelpers.hpp +243 -0
  429. include/dart/utils/all.hpp +14 -0
  430. include/dart/utils/detail/XmlHelpers-impl.hpp +213 -0
  431. include/dart/utils/mjcf/MjcfParser.hpp +80 -0
  432. include/dart/utils/mjcf/all.hpp +3 -0
  433. include/dart/utils/mjcf/mjcf.hpp +14 -0
  434. include/dart/utils/sdf/SdfParser.hpp +98 -0
  435. include/dart/utils/sdf/all.hpp +3 -0
  436. include/dart/utils/sdf/sdf.hpp +14 -0
  437. include/dart/utils/urdf/BackwardCompatibility.hpp +52 -0
  438. include/dart/utils/urdf/DartLoader.hpp +277 -0
  439. include/dart/utils/urdf/IncludeUrdf.hpp +47 -0
  440. include/dart/utils/urdf/URDFTypes.hpp +42 -0
  441. include/dart/utils/urdf/all.hpp +5 -0
  442. include/dart/utils/urdf/urdf.hpp +14 -0
  443. include/dart/utils/urdf/urdf_world_parser.hpp +83 -0
  444. include/dart/utils/utils.hpp +14 -0
  445. lib64/libdart-collision-bullet.a +0 -0
  446. lib64/libdart-collision-ode.a +0 -0
  447. lib64/libdart-external-odelcpsolver.a +0 -0
  448. lib64/libdart-gui-osg.a +0 -0
  449. lib64/libdart-optimizer-ipopt.a +0 -0
  450. lib64/libdart-optimizer-nlopt.a +0 -0
  451. lib64/libdart-utils-urdf.a +0 -0
  452. lib64/libdart-utils.a +0 -0
  453. lib64/libdart.a +0 -0
  454. lib64/pkgconfig/dart.pc +12 -0
  455. share/dart/cmake/DARTConfig.cmake +194 -0
  456. share/dart/cmake/DARTConfigVersion.cmake +65 -0
  457. share/dart/cmake/DARTFindBullet.cmake +96 -0
  458. share/dart/cmake/DARTFindEigen3.cmake +9 -0
  459. share/dart/cmake/DARTFindIPOPT.cmake +20 -0
  460. share/dart/cmake/DARTFindNLOPT.cmake +17 -0
  461. share/dart/cmake/DARTFindODE.cmake +23 -0
  462. share/dart/cmake/DARTFindOpenSceneGraph.cmake +69 -0
  463. share/dart/cmake/DARTFindassimp.cmake +18 -0
  464. share/dart/cmake/DARTFindfcl.cmake +23 -0
  465. share/dart/cmake/DARTFindfmt.cmake +9 -0
  466. share/dart/cmake/DARTFindimgui.cmake +21 -0
  467. share/dart/cmake/DARTFindoctomap.cmake +17 -0
  468. share/dart/cmake/DARTFindspdlog.cmake +9 -0
  469. share/dart/cmake/DARTFindtinyxml2.cmake +27 -0
  470. share/dart/cmake/DARTFindurdfdom.cmake +29 -0
  471. share/dart/cmake/FindIPOPT.cmake +54 -0
  472. share/dart/cmake/FindNLOPT.cmake +54 -0
  473. share/dart/cmake/FindODE.cmake +54 -0
  474. share/dart/cmake/Findassimp.cmake +56 -0
  475. share/dart/cmake/Findfcl.cmake +67 -0
  476. share/dart/cmake/Findimgui.cmake +70 -0
  477. share/dart/cmake/Findtinyxml2.cmake +54 -0
  478. share/dart/cmake/dart_collision-bulletComponent.cmake +19 -0
  479. share/dart/cmake/dart_collision-bulletTargets-release.cmake +19 -0
  480. share/dart/cmake/dart_collision-bulletTargets.cmake +122 -0
  481. share/dart/cmake/dart_collision-odeComponent.cmake +19 -0
  482. share/dart/cmake/dart_collision-odeTargets-release.cmake +19 -0
  483. share/dart/cmake/dart_collision-odeTargets.cmake +122 -0
  484. share/dart/cmake/dart_dartComponent.cmake +19 -0
  485. share/dart/cmake/dart_dartTargets-release.cmake +19 -0
  486. share/dart/cmake/dart_dartTargets.cmake +125 -0
  487. share/dart/cmake/dart_external-odelcpsolverComponent.cmake +19 -0
  488. share/dart/cmake/dart_external-odelcpsolverTargets-release.cmake +19 -0
  489. share/dart/cmake/dart_external-odelcpsolverTargets.cmake +106 -0
  490. share/dart/cmake/dart_gui-osgComponent.cmake +19 -0
  491. share/dart/cmake/dart_gui-osgTargets-release.cmake +19 -0
  492. share/dart/cmake/dart_gui-osgTargets.cmake +122 -0
  493. share/dart/cmake/dart_optimizer-ipoptComponent.cmake +19 -0
  494. share/dart/cmake/dart_optimizer-ipoptTargets-release.cmake +19 -0
  495. share/dart/cmake/dart_optimizer-ipoptTargets.cmake +123 -0
  496. share/dart/cmake/dart_optimizer-nloptComponent.cmake +19 -0
  497. share/dart/cmake/dart_optimizer-nloptTargets-release.cmake +19 -0
  498. share/dart/cmake/dart_optimizer-nloptTargets.cmake +123 -0
  499. share/dart/cmake/dart_utils-urdfComponent.cmake +19 -0
  500. share/dart/cmake/dart_utils-urdfTargets-release.cmake +19 -0
  501. share/dart/cmake/dart_utils-urdfTargets.cmake +122 -0
  502. share/dart/cmake/dart_utilsComponent.cmake +19 -0
  503. share/dart/cmake/dart_utilsTargets-release.cmake +19 -0
  504. share/dart/cmake/dart_utilsTargets.cmake +122 -0
  505. share/dart/package.xml +42 -0
  506. share/doc/dart/data/c3d/nick_freeform_001.c3d +0 -0
  507. share/doc/dart/data/c3d/squat.c3d +0 -0
  508. share/doc/dart/data/dof/RHand.dof +205 -0
  509. share/doc/dart/data/dof/fixedHand.dof +205 -0
  510. share/doc/dart/data/dof/init_Tpose.dof +240 -0
  511. share/doc/dart/data/dof/same.dof +1003 -0
  512. share/doc/dart/data/dof/simMotion.dof +1817 -0
  513. share/doc/dart/data/dof/simMotion1.dof +1355 -0
  514. share/doc/dart/data/etc/fort.4 +43 -0
  515. share/doc/dart/data/humanJointLimits/neuralnets/net-larm +0 -0
  516. share/doc/dart/data/humanJointLimits/neuralnets/net-lleg +0 -0
  517. share/doc/dart/data/mjcf/openai/LICENSE.md +36 -0
  518. share/doc/dart/data/mjcf/openai/ant.xml +81 -0
  519. share/doc/dart/data/mjcf/openai/half_cheetah.xml +96 -0
  520. share/doc/dart/data/mjcf/openai/hopper.xml +50 -0
  521. share/doc/dart/data/mjcf/openai/humanoid.xml +121 -0
  522. share/doc/dart/data/mjcf/openai/humanoidstandup.xml +121 -0
  523. share/doc/dart/data/mjcf/openai/inverted_double_pendulum.xml +47 -0
  524. share/doc/dart/data/mjcf/openai/inverted_pendulum.xml +27 -0
  525. share/doc/dart/data/mjcf/openai/point.xml +31 -0
  526. share/doc/dart/data/mjcf/openai/pusher.xml +91 -0
  527. share/doc/dart/data/mjcf/openai/reacher.xml +39 -0
  528. share/doc/dart/data/mjcf/openai/robotics/fetch/pick_and_place.xml +35 -0
  529. share/doc/dart/data/mjcf/openai/robotics/fetch/push.xml +32 -0
  530. share/doc/dart/data/mjcf/openai/robotics/fetch/reach.xml +26 -0
  531. share/doc/dart/data/mjcf/openai/robotics/fetch/robot.xml +123 -0
  532. share/doc/dart/data/mjcf/openai/robotics/fetch/shared.xml +66 -0
  533. share/doc/dart/data/mjcf/openai/robotics/fetch/slide.xml +32 -0
  534. share/doc/dart/data/mjcf/openai/robotics/stls/.get +0 -0
  535. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/base_link_collision.stl +0 -0
  536. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/bellows_link_collision.stl +0 -0
  537. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/elbow_flex_link_collision.stl +0 -0
  538. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/estop_link.stl +0 -0
  539. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/forearm_roll_link_collision.stl +0 -0
  540. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/gripper_link.stl +0 -0
  541. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_pan_link_collision.stl +0 -0
  542. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_tilt_link_collision.stl +0 -0
  543. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/l_wheel_link_collision.stl +0 -0
  544. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/laser_link.stl +0 -0
  545. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/r_wheel_link_collision.stl +0 -0
  546. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_lift_link_collision.stl +0 -0
  547. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_pan_link_collision.stl +0 -0
  548. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_fixed_link.stl +0 -0
  549. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_lift_link_collision.stl +0 -0
  550. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/upperarm_roll_link_collision.stl +0 -0
  551. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_flex_link_collision.stl +0 -0
  552. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_roll_link_collision.stl +0 -0
  553. share/doc/dart/data/mjcf/openai/robotics/textures/block.png +0 -0
  554. share/doc/dart/data/mjcf/openai/robotics/textures/block_hidden.png +0 -0
  555. share/doc/dart/data/mjcf/openai/striker.xml +101 -0
  556. share/doc/dart/data/mjcf/openai/swimmer.xml +39 -0
  557. share/doc/dart/data/mjcf/openai/thrower.xml +127 -0
  558. share/doc/dart/data/mjcf/openai/walker2d.xml +62 -0
  559. share/doc/dart/data/mjcf/test/default.xml +17 -0
  560. share/doc/dart/data/mjcf/test/include_default.xml +8 -0
  561. share/doc/dart/data/mjcf/test/include_main.xml +12 -0
  562. share/doc/dart/data/obj/Body_Hip.obj +22830 -0
  563. share/doc/dart/data/obj/BoxSmall.obj +23 -0
  564. share/doc/dart/data/obj/foot.obj +10970 -0
  565. share/doc/dart/data/other/torus1.path +11991 -0
  566. share/doc/dart/data/other/torus1.tris +5329 -0
  567. share/doc/dart/data/other/torus2.path +11991 -0
  568. share/doc/dart/data/other/torus2.tris +12961 -0
  569. share/doc/dart/data/screencap/.KEEP +0 -0
  570. share/doc/dart/data/sdf/atlas/atlas_v3.urdf +914 -0
  571. share/doc/dart/data/sdf/atlas/atlas_v3_no_head.sdf +1541 -0
  572. share/doc/dart/data/sdf/atlas/atlas_v3_no_head.urdf +914 -0
  573. share/doc/dart/data/sdf/atlas/atlas_v3_no_head_soft_feet.sdf +1567 -0
  574. share/doc/dart/data/sdf/atlas/ground.urdf +28 -0
  575. share/doc/dart/data/sdf/atlas/head.dae +8607 -0
  576. share/doc/dart/data/sdf/atlas/head.stl +0 -0
  577. share/doc/dart/data/sdf/atlas/head_camera.dae +2326 -0
  578. share/doc/dart/data/sdf/atlas/head_camera.stl +0 -0
  579. share/doc/dart/data/sdf/atlas/l_clav.dae +1278 -0
  580. share/doc/dart/data/sdf/atlas/l_clav.stl +0 -0
  581. share/doc/dart/data/sdf/atlas/l_farm.dae +1204 -0
  582. share/doc/dart/data/sdf/atlas/l_farm.stl +0 -0
  583. share/doc/dart/data/sdf/atlas/l_foot.dae +1330 -0
  584. share/doc/dart/data/sdf/atlas/l_foot.stl +0 -0
  585. share/doc/dart/data/sdf/atlas/l_hand.dae +964 -0
  586. share/doc/dart/data/sdf/atlas/l_hand.stl +0 -0
  587. share/doc/dart/data/sdf/atlas/l_larm.dae +1378 -0
  588. share/doc/dart/data/sdf/atlas/l_larm.stl +0 -0
  589. share/doc/dart/data/sdf/atlas/l_lglut.dae +897 -0
  590. share/doc/dart/data/sdf/atlas/l_lglut.stl +0 -0
  591. share/doc/dart/data/sdf/atlas/l_lleg.dae +6660 -0
  592. share/doc/dart/data/sdf/atlas/l_lleg.stl +0 -0
  593. share/doc/dart/data/sdf/atlas/l_scap.dae +1531 -0
  594. share/doc/dart/data/sdf/atlas/l_scap.stl +0 -0
  595. share/doc/dart/data/sdf/atlas/l_talus.dae +374 -0
  596. share/doc/dart/data/sdf/atlas/l_talus.stl +0 -0
  597. share/doc/dart/data/sdf/atlas/l_uarm.dae +1204 -0
  598. share/doc/dart/data/sdf/atlas/l_uarm.stl +0 -0
  599. share/doc/dart/data/sdf/atlas/l_uglut.dae +398 -0
  600. share/doc/dart/data/sdf/atlas/l_uglut.stl +0 -0
  601. share/doc/dart/data/sdf/atlas/l_uleg.dae +9087 -0
  602. share/doc/dart/data/sdf/atlas/l_uleg.stl +0 -0
  603. share/doc/dart/data/sdf/atlas/ltorso.dae +614 -0
  604. share/doc/dart/data/sdf/atlas/ltorso.stl +0 -0
  605. share/doc/dart/data/sdf/atlas/mtorso.dae +266 -0
  606. share/doc/dart/data/sdf/atlas/mtorso.stl +0 -0
  607. share/doc/dart/data/sdf/atlas/pelvis.dae +8727 -0
  608. share/doc/dart/data/sdf/atlas/pelvis.stl +0 -0
  609. share/doc/dart/data/sdf/atlas/r_clav.dae +1278 -0
  610. share/doc/dart/data/sdf/atlas/r_clav.stl +0 -0
  611. share/doc/dart/data/sdf/atlas/r_farm.dae +1204 -0
  612. share/doc/dart/data/sdf/atlas/r_farm.stl +0 -0
  613. share/doc/dart/data/sdf/atlas/r_foot.dae +1330 -0
  614. share/doc/dart/data/sdf/atlas/r_foot.stl +0 -0
  615. share/doc/dart/data/sdf/atlas/r_hand.dae +904 -0
  616. share/doc/dart/data/sdf/atlas/r_hand.stl +0 -0
  617. share/doc/dart/data/sdf/atlas/r_larm.dae +1378 -0
  618. share/doc/dart/data/sdf/atlas/r_larm.stl +0 -0
  619. share/doc/dart/data/sdf/atlas/r_lglut.dae +897 -0
  620. share/doc/dart/data/sdf/atlas/r_lglut.stl +0 -0
  621. share/doc/dart/data/sdf/atlas/r_lleg.dae +6661 -0
  622. share/doc/dart/data/sdf/atlas/r_lleg.stl +0 -0
  623. share/doc/dart/data/sdf/atlas/r_scap.dae +1531 -0
  624. share/doc/dart/data/sdf/atlas/r_scap.stl +0 -0
  625. share/doc/dart/data/sdf/atlas/r_talus.dae +374 -0
  626. share/doc/dart/data/sdf/atlas/r_talus.stl +0 -0
  627. share/doc/dart/data/sdf/atlas/r_uarm.dae +1144 -0
  628. share/doc/dart/data/sdf/atlas/r_uarm.stl +0 -0
  629. share/doc/dart/data/sdf/atlas/r_uglut.dae +398 -0
  630. share/doc/dart/data/sdf/atlas/r_uglut.stl +0 -0
  631. share/doc/dart/data/sdf/atlas/r_uleg.dae +9087 -0
  632. share/doc/dart/data/sdf/atlas/r_uleg.stl +0 -0
  633. share/doc/dart/data/sdf/atlas/utorso.dae +28342 -0
  634. share/doc/dart/data/sdf/atlas/utorso.stl +0 -0
  635. share/doc/dart/data/sdf/atlas/utorso_mod.dae +16508 -0
  636. share/doc/dart/data/sdf/atlas/utorso_mod.stl +0 -0
  637. share/doc/dart/data/sdf/atlas/utorso_pack.dae +8521 -0
  638. share/doc/dart/data/sdf/atlas/utorso_pack.stl +0 -0
  639. share/doc/dart/data/sdf/benchmark.world +2510 -0
  640. share/doc/dart/data/sdf/double_pendulum.world +168 -0
  641. share/doc/dart/data/sdf/double_pendulum_with_base.world +263 -0
  642. share/doc/dart/data/sdf/empty.world +13 -0
  643. share/doc/dart/data/sdf/ground.world +48 -0
  644. share/doc/dart/data/sdf/materials/textures/atlas_cage_and_camera_diffuse_flat.jpg +0 -0
  645. share/doc/dart/data/sdf/materials/textures/drc_extremities_diffuse.jpg +0 -0
  646. share/doc/dart/data/sdf/materials/textures/drc_labels_1.jpg +0 -0
  647. share/doc/dart/data/sdf/materials/textures/drc_torso_head_diffuse.jpg +0 -0
  648. share/doc/dart/data/sdf/materials/textures/extremities_diffuse_unplugged.jpg +0 -0
  649. share/doc/dart/data/sdf/materials/textures/right_leg_diffuse_unplugged.jpg +0 -0
  650. share/doc/dart/data/sdf/materials/textures/torso_diffuse_unplugged.jpg +0 -0
  651. share/doc/dart/data/sdf/quad.sdf +867 -0
  652. share/doc/dart/data/sdf/test/force_torque_test.world +173 -0
  653. share/doc/dart/data/sdf/test/force_torque_test2.world +214 -0
  654. share/doc/dart/data/sdf/test/issue1193_revolute_test.sdf +70 -0
  655. share/doc/dart/data/sdf/test/issue1193_revolute_with_offset_test.sdf +70 -0
  656. share/doc/dart/data/sdf/test/issue1624_cubes.sdf +5037 -0
  657. share/doc/dart/data/sdf/test/single_bodynode_skeleton.world +55 -0
  658. share/doc/dart/data/sdf/test/test_issue1583.model +45 -0
  659. share/doc/dart/data/sdf/test/test_issue1596.model +182 -0
  660. share/doc/dart/data/sdf/test/test_skeleton_joint.world +278 -0
  661. share/doc/dart/data/skel/biped.skel +850 -0
  662. share/doc/dart/data/skel/bullet_collision.skel +174 -0
  663. share/doc/dart/data/skel/chain.skel +212 -0
  664. share/doc/dart/data/skel/cube.skel +71 -0
  665. share/doc/dart/data/skel/cubes.skel +137 -0
  666. share/doc/dart/data/skel/empty.skel +10 -0
  667. share/doc/dart/data/skel/freeChain.skel +212 -0
  668. share/doc/dart/data/skel/fullbody1.skel +1177 -0
  669. share/doc/dart/data/skel/ground.skel +31 -0
  670. share/doc/dart/data/skel/joint_limit.skel +123 -0
  671. share/doc/dart/data/skel/kima/abdomen.dae +18933 -0
  672. share/doc/dart/data/skel/kima/head.dae +34634 -0
  673. share/doc/dart/data/skel/kima/kima_human_edited.skel +933 -0
  674. share/doc/dart/data/skel/kima/kima_human_left_arm.skel +323 -0
  675. share/doc/dart/data/skel/kima/kima_human_left_leg.skel +327 -0
  676. share/doc/dart/data/skel/kima/l-clavicle.dae +20111 -0
  677. share/doc/dart/data/skel/kima/l-foot.dae +28208 -0
  678. share/doc/dart/data/skel/kima/pelvis.dae +35919 -0
  679. share/doc/dart/data/skel/kima/r-clavicle.dae +20090 -0
  680. share/doc/dart/data/skel/kima/thorax.dae +47337 -0
  681. share/doc/dart/data/skel/mesh_collision.skel +137 -0
  682. share/doc/dart/data/skel/shapes.skel +378 -0
  683. share/doc/dart/data/skel/skateboard.skel +222 -0
  684. share/doc/dart/data/skel/softBodies.skel +284 -0
  685. share/doc/dart/data/skel/soft_cubes.skel +134 -0
  686. share/doc/dart/data/skel/soft_open_chain.skel +241 -0
  687. share/doc/dart/data/skel/sphere.skel +74 -0
  688. share/doc/dart/data/skel/spheres.skel +118 -0
  689. share/doc/dart/data/skel/test/SimplePendulum.skel +141 -0
  690. share/doc/dart/data/skel/test/ball_joints.skel +49 -0
  691. share/doc/dart/data/skel/test/box_stacking.skel +346 -0
  692. share/doc/dart/data/skel/test/boxes.skel +52 -0
  693. share/doc/dart/data/skel/test/chainwhipa.skel +193 -0
  694. share/doc/dart/data/skel/test/collision_of_prescribed_joints_test.skel +249 -0
  695. share/doc/dart/data/skel/test/dof_attribute_test.skel +206 -0
  696. share/doc/dart/data/skel/test/double_pendulum.skel +76 -0
  697. share/doc/dart/data/skel/test/double_pendulum_ball_joint.skel +76 -0
  698. share/doc/dart/data/skel/test/double_pendulum_euler_joint.skel +78 -0
  699. share/doc/dart/data/skel/test/double_pendulum_with_base.skel +1390 -0
  700. share/doc/dart/data/skel/test/drop.skel +116 -0
  701. share/doc/dart/data/skel/test/drop_BENCHMARK.skel +10 -0
  702. share/doc/dart/data/skel/test/drop_unrotated_box.skel +156 -0
  703. share/doc/dart/data/skel/test/empty.skel +10 -0
  704. share/doc/dart/data/skel/test/file_info_world_test.skel +1177 -0
  705. share/doc/dart/data/skel/test/free_joints.skel +49 -0
  706. share/doc/dart/data/skel/test/gazebo/drop_test.skel +161 -0
  707. share/doc/dart/data/skel/test/gazebo/force_torque_test.skel +138 -0
  708. share/doc/dart/data/skel/test/gazebo/force_torque_test2.skel +171 -0
  709. share/doc/dart/data/skel/test/hybrid_dynamics_test.skel +172 -0
  710. share/doc/dart/data/skel/test/joint_actuator_type_test.skel +185 -0
  711. share/doc/dart/data/skel/test/joint_dynamics_elements_test.skel +103 -0
  712. share/doc/dart/data/skel/test/joint_friction_test.skel +80 -0
  713. share/doc/dart/data/skel/test/joint_limit_test.skel +80 -0
  714. share/doc/dart/data/skel/test/planar_joint.skel +167 -0
  715. share/doc/dart/data/skel/test/serial_chain_BENCHMARK.skel +10 -0
  716. share/doc/dart/data/skel/test/serial_chain_ball_joint.skel +212 -0
  717. share/doc/dart/data/skel/test/serial_chain_ball_joint_20.skel +412 -0
  718. share/doc/dart/data/skel/test/serial_chain_ball_joint_40.skel +812 -0
  719. share/doc/dart/data/skel/test/serial_chain_eulerxyz_joint.skel +224 -0
  720. share/doc/dart/data/skel/test/serial_chain_revolute_joint.skel +244 -0
  721. share/doc/dart/data/skel/test/simple_tree_structure.skel +108 -0
  722. share/doc/dart/data/skel/test/simple_tree_structure_ball_joint.skel +108 -0
  723. share/doc/dart/data/skel/test/simple_tree_structure_euler_joint.skel +111 -0
  724. share/doc/dart/data/skel/test/single_pendulum.skel +55 -0
  725. share/doc/dart/data/skel/test/single_pendulum_ball_joint.skel +55 -0
  726. share/doc/dart/data/skel/test/single_pendulum_euler_joint.skel +56 -0
  727. share/doc/dart/data/skel/test/spheres.skel +118 -0
  728. share/doc/dart/data/skel/test/test_adaptive_deformable.skel +88 -0
  729. share/doc/dart/data/skel/test/test_articulated_bodies.skel +112 -0
  730. share/doc/dart/data/skel/test/test_articulated_bodies_10bodies.skel +401 -0
  731. share/doc/dart/data/skel/test/test_double_pendulum.skel +105 -0
  732. share/doc/dart/data/skel/test/test_drop_box.skel +87 -0
  733. share/doc/dart/data/skel/test/test_drop_box_offset.skel +87 -0
  734. share/doc/dart/data/skel/test/test_drop_low_stiffness.skel +86 -0
  735. share/doc/dart/data/skel/test/test_drop_sphere.skel +86 -0
  736. share/doc/dart/data/skel/test/test_shapes.skel +324 -0
  737. share/doc/dart/data/skel/test/test_single_body.skel +55 -0
  738. share/doc/dart/data/skel/test/test_single_pendulum.skel +55 -0
  739. share/doc/dart/data/skel/test/translational_joints.skel +49 -0
  740. share/doc/dart/data/skel/test/tree_structure.skel +428 -0
  741. share/doc/dart/data/skel/test/tree_structure_ball_joint.skel +441 -0
  742. share/doc/dart/data/skel/test/tree_structure_euler_joint.skel +441 -0
  743. share/doc/dart/data/skel/two_cubes.skel +118 -0
  744. share/doc/dart/data/skel/vehicle.skel +322 -0
  745. share/doc/dart/data/test/hello_world.txt +1 -0
  746. share/doc/dart/data/urdf/KR5/KR5 sixx R650.urdf +397 -0
  747. share/doc/dart/data/urdf/KR5/ground.urdf +28 -0
  748. share/doc/dart/data/urdf/KR5/meshes/base_link.STL +0 -0
  749. share/doc/dart/data/urdf/KR5/meshes/bicep.STL +0 -0
  750. share/doc/dart/data/urdf/KR5/meshes/elbow.STL +0 -0
  751. share/doc/dart/data/urdf/KR5/meshes/forearm.STL +0 -0
  752. share/doc/dart/data/urdf/KR5/meshes/palm.STL +0 -0
  753. share/doc/dart/data/urdf/KR5/meshes/shoulder.STL +0 -0
  754. share/doc/dart/data/urdf/KR5/meshes/wrist.STL +0 -0
  755. share/doc/dart/data/urdf/drchubo/CMakeLists.txt +5 -0
  756. share/doc/dart/data/urdf/drchubo/drchubo.urdf +1508 -0
  757. share/doc/dart/data/urdf/drchubo/meshes/convhull_LAP_merged.stl +0 -0
  758. share/doc/dart/data/urdf/drchubo/meshes/convhull_LAR_merged.stl +0 -0
  759. share/doc/dart/data/urdf/drchubo/meshes/convhull_LEP_merged.stl +0 -0
  760. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF1.stl +0 -0
  761. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF2.stl +0 -0
  762. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF3.stl +0 -0
  763. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHP_merged.stl +0 -0
  764. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHR_merged.stl +0 -0
  765. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHY_merged.stl +0 -0
  766. share/doc/dart/data/urdf/drchubo/meshes/convhull_LKP_merged.stl +0 -0
  767. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSP_merged.stl +0 -0
  768. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSR_merged.stl +0 -0
  769. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSY_merged.stl +0 -0
  770. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWP_merged.stl +0 -0
  771. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWR_merged.stl +0 -0
  772. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWY_merged.stl +0 -0
  773. share/doc/dart/data/urdf/drchubo/meshes/convhull_NK1_merged.stl +0 -0
  774. share/doc/dart/data/urdf/drchubo/meshes/convhull_NK2.stl +0 -0
  775. share/doc/dart/data/urdf/drchubo/meshes/convhull_NKY_merged.stl +0 -0
  776. share/doc/dart/data/urdf/drchubo/meshes/convhull_RAP_merged.stl +0 -0
  777. share/doc/dart/data/urdf/drchubo/meshes/convhull_RAR_merged.stl +0 -0
  778. share/doc/dart/data/urdf/drchubo/meshes/convhull_REP_merged.stl +0 -0
  779. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF1.stl +0 -0
  780. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF2.stl +0 -0
  781. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF3.stl +0 -0
  782. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHP_merged.stl +0 -0
  783. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHR_merged.stl +0 -0
  784. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHY_merged.stl +0 -0
  785. share/doc/dart/data/urdf/drchubo/meshes/convhull_RKP_merged.stl +0 -0
  786. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSP_merged.stl +0 -0
  787. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSR_merged.stl +0 -0
  788. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSY_merged.stl +0 -0
  789. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWP_merged.stl +0 -0
  790. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWR_merged.stl +0 -0
  791. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWY_merged.stl +0 -0
  792. share/doc/dart/data/urdf/drchubo/meshes/convhull_TSY_merged.stl +0 -0
  793. share/doc/dart/data/urdf/drchubo/meshes/convhull_Torso_merged.stl +0 -0
  794. share/doc/dart/data/urdf/drchubo/package.xml +11 -0
  795. share/doc/dart/data/urdf/test/invalid.urdf +1 -0
  796. share/doc/dart/data/urdf/test/invalid_mesh.stl +1 -0
  797. share/doc/dart/data/urdf/test/invalid_mesh.urdf +10 -0
  798. share/doc/dart/data/urdf/test/issue838.urdf +86 -0
  799. share/doc/dart/data/urdf/test/joint_properties.urdf +60 -0
  800. share/doc/dart/data/urdf/test/missing_mesh.urdf +10 -0
  801. share/doc/dart/data/urdf/test/missing_package.urdf +10 -0
  802. share/doc/dart/data/urdf/test/primitive_geometry.urdf +12 -0
  803. share/doc/dart/data/urdf/test/testWorld.urdf +9 -0
  804. share/doc/dart/data/urdf/wam/meshes/images/base_gray_128x.jpg +0 -0
  805. share/doc/dart/data/urdf/wam/meshes/images/forearm_256x.jpg +0 -0
  806. share/doc/dart/data/urdf/wam/meshes/images/lpu_128x.jpg +0 -0
  807. share/doc/dart/data/urdf/wam/meshes/images/shoulder_256x.jpg +0 -0
  808. share/doc/dart/data/urdf/wam/meshes/images/upperarm_128x.jpg +0 -0
  809. share/doc/dart/data/urdf/wam/meshes/images/wrist_yaw_128x.jpg +0 -0
  810. share/doc/dart/data/urdf/wam/meshes/wam/wam1.STL +0 -0
  811. share/doc/dart/data/urdf/wam/meshes/wam/wam1.dae +187 -0
  812. share/doc/dart/data/urdf/wam/meshes/wam/wam1_collision.STL +0 -0
  813. share/doc/dart/data/urdf/wam/meshes/wam/wam2.STL +0 -0
  814. share/doc/dart/data/urdf/wam/meshes/wam/wam2.dae +187 -0
  815. share/doc/dart/data/urdf/wam/meshes/wam/wam2_collision.STL +0 -0
  816. share/doc/dart/data/urdf/wam/meshes/wam/wam3.STL +0 -0
  817. share/doc/dart/data/urdf/wam/meshes/wam/wam3.dae +187 -0
  818. share/doc/dart/data/urdf/wam/meshes/wam/wam3_collision.STL +0 -0
  819. share/doc/dart/data/urdf/wam/meshes/wam/wam4.STL +0 -0
  820. share/doc/dart/data/urdf/wam/meshes/wam/wam4.dae +187 -0
  821. share/doc/dart/data/urdf/wam/meshes/wam/wam4_collision.STL +0 -0
  822. share/doc/dart/data/urdf/wam/meshes/wam/wam5.STL +0 -0
  823. share/doc/dart/data/urdf/wam/meshes/wam/wam5.dae +187 -0
  824. share/doc/dart/data/urdf/wam/meshes/wam/wam5_collision.STL +0 -0
  825. share/doc/dart/data/urdf/wam/meshes/wam/wam6.STL +0 -0
  826. share/doc/dart/data/urdf/wam/meshes/wam/wam6.dae +187 -0
  827. share/doc/dart/data/urdf/wam/meshes/wam/wam6_collision.STL +0 -0
  828. share/doc/dart/data/urdf/wam/meshes/wam/wam7.STL +0 -0
  829. share/doc/dart/data/urdf/wam/meshes/wam/wam7.dae +137 -0
  830. share/doc/dart/data/urdf/wam/meshes/wam/wam7_collision.STL +0 -0
  831. share/doc/dart/data/urdf/wam/meshes/wam/wam_base.STL +0 -0
  832. share/doc/dart/data/urdf/wam/meshes/wam/wam_base.dae +103 -0
  833. share/doc/dart/data/urdf/wam/meshes/wam/wam_base_collision.STL +0 -0
  834. share/doc/dart/data/urdf/wam/wam.urdf +230 -0
  835. share/doc/dart/data/vsk/Nick01.vsk +398 -0
  836. share/doc/dart/data/vsk/SehoonVSK3.vsk +398 -0
  837. share/doc/dart/data/vsk/Yuting.vsk +398 -0
  838. share/doc/dart/data/vsk/test/empty.vsk +3 -0
  839. share/doc/dart/examples/CMakeLists.txt +44 -0
  840. share/doc/dart/examples/README.md +33 -0
  841. share/doc/dart/examples/add_delete_skels/CMakeLists.txt +19 -0
  842. share/doc/dart/examples/add_delete_skels/main.cpp +165 -0
  843. share/doc/dart/examples/atlas_puppet/CMakeLists.txt +19 -0
  844. share/doc/dart/examples/atlas_puppet/README.md +20 -0
  845. share/doc/dart/examples/atlas_puppet/main.cpp +930 -0
  846. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.cpp +71 -0
  847. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.hpp +56 -0
  848. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.cpp +187 -0
  849. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.hpp +85 -0
  850. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.cpp +134 -0
  851. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.hpp +75 -0
  852. share/doc/dart/examples/atlas_simbicon/CMakeLists.txt +19 -0
  853. share/doc/dart/examples/atlas_simbicon/Controller.cpp +996 -0
  854. share/doc/dart/examples/atlas_simbicon/Controller.hpp +203 -0
  855. share/doc/dart/examples/atlas_simbicon/README.md +20 -0
  856. share/doc/dart/examples/atlas_simbicon/State.cpp +674 -0
  857. share/doc/dart/examples/atlas_simbicon/State.hpp +336 -0
  858. share/doc/dart/examples/atlas_simbicon/StateMachine.cpp +222 -0
  859. share/doc/dart/examples/atlas_simbicon/StateMachine.hpp +134 -0
  860. share/doc/dart/examples/atlas_simbicon/TerminalCondition.cpp +111 -0
  861. share/doc/dart/examples/atlas_simbicon/TerminalCondition.hpp +102 -0
  862. share/doc/dart/examples/atlas_simbicon/main.cpp +102 -0
  863. share/doc/dart/examples/biped_stand/CMakeLists.txt +19 -0
  864. share/doc/dart/examples/biped_stand/README.md +20 -0
  865. share/doc/dart/examples/biped_stand/main.cpp +287 -0
  866. share/doc/dart/examples/box_stacking/CMakeLists.txt +19 -0
  867. share/doc/dart/examples/box_stacking/README.md +20 -0
  868. share/doc/dart/examples/box_stacking/main.cpp +417 -0
  869. share/doc/dart/examples/boxes/CMakeLists.txt +19 -0
  870. share/doc/dart/examples/boxes/README.md +20 -0
  871. share/doc/dart/examples/boxes/main.cpp +157 -0
  872. share/doc/dart/examples/drag_and_drop/CMakeLists.txt +19 -0
  873. share/doc/dart/examples/drag_and_drop/README.md +20 -0
  874. share/doc/dart/examples/drag_and_drop/main.cpp +101 -0
  875. share/doc/dart/examples/empty/CMakeLists.txt +19 -0
  876. share/doc/dart/examples/empty/README.md +20 -0
  877. share/doc/dart/examples/empty/main.cpp +164 -0
  878. share/doc/dart/examples/fetch/CMakeLists.txt +19 -0
  879. share/doc/dart/examples/fetch/README.md +20 -0
  880. share/doc/dart/examples/fetch/main.cpp +246 -0
  881. share/doc/dart/examples/hardcoded_design/CMakeLists.txt +19 -0
  882. share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.cpp +71 -0
  883. share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.hpp +56 -0
  884. share/doc/dart/examples/hardcoded_design/README.md +27 -0
  885. share/doc/dart/examples/hardcoded_design/main.cpp +186 -0
  886. share/doc/dart/examples/heightmap/CMakeLists.txt +19 -0
  887. share/doc/dart/examples/heightmap/README.md +20 -0
  888. share/doc/dart/examples/heightmap/main.cpp +460 -0
  889. share/doc/dart/examples/hello_world/CMakeLists.txt +19 -0
  890. share/doc/dart/examples/hello_world/README.md +20 -0
  891. share/doc/dart/examples/hello_world/main.cpp +114 -0
  892. share/doc/dart/examples/hubo_puppet/CMakeLists.txt +19 -0
  893. share/doc/dart/examples/hubo_puppet/README.md +20 -0
  894. share/doc/dart/examples/hubo_puppet/main.cpp +1464 -0
  895. share/doc/dart/examples/human_joint_limits/CMakeLists.txt +49 -0
  896. share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.cpp +411 -0
  897. share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.hpp +182 -0
  898. share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.cpp +432 -0
  899. share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.hpp +179 -0
  900. share/doc/dart/examples/human_joint_limits/main.cpp +157 -0
  901. share/doc/dart/examples/hybrid_dynamics/CMakeLists.txt +19 -0
  902. share/doc/dart/examples/hybrid_dynamics/README.md +17 -0
  903. share/doc/dart/examples/hybrid_dynamics/main.cpp +187 -0
  904. share/doc/dart/examples/imgui/CMakeLists.txt +19 -0
  905. share/doc/dart/examples/imgui/README.md +20 -0
  906. share/doc/dart/examples/imgui/main.cpp +289 -0
  907. share/doc/dart/examples/joint_constraints/CMakeLists.txt +19 -0
  908. share/doc/dart/examples/joint_constraints/Controller.cpp +110 -0
  909. share/doc/dart/examples/joint_constraints/Controller.hpp +105 -0
  910. share/doc/dart/examples/joint_constraints/README.md +22 -0
  911. share/doc/dart/examples/joint_constraints/main.cpp +242 -0
  912. share/doc/dart/examples/mixed_chain/CMakeLists.txt +19 -0
  913. share/doc/dart/examples/mixed_chain/README.md +35 -0
  914. share/doc/dart/examples/mixed_chain/main.cpp +188 -0
  915. share/doc/dart/examples/operational_space_control/CMakeLists.txt +19 -0
  916. share/doc/dart/examples/operational_space_control/README.md +20 -0
  917. share/doc/dart/examples/operational_space_control/main.cpp +338 -0
  918. share/doc/dart/examples/point_cloud/CMakeLists.txt +19 -0
  919. share/doc/dart/examples/point_cloud/README.md +20 -0
  920. share/doc/dart/examples/point_cloud/main.cpp +740 -0
  921. share/doc/dart/examples/rerun/CMakeLists.txt +19 -0
  922. share/doc/dart/examples/rigid_chain/CMakeLists.txt +19 -0
  923. share/doc/dart/examples/rigid_chain/README.md +19 -0
  924. share/doc/dart/examples/rigid_chain/main.cpp +110 -0
  925. share/doc/dart/examples/rigid_cubes/CMakeLists.txt +19 -0
  926. share/doc/dart/examples/rigid_cubes/README.md +91 -0
  927. share/doc/dart/examples/rigid_cubes/main.cpp +201 -0
  928. share/doc/dart/examples/rigid_loop/CMakeLists.txt +19 -0
  929. share/doc/dart/examples/rigid_loop/README.md +34 -0
  930. share/doc/dart/examples/rigid_loop/main.cpp +127 -0
  931. share/doc/dart/examples/rigid_shapes/CMakeLists.txt +19 -0
  932. share/doc/dart/examples/rigid_shapes/README.md +19 -0
  933. share/doc/dart/examples/rigid_shapes/main.cpp +250 -0
  934. share/doc/dart/examples/simple_frames/CMakeLists.txt +19 -0
  935. share/doc/dart/examples/simple_frames/README.md +27 -0
  936. share/doc/dart/examples/simple_frames/main.cpp +124 -0
  937. share/doc/dart/examples/simulation_event_handler/CMakeLists.txt +19 -0
  938. share/doc/dart/examples/simulation_event_handler/README.md +189 -0
  939. share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.cpp +572 -0
  940. share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.hpp +211 -0
  941. share/doc/dart/examples/simulation_event_handler/main.cpp +277 -0
  942. share/doc/dart/examples/soft_bodies/CMakeLists.txt +19 -0
  943. share/doc/dart/examples/soft_bodies/README.md +20 -0
  944. share/doc/dart/examples/soft_bodies/main.cpp +219 -0
  945. share/doc/dart/examples/speed_test/CMakeLists.txt +19 -0
  946. share/doc/dart/examples/speed_test/README.md +20 -0
  947. share/doc/dart/examples/speed_test/main.cpp +250 -0
  948. share/doc/dart/examples/tinkertoy/CMakeLists.txt +19 -0
  949. share/doc/dart/examples/tinkertoy/README.md +20 -0
  950. share/doc/dart/examples/tinkertoy/TinkertoyWidget.cpp +208 -0
  951. share/doc/dart/examples/tinkertoy/TinkertoyWidget.hpp +70 -0
  952. share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.cpp +35 -0
  953. share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.hpp +470 -0
  954. share/doc/dart/examples/tinkertoy/main.cpp +186 -0
  955. share/doc/dart/examples/vehicle/CMakeLists.txt +19 -0
  956. share/doc/dart/examples/vehicle/README.md +22 -0
  957. share/doc/dart/examples/vehicle/main.cpp +195 -0
  958. share/doc/dart/examples/wam_ikfast/CMakeLists.txt +22 -0
  959. share/doc/dart/examples/wam_ikfast/Helpers.cpp +148 -0
  960. share/doc/dart/examples/wam_ikfast/Helpers.hpp +46 -0
  961. share/doc/dart/examples/wam_ikfast/InputHandler.cpp +110 -0
  962. share/doc/dart/examples/wam_ikfast/InputHandler.hpp +73 -0
  963. share/doc/dart/examples/wam_ikfast/README.md +20 -0
  964. share/doc/dart/examples/wam_ikfast/WamWorld.cpp +46 -0
  965. share/doc/dart/examples/wam_ikfast/WamWorld.hpp +53 -0
  966. share/doc/dart/examples/wam_ikfast/ikfast/CMakeLists.txt +11 -0
  967. share/doc/dart/examples/wam_ikfast/ikfast/ikfast71.Transform6D.4_6_9_10_11_12_f8.cpp +14930 -0
  968. share/doc/dart/examples/wam_ikfast/osgWamIkFast.cpp +96 -0
  969. share/doc/dart/tutorials/CMakeLists.txt +12 -0
  970. share/doc/dart/tutorials/README.md +45 -0
  971. share/doc/dart/tutorials/tutorial_biped/CMakeLists.txt +19 -0
  972. share/doc/dart/tutorials/tutorial_biped/README +18 -0
  973. share/doc/dart/tutorials/tutorial_biped/main.cpp +374 -0
  974. share/doc/dart/tutorials/tutorial_biped_finished/CMakeLists.txt +19 -0
  975. share/doc/dart/tutorials/tutorial_biped_finished/README +18 -0
  976. share/doc/dart/tutorials/tutorial_biped_finished/main.cpp +532 -0
  977. share/doc/dart/tutorials/tutorial_collisions/CMakeLists.txt +19 -0
  978. share/doc/dart/tutorials/tutorial_collisions/README +18 -0
  979. share/doc/dart/tutorials/tutorial_collisions/main.cpp +506 -0
  980. share/doc/dart/tutorials/tutorial_collisions_finished/CMakeLists.txt +19 -0
  981. share/doc/dart/tutorials/tutorial_collisions_finished/README +18 -0
  982. share/doc/dart/tutorials/tutorial_collisions_finished/main.cpp +679 -0
  983. share/doc/dart/tutorials/tutorial_dominoes/CMakeLists.txt +19 -0
  984. share/doc/dart/tutorials/tutorial_dominoes/README +18 -0
  985. share/doc/dart/tutorials/tutorial_dominoes/main.cpp +394 -0
  986. share/doc/dart/tutorials/tutorial_dominoes_finished/CMakeLists.txt +19 -0
  987. share/doc/dart/tutorials/tutorial_dominoes_finished/README +18 -0
  988. share/doc/dart/tutorials/tutorial_dominoes_finished/main.cpp +559 -0
  989. share/doc/dart/tutorials/tutorial_multi_pendulum/CMakeLists.txt +19 -0
  990. share/doc/dart/tutorials/tutorial_multi_pendulum/README +18 -0
  991. share/doc/dart/tutorials/tutorial_multi_pendulum/main.cpp +443 -0
  992. share/doc/dart/tutorials/tutorial_multi_pendulum_finished/CMakeLists.txt +19 -0
  993. share/doc/dart/tutorials/tutorial_multi_pendulum_finished/README +18 -0
  994. share/doc/dart/tutorials/tutorial_multi_pendulum_finished/main.cpp +512 -0
@@ -0,0 +1,1034 @@
1
+ /*
2
+ * Copyright (c) 2011-2025, The DART development contributors
3
+ * All rights reserved.
4
+ *
5
+ * The list of contributors can be found at:
6
+ * https://github.com/dartsim/dart/blob/main/LICENSE
7
+ *
8
+ * This file is provided under the following "BSD-style" License:
9
+ * Redistribution and use in source and binary forms, with or
10
+ * without modification, are permitted provided that the following
11
+ * conditions are met:
12
+ * * Redistributions of source code must retain the above copyright
13
+ * notice, this list of conditions and the following disclaimer.
14
+ * * Redistributions in binary form must reproduce the above
15
+ * copyright notice, this list of conditions and the following
16
+ * disclaimer in the documentation and/or other materials provided
17
+ * with the distribution.
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
+ * POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ #ifndef DART_DYNAMICS_METASKELETON_HPP_
34
+ #define DART_DYNAMICS_METASKELETON_HPP_
35
+
36
+ #include <dart/dynamics/Frame.hpp>
37
+ #include <dart/dynamics/InvalidIndex.hpp>
38
+
39
+ #include <dart/math/Geometry.hpp>
40
+
41
+ #include <dart/common/LockableReference.hpp>
42
+ #include <dart/common/Signal.hpp>
43
+ #include <dart/common/Subject.hpp>
44
+
45
+ #include <Eigen/Dense>
46
+
47
+ #include <string>
48
+ #include <vector>
49
+
50
+ namespace dart {
51
+ namespace dynamics {
52
+
53
+ class BodyNode;
54
+ class SoftBodyNode;
55
+ class PointMass;
56
+ class Joint;
57
+ class DegreeOfFreedom;
58
+
59
+ /// MetaSkeleton is a pure abstract base class that provides a common interface
60
+ /// for obtaining data (such as Jacobians and Mass Matrices) from groups of
61
+ /// BodyNodes.
62
+ class MetaSkeleton : public common::Subject
63
+ {
64
+ public:
65
+ using NameChangedSignal = common::Signal<void(
66
+ std::shared_ptr<const MetaSkeleton> _skeleton,
67
+ const std::string& _oldName,
68
+ const std::string& _newName)>;
69
+
70
+ MetaSkeleton(const MetaSkeleton&) = delete;
71
+
72
+ /// Default destructor
73
+ virtual ~MetaSkeleton() = default;
74
+
75
+ /// Creates an identical clone of this MetaSkeleton
76
+ virtual MetaSkeletonPtr cloneMetaSkeleton(
77
+ const std::string& cloneName) const = 0;
78
+ // TODO: In DART7, rename this to clone() and change the current
79
+ // Skeleton::clone() to override it.
80
+
81
+ /// Creates an identical clone of this MetaSkeleton
82
+ MetaSkeletonPtr cloneMetaSkeleton() const;
83
+
84
+ /// Returns mutex.
85
+ virtual std::unique_ptr<common::LockableReference> getLockableReference()
86
+ const = 0;
87
+ // TODO: In DART7, rename this to getMutex() and change the current
88
+ // Skeleton::getMutex() to override it.
89
+
90
+ //----------------------------------------------------------------------------
91
+ /// \{ \name Name
92
+ //----------------------------------------------------------------------------
93
+
94
+ /// Set the name of this MetaSkeleton
95
+ virtual const std::string& setName(const std::string& _name) = 0;
96
+
97
+ /// Get the name of this MetaSkeleton
98
+ virtual const std::string& getName() const = 0;
99
+
100
+ /// \}
101
+
102
+ //----------------------------------------------------------------------------
103
+ /// \{ \name Structural Properties
104
+ //----------------------------------------------------------------------------
105
+
106
+ /// Get number of body nodes
107
+ virtual std::size_t getNumBodyNodes() const = 0;
108
+
109
+ /// Get BodyNode whose index is _idx
110
+ virtual BodyNode* getBodyNode(std::size_t _idx) = 0;
111
+
112
+ /// Get const BodyNode whose index is _idx
113
+ virtual const BodyNode* getBodyNode(std::size_t _idx) const = 0;
114
+
115
+ /// Returns the BodyNode of given name.
116
+ ///
117
+ /// \param[in] name The BodyNode name that want to search.
118
+ /// \return The body node of given name.
119
+ virtual BodyNode* getBodyNode(const std::string& name) = 0;
120
+
121
+ /// Returns the BodyNode of given name.
122
+ ///
123
+ /// \param[in] name The BodyNode name that want to search.
124
+ /// \return The body node of given name.
125
+ virtual const BodyNode* getBodyNode(const std::string& name) const = 0;
126
+
127
+ /// Get all the BodyNodes that are held by this MetaSkeleton
128
+ ///
129
+ /// \deprecated Use eachBodyNode() instead.
130
+ DART_DEPRECATED(6.13)
131
+ virtual const std::vector<BodyNode*>& getBodyNodes() = 0;
132
+
133
+ /// Get all the BodyNodes that are held by this MetaSkeleton
134
+ ///
135
+ /// \deprecated Use eachBodyNode() instead.
136
+ DART_DEPRECATED(6.13)
137
+ virtual const std::vector<const BodyNode*>& getBodyNodes() const = 0;
138
+
139
+ /// Returns all the BodyNodes of given name.
140
+ /// \param[in] name The BodyNode name that want to search.
141
+ /// \return The list of BodyNodes of given name.
142
+ virtual std::vector<BodyNode*> getBodyNodes(const std::string& name) = 0;
143
+
144
+ /// Returns all the BodyNodes of given name.
145
+ /// \param[in] name The BodyNode name that want to search.
146
+ /// \return The list of BodyNodes of given name.
147
+ virtual std::vector<const BodyNode*> getBodyNodes(
148
+ const std::string& name) const = 0;
149
+
150
+ /// Returns whether this Skeleton contains \c bodyNode.
151
+ virtual bool hasBodyNode(const BodyNode* bodyNode) const = 0;
152
+
153
+ /// Get the index of a specific BodyNode within this ReferentialSkeleton.
154
+ /// Returns INVALID_INDEX if it is not held in this ReferentialSkeleton.
155
+ /// When _warning is true, a warning message will be printed if the BodyNode
156
+ /// is not in the MetaSkeleton.
157
+ virtual std::size_t getIndexOf(
158
+ const BodyNode* _bn, bool _warning = true) const = 0;
159
+
160
+ /// Get number of Joints
161
+ virtual std::size_t getNumJoints() const = 0;
162
+
163
+ /// Get Joint whose index is _idx
164
+ virtual Joint* getJoint(std::size_t _idx) = 0;
165
+
166
+ /// Get const Joint whose index is _idx
167
+ virtual const Joint* getJoint(std::size_t _idx) const = 0;
168
+
169
+ /// Returns the Joint of given name.
170
+ /// \param[in] name The joint name that want to search.
171
+ /// \return The joint of given name.
172
+ virtual Joint* getJoint(const std::string& name) = 0;
173
+
174
+ /// Returns the joint of given name.
175
+ /// \param[in] name The joint name that want to search.
176
+ /// \return The joint of given name.
177
+ virtual const Joint* getJoint(const std::string& name) const = 0;
178
+
179
+ /// Returns all the joints that are held by this MetaSkeleton.
180
+ ///
181
+ /// \deprecated Use eachJoint() instead.
182
+ DART_DEPRECATED(6.13)
183
+ virtual std::vector<Joint*> getJoints() = 0;
184
+
185
+ /// Returns all the joints that are held by this MetaSkeleton.
186
+ ///
187
+ /// \deprecated Use eachJoint() instead.
188
+ DART_DEPRECATED(6.13)
189
+ virtual std::vector<const Joint*> getJoints() const = 0;
190
+
191
+ /// Returns all the Joint of given name.
192
+ ///
193
+ /// This MetaSkeleton can contain multiple Joints with the same name when
194
+ /// this MetaSkeleton contains Joints from multiple Skeletons.
195
+ ///
196
+ /// \param[in] name The joint name that want to search.
197
+ /// \return The list of joints of given name.
198
+ virtual std::vector<Joint*> getJoints(const std::string& name) = 0;
199
+
200
+ /// Returns all the Joint of given name.
201
+ ///
202
+ /// This MetaSkeleton can contain multiple Joints with the same name when
203
+ /// this MetaSkeleton contains Joints from multiple Skeletons.
204
+ ///
205
+ /// \param[in] name The joint name that want to search.
206
+ /// \return The list of joints of given name.
207
+ virtual std::vector<const Joint*> getJoints(
208
+ const std::string& name) const = 0;
209
+
210
+ /// Returns whether this Skeleton contains \c join.
211
+ virtual bool hasJoint(const Joint* joint) const = 0;
212
+
213
+ /// Get the index of a specific Joint within this ReferentialSkeleton. Returns
214
+ /// INVALID_INDEX if it is not held in this ReferentialSkeleton.
215
+ /// When _warning is true, a warning message will be printed if the Joint is
216
+ /// not in the MetaSkeleton.
217
+ virtual std::size_t getIndexOf(
218
+ const Joint* _joint, bool _warning = true) const = 0;
219
+
220
+ /// Return the number of degrees of freedom in this skeleton
221
+ virtual std::size_t getNumDofs() const = 0;
222
+
223
+ /// Get degree of freedom (aka generalized coordinate) whose index is _idx
224
+ virtual DegreeOfFreedom* getDof(std::size_t _idx) = 0;
225
+
226
+ /// Get degree of freedom (aka generalized coordinate) whose index is _idx
227
+ virtual const DegreeOfFreedom* getDof(std::size_t _idx) const = 0;
228
+
229
+ /// Get the vector of DegreesOfFreedom for this MetaSkeleton
230
+ ///
231
+ /// \deprecated Use eachDof() instead.
232
+ DART_DEPRECATED(6.13)
233
+ virtual const std::vector<DegreeOfFreedom*>& getDofs() = 0;
234
+
235
+ /// Get a vector of const DegreesOfFreedom for this MetaSkeleton
236
+ ///
237
+ /// \deprecated Use eachBodyNode() instead.
238
+ DART_DEPRECATED(6.13)
239
+ virtual std::vector<const DegreeOfFreedom*> getDofs() const = 0;
240
+
241
+ /// Get the index of a specific DegreeOfFreedom within this
242
+ /// ReferentialSkeleton. Returns INVALID_INDEX if it is not held in this
243
+ /// ReferentialSkeleton. When _warning is true, a warning message will be
244
+ /// printed if the DegreeOfFreedom is not in the MetaSkeleton.
245
+ virtual std::size_t getIndexOf(
246
+ const DegreeOfFreedom* _dof, bool _warning = true) const = 0;
247
+
248
+ /// \}
249
+
250
+ //----------------------------------------------------------------------------
251
+ /// \{ \name Command
252
+ //----------------------------------------------------------------------------
253
+
254
+ /// Set a single command
255
+ void setCommand(std::size_t _index, double _command);
256
+
257
+ /// Get a single command
258
+ double getCommand(std::size_t _index) const;
259
+
260
+ /// Set commands for all generalized coordinates
261
+ void setCommands(const Eigen::VectorXd& _commands);
262
+
263
+ /// Set commands for a subset of the generalized coordinates
264
+ void setCommands(
265
+ const std::vector<std::size_t>& _indices,
266
+ const Eigen::VectorXd& _commands);
267
+
268
+ /// Get commands for all generalized coordinates
269
+ Eigen::VectorXd getCommands() const;
270
+
271
+ /// Get commands for a subset of the generalized coordinates
272
+ Eigen::VectorXd getCommands(const std::vector<std::size_t>& _indices) const;
273
+
274
+ /// Set all commands to zero
275
+ void resetCommands();
276
+
277
+ /// \}
278
+
279
+ //----------------------------------------------------------------------------
280
+ /// \{ \name Position
281
+ //----------------------------------------------------------------------------
282
+
283
+ /// Set the position of a single generalized coordinate
284
+ void setPosition(std::size_t index, double _position);
285
+
286
+ /// Get the position of a single generalized coordinate
287
+ double getPosition(std::size_t _index) const;
288
+
289
+ /// Set the positions for all generalized coordinates
290
+ void setPositions(const Eigen::VectorXd& _positions);
291
+
292
+ /// Set the positions for a subset of the generalized coordinates
293
+ void setPositions(
294
+ const std::vector<std::size_t>& _indices,
295
+ const Eigen::VectorXd& _positions);
296
+
297
+ /// Get the positions for all generalized coordinates
298
+ Eigen::VectorXd getPositions() const;
299
+
300
+ /// Get the positions for a subset of the generalized coordinates
301
+ Eigen::VectorXd getPositions(const std::vector<std::size_t>& _indices) const;
302
+
303
+ /// Set all positions to zero
304
+ void resetPositions();
305
+
306
+ /// Set the lower limit of a generalized coordinate's position
307
+ void setPositionLowerLimit(std::size_t _index, double _position);
308
+
309
+ /// Set the lower limits for all generalized coordinates
310
+ void setPositionLowerLimits(const Eigen::VectorXd& positions);
311
+
312
+ /// Set the lower limits for a subset of the generalized coordinates
313
+ void setPositionLowerLimits(
314
+ const std::vector<std::size_t>& indices,
315
+ const Eigen::VectorXd& positions);
316
+
317
+ /// Get the lower limit of a generalized coordinate's position
318
+ double getPositionLowerLimit(std::size_t _index) const;
319
+
320
+ /// Get the lower limits for all generalized coordinates
321
+ Eigen::VectorXd getPositionLowerLimits() const;
322
+
323
+ /// Get the lower limits for a subset of the generalized coordinates
324
+ Eigen::VectorXd getPositionLowerLimits(
325
+ const std::vector<std::size_t>& indices) const;
326
+
327
+ /// Set the upper limit of a generalized coordainte's position
328
+ void setPositionUpperLimit(std::size_t _index, double _position);
329
+
330
+ /// Set the upper limits for all generalized coordinates
331
+ void setPositionUpperLimits(const Eigen::VectorXd& positions);
332
+
333
+ /// Set the upper limits for a subset of the generalized coordinates
334
+ void setPositionUpperLimits(
335
+ const std::vector<std::size_t>& indices,
336
+ const Eigen::VectorXd& positions);
337
+
338
+ /// Get the upper limit of a generalized coordinate's position
339
+ double getPositionUpperLimit(std::size_t _index) const;
340
+
341
+ /// Get the upper limits for all generalized coordinates
342
+ Eigen::VectorXd getPositionUpperLimits() const;
343
+
344
+ /// Get the upper limits for a subset of the generalized coordinates
345
+ Eigen::VectorXd getPositionUpperLimits(
346
+ const std::vector<std::size_t>& indices) const;
347
+
348
+ /// \}
349
+
350
+ //----------------------------------------------------------------------------
351
+ /// \{ \name Velocity
352
+ //----------------------------------------------------------------------------
353
+
354
+ /// Set the velocity of a single generalized coordinate
355
+ void setVelocity(std::size_t _index, double _velocity);
356
+
357
+ /// Get the velocity of a single generalized coordinate
358
+ double getVelocity(std::size_t _index) const;
359
+
360
+ /// Set the velocities of all generalized coordinates
361
+ void setVelocities(const Eigen::VectorXd& _velocities);
362
+
363
+ /// Set the velocities of a subset of the generalized coordinates
364
+ void setVelocities(
365
+ const std::vector<std::size_t>& _indices,
366
+ const Eigen::VectorXd& _velocities);
367
+
368
+ /// Get the velocities for all generalized coordinates
369
+ Eigen::VectorXd getVelocities() const;
370
+
371
+ /// Get the velocities for a subset of the generalized coordinates
372
+ Eigen::VectorXd getVelocities(const std::vector<std::size_t>& _indices) const;
373
+
374
+ /// Set all velocities to zero
375
+ void resetVelocities();
376
+
377
+ /// Set the lower limit of a generalized coordinate's velocity
378
+ void setVelocityLowerLimit(std::size_t _index, double _velocity);
379
+
380
+ /// Set the lower limits for all generalized coordinates's velocity
381
+ void setVelocityLowerLimits(const Eigen::VectorXd& velocities);
382
+
383
+ /// Set the lower limits for a subset of the generalized coordinates's
384
+ /// velocity
385
+ void setVelocityLowerLimits(
386
+ const std::vector<std::size_t>& indices,
387
+ const Eigen::VectorXd& velocities);
388
+
389
+ /// Get the lower limit of a generalized coordinate's velocity
390
+ double getVelocityLowerLimit(std::size_t _index);
391
+
392
+ /// Get the lower limits for all generalized coordinates's velocity
393
+ Eigen::VectorXd getVelocityLowerLimits() const;
394
+
395
+ /// Get the lower limits for a subset of the generalized coordinates's
396
+ /// velocity
397
+ Eigen::VectorXd getVelocityLowerLimits(
398
+ const std::vector<std::size_t>& indices) const;
399
+
400
+ /// Set the upper limit of a generalized coordinate's velocity
401
+ void setVelocityUpperLimit(std::size_t _index, double _velocity);
402
+
403
+ /// Set the upper limits for all generalized coordinates's velocity
404
+ void setVelocityUpperLimits(const Eigen::VectorXd& velocities);
405
+
406
+ /// Set the upper limits for a subset of the generalized coordinates's
407
+ /// velocity
408
+ void setVelocityUpperLimits(
409
+ const std::vector<std::size_t>& indices,
410
+ const Eigen::VectorXd& velocities);
411
+
412
+ /// Get the upper limit of a generalized coordinate's velocity
413
+ double getVelocityUpperLimit(std::size_t _index);
414
+
415
+ /// Get the upper limits for all generalized coordinates's velocity
416
+ Eigen::VectorXd getVelocityUpperLimits() const;
417
+
418
+ /// Get the upper limits for a subset of the generalized coordinates's
419
+ /// velocity
420
+ Eigen::VectorXd getVelocityUpperLimits(
421
+ const std::vector<std::size_t>& indices) const;
422
+
423
+ /// \}
424
+
425
+ //----------------------------------------------------------------------------
426
+ /// \{ \name Acceleration
427
+ //----------------------------------------------------------------------------
428
+
429
+ /// Set the acceleration of a single generalized coordinate
430
+ void setAcceleration(std::size_t _index, double _acceleration);
431
+
432
+ /// Get the acceleration of a single generalized coordinate
433
+ double getAcceleration(std::size_t _index) const;
434
+
435
+ /// Set the accelerations of all generalized coordinates
436
+ void setAccelerations(const Eigen::VectorXd& _accelerations);
437
+
438
+ /// Set the accelerations of a subset of the generalized coordinates
439
+ void setAccelerations(
440
+ const std::vector<std::size_t>& _indices,
441
+ const Eigen::VectorXd& _accelerations);
442
+
443
+ /// Get the accelerations for all generalized coordinates
444
+ Eigen::VectorXd getAccelerations() const;
445
+
446
+ /// Get the accelerations for a subset of the generalized coordinates
447
+ Eigen::VectorXd getAccelerations(
448
+ const std::vector<std::size_t>& _indices) const;
449
+
450
+ /// Set all accelerations to zero
451
+ void resetAccelerations();
452
+
453
+ /// Set the lower limit of a generalized coordinate's acceleration
454
+ void setAccelerationLowerLimit(std::size_t _index, double _acceleration);
455
+
456
+ /// Set the lower limits for all generalized coordinates's acceleration
457
+ void setAccelerationLowerLimits(const Eigen::VectorXd& accelerations);
458
+
459
+ /// Set the lower limits for a subset of the generalized coordinates's
460
+ /// acceleration
461
+ void setAccelerationLowerLimits(
462
+ const std::vector<std::size_t>& indices,
463
+ const Eigen::VectorXd& accelerations);
464
+
465
+ /// Get the lower limit of a generalized coordinate's acceleration
466
+ double getAccelerationLowerLimit(std::size_t _index) const;
467
+
468
+ /// Get the lower limits for all generalized coordinates's acceleration
469
+ Eigen::VectorXd getAccelerationLowerLimits() const;
470
+
471
+ /// Get the lower limits for a subset of the generalized coordinates's
472
+ /// acceleration
473
+ Eigen::VectorXd getAccelerationLowerLimits(
474
+ const std::vector<std::size_t>& indices) const;
475
+
476
+ /// Set the upper limit of a generalized coordinate's acceleration
477
+ void setAccelerationUpperLimit(std::size_t _index, double _acceleration);
478
+
479
+ /// Set the upper limits for all generalized coordinates's acceleration
480
+ void setAccelerationUpperLimits(const Eigen::VectorXd& accelerations);
481
+
482
+ /// Set the upper limits for a subset of the generalized coordinates's
483
+ /// acceleration
484
+ void setAccelerationUpperLimits(
485
+ const std::vector<std::size_t>& indices,
486
+ const Eigen::VectorXd& accelerations);
487
+
488
+ /// Get the upper limit of a generalized coordinate's acceleration
489
+ double getAccelerationUpperLimit(std::size_t _index) const;
490
+
491
+ /// Get the upper limits for all generalized coordinates's acceleration
492
+ Eigen::VectorXd getAccelerationUpperLimits() const;
493
+
494
+ /// Get the upper limits for a subset of the generalized coordinates's
495
+ /// acceleration
496
+ Eigen::VectorXd getAccelerationUpperLimits(
497
+ const std::vector<std::size_t>& indices) const;
498
+
499
+ /// \}
500
+
501
+ //----------------------------------------------------------------------------
502
+ /// \{ \name Force
503
+ //----------------------------------------------------------------------------
504
+
505
+ /// Set the force of a single generalized coordinate
506
+ void setForce(std::size_t _index, double _force);
507
+
508
+ /// Get the force of a single generalized coordinate
509
+ double getForce(std::size_t _index) const;
510
+
511
+ /// Set the forces of all generalized coordinates
512
+ void setForces(const Eigen::VectorXd& _forces);
513
+
514
+ /// Set the forces of a subset of the generalized coordinates
515
+ void setForces(
516
+ const std::vector<std::size_t>& _index, const Eigen::VectorXd& _forces);
517
+
518
+ /// Get the forces for all generalized coordinates
519
+ Eigen::VectorXd getForces() const;
520
+
521
+ /// Get the forces for a subset of the generalized coordinates
522
+ Eigen::VectorXd getForces(const std::vector<std::size_t>& _indices) const;
523
+
524
+ /// Set all forces of the generalized coordinates to zero
525
+ void resetGeneralizedForces();
526
+
527
+ /// Set the lower limit of a generalized coordinate's force
528
+ void setForceLowerLimit(std::size_t _index, double _force);
529
+
530
+ /// Set the lower limits for all generalized coordinates's force
531
+ void setForceLowerLimits(const Eigen::VectorXd& forces);
532
+
533
+ /// Set the lower limits for a subset of the generalized coordinates's force
534
+ void setForceLowerLimits(
535
+ const std::vector<std::size_t>& indices, const Eigen::VectorXd& forces);
536
+
537
+ /// Get the lower limit of a generalized coordinate's force
538
+ double getForceLowerLimit(std::size_t _index) const;
539
+
540
+ /// Get the lower limits for all generalized coordinates's force
541
+ Eigen::VectorXd getForceLowerLimits() const;
542
+
543
+ /// Get the lower limits for a subset of the generalized coordinates's force
544
+ Eigen::VectorXd getForceLowerLimits(
545
+ const std::vector<std::size_t>& indices) const;
546
+
547
+ /// Set the upper limit of a generalized coordinate's force
548
+ void setForceUpperLimit(std::size_t _index, double _force);
549
+
550
+ /// Set the upperlimits for all generalized coordinates's force
551
+ void setForceUpperLimits(const Eigen::VectorXd& forces);
552
+
553
+ /// Set the upper limits for a subset of the generalized coordinates's force
554
+ void setForceUpperLimits(
555
+ const std::vector<std::size_t>& indices, const Eigen::VectorXd& forces);
556
+
557
+ /// Get the upper limit of a generalized coordinate's force
558
+ double getForceUpperLimit(std::size_t _index) const;
559
+
560
+ /// Get the upper limits for all generalized coordinates's force
561
+ Eigen::VectorXd getForceUpperLimits() const;
562
+
563
+ /// Get the upper limits for a subset of the generalized coordinates's force
564
+ Eigen::VectorXd getForceUpperLimits(
565
+ const std::vector<std::size_t>& indices) const;
566
+
567
+ /// \}
568
+
569
+ //----------------------------------------------------------------------------
570
+ /// \{ \name Velocity Change
571
+ //----------------------------------------------------------------------------
572
+
573
+ /// Get the velocity changes for all the generalized coordinates
574
+ Eigen::VectorXd getVelocityChanges() const;
575
+
576
+ //----------------------------------------------------------------------------
577
+ /// \{ \name Constraint Impulse
578
+ //----------------------------------------------------------------------------
579
+
580
+ /// Set the constraint impulses for the generalized coordinates
581
+ void setJointConstraintImpulses(const Eigen::VectorXd& _impulses);
582
+
583
+ /// Get the constraint impulses for the generalized coordinates
584
+ Eigen::VectorXd getJointConstraintImpulses() const;
585
+
586
+ //----------------------------------------------------------------------------
587
+ /// \{ \name Jacobians
588
+ //----------------------------------------------------------------------------
589
+
590
+ /// Get the spatial Jacobian targeting the origin of a BodyNode. The Jacobian
591
+ /// is expressed in the Frame of the BodyNode.
592
+ virtual math::Jacobian getJacobian(const JacobianNode* _node) const = 0;
593
+
594
+ /// Get the spatial Jacobian targeting the origin of a BodyNode. You can
595
+ /// specify a coordinate Frame to express the Jacobian in.
596
+ virtual math::Jacobian getJacobian(
597
+ const JacobianNode* _node, const Frame* _inCoordinatesOf) const = 0;
598
+
599
+ /// Get the spatial Jacobian targeting the origin of a BodyNode relative to
600
+ /// another BodyNode in the same Skeleton. You can specify a coordinate Frame
601
+ /// to express the Jacobian in.
602
+ math::Jacobian getJacobian(
603
+ const JacobianNode* _node,
604
+ const JacobianNode* _relativeTo,
605
+ const Frame* _inCoordinatesOf) const;
606
+
607
+ /// Get the spatial Jacobian targeting an offset in a BodyNode. The _offset is
608
+ /// expected in coordinates of the BodyNode Frame. The Jacobian is expressed
609
+ /// in the Frame of the BodyNode.
610
+ virtual math::Jacobian getJacobian(
611
+ const JacobianNode* _node, const Eigen::Vector3d& _localOffset) const = 0;
612
+
613
+ /// Get the spatial Jacobian targeting an offset in a BodyNode. The _offset is
614
+ /// expected in coordinates of the BodyNode Frame. You can specify a
615
+ /// coordinate Frame to express the Jacobian in.
616
+ virtual math::Jacobian getJacobian(
617
+ const JacobianNode* _node,
618
+ const Eigen::Vector3d& _localOffset,
619
+ const Frame* _inCoordinatesOf) const = 0;
620
+
621
+ /// Get the spatial Jacobian targeting an offset in a BodyNode relative to
622
+ /// another BodyNode in the same Skeleton. The _offset is expected in
623
+ /// coordinates of the BodyNode Frame. You can specify a coordinate Frame to
624
+ /// express the Jacobian in.
625
+ math::Jacobian getJacobian(
626
+ const JacobianNode* _node,
627
+ const Eigen::Vector3d& _localOffset,
628
+ const JacobianNode* _relativeTo,
629
+ const Frame* _inCoordinatesOf) const;
630
+
631
+ /// Get the spatial Jacobian targeting the origin of a BodyNode. The Jacobian
632
+ /// is expressed in the World Frame.
633
+ virtual math::Jacobian getWorldJacobian(const JacobianNode* _node) const = 0;
634
+
635
+ /// Get the spatial Jacobian targeting an offset in a BodyNode. The _offset is
636
+ /// expected in coordinates of the BodyNode Frame. The Jacobian is expressed
637
+ /// in the World Frame.
638
+ virtual math::Jacobian getWorldJacobian(
639
+ const JacobianNode* _node, const Eigen::Vector3d& _localOffset) const = 0;
640
+
641
+ /// Get the linear Jacobian targeting the origin of a BodyNode. You can
642
+ /// specify a coordinate Frame to express the Jacobian in.
643
+ virtual math::LinearJacobian getLinearJacobian(
644
+ const JacobianNode* _node,
645
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
646
+
647
+ /// Get the linear Jacobian targeting an offset in a BodyNode. The _offset is
648
+ /// expected in coordinates of the BodyNode Frame. You can specify a
649
+ /// coordinate Frame to express the Jacobian in.
650
+ virtual math::LinearJacobian getLinearJacobian(
651
+ const JacobianNode* _node,
652
+ const Eigen::Vector3d& _localOffset,
653
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
654
+
655
+ /// Get the linear Jacobian targeting the origin of a BodyNode relative to
656
+ /// another BodyNode in the same Skeleton. You can specify a coordinate Frame
657
+ /// to express the Jacobian in.
658
+ math::LinearJacobian getLinearJacobian(
659
+ const JacobianNode* _node,
660
+ const JacobianNode* _relativeTo,
661
+ const Frame* _inCoordinatesOf = Frame::World()) const;
662
+
663
+ /// Get the linear Jacobian targeting an offset in a BodyNode relative to
664
+ /// another BodyNode in the same Skeleton. The _offset is expected in
665
+ /// coordinates of the BodyNode Frame. You can specify a coordinate Frame to
666
+ /// express the Jacobian in.
667
+ math::LinearJacobian getLinearJacobian(
668
+ const JacobianNode* _node,
669
+ const Eigen::Vector3d& _localOffset,
670
+ const JacobianNode* _relativeTo,
671
+ const Frame* _inCoordinatesOf = Frame::World()) const;
672
+
673
+ /// \}
674
+
675
+ //----------------------------------------------------------------------------
676
+ /// \{ \name Jacobian derivatives
677
+ //----------------------------------------------------------------------------
678
+
679
+ /// Get the angular Jacobian of a BodyNode. You can specify a coordinate Frame
680
+ /// to express the Jacobian in.
681
+ virtual math::AngularJacobian getAngularJacobian(
682
+ const JacobianNode* _node,
683
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
684
+
685
+ /// Get the angular Jacobian of a BodyNode relative to another BodyNode in the
686
+ /// same Skeleton. You can specify a coordinate Frame to express the Jacobian
687
+ /// in.
688
+ math::AngularJacobian getAngularJacobian(
689
+ const JacobianNode* _node,
690
+ const JacobianNode* _relativeTo,
691
+ const Frame* _inCoordinatesOf = Frame::World()) const;
692
+
693
+ /// Get the spatial Jacobian time derivative targeting the origin of a
694
+ /// BodyNode. The Jacobian is expressed in the Frame of the BodyNode.
695
+ virtual math::Jacobian getJacobianSpatialDeriv(
696
+ const JacobianNode* _node) const = 0;
697
+
698
+ /// Get the spatial Jacobian time derivative targeting the origin of a
699
+ /// BodyNode. You can specify a coordinate Frame to express the Jacobian in.
700
+ virtual math::Jacobian getJacobianSpatialDeriv(
701
+ const JacobianNode* _node, const Frame* _inCoordinatesOf) const = 0;
702
+
703
+ /// Get the spatial Jacobian time derivative targeting an offset in a
704
+ /// BodyNode. The _offset is expected in coordinates of the BodyNode Frame.
705
+ /// The Jacobian is expressed in the Frame of the BodyNode.
706
+ virtual math::Jacobian getJacobianSpatialDeriv(
707
+ const JacobianNode* _node, const Eigen::Vector3d& _localOffset) const = 0;
708
+
709
+ /// Get the spatial Jacobian time derivative targeting an offset in a
710
+ /// BodyNode. The _offset is expected in coordinates of the BodyNode Frame.
711
+ /// You can specify a coordinate Frame to express the Jacobian in.
712
+ virtual math::Jacobian getJacobianSpatialDeriv(
713
+ const JacobianNode* _node,
714
+ const Eigen::Vector3d& _localOffset,
715
+ const Frame* _inCoordinatesOf) const = 0;
716
+
717
+ /// Get the spatial Jacobian time derivative targeting the origin of a
718
+ /// BodyNode relative to another BodyNode in the same Skeleton. You can
719
+ /// specify a coordinate Frame to express the Jacobian in.
720
+ math::Jacobian getJacobianSpatialDeriv(
721
+ const JacobianNode* _node,
722
+ const JacobianNode* _relativeTo,
723
+ const Frame* _inCoordinatesOf) const;
724
+
725
+ /// Get the spatial Jacobian time derivative targeting an offset in a
726
+ /// BodyNode relative to another Bodynode in the same Skeleton. The _offset is
727
+ /// expected in coordinates of the BodyNode Frame. You can specify a
728
+ /// coordinate Frame to express the Jacobian in.
729
+ math::Jacobian getJacobianSpatialDeriv(
730
+ const JacobianNode* _node,
731
+ const Eigen::Vector3d& _localOffset,
732
+ const JacobianNode* _relativeTo,
733
+ const Frame* _inCoordinatesOf) const;
734
+
735
+ /// Get the spatial Jacobian (classical) time derivative targeting the origin
736
+ /// of a BodyNode. The Jacobian is expressed in the World Frame.
737
+ virtual math::Jacobian getJacobianClassicDeriv(
738
+ const JacobianNode* _node) const = 0;
739
+
740
+ /// Get the spatial Jacobian (classical) time derivative targeting the origin
741
+ /// a BodyNode. The _offset is expected in coordinates of the BodyNode Frame.
742
+ /// You can specify a coordinate Frame to express the Jacobian in.
743
+ virtual math::Jacobian getJacobianClassicDeriv(
744
+ const JacobianNode* _node, const Frame* _inCoordinatesOf) const = 0;
745
+
746
+ /// Get the spatial Jacobian (classical) time derivative targeting an offset
747
+ /// in a BodyNode. The _offset is expected in coordinates of the BodyNode
748
+ /// Frame. You can specify a coordinate Frame to express the Jacobian in.
749
+ virtual math::Jacobian getJacobianClassicDeriv(
750
+ const JacobianNode* _node,
751
+ const Eigen::Vector3d& _localOffset,
752
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
753
+
754
+ /// of a BodyNode. The _offset is expected in coordinates of the BodyNode
755
+ /// Frame. You can specify a coordinate Frame to express the Jacobian in.
756
+ virtual math::LinearJacobian getLinearJacobianDeriv(
757
+ const JacobianNode* _node,
758
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
759
+
760
+ /// Get the linear Jacobian (classical) time derivative targeting an offset in
761
+ /// a BodyNode. The _offset is expected in coordinates of the BodyNode Frame.
762
+ /// You can specify a coordinate Frame to express the Jacobian in.
763
+ virtual math::LinearJacobian getLinearJacobianDeriv(
764
+ const JacobianNode* _node,
765
+ const Eigen::Vector3d& _localOffset,
766
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
767
+
768
+ /// Get the angular Jacobian time derivative of a BodyNode. You can specify a
769
+ /// coordinate Frame to express the Jacobian in.
770
+ virtual math::AngularJacobian getAngularJacobianDeriv(
771
+ const JacobianNode* _node,
772
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
773
+
774
+ /// \}
775
+
776
+ //----------------------------------------------------------------------------
777
+ /// \{ \name Equations of Motion
778
+ //----------------------------------------------------------------------------
779
+
780
+ /// Get the total mass of all BodyNodes in this MetaSkeleton. Note that
781
+ /// for the ReferentialSkeleton extension of MetaSkeleton, this will be an
782
+ /// O(n) operation, while the Skeleton extension will be O(1).
783
+ virtual double getMass() const = 0;
784
+
785
+ /// Get the Mass Matrix of the MetaSkeleton
786
+ virtual const Eigen::MatrixXd& getMassMatrix() const = 0;
787
+
788
+ /// Get augmented mass matrix of the skeleton. This matrix is used in
789
+ /// ConstraintDynamics to compute constraint forces. The matrix is
790
+ /// M + h*D + h*h*K where D is diagonal joint damping coefficient matrix, K is
791
+ /// diagonal joint stiffness matrix, and h is simulation time step.
792
+ virtual const Eigen::MatrixXd& getAugMassMatrix() const = 0;
793
+
794
+ /// Get inverse of Mass Matrix of the MetaSkeleton.
795
+ virtual const Eigen::MatrixXd& getInvMassMatrix() const = 0;
796
+
797
+ /// Get inverse of augmented Mass Matrix of the MetaSkeleton.
798
+ virtual const Eigen::MatrixXd& getInvAugMassMatrix() const = 0;
799
+
800
+ /// Get Coriolis force vector of the MetaSkeleton's BodyNodes.
801
+ virtual const Eigen::VectorXd& getCoriolisForces() const = 0;
802
+
803
+ /// Get gravity force vector of the MetaSkeleton.
804
+ virtual const Eigen::VectorXd& getGravityForces() const = 0;
805
+
806
+ /// Get combined vector of Coriolis force and gravity force of the
807
+ /// MetaSkeleton.
808
+ virtual const Eigen::VectorXd& getCoriolisAndGravityForces() const = 0;
809
+
810
+ /// Get external force vector of the MetaSkeleton.
811
+ virtual const Eigen::VectorXd& getExternalForces() const = 0;
812
+
813
+ /// Get constraint force vector.
814
+ virtual const Eigen::VectorXd& getConstraintForces() const = 0;
815
+
816
+ /// Clear the external forces of the BodyNodes in this MetaSkeleton
817
+ virtual void clearExternalForces() = 0;
818
+
819
+ /// Clear the internal forces of the BodyNodes in this MetaSkeleton
820
+ virtual void clearInternalForces() = 0;
821
+
822
+ /// Compute and return Lagrangian of this MetaSkeleton
823
+ double computeLagrangian() const;
824
+
825
+ /// Get the kinetic energy of this MetaSkeleton
826
+ DART_DEPRECATED(6.1)
827
+ double getKineticEnergy() const;
828
+
829
+ /// Get the kinetic energy of this MetaSkeleton
830
+ virtual double computeKineticEnergy() const = 0;
831
+
832
+ /// Get the potential energy of this MetaSkeleton
833
+ DART_DEPRECATED(6.1)
834
+ double getPotentialEnergy() const;
835
+
836
+ /// Get the potential energy of this MetaSkeleton
837
+ virtual double computePotentialEnergy() const = 0;
838
+
839
+ /// Clear collision flags of the BodyNodes in this MetaSkeleton
840
+ DART_DEPRECATED(6.0)
841
+ virtual void clearCollidingBodies() = 0;
842
+
843
+ /// \}
844
+
845
+ //----------------------------------------------------------------------------
846
+ /// \{ \name Center of Mass Jacobian
847
+ //----------------------------------------------------------------------------
848
+
849
+ /// Get the MetaSkeleton's COM with respect to any Frame (default is World
850
+ /// Frame)
851
+ virtual Eigen::Vector3d getCOM(
852
+ const Frame* _withRespectTo = Frame::World()) const = 0;
853
+
854
+ /// Get the Skeleton's COM spatial velocity in terms of any Frame (default is
855
+ /// World Frame)
856
+ virtual Eigen::Vector6d getCOMSpatialVelocity(
857
+ const Frame* _relativeTo = Frame::World(),
858
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
859
+
860
+ /// Get the Skeleton's COM linear velocity in terms of any Frame (default is
861
+ /// World Frame)
862
+ virtual Eigen::Vector3d getCOMLinearVelocity(
863
+ const Frame* _relativeTo = Frame::World(),
864
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
865
+
866
+ /// Get the Skeleton's COM spatial acceleration in terms of any Frame (default
867
+ /// is World Frame)
868
+ virtual Eigen::Vector6d getCOMSpatialAcceleration(
869
+ const Frame* _relativeTo = Frame::World(),
870
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
871
+
872
+ /// Get the MetaSkeleton's COM linear acceleration in terms of any Frame
873
+ /// (default is World Frame)
874
+ virtual Eigen::Vector3d getCOMLinearAcceleration(
875
+ const Frame* _relativeTo = Frame::World(),
876
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
877
+
878
+ /// Get the MetaSkeleton's COM Jacobian in terms of any Frame (default is
879
+ /// World Frame)
880
+ virtual math::Jacobian getCOMJacobian(
881
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
882
+
883
+ /// Get the MetaSkeleton's COM Linear Jacobian in terms of any Frame (default
884
+ /// is World Frame)
885
+ virtual math::LinearJacobian getCOMLinearJacobian(
886
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
887
+
888
+ /// Get the Skeleton's COM Jacobian spatial time derivative in terms of any
889
+ /// Frame (default is World Frame).
890
+ ///
891
+ /// NOTE: Since this is a spatial time derivative, it is only meant to be used
892
+ /// with spatial acceleration vectors. If you are using classical linear
893
+ /// vectors, then use getCOMLinearJacobianDeriv() instead.
894
+ virtual math::Jacobian getCOMJacobianSpatialDeriv(
895
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
896
+
897
+ /// Get the Skeleton's COM Linear Jacobian time derivative in terms of any
898
+ /// Frame (default is World Frame).
899
+ ///
900
+ /// NOTE: Since this is a classical time derivative, it is only meant to be
901
+ /// used with classical acceleration vectors. If you are using spatial
902
+ /// vectors, then use getCOMJacobianSpatialDeriv() instead.
903
+ virtual math::LinearJacobian getCOMLinearJacobianDeriv(
904
+ const Frame* _inCoordinatesOf = Frame::World()) const = 0;
905
+
906
+ /// \}
907
+
908
+ /// Sets the RGB color of the BodyNodes that are currently in this
909
+ /// MetaSkeleton.
910
+ ///
911
+ /// ShapeNodes that don't have VisualAspect will be ignored.
912
+ ///
913
+ /// Note that the ShapeNodes that are added after calling this function
914
+ /// don't get updated to the color that was set beforehand.
915
+ void setColor(const Eigen::Vector3d& color);
916
+
917
+ /// Sets the RGBA color of the BodyNodes that are currently in this
918
+ /// MetaSkeleton.
919
+ ///
920
+ /// ShapeNodes that don't have VisualAspect will be ignored.
921
+ ///
922
+ /// Note that the ShapeNodes that are added after calling this function
923
+ /// don't get updated to the color that was set beforehand.
924
+ void setColor(const Eigen::Vector4d& color);
925
+
926
+ /// Sets the alpha component of the BodyNodes that are currently in this
927
+ /// MetaSkeleton.
928
+ ///
929
+ /// ShapeNodes that don't have VisualAspect will be ignored.
930
+ ///
931
+ /// Note that the BodyNodes that are added after calling this function
932
+ /// don't get updated to the alpha value that was set beforehand.
933
+ void setAlpha(double alpha);
934
+
935
+ /// \{ \name Iterations
936
+
937
+ /// Iterates all the BodyNodes in this MetaSkeleton and invokes the callback
938
+ /// function.
939
+ ///
940
+ /// \tparam Func: The callback function type. The function signature should be
941
+ /// equivalent to \c void(const BodyNode*) or \c bool(const BodyNode*). If
942
+ /// you want to conditionally iterate, use \c bool(const BodyNode*) and
943
+ /// return false when to stop iterating.
944
+ ///
945
+ /// \param[in] func: The callback function to be called for each BodyNode.
946
+ template <typename Func>
947
+ void eachBodyNode(Func func) const;
948
+
949
+ /// Iterates all the BodyNodes in this MetaSkeleton and invokes the callback
950
+ /// function.
951
+ ///
952
+ /// \tparam Func: The callback function type. The function signature should be
953
+ /// equivalent to \c void(BodyNode*) or \c bool(BodyNode*). If
954
+ /// you want to conditionally iterate, use \c bool(BodyNode*) and
955
+ /// return false when to stop iterating.
956
+ ///
957
+ /// \param[in] func: The callback function to be called for each BodyNode.
958
+ template <typename Func>
959
+ void eachBodyNode(Func func);
960
+
961
+ /// Iterates all the Joints in this MetaSkeleton and invokes the callback
962
+ /// function.
963
+ ///
964
+ /// \tparam Func: The callback function type. The function signature should be
965
+ /// equivalent to \c void(const Joint*) or \c bool(const Joint*). If
966
+ /// you want to conditionally iterate, use \c bool(const BodyNode*) and
967
+ /// return false when to stop iterating.
968
+ ///
969
+ /// \param[in] func: The callback function to be called for each Joint.
970
+ template <typename Func>
971
+ void eachJoint(Func func) const;
972
+
973
+ /// Iterates all the Joints in this MetaSkeleton and invokes the callback
974
+ /// function.
975
+ ///
976
+ /// \tparam Func: The callback function type. The function signature should be
977
+ /// equivalent to \c void(Joint*) or \c bool(Joint*). If
978
+ /// you want to conditionally iterate, use \c bool(Joint*) and
979
+ /// return false when to stop iterating.
980
+ ///
981
+ /// \param[in] func: The callback function to be called for each Joint.
982
+ template <typename Func>
983
+ void eachJoint(Func func);
984
+
985
+ /// Iterates all the DegreeOfFreedoms in this MetaSkeleton and invokes the
986
+ /// callback function.
987
+ ///
988
+ /// \tparam Func: The callback function type. The function signature should be
989
+ /// equivalent to \c void(const DegreeOfFreedom*) or \c bool(const
990
+ /// DegreeOfFreedom*). If you want to conditionally iterate, use \c bool(const
991
+ /// DegreeOfFreedom*) and return false when to stop iterating.
992
+ ///
993
+ /// \param[in] func: The callback function to be called for each
994
+ /// DegreeOfFreedom.
995
+ template <typename Func>
996
+ void eachDof(Func func) const;
997
+
998
+ /// Iterates all the DegreeOfFreedoms in this MetaSkeleton and invokes the
999
+ /// callback function.
1000
+ ///
1001
+ /// \tparam Func: The callback function type. The function signature should be
1002
+ /// equivalent to \c void(DegreeOfFreedom*) or \c bool(DegreeOfFreedom*). If
1003
+ /// you want to conditionally iterate, use \c bool(DegreeOfFreedom*) and
1004
+ /// return false when to stop iterating.
1005
+ ///
1006
+ /// \param[in] func: The callback function to be called for each
1007
+ /// DegreeOfFreedom.
1008
+ template <typename Func>
1009
+ void eachDof(Func func);
1010
+
1011
+ /// \}
1012
+
1013
+ protected:
1014
+ /// Default constructor
1015
+ MetaSkeleton();
1016
+
1017
+ //--------------------------------------------------------------------------
1018
+ // Signals
1019
+ //--------------------------------------------------------------------------
1020
+ NameChangedSignal mNameChangedSignal;
1021
+
1022
+ public:
1023
+ //--------------------------------------------------------------------------
1024
+ // Slot registers
1025
+ //--------------------------------------------------------------------------
1026
+ common::SlotRegister<NameChangedSignal> onNameChanged;
1027
+ };
1028
+
1029
+ } // namespace dynamics
1030
+ } // namespace dart
1031
+
1032
+ #include <dart/dynamics/detail/MetaSkeleton-impl.hpp>
1033
+
1034
+ #endif // DART_DYNAMICS_METASKELETON_HPP_