pymomentum-cpu 0.1.78.post11__cp312-cp312-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.cp312-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.cp312-win_amd64.pyd +0 -0
  500. pymomentum/marker_tracking.cp312-win_amd64.pyd +0 -0
  501. pymomentum/quaternion.py +740 -0
  502. pymomentum/skel_state.py +514 -0
  503. pymomentum/solver.cp312-win_amd64.pyd +0 -0
  504. pymomentum/solver2.cp312-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,293 @@
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/boxes2d.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/class_id.hpp"
10
+ #include "../components/color.hpp"
11
+ #include "../components/draw_order.hpp"
12
+ #include "../components/half_size2d.hpp"
13
+ #include "../components/position2d.hpp"
14
+ #include "../components/radius.hpp"
15
+ #include "../components/show_labels.hpp"
16
+ #include "../components/text.hpp"
17
+ #include "../indicator_component.hpp"
18
+ #include "../result.hpp"
19
+
20
+ #include <cstdint>
21
+ #include <optional>
22
+ #include <utility>
23
+ #include <vector>
24
+
25
+ namespace rerun::archetypes {
26
+ /// **Archetype**: 2D boxes with half-extents and optional center, colors etc.
27
+ ///
28
+ /// ## Example
29
+ ///
30
+ /// ### Simple 2D boxes
31
+ /// ![image](https://static.rerun.io/box2d_simple/ac4424f3cf747382867649610cbd749c45b2020b/full.png)
32
+ ///
33
+ /// ```cpp
34
+ /// #include <rerun.hpp>
35
+ ///
36
+ /// int main() {
37
+ /// const auto rec = rerun::RecordingStream("rerun_example_box2d");
38
+ /// rec.spawn().exit_on_failure();
39
+ ///
40
+ /// rec.log("simple", rerun::Boxes2D::from_mins_and_sizes({{-1.f, -1.f}}, {{2.f, 2.f}}));
41
+ /// }
42
+ /// ```
43
+ struct Boxes2D {
44
+ /// All half-extents that make up the batch of boxes.
45
+ std::optional<ComponentBatch> half_sizes;
46
+
47
+ /// Optional center positions of the boxes.
48
+ std::optional<ComponentBatch> centers;
49
+
50
+ /// Optional colors for the boxes.
51
+ std::optional<ComponentBatch> colors;
52
+
53
+ /// Optional radii for the lines that make up the boxes.
54
+ std::optional<ComponentBatch> radii;
55
+
56
+ /// Optional text labels for the boxes.
57
+ ///
58
+ /// If there's a single label present, it will be placed at the center of the entity.
59
+ /// Otherwise, each instance will have its own label.
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
+ /// An optional floating point value that specifies the 2D drawing order.
66
+ ///
67
+ /// Objects with higher values are drawn on top of those with lower values.
68
+ /// Defaults to `10.0`.
69
+ std::optional<ComponentBatch> draw_order;
70
+
71
+ /// Optional `components::ClassId`s for the boxes.
72
+ ///
73
+ /// The `components::ClassId` provides colors and labels if not specified explicitly.
74
+ std::optional<ComponentBatch> class_ids;
75
+
76
+ public:
77
+ static constexpr const char IndicatorComponentName[] = "rerun.components.Boxes2DIndicator";
78
+
79
+ /// Indicator component, used to identify the archetype when converting to a list of components.
80
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
81
+ /// The name of the archetype as used in `ComponentDescriptor`s.
82
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.Boxes2D";
83
+
84
+ /// `ComponentDescriptor` for the `half_sizes` field.
85
+ static constexpr auto Descriptor_half_sizes = ComponentDescriptor(
86
+ ArchetypeName, "half_sizes",
87
+ Loggable<rerun::components::HalfSize2D>::Descriptor.component_name
88
+ );
89
+ /// `ComponentDescriptor` for the `centers` field.
90
+ static constexpr auto Descriptor_centers = ComponentDescriptor(
91
+ ArchetypeName, "centers",
92
+ Loggable<rerun::components::Position2D>::Descriptor.component_name
93
+ );
94
+ /// `ComponentDescriptor` for the `colors` field.
95
+ static constexpr auto Descriptor_colors = ComponentDescriptor(
96
+ ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
97
+ );
98
+ /// `ComponentDescriptor` for the `radii` field.
99
+ static constexpr auto Descriptor_radii = ComponentDescriptor(
100
+ ArchetypeName, "radii", Loggable<rerun::components::Radius>::Descriptor.component_name
101
+ );
102
+ /// `ComponentDescriptor` for the `labels` field.
103
+ static constexpr auto Descriptor_labels = ComponentDescriptor(
104
+ ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
105
+ );
106
+ /// `ComponentDescriptor` for the `show_labels` field.
107
+ static constexpr auto Descriptor_show_labels = ComponentDescriptor(
108
+ ArchetypeName, "show_labels",
109
+ Loggable<rerun::components::ShowLabels>::Descriptor.component_name
110
+ );
111
+ /// `ComponentDescriptor` for the `draw_order` field.
112
+ static constexpr auto Descriptor_draw_order = ComponentDescriptor(
113
+ ArchetypeName, "draw_order",
114
+ Loggable<rerun::components::DrawOrder>::Descriptor.component_name
115
+ );
116
+ /// `ComponentDescriptor` for the `class_ids` field.
117
+ static constexpr auto Descriptor_class_ids = ComponentDescriptor(
118
+ ArchetypeName, "class_ids",
119
+ Loggable<rerun::components::ClassId>::Descriptor.component_name
120
+ );
121
+
122
+ public: // START of extensions from boxes2d_ext.cpp:
123
+ /// Creates new `Boxes2D` with `half_sizes` centered around the local origin.
124
+ static Boxes2D from_half_sizes(Collection<components::HalfSize2D> half_sizes) {
125
+ return Boxes2D().with_half_sizes(std::move(half_sizes));
126
+ }
127
+
128
+ /// Creates new `Boxes2D` with `centers` and `half_sizes`.
129
+ static Boxes2D from_centers_and_half_sizes(
130
+ Collection<components::Position2D> centers,
131
+ Collection<components::HalfSize2D> half_sizes
132
+ ) {
133
+ return Boxes2D()
134
+ .with_half_sizes(std::move(half_sizes))
135
+ .with_centers(std::move(centers));
136
+ }
137
+
138
+ /// Creates new `Boxes2D` with `half_sizes` created from (full) sizes.
139
+ ///
140
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates half-sizes from the
141
+ /// input data.
142
+ static Boxes2D from_sizes(const std::vector<datatypes::Vec2D>& sizes);
143
+
144
+ /// Creates new `Boxes2D` with `centers` and `half_sizes` created from centers and (full)
145
+ /// sizes.
146
+ ///
147
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates centers and half-sizes
148
+ /// from the input data.
149
+ static Boxes2D from_centers_and_sizes(
150
+ Collection<components::Position2D> centers, const std::vector<datatypes::Vec2D>& sizes
151
+ ) {
152
+ return from_sizes(std::move(sizes)).with_centers(std::move(centers));
153
+ }
154
+
155
+ /// Creates new `Boxes2D` with `half_sizes` and `centers` created from minimums and (full)
156
+ /// sizes.
157
+ ///
158
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates centers and half-sizes
159
+ /// from the input data.
160
+ static Boxes2D from_mins_and_sizes(
161
+ const std::vector<datatypes::Vec2D>& mins, const std::vector<datatypes::Vec2D>& sizes
162
+ );
163
+
164
+ // END of extensions from boxes2d_ext.cpp, start of generated code:
165
+
166
+ public:
167
+ Boxes2D() = default;
168
+ Boxes2D(Boxes2D&& other) = default;
169
+ Boxes2D(const Boxes2D& other) = default;
170
+ Boxes2D& operator=(const Boxes2D& other) = default;
171
+ Boxes2D& operator=(Boxes2D&& other) = default;
172
+
173
+ /// Update only some specific fields of a `Boxes2D`.
174
+ static Boxes2D update_fields() {
175
+ return Boxes2D();
176
+ }
177
+
178
+ /// Clear all the fields of a `Boxes2D`.
179
+ static Boxes2D clear_fields();
180
+
181
+ /// All half-extents that make up the batch of boxes.
182
+ Boxes2D with_half_sizes(const Collection<rerun::components::HalfSize2D>& _half_sizes) && {
183
+ half_sizes =
184
+ ComponentBatch::from_loggable(_half_sizes, Descriptor_half_sizes).value_or_throw();
185
+ return std::move(*this);
186
+ }
187
+
188
+ /// Optional center positions of the boxes.
189
+ Boxes2D with_centers(const Collection<rerun::components::Position2D>& _centers) && {
190
+ centers = ComponentBatch::from_loggable(_centers, Descriptor_centers).value_or_throw();
191
+ return std::move(*this);
192
+ }
193
+
194
+ /// Optional colors for the boxes.
195
+ Boxes2D with_colors(const Collection<rerun::components::Color>& _colors) && {
196
+ colors = ComponentBatch::from_loggable(_colors, Descriptor_colors).value_or_throw();
197
+ return std::move(*this);
198
+ }
199
+
200
+ /// Optional radii for the lines that make up the boxes.
201
+ Boxes2D with_radii(const Collection<rerun::components::Radius>& _radii) && {
202
+ radii = ComponentBatch::from_loggable(_radii, Descriptor_radii).value_or_throw();
203
+ return std::move(*this);
204
+ }
205
+
206
+ /// Optional text labels for the boxes.
207
+ ///
208
+ /// If there's a single label present, it will be placed at the center of the entity.
209
+ /// Otherwise, each instance will have its own label.
210
+ Boxes2D with_labels(const Collection<rerun::components::Text>& _labels) && {
211
+ labels = ComponentBatch::from_loggable(_labels, Descriptor_labels).value_or_throw();
212
+ return std::move(*this);
213
+ }
214
+
215
+ /// Optional choice of whether the text labels should be shown by default.
216
+ Boxes2D with_show_labels(const rerun::components::ShowLabels& _show_labels) && {
217
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
218
+ .value_or_throw();
219
+ return std::move(*this);
220
+ }
221
+
222
+ /// This method makes it possible to pack multiple `show_labels` in a single component batch.
223
+ ///
224
+ /// This only makes sense when used in conjunction with `columns`. `with_show_labels` should
225
+ /// be used when logging a single row's worth of data.
226
+ Boxes2D with_many_show_labels(const Collection<rerun::components::ShowLabels>& _show_labels
227
+ ) && {
228
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
229
+ .value_or_throw();
230
+ return std::move(*this);
231
+ }
232
+
233
+ /// An optional floating point value that specifies the 2D drawing order.
234
+ ///
235
+ /// Objects with higher values are drawn on top of those with lower values.
236
+ /// Defaults to `10.0`.
237
+ Boxes2D with_draw_order(const rerun::components::DrawOrder& _draw_order) && {
238
+ draw_order =
239
+ ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
240
+ return std::move(*this);
241
+ }
242
+
243
+ /// This method makes it possible to pack multiple `draw_order` in a single component batch.
244
+ ///
245
+ /// This only makes sense when used in conjunction with `columns`. `with_draw_order` should
246
+ /// be used when logging a single row's worth of data.
247
+ Boxes2D with_many_draw_order(const Collection<rerun::components::DrawOrder>& _draw_order
248
+ ) && {
249
+ draw_order =
250
+ ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
251
+ return std::move(*this);
252
+ }
253
+
254
+ /// Optional `components::ClassId`s for the boxes.
255
+ ///
256
+ /// The `components::ClassId` provides colors and labels if not specified explicitly.
257
+ Boxes2D with_class_ids(const Collection<rerun::components::ClassId>& _class_ids) && {
258
+ class_ids =
259
+ ComponentBatch::from_loggable(_class_ids, Descriptor_class_ids).value_or_throw();
260
+ return std::move(*this);
261
+ }
262
+
263
+ /// Partitions the component data into multiple sub-batches.
264
+ ///
265
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
266
+ /// instead, via `ComponentBatch::partitioned`.
267
+ ///
268
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
269
+ ///
270
+ /// The specified `lengths` must sum to the total length of the component batch.
271
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
272
+
273
+ /// Partitions the component data into unit-length sub-batches.
274
+ ///
275
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
276
+ /// where `n` is automatically guessed.
277
+ Collection<ComponentColumn> columns();
278
+ };
279
+
280
+ } // namespace rerun::archetypes
281
+
282
+ namespace rerun {
283
+ /// \private
284
+ template <typename T>
285
+ struct AsComponents;
286
+
287
+ /// \private
288
+ template <>
289
+ struct AsComponents<archetypes::Boxes2D> {
290
+ /// Serialize all set component batches.
291
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::Boxes2D& archetype);
292
+ };
293
+ } // namespace rerun
@@ -0,0 +1,369 @@
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/boxes3d.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/class_id.hpp"
10
+ #include "../components/color.hpp"
11
+ #include "../components/fill_mode.hpp"
12
+ #include "../components/half_size3d.hpp"
13
+ #include "../components/pose_rotation_axis_angle.hpp"
14
+ #include "../components/pose_rotation_quat.hpp"
15
+ #include "../components/pose_translation3d.hpp"
16
+ #include "../components/radius.hpp"
17
+ #include "../components/show_labels.hpp"
18
+ #include "../components/text.hpp"
19
+ #include "../indicator_component.hpp"
20
+ #include "../result.hpp"
21
+
22
+ #include <cstdint>
23
+ #include <optional>
24
+ #include <utility>
25
+ #include <vector>
26
+
27
+ namespace rerun::archetypes {
28
+ /// **Archetype**: 3D boxes with half-extents and optional center, rotations, colors etc.
29
+ ///
30
+ /// Note that orienting and placing the box is handled via `[archetypes.InstancePoses3D]`.
31
+ /// Some of its component are repeated here for convenience.
32
+ /// If there's more instance poses than half sizes, the last half size will be repeated for the remaining poses.
33
+ ///
34
+ /// ## Example
35
+ ///
36
+ /// ### Batch of 3D boxes
37
+ /// ![image](https://static.rerun.io/box3d_batch/5aac5b5d29c9f2ecd572c93f6970fcec17f4984b/full.png)
38
+ ///
39
+ /// ```cpp
40
+ /// #include <rerun.hpp>
41
+ ///
42
+ /// int main() {
43
+ /// const auto rec = rerun::RecordingStream("rerun_example_box3d_batch");
44
+ /// rec.spawn().exit_on_failure();
45
+ ///
46
+ /// rec.log(
47
+ /// "batch",
48
+ /// rerun::Boxes3D::from_centers_and_half_sizes(
49
+ /// {{2.0f, 0.0f, 0.0f}, {-2.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 2.0f}},
50
+ /// {{2.0f, 2.0f, 1.0f}, {1.0f, 1.0f, 0.5f}, {2.0f, 0.5f, 1.0f}}
51
+ /// )
52
+ /// .with_quaternions({
53
+ /// rerun::Quaternion::IDENTITY,
54
+ /// // 45 degrees around Z
55
+ /// rerun::Quaternion::from_xyzw(0.0f, 0.0f, 0.382683f, 0.923880f),
56
+ /// })
57
+ /// .with_radii({0.025f})
58
+ /// .with_colors({
59
+ /// rerun::Rgba32(255, 0, 0),
60
+ /// rerun::Rgba32(0, 255, 0),
61
+ /// rerun::Rgba32(0, 0, 255),
62
+ /// })
63
+ /// .with_fill_mode(rerun::FillMode::Solid)
64
+ /// .with_labels({"red", "green", "blue"})
65
+ /// );
66
+ /// }
67
+ /// ```
68
+ struct Boxes3D {
69
+ /// All half-extents that make up the batch of boxes.
70
+ std::optional<ComponentBatch> half_sizes;
71
+
72
+ /// Optional center positions of the boxes.
73
+ ///
74
+ /// If not specified, the centers will be at (0, 0, 0).
75
+ /// Note that this uses a `components::PoseTranslation3D` which is also used by `archetypes::InstancePoses3D`.
76
+ std::optional<ComponentBatch> centers;
77
+
78
+ /// Rotations via axis + angle.
79
+ ///
80
+ /// If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system.
81
+ /// Note that this uses a `components::PoseRotationAxisAngle` which is also used by `archetypes::InstancePoses3D`.
82
+ std::optional<ComponentBatch> rotation_axis_angles;
83
+
84
+ /// Rotations via quaternion.
85
+ ///
86
+ /// If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system.
87
+ /// Note that this uses a `components::PoseRotationQuat` which is also used by `archetypes::InstancePoses3D`.
88
+ std::optional<ComponentBatch> quaternions;
89
+
90
+ /// Optional colors for the boxes.
91
+ std::optional<ComponentBatch> colors;
92
+
93
+ /// Optional radii for the lines that make up the boxes.
94
+ std::optional<ComponentBatch> radii;
95
+
96
+ /// Optionally choose whether the boxes are drawn with lines or solid.
97
+ std::optional<ComponentBatch> fill_mode;
98
+
99
+ /// Optional text labels for the boxes.
100
+ ///
101
+ /// If there's a single label present, it will be placed at the center of the entity.
102
+ /// Otherwise, each instance will have its own label.
103
+ std::optional<ComponentBatch> labels;
104
+
105
+ /// Optional choice of whether the text labels should be shown by default.
106
+ std::optional<ComponentBatch> show_labels;
107
+
108
+ /// Optional `components::ClassId`s for the boxes.
109
+ ///
110
+ /// The `components::ClassId` provides colors and labels if not specified explicitly.
111
+ std::optional<ComponentBatch> class_ids;
112
+
113
+ public:
114
+ static constexpr const char IndicatorComponentName[] = "rerun.components.Boxes3DIndicator";
115
+
116
+ /// Indicator component, used to identify the archetype when converting to a list of components.
117
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
118
+ /// The name of the archetype as used in `ComponentDescriptor`s.
119
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.Boxes3D";
120
+
121
+ /// `ComponentDescriptor` for the `half_sizes` field.
122
+ static constexpr auto Descriptor_half_sizes = ComponentDescriptor(
123
+ ArchetypeName, "half_sizes",
124
+ Loggable<rerun::components::HalfSize3D>::Descriptor.component_name
125
+ );
126
+ /// `ComponentDescriptor` for the `centers` field.
127
+ static constexpr auto Descriptor_centers = ComponentDescriptor(
128
+ ArchetypeName, "centers",
129
+ Loggable<rerun::components::PoseTranslation3D>::Descriptor.component_name
130
+ );
131
+ /// `ComponentDescriptor` for the `rotation_axis_angles` field.
132
+ static constexpr auto Descriptor_rotation_axis_angles = ComponentDescriptor(
133
+ ArchetypeName, "rotation_axis_angles",
134
+ Loggable<rerun::components::PoseRotationAxisAngle>::Descriptor.component_name
135
+ );
136
+ /// `ComponentDescriptor` for the `quaternions` field.
137
+ static constexpr auto Descriptor_quaternions = ComponentDescriptor(
138
+ ArchetypeName, "quaternions",
139
+ Loggable<rerun::components::PoseRotationQuat>::Descriptor.component_name
140
+ );
141
+ /// `ComponentDescriptor` for the `colors` field.
142
+ static constexpr auto Descriptor_colors = ComponentDescriptor(
143
+ ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
144
+ );
145
+ /// `ComponentDescriptor` for the `radii` field.
146
+ static constexpr auto Descriptor_radii = ComponentDescriptor(
147
+ ArchetypeName, "radii", Loggable<rerun::components::Radius>::Descriptor.component_name
148
+ );
149
+ /// `ComponentDescriptor` for the `fill_mode` field.
150
+ static constexpr auto Descriptor_fill_mode = ComponentDescriptor(
151
+ ArchetypeName, "fill_mode",
152
+ Loggable<rerun::components::FillMode>::Descriptor.component_name
153
+ );
154
+ /// `ComponentDescriptor` for the `labels` field.
155
+ static constexpr auto Descriptor_labels = ComponentDescriptor(
156
+ ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
157
+ );
158
+ /// `ComponentDescriptor` for the `show_labels` field.
159
+ static constexpr auto Descriptor_show_labels = ComponentDescriptor(
160
+ ArchetypeName, "show_labels",
161
+ Loggable<rerun::components::ShowLabels>::Descriptor.component_name
162
+ );
163
+ /// `ComponentDescriptor` for the `class_ids` field.
164
+ static constexpr auto Descriptor_class_ids = ComponentDescriptor(
165
+ ArchetypeName, "class_ids",
166
+ Loggable<rerun::components::ClassId>::Descriptor.component_name
167
+ );
168
+
169
+ public: // START of extensions from boxes3d_ext.cpp:
170
+ /// Creates new `Boxes3D` with `half_sizes` centered around the local origin.
171
+ static Boxes3D from_half_sizes(Collection<components::HalfSize3D> half_sizes) {
172
+ return Boxes3D().with_half_sizes(std::move(half_sizes));
173
+ }
174
+
175
+ /// Creates new `Boxes3D` with `centers` and `half_sizes`.
176
+ static Boxes3D from_centers_and_half_sizes(
177
+ Collection<components::PoseTranslation3D> centers,
178
+ Collection<components::HalfSize3D> half_sizes
179
+ ) {
180
+ return Boxes3D()
181
+ .with_half_sizes(std::move(half_sizes))
182
+ .with_centers(std::move(centers));
183
+ }
184
+
185
+ /// Creates new `Boxes3D` with `half_sizes` created from (full) sizes.
186
+ ///
187
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates half-sizes from the
188
+ /// input data.
189
+ /// TODO(andreas): This should not take an std::vector.
190
+ static Boxes3D from_sizes(const std::vector<datatypes::Vec3D>& sizes);
191
+
192
+ /// Creates new `Boxes3D` with `centers` and `half_sizes` created from centers and (full)
193
+ /// sizes.
194
+ ///
195
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates centers and half-sizes
196
+ /// from the input data.
197
+ /// TODO(andreas): This should not take an std::vector.
198
+ static Boxes3D from_centers_and_sizes(
199
+ Collection<components::PoseTranslation3D> centers,
200
+ const std::vector<datatypes::Vec3D>& sizes
201
+ ) {
202
+ return from_sizes(std::move(sizes)).with_centers(std::move(centers));
203
+ }
204
+
205
+ /// Creates new `Boxes3D` with `half_sizes` and `centers` created from minimums and (full)
206
+ /// sizes.
207
+ ///
208
+ /// TODO(#3285): Does *not* preserve data as-is and instead creates centers and half-sizes
209
+ /// from the input data.
210
+ /// TODO(andreas): This should not take an std::vector.
211
+ static Boxes3D from_mins_and_sizes(
212
+ const std::vector<datatypes::Vec3D>& mins, const std::vector<datatypes::Vec3D>& sizes
213
+ );
214
+
215
+ // END of extensions from boxes3d_ext.cpp, start of generated code:
216
+
217
+ public:
218
+ Boxes3D() = default;
219
+ Boxes3D(Boxes3D&& other) = default;
220
+ Boxes3D(const Boxes3D& other) = default;
221
+ Boxes3D& operator=(const Boxes3D& other) = default;
222
+ Boxes3D& operator=(Boxes3D&& other) = default;
223
+
224
+ /// Update only some specific fields of a `Boxes3D`.
225
+ static Boxes3D update_fields() {
226
+ return Boxes3D();
227
+ }
228
+
229
+ /// Clear all the fields of a `Boxes3D`.
230
+ static Boxes3D clear_fields();
231
+
232
+ /// All half-extents that make up the batch of boxes.
233
+ Boxes3D with_half_sizes(const Collection<rerun::components::HalfSize3D>& _half_sizes) && {
234
+ half_sizes =
235
+ ComponentBatch::from_loggable(_half_sizes, Descriptor_half_sizes).value_or_throw();
236
+ return std::move(*this);
237
+ }
238
+
239
+ /// Optional center positions of the boxes.
240
+ ///
241
+ /// If not specified, the centers will be at (0, 0, 0).
242
+ /// Note that this uses a `components::PoseTranslation3D` which is also used by `archetypes::InstancePoses3D`.
243
+ Boxes3D with_centers(const Collection<rerun::components::PoseTranslation3D>& _centers) && {
244
+ centers = ComponentBatch::from_loggable(_centers, Descriptor_centers).value_or_throw();
245
+ return std::move(*this);
246
+ }
247
+
248
+ /// Rotations via axis + angle.
249
+ ///
250
+ /// If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system.
251
+ /// Note that this uses a `components::PoseRotationAxisAngle` which is also used by `archetypes::InstancePoses3D`.
252
+ Boxes3D with_rotation_axis_angles(
253
+ const Collection<rerun::components::PoseRotationAxisAngle>& _rotation_axis_angles
254
+ ) && {
255
+ rotation_axis_angles = ComponentBatch::from_loggable(
256
+ _rotation_axis_angles,
257
+ Descriptor_rotation_axis_angles
258
+ )
259
+ .value_or_throw();
260
+ return std::move(*this);
261
+ }
262
+
263
+ /// Rotations via quaternion.
264
+ ///
265
+ /// If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system.
266
+ /// Note that this uses a `components::PoseRotationQuat` which is also used by `archetypes::InstancePoses3D`.
267
+ Boxes3D with_quaternions(const Collection<rerun::components::PoseRotationQuat>& _quaternions
268
+ ) && {
269
+ quaternions = ComponentBatch::from_loggable(_quaternions, Descriptor_quaternions)
270
+ .value_or_throw();
271
+ return std::move(*this);
272
+ }
273
+
274
+ /// Optional colors for the boxes.
275
+ Boxes3D with_colors(const Collection<rerun::components::Color>& _colors) && {
276
+ colors = ComponentBatch::from_loggable(_colors, Descriptor_colors).value_or_throw();
277
+ return std::move(*this);
278
+ }
279
+
280
+ /// Optional radii for the lines that make up the boxes.
281
+ Boxes3D with_radii(const Collection<rerun::components::Radius>& _radii) && {
282
+ radii = ComponentBatch::from_loggable(_radii, Descriptor_radii).value_or_throw();
283
+ return std::move(*this);
284
+ }
285
+
286
+ /// Optionally choose whether the boxes are drawn with lines or solid.
287
+ Boxes3D with_fill_mode(const rerun::components::FillMode& _fill_mode) && {
288
+ fill_mode =
289
+ ComponentBatch::from_loggable(_fill_mode, Descriptor_fill_mode).value_or_throw();
290
+ return std::move(*this);
291
+ }
292
+
293
+ /// This method makes it possible to pack multiple `fill_mode` in a single component batch.
294
+ ///
295
+ /// This only makes sense when used in conjunction with `columns`. `with_fill_mode` should
296
+ /// be used when logging a single row's worth of data.
297
+ Boxes3D with_many_fill_mode(const Collection<rerun::components::FillMode>& _fill_mode) && {
298
+ fill_mode =
299
+ ComponentBatch::from_loggable(_fill_mode, Descriptor_fill_mode).value_or_throw();
300
+ return std::move(*this);
301
+ }
302
+
303
+ /// Optional text labels for the boxes.
304
+ ///
305
+ /// If there's a single label present, it will be placed at the center of the entity.
306
+ /// Otherwise, each instance will have its own label.
307
+ Boxes3D with_labels(const Collection<rerun::components::Text>& _labels) && {
308
+ labels = ComponentBatch::from_loggable(_labels, Descriptor_labels).value_or_throw();
309
+ return std::move(*this);
310
+ }
311
+
312
+ /// Optional choice of whether the text labels should be shown by default.
313
+ Boxes3D with_show_labels(const rerun::components::ShowLabels& _show_labels) && {
314
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
315
+ .value_or_throw();
316
+ return std::move(*this);
317
+ }
318
+
319
+ /// This method makes it possible to pack multiple `show_labels` in a single component batch.
320
+ ///
321
+ /// This only makes sense when used in conjunction with `columns`. `with_show_labels` should
322
+ /// be used when logging a single row's worth of data.
323
+ Boxes3D with_many_show_labels(const Collection<rerun::components::ShowLabels>& _show_labels
324
+ ) && {
325
+ show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
326
+ .value_or_throw();
327
+ return std::move(*this);
328
+ }
329
+
330
+ /// Optional `components::ClassId`s for the boxes.
331
+ ///
332
+ /// The `components::ClassId` provides colors and labels if not specified explicitly.
333
+ Boxes3D with_class_ids(const Collection<rerun::components::ClassId>& _class_ids) && {
334
+ class_ids =
335
+ ComponentBatch::from_loggable(_class_ids, Descriptor_class_ids).value_or_throw();
336
+ return std::move(*this);
337
+ }
338
+
339
+ /// Partitions the component data into multiple sub-batches.
340
+ ///
341
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
342
+ /// instead, via `ComponentBatch::partitioned`.
343
+ ///
344
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
345
+ ///
346
+ /// The specified `lengths` must sum to the total length of the component batch.
347
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
348
+
349
+ /// Partitions the component data into unit-length sub-batches.
350
+ ///
351
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
352
+ /// where `n` is automatically guessed.
353
+ Collection<ComponentColumn> columns();
354
+ };
355
+
356
+ } // namespace rerun::archetypes
357
+
358
+ namespace rerun {
359
+ /// \private
360
+ template <typename T>
361
+ struct AsComponents;
362
+
363
+ /// \private
364
+ template <>
365
+ struct AsComponents<archetypes::Boxes3D> {
366
+ /// Serialize all set component batches.
367
+ static Result<Collection<ComponentBatch>> as_batches(const archetypes::Boxes3D& archetype);
368
+ };
369
+ } // namespace rerun