pymomentum-cpu 0.1.84.post0__cp313-cp313-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.

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 +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 +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 +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 +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 +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 +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 +117 -0
  97. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -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 +161 -0
  128. include/momentum/io/fbx/fbx_memory_stream.h +66 -0
  129. include/momentum/io/fbx/openfbx_loader.h +62 -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 +30 -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 +56 -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 +282 -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/cmake/axel/axel-config.cmake +45 -0
  454. lib/cmake/axel/axelTargets-release.cmake +19 -0
  455. lib/cmake/axel/axelTargets.cmake +108 -0
  456. lib/cmake/momentum/Findre2.cmake +52 -0
  457. lib/cmake/momentum/momentum-config.cmake +67 -0
  458. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  459. lib/cmake/momentum/momentumTargets.cmake +377 -0
  460. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  461. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  462. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  463. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  464. lib/libarrow.a +0 -0
  465. lib/libarrow_bundled_dependencies.a +0 -0
  466. lib/libaxel.a +0 -0
  467. lib/libmomentum_app_utils.a +0 -0
  468. lib/libmomentum_character.a +0 -0
  469. lib/libmomentum_character_sequence_solver.a +0 -0
  470. lib/libmomentum_character_solver.a +0 -0
  471. lib/libmomentum_common.a +0 -0
  472. lib/libmomentum_diff_ik.a +0 -0
  473. lib/libmomentum_io.a +0 -0
  474. lib/libmomentum_io_common.a +0 -0
  475. lib/libmomentum_io_fbx.a +0 -0
  476. lib/libmomentum_io_gltf.a +0 -0
  477. lib/libmomentum_io_legacy_json.a +0 -0
  478. lib/libmomentum_io_marker.a +0 -0
  479. lib/libmomentum_io_motion.a +0 -0
  480. lib/libmomentum_io_shape.a +0 -0
  481. lib/libmomentum_io_skeleton.a +0 -0
  482. lib/libmomentum_io_urdf.a +0 -0
  483. lib/libmomentum_marker_tracker.a +0 -0
  484. lib/libmomentum_math.a +0 -0
  485. lib/libmomentum_online_qr.a +0 -0
  486. lib/libmomentum_process_markers.a +0 -0
  487. lib/libmomentum_rerun.a +0 -0
  488. lib/libmomentum_simd_constraints.a +0 -0
  489. lib/libmomentum_simd_generalized_loss.a +0 -0
  490. lib/libmomentum_skeleton.a +0 -0
  491. lib/libmomentum_solver.a +0 -0
  492. lib/librerun_c__macos_arm64.a +0 -0
  493. lib/librerun_sdk.a +0 -0
  494. pymomentum/axel.cpython-313-darwin.so +0 -0
  495. pymomentum/backend/__init__.py +16 -0
  496. pymomentum/backend/skel_state_backend.py +631 -0
  497. pymomentum/backend/trs_backend.py +889 -0
  498. pymomentum/backend/utils.py +224 -0
  499. pymomentum/geometry.cpython-313-darwin.so +0 -0
  500. pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
  501. pymomentum/quaternion.py +740 -0
  502. pymomentum/skel_state.py +514 -0
  503. pymomentum/solver.cpython-313-darwin.so +0 -0
  504. pymomentum/solver2.cpython-313-darwin.so +0 -0
  505. pymomentum/torch/character.py +863 -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.84.post0.dist-info/METADATA +126 -0
  510. pymomentum_cpu-0.1.84.post0.dist-info/RECORD +512 -0
  511. pymomentum_cpu-0.1.84.post0.dist-info/WHEEL +5 -0
  512. pymomentum_cpu-0.1.84.post0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,206 @@
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/graph_nodes.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/color.hpp"
10
+ #include "../components/graph_node.hpp"
11
+ #include "../components/position2d.hpp"
12
+ #include "../components/radius.hpp"
13
+ #include "../components/show_labels.hpp"
14
+ #include "../components/text.hpp"
15
+ #include "../indicator_component.hpp"
16
+ #include "../result.hpp"
17
+
18
+ #include <cstdint>
19
+ #include <optional>
20
+ #include <utility>
21
+ #include <vector>
22
+
23
+ namespace rerun::archetypes {
24
+ /// **Archetype**: A list of nodes in a graph with optional labels, colors, etc.
25
+ ///
26
+ /// ## Example
27
+ ///
28
+ /// ### Simple directed graph
29
+ /// ![image](https://static.rerun.io/graph_directed/ca29a37b65e1e0b6482251dce401982a0bc568fa/full.png)
30
+ ///
31
+ /// ```cpp
32
+ /// #include <rerun.hpp>
33
+ ///
34
+ /// int main() {
35
+ /// const auto rec = rerun::RecordingStream("rerun_example_graph_directed");
36
+ /// rec.spawn().exit_on_failure();
37
+ ///
38
+ /// rec.log(
39
+ /// "simple",
40
+ /// rerun::GraphNodes({"a", "b", "c"})
41
+ /// .with_positions({{0.0, 100.0}, {-100.0, 0.0}, {100.0, 0.0}})
42
+ /// .with_labels({"A", "B", "C"}),
43
+ /// rerun::GraphEdges({{"a", "b"}, {"b", "c"}, {"c", "a"}})
44
+ /// // Graphs are undirected by default.
45
+ /// .with_graph_type(rerun::components::GraphType::Directed)
46
+ /// );
47
+ /// }
48
+ /// ```
49
+ struct GraphNodes {
50
+ /// A list of node IDs.
51
+ std::optional<ComponentBatch> node_ids;
52
+
53
+ /// Optional center positions of the nodes.
54
+ std::optional<ComponentBatch> positions;
55
+
56
+ /// Optional colors for the boxes.
57
+ std::optional<ComponentBatch> colors;
58
+
59
+ /// Optional text labels for the node.
60
+ std::optional<ComponentBatch> labels;
61
+
62
+ /// Optional choice of whether the text labels should be shown by default.
63
+ std::optional<ComponentBatch> show_labels;
64
+
65
+ /// Optional radii for nodes.
66
+ std::optional<ComponentBatch> radii;
67
+
68
+ public:
69
+ static constexpr const char IndicatorComponentName[] =
70
+ "rerun.components.GraphNodesIndicator";
71
+
72
+ /// Indicator component, used to identify the archetype when converting to a list of components.
73
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
74
+ /// The name of the archetype as used in `ComponentDescriptor`s.
75
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.GraphNodes";
76
+
77
+ /// `ComponentDescriptor` for the `node_ids` field.
78
+ static constexpr auto Descriptor_node_ids = ComponentDescriptor(
79
+ ArchetypeName, "node_ids",
80
+ Loggable<rerun::components::GraphNode>::Descriptor.component_name
81
+ );
82
+ /// `ComponentDescriptor` for the `positions` field.
83
+ static constexpr auto Descriptor_positions = ComponentDescriptor(
84
+ ArchetypeName, "positions",
85
+ Loggable<rerun::components::Position2D>::Descriptor.component_name
86
+ );
87
+ /// `ComponentDescriptor` for the `colors` field.
88
+ static constexpr auto Descriptor_colors = ComponentDescriptor(
89
+ ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
90
+ );
91
+ /// `ComponentDescriptor` for the `labels` field.
92
+ static constexpr auto Descriptor_labels = ComponentDescriptor(
93
+ ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
94
+ );
95
+ /// `ComponentDescriptor` for the `show_labels` field.
96
+ static constexpr auto Descriptor_show_labels = ComponentDescriptor(
97
+ ArchetypeName, "show_labels",
98
+ Loggable<rerun::components::ShowLabels>::Descriptor.component_name
99
+ );
100
+ /// `ComponentDescriptor` for the `radii` field.
101
+ static constexpr auto Descriptor_radii = ComponentDescriptor(
102
+ ArchetypeName, "radii", Loggable<rerun::components::Radius>::Descriptor.component_name
103
+ );
104
+
105
+ public:
106
+ GraphNodes() = default;
107
+ GraphNodes(GraphNodes&& other) = default;
108
+ GraphNodes(const GraphNodes& other) = default;
109
+ GraphNodes& operator=(const GraphNodes& other) = default;
110
+ GraphNodes& operator=(GraphNodes&& other) = default;
111
+
112
+ explicit GraphNodes(Collection<rerun::components::GraphNode> _node_ids)
113
+ : node_ids(ComponentBatch::from_loggable(std::move(_node_ids), Descriptor_node_ids)
114
+ .value_or_throw()) {}
115
+
116
+ /// Update only some specific fields of a `GraphNodes`.
117
+ static GraphNodes update_fields() {
118
+ return GraphNodes();
119
+ }
120
+
121
+ /// Clear all the fields of a `GraphNodes`.
122
+ static GraphNodes clear_fields();
123
+
124
+ /// A list of node IDs.
125
+ GraphNodes with_node_ids(const Collection<rerun::components::GraphNode>& _node_ids) && {
126
+ node_ids =
127
+ ComponentBatch::from_loggable(_node_ids, Descriptor_node_ids).value_or_throw();
128
+ return std::move(*this);
129
+ }
130
+
131
+ /// Optional center positions of the nodes.
132
+ GraphNodes with_positions(const Collection<rerun::components::Position2D>& _positions) && {
133
+ positions =
134
+ ComponentBatch::from_loggable(_positions, Descriptor_positions).value_or_throw();
135
+ return std::move(*this);
136
+ }
137
+
138
+ /// Optional colors for the boxes.
139
+ GraphNodes with_colors(const Collection<rerun::components::Color>& _colors) && {
140
+ colors = ComponentBatch::from_loggable(_colors, Descriptor_colors).value_or_throw();
141
+ return std::move(*this);
142
+ }
143
+
144
+ /// Optional text labels for the node.
145
+ GraphNodes with_labels(const Collection<rerun::components::Text>& _labels) && {
146
+ labels = ComponentBatch::from_loggable(_labels, Descriptor_labels).value_or_throw();
147
+ return std::move(*this);
148
+ }
149
+
150
+ /// Optional choice of whether the text labels should be shown by default.
151
+ GraphNodes with_show_labels(const rerun::components::ShowLabels& _show_labels) && {
152
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
153
+ .value_or_throw();
154
+ return std::move(*this);
155
+ }
156
+
157
+ /// This method makes it possible to pack multiple `show_labels` in a single component batch.
158
+ ///
159
+ /// This only makes sense when used in conjunction with `columns`. `with_show_labels` should
160
+ /// be used when logging a single row's worth of data.
161
+ GraphNodes with_many_show_labels(
162
+ const Collection<rerun::components::ShowLabels>& _show_labels
163
+ ) && {
164
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
165
+ .value_or_throw();
166
+ return std::move(*this);
167
+ }
168
+
169
+ /// Optional radii for nodes.
170
+ GraphNodes with_radii(const Collection<rerun::components::Radius>& _radii) && {
171
+ radii = ComponentBatch::from_loggable(_radii, Descriptor_radii).value_or_throw();
172
+ return std::move(*this);
173
+ }
174
+
175
+ /// Partitions the component data into multiple sub-batches.
176
+ ///
177
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
178
+ /// instead, via `ComponentBatch::partitioned`.
179
+ ///
180
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
181
+ ///
182
+ /// The specified `lengths` must sum to the total length of the component batch.
183
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
184
+
185
+ /// Partitions the component data into unit-length sub-batches.
186
+ ///
187
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
188
+ /// where `n` is automatically guessed.
189
+ Collection<ComponentColumn> columns();
190
+ };
191
+
192
+ } // namespace rerun::archetypes
193
+
194
+ namespace rerun {
195
+ /// \private
196
+ template <typename T>
197
+ struct AsComponents;
198
+
199
+ /// \private
200
+ template <>
201
+ struct AsComponents<archetypes::GraphNodes> {
202
+ /// Serialize all set component batches.
203
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::GraphNodes& archetype
204
+ );
205
+ };
206
+ } // namespace rerun
@@ -0,0 +1,434 @@
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/image.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/draw_order.hpp"
10
+ #include "../components/image_buffer.hpp"
11
+ #include "../components/image_format.hpp"
12
+ #include "../components/opacity.hpp"
13
+ #include "../image_utils.hpp"
14
+ #include "../indicator_component.hpp"
15
+ #include "../result.hpp"
16
+
17
+ #include <cstdint>
18
+ #include <optional>
19
+ #include <utility>
20
+ #include <vector>
21
+
22
+ namespace rerun::archetypes {
23
+ /// **Archetype**: A monochrome or color image.
24
+ ///
25
+ /// See also `archetypes::DepthImage` and `archetypes::SegmentationImage`.
26
+ ///
27
+ /// Rerun also supports compressed images (JPEG, PNG, …), using `archetypes::EncodedImage`.
28
+ /// For images that refer to video frames see `archetypes::VideoFrameReference`.
29
+ /// Compressing images or using video data instead can save a lot of bandwidth and memory.
30
+ ///
31
+ /// The raw image data is stored as a single buffer of bytes in a `components::Blob`.
32
+ /// The meaning of these bytes is determined by the `components::ImageFormat` which specifies the resolution
33
+ /// and the pixel format (e.g. RGB, RGBA, …).
34
+ ///
35
+ /// The order of dimensions in the underlying `components::Blob` follows the typical
36
+ /// row-major, interleaved-pixel image format.
37
+ ///
38
+ /// Since the underlying [rerun::components::Blob] uses `rerun::Collection` internally,
39
+ /// data can be passed in without a copy from raw pointers or by reference from `std::vector`/`std::array`/c-arrays.
40
+ /// If needed, this "borrow-behavior" can be extended by defining your own `rerun::CollectionAdapter`.
41
+ ///
42
+ /// ## Examples
43
+ ///
44
+ /// ### image_simple:
45
+ /// ![image](https://static.rerun.io/image_simple/06ba7f8582acc1ffb42a7fd0006fad7816f3e4e4/full.png)
46
+ ///
47
+ /// ```cpp
48
+ /// #include <rerun.hpp>
49
+ ///
50
+ /// #include <vector>
51
+ ///
52
+ /// int main() {
53
+ /// const auto rec = rerun::RecordingStream("rerun_example_image");
54
+ /// rec.spawn().exit_on_failure();
55
+ ///
56
+ /// // Create a synthetic image.
57
+ /// const int HEIGHT = 200;
58
+ /// const int WIDTH = 300;
59
+ /// std::vector<uint8_t> data(WIDTH * HEIGHT * 3, 0);
60
+ /// for (size_t i = 0; i <data.size(); i += 3) {
61
+ /// data[i] = 255;
62
+ /// }
63
+ /// for (size_t y = 50; y <150; ++y) {
64
+ /// for (size_t x = 50; x <150; ++x) {
65
+ /// data[(y * WIDTH + x) * 3 + 0] = 0;
66
+ /// data[(y * WIDTH + x) * 3 + 1] = 255;
67
+ /// data[(y * WIDTH + x) * 3 + 2] = 0;
68
+ /// }
69
+ /// }
70
+ ///
71
+ /// rec.log("image", rerun::Image::from_rgb24(data, {WIDTH, HEIGHT}));
72
+ /// }
73
+ /// ```
74
+ ///
75
+ /// ### Logging images with various formats
76
+ /// ![image](https://static.rerun.io/image_formats/182a233fb4d0680eb31912a82f328ddaaa66324e/full.png)
77
+ ///
78
+ /// ```cpp
79
+ /// #include <algorithm>
80
+ /// #include <cstdint>
81
+ /// #include <vector>
82
+ ///
83
+ /// #include <rerun.hpp>
84
+ ///
85
+ /// int main() {
86
+ /// const auto rec = rerun::RecordingStream("rerun_example_image_formats");
87
+ /// rec.spawn().exit_on_failure();
88
+ ///
89
+ /// // Simple gradient image
90
+ /// std::vector<uint8_t> image(256 * 256 * 3);
91
+ /// for (size_t y = 0; y <256; ++y) {
92
+ /// for (size_t x = 0; x <256; ++x) {
93
+ /// image[(y * 256 + x) * 3 + 0] = static_cast<uint8_t>(x);
94
+ /// image[(y * 256 + x) * 3 + 1] = static_cast<uint8_t>(std::min<size_t>(255, x + y));
95
+ /// image[(y * 256 + x) * 3 + 2] = static_cast<uint8_t>(y);
96
+ /// }
97
+ /// }
98
+ ///
99
+ /// // RGB image
100
+ /// rec.log("image_rgb", rerun::Image::from_rgb24(image, {256, 256}));
101
+ ///
102
+ /// // Green channel only (Luminance)
103
+ /// std::vector<uint8_t> green_channel(256 * 256);
104
+ /// for (size_t i = 0; i <256 * 256; ++i) {
105
+ /// green_channel[i] = image[i * 3 + 1];
106
+ /// }
107
+ /// rec.log(
108
+ /// "image_green_only",
109
+ /// rerun::Image(rerun::borrow(green_channel), {256, 256}, rerun::ColorModel::L)
110
+ /// );
111
+ ///
112
+ /// // BGR image
113
+ /// std::vector<uint8_t> bgr_image(256 * 256 * 3);
114
+ /// for (size_t i = 0; i <256 * 256; ++i) {
115
+ /// bgr_image[i * 3 + 0] = image[i * 3 + 2];
116
+ /// bgr_image[i * 3 + 1] = image[i * 3 + 1];
117
+ /// bgr_image[i * 3 + 2] = image[i * 3 + 0];
118
+ /// }
119
+ /// rec.log(
120
+ /// "image_bgr",
121
+ /// rerun::Image(rerun::borrow(bgr_image), {256, 256}, rerun::ColorModel::BGR)
122
+ /// );
123
+ ///
124
+ /// // New image with Separate Y/U/V planes with 4:2:2 chroma downsampling
125
+ /// std::vector<uint8_t> yuv_bytes(256 * 256 + 128 * 256 * 2);
126
+ /// std::fill_n(yuv_bytes.begin(), 256 * 256, static_cast<uint8_t>(128)); // Fixed value for Y
127
+ /// size_t u_plane_offset = 256 * 256;
128
+ /// size_t v_plane_offset = u_plane_offset + 128 * 256;
129
+ /// for (size_t y = 0; y <256; ++y) {
130
+ /// for (size_t x = 0; x <128; ++x) {
131
+ /// auto coord = y * 128 + x;
132
+ /// yuv_bytes[u_plane_offset + coord] = static_cast<uint8_t>(x * 2); // Gradient for U
133
+ /// yuv_bytes[v_plane_offset + coord] = static_cast<uint8_t>(y); // Gradient for V
134
+ /// }
135
+ /// }
136
+ /// rec.log(
137
+ /// "image_yuv422",
138
+ /// rerun::Image(rerun::borrow(yuv_bytes), {256, 256}, rerun::PixelFormat::Y_U_V16_FullRange)
139
+ /// );
140
+ ///
141
+ /// return 0;
142
+ /// }
143
+ /// ```
144
+ struct Image {
145
+ /// The raw image data.
146
+ std::optional<ComponentBatch> buffer;
147
+
148
+ /// The format of the image.
149
+ std::optional<ComponentBatch> format;
150
+
151
+ /// Opacity of the image, useful for layering several images.
152
+ ///
153
+ /// Defaults to 1.0 (fully opaque).
154
+ std::optional<ComponentBatch> opacity;
155
+
156
+ /// An optional floating point value that specifies the 2D drawing order.
157
+ ///
158
+ /// Objects with higher values are drawn on top of those with lower values.
159
+ /// Defaults to `-10.0`.
160
+ std::optional<ComponentBatch> draw_order;
161
+
162
+ public:
163
+ static constexpr const char IndicatorComponentName[] = "rerun.components.ImageIndicator";
164
+
165
+ /// Indicator component, used to identify the archetype when converting to a list of components.
166
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
167
+ /// The name of the archetype as used in `ComponentDescriptor`s.
168
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.Image";
169
+
170
+ /// `ComponentDescriptor` for the `buffer` field.
171
+ static constexpr auto Descriptor_buffer = ComponentDescriptor(
172
+ ArchetypeName, "buffer",
173
+ Loggable<rerun::components::ImageBuffer>::Descriptor.component_name
174
+ );
175
+ /// `ComponentDescriptor` for the `format` field.
176
+ static constexpr auto Descriptor_format = ComponentDescriptor(
177
+ ArchetypeName, "format",
178
+ Loggable<rerun::components::ImageFormat>::Descriptor.component_name
179
+ );
180
+ /// `ComponentDescriptor` for the `opacity` field.
181
+ static constexpr auto Descriptor_opacity = ComponentDescriptor(
182
+ ArchetypeName, "opacity",
183
+ Loggable<rerun::components::Opacity>::Descriptor.component_name
184
+ );
185
+ /// `ComponentDescriptor` for the `draw_order` field.
186
+ static constexpr auto Descriptor_draw_order = ComponentDescriptor(
187
+ ArchetypeName, "draw_order",
188
+ Loggable<rerun::components::DrawOrder>::Descriptor.component_name
189
+ );
190
+
191
+ public: // START of extensions from image_ext.cpp:
192
+ /// Construct an image from bytes and image format.
193
+ ///
194
+ /// @param bytes The raw image data as bytes.
195
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
196
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
197
+ /// The length of the data should be `W * H * image_format.bytes_per_pixel`.
198
+ /// @param format_ How the data should be interpreted.
199
+ Image(Collection<uint8_t> bytes, components::ImageFormat format_) {
200
+ if (bytes.size() != format_.image_format.num_bytes()) {
201
+ Error(
202
+ ErrorCode::InvalidTensorDimension,
203
+ "Image buffer has the wrong size. Got " + std::to_string(bytes.size()) +
204
+ " bytes, expected " + std::to_string(format_.image_format.num_bytes())
205
+ )
206
+ .handle();
207
+ }
208
+ *this = std::move(*this).with_buffer(bytes).with_format(format_);
209
+ }
210
+
211
+ /// Construct an image from resolution, pixel format and bytes.
212
+ ///
213
+ /// @param bytes The raw image data as bytes.
214
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
215
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
216
+ /// The length of the data should be `W * H * pixel_format.bytes_per_pixel`.
217
+ /// @param resolution The resolution of the image as {width, height}.
218
+ /// @param pixel_format How the data should be interpreted.
219
+ Image(
220
+ Collection<uint8_t> bytes, WidthHeight resolution, datatypes::PixelFormat pixel_format
221
+ )
222
+ : Image{std::move(bytes), datatypes::ImageFormat{resolution, pixel_format}} {}
223
+
224
+ /// Construct an image from resolution, color model, channel datatype and bytes.
225
+ ///
226
+ /// @param bytes The raw image data.
227
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
228
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
229
+ /// The length of the data should be `W * H * datatype.bytes * color_model.num_channels`.
230
+ /// @param resolution The resolution of the image as {width, height}.
231
+ /// @param color_model The color model of the pixel data.
232
+ /// @param datatype Datatype of the individual channels of the color model.
233
+ Image(
234
+ Collection<uint8_t> bytes, WidthHeight resolution, datatypes::ColorModel color_model,
235
+ datatypes::ChannelDatatype datatype
236
+ )
237
+ : Image(std::move(bytes), datatypes::ImageFormat(resolution, color_model, datatype)) {}
238
+
239
+ /// Construct an image from resolution, color model and elements,
240
+ /// inferring the channel datatype from the element type.
241
+ ///
242
+ /// @param elements Pixel data as a `rerun::Collection`.
243
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
244
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
245
+ /// The length of the data should be `W * H * color_model.num_channels`.
246
+ /// @param resolution The resolution of the image as {width, height}.
247
+ /// @param color_model The color model of the pixel data.
248
+ /// Each element in elements is interpreted as a single channel of the color model.
249
+ template <typename T>
250
+ Image(Collection<T> elements, WidthHeight resolution, datatypes::ColorModel color_model)
251
+ : Image(elements.to_uint8(), resolution, color_model, get_datatype(elements.data())) {}
252
+
253
+ /// Construct an image from resolution, color model and element pointer,
254
+ /// inferring the channel datatype from the element type.
255
+ ///
256
+ /// @param elements The raw image data.
257
+ /// ⚠️ Does not take ownership of the data, the caller must ensure the data outlives the image.
258
+ /// The number of elements is assumed to be `W * H * color_model.num_channels`.
259
+ /// @param resolution The resolution of the image as {width, height}.
260
+ /// @param color_model The color model of the pixel data.
261
+ /// Each element in elements is interpreted as a single channel of the color model.
262
+ template <typename T>
263
+ Image(const T* elements, WidthHeight resolution, datatypes::ColorModel color_model)
264
+ : Image(
265
+ rerun::Collection<uint8_t>::borrow(
266
+ reinterpret_cast<const uint8_t*>(elements),
267
+ resolution.width * resolution.height * color_model_channel_count(color_model)
268
+ ),
269
+ resolution, color_model, get_datatype(elements)
270
+ ) {}
271
+
272
+ /// Assumes single channel greyscale/luminance with 8-bit per value.
273
+ ///
274
+ /// @param bytes Pixel data as a `rerun::Collection`.
275
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
276
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
277
+ /// The length of the data should be `W * H`.
278
+ /// @param resolution The resolution of the image as {width, height}.
279
+ static Image from_greyscale8(Collection<uint8_t> bytes, WidthHeight resolution) {
280
+ return Image(
281
+ bytes,
282
+ resolution,
283
+ datatypes::ColorModel::L,
284
+ datatypes::ChannelDatatype::U8
285
+ );
286
+ }
287
+
288
+ /// Assumes RGB, 8-bit per channel, packed as `RGBRGBRGB…`.
289
+ ///
290
+ /// @param bytes Pixel data as a `rerun::Collection`.
291
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
292
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
293
+ /// The length of the data should be `W * H * 3`.
294
+ /// @param resolution The resolution of the image as {width, height}.
295
+ static Image from_rgb24(Collection<uint8_t> bytes, WidthHeight resolution) {
296
+ return Image(
297
+ bytes,
298
+ resolution,
299
+ datatypes::ColorModel::RGB,
300
+ datatypes::ChannelDatatype::U8
301
+ );
302
+ }
303
+
304
+ /// Assumes RGBA, 8-bit per channel, with separate alpha.
305
+ ///
306
+ /// @param bytes Pixel data as a `rerun::Collection`.
307
+ /// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
308
+ /// explicitly ahead of time with `rerun::Collection::take_ownership`.
309
+ /// The length of the data should be `W * H * 4`.
310
+ /// @param resolution The resolution of the image as {width, height}.
311
+ static Image from_rgba32(Collection<uint8_t> bytes, WidthHeight resolution) {
312
+ return Image(
313
+ bytes,
314
+ resolution,
315
+ datatypes::ColorModel::RGBA,
316
+ datatypes::ChannelDatatype::U8
317
+ );
318
+ }
319
+
320
+ // END of extensions from image_ext.cpp, start of generated code:
321
+
322
+ public:
323
+ Image() = default;
324
+ Image(Image&& other) = default;
325
+ Image(const Image& other) = default;
326
+ Image& operator=(const Image& other) = default;
327
+ Image& operator=(Image&& other) = default;
328
+
329
+ /// Update only some specific fields of a `Image`.
330
+ static Image update_fields() {
331
+ return Image();
332
+ }
333
+
334
+ /// Clear all the fields of a `Image`.
335
+ static Image clear_fields();
336
+
337
+ /// The raw image data.
338
+ Image with_buffer(const rerun::components::ImageBuffer& _buffer) && {
339
+ buffer = ComponentBatch::from_loggable(_buffer, Descriptor_buffer).value_or_throw();
340
+ return std::move(*this);
341
+ }
342
+
343
+ /// This method makes it possible to pack multiple `buffer` in a single component batch.
344
+ ///
345
+ /// This only makes sense when used in conjunction with `columns`. `with_buffer` should
346
+ /// be used when logging a single row's worth of data.
347
+ Image with_many_buffer(const Collection<rerun::components::ImageBuffer>& _buffer) && {
348
+ buffer = ComponentBatch::from_loggable(_buffer, Descriptor_buffer).value_or_throw();
349
+ return std::move(*this);
350
+ }
351
+
352
+ /// The format of the image.
353
+ Image with_format(const rerun::components::ImageFormat& _format) && {
354
+ format = ComponentBatch::from_loggable(_format, Descriptor_format).value_or_throw();
355
+ return std::move(*this);
356
+ }
357
+
358
+ /// This method makes it possible to pack multiple `format` in a single component batch.
359
+ ///
360
+ /// This only makes sense when used in conjunction with `columns`. `with_format` should
361
+ /// be used when logging a single row's worth of data.
362
+ Image with_many_format(const Collection<rerun::components::ImageFormat>& _format) && {
363
+ format = ComponentBatch::from_loggable(_format, Descriptor_format).value_or_throw();
364
+ return std::move(*this);
365
+ }
366
+
367
+ /// Opacity of the image, useful for layering several images.
368
+ ///
369
+ /// Defaults to 1.0 (fully opaque).
370
+ Image with_opacity(const rerun::components::Opacity& _opacity) && {
371
+ opacity = ComponentBatch::from_loggable(_opacity, Descriptor_opacity).value_or_throw();
372
+ return std::move(*this);
373
+ }
374
+
375
+ /// This method makes it possible to pack multiple `opacity` in a single component batch.
376
+ ///
377
+ /// This only makes sense when used in conjunction with `columns`. `with_opacity` should
378
+ /// be used when logging a single row's worth of data.
379
+ Image with_many_opacity(const Collection<rerun::components::Opacity>& _opacity) && {
380
+ opacity = ComponentBatch::from_loggable(_opacity, Descriptor_opacity).value_or_throw();
381
+ return std::move(*this);
382
+ }
383
+
384
+ /// An optional floating point value that specifies the 2D drawing order.
385
+ ///
386
+ /// Objects with higher values are drawn on top of those with lower values.
387
+ /// Defaults to `-10.0`.
388
+ Image with_draw_order(const rerun::components::DrawOrder& _draw_order) && {
389
+ draw_order =
390
+ ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
391
+ return std::move(*this);
392
+ }
393
+
394
+ /// This method makes it possible to pack multiple `draw_order` in a single component batch.
395
+ ///
396
+ /// This only makes sense when used in conjunction with `columns`. `with_draw_order` should
397
+ /// be used when logging a single row's worth of data.
398
+ Image with_many_draw_order(const Collection<rerun::components::DrawOrder>& _draw_order) && {
399
+ draw_order =
400
+ ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
401
+ return std::move(*this);
402
+ }
403
+
404
+ /// Partitions the component data into multiple sub-batches.
405
+ ///
406
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
407
+ /// instead, via `ComponentBatch::partitioned`.
408
+ ///
409
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
410
+ ///
411
+ /// The specified `lengths` must sum to the total length of the component batch.
412
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
413
+
414
+ /// Partitions the component data into unit-length sub-batches.
415
+ ///
416
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
417
+ /// where `n` is automatically guessed.
418
+ Collection<ComponentColumn> columns();
419
+ };
420
+
421
+ } // namespace rerun::archetypes
422
+
423
+ namespace rerun {
424
+ /// \private
425
+ template <typename T>
426
+ struct AsComponents;
427
+
428
+ /// \private
429
+ template <>
430
+ struct AsComponents<archetypes::Image> {
431
+ /// Serialize all set component batches.
432
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::Image& archetype);
433
+ };
434
+ } // namespace rerun