pymomentum-cpu 0.1.93.post0__cp312-cp312-macosx_14_0_arm64.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.
Files changed (517) hide show
  1. include/axel/BoundingBox.h +59 -0
  2. include/axel/Bvh.h +708 -0
  3. include/axel/BvhBase.h +75 -0
  4. include/axel/BvhCommon.h +43 -0
  5. include/axel/BvhEmbree.h +87 -0
  6. include/axel/BvhFactory.h +34 -0
  7. include/axel/Checks.h +21 -0
  8. include/axel/DualContouring.h +79 -0
  9. include/axel/KdTree.h +208 -0
  10. include/axel/Log.h +22 -0
  11. include/axel/MeshToSdf.h +123 -0
  12. include/axel/Profile.h +64 -0
  13. include/axel/Ray.h +45 -0
  14. include/axel/SignedDistanceField.h +248 -0
  15. include/axel/SimdKdTree.h +515 -0
  16. include/axel/TriBvh.h +157 -0
  17. include/axel/TriBvhEmbree.h +57 -0
  18. include/axel/common/Constants.h +27 -0
  19. include/axel/common/Types.h +21 -0
  20. include/axel/common/VectorizationTypes.h +58 -0
  21. include/axel/math/BoundingBoxUtils.h +54 -0
  22. include/axel/math/ContinuousCollisionDetection.h +48 -0
  23. include/axel/math/CoplanarityCheck.h +30 -0
  24. include/axel/math/EdgeEdgeDistance.h +31 -0
  25. include/axel/math/MeshHoleFilling.h +117 -0
  26. include/axel/math/PointTriangleProjection.h +34 -0
  27. include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
  28. include/axel/math/RayTriangleIntersection.h +36 -0
  29. include/momentum/character/blend_shape.h +97 -0
  30. include/momentum/character/blend_shape_base.h +86 -0
  31. include/momentum/character/blend_shape_skinning.h +96 -0
  32. include/momentum/character/character.h +272 -0
  33. include/momentum/character/character_state.h +108 -0
  34. include/momentum/character/character_utility.h +128 -0
  35. include/momentum/character/collision_geometry.h +80 -0
  36. include/momentum/character/collision_geometry_state.h +130 -0
  37. include/momentum/character/fwd.h +262 -0
  38. include/momentum/character/inverse_parameter_transform.h +58 -0
  39. include/momentum/character/joint.h +82 -0
  40. include/momentum/character/joint_state.h +241 -0
  41. include/momentum/character/linear_skinning.h +139 -0
  42. include/momentum/character/locator.h +94 -0
  43. include/momentum/character/locator_state.h +43 -0
  44. include/momentum/character/marker.h +48 -0
  45. include/momentum/character/mesh_state.h +71 -0
  46. include/momentum/character/parameter_limits.h +144 -0
  47. include/momentum/character/parameter_transform.h +207 -0
  48. include/momentum/character/pose_shape.h +65 -0
  49. include/momentum/character/skeleton.h +85 -0
  50. include/momentum/character/skeleton_state.h +227 -0
  51. include/momentum/character/skeleton_utility.h +38 -0
  52. include/momentum/character/skin_weights.h +67 -0
  53. include/momentum/character/skinned_locator.h +80 -0
  54. include/momentum/character/types.h +202 -0
  55. include/momentum/character_sequence_solver/fwd.h +200 -0
  56. include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
  57. include/momentum/character_sequence_solver/multipose_solver.h +65 -0
  58. include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
  59. include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
  60. include/momentum/character_sequence_solver/sequence_solver.h +155 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +158 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +117 -0
  63. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
  64. include/momentum/character_solver/aim_error_function.h +112 -0
  65. include/momentum/character_solver/collision_error_function.h +92 -0
  66. include/momentum/character_solver/collision_error_function_stateless.h +75 -0
  67. include/momentum/character_solver/constraint_error_function-inl.h +324 -0
  68. include/momentum/character_solver/constraint_error_function.h +248 -0
  69. include/momentum/character_solver/distance_error_function.h +77 -0
  70. include/momentum/character_solver/error_function_utils.h +60 -0
  71. include/momentum/character_solver/fixed_axis_error_function.h +139 -0
  72. include/momentum/character_solver/fwd.h +943 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/height_error_function.h +176 -0
  75. include/momentum/character_solver/joint_to_joint_distance_error_function.h +111 -0
  76. include/momentum/character_solver/limit_error_function.h +57 -0
  77. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  78. include/momentum/character_solver/normal_error_function.h +73 -0
  79. include/momentum/character_solver/orientation_error_function.h +74 -0
  80. include/momentum/character_solver/plane_error_function.h +102 -0
  81. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  82. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  83. include/momentum/character_solver/position_error_function.h +75 -0
  84. include/momentum/character_solver/projection_error_function.h +93 -0
  85. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  86. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  87. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  88. include/momentum/character_solver/simd_position_error_function.h +165 -0
  89. include/momentum/character_solver/skeleton_error_function.h +151 -0
  90. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  91. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  92. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  93. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  94. include/momentum/character_solver/state_error_function.h +119 -0
  95. include/momentum/character_solver/transform_pose.h +80 -0
  96. include/momentum/character_solver/trust_region_qr.h +80 -0
  97. include/momentum/character_solver/vertex_error_function.h +155 -0
  98. include/momentum/character_solver/vertex_projection_error_function.h +117 -0
  99. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
  100. include/momentum/common/aligned.h +155 -0
  101. include/momentum/common/checks.h +27 -0
  102. include/momentum/common/exception.h +70 -0
  103. include/momentum/common/filesystem.h +20 -0
  104. include/momentum/common/fwd.h +27 -0
  105. include/momentum/common/log.h +173 -0
  106. include/momentum/common/log_channel.h +17 -0
  107. include/momentum/common/memory.h +71 -0
  108. include/momentum/common/profile.h +79 -0
  109. include/momentum/common/progress_bar.h +37 -0
  110. include/momentum/common/string.h +52 -0
  111. include/momentum/diff_ik/ceres_utility.h +73 -0
  112. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  113. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  114. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  115. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  116. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  117. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  118. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  119. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  120. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  121. include/momentum/diff_ik/fwd.h +385 -0
  122. include/momentum/diff_ik/union_error_function.h +67 -0
  123. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  124. include/momentum/gui/rerun/logger.h +102 -0
  125. include/momentum/gui/rerun/logging_redirect.h +27 -0
  126. include/momentum/io/character_io.h +98 -0
  127. include/momentum/io/common/gsl_utils.h +50 -0
  128. include/momentum/io/common/stream_utils.h +65 -0
  129. include/momentum/io/fbx/fbx_io.h +135 -0
  130. include/momentum/io/fbx/fbx_memory_stream.h +70 -0
  131. include/momentum/io/fbx/openfbx_loader.h +62 -0
  132. include/momentum/io/fbx/polygon_data.h +60 -0
  133. include/momentum/io/file_save_options.h +107 -0
  134. include/momentum/io/gltf/gltf_builder.h +141 -0
  135. include/momentum/io/gltf/gltf_io.h +149 -0
  136. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  137. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  138. include/momentum/io/gltf/utils/json_utils.h +102 -0
  139. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  140. include/momentum/io/marker/c3d_io.h +30 -0
  141. include/momentum/io/marker/conversions.h +57 -0
  142. include/momentum/io/marker/coordinate_system.h +30 -0
  143. include/momentum/io/marker/marker_io.h +56 -0
  144. include/momentum/io/marker/trc_io.h +27 -0
  145. include/momentum/io/motion/mmo_io.h +97 -0
  146. include/momentum/io/shape/blend_shape_io.h +82 -0
  147. include/momentum/io/shape/pose_shape_io.h +21 -0
  148. include/momentum/io/skeleton/locator_io.h +41 -0
  149. include/momentum/io/skeleton/mppca_io.h +26 -0
  150. include/momentum/io/skeleton/parameter_limits_io.h +38 -0
  151. include/momentum/io/skeleton/parameter_transform_io.h +80 -0
  152. include/momentum/io/skeleton/parameters_io.h +20 -0
  153. include/momentum/io/skeleton/utility.h +67 -0
  154. include/momentum/io/urdf/urdf_io.h +26 -0
  155. include/momentum/io/usd/usd_io.h +36 -0
  156. include/momentum/marker_tracking/app_utils.h +64 -0
  157. include/momentum/marker_tracking/marker_tracker.h +221 -0
  158. include/momentum/marker_tracking/process_markers.h +58 -0
  159. include/momentum/marker_tracking/tracker_utils.h +99 -0
  160. include/momentum/math/constants.h +82 -0
  161. include/momentum/math/covariance_matrix.h +84 -0
  162. include/momentum/math/fmt_eigen.h +23 -0
  163. include/momentum/math/fwd.h +132 -0
  164. include/momentum/math/generalized_loss.h +61 -0
  165. include/momentum/math/intersection.h +32 -0
  166. include/momentum/math/mesh.h +84 -0
  167. include/momentum/math/mppca.h +67 -0
  168. include/momentum/math/online_householder_qr.h +516 -0
  169. include/momentum/math/random-inl.h +404 -0
  170. include/momentum/math/random.h +310 -0
  171. include/momentum/math/simd_generalized_loss.h +40 -0
  172. include/momentum/math/transform.h +229 -0
  173. include/momentum/math/types.h +461 -0
  174. include/momentum/math/utility.h +324 -0
  175. include/momentum/rasterizer/camera.h +453 -0
  176. include/momentum/rasterizer/fwd.h +102 -0
  177. include/momentum/rasterizer/geometry.h +83 -0
  178. include/momentum/rasterizer/image.h +18 -0
  179. include/momentum/rasterizer/rasterizer.h +583 -0
  180. include/momentum/rasterizer/tensor.h +140 -0
  181. include/momentum/rasterizer/text_rasterizer.h +89 -0
  182. include/momentum/rasterizer/utility.h +268 -0
  183. include/momentum/simd/simd.h +221 -0
  184. include/momentum/solver/fwd.h +131 -0
  185. include/momentum/solver/gauss_newton_solver.h +136 -0
  186. include/momentum/solver/gradient_descent_solver.h +65 -0
  187. include/momentum/solver/solver.h +155 -0
  188. include/momentum/solver/solver_function.h +126 -0
  189. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  190. include/rerun/archetypes/annotation_context.hpp +157 -0
  191. include/rerun/archetypes/arrows2d.hpp +271 -0
  192. include/rerun/archetypes/arrows3d.hpp +257 -0
  193. include/rerun/archetypes/asset3d.hpp +262 -0
  194. include/rerun/archetypes/asset_video.hpp +275 -0
  195. include/rerun/archetypes/bar_chart.hpp +261 -0
  196. include/rerun/archetypes/boxes2d.hpp +293 -0
  197. include/rerun/archetypes/boxes3d.hpp +369 -0
  198. include/rerun/archetypes/capsules3d.hpp +333 -0
  199. include/rerun/archetypes/clear.hpp +180 -0
  200. include/rerun/archetypes/depth_image.hpp +425 -0
  201. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  202. include/rerun/archetypes/encoded_image.hpp +250 -0
  203. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  204. include/rerun/archetypes/geo_points.hpp +177 -0
  205. include/rerun/archetypes/graph_edges.hpp +152 -0
  206. include/rerun/archetypes/graph_nodes.hpp +206 -0
  207. include/rerun/archetypes/image.hpp +434 -0
  208. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  209. include/rerun/archetypes/line_strips2d.hpp +289 -0
  210. include/rerun/archetypes/line_strips3d.hpp +270 -0
  211. include/rerun/archetypes/mesh3d.hpp +387 -0
  212. include/rerun/archetypes/pinhole.hpp +385 -0
  213. include/rerun/archetypes/points2d.hpp +333 -0
  214. include/rerun/archetypes/points3d.hpp +369 -0
  215. include/rerun/archetypes/recording_properties.hpp +132 -0
  216. include/rerun/archetypes/scalar.hpp +170 -0
  217. include/rerun/archetypes/scalars.hpp +153 -0
  218. include/rerun/archetypes/segmentation_image.hpp +305 -0
  219. include/rerun/archetypes/series_line.hpp +274 -0
  220. include/rerun/archetypes/series_lines.hpp +271 -0
  221. include/rerun/archetypes/series_point.hpp +265 -0
  222. include/rerun/archetypes/series_points.hpp +251 -0
  223. include/rerun/archetypes/tensor.hpp +213 -0
  224. include/rerun/archetypes/text_document.hpp +200 -0
  225. include/rerun/archetypes/text_log.hpp +211 -0
  226. include/rerun/archetypes/transform3d.hpp +925 -0
  227. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  228. include/rerun/archetypes/view_coordinates.hpp +393 -0
  229. include/rerun/archetypes.hpp +43 -0
  230. include/rerun/arrow_utils.hpp +32 -0
  231. include/rerun/as_components.hpp +90 -0
  232. include/rerun/blueprint/archetypes/background.hpp +113 -0
  233. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  234. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  235. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  236. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  237. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  238. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  239. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  240. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  241. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  242. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  243. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  244. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  245. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  246. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  247. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  248. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  249. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  250. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  251. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  252. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  253. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  254. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  255. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  256. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  257. include/rerun/blueprint/archetypes.hpp +29 -0
  258. include/rerun/blueprint/components/active_tab.hpp +82 -0
  259. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  260. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  261. include/rerun/blueprint/components/auto_views.hpp +77 -0
  262. include/rerun/blueprint/components/background_kind.hpp +66 -0
  263. include/rerun/blueprint/components/column_share.hpp +78 -0
  264. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  265. include/rerun/blueprint/components/container_kind.hpp +65 -0
  266. include/rerun/blueprint/components/corner2d.hpp +64 -0
  267. include/rerun/blueprint/components/enabled.hpp +77 -0
  268. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  269. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  270. include/rerun/blueprint/components/force_distance.hpp +82 -0
  271. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  272. include/rerun/blueprint/components/force_strength.hpp +82 -0
  273. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  274. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  275. include/rerun/blueprint/components/included_content.hpp +86 -0
  276. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  277. include/rerun/blueprint/components/map_provider.hpp +64 -0
  278. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  279. include/rerun/blueprint/components/panel_state.hpp +61 -0
  280. include/rerun/blueprint/components/query_expression.hpp +89 -0
  281. include/rerun/blueprint/components/root_container.hpp +77 -0
  282. include/rerun/blueprint/components/row_share.hpp +78 -0
  283. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  284. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  285. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  286. include/rerun/blueprint/components/view_class.hpp +76 -0
  287. include/rerun/blueprint/components/view_fit.hpp +61 -0
  288. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  289. include/rerun/blueprint/components/view_origin.hpp +81 -0
  290. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  291. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  292. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  293. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  294. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  295. include/rerun/blueprint/components.hpp +41 -0
  296. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  297. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  298. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  299. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  300. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  301. include/rerun/blueprint/datatypes.hpp +9 -0
  302. include/rerun/c/arrow_c_data_interface.h +111 -0
  303. include/rerun/c/compiler_utils.h +10 -0
  304. include/rerun/c/rerun.h +627 -0
  305. include/rerun/c/sdk_info.h +28 -0
  306. include/rerun/collection.hpp +496 -0
  307. include/rerun/collection_adapter.hpp +43 -0
  308. include/rerun/collection_adapter_builtins.hpp +138 -0
  309. include/rerun/compiler_utils.hpp +61 -0
  310. include/rerun/component_batch.hpp +163 -0
  311. include/rerun/component_column.hpp +111 -0
  312. include/rerun/component_descriptor.hpp +142 -0
  313. include/rerun/component_type.hpp +35 -0
  314. include/rerun/components/aggregation_policy.hpp +76 -0
  315. include/rerun/components/albedo_factor.hpp +74 -0
  316. include/rerun/components/annotation_context.hpp +102 -0
  317. include/rerun/components/axis_length.hpp +74 -0
  318. include/rerun/components/blob.hpp +73 -0
  319. include/rerun/components/class_id.hpp +71 -0
  320. include/rerun/components/clear_is_recursive.hpp +75 -0
  321. include/rerun/components/color.hpp +99 -0
  322. include/rerun/components/colormap.hpp +99 -0
  323. include/rerun/components/depth_meter.hpp +84 -0
  324. include/rerun/components/draw_order.hpp +79 -0
  325. include/rerun/components/entity_path.hpp +83 -0
  326. include/rerun/components/fill_mode.hpp +72 -0
  327. include/rerun/components/fill_ratio.hpp +79 -0
  328. include/rerun/components/gamma_correction.hpp +80 -0
  329. include/rerun/components/geo_line_string.hpp +63 -0
  330. include/rerun/components/graph_edge.hpp +75 -0
  331. include/rerun/components/graph_node.hpp +79 -0
  332. include/rerun/components/graph_type.hpp +57 -0
  333. include/rerun/components/half_size2d.hpp +91 -0
  334. include/rerun/components/half_size3d.hpp +95 -0
  335. include/rerun/components/image_buffer.hpp +86 -0
  336. include/rerun/components/image_format.hpp +84 -0
  337. include/rerun/components/image_plane_distance.hpp +77 -0
  338. include/rerun/components/interactive.hpp +76 -0
  339. include/rerun/components/keypoint_id.hpp +74 -0
  340. include/rerun/components/lat_lon.hpp +89 -0
  341. include/rerun/components/length.hpp +77 -0
  342. include/rerun/components/line_strip2d.hpp +73 -0
  343. include/rerun/components/line_strip3d.hpp +73 -0
  344. include/rerun/components/magnification_filter.hpp +63 -0
  345. include/rerun/components/marker_shape.hpp +82 -0
  346. include/rerun/components/marker_size.hpp +74 -0
  347. include/rerun/components/media_type.hpp +157 -0
  348. include/rerun/components/name.hpp +83 -0
  349. include/rerun/components/opacity.hpp +77 -0
  350. include/rerun/components/pinhole_projection.hpp +94 -0
  351. include/rerun/components/plane3d.hpp +75 -0
  352. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  353. include/rerun/components/pose_rotation_quat.hpp +71 -0
  354. include/rerun/components/pose_scale3d.hpp +102 -0
  355. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  356. include/rerun/components/pose_translation3d.hpp +96 -0
  357. include/rerun/components/position2d.hpp +86 -0
  358. include/rerun/components/position3d.hpp +90 -0
  359. include/rerun/components/radius.hpp +98 -0
  360. include/rerun/components/range1d.hpp +75 -0
  361. include/rerun/components/resolution.hpp +88 -0
  362. include/rerun/components/rotation_axis_angle.hpp +72 -0
  363. include/rerun/components/rotation_quat.hpp +71 -0
  364. include/rerun/components/scalar.hpp +76 -0
  365. include/rerun/components/scale3d.hpp +102 -0
  366. include/rerun/components/series_visible.hpp +76 -0
  367. include/rerun/components/show_labels.hpp +79 -0
  368. include/rerun/components/stroke_width.hpp +74 -0
  369. include/rerun/components/tensor_data.hpp +94 -0
  370. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  371. include/rerun/components/tensor_height_dimension.hpp +71 -0
  372. include/rerun/components/tensor_width_dimension.hpp +71 -0
  373. include/rerun/components/texcoord2d.hpp +101 -0
  374. include/rerun/components/text.hpp +83 -0
  375. include/rerun/components/text_log_level.hpp +110 -0
  376. include/rerun/components/timestamp.hpp +76 -0
  377. include/rerun/components/transform_mat3x3.hpp +92 -0
  378. include/rerun/components/transform_relation.hpp +66 -0
  379. include/rerun/components/translation3d.hpp +96 -0
  380. include/rerun/components/triangle_indices.hpp +85 -0
  381. include/rerun/components/value_range.hpp +78 -0
  382. include/rerun/components/vector2d.hpp +92 -0
  383. include/rerun/components/vector3d.hpp +96 -0
  384. include/rerun/components/video_timestamp.hpp +120 -0
  385. include/rerun/components/view_coordinates.hpp +346 -0
  386. include/rerun/components/visible.hpp +74 -0
  387. include/rerun/components.hpp +77 -0
  388. include/rerun/config.hpp +52 -0
  389. include/rerun/datatypes/angle.hpp +76 -0
  390. include/rerun/datatypes/annotation_info.hpp +76 -0
  391. include/rerun/datatypes/blob.hpp +67 -0
  392. include/rerun/datatypes/bool.hpp +57 -0
  393. include/rerun/datatypes/channel_datatype.hpp +87 -0
  394. include/rerun/datatypes/class_description.hpp +92 -0
  395. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  396. include/rerun/datatypes/class_id.hpp +62 -0
  397. include/rerun/datatypes/color_model.hpp +68 -0
  398. include/rerun/datatypes/dvec2d.hpp +76 -0
  399. include/rerun/datatypes/entity_path.hpp +60 -0
  400. include/rerun/datatypes/float32.hpp +62 -0
  401. include/rerun/datatypes/float64.hpp +62 -0
  402. include/rerun/datatypes/image_format.hpp +107 -0
  403. include/rerun/datatypes/keypoint_id.hpp +63 -0
  404. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  405. include/rerun/datatypes/mat3x3.hpp +105 -0
  406. include/rerun/datatypes/mat4x4.hpp +119 -0
  407. include/rerun/datatypes/pixel_format.hpp +142 -0
  408. include/rerun/datatypes/plane3d.hpp +60 -0
  409. include/rerun/datatypes/quaternion.hpp +110 -0
  410. include/rerun/datatypes/range1d.hpp +59 -0
  411. include/rerun/datatypes/range2d.hpp +55 -0
  412. include/rerun/datatypes/rgba32.hpp +94 -0
  413. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  414. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  415. include/rerun/datatypes/tensor_data.hpp +100 -0
  416. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  417. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  418. include/rerun/datatypes/time_int.hpp +62 -0
  419. include/rerun/datatypes/time_range.hpp +55 -0
  420. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  421. include/rerun/datatypes/uint16.hpp +62 -0
  422. include/rerun/datatypes/uint32.hpp +62 -0
  423. include/rerun/datatypes/uint64.hpp +62 -0
  424. include/rerun/datatypes/utf8.hpp +76 -0
  425. include/rerun/datatypes/utf8pair.hpp +62 -0
  426. include/rerun/datatypes/uuid.hpp +60 -0
  427. include/rerun/datatypes/uvec2d.hpp +76 -0
  428. include/rerun/datatypes/uvec3d.hpp +80 -0
  429. include/rerun/datatypes/uvec4d.hpp +59 -0
  430. include/rerun/datatypes/vec2d.hpp +76 -0
  431. include/rerun/datatypes/vec3d.hpp +80 -0
  432. include/rerun/datatypes/vec4d.hpp +84 -0
  433. include/rerun/datatypes/video_timestamp.hpp +67 -0
  434. include/rerun/datatypes/view_coordinates.hpp +87 -0
  435. include/rerun/datatypes/visible_time_range.hpp +57 -0
  436. include/rerun/datatypes.hpp +51 -0
  437. include/rerun/demo_utils.hpp +75 -0
  438. include/rerun/entity_path.hpp +20 -0
  439. include/rerun/error.hpp +180 -0
  440. include/rerun/half.hpp +10 -0
  441. include/rerun/image_utils.hpp +187 -0
  442. include/rerun/indicator_component.hpp +59 -0
  443. include/rerun/loggable.hpp +54 -0
  444. include/rerun/recording_stream.hpp +960 -0
  445. include/rerun/rerun_sdk_export.hpp +25 -0
  446. include/rerun/result.hpp +86 -0
  447. include/rerun/rotation3d.hpp +33 -0
  448. include/rerun/sdk_info.hpp +20 -0
  449. include/rerun/spawn.hpp +21 -0
  450. include/rerun/spawn_options.hpp +57 -0
  451. include/rerun/string_utils.hpp +16 -0
  452. include/rerun/third_party/cxxopts.hpp +2198 -0
  453. include/rerun/time_column.hpp +288 -0
  454. include/rerun/timeline.hpp +38 -0
  455. include/rerun/type_traits.hpp +40 -0
  456. include/rerun.hpp +86 -0
  457. lib/cmake/axel/axel-config.cmake +45 -0
  458. lib/cmake/axel/axelTargets-release.cmake +19 -0
  459. lib/cmake/axel/axelTargets.cmake +108 -0
  460. lib/cmake/momentum/FindFbxSdk.cmake +115 -0
  461. lib/cmake/momentum/Findre2.cmake +52 -0
  462. lib/cmake/momentum/momentum-config.cmake +67 -0
  463. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  464. lib/cmake/momentum/momentumTargets.cmake +385 -0
  465. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  466. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  467. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  468. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  469. lib/libarrow.a +0 -0
  470. lib/libarrow_bundled_dependencies.a +0 -0
  471. lib/libaxel.a +0 -0
  472. lib/libmomentum_app_utils.a +0 -0
  473. lib/libmomentum_character.a +0 -0
  474. lib/libmomentum_character_sequence_solver.a +0 -0
  475. lib/libmomentum_character_solver.a +0 -0
  476. lib/libmomentum_common.a +0 -0
  477. lib/libmomentum_diff_ik.a +0 -0
  478. lib/libmomentum_io.a +0 -0
  479. lib/libmomentum_io_common.a +0 -0
  480. lib/libmomentum_io_fbx.a +0 -0
  481. lib/libmomentum_io_gltf.a +0 -0
  482. lib/libmomentum_io_legacy_json.a +0 -0
  483. lib/libmomentum_io_marker.a +0 -0
  484. lib/libmomentum_io_motion.a +0 -0
  485. lib/libmomentum_io_shape.a +0 -0
  486. lib/libmomentum_io_skeleton.a +0 -0
  487. lib/libmomentum_io_urdf.a +0 -0
  488. lib/libmomentum_marker_tracker.a +0 -0
  489. lib/libmomentum_math.a +0 -0
  490. lib/libmomentum_online_qr.a +0 -0
  491. lib/libmomentum_process_markers.a +0 -0
  492. lib/libmomentum_rerun.a +0 -0
  493. lib/libmomentum_simd_constraints.a +0 -0
  494. lib/libmomentum_simd_generalized_loss.a +0 -0
  495. lib/libmomentum_skeleton.a +0 -0
  496. lib/libmomentum_solver.a +0 -0
  497. lib/librerun_c__macos_arm64.a +0 -0
  498. lib/librerun_sdk.a +0 -0
  499. pymomentum/axel.cpython-312-darwin.so +0 -0
  500. pymomentum/backend/__init__.py +16 -0
  501. pymomentum/backend/skel_state_backend.py +631 -0
  502. pymomentum/backend/trs_backend.py +889 -0
  503. pymomentum/backend/utils.py +224 -0
  504. pymomentum/geometry.cpython-312-darwin.so +0 -0
  505. pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
  506. pymomentum/quaternion.py +740 -0
  507. pymomentum/skel_state.py +514 -0
  508. pymomentum/solver.cpython-312-darwin.so +0 -0
  509. pymomentum/solver2.cpython-312-darwin.so +0 -0
  510. pymomentum/torch/character.py +868 -0
  511. pymomentum/torch/parameter_limits.py +494 -0
  512. pymomentum/torch/utility.py +20 -0
  513. pymomentum/trs.py +535 -0
  514. pymomentum_cpu-0.1.93.post0.dist-info/METADATA +126 -0
  515. pymomentum_cpu-0.1.93.post0.dist-info/RECORD +517 -0
  516. pymomentum_cpu-0.1.93.post0.dist-info/WHEEL +5 -0
  517. pymomentum_cpu-0.1.93.post0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,262 @@
1
+ // DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
2
+ // Based on "crates/store/re_types/definitions/rerun/archetypes/asset3d.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/albedo_factor.hpp"
10
+ #include "../components/blob.hpp"
11
+ #include "../components/media_type.hpp"
12
+ #include "../indicator_component.hpp"
13
+ #include "../result.hpp"
14
+
15
+ #include <cstdint>
16
+ #include <filesystem>
17
+ #include <optional>
18
+ #include <utility>
19
+ #include <vector>
20
+
21
+ namespace rerun::archetypes {
22
+ /// **Archetype**: A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
23
+ ///
24
+ /// See also `archetypes::Mesh3D`.
25
+ ///
26
+ /// If there are multiple `archetypes::InstancePoses3D` instances logged to the same entity as a mesh,
27
+ /// an instance of the mesh will be drawn for each transform.
28
+ ///
29
+ /// ## Example
30
+ ///
31
+ /// ### Simple 3D asset
32
+ /// ![image](https://static.rerun.io/asset3d_simple/af238578188d3fd0de3e330212120e2842a8ddb2/full.png)
33
+ ///
34
+ /// ```cpp
35
+ /// #include <rerun.hpp>
36
+ ///
37
+ /// #include <iostream>
38
+ ///
39
+ /// int main(int argc, char* argv[]) {
40
+ /// if (argc <2) {
41
+ /// std::cerr <<"Usage: " <<argv[0] <<" <path_to_asset.[gltf|glb|obj|stl]>" <<std::endl;
42
+ /// return 1;
43
+ /// }
44
+ ///
45
+ /// const auto path = argv[1];
46
+ ///
47
+ /// const auto rec = rerun::RecordingStream("rerun_example_asset3d");
48
+ /// rec.spawn().exit_on_failure();
49
+ ///
50
+ /// rec.log_static("world", rerun::ViewCoordinates::RIGHT_HAND_Z_UP); // Set an up-axis
51
+ /// rec.log("world/asset", rerun::Asset3D::from_file_path(path).value_or_throw());
52
+ /// }
53
+ /// ```
54
+ struct Asset3D {
55
+ /// The asset's bytes.
56
+ std::optional<ComponentBatch> blob;
57
+
58
+ /// The Media Type of the asset.
59
+ ///
60
+ /// Supported values:
61
+ /// * `model/gltf-binary`
62
+ /// * `model/gltf+json`
63
+ /// * `model/obj` (.mtl material files are not supported yet, references are silently ignored)
64
+ /// * `model/stl`
65
+ ///
66
+ /// If omitted, the viewer will try to guess from the data blob.
67
+ /// If it cannot guess, it won't be able to render the asset.
68
+ std::optional<ComponentBatch> media_type;
69
+
70
+ /// A color multiplier applied to the whole asset.
71
+ ///
72
+ /// For mesh who already have `albedo_factor` in materials,
73
+ /// it will be overwritten by actual `albedo_factor` of `archetypes::Asset3D` (if specified).
74
+ std::optional<ComponentBatch> albedo_factor;
75
+
76
+ public:
77
+ static constexpr const char IndicatorComponentName[] = "rerun.components.Asset3DIndicator";
78
+
79
+ /// Indicator component, used to identify the archetype when converting to a list of components.
80
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
81
+ /// The name of the archetype as used in `ComponentDescriptor`s.
82
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.Asset3D";
83
+
84
+ /// `ComponentDescriptor` for the `blob` field.
85
+ static constexpr auto Descriptor_blob = ComponentDescriptor(
86
+ ArchetypeName, "blob", Loggable<rerun::components::Blob>::Descriptor.component_name
87
+ );
88
+ /// `ComponentDescriptor` for the `media_type` field.
89
+ static constexpr auto Descriptor_media_type = ComponentDescriptor(
90
+ ArchetypeName, "media_type",
91
+ Loggable<rerun::components::MediaType>::Descriptor.component_name
92
+ );
93
+ /// `ComponentDescriptor` for the `albedo_factor` field.
94
+ static constexpr auto Descriptor_albedo_factor = ComponentDescriptor(
95
+ ArchetypeName, "albedo_factor",
96
+ Loggable<rerun::components::AlbedoFactor>::Descriptor.component_name
97
+ );
98
+
99
+ public: // START of extensions from asset3d_ext.cpp:
100
+ /// Creates a new `Asset3D` from the file contents at `path`.
101
+ ///
102
+ /// The `MediaType` will be guessed from the file extension.
103
+ ///
104
+ /// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
105
+ /// from the data at render-time. If it can't, rendering will fail with an error.
106
+ /// \deprecated Use `from_file_path` instead.
107
+ [[deprecated("Use `from_file_path` instead")]] static Result<Asset3D> from_file(
108
+ const std::filesystem::path& path
109
+ );
110
+
111
+ /// Creates a new `Asset3D` from the file contents at `path`.
112
+ ///
113
+ /// The `MediaType` will be guessed from the file extension.
114
+ ///
115
+ /// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
116
+ /// from the data at render-time. If it can't, rendering will fail with an error.
117
+ static Result<Asset3D> from_file_path(const std::filesystem::path& path);
118
+
119
+ /// Creates a new `Asset3D` from the given `bytes`.
120
+ ///
121
+ /// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
122
+ /// at render-time. If it can't, rendering will fail with an error.
123
+ /// \deprecated Use `from_file_contents` instead.
124
+ [[deprecated("Use `from_file_contents` instead")]] static Asset3D from_bytes(
125
+ rerun::Collection<uint8_t> bytes,
126
+ std::optional<rerun::components::MediaType> media_type = {}
127
+ ) {
128
+ return from_file_contents(bytes, media_type);
129
+ }
130
+
131
+ /// Creates a new `Asset3D` from the given `bytes`.
132
+ ///
133
+ /// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
134
+ /// at render-time. If it can't, rendering will fail with an error.
135
+ static Asset3D from_file_contents(
136
+ rerun::Collection<uint8_t> bytes,
137
+ std::optional<rerun::components::MediaType> media_type = {}
138
+ ) {
139
+ Asset3D asset = Asset3D(std::move(bytes));
140
+ // TODO(cmc): we could try and guess using magic bytes here, like rust does.
141
+ if (media_type.has_value()) {
142
+ return std::move(asset).with_media_type(media_type.value());
143
+ }
144
+ return asset;
145
+ }
146
+
147
+ // END of extensions from asset3d_ext.cpp, start of generated code:
148
+
149
+ public:
150
+ Asset3D() = default;
151
+ Asset3D(Asset3D&& other) = default;
152
+ Asset3D(const Asset3D& other) = default;
153
+ Asset3D& operator=(const Asset3D& other) = default;
154
+ Asset3D& operator=(Asset3D&& other) = default;
155
+
156
+ explicit Asset3D(rerun::components::Blob _blob)
157
+ : blob(ComponentBatch::from_loggable(std::move(_blob), Descriptor_blob).value_or_throw()
158
+ ) {}
159
+
160
+ /// Update only some specific fields of a `Asset3D`.
161
+ static Asset3D update_fields() {
162
+ return Asset3D();
163
+ }
164
+
165
+ /// Clear all the fields of a `Asset3D`.
166
+ static Asset3D clear_fields();
167
+
168
+ /// The asset's bytes.
169
+ Asset3D with_blob(const rerun::components::Blob& _blob) && {
170
+ blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
171
+ return std::move(*this);
172
+ }
173
+
174
+ /// This method makes it possible to pack multiple `blob` in a single component batch.
175
+ ///
176
+ /// This only makes sense when used in conjunction with `columns`. `with_blob` should
177
+ /// be used when logging a single row's worth of data.
178
+ Asset3D with_many_blob(const Collection<rerun::components::Blob>& _blob) && {
179
+ blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
180
+ return std::move(*this);
181
+ }
182
+
183
+ /// The Media Type of the asset.
184
+ ///
185
+ /// Supported values:
186
+ /// * `model/gltf-binary`
187
+ /// * `model/gltf+json`
188
+ /// * `model/obj` (.mtl material files are not supported yet, references are silently ignored)
189
+ /// * `model/stl`
190
+ ///
191
+ /// If omitted, the viewer will try to guess from the data blob.
192
+ /// If it cannot guess, it won't be able to render the asset.
193
+ Asset3D with_media_type(const rerun::components::MediaType& _media_type) && {
194
+ media_type =
195
+ ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
196
+ return std::move(*this);
197
+ }
198
+
199
+ /// This method makes it possible to pack multiple `media_type` in a single component batch.
200
+ ///
201
+ /// This only makes sense when used in conjunction with `columns`. `with_media_type` should
202
+ /// be used when logging a single row's worth of data.
203
+ Asset3D with_many_media_type(const Collection<rerun::components::MediaType>& _media_type
204
+ ) && {
205
+ media_type =
206
+ ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
207
+ return std::move(*this);
208
+ }
209
+
210
+ /// A color multiplier applied to the whole asset.
211
+ ///
212
+ /// For mesh who already have `albedo_factor` in materials,
213
+ /// it will be overwritten by actual `albedo_factor` of `archetypes::Asset3D` (if specified).
214
+ Asset3D with_albedo_factor(const rerun::components::AlbedoFactor& _albedo_factor) && {
215
+ albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
216
+ .value_or_throw();
217
+ return std::move(*this);
218
+ }
219
+
220
+ /// This method makes it possible to pack multiple `albedo_factor` in a single component batch.
221
+ ///
222
+ /// This only makes sense when used in conjunction with `columns`. `with_albedo_factor` should
223
+ /// be used when logging a single row's worth of data.
224
+ Asset3D with_many_albedo_factor(
225
+ const Collection<rerun::components::AlbedoFactor>& _albedo_factor
226
+ ) && {
227
+ albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
228
+ .value_or_throw();
229
+ return std::move(*this);
230
+ }
231
+
232
+ /// Partitions the component data into multiple sub-batches.
233
+ ///
234
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
235
+ /// instead, via `ComponentBatch::partitioned`.
236
+ ///
237
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
238
+ ///
239
+ /// The specified `lengths` must sum to the total length of the component batch.
240
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
241
+
242
+ /// Partitions the component data into unit-length sub-batches.
243
+ ///
244
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
245
+ /// where `n` is automatically guessed.
246
+ Collection<ComponentColumn> columns();
247
+ };
248
+
249
+ } // namespace rerun::archetypes
250
+
251
+ namespace rerun {
252
+ /// \private
253
+ template <typename T>
254
+ struct AsComponents;
255
+
256
+ /// \private
257
+ template <>
258
+ struct AsComponents<archetypes::Asset3D> {
259
+ /// Serialize all set component batches.
260
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::Asset3D& archetype);
261
+ };
262
+ } // namespace rerun
@@ -0,0 +1,275 @@
1
+ // DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
2
+ // Based on "crates/store/re_types/definitions/rerun/archetypes/asset_video.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/blob.hpp"
10
+ #include "../components/media_type.hpp"
11
+ #include "../indicator_component.hpp"
12
+ #include "../result.hpp"
13
+
14
+ #include <chrono>
15
+ #include <cstdint>
16
+ #include <filesystem>
17
+ #include <optional>
18
+ #include <utility>
19
+ #include <vector>
20
+
21
+ namespace rerun::archetypes {
22
+ /// **Archetype**: A video binary.
23
+ ///
24
+ /// Only MP4 containers with AV1 are generally supported,
25
+ /// though the web viewer supports more video codecs, depending on browser.
26
+ ///
27
+ /// See <https://rerun.io/docs/reference/video> for details of what is and isn't supported.
28
+ ///
29
+ /// In order to display a video, you also need to log a `archetypes::VideoFrameReference` for each frame.
30
+ ///
31
+ /// ## Examples
32
+ ///
33
+ /// ### Video with automatically determined frames
34
+ /// ![image](https://static.rerun.io/video_manual_frames/320a44e1e06b8b3a3161ecbbeae3e04d1ccb9589/full.png)
35
+ ///
36
+ /// ```cpp
37
+ /// #include <rerun.hpp>
38
+ ///
39
+ /// #include <iostream>
40
+ ///
41
+ /// using namespace std::chrono_literals;
42
+ ///
43
+ /// int main(int argc, char* argv[]) {
44
+ /// if (argc <2) {
45
+ /// // TODO(#7354): Only mp4 is supported for now.
46
+ /// std::cerr <<"Usage: " <<argv[0] <<" <path_to_video.[mp4]>" <<std::endl;
47
+ /// return 1;
48
+ /// }
49
+ ///
50
+ /// const auto path = argv[1];
51
+ ///
52
+ /// const auto rec = rerun::RecordingStream("rerun_example_asset_video_auto_frames");
53
+ /// rec.spawn().exit_on_failure();
54
+ ///
55
+ /// // Log video asset which is referred to by frame references.
56
+ /// auto video_asset = rerun::AssetVideo::from_file(path).value_or_throw();
57
+ /// rec.log_static("video", video_asset);
58
+ ///
59
+ /// // Send automatically determined video frame timestamps.
60
+ /// std::vector<std::chrono::nanoseconds> frame_timestamps_ns =
61
+ /// video_asset.read_frame_timestamps_nanos().value_or_throw();
62
+ /// // Note timeline values don't have to be the same as the video timestamps.
63
+ /// auto time_column =
64
+ /// rerun::TimeColumn::from_durations("video_time", rerun::borrow(frame_timestamps_ns));
65
+ ///
66
+ /// std::vector<rerun::components::VideoTimestamp> video_timestamps(frame_timestamps_ns.size());
67
+ /// for (size_t i = 0; i <frame_timestamps_ns.size(); i++) {
68
+ /// video_timestamps[i] = rerun::components::VideoTimestamp(frame_timestamps_ns[i]);
69
+ /// }
70
+ /// auto video_frame_reference_indicators =
71
+ /// rerun::ComponentColumn::from_indicators<rerun::VideoFrameReference>(
72
+ /// static_cast<uint32_t>(video_timestamps.size())
73
+ /// );
74
+ ///
75
+ /// rec.send_columns(
76
+ /// "video",
77
+ /// time_column,
78
+ /// rerun::VideoFrameReference().with_many_timestamp(rerun::borrow(video_timestamps)).columns()
79
+ /// );
80
+ /// }
81
+ /// ```
82
+ ///
83
+ /// ### Demonstrates manual use of video frame references
84
+ /// ![image](https://static.rerun.io/video_manual_frames/9f41c00f84a98cc3f26875fba7c1d2fa2bad7151/full.png)
85
+ ///
86
+ /// ```cpp
87
+ /// #include <rerun.hpp>
88
+ ///
89
+ /// #include <iostream>
90
+ ///
91
+ /// using namespace std::chrono_literals;
92
+ ///
93
+ /// int main(int argc, char* argv[]) {
94
+ /// if (argc <2) {
95
+ /// // TODO(#7354): Only mp4 is supported for now.
96
+ /// std::cerr <<"Usage: " <<argv[0] <<" <path_to_video.[mp4]>" <<std::endl;
97
+ /// return 1;
98
+ /// }
99
+ ///
100
+ /// const auto path = argv[1];
101
+ ///
102
+ /// const auto rec = rerun::RecordingStream("rerun_example_asset_video_manual_frames");
103
+ /// rec.spawn().exit_on_failure();
104
+ ///
105
+ /// // Log video asset which is referred to by frame references.
106
+ /// rec.log_static("video_asset", rerun::AssetVideo::from_file(path).value_or_throw());
107
+ ///
108
+ /// // Create two entities, showing the same video frozen at different times.
109
+ /// rec.log("frame_1s", rerun::VideoFrameReference(1.0s).with_video_reference("video_asset"));
110
+ /// rec.log("frame_2s", rerun::VideoFrameReference(2.0s).with_video_reference("video_asset"));
111
+ ///
112
+ /// // TODO(#5520): log blueprint once supported
113
+ /// }
114
+ /// ```
115
+ struct AssetVideo {
116
+ /// The asset's bytes.
117
+ std::optional<ComponentBatch> blob;
118
+
119
+ /// The Media Type of the asset.
120
+ ///
121
+ /// Supported values:
122
+ /// * `video/mp4`
123
+ ///
124
+ /// If omitted, the viewer will try to guess from the data blob.
125
+ /// If it cannot guess, it won't be able to render the asset.
126
+ std::optional<ComponentBatch> media_type;
127
+
128
+ public:
129
+ static constexpr const char IndicatorComponentName[] =
130
+ "rerun.components.AssetVideoIndicator";
131
+
132
+ /// Indicator component, used to identify the archetype when converting to a list of components.
133
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
134
+ /// The name of the archetype as used in `ComponentDescriptor`s.
135
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.AssetVideo";
136
+
137
+ /// `ComponentDescriptor` for the `blob` field.
138
+ static constexpr auto Descriptor_blob = ComponentDescriptor(
139
+ ArchetypeName, "blob", Loggable<rerun::components::Blob>::Descriptor.component_name
140
+ );
141
+ /// `ComponentDescriptor` for the `media_type` field.
142
+ static constexpr auto Descriptor_media_type = ComponentDescriptor(
143
+ ArchetypeName, "media_type",
144
+ Loggable<rerun::components::MediaType>::Descriptor.component_name
145
+ );
146
+
147
+ public: // START of extensions from asset_video_ext.cpp:
148
+ /// Creates a new `AssetVideo` from the file contents at `path`.
149
+ ///
150
+ /// The `MediaType` will be guessed from the file extension.
151
+ ///
152
+ /// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
153
+ /// from the data at render-time. If it can't, rendering will fail with an error.
154
+ static Result<AssetVideo> from_file(const std::filesystem::path& path);
155
+
156
+ /// Creates a new `AssetVideo` from the given `bytes`.
157
+ ///
158
+ /// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
159
+ /// at render-time. If it can't, rendering will fail with an error.
160
+ static AssetVideo from_bytes(
161
+ rerun::Collection<uint8_t> bytes,
162
+ std::optional<rerun::components::MediaType> media_type = {}
163
+ ) {
164
+ AssetVideo asset = AssetVideo(std::move(bytes));
165
+ // TODO(jan): we could try and guess using magic bytes here, like rust does.
166
+ if (media_type.has_value()) {
167
+ return std::move(asset).with_media_type(media_type.value());
168
+ }
169
+ return asset;
170
+ }
171
+
172
+ /// Determines the presentation timestamps of all frames inside the video.
173
+ ///
174
+ /// Returned timestamps are in nanoseconds since start and are guaranteed to be monotonically increasing.
175
+ Result<std::vector<std::chrono::nanoseconds>> read_frame_timestamps_nanos() const;
176
+
177
+ /// DEPRECATED: Use `read_frame_timestamps_nanos` instead.
178
+ [[deprecated("Renamed to `read_frame_timestamps_nanos`"
179
+ )]] Result<std::vector<std::chrono::nanoseconds>>
180
+ read_frame_timestamps_ns() const {
181
+ return read_frame_timestamps_nanos();
182
+ }
183
+
184
+ // END of extensions from asset_video_ext.cpp, start of generated code:
185
+
186
+ public:
187
+ AssetVideo() = default;
188
+ AssetVideo(AssetVideo&& other) = default;
189
+ AssetVideo(const AssetVideo& other) = default;
190
+ AssetVideo& operator=(const AssetVideo& other) = default;
191
+ AssetVideo& operator=(AssetVideo&& other) = default;
192
+
193
+ explicit AssetVideo(rerun::components::Blob _blob)
194
+ : blob(ComponentBatch::from_loggable(std::move(_blob), Descriptor_blob).value_or_throw()
195
+ ) {}
196
+
197
+ /// Update only some specific fields of a `AssetVideo`.
198
+ static AssetVideo update_fields() {
199
+ return AssetVideo();
200
+ }
201
+
202
+ /// Clear all the fields of a `AssetVideo`.
203
+ static AssetVideo clear_fields();
204
+
205
+ /// The asset's bytes.
206
+ AssetVideo with_blob(const rerun::components::Blob& _blob) && {
207
+ blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
208
+ return std::move(*this);
209
+ }
210
+
211
+ /// This method makes it possible to pack multiple `blob` in a single component batch.
212
+ ///
213
+ /// This only makes sense when used in conjunction with `columns`. `with_blob` should
214
+ /// be used when logging a single row's worth of data.
215
+ AssetVideo with_many_blob(const Collection<rerun::components::Blob>& _blob) && {
216
+ blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
217
+ return std::move(*this);
218
+ }
219
+
220
+ /// The Media Type of the asset.
221
+ ///
222
+ /// Supported values:
223
+ /// * `video/mp4`
224
+ ///
225
+ /// If omitted, the viewer will try to guess from the data blob.
226
+ /// If it cannot guess, it won't be able to render the asset.
227
+ AssetVideo with_media_type(const rerun::components::MediaType& _media_type) && {
228
+ media_type =
229
+ ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
230
+ return std::move(*this);
231
+ }
232
+
233
+ /// This method makes it possible to pack multiple `media_type` in a single component batch.
234
+ ///
235
+ /// This only makes sense when used in conjunction with `columns`. `with_media_type` should
236
+ /// be used when logging a single row's worth of data.
237
+ AssetVideo with_many_media_type(const Collection<rerun::components::MediaType>& _media_type
238
+ ) && {
239
+ media_type =
240
+ ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
241
+ return std::move(*this);
242
+ }
243
+
244
+ /// Partitions the component data into multiple sub-batches.
245
+ ///
246
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
247
+ /// instead, via `ComponentBatch::partitioned`.
248
+ ///
249
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
250
+ ///
251
+ /// The specified `lengths` must sum to the total length of the component batch.
252
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
253
+
254
+ /// Partitions the component data into unit-length sub-batches.
255
+ ///
256
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
257
+ /// where `n` is automatically guessed.
258
+ Collection<ComponentColumn> columns();
259
+ };
260
+
261
+ } // namespace rerun::archetypes
262
+
263
+ namespace rerun {
264
+ /// \private
265
+ template <typename T>
266
+ struct AsComponents;
267
+
268
+ /// \private
269
+ template <>
270
+ struct AsComponents<archetypes::AssetVideo> {
271
+ /// Serialize all set component batches.
272
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::AssetVideo& archetype
273
+ );
274
+ };
275
+ } // namespace rerun