pymomentum-cpu 0.1.93.post0__cp312-cp312-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. include/axel/BoundingBox.h +59 -0
  2. include/axel/Bvh.h +708 -0
  3. include/axel/BvhBase.h +75 -0
  4. include/axel/BvhCommon.h +43 -0
  5. include/axel/BvhEmbree.h +87 -0
  6. include/axel/BvhFactory.h +34 -0
  7. include/axel/Checks.h +21 -0
  8. include/axel/DualContouring.h +79 -0
  9. include/axel/KdTree.h +208 -0
  10. include/axel/Log.h +22 -0
  11. include/axel/MeshToSdf.h +123 -0
  12. include/axel/Profile.h +64 -0
  13. include/axel/Ray.h +45 -0
  14. include/axel/SignedDistanceField.h +248 -0
  15. include/axel/SimdKdTree.h +515 -0
  16. include/axel/TriBvh.h +157 -0
  17. include/axel/TriBvhEmbree.h +57 -0
  18. include/axel/common/Constants.h +27 -0
  19. include/axel/common/Types.h +21 -0
  20. include/axel/common/VectorizationTypes.h +58 -0
  21. include/axel/math/BoundingBoxUtils.h +54 -0
  22. include/axel/math/ContinuousCollisionDetection.h +48 -0
  23. include/axel/math/CoplanarityCheck.h +30 -0
  24. include/axel/math/EdgeEdgeDistance.h +31 -0
  25. include/axel/math/MeshHoleFilling.h +117 -0
  26. include/axel/math/PointTriangleProjection.h +34 -0
  27. include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
  28. include/axel/math/RayTriangleIntersection.h +36 -0
  29. include/momentum/character/blend_shape.h +97 -0
  30. include/momentum/character/blend_shape_base.h +86 -0
  31. include/momentum/character/blend_shape_skinning.h +96 -0
  32. include/momentum/character/character.h +272 -0
  33. include/momentum/character/character_state.h +108 -0
  34. include/momentum/character/character_utility.h +128 -0
  35. include/momentum/character/collision_geometry.h +80 -0
  36. include/momentum/character/collision_geometry_state.h +130 -0
  37. include/momentum/character/fwd.h +262 -0
  38. include/momentum/character/inverse_parameter_transform.h +58 -0
  39. include/momentum/character/joint.h +82 -0
  40. include/momentum/character/joint_state.h +241 -0
  41. include/momentum/character/linear_skinning.h +139 -0
  42. include/momentum/character/locator.h +94 -0
  43. include/momentum/character/locator_state.h +43 -0
  44. include/momentum/character/marker.h +48 -0
  45. include/momentum/character/mesh_state.h +71 -0
  46. include/momentum/character/parameter_limits.h +144 -0
  47. include/momentum/character/parameter_transform.h +207 -0
  48. include/momentum/character/pose_shape.h +65 -0
  49. include/momentum/character/skeleton.h +85 -0
  50. include/momentum/character/skeleton_state.h +227 -0
  51. include/momentum/character/skeleton_utility.h +38 -0
  52. include/momentum/character/skin_weights.h +67 -0
  53. include/momentum/character/skinned_locator.h +80 -0
  54. include/momentum/character/types.h +202 -0
  55. include/momentum/character_sequence_solver/fwd.h +200 -0
  56. include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
  57. include/momentum/character_sequence_solver/multipose_solver.h +65 -0
  58. include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
  59. include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
  60. include/momentum/character_sequence_solver/sequence_solver.h +155 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +158 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +117 -0
  63. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
  64. include/momentum/character_solver/aim_error_function.h +112 -0
  65. include/momentum/character_solver/collision_error_function.h +92 -0
  66. include/momentum/character_solver/collision_error_function_stateless.h +75 -0
  67. include/momentum/character_solver/constraint_error_function-inl.h +324 -0
  68. include/momentum/character_solver/constraint_error_function.h +248 -0
  69. include/momentum/character_solver/distance_error_function.h +77 -0
  70. include/momentum/character_solver/error_function_utils.h +60 -0
  71. include/momentum/character_solver/fixed_axis_error_function.h +139 -0
  72. include/momentum/character_solver/fwd.h +943 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/height_error_function.h +176 -0
  75. include/momentum/character_solver/joint_to_joint_distance_error_function.h +111 -0
  76. include/momentum/character_solver/limit_error_function.h +57 -0
  77. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  78. include/momentum/character_solver/normal_error_function.h +73 -0
  79. include/momentum/character_solver/orientation_error_function.h +74 -0
  80. include/momentum/character_solver/plane_error_function.h +102 -0
  81. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  82. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  83. include/momentum/character_solver/position_error_function.h +75 -0
  84. include/momentum/character_solver/projection_error_function.h +93 -0
  85. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  86. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  87. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  88. include/momentum/character_solver/simd_position_error_function.h +165 -0
  89. include/momentum/character_solver/skeleton_error_function.h +151 -0
  90. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  91. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  92. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  93. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  94. include/momentum/character_solver/state_error_function.h +119 -0
  95. include/momentum/character_solver/transform_pose.h +80 -0
  96. include/momentum/character_solver/trust_region_qr.h +80 -0
  97. include/momentum/character_solver/vertex_error_function.h +155 -0
  98. include/momentum/character_solver/vertex_projection_error_function.h +117 -0
  99. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
  100. include/momentum/common/aligned.h +155 -0
  101. include/momentum/common/checks.h +27 -0
  102. include/momentum/common/exception.h +70 -0
  103. include/momentum/common/filesystem.h +20 -0
  104. include/momentum/common/fwd.h +27 -0
  105. include/momentum/common/log.h +173 -0
  106. include/momentum/common/log_channel.h +17 -0
  107. include/momentum/common/memory.h +71 -0
  108. include/momentum/common/profile.h +79 -0
  109. include/momentum/common/progress_bar.h +37 -0
  110. include/momentum/common/string.h +52 -0
  111. include/momentum/diff_ik/ceres_utility.h +73 -0
  112. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  113. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  114. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  115. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  116. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  117. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  118. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  119. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  120. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  121. include/momentum/diff_ik/fwd.h +385 -0
  122. include/momentum/diff_ik/union_error_function.h +67 -0
  123. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  124. include/momentum/gui/rerun/logger.h +102 -0
  125. include/momentum/gui/rerun/logging_redirect.h +27 -0
  126. include/momentum/io/character_io.h +98 -0
  127. include/momentum/io/common/gsl_utils.h +50 -0
  128. include/momentum/io/common/stream_utils.h +65 -0
  129. include/momentum/io/fbx/fbx_io.h +135 -0
  130. include/momentum/io/fbx/fbx_memory_stream.h +70 -0
  131. include/momentum/io/fbx/openfbx_loader.h +62 -0
  132. include/momentum/io/fbx/polygon_data.h +60 -0
  133. include/momentum/io/file_save_options.h +107 -0
  134. include/momentum/io/gltf/gltf_builder.h +141 -0
  135. include/momentum/io/gltf/gltf_io.h +149 -0
  136. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  137. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  138. include/momentum/io/gltf/utils/json_utils.h +102 -0
  139. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  140. include/momentum/io/marker/c3d_io.h +30 -0
  141. include/momentum/io/marker/conversions.h +57 -0
  142. include/momentum/io/marker/coordinate_system.h +30 -0
  143. include/momentum/io/marker/marker_io.h +56 -0
  144. include/momentum/io/marker/trc_io.h +27 -0
  145. include/momentum/io/motion/mmo_io.h +97 -0
  146. include/momentum/io/shape/blend_shape_io.h +82 -0
  147. include/momentum/io/shape/pose_shape_io.h +21 -0
  148. include/momentum/io/skeleton/locator_io.h +41 -0
  149. include/momentum/io/skeleton/mppca_io.h +26 -0
  150. include/momentum/io/skeleton/parameter_limits_io.h +38 -0
  151. include/momentum/io/skeleton/parameter_transform_io.h +80 -0
  152. include/momentum/io/skeleton/parameters_io.h +20 -0
  153. include/momentum/io/skeleton/utility.h +67 -0
  154. include/momentum/io/urdf/urdf_io.h +26 -0
  155. include/momentum/io/usd/usd_io.h +36 -0
  156. include/momentum/marker_tracking/app_utils.h +64 -0
  157. include/momentum/marker_tracking/marker_tracker.h +221 -0
  158. include/momentum/marker_tracking/process_markers.h +58 -0
  159. include/momentum/marker_tracking/tracker_utils.h +99 -0
  160. include/momentum/math/constants.h +82 -0
  161. include/momentum/math/covariance_matrix.h +84 -0
  162. include/momentum/math/fmt_eigen.h +23 -0
  163. include/momentum/math/fwd.h +132 -0
  164. include/momentum/math/generalized_loss.h +61 -0
  165. include/momentum/math/intersection.h +32 -0
  166. include/momentum/math/mesh.h +84 -0
  167. include/momentum/math/mppca.h +67 -0
  168. include/momentum/math/online_householder_qr.h +516 -0
  169. include/momentum/math/random-inl.h +404 -0
  170. include/momentum/math/random.h +310 -0
  171. include/momentum/math/simd_generalized_loss.h +40 -0
  172. include/momentum/math/transform.h +229 -0
  173. include/momentum/math/types.h +461 -0
  174. include/momentum/math/utility.h +324 -0
  175. include/momentum/rasterizer/camera.h +453 -0
  176. include/momentum/rasterizer/fwd.h +102 -0
  177. include/momentum/rasterizer/geometry.h +83 -0
  178. include/momentum/rasterizer/image.h +18 -0
  179. include/momentum/rasterizer/rasterizer.h +583 -0
  180. include/momentum/rasterizer/tensor.h +140 -0
  181. include/momentum/rasterizer/text_rasterizer.h +89 -0
  182. include/momentum/rasterizer/utility.h +268 -0
  183. include/momentum/simd/simd.h +221 -0
  184. include/momentum/solver/fwd.h +131 -0
  185. include/momentum/solver/gauss_newton_solver.h +136 -0
  186. include/momentum/solver/gradient_descent_solver.h +65 -0
  187. include/momentum/solver/solver.h +155 -0
  188. include/momentum/solver/solver_function.h +126 -0
  189. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  190. include/rerun/archetypes/annotation_context.hpp +157 -0
  191. include/rerun/archetypes/arrows2d.hpp +271 -0
  192. include/rerun/archetypes/arrows3d.hpp +257 -0
  193. include/rerun/archetypes/asset3d.hpp +262 -0
  194. include/rerun/archetypes/asset_video.hpp +275 -0
  195. include/rerun/archetypes/bar_chart.hpp +261 -0
  196. include/rerun/archetypes/boxes2d.hpp +293 -0
  197. include/rerun/archetypes/boxes3d.hpp +369 -0
  198. include/rerun/archetypes/capsules3d.hpp +333 -0
  199. include/rerun/archetypes/clear.hpp +180 -0
  200. include/rerun/archetypes/depth_image.hpp +425 -0
  201. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  202. include/rerun/archetypes/encoded_image.hpp +250 -0
  203. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  204. include/rerun/archetypes/geo_points.hpp +177 -0
  205. include/rerun/archetypes/graph_edges.hpp +152 -0
  206. include/rerun/archetypes/graph_nodes.hpp +206 -0
  207. include/rerun/archetypes/image.hpp +434 -0
  208. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  209. include/rerun/archetypes/line_strips2d.hpp +289 -0
  210. include/rerun/archetypes/line_strips3d.hpp +270 -0
  211. include/rerun/archetypes/mesh3d.hpp +387 -0
  212. include/rerun/archetypes/pinhole.hpp +385 -0
  213. include/rerun/archetypes/points2d.hpp +333 -0
  214. include/rerun/archetypes/points3d.hpp +369 -0
  215. include/rerun/archetypes/recording_properties.hpp +132 -0
  216. include/rerun/archetypes/scalar.hpp +170 -0
  217. include/rerun/archetypes/scalars.hpp +153 -0
  218. include/rerun/archetypes/segmentation_image.hpp +305 -0
  219. include/rerun/archetypes/series_line.hpp +274 -0
  220. include/rerun/archetypes/series_lines.hpp +271 -0
  221. include/rerun/archetypes/series_point.hpp +265 -0
  222. include/rerun/archetypes/series_points.hpp +251 -0
  223. include/rerun/archetypes/tensor.hpp +213 -0
  224. include/rerun/archetypes/text_document.hpp +200 -0
  225. include/rerun/archetypes/text_log.hpp +211 -0
  226. include/rerun/archetypes/transform3d.hpp +925 -0
  227. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  228. include/rerun/archetypes/view_coordinates.hpp +393 -0
  229. include/rerun/archetypes.hpp +43 -0
  230. include/rerun/arrow_utils.hpp +32 -0
  231. include/rerun/as_components.hpp +90 -0
  232. include/rerun/blueprint/archetypes/background.hpp +113 -0
  233. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  234. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  235. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  236. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  237. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  238. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  239. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  240. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  241. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  242. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  243. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  244. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  245. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  246. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  247. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  248. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  249. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  250. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  251. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  252. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  253. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  254. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  255. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  256. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  257. include/rerun/blueprint/archetypes.hpp +29 -0
  258. include/rerun/blueprint/components/active_tab.hpp +82 -0
  259. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  260. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  261. include/rerun/blueprint/components/auto_views.hpp +77 -0
  262. include/rerun/blueprint/components/background_kind.hpp +66 -0
  263. include/rerun/blueprint/components/column_share.hpp +78 -0
  264. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  265. include/rerun/blueprint/components/container_kind.hpp +65 -0
  266. include/rerun/blueprint/components/corner2d.hpp +64 -0
  267. include/rerun/blueprint/components/enabled.hpp +77 -0
  268. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  269. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  270. include/rerun/blueprint/components/force_distance.hpp +82 -0
  271. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  272. include/rerun/blueprint/components/force_strength.hpp +82 -0
  273. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  274. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  275. include/rerun/blueprint/components/included_content.hpp +86 -0
  276. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  277. include/rerun/blueprint/components/map_provider.hpp +64 -0
  278. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  279. include/rerun/blueprint/components/panel_state.hpp +61 -0
  280. include/rerun/blueprint/components/query_expression.hpp +89 -0
  281. include/rerun/blueprint/components/root_container.hpp +77 -0
  282. include/rerun/blueprint/components/row_share.hpp +78 -0
  283. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  284. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  285. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  286. include/rerun/blueprint/components/view_class.hpp +76 -0
  287. include/rerun/blueprint/components/view_fit.hpp +61 -0
  288. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  289. include/rerun/blueprint/components/view_origin.hpp +81 -0
  290. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  291. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  292. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  293. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  294. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  295. include/rerun/blueprint/components.hpp +41 -0
  296. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  297. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  298. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  299. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  300. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  301. include/rerun/blueprint/datatypes.hpp +9 -0
  302. include/rerun/c/arrow_c_data_interface.h +111 -0
  303. include/rerun/c/compiler_utils.h +10 -0
  304. include/rerun/c/rerun.h +627 -0
  305. include/rerun/c/sdk_info.h +28 -0
  306. include/rerun/collection.hpp +496 -0
  307. include/rerun/collection_adapter.hpp +43 -0
  308. include/rerun/collection_adapter_builtins.hpp +138 -0
  309. include/rerun/compiler_utils.hpp +61 -0
  310. include/rerun/component_batch.hpp +163 -0
  311. include/rerun/component_column.hpp +111 -0
  312. include/rerun/component_descriptor.hpp +142 -0
  313. include/rerun/component_type.hpp +35 -0
  314. include/rerun/components/aggregation_policy.hpp +76 -0
  315. include/rerun/components/albedo_factor.hpp +74 -0
  316. include/rerun/components/annotation_context.hpp +102 -0
  317. include/rerun/components/axis_length.hpp +74 -0
  318. include/rerun/components/blob.hpp +73 -0
  319. include/rerun/components/class_id.hpp +71 -0
  320. include/rerun/components/clear_is_recursive.hpp +75 -0
  321. include/rerun/components/color.hpp +99 -0
  322. include/rerun/components/colormap.hpp +99 -0
  323. include/rerun/components/depth_meter.hpp +84 -0
  324. include/rerun/components/draw_order.hpp +79 -0
  325. include/rerun/components/entity_path.hpp +83 -0
  326. include/rerun/components/fill_mode.hpp +72 -0
  327. include/rerun/components/fill_ratio.hpp +79 -0
  328. include/rerun/components/gamma_correction.hpp +80 -0
  329. include/rerun/components/geo_line_string.hpp +63 -0
  330. include/rerun/components/graph_edge.hpp +75 -0
  331. include/rerun/components/graph_node.hpp +79 -0
  332. include/rerun/components/graph_type.hpp +57 -0
  333. include/rerun/components/half_size2d.hpp +91 -0
  334. include/rerun/components/half_size3d.hpp +95 -0
  335. include/rerun/components/image_buffer.hpp +86 -0
  336. include/rerun/components/image_format.hpp +84 -0
  337. include/rerun/components/image_plane_distance.hpp +77 -0
  338. include/rerun/components/interactive.hpp +76 -0
  339. include/rerun/components/keypoint_id.hpp +74 -0
  340. include/rerun/components/lat_lon.hpp +89 -0
  341. include/rerun/components/length.hpp +77 -0
  342. include/rerun/components/line_strip2d.hpp +73 -0
  343. include/rerun/components/line_strip3d.hpp +73 -0
  344. include/rerun/components/magnification_filter.hpp +63 -0
  345. include/rerun/components/marker_shape.hpp +82 -0
  346. include/rerun/components/marker_size.hpp +74 -0
  347. include/rerun/components/media_type.hpp +157 -0
  348. include/rerun/components/name.hpp +83 -0
  349. include/rerun/components/opacity.hpp +77 -0
  350. include/rerun/components/pinhole_projection.hpp +94 -0
  351. include/rerun/components/plane3d.hpp +75 -0
  352. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  353. include/rerun/components/pose_rotation_quat.hpp +71 -0
  354. include/rerun/components/pose_scale3d.hpp +102 -0
  355. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  356. include/rerun/components/pose_translation3d.hpp +96 -0
  357. include/rerun/components/position2d.hpp +86 -0
  358. include/rerun/components/position3d.hpp +90 -0
  359. include/rerun/components/radius.hpp +98 -0
  360. include/rerun/components/range1d.hpp +75 -0
  361. include/rerun/components/resolution.hpp +88 -0
  362. include/rerun/components/rotation_axis_angle.hpp +72 -0
  363. include/rerun/components/rotation_quat.hpp +71 -0
  364. include/rerun/components/scalar.hpp +76 -0
  365. include/rerun/components/scale3d.hpp +102 -0
  366. include/rerun/components/series_visible.hpp +76 -0
  367. include/rerun/components/show_labels.hpp +79 -0
  368. include/rerun/components/stroke_width.hpp +74 -0
  369. include/rerun/components/tensor_data.hpp +94 -0
  370. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  371. include/rerun/components/tensor_height_dimension.hpp +71 -0
  372. include/rerun/components/tensor_width_dimension.hpp +71 -0
  373. include/rerun/components/texcoord2d.hpp +101 -0
  374. include/rerun/components/text.hpp +83 -0
  375. include/rerun/components/text_log_level.hpp +110 -0
  376. include/rerun/components/timestamp.hpp +76 -0
  377. include/rerun/components/transform_mat3x3.hpp +92 -0
  378. include/rerun/components/transform_relation.hpp +66 -0
  379. include/rerun/components/translation3d.hpp +96 -0
  380. include/rerun/components/triangle_indices.hpp +85 -0
  381. include/rerun/components/value_range.hpp +78 -0
  382. include/rerun/components/vector2d.hpp +92 -0
  383. include/rerun/components/vector3d.hpp +96 -0
  384. include/rerun/components/video_timestamp.hpp +120 -0
  385. include/rerun/components/view_coordinates.hpp +346 -0
  386. include/rerun/components/visible.hpp +74 -0
  387. include/rerun/components.hpp +77 -0
  388. include/rerun/config.hpp +52 -0
  389. include/rerun/datatypes/angle.hpp +76 -0
  390. include/rerun/datatypes/annotation_info.hpp +76 -0
  391. include/rerun/datatypes/blob.hpp +67 -0
  392. include/rerun/datatypes/bool.hpp +57 -0
  393. include/rerun/datatypes/channel_datatype.hpp +87 -0
  394. include/rerun/datatypes/class_description.hpp +92 -0
  395. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  396. include/rerun/datatypes/class_id.hpp +62 -0
  397. include/rerun/datatypes/color_model.hpp +68 -0
  398. include/rerun/datatypes/dvec2d.hpp +76 -0
  399. include/rerun/datatypes/entity_path.hpp +60 -0
  400. include/rerun/datatypes/float32.hpp +62 -0
  401. include/rerun/datatypes/float64.hpp +62 -0
  402. include/rerun/datatypes/image_format.hpp +107 -0
  403. include/rerun/datatypes/keypoint_id.hpp +63 -0
  404. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  405. include/rerun/datatypes/mat3x3.hpp +105 -0
  406. include/rerun/datatypes/mat4x4.hpp +119 -0
  407. include/rerun/datatypes/pixel_format.hpp +142 -0
  408. include/rerun/datatypes/plane3d.hpp +60 -0
  409. include/rerun/datatypes/quaternion.hpp +110 -0
  410. include/rerun/datatypes/range1d.hpp +59 -0
  411. include/rerun/datatypes/range2d.hpp +55 -0
  412. include/rerun/datatypes/rgba32.hpp +94 -0
  413. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  414. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  415. include/rerun/datatypes/tensor_data.hpp +100 -0
  416. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  417. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  418. include/rerun/datatypes/time_int.hpp +62 -0
  419. include/rerun/datatypes/time_range.hpp +55 -0
  420. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  421. include/rerun/datatypes/uint16.hpp +62 -0
  422. include/rerun/datatypes/uint32.hpp +62 -0
  423. include/rerun/datatypes/uint64.hpp +62 -0
  424. include/rerun/datatypes/utf8.hpp +76 -0
  425. include/rerun/datatypes/utf8pair.hpp +62 -0
  426. include/rerun/datatypes/uuid.hpp +60 -0
  427. include/rerun/datatypes/uvec2d.hpp +76 -0
  428. include/rerun/datatypes/uvec3d.hpp +80 -0
  429. include/rerun/datatypes/uvec4d.hpp +59 -0
  430. include/rerun/datatypes/vec2d.hpp +76 -0
  431. include/rerun/datatypes/vec3d.hpp +80 -0
  432. include/rerun/datatypes/vec4d.hpp +84 -0
  433. include/rerun/datatypes/video_timestamp.hpp +67 -0
  434. include/rerun/datatypes/view_coordinates.hpp +87 -0
  435. include/rerun/datatypes/visible_time_range.hpp +57 -0
  436. include/rerun/datatypes.hpp +51 -0
  437. include/rerun/demo_utils.hpp +75 -0
  438. include/rerun/entity_path.hpp +20 -0
  439. include/rerun/error.hpp +180 -0
  440. include/rerun/half.hpp +10 -0
  441. include/rerun/image_utils.hpp +187 -0
  442. include/rerun/indicator_component.hpp +59 -0
  443. include/rerun/loggable.hpp +54 -0
  444. include/rerun/recording_stream.hpp +960 -0
  445. include/rerun/rerun_sdk_export.hpp +25 -0
  446. include/rerun/result.hpp +86 -0
  447. include/rerun/rotation3d.hpp +33 -0
  448. include/rerun/sdk_info.hpp +20 -0
  449. include/rerun/spawn.hpp +21 -0
  450. include/rerun/spawn_options.hpp +57 -0
  451. include/rerun/string_utils.hpp +16 -0
  452. include/rerun/third_party/cxxopts.hpp +2198 -0
  453. include/rerun/time_column.hpp +288 -0
  454. include/rerun/timeline.hpp +38 -0
  455. include/rerun/type_traits.hpp +40 -0
  456. include/rerun.hpp +86 -0
  457. lib/cmake/axel/axel-config.cmake +45 -0
  458. lib/cmake/axel/axelTargets-release.cmake +19 -0
  459. lib/cmake/axel/axelTargets.cmake +108 -0
  460. lib/cmake/momentum/FindFbxSdk.cmake +115 -0
  461. lib/cmake/momentum/Findre2.cmake +52 -0
  462. lib/cmake/momentum/momentum-config.cmake +67 -0
  463. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  464. lib/cmake/momentum/momentumTargets.cmake +385 -0
  465. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  466. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  467. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  468. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  469. lib/libarrow.a +0 -0
  470. lib/libarrow_bundled_dependencies.a +0 -0
  471. lib/libaxel.a +0 -0
  472. lib/libmomentum_app_utils.a +0 -0
  473. lib/libmomentum_character.a +0 -0
  474. lib/libmomentum_character_sequence_solver.a +0 -0
  475. lib/libmomentum_character_solver.a +0 -0
  476. lib/libmomentum_common.a +0 -0
  477. lib/libmomentum_diff_ik.a +0 -0
  478. lib/libmomentum_io.a +0 -0
  479. lib/libmomentum_io_common.a +0 -0
  480. lib/libmomentum_io_fbx.a +0 -0
  481. lib/libmomentum_io_gltf.a +0 -0
  482. lib/libmomentum_io_legacy_json.a +0 -0
  483. lib/libmomentum_io_marker.a +0 -0
  484. lib/libmomentum_io_motion.a +0 -0
  485. lib/libmomentum_io_shape.a +0 -0
  486. lib/libmomentum_io_skeleton.a +0 -0
  487. lib/libmomentum_io_urdf.a +0 -0
  488. lib/libmomentum_marker_tracker.a +0 -0
  489. lib/libmomentum_math.a +0 -0
  490. lib/libmomentum_online_qr.a +0 -0
  491. lib/libmomentum_process_markers.a +0 -0
  492. lib/libmomentum_rerun.a +0 -0
  493. lib/libmomentum_simd_constraints.a +0 -0
  494. lib/libmomentum_simd_generalized_loss.a +0 -0
  495. lib/libmomentum_skeleton.a +0 -0
  496. lib/libmomentum_solver.a +0 -0
  497. lib/librerun_c__macos_arm64.a +0 -0
  498. lib/librerun_sdk.a +0 -0
  499. pymomentum/axel.cpython-312-darwin.so +0 -0
  500. pymomentum/backend/__init__.py +16 -0
  501. pymomentum/backend/skel_state_backend.py +631 -0
  502. pymomentum/backend/trs_backend.py +889 -0
  503. pymomentum/backend/utils.py +224 -0
  504. pymomentum/geometry.cpython-312-darwin.so +0 -0
  505. pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
  506. pymomentum/quaternion.py +740 -0
  507. pymomentum/skel_state.py +514 -0
  508. pymomentum/solver.cpython-312-darwin.so +0 -0
  509. pymomentum/solver2.cpython-312-darwin.so +0 -0
  510. pymomentum/torch/character.py +868 -0
  511. pymomentum/torch/parameter_limits.py +494 -0
  512. pymomentum/torch/utility.py +20 -0
  513. pymomentum/trs.py +535 -0
  514. pymomentum_cpu-0.1.93.post0.dist-info/METADATA +126 -0
  515. pymomentum_cpu-0.1.93.post0.dist-info/RECORD +517 -0
  516. pymomentum_cpu-0.1.93.post0.dist-info/WHEEL +5 -0
  517. pymomentum_cpu-0.1.93.post0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,155 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/math/types.h>
