pymomentum-cpu 0.1.78.post11__cp313-cp313-win_amd64.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 pymomentum-cpu might be problematic. Click here for more details.

Files changed (512) hide show
  1. include/axel/BoundingBox.h +58 -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 +86 -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 +199 -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 +91 -0
  30. include/momentum/character/blend_shape_base.h +70 -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 +82 -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 +250 -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 +181 -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 +144 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +134 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +109 -0
  63. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +128 -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 +924 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/limit_error_function.h +57 -0
  75. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  76. include/momentum/character_solver/normal_error_function.h +73 -0
  77. include/momentum/character_solver/orientation_error_function.h +74 -0
  78. include/momentum/character_solver/plane_error_function.h +102 -0
  79. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  80. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  81. include/momentum/character_solver/position_error_function.h +75 -0
  82. include/momentum/character_solver/projection_error_function.h +93 -0
  83. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  84. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  85. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  86. include/momentum/character_solver/simd_position_error_function.h +165 -0
  87. include/momentum/character_solver/skeleton_error_function.h +151 -0
  88. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  89. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  90. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  91. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  92. include/momentum/character_solver/state_error_function.h +94 -0
  93. include/momentum/character_solver/transform_pose.h +80 -0
  94. include/momentum/character_solver/trust_region_qr.h +80 -0
  95. include/momentum/character_solver/vertex_error_function.h +155 -0
  96. include/momentum/character_solver/vertex_projection_error_function.h +126 -0
  97. include/momentum/character_solver/vertex_vertex_distance_error_function.h +151 -0
  98. include/momentum/common/aligned.h +155 -0
  99. include/momentum/common/checks.h +27 -0
  100. include/momentum/common/exception.h +70 -0
  101. include/momentum/common/filesystem.h +20 -0
  102. include/momentum/common/fwd.h +27 -0
  103. include/momentum/common/log.h +173 -0
  104. include/momentum/common/log_channel.h +17 -0
  105. include/momentum/common/memory.h +71 -0
  106. include/momentum/common/profile.h +79 -0
  107. include/momentum/common/progress_bar.h +37 -0
  108. include/momentum/common/string.h +52 -0
  109. include/momentum/diff_ik/ceres_utility.h +73 -0
  110. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  111. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  112. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  113. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  114. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  115. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  116. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  117. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  118. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  119. include/momentum/diff_ik/fwd.h +385 -0
  120. include/momentum/diff_ik/union_error_function.h +67 -0
  121. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  122. include/momentum/gui/rerun/logger.h +102 -0
  123. include/momentum/gui/rerun/logging_redirect.h +27 -0
  124. include/momentum/io/character_io.h +56 -0
  125. include/momentum/io/common/gsl_utils.h +50 -0
  126. include/momentum/io/common/stream_utils.h +65 -0
  127. include/momentum/io/fbx/fbx_io.h +109 -0
  128. include/momentum/io/fbx/fbx_memory_stream.h +66 -0
  129. include/momentum/io/fbx/openfbx_loader.h +49 -0
  130. include/momentum/io/fbx/polygon_data.h +60 -0
  131. include/momentum/io/gltf/gltf_builder.h +132 -0
  132. include/momentum/io/gltf/gltf_file_format.h +19 -0
  133. include/momentum/io/gltf/gltf_io.h +148 -0
  134. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  135. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  136. include/momentum/io/gltf/utils/json_utils.h +102 -0
  137. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  138. include/momentum/io/marker/c3d_io.h +29 -0
  139. include/momentum/io/marker/conversions.h +57 -0
  140. include/momentum/io/marker/coordinate_system.h +30 -0
  141. include/momentum/io/marker/marker_io.h +54 -0
  142. include/momentum/io/marker/trc_io.h +27 -0
  143. include/momentum/io/motion/mmo_io.h +97 -0
  144. include/momentum/io/shape/blend_shape_io.h +70 -0
  145. include/momentum/io/shape/pose_shape_io.h +21 -0
  146. include/momentum/io/skeleton/locator_io.h +41 -0
  147. include/momentum/io/skeleton/mppca_io.h +26 -0
  148. include/momentum/io/skeleton/parameter_limits_io.h +25 -0
  149. include/momentum/io/skeleton/parameter_transform_io.h +41 -0
  150. include/momentum/io/skeleton/parameters_io.h +20 -0
  151. include/momentum/io/urdf/urdf_io.h +26 -0
  152. include/momentum/io/usd/usd_io.h +36 -0
  153. include/momentum/marker_tracking/app_utils.h +62 -0
  154. include/momentum/marker_tracking/marker_tracker.h +213 -0
  155. include/momentum/marker_tracking/process_markers.h +58 -0
  156. include/momentum/marker_tracking/tracker_utils.h +90 -0
  157. include/momentum/math/constants.h +82 -0
  158. include/momentum/math/covariance_matrix.h +84 -0
  159. include/momentum/math/fmt_eigen.h +23 -0
  160. include/momentum/math/fwd.h +132 -0
  161. include/momentum/math/generalized_loss.h +61 -0
  162. include/momentum/math/intersection.h +32 -0
  163. include/momentum/math/mesh.h +84 -0
  164. include/momentum/math/mppca.h +67 -0
  165. include/momentum/math/online_householder_qr.h +516 -0
  166. include/momentum/math/random-inl.h +404 -0
  167. include/momentum/math/random.h +310 -0
  168. include/momentum/math/simd_generalized_loss.h +40 -0
  169. include/momentum/math/transform.h +229 -0
  170. include/momentum/math/types.h +461 -0
  171. include/momentum/math/utility.h +251 -0
  172. include/momentum/rasterizer/camera.h +453 -0
  173. include/momentum/rasterizer/fwd.h +102 -0
  174. include/momentum/rasterizer/geometry.h +83 -0
  175. include/momentum/rasterizer/image.h +18 -0
  176. include/momentum/rasterizer/rasterizer.h +583 -0
  177. include/momentum/rasterizer/tensor.h +140 -0
  178. include/momentum/rasterizer/utility.h +268 -0
  179. include/momentum/simd/simd.h +221 -0
  180. include/momentum/solver/fwd.h +131 -0
  181. include/momentum/solver/gauss_newton_solver.h +136 -0
  182. include/momentum/solver/gradient_descent_solver.h +65 -0
  183. include/momentum/solver/solver.h +155 -0
  184. include/momentum/solver/solver_function.h +126 -0
  185. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  186. include/rerun/archetypes/annotation_context.hpp +157 -0
  187. include/rerun/archetypes/arrows2d.hpp +271 -0
  188. include/rerun/archetypes/arrows3d.hpp +257 -0
  189. include/rerun/archetypes/asset3d.hpp +262 -0
  190. include/rerun/archetypes/asset_video.hpp +275 -0
  191. include/rerun/archetypes/bar_chart.hpp +261 -0
  192. include/rerun/archetypes/boxes2d.hpp +293 -0
  193. include/rerun/archetypes/boxes3d.hpp +369 -0
  194. include/rerun/archetypes/capsules3d.hpp +333 -0
  195. include/rerun/archetypes/clear.hpp +180 -0
  196. include/rerun/archetypes/depth_image.hpp +425 -0
  197. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  198. include/rerun/archetypes/encoded_image.hpp +250 -0
  199. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  200. include/rerun/archetypes/geo_points.hpp +177 -0
  201. include/rerun/archetypes/graph_edges.hpp +152 -0
  202. include/rerun/archetypes/graph_nodes.hpp +206 -0
  203. include/rerun/archetypes/image.hpp +434 -0
  204. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  205. include/rerun/archetypes/line_strips2d.hpp +289 -0
  206. include/rerun/archetypes/line_strips3d.hpp +270 -0
  207. include/rerun/archetypes/mesh3d.hpp +387 -0
  208. include/rerun/archetypes/pinhole.hpp +385 -0
  209. include/rerun/archetypes/points2d.hpp +333 -0
  210. include/rerun/archetypes/points3d.hpp +369 -0
  211. include/rerun/archetypes/recording_properties.hpp +132 -0
  212. include/rerun/archetypes/scalar.hpp +170 -0
  213. include/rerun/archetypes/scalars.hpp +153 -0
  214. include/rerun/archetypes/segmentation_image.hpp +305 -0
  215. include/rerun/archetypes/series_line.hpp +274 -0
  216. include/rerun/archetypes/series_lines.hpp +271 -0
  217. include/rerun/archetypes/series_point.hpp +265 -0
  218. include/rerun/archetypes/series_points.hpp +251 -0
  219. include/rerun/archetypes/tensor.hpp +213 -0
  220. include/rerun/archetypes/text_document.hpp +200 -0
  221. include/rerun/archetypes/text_log.hpp +211 -0
  222. include/rerun/archetypes/transform3d.hpp +925 -0
  223. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  224. include/rerun/archetypes/view_coordinates.hpp +393 -0
  225. include/rerun/archetypes.hpp +43 -0
  226. include/rerun/arrow_utils.hpp +32 -0
  227. include/rerun/as_components.hpp +90 -0
  228. include/rerun/blueprint/archetypes/background.hpp +113 -0
  229. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  230. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  231. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  232. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  233. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  234. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  235. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  236. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  237. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  238. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  239. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  240. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  241. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  242. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  243. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  244. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  245. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  246. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  247. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  248. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  249. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  250. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  251. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  252. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  253. include/rerun/blueprint/archetypes.hpp +29 -0
  254. include/rerun/blueprint/components/active_tab.hpp +82 -0
  255. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  256. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  257. include/rerun/blueprint/components/auto_views.hpp +77 -0
  258. include/rerun/blueprint/components/background_kind.hpp +66 -0
  259. include/rerun/blueprint/components/column_share.hpp +78 -0
  260. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  261. include/rerun/blueprint/components/container_kind.hpp +65 -0
  262. include/rerun/blueprint/components/corner2d.hpp +64 -0
  263. include/rerun/blueprint/components/enabled.hpp +77 -0
  264. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  265. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  266. include/rerun/blueprint/components/force_distance.hpp +82 -0
  267. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  268. include/rerun/blueprint/components/force_strength.hpp +82 -0
  269. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  270. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  271. include/rerun/blueprint/components/included_content.hpp +86 -0
  272. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  273. include/rerun/blueprint/components/map_provider.hpp +64 -0
  274. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  275. include/rerun/blueprint/components/panel_state.hpp +61 -0
  276. include/rerun/blueprint/components/query_expression.hpp +89 -0
  277. include/rerun/blueprint/components/root_container.hpp +77 -0
  278. include/rerun/blueprint/components/row_share.hpp +78 -0
  279. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  280. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  281. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  282. include/rerun/blueprint/components/view_class.hpp +76 -0
  283. include/rerun/blueprint/components/view_fit.hpp +61 -0
  284. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  285. include/rerun/blueprint/components/view_origin.hpp +81 -0
  286. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  287. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  288. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  289. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  290. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  291. include/rerun/blueprint/components.hpp +41 -0
  292. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  293. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  294. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  295. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  296. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  297. include/rerun/blueprint/datatypes.hpp +9 -0
  298. include/rerun/c/arrow_c_data_interface.h +111 -0
  299. include/rerun/c/compiler_utils.h +10 -0
  300. include/rerun/c/rerun.h +627 -0
  301. include/rerun/c/sdk_info.h +28 -0
  302. include/rerun/collection.hpp +496 -0
  303. include/rerun/collection_adapter.hpp +43 -0
  304. include/rerun/collection_adapter_builtins.hpp +138 -0
  305. include/rerun/compiler_utils.hpp +61 -0
  306. include/rerun/component_batch.hpp +163 -0
  307. include/rerun/component_column.hpp +111 -0
  308. include/rerun/component_descriptor.hpp +142 -0
  309. include/rerun/component_type.hpp +35 -0
  310. include/rerun/components/aggregation_policy.hpp +76 -0
  311. include/rerun/components/albedo_factor.hpp +74 -0
  312. include/rerun/components/annotation_context.hpp +102 -0
  313. include/rerun/components/axis_length.hpp +74 -0
  314. include/rerun/components/blob.hpp +73 -0
  315. include/rerun/components/class_id.hpp +71 -0
  316. include/rerun/components/clear_is_recursive.hpp +75 -0
  317. include/rerun/components/color.hpp +99 -0
  318. include/rerun/components/colormap.hpp +99 -0
  319. include/rerun/components/depth_meter.hpp +84 -0
  320. include/rerun/components/draw_order.hpp +79 -0
  321. include/rerun/components/entity_path.hpp +83 -0
  322. include/rerun/components/fill_mode.hpp +72 -0
  323. include/rerun/components/fill_ratio.hpp +79 -0
  324. include/rerun/components/gamma_correction.hpp +80 -0
  325. include/rerun/components/geo_line_string.hpp +63 -0
  326. include/rerun/components/graph_edge.hpp +75 -0
  327. include/rerun/components/graph_node.hpp +79 -0
  328. include/rerun/components/graph_type.hpp +57 -0
  329. include/rerun/components/half_size2d.hpp +91 -0
  330. include/rerun/components/half_size3d.hpp +95 -0
  331. include/rerun/components/image_buffer.hpp +86 -0
  332. include/rerun/components/image_format.hpp +84 -0
  333. include/rerun/components/image_plane_distance.hpp +77 -0
  334. include/rerun/components/interactive.hpp +76 -0
  335. include/rerun/components/keypoint_id.hpp +74 -0
  336. include/rerun/components/lat_lon.hpp +89 -0
  337. include/rerun/components/length.hpp +77 -0
  338. include/rerun/components/line_strip2d.hpp +73 -0
  339. include/rerun/components/line_strip3d.hpp +73 -0
  340. include/rerun/components/magnification_filter.hpp +63 -0
  341. include/rerun/components/marker_shape.hpp +82 -0
  342. include/rerun/components/marker_size.hpp +74 -0
  343. include/rerun/components/media_type.hpp +157 -0
  344. include/rerun/components/name.hpp +83 -0
  345. include/rerun/components/opacity.hpp +77 -0
  346. include/rerun/components/pinhole_projection.hpp +94 -0
  347. include/rerun/components/plane3d.hpp +75 -0
  348. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  349. include/rerun/components/pose_rotation_quat.hpp +71 -0
  350. include/rerun/components/pose_scale3d.hpp +102 -0
  351. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  352. include/rerun/components/pose_translation3d.hpp +96 -0
  353. include/rerun/components/position2d.hpp +86 -0
  354. include/rerun/components/position3d.hpp +90 -0
  355. include/rerun/components/radius.hpp +98 -0
  356. include/rerun/components/range1d.hpp +75 -0
  357. include/rerun/components/resolution.hpp +88 -0
  358. include/rerun/components/rotation_axis_angle.hpp +72 -0
  359. include/rerun/components/rotation_quat.hpp +71 -0
  360. include/rerun/components/scalar.hpp +76 -0
  361. include/rerun/components/scale3d.hpp +102 -0
  362. include/rerun/components/series_visible.hpp +76 -0
  363. include/rerun/components/show_labels.hpp +79 -0
  364. include/rerun/components/stroke_width.hpp +74 -0
  365. include/rerun/components/tensor_data.hpp +94 -0
  366. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  367. include/rerun/components/tensor_height_dimension.hpp +71 -0
  368. include/rerun/components/tensor_width_dimension.hpp +71 -0
  369. include/rerun/components/texcoord2d.hpp +101 -0
  370. include/rerun/components/text.hpp +83 -0
  371. include/rerun/components/text_log_level.hpp +110 -0
  372. include/rerun/components/timestamp.hpp +76 -0
  373. include/rerun/components/transform_mat3x3.hpp +92 -0
  374. include/rerun/components/transform_relation.hpp +66 -0
  375. include/rerun/components/translation3d.hpp +96 -0
  376. include/rerun/components/triangle_indices.hpp +85 -0
  377. include/rerun/components/value_range.hpp +78 -0
  378. include/rerun/components/vector2d.hpp +92 -0
  379. include/rerun/components/vector3d.hpp +96 -0
  380. include/rerun/components/video_timestamp.hpp +120 -0
  381. include/rerun/components/view_coordinates.hpp +346 -0
  382. include/rerun/components/visible.hpp +74 -0
  383. include/rerun/components.hpp +77 -0
  384. include/rerun/config.hpp +52 -0
  385. include/rerun/datatypes/angle.hpp +76 -0
  386. include/rerun/datatypes/annotation_info.hpp +76 -0
  387. include/rerun/datatypes/blob.hpp +67 -0
  388. include/rerun/datatypes/bool.hpp +57 -0
  389. include/rerun/datatypes/channel_datatype.hpp +87 -0
  390. include/rerun/datatypes/class_description.hpp +92 -0
  391. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  392. include/rerun/datatypes/class_id.hpp +62 -0
  393. include/rerun/datatypes/color_model.hpp +68 -0
  394. include/rerun/datatypes/dvec2d.hpp +76 -0
  395. include/rerun/datatypes/entity_path.hpp +60 -0
  396. include/rerun/datatypes/float32.hpp +62 -0
  397. include/rerun/datatypes/float64.hpp +62 -0
  398. include/rerun/datatypes/image_format.hpp +107 -0
  399. include/rerun/datatypes/keypoint_id.hpp +63 -0
  400. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  401. include/rerun/datatypes/mat3x3.hpp +105 -0
  402. include/rerun/datatypes/mat4x4.hpp +119 -0
  403. include/rerun/datatypes/pixel_format.hpp +142 -0
  404. include/rerun/datatypes/plane3d.hpp +60 -0
  405. include/rerun/datatypes/quaternion.hpp +110 -0
  406. include/rerun/datatypes/range1d.hpp +59 -0
  407. include/rerun/datatypes/range2d.hpp +55 -0
  408. include/rerun/datatypes/rgba32.hpp +94 -0
  409. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  410. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  411. include/rerun/datatypes/tensor_data.hpp +100 -0
  412. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  413. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  414. include/rerun/datatypes/time_int.hpp +62 -0
  415. include/rerun/datatypes/time_range.hpp +55 -0
  416. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  417. include/rerun/datatypes/uint16.hpp +62 -0
  418. include/rerun/datatypes/uint32.hpp +62 -0
  419. include/rerun/datatypes/uint64.hpp +62 -0
  420. include/rerun/datatypes/utf8.hpp +76 -0
  421. include/rerun/datatypes/utf8pair.hpp +62 -0
  422. include/rerun/datatypes/uuid.hpp +60 -0
  423. include/rerun/datatypes/uvec2d.hpp +76 -0
  424. include/rerun/datatypes/uvec3d.hpp +80 -0
  425. include/rerun/datatypes/uvec4d.hpp +59 -0
  426. include/rerun/datatypes/vec2d.hpp +76 -0
  427. include/rerun/datatypes/vec3d.hpp +80 -0
  428. include/rerun/datatypes/vec4d.hpp +84 -0
  429. include/rerun/datatypes/video_timestamp.hpp +67 -0
  430. include/rerun/datatypes/view_coordinates.hpp +87 -0
  431. include/rerun/datatypes/visible_time_range.hpp +57 -0
  432. include/rerun/datatypes.hpp +51 -0
  433. include/rerun/demo_utils.hpp +75 -0
  434. include/rerun/entity_path.hpp +20 -0
  435. include/rerun/error.hpp +180 -0
  436. include/rerun/half.hpp +10 -0
  437. include/rerun/image_utils.hpp +187 -0
  438. include/rerun/indicator_component.hpp +59 -0
  439. include/rerun/loggable.hpp +54 -0
  440. include/rerun/recording_stream.hpp +960 -0
  441. include/rerun/rerun_sdk_export.hpp +25 -0
  442. include/rerun/result.hpp +86 -0
  443. include/rerun/rotation3d.hpp +33 -0
  444. include/rerun/sdk_info.hpp +20 -0
  445. include/rerun/spawn.hpp +21 -0
  446. include/rerun/spawn_options.hpp +57 -0
  447. include/rerun/string_utils.hpp +16 -0
  448. include/rerun/third_party/cxxopts.hpp +2198 -0
  449. include/rerun/time_column.hpp +288 -0
  450. include/rerun/timeline.hpp +38 -0
  451. include/rerun/type_traits.hpp +40 -0
  452. include/rerun.hpp +86 -0
  453. lib/arrow_bundled_dependencies.lib +0 -0
  454. lib/arrow_static.lib +0 -0
  455. lib/axel.lib +0 -0
  456. lib/cmake/axel/axel-config.cmake +45 -0
  457. lib/cmake/axel/axelTargets-release.cmake +19 -0
  458. lib/cmake/axel/axelTargets.cmake +108 -0
  459. lib/cmake/momentum/Findre2.cmake +52 -0
  460. lib/cmake/momentum/momentum-config.cmake +67 -0
  461. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  462. lib/cmake/momentum/momentumTargets.cmake +377 -0
  463. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  464. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  465. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  466. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  467. lib/momentum_app_utils.lib +0 -0
  468. lib/momentum_character.lib +0 -0
  469. lib/momentum_character_sequence_solver.lib +0 -0
  470. lib/momentum_character_solver.lib +0 -0
  471. lib/momentum_common.lib +0 -0
  472. lib/momentum_diff_ik.lib +0 -0
  473. lib/momentum_io.lib +0 -0
  474. lib/momentum_io_common.lib +0 -0
  475. lib/momentum_io_fbx.lib +0 -0
  476. lib/momentum_io_gltf.lib +0 -0
  477. lib/momentum_io_legacy_json.lib +0 -0
  478. lib/momentum_io_marker.lib +0 -0
  479. lib/momentum_io_motion.lib +0 -0
  480. lib/momentum_io_shape.lib +0 -0
  481. lib/momentum_io_skeleton.lib +0 -0
  482. lib/momentum_io_urdf.lib +0 -0
  483. lib/momentum_marker_tracker.lib +0 -0
  484. lib/momentum_math.lib +0 -0
  485. lib/momentum_online_qr.lib +0 -0
  486. lib/momentum_process_markers.lib +0 -0
  487. lib/momentum_rerun.lib +0 -0
  488. lib/momentum_simd_constraints.lib +0 -0
  489. lib/momentum_simd_generalized_loss.lib +0 -0
  490. lib/momentum_skeleton.lib +0 -0
  491. lib/momentum_solver.lib +0 -0
  492. lib/rerun_c__win_x64.lib +0 -0
  493. lib/rerun_sdk.lib +0 -0
  494. pymomentum/axel.cp313-win_amd64.pyd +0 -0
  495. pymomentum/backend/__init__.py +16 -0
  496. pymomentum/backend/skel_state_backend.py +614 -0
  497. pymomentum/backend/trs_backend.py +871 -0
  498. pymomentum/backend/utils.py +224 -0
  499. pymomentum/geometry.cp313-win_amd64.pyd +0 -0
  500. pymomentum/marker_tracking.cp313-win_amd64.pyd +0 -0
  501. pymomentum/quaternion.py +740 -0
  502. pymomentum/skel_state.py +514 -0
  503. pymomentum/solver.cp313-win_amd64.pyd +0 -0
  504. pymomentum/solver2.cp313-win_amd64.pyd +0 -0
  505. pymomentum/torch/character.py +809 -0
  506. pymomentum/torch/parameter_limits.py +494 -0
  507. pymomentum/torch/utility.py +20 -0
  508. pymomentum/trs.py +535 -0
  509. pymomentum_cpu-0.1.78.post11.dist-info/METADATA +121 -0
  510. pymomentum_cpu-0.1.78.post11.dist-info/RECORD +512 -0
  511. pymomentum_cpu-0.1.78.post11.dist-info/WHEEL +5 -0
  512. pymomentum_cpu-0.1.78.post11.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,627 @@