11
+ #include <momentum/solver/fwd.h>
12
+
13
+ #include <string>
14
+ #include <unordered_map>
15
+
16
+ namespace momentum {
17
+
18
+ /// Common options for numerical optimization solvers.
19
+ struct SolverOptions {
20
+ /// Minimum number of iterations before checking convergence criteria
21
+ size_t minIterations = 1;
22
+
23
+ /// Maximum number of iterations before terminating
24
+ size_t maxIterations = 2;
25
+
26
+ /// Convergence threshold for relative error change
27
+ float threshold = 1.0f;
28
+
29
+ /// Enable detailed logging during optimization
30
+ bool verbose = false;
31
+
32
+ /// Virtual destructor for polymorphic behavior
33
+ virtual ~SolverOptions() = default;
34
+ };
35
+
36
+ /// Base class for numerical optimization solvers.
37
+ ///
38
+ /// Provides common functionality for iterative optimization algorithms
39
+ /// including parameter management, convergence checking, and history tracking.
40
+ template <typename T>
41
+ class SolverT {
42
+ public:
43
+ /// Constructor with solver options and function to optimize
44
+ SolverT(const SolverOptions& options, SolverFunctionT<T>* solver);
45
+
46
+ virtual ~SolverT() = default;
47
+
48
+ /// Returns the name of the solver implementation
49
+ [[nodiscard]] virtual std::string_view getName() const = 0;
50
+
51
+ /// Updates solver configuration with new options
52
+ virtual void setOptions(const SolverOptions& options);
53
+
54
+ /// Solves the optimization problem
55
+ ///
56
+ /// @param[in,out] params Vector of initial guess, updated with the optimized solution
57
+ /// @return Final objective function value after optimization
58
+ double solve(Eigen::VectorX<T>& params);
59
+
60
+ /// Specifies which parameters should be optimized
61
+ ///
62
+ /// @param parameters Bitset where each bit indicates if the corresponding parameter is enabled
63
+ virtual void setEnabledParameters(const ParameterSet& parameters);
64
+
65
+ /// Returns the current set of enabled parameters
66
+ [[nodiscard]] const ParameterSet& getActiveParameters() const;
67
+
68
+ /// Sets the current parameter values without solving
69
+ void setParameters(const Eigen::VectorX<T>& params);
70
+
71
+ /// Controls whether to store iteration history for debugging and analysis
72
+ void setStoreHistory(bool b);
73
+
74
+ /// Returns the history of the solver's iterations
75
+ ///
76
+ /// The history contains matrices for parameters, errors, and other solver-specific data
77
+ [[nodiscard]] const std::unordered_map<std::string, Eigen::MatrixX<T>>& getHistory() const;
78
+
79
+ /// Returns the minimum number of iterations before checking convergence
80
+ [[nodiscard]] size_t getMinIterations() const;
81
+
82
+ /// Returns the maximum number of iterations before terminating
83
+ [[nodiscard]] size_t getMaxIterations() const;
84
+
85
+ [[nodiscard]] size_t getNumParameters() const {
86
+ return numParameters_;
87
+ }
88
+
89
+ /// Returns the history of objective function values over the iterations of the solve
90
+ [[nodiscard]] const std::vector<double>& getErrorHistory() const {
91
+ return errorHistory_;
92
+ }
93
+
94
+ protected:
95
+ /// Initializes solver state before optimization begins
96
+ virtual void initializeSolver() = 0;
97
+
98
+ /// Performs a single iteration of the optimization algorithm
99
+ virtual void doIteration() = 0;
100
+
101
+ protected:
102
+ /// Total number of parameters in the optimization problem
103
+ size_t numParameters_;
104
+
105
+ /// Function to be optimized
106
+ SolverFunctionT<T>* solverFunction_;
107
+
108
+ /// Current parameter values
109
+ Eigen::VectorX<T> parameters_;
110
+
111
+ /// Bitset indicating which parameters are enabled for optimization
112
+ ParameterSet activeParameters_;
113
+
114
+ /// Number of parameters currently enabled for optimization
115
+ int actualParameters_;
116
+
117
+ /// Flag indicating parameter structure has changed
118
+ ///
119
+ /// Used to trigger reinitialization of solver data structures
120
+ bool newParameterPattern_;
121
+
122
+ /// Current iteration count
123
+ size_t iteration_{};
124
+
125
+ /// Current objective function value
126
+ double error_{};
127
+
128
+ /// Previous iteration's objective function value
129
+ double lastError_{};
130
+
131
+ /// Whether to record optimization progress for analysis
132
+ bool storeHistory = false;
133
+
134
+ /// Recorded data from optimization process
135
+ ///
136
+ /// Contains matrices for parameters, errors, and other solver-specific data
137
+ std::unordered_map<std::string, Eigen::MatrixX<T>> iterationHistory_;
138
+ /// History of objective function values over the iterations
139
+ std::vector<double> errorHistory_;
140
+
141
+ /// Whether to output detailed progress information
142
+ bool verbose_ = false;
143
+
144
+ private:
145
+ /// Minimum iterations before checking convergence criteria
146
+ size_t minIterations_{};
147
+
148
+ /// Maximum iterations before terminating optimization
149
+ size_t maxIterations_{};
150
+
151
+ /// Relative error change threshold for convergence
152
+ float threshold_{};
153
+ };
154
+
155
+ } // namespace momentum
@@ -0,0 +1,126 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/math/types.h>
11
+ #include <momentum/solver/fwd.h>
12
+
13
+ #include <unordered_map>
14
+
15
+ namespace momentum {
16
+
17
+ /// Abstract base class for optimization objective functions
18
+ ///
19
+ /// Provides the interface for computing objective function values, gradients,
20
+ /// and other derivatives needed by numerical optimization algorithms.
21
+ template <typename T>
22
+ class SolverFunctionT {
23
+ public:
24
+ virtual ~SolverFunctionT() = default;
25
+
26
+ /// Evaluates the objective function at the given parameter values
27
+ ///
28
+ /// @param parameters Current parameter values
29
+ /// @return Objective function value (typically sum of squared errors)
30
+ virtual double getError(const VectorX<T>& parameters) = 0;
31
+
32
+ /// Computes the gradient of the objective function
33
+ ///
34
+ /// @param parameters Current parameter values
35
+ /// @param[out] gradient Computed gradient vector
36
+ /// @return Objective function value
37
+ virtual double getGradient(const VectorX<T>& parameters, VectorX<T>& gradient) = 0;
38
+
39
+ /// Computes the Jacobian matrix for least squares problems
40
+ ///
41
+ /// @param parameters Current parameter values
42
+ /// @param[out] jacobian Jacobian matrix (m×n for m residuals and n parameters)
43
+ /// @param[out] residual Vector of residual values
44
+ /// @param[out] actualRows Number of active residual rows
45
+ /// @return Objective function value
46
+ virtual double getJacobian(
47
+ const VectorX<T>& parameters,
48
+ MatrixX<T>& jacobian,
49
+ VectorX<T>& residual,
50
+ size_t& actualRows) = 0;
51
+
52
+ /// Computes the Hessian matrix of second derivatives
53
+ ///
54
+ /// Default implementation throws an exception as this is rarely needed
55
+ /// @param parameters Current parameter values
56
+ /// @param[out] hessian Computed Hessian matrix
57
+ virtual void getHessian(const VectorX<T>& parameters, MatrixX<T>& hessian);
58
+
59
+ /// Computes JᵀJ and JᵀR for Gauss-Newton optimization
60
+ ///
61
+ /// Default implementation computes these from the Jacobian
62
+ /// @param parameters Current parameter values
63
+ /// @param[out] jtj Approximated Hessian matrix (JᵀJ)
64
+ /// @param[out] jtr Gradient vector (JᵀR)
65
+ /// @return Objective function value
66
+ virtual double getJtJR(const VectorX<T>& parameters, MatrixX<T>& jtj, VectorX<T>& jtr);
67
+
68
+ /// Computes sparse JᵀJ and JᵀR for large-scale problems
69
+ ///
70
+ /// Default implementation returns 0.0 and must be overridden for sparse optimization
71
+ /// @param parameters Current parameter values
72
+ /// @param[out] jtj Sparse approximated Hessian matrix
73
+ /// @param[out] jtr Gradient vector
74
+ /// @return Objective function value
75
+ virtual double
76
+ getJtJR_Sparse(const VectorX<T>& parameters, SparseMatrix<T>& jtj, VectorX<T>& jtr);
77
+
78
+ /// Computes derivatives needed by the solver
79
+ ///
80
+ /// Default implementation calls getJtJR
81
+ /// @param parameters Current parameter values
82
+ /// @param[out] hess Hessian matrix or approximation
83
+ /// @param[out] grad Gradient vector
84
+ /// @return Objective function value
85
+ virtual double
86
+ getSolverDerivatives(const VectorX<T>& parameters, MatrixX<T>& hess, VectorX<T>& grad);
87
+
88
+ /// Updates parameters using the computed step direction
89
+ ///
90
+ /// @param[in,out] parameters Current parameters, updated in-place
91
+ /// @param gradient Step direction (typically the negative gradient)
92
+ virtual void updateParameters(VectorX<T>& parameters, const VectorX<T>& gradient) = 0;
93
+
94
+ /// Specifies which parameters should be optimized
95
+ ///
96
+ /// Default implementation does nothing
97
+ /// @param parameterSet Bitset where each bit indicates if the corresponding parameter is enabled
98
+ virtual void setEnabledParameters(const ParameterSet& parameterSet);
99
+
100
+ /// Returns the total number of parameters in the optimization problem
101
+ [[nodiscard]] size_t getNumParameters() const;
102
+
103
+ /// Returns the number of parameters currently enabled for optimization
104
+ [[nodiscard]] size_t getActualParameters() const;
105
+
106
+ /// Records solver state for debugging and analysis
107
+ ///
108
+ /// @param[in,out] history Map to store iteration data
109
+ /// @param iteration Current iteration number
110
+ /// @param maxIterations Maximum number of iterations
111
+ virtual void storeHistory(
112
+ std::unordered_map<std::string, MatrixX<T>>& history,
113
+ size_t iteration,
114
+ size_t maxIterations_);
115
+
116
+ protected:
117
+ /// Total number of parameters in the optimization problem
118
+ size_t numParameters_{};
119
+
120
+ /// Number of parameters currently enabled for optimization
121
+ ///
122
+ /// Always less than or equal to numParameters_
123
+ size_t actualParameters_{};
124
+ };
125
+
126
+ } // namespace momentum
@@ -0,0 +1,109 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <momentum/solver/fwd.h>
11
+ #include <momentum/solver/solver.h>
12
+
13
+ namespace momentum {
14
+
15
+ /// Extended options for the Subset Gauss-Newton optimization algorithm
16
+ ///
17
+ /// Provides configuration specific to the subset-based Gauss-Newton solver
18
+ /// that optimizes only a selected subset of parameters
19
+ struct SubsetGaussNewtonSolverOptions : SolverOptions {
20
+ /// Damping parameter added to Hessian diagonal for numerical stability; see
21
+ /// https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm
22
+ ///
23
+ /// Higher values improve stability but may slow convergence
24
+ float regularization = 0.05f;
25
+
26
+ /// Enables backtracking line search to ensure error reduction at each step
27
+ bool doLineSearch = false;
28
+
29
+ /// Default constructor
30
+ SubsetGaussNewtonSolverOptions() = default;
31
+
32
+ /// Construct from base solver options while preserving Subset Gauss-Newton defaults
33
+ /* implicit */ SubsetGaussNewtonSolverOptions(const SolverOptions& baseOptions)
34
+ : SolverOptions(baseOptions) {}
35
+ };
36
+
37
+ /// Gauss-Newton solver that optimizes only a selected subset of parameters
38
+ ///
39
+ /// This specialized solver efficiently handles cases where only some parameters
40
+ /// need to be optimized while others remain fixed. It remaps the active parameters
41
+ /// to a smaller optimization problem, reducing computational cost.
42
+ template <typename T>
43
+ class SubsetGaussNewtonSolverT : public SolverT<T> {
44
+ public:
45
+ /// Creates a solver with the specified options and function to optimize
46
+ SubsetGaussNewtonSolverT(const SolverOptions& options, SolverFunctionT<T>* solver);
47
+
48
+ /// Returns "SubsetGaussNewton" as the solver name
49
+ [[nodiscard]] std::string_view getName() const override;
50
+
51
+ /// Updates solver configuration, handling both base and Subset Gauss-Newton specific options
52
+ void setOptions(const SolverOptions& options) final;
53
+
54
+ /// Specifies which parameters should be optimized
55
+ ///
56
+ /// Updates the internal mapping between full parameter space and optimization subset
57
+ void setEnabledParameters(const ParameterSet& parameters) final;
58
+
59
+ protected:
60
+ /// Performs one iteration of the Subset Gauss-Newton algorithm
61
+ ///
62
+ /// Computes the Jacobian, forms a reduced optimization problem for the enabled parameters,
63
+ /// solves it, and updates the full parameter vector
64
+ void doIteration() final;
65
+
66
+ /// Initializes solver state before optimization begins
67
+ void initializeSolver() final;
68
+
69
+ private:
70
+ /// Whether the solver has been initialized
71
+ bool initialized_{};
72
+
73
+ /// Jacobian matrix for the full parameter space
74
+ Eigen::MatrixX<T> jacobian_;
75
+
76
+ /// Residual vector
77
+ Eigen::VectorX<T> residual_;
78
+
79
+ /// Hessian approximation (JᵀJ) for the subset of enabled parameters
80
+ Eigen::MatrixX<T> subsetHessian_;
81
+
82
+ /// Gradient vector (JᵀR) for the subset of enabled parameters
83
+ Eigen::VectorX<T> subsetGradient_;
84
+
85
+ /// Cholesky factorization solver for the subset problem
86
+ Eigen::LLT<Eigen::MatrixX<T>> llt_;
87
+
88
+ /// Regularization parameter for numerical stability
89
+ float regularization_;
90
+
91
+ /// Whether to perform line search during parameter updates
92
+ bool doLineSearch_;
93
+
94
+ /// Step direction in the full parameter space
95
+ Eigen::VectorX<T> delta_;
96
+
97
+ /// Step direction in the reduced parameter space
98
+ Eigen::VectorX<T> subsetDelta_;
99
+
100
+ /// Mapping from subset parameter indices to full parameter indices
101
+ std::vector<int> enabledParameters_;
102
+
103
+ /// Updates the mapping between full and subset parameter spaces
104
+ ///
105
+ /// Called when the set of enabled parameters changes
106
+ void updateEnabledParameters();
107
+ };
108
+
109
+ } // namespace momentum
@@ -0,0 +1,157 @@
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/annotation_context.fbs".
3
+
4
+ #pragma once
5
+
6
+ #include "../collection.hpp"
7
+ #include "../component_batch.hpp"
8
+ #include "../component_column.hpp"
9
+ #include "../components/annotation_context.hpp"
10
+ #include "../indicator_component.hpp"
11
+ #include "../result.hpp"
12
+
13
+ #include <cstdint>
14
+ #include <optional>
15
+ #include <utility>
16
+ #include <vector>
17
+
18
+ namespace rerun::archetypes {
19
+ /// **Archetype**: The annotation context provides additional information on how to display entities.
20
+ ///
21
+ /// Entities can use `components::ClassId`s and `components::KeypointId`s to provide annotations, and
22
+ /// the labels and colors will be looked up in the appropriate
23
+ /// annotation context. We use the *first* annotation context we find in the
24
+ /// path-hierarchy when searching up through the ancestors of a given entity
25
+ /// path.
26
+ ///
27
+ /// See also `datatypes::ClassDescription`.
28
+ ///
29
+ /// ## Example
30
+ ///
31
+ /// ### Segmentation
32
+ /// ![image](https://static.rerun.io/annotation_context_segmentation/6c9e88fc9d44a08031cadd444c2e58a985cc1208/full.png)
33
+ ///
34
+ /// ```cpp
35
+ /// #include <rerun.hpp>
36
+ ///
37
+ /// #include <algorithm> // fill_n
38
+ /// #include <vector>
39
+ ///
40
+ /// int main() {
41
+ /// const auto rec = rerun::RecordingStream("rerun_example_annotation_context_segmentation");
42
+ /// rec.spawn().exit_on_failure();
43
+ ///
44
+ /// // create an annotation context to describe the classes
45
+ /// rec.log_static(
46
+ /// "segmentation",
47
+ /// rerun::AnnotationContext({
48
+ /// rerun::AnnotationInfo(1, "red", rerun::Rgba32(255, 0, 0)),
49
+ /// rerun::AnnotationInfo(2, "green", rerun::Rgba32(0, 255, 0)),
50
+ /// })
51
+ /// );
52
+ ///
53
+ /// // create a segmentation image
54
+ /// const int HEIGHT = 200;
55
+ /// const int WIDTH = 300;
56
+ /// std::vector<uint8_t> data(WIDTH * HEIGHT, 0);
57
+ /// for (auto y = 50; y <100; ++y) {
58
+ /// std::fill_n(data.begin() + y * WIDTH + 50, 70, static_cast<uint8_t>(1));
59
+ /// }
60
+ /// for (auto y = 100; y <180; ++y) {
61
+ /// std::fill_n(data.begin() + y * WIDTH + 130, 150, static_cast<uint8_t>(2));
62
+ /// }
63
+ ///
64
+ /// rec.log("segmentation/image", rerun::SegmentationImage(data.data(), {WIDTH, HEIGHT}));
65
+ /// }
66
+ /// ```
67
+ ///
68
+ /// ⚠ **This type is _unstable_ and may change significantly in a way that the data won't be backwards compatible.**
69
+ ///
70
+ struct AnnotationContext {
71
+ /// List of class descriptions, mapping class indices to class names, colors etc.
72
+ std::optional<ComponentBatch> context;
73
+
74
+ public:
75
+ static constexpr const char IndicatorComponentName[] =
76
+ "rerun.components.AnnotationContextIndicator";
77
+
78
+ /// Indicator component, used to identify the archetype when converting to a list of components.
79
+ using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
80
+ /// The name of the archetype as used in `ComponentDescriptor`s.
81
+ static constexpr const char ArchetypeName[] = "rerun.archetypes.AnnotationContext";
82
+
83
+ /// `ComponentDescriptor` for the `context` field.
84
+ static constexpr auto Descriptor_context = ComponentDescriptor(
85
+ ArchetypeName, "context",
86
+ Loggable<rerun::components::AnnotationContext>::Descriptor.component_name
87
+ );
88
+
89
+ public:
90
+ AnnotationContext() = default;
91
+ AnnotationContext(AnnotationContext&& other) = default;
92
+ AnnotationContext(const AnnotationContext& other) = default;
93
+ AnnotationContext& operator=(const AnnotationContext& other) = default;
94
+ AnnotationContext& operator=(AnnotationContext&& other) = default;
95
+
96
+ explicit AnnotationContext(rerun::components::AnnotationContext _context)
97
+ : context(ComponentBatch::from_loggable(std::move(_context), Descriptor_context)
98
+ .value_or_throw()) {}
99
+
100
+ /// Update only some specific fields of a `AnnotationContext`.
101
+ static AnnotationContext update_fields() {
102
+ return AnnotationContext();
103
+ }
104
+
105
+ /// Clear all the fields of a `AnnotationContext`.
106
+ static AnnotationContext clear_fields();
107
+
108
+ /// List of class descriptions, mapping class indices to class names, colors etc.
109
+ AnnotationContext with_context(const rerun::components::AnnotationContext& _context) && {
110
+ context = ComponentBatch::from_loggable(_context, Descriptor_context).value_or_throw();
111
+ return std::move(*this);
112
+ }
113
+
114
+ /// This method makes it possible to pack multiple `context` in a single component batch.
115
+ ///
116
+ /// This only makes sense when used in conjunction with `columns`. `with_context` should
117
+ /// be used when logging a single row's worth of data.
118
+ AnnotationContext with_many_context(
119
+ const Collection<rerun::components::AnnotationContext>& _context
120
+ ) && {
121
+ context = ComponentBatch::from_loggable(_context, Descriptor_context).value_or_throw();
122
+ return std::move(*this);
123
+ }
124
+
125
+ /// Partitions the component data into multiple sub-batches.
126
+ ///
127
+ /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
128
+ /// instead, via `ComponentBatch::partitioned`.
129
+ ///
130
+ /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
131
+ ///
132
+ /// The specified `lengths` must sum to the total length of the component batch.
133
+ Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
134
+
135
+ /// Partitions the component data into unit-length sub-batches.
136
+ ///
137
+ /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
138
+ /// where `n` is automatically guessed.
139
+ Collection<ComponentColumn> columns();
140
+ };
141
+
142
+ } // namespace rerun::archetypes
143
+
144
+ namespace rerun {
145
+ /// \private
146
+ template <typename T>
147
+ struct AsComponents;
148
+
149
+ /// \private
150
+ template <>
151
+ struct AsComponents<archetypes::AnnotationContext> {
152
+ /// Serialize all set component batches.
153
+ static Result<Collection<ComponentBatch>> as_batches(
154
+ const archetypes::AnnotationContext& archetype
155
+ );
156
+ };
157
+ } // namespace rerun