1
+ // ----------------------------------------------------------------------------
2
+ // The Rerun C SDK for Rerun.
3
+ // This file is part of the rerun_c Rust crate.
4
+ // ----------------------------------------------------------------------------
5
+ //
6
+ // All Rerun functions and types are thread-safe,
7
+ // which means you can share a `rr_recording_stream` across threads.
8
+ // ----------------------------------------------------------------------------
9
+
10
+ #ifndef RERUN_H
11
+ #define RERUN_H
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ #include <stdbool.h>
18
+ #include <stdint.h>
19
+ #include "arrow_c_data_interface.h"
20
+ #include "compiler_utils.h"
21
+ #include "sdk_info.h"
22
+
23
+ // ----------------------------------------------------------------------------
24
+ // Types:
25
+
26
+ /// A Utf8 string with a length in bytes.
27
+ typedef struct rr_string {
28
+ /// Pointer to a UTF8 string.
29
+ ///
30
+ /// Does *not* need to be null-terminated.
31
+ /// Rerun is guaranteed to not read beyond utf8[length_in_bytes-1].
32
+ const char* utf8;
33
+
34
+ /// The length of the string in bytes (*excluding* null-terminator, if any).
35
+ uint32_t length_in_bytes;
36
+ } rr_string;
37
+
38
+ /// A byte slice.
39
+ typedef struct rr_bytes {
40
+ /// Pointer to the bytes.
41
+ ///
42
+ /// Rerun is guaranteed to not read beyond bytes[length-1].
43
+ const uint8_t* bytes;
44
+
45
+ /// The length of the data in bytes.
46
+ uint32_t length;
47
+ } rr_bytes;
48
+
49
+ #ifndef __cplusplus
50
+
51
+ #include <string.h> // For strlen
52
+
53
+ /// Create a `rr_string` from a null-terminated string.
54
+ ///
55
+ /// Calling with NULL is safe.
56
+ rr_string rr_make_string(const char* utf8) {
57
+ uint32_t length_in_bytes = 0;
58
+ if (utf8 != NULL) {
59
+ length_in_bytes = (uint32_t)strlen(utf8);
60
+ }
61
+ return (rr_string){.utf8 = utf8, .length_in_bytes = length_in_bytes};
62
+ }
63
+
64
+ #endif
65
+
66
+ /// Type of store log messages are sent to.
67
+ typedef uint32_t rr_store_kind;
68
+
69
+ enum {
70
+ RR_STORE_KIND_RECORDING = 1,
71
+ RR_STORE_KIND_BLUEPRINT = 2,
72
+ };
73
+
74
+ /// Special value for `rr_recording_stream` methods to indicate the most appropriate
75
+ /// globally available recording stream for recordings.
76
+ /// (i.e. thread-local first, then global scope)
77
+ #define RR_REC_STREAM_CURRENT_RECORDING 0xFFFFFFFF
78
+
79
+ /// Special value for `rr_recording_stream` methods to indicate the most appropriate
80
+ /// globally available recording stream for blueprints.
81
+ /// (i.e. thread-local first, then global scope)
82
+ #define RR_REC_STREAM_CURRENT_BLUEPRINT 0xFFFFFFFE
83
+
84
+ /// Handle to a component type that can be registered.
85
+ typedef uint32_t rr_component_type_handle;
86
+
87
+ /// Special value for `rr_component_type_handle` to indicate an invalid handle.
88
+ #define RR_COMPONENT_TYPE_HANDLE_INVALID 0xFFFFFFFF
89
+
90
+ /// A unique handle for a recording stream.
91
+ /// A recording stream handles everything related to logging data into Rerun.
92
+ ///
93
+ /// ## Multithreading and ordering
94
+ ///
95
+ /// Internally, all operations are linearized into a pipeline:
96
+ /// - All operations sent by a given thread will take effect in the same exact order as that
97
+ /// thread originally sent them in, from its point of view.
98
+ /// - There isn't any well defined global order across multiple threads.
99
+ ///
100
+ /// This means that e.g. flushing the pipeline (`rr_recording_stream_flush_blocking`) guarantees
101
+ /// that all previous data sent by the calling thread has been recorded; no more, no less.
102
+ /// (e.g. it does not mean that all file caches are flushed)
103
+ ///
104
+ /// ## Shutdown
105
+ ///
106
+ /// The recording stream can only be shutdown by dropping all instances of it, at which point
107
+ /// it will automatically take care of flushing any pending data that might remain in the
108
+ /// pipeline.
109
+ ///
110
+ /// TODO(andreas): The only way of having two instances of a `RecordingStream` is currently to
111
+ /// set it as a the global.
112
+ typedef uint32_t rr_recording_stream;
113
+
114
+ /// Options to control the behavior of `spawn`.
115
+ ///
116
+ /// Refer to the field-level documentation for more information about each individual options.
117
+ ///
118
+ /// The defaults are ok for most use cases.
119
+ typedef struct rr_spawn_options {
120
+ /// The port to listen on.
121
+ ///
122
+ /// Defaults to `9876` if set to `0`.
123
+ uint16_t port;
124
+
125
+ /// An upper limit on how much memory the Rerun Viewer should use.
126
+ /// When this limit is reached, Rerun will drop the oldest data.
127
+ /// Example: `16GB` or `50%` (of system total).
128
+ ///
129
+ /// Defaults to `75%` if null.
130
+ rr_string memory_limit;
131
+
132
+ /// Hide the normal Rerun welcome screen.
133
+ bool hide_welcome_screen;
134
+
135
+ /// Detach Rerun Viewer process from the application process.
136
+ bool detach_process;
137
+
138
+ /// Specifies the name of the Rerun executable.
139
+ ///
140
+ /// You can omit the `.exe` suffix on Windows.
141
+ ///
142
+ /// Defaults to `rerun` if null.
143
+ rr_string executable_name;
144
+
145
+ /// Enforce a specific executable to use instead of searching though PATH
146
+ /// for [`Self::executable_name`].
147
+ ///
148
+ /// Unspecified by default.
149
+ rr_string executable_path;
150
+ } rr_spawn_options;
151
+
152
+ /// Recommended settings for the [`DataLoader`].
153
+ ///
154
+ /// The loader is free to ignore some or all of these.
155
+ ///
156
+ /// Refer to the field-level documentation for more information about each individual options.
157
+ //
158
+ // TODO(#3841): expose timepoint settings once we implement stateless APIs
159
+ typedef struct rr_data_loader_settings {
160
+ /// The recommended `RecordingId` to log the data to.
161
+ ///
162
+ /// Unspecified by default.
163
+ rr_string recording_id;
164
+
165
+ /// What should the logged entity paths be prefixed with?
166
+ ///
167
+ /// Unspecified by default.
168
+ rr_string entity_path_prefix;
169
+
170
+ /// Should the logged data be static?
171
+ ///
172
+ /// Defaults to `false` if not set.
173
+ bool static_;
174
+ } rr_data_loader_settings;
175
+
176
+ typedef struct rr_store_info {
177
+ /// The user-chosen name of the application doing the logging.
178
+ rr_string application_id;
179
+
180
+ /// The user-chosen name of the recording being logged to.
181
+ ///
182
+ /// Defaults to a random ID if unspecified.
183
+ rr_string recording_id;
184
+
185
+ /// `RR_STORE_KIND_RECORDING` or `RR_STORE_KIND_BLUEPRINT`
186
+ rr_store_kind store_kind;
187
+ } rr_store_info;
188
+
189
+ /// Definition of a component descriptor that can be registered.
190
+ typedef struct rr_component_descriptor {
191
+ /// Optional name of the `Archetype` associated with this data.
192
+ ///
193
+ /// Null if the data wasn't logged through an archetype.
194
+ ///
195
+ /// Example: `rerun.archetypes.Points3D`.
196
+ rr_string archetype_name;
197
+
198
+ /// Optional name of the field within `Archetype` associated with this data.
199
+ ///
200
+ /// Null if the data wasn't logged through an archetype.
201
+ ///
202
+ /// Example: `positions`.
203
+ rr_string archetype_field_name;
204
+
205
+ /// Semantic name associated with this data.
206
+ ///
207
+ /// This is fully implied by `archetype_name` and `archetype_field`, but
208
+ /// included for semantic convenience.
209
+ ///
210
+ /// Example: `rerun.components.Position3D`.
211
+ rr_string component_name;
212
+ } rr_component_descriptor;
213
+
214
+ /// Definition of a component type that can be registered.
215
+ typedef struct rr_component_type {
216
+ /// The complete descriptor for this component.
217
+ rr_component_descriptor descriptor;
218
+
219
+ /// The arrow schema used for arrow arrays of instances of this component.
220
+ struct ArrowSchema schema;
221
+ } rr_component_type;
222
+
223
+ /// Arrow-encoded data of a single batch components for a single entity.
224
+ typedef struct rr_component_batch {
225
+ /// The component type to use for this batch.
226
+ rr_component_type_handle component_type;
227
+
228
+ /// A batch of instances of this component serialized into an arrow array.
229
+ struct ArrowArray array;
230
+ } rr_component_batch;
231
+
232
+ /// Arrow-encoded log data for a single entity.
233
+ /// May contain many components.
234
+ typedef struct rr_data_row {
235
+ /// Where to log to, e.g. `world/camera`.
236
+ rr_string entity_path;
237
+
238
+ /// Number of different component batches.
239
+ uint32_t num_component_batches;
240
+
241
+ /// One for each component.
242
+ rr_component_batch* component_batches;
243
+ } rr_data_row;
244
+
245
+ /// Arrow-encoded data of a column of components.
246
+ ///
247
+ /// This is essentially an array of `rr_component_batch` with all batches
248
+ /// continuously in a single array.
249
+ typedef struct rr_component_column {
250
+ /// The component type used for the components inside the list array.
251
+ ///
252
+ /// This is *not* the type of the arrow list array itself, but of the underlying batch.
253
+ rr_component_type_handle component_type;
254
+
255
+ /// A ListArray with the datatype `List(component_type)`.
256
+ struct ArrowArray array;
257
+ } rr_component_column;
258
+
259
+ /// Describes whether an array is known to be sorted or not.
260
+ typedef uint32_t rr_sorting_status;
261
+
262
+ enum {
263
+ /// It's not known whether the array is sorted or not.
264
+ RR_SORTING_STATUS_UNKNOWN = 0,
265
+
266
+ /// The array is known to be sorted.
267
+ RR_SORTING_STATUS_SORTED = 1,
268
+
269
+ /// The array is known to be unsorted.
270
+ RR_SORTING_STATUS_UNSORTED = 2,
271
+ };
272
+
273
+ /// Describes the type of a timeline or time point.
274
+ typedef uint32_t rr_time_type;
275
+
276
+ enum {
277
+ // 0 no longer in use
278
+
279
+ /// Used e.g. for frames in a film.
280
+ RR_TIME_TYPE_SEQUENCE = 1,
281
+
282
+ /// Nanoseconds.
283
+ RR_TIME_TYPE_DURATION = 2,
284
+
285
+ /// Nanoseconds since Unix epoch (1970-01-01 00:00:00 UTC).
286
+ RR_TIME_TYPE_TIMESTAMP = 3,
287
+ };
288
+
289
+ /// Definition of a timeline.
290
+ typedef struct rr_timeline {
291
+ /// The name of the timeline.
292
+ rr_string name;
293
+
294
+ /// The type of the timeline.
295
+ rr_time_type type;
296
+ } rr_timeline;
297
+
298
+ /// A column of timestamps for a given timeline.
299
+ typedef struct rr_time_column {
300
+ /// The timeline this column belongs to.
301
+ rr_timeline timeline;
302
+
303
+ /// Time points as a primitive array of i64.
304
+ struct ArrowArray array;
305
+
306
+ /// The sorting order of the `times` array.
307
+ rr_sorting_status sorting_status;
308
+ } rr_time_column;
309
+
310
+ /// Error codes returned by the Rerun C SDK as part of `rr_error`.
311
+ ///
312
+ /// Category codes are used to group errors together, but are never returned directly.
313
+ typedef uint32_t rr_error_code;
314
+
315
+ enum {
316
+ RR_ERROR_CODE_OK = 0,
317
+
318
+ // Invalid argument errors.
319
+ _RR_ERROR_CODE_CATEGORY_ARGUMENT = 0x00000010,
320
+ RR_ERROR_CODE_UNEXPECTED_NULL_ARGUMENT,
321
+ RR_ERROR_CODE_INVALID_STRING_ARGUMENT,
322
+ RR_ERROR_CODE_INVALID_ENUM_VALUE,
323
+ RR_ERROR_CODE_INVALID_RECORDING_STREAM_HANDLE,
324
+ RR_ERROR_CODE_INVALID_SOCKET_ADDRESS,
325
+ RR_ERROR_CODE_INVALID_COMPONENT_TYPE_HANDLE,
326
+
327
+ // Recording stream errors
328
+ _RR_ERROR_CODE_CATEGORY_RECORDING_STREAM = 0x00000100,
329
+ RR_ERROR_CODE_RECORDING_STREAM_RUNTIME_FAILURE,
330
+ RR_ERROR_CODE_RECORDING_STREAM_CREATION_FAILURE,
331
+ RR_ERROR_CODE_RECORDING_STREAM_SAVE_FAILURE,
332
+ RR_ERROR_CODE_RECORDING_STREAM_STDOUT_FAILURE,
333
+ RR_ERROR_CODE_RECORDING_STREAM_SPAWN_FAILURE,
334
+ RR_ERROR_CODE_RECORDING_STREAM_CHUNK_VALIDATION_FAILURE,
335
+
336
+ // Arrow data processing errors.
337
+ _RR_ERROR_CODE_CATEGORY_ARROW = 0x00001000,
338
+ RR_ERROR_CODE_ARROW_FFI_SCHEMA_IMPORT_ERROR,
339
+ RR_ERROR_CODE_ARROW_FFI_ARRAY_IMPORT_ERROR,
340
+
341
+ // Utility errors.
342
+ _RR_ERROR_CODE_CATEGORY_UTILITIES = 0x00010000,
343
+ RR_ERROR_CODE_VIDEO_LOAD_ERROR,
344
+
345
+ // Generic errors.
346
+ RR_ERROR_CODE_UNKNOWN,
347
+ };
348
+
349
+ /// Error outcome object (success or error) that may be filled for fallible operations.
350
+ ///
351
+ /// Passing this error struct is always optional, and you can pass `NULL` if you don't care about
352
+ /// the error in which case failure will be silent.
353
+ /// If no error occurs, the error struct will be left untouched.
354
+ typedef struct rr_error {
355
+ /// Error code indicating the type of error.
356
+ rr_error_code code;
357
+
358
+ /// Human readable description of the error in null-terminated UTF8.
359
+ //
360
+ // NOTE: You must update `CError::MAX_MESSAGE_SIZE_BYTES` too if you modify this value.
361
+ char description[2048];
362
+ } rr_error;
363
+
364
+ // ----------------------------------------------------------------------------
365
+ // Functions:
366
+
367
+ /// Returns a human-readable version string of the Rerun C SDK.
368
+ ///
369
+ /// This should match the string in `RERUN_SDK_HEADER_VERSION`.
370
+ /// If not, the SDK's binary and the C header are out of sync.
371
+ extern const char* rr_version_string(void);
372
+
373
+ /// Spawns a new Rerun Viewer process from an executable available in PATH, ready to
374
+ /// listen for incoming gRPC connections.
375
+ ///
376
+ /// `spawn_opts` can be set to NULL to use the recommended defaults.
377
+ ///
378
+ /// If a Rerun Viewer is already listening on this gRPC port, this does nothing.
379
+ extern void rr_spawn(const rr_spawn_options* spawn_opts, rr_error* error);
380
+
381
+ /// Registers a new component type to be used in `rr_component_batch`.
382
+ ///
383
+ /// A component with a given name can only be registered once.
384
+ /// Takes ownership of the passed arrow schema and will release it once it is no longer needed.
385
+ extern rr_component_type_handle rr_register_component_type(
386
+ rr_component_type component_type, rr_error* error
387
+ );
388
+
389
+ /// Creates a new recording stream to log to.
390
+ ///
391
+ /// You must call this at least once to enable logging.
392
+ ///
393
+ /// Usually you only have one recording stream, so you can call
394
+ /// `rr_recording_stream_set_global` afterwards once to make it available globally via
395
+ /// `RR_REC_STREAM_CURRENT_RECORDING` and `RR_REC_STREAM_CURRENT_BLUEPRINT` respectively.
396
+ ///
397
+ /// @return A handle to the recording stream, or null if an error occurred.
398
+ extern rr_recording_stream rr_recording_stream_new(
399
+ const rr_store_info* store_info, bool default_enabled, rr_error* error
400
+ );
401
+
402
+ /// Free the given recording stream. The handle will be invalid after this.
403
+ ///
404
+ /// Flushes the stream before freeing it, but does *not* block.
405
+ ///
406
+ /// Does nothing for `RR_REC_STREAM_CURRENT_RECORDING` and `RR_REC_STREAM_CURRENT_BLUEPRINT`.
407
+ ///
408
+ /// No-op for destroyed/non-existing streams.
409
+ extern void rr_recording_stream_free(rr_recording_stream stream);
410
+
411
+ /// Replaces the currently active recording of the specified type in the global scope with
412
+ /// the specified one.
413
+ extern void rr_recording_stream_set_global(rr_recording_stream stream, rr_store_kind store_kind);
414
+
415
+ /// Replaces the currently active recording of the specified type in the thread-local scope
416
+ /// with the specified one.
417
+ extern void rr_recording_stream_set_thread_local(
418
+ rr_recording_stream stream, rr_store_kind store_kind
419
+ );
420
+
421
+ /// Check whether the recording stream is enabled.
422
+ extern bool rr_recording_stream_is_enabled(rr_recording_stream stream, rr_error* error);
423
+
424
+ /// Connect to a remote Rerun Viewer on the given URL.
425
+ ///
426
+ /// Requires that you first start a Rerun Viewer by typing 'rerun' in a terminal.
427
+ ///
428
+ /// url:
429
+ /// The scheme must be one of `rerun://`, `rerun+http://`, or `rerun+https://`,
430
+ /// and the pathname must be `/proxy`.
431
+ ///
432
+ /// The default is `rerun+http://127.0.0.1:9876/proxy`.
433
+ ///
434
+ /// flush_timeout_sec:
435
+ /// The minimum time the SDK will wait during a flush before potentially
436
+ /// dropping data if progress is not being made. Passing a negative value indicates no timeout,
437
+ /// and can cause a call to `flush` to block indefinitely.
438
+ ///
439
+ /// This function returns immediately and will only raise an error for argument parsing errors,
440
+ /// not for connection errors as these happen asynchronously.
441
+ extern void rr_recording_stream_connect_grpc(
442
+ rr_recording_stream stream, rr_string url, float flush_timeout_sec, rr_error* error
443
+ );
444
+
445
+ /// Swaps the underlying sink for a gRPC server sink pre-configured to listen on `rerun+http://{bind_ip}:{port}/proxy`.
446
+ ///
447
+ /// The gRPC server will buffer all log data in memory so that late connecting viewers will get all the data.
448
+ /// You can limit the amount of data buffered by the gRPC server with the `server_memory_limit` argument.
449
+ /// Once reached, the earliest logged data will be dropped. Static data is never dropped.
450
+ extern void rr_recording_stream_serve_grpc(
451
+ rr_recording_stream stream, rr_string bind_ip, uint16_t port, rr_string server_memory_limit,
452
+ rr_error* error
453
+ );
454
+
455
+ /// Spawns a new Rerun Viewer process from an executable available in PATH, then connects to it
456
+ /// over gRPC.
457
+ ///
458
+ /// This function returns immediately and will only raise an error for argument parsing errors,
459
+ /// not for connection errors as these happen asynchronously.
460
+ ///
461
+ /// ## Parameters
462
+ ///
463
+ /// spawn_opts:
464
+ /// Configuration of the spawned process.
465
+ /// Refer to `rr_spawn_options` documentation for details.
466
+ /// Passing null is valid and will result in the recommended defaults.
467
+ ///
468
+ /// flush_timeout_sec:
469
+ /// The minimum time the SDK will wait during a flush before potentially
470
+ /// dropping data if progress is not being made. Passing a negative value indicates no timeout,
471
+ /// and can cause a call to `flush` to block indefinitely.
472
+ extern void rr_recording_stream_spawn(
473
+ rr_recording_stream stream, const rr_spawn_options* spawn_opts, float flush_timeout_sec,
474
+ rr_error* error
475
+ );
476
+
477
+ /// Stream all log-data to a given `.rrd` file.
478
+ ///
479
+ /// This function returns immediately.
480
+ extern void rr_recording_stream_save(rr_recording_stream stream, rr_string path, rr_error* error);
481
+
482
+ /// Stream all log-data to stdout.
483
+ ///
484
+ /// Pipe the result into the Rerun Viewer to visualize it.
485
+ ///
486
+ /// If there isn't any listener at the other end of the pipe, the `RecordingStream` will
487
+ /// default back to `buffered` mode, in order not to break the user's terminal.
488
+ ///
489
+ /// This function returns immediately.
490
+ extern void rr_recording_stream_stdout(rr_recording_stream stream, rr_error* error);
491
+
492
+ /// Initiates a flush the batching pipeline and waits for it to propagate.
493
+ ///
494
+ /// See `rr_recording_stream` docs for ordering semantics and multithreading guarantees.
495
+ /// No-op for destroyed/non-existing streams.
496
+ extern void rr_recording_stream_flush_blocking(rr_recording_stream stream);
497
+
498
+ /// Set the current index value of the recording, for a specific timeline, for the current calling thread.
499
+ ///
500
+ /// Used for all subsequent logging performed from this same thread, until the next call
501
+ /// to one of the time setting methods.
502
+ ///
503
+ /// For example:
504
+ /// `rr_recording_stream_set_time_sequence(stream, "frame_nr", RR_TIME_TYPE_SEQUENCE, frame_nr, &err)`.
505
+ extern void rr_recording_stream_set_time(
506
+ rr_recording_stream stream, rr_string timeline_name, rr_time_type time_type, int64_t value,
507
+ rr_error* error
508
+ );
509
+
510
+ /// Stops logging to the specified timeline for subsequent log calls.
511
+ ///
512
+ /// The timeline is still there, but will not be updated with any new data.
513
+ ///
514
+ /// No-op if the timeline doesn't exist.
515
+ void rr_recording_stream_disable_timeline(
516
+ rr_recording_stream stream, rr_string timeline_name, rr_error* error
517
+ );
518
+
519
+ /// Clears out the current time of the recording, for the current calling thread.
520
+ ///
521
+ /// Used for all subsequent logging performed from this same thread, until the next call
522
+ /// to one of the time setting methods.
523
+ ///
524
+ /// No-op for destroyed/non-existing streams.
525
+ extern void rr_recording_stream_reset_time(rr_recording_stream stream);
526
+
527
+ /// Log the given data to the given stream.
528
+ ///
529
+ /// If `inject_time` is set to `true`, the row's timestamp data will be
530
+ /// overridden using the recording streams internal clock.
531
+ ///
532
+ /// Takes ownership of the passed data component batches and will release underlying
533
+ /// arrow data once it is no longer needed.
534
+ /// Any pointers passed via `rr_string` can be safely freed after this call.
535
+ extern void rr_recording_stream_log(
536
+ rr_recording_stream stream, rr_data_row data_row, bool inject_time, rr_error* error
537
+ );
538
+
539
+ /// Logs the file at the given `path` using all `DataLoader`s available.
540
+ ///
541
+ /// A single `path` might be handled by more than one loader.
542
+ ///
543
+ /// This method blocks until either at least one `DataLoader` starts streaming data in
544
+ /// or all of them fail.
545
+ ///
546
+ /// See <https://www.rerun.io/docs/reference/data-loaders/overview> for more information.
547
+ extern void rr_recording_stream_log_file_from_path(
548
+ rr_recording_stream stream, rr_string path, rr_string entity_path_prefix, bool static_,
549
+ rr_error* error
550
+ );
551
+
552
+ /// Logs the given `contents` using all `DataLoader`s available.
553
+ ///
554
+ /// A single `path` might be handled by more than one loader.
555
+ ///
556
+ /// This method blocks until either at least one `DataLoader` starts streaming data in
557
+ /// or all of them fail.
558
+ ///
559
+ /// See <https://www.rerun.io/docs/reference/data-loaders/overview> for more information.
560
+ extern void rr_recording_stream_log_file_from_contents(
561
+ rr_recording_stream stream, rr_string path, rr_bytes contents, rr_string entity_path_prefix,
562
+ bool static_, rr_error* error
563
+ );
564
+
565
+ /// Sends the columns of components to the stream.
566
+ ///
567
+ /// Unlike the regular `log` API, which is row-oriented, this API lets you submit the data
568
+ /// in a columnar form. The lengths of all `time_columns` and `component_columns`
569
+ /// must match. All data that occurs at the same index across the different time and components
570
+ /// arrays will act as a single logical row.
571
+ ///
572
+ /// Note that this API ignores any stateful time set on the log stream via the
573
+ /// `rr_recording_stream_set_time_sequence`/`rr_recording_stream_set_time_nanos`/etc. APIs.
574
+ /// Furthermore, this will _not_ inject the default timelines `log_tick` and `log_time` timeline columns.
575
+ ///
576
+ /// The contents of `time_columns` and `component_columns` AFTER this call is undefined.
577
+ extern void rr_recording_stream_send_columns(
578
+ rr_recording_stream stream, rr_string entity_path, //
579
+ rr_time_column* time_columns, uint32_t num_time_columns, //
580
+ rr_component_column* component_columns, uint32_t num_component_columns, //
581
+ rr_error* error
582
+ );
583
+
584
+ // ----------------------------------------------------------------------------
585
+ // Other utilities
586
+
587
+ /// Allocation method for `rr_video_asset_read_frame_timestamps_nanos`.
588
+ typedef int64_t* (*rr_alloc_timestamps)(void* alloc_context, uint32_t num_timestamps);
589
+
590
+ /// Determines the presentation timestamps of all frames inside the video.
591
+ ///
592
+ /// Returned timestamps are in nanoseconds since start and are guaranteed to be monotonically increasing.
593
+ ///
594
+ /// \param media_type
595
+ /// If not specified (null or empty string), the media type will be guessed from the data.
596
+ /// \param alloc_func
597
+ /// Function used to allocate memory for the returned timestamps.
598
+ /// Guaranteed to be called exactly once with the `alloc_context` pointer as argument.
599
+ extern int64_t* rr_video_asset_read_frame_timestamps_nanos(
600
+ const uint8_t* video_bytes, uint64_t video_bytes_len, rr_string media_type, void* alloc_context,
601
+ rr_alloc_timestamps alloc_timestamps, rr_error* error
602
+ );
603
+
604
+ // ----------------------------------------------------------------------------
605
+ // Private functions
606
+
607
+ /// PRIVATE FUNCTION: do not use.
608
+ ///
609
+ /// Escape a single part of an entity path, returning an new null-terminated string.
610
+ ///
611
+ /// The returned string must be freed with `_rr_free_string`.
612
+ ///
613
+ /// Returns `nullptr` on failure (e.g. invalid UTF8, ore null bytes in the string).
614
+ extern char* _rr_escape_entity_path_part(rr_string part);
615
+
616
+ /// PRIVATE FUNCTION: do not use.
617
+ ///
618
+ /// Must only be called with the results from `_rr_escape_entity_path_part`.
619
+ extern void _rr_free_string(char* string);
620
+
621
+ // ----------------------------------------------------------------------------
622
+
623
+ #ifdef __cplusplus
624
+ }
625
+ #endif
626
+
627
+ #endif // RERUN_H
@@ -0,0 +1,28 @@
1
+ /// Returns the version of the Rerun C SDK.
2
+ ///
3
+ /// This should match the string returned by `rr_version_string` (C) or `rerun::version_string` (C++).
4
+ /// If not, the SDK's binary and the C header are out of sync.
5
+ #define RERUN_SDK_HEADER_VERSION "0.23.3"
6
+
7
+ /// Major version of the Rerun C SDK.
8
+ #define RERUN_SDK_HEADER_VERSION_MAJOR 0
9
+
10
+ /// Minor version of the Rerun C SDK.
11
+ #define RERUN_SDK_HEADER_VERSION_MINOR 23
12
+
13
+ /// Patch version of the Rerun C SDK.
14
+ #define RERUN_SDK_HEADER_VERSION_PATCH 3
15
+
16
+ /// Is the Rerun library version greater or equal to this?
17
+ ///
18
+ /// Example usage:
19
+ /// ```
20
+ /// #if RERUN_VERSION_GE(0, 18, 0)
21
+ /// // Use features from Rerun 0.18
22
+ /// #endif
23
+ /// ```
24
+ #define RERUN_VERSION_GE(major, minor, patch) \
25
+ ((major) == RERUN_SDK_HEADER_VERSION_MAJOR \
26
+ ? ((minor) == RERUN_SDK_HEADER_VERSION_MINOR ? (patch) <= RERUN_SDK_HEADER_VERSION_PATCH \
27
+ : (minor) <= RERUN_SDK_HEADER_VERSION_MINOR) \
28
+ : (major) <= RERUN_SDK_HEADER_VERSION_MAJOR)