pymomentum-cpu 0.1.84.post0__cp313-cp313-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pymomentum-cpu might be problematic. Click here for more details.

Files changed (512) hide show
  1. include/axel/BoundingBox.h +59 -0
  2. include/axel/Bvh.h +708 -0
  3. include/axel/BvhBase.h +75 -0
  4. include/axel/BvhCommon.h +43 -0
  5. include/axel/BvhEmbree.h +86 -0
  6. include/axel/BvhFactory.h +34 -0
  7. include/axel/Checks.h +21 -0
  8. include/axel/DualContouring.h +79 -0
  9. include/axel/KdTree.h +199 -0
  10. include/axel/Log.h +22 -0
  11. include/axel/MeshToSdf.h +123 -0
  12. include/axel/Profile.h +64 -0
  13. include/axel/Ray.h +45 -0
  14. include/axel/SignedDistanceField.h +248 -0
  15. include/axel/SimdKdTree.h +515 -0
  16. include/axel/TriBvh.h +157 -0
  17. include/axel/TriBvhEmbree.h +57 -0
  18. include/axel/common/Constants.h +27 -0
  19. include/axel/common/Types.h +21 -0
  20. include/axel/common/VectorizationTypes.h +58 -0
  21. include/axel/math/BoundingBoxUtils.h +54 -0
  22. include/axel/math/ContinuousCollisionDetection.h +48 -0
  23. include/axel/math/CoplanarityCheck.h +30 -0
  24. include/axel/math/EdgeEdgeDistance.h +31 -0
  25. include/axel/math/MeshHoleFilling.h +117 -0
  26. include/axel/math/PointTriangleProjection.h +34 -0
  27. include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
  28. include/axel/math/RayTriangleIntersection.h +36 -0
  29. include/momentum/character/blend_shape.h +91 -0
  30. include/momentum/character/blend_shape_base.h +70 -0
  31. include/momentum/character/blend_shape_skinning.h +96 -0
  32. include/momentum/character/character.h +272 -0
  33. include/momentum/character/character_state.h +108 -0
  34. include/momentum/character/character_utility.h +128 -0
  35. include/momentum/character/collision_geometry.h +80 -0
  36. include/momentum/character/collision_geometry_state.h +130 -0
  37. include/momentum/character/fwd.h +262 -0
  38. include/momentum/character/inverse_parameter_transform.h +58 -0
  39. include/momentum/character/joint.h +82 -0
  40. include/momentum/character/joint_state.h +241 -0
  41. include/momentum/character/linear_skinning.h +139 -0
  42. include/momentum/character/locator.h +82 -0
  43. include/momentum/character/locator_state.h +43 -0
  44. include/momentum/character/marker.h +48 -0
  45. include/momentum/character/mesh_state.h +71 -0
  46. include/momentum/character/parameter_limits.h +144 -0
  47. include/momentum/character/parameter_transform.h +250 -0
  48. include/momentum/character/pose_shape.h +65 -0
  49. include/momentum/character/skeleton.h +85 -0
  50. include/momentum/character/skeleton_state.h +227 -0
  51. include/momentum/character/skeleton_utility.h +38 -0
  52. include/momentum/character/skin_weights.h +67 -0
  53. include/momentum/character/skinned_locator.h +80 -0
  54. include/momentum/character/types.h +202 -0
  55. include/momentum/character_sequence_solver/fwd.h +200 -0
  56. include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
  57. include/momentum/character_sequence_solver/multipose_solver.h +65 -0
  58. include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
  59. include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
  60. include/momentum/character_sequence_solver/sequence_solver.h +144 -0
  61. include/momentum/character_sequence_solver/sequence_solver_function.h +134 -0
  62. include/momentum/character_sequence_solver/state_sequence_error_function.h +109 -0
  63. include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
  64. include/momentum/character_solver/aim_error_function.h +112 -0
  65. include/momentum/character_solver/collision_error_function.h +92 -0
  66. include/momentum/character_solver/collision_error_function_stateless.h +75 -0
  67. include/momentum/character_solver/constraint_error_function-inl.h +324 -0
  68. include/momentum/character_solver/constraint_error_function.h +248 -0
  69. include/momentum/character_solver/distance_error_function.h +77 -0
  70. include/momentum/character_solver/error_function_utils.h +60 -0
  71. include/momentum/character_solver/fixed_axis_error_function.h +139 -0
  72. include/momentum/character_solver/fwd.h +924 -0
  73. include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
  74. include/momentum/character_solver/limit_error_function.h +57 -0
  75. include/momentum/character_solver/model_parameters_error_function.h +64 -0
  76. include/momentum/character_solver/normal_error_function.h +73 -0
  77. include/momentum/character_solver/orientation_error_function.h +74 -0
  78. include/momentum/character_solver/plane_error_function.h +102 -0
  79. include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
  80. include/momentum/character_solver/pose_prior_error_function.h +80 -0
  81. include/momentum/character_solver/position_error_function.h +75 -0
  82. include/momentum/character_solver/projection_error_function.h +93 -0
  83. include/momentum/character_solver/simd_collision_error_function.h +99 -0
  84. include/momentum/character_solver/simd_normal_error_function.h +157 -0
  85. include/momentum/character_solver/simd_plane_error_function.h +164 -0
  86. include/momentum/character_solver/simd_position_error_function.h +165 -0
  87. include/momentum/character_solver/skeleton_error_function.h +151 -0
  88. include/momentum/character_solver/skeleton_solver_function.h +94 -0
  89. include/momentum/character_solver/skinned_locator_error_function.h +166 -0
  90. include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
  91. include/momentum/character_solver/skinning_weight_iterator.h +80 -0
  92. include/momentum/character_solver/state_error_function.h +94 -0
  93. include/momentum/character_solver/transform_pose.h +80 -0
  94. include/momentum/character_solver/trust_region_qr.h +80 -0
  95. include/momentum/character_solver/vertex_error_function.h +155 -0
  96. include/momentum/character_solver/vertex_projection_error_function.h +117 -0
  97. include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
  98. include/momentum/common/aligned.h +155 -0
  99. include/momentum/common/checks.h +27 -0
  100. include/momentum/common/exception.h +70 -0
  101. include/momentum/common/filesystem.h +20 -0
  102. include/momentum/common/fwd.h +27 -0
  103. include/momentum/common/log.h +173 -0
  104. include/momentum/common/log_channel.h +17 -0
  105. include/momentum/common/memory.h +71 -0
  106. include/momentum/common/profile.h +79 -0
  107. include/momentum/common/progress_bar.h +37 -0
  108. include/momentum/common/string.h +52 -0
  109. include/momentum/diff_ik/ceres_utility.h +73 -0
  110. include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
  111. include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
  112. include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
  113. include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
  114. include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
  115. include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
  116. include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
  117. include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
  118. include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
  119. include/momentum/diff_ik/fwd.h +385 -0
  120. include/momentum/diff_ik/union_error_function.h +67 -0
  121. include/momentum/gui/rerun/eigen_adapters.h +70 -0
  122. include/momentum/gui/rerun/logger.h +102 -0
  123. include/momentum/gui/rerun/logging_redirect.h +27 -0
  124. include/momentum/io/character_io.h +56 -0
  125. include/momentum/io/common/gsl_utils.h +50 -0
  126. include/momentum/io/common/stream_utils.h +65 -0
  127. include/momentum/io/fbx/fbx_io.h +161 -0
  128. include/momentum/io/fbx/fbx_memory_stream.h +66 -0
  129. include/momentum/io/fbx/openfbx_loader.h +62 -0
  130. include/momentum/io/fbx/polygon_data.h +60 -0
  131. include/momentum/io/gltf/gltf_builder.h +132 -0
  132. include/momentum/io/gltf/gltf_file_format.h +19 -0
  133. include/momentum/io/gltf/gltf_io.h +148 -0
  134. include/momentum/io/gltf/utils/accessor_utils.h +299 -0
  135. include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
  136. include/momentum/io/gltf/utils/json_utils.h +102 -0
  137. include/momentum/io/legacy_json/legacy_json_io.h +70 -0
  138. include/momentum/io/marker/c3d_io.h +30 -0
  139. include/momentum/io/marker/conversions.h +57 -0
  140. include/momentum/io/marker/coordinate_system.h +30 -0
  141. include/momentum/io/marker/marker_io.h +56 -0
  142. include/momentum/io/marker/trc_io.h +27 -0
  143. include/momentum/io/motion/mmo_io.h +97 -0
  144. include/momentum/io/shape/blend_shape_io.h +70 -0
  145. include/momentum/io/shape/pose_shape_io.h +21 -0
  146. include/momentum/io/skeleton/locator_io.h +41 -0
  147. include/momentum/io/skeleton/mppca_io.h +26 -0
  148. include/momentum/io/skeleton/parameter_limits_io.h +25 -0
  149. include/momentum/io/skeleton/parameter_transform_io.h +41 -0
  150. include/momentum/io/skeleton/parameters_io.h +20 -0
  151. include/momentum/io/urdf/urdf_io.h +26 -0
  152. include/momentum/io/usd/usd_io.h +36 -0
  153. include/momentum/marker_tracking/app_utils.h +62 -0
  154. include/momentum/marker_tracking/marker_tracker.h +213 -0
  155. include/momentum/marker_tracking/process_markers.h +58 -0
  156. include/momentum/marker_tracking/tracker_utils.h +90 -0
  157. include/momentum/math/constants.h +82 -0
  158. include/momentum/math/covariance_matrix.h +84 -0
  159. include/momentum/math/fmt_eigen.h +23 -0
  160. include/momentum/math/fwd.h +132 -0
  161. include/momentum/math/generalized_loss.h +61 -0
  162. include/momentum/math/intersection.h +32 -0
  163. include/momentum/math/mesh.h +84 -0
  164. include/momentum/math/mppca.h +67 -0
  165. include/momentum/math/online_householder_qr.h +516 -0
  166. include/momentum/math/random-inl.h +404 -0
  167. include/momentum/math/random.h +310 -0
  168. include/momentum/math/simd_generalized_loss.h +40 -0
  169. include/momentum/math/transform.h +229 -0
  170. include/momentum/math/types.h +461 -0
  171. include/momentum/math/utility.h +282 -0
  172. include/momentum/rasterizer/camera.h +453 -0
  173. include/momentum/rasterizer/fwd.h +102 -0
  174. include/momentum/rasterizer/geometry.h +83 -0
  175. include/momentum/rasterizer/image.h +18 -0
  176. include/momentum/rasterizer/rasterizer.h +583 -0
  177. include/momentum/rasterizer/tensor.h +140 -0
  178. include/momentum/rasterizer/utility.h +268 -0
  179. include/momentum/simd/simd.h +221 -0
  180. include/momentum/solver/fwd.h +131 -0
  181. include/momentum/solver/gauss_newton_solver.h +136 -0
  182. include/momentum/solver/gradient_descent_solver.h +65 -0
  183. include/momentum/solver/solver.h +155 -0
  184. include/momentum/solver/solver_function.h +126 -0
  185. include/momentum/solver/subset_gauss_newton_solver.h +109 -0
  186. include/rerun/archetypes/annotation_context.hpp +157 -0
  187. include/rerun/archetypes/arrows2d.hpp +271 -0
  188. include/rerun/archetypes/arrows3d.hpp +257 -0
  189. include/rerun/archetypes/asset3d.hpp +262 -0
  190. include/rerun/archetypes/asset_video.hpp +275 -0
  191. include/rerun/archetypes/bar_chart.hpp +261 -0
  192. include/rerun/archetypes/boxes2d.hpp +293 -0
  193. include/rerun/archetypes/boxes3d.hpp +369 -0
  194. include/rerun/archetypes/capsules3d.hpp +333 -0
  195. include/rerun/archetypes/clear.hpp +180 -0
  196. include/rerun/archetypes/depth_image.hpp +425 -0
  197. include/rerun/archetypes/ellipsoids3d.hpp +384 -0
  198. include/rerun/archetypes/encoded_image.hpp +250 -0
  199. include/rerun/archetypes/geo_line_strings.hpp +166 -0
  200. include/rerun/archetypes/geo_points.hpp +177 -0
  201. include/rerun/archetypes/graph_edges.hpp +152 -0
  202. include/rerun/archetypes/graph_nodes.hpp +206 -0
  203. include/rerun/archetypes/image.hpp +434 -0
  204. include/rerun/archetypes/instance_poses3d.hpp +221 -0
  205. include/rerun/archetypes/line_strips2d.hpp +289 -0
  206. include/rerun/archetypes/line_strips3d.hpp +270 -0
  207. include/rerun/archetypes/mesh3d.hpp +387 -0
  208. include/rerun/archetypes/pinhole.hpp +385 -0
  209. include/rerun/archetypes/points2d.hpp +333 -0
  210. include/rerun/archetypes/points3d.hpp +369 -0
  211. include/rerun/archetypes/recording_properties.hpp +132 -0
  212. include/rerun/archetypes/scalar.hpp +170 -0
  213. include/rerun/archetypes/scalars.hpp +153 -0
  214. include/rerun/archetypes/segmentation_image.hpp +305 -0
  215. include/rerun/archetypes/series_line.hpp +274 -0
  216. include/rerun/archetypes/series_lines.hpp +271 -0
  217. include/rerun/archetypes/series_point.hpp +265 -0
  218. include/rerun/archetypes/series_points.hpp +251 -0
  219. include/rerun/archetypes/tensor.hpp +213 -0
  220. include/rerun/archetypes/text_document.hpp +200 -0
  221. include/rerun/archetypes/text_log.hpp +211 -0
  222. include/rerun/archetypes/transform3d.hpp +925 -0
  223. include/rerun/archetypes/video_frame_reference.hpp +295 -0
  224. include/rerun/archetypes/view_coordinates.hpp +393 -0
  225. include/rerun/archetypes.hpp +43 -0
  226. include/rerun/arrow_utils.hpp +32 -0
  227. include/rerun/as_components.hpp +90 -0
  228. include/rerun/blueprint/archetypes/background.hpp +113 -0
  229. include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
  230. include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
  231. include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
  232. include/rerun/blueprint/archetypes/force_center.hpp +115 -0
  233. include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
  234. include/rerun/blueprint/archetypes/force_link.hpp +136 -0
  235. include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
  236. include/rerun/blueprint/archetypes/force_position.hpp +132 -0
  237. include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
  238. include/rerun/blueprint/archetypes/map_background.hpp +104 -0
  239. include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
  240. include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
  241. include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
  242. include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
  243. include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
  244. include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
  245. include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
  246. include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
  247. include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
  248. include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
  249. include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
  250. include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
  251. include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
  252. include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
  253. include/rerun/blueprint/archetypes.hpp +29 -0
  254. include/rerun/blueprint/components/active_tab.hpp +82 -0
  255. include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
  256. include/rerun/blueprint/components/auto_layout.hpp +77 -0
  257. include/rerun/blueprint/components/auto_views.hpp +77 -0
  258. include/rerun/blueprint/components/background_kind.hpp +66 -0
  259. include/rerun/blueprint/components/column_share.hpp +78 -0
  260. include/rerun/blueprint/components/component_column_selector.hpp +81 -0
  261. include/rerun/blueprint/components/container_kind.hpp +65 -0
  262. include/rerun/blueprint/components/corner2d.hpp +64 -0
  263. include/rerun/blueprint/components/enabled.hpp +77 -0
  264. include/rerun/blueprint/components/filter_by_range.hpp +74 -0
  265. include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
  266. include/rerun/blueprint/components/force_distance.hpp +82 -0
  267. include/rerun/blueprint/components/force_iterations.hpp +82 -0
  268. include/rerun/blueprint/components/force_strength.hpp +82 -0
  269. include/rerun/blueprint/components/grid_columns.hpp +78 -0
  270. include/rerun/blueprint/components/grid_spacing.hpp +78 -0
  271. include/rerun/blueprint/components/included_content.hpp +86 -0
  272. include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
  273. include/rerun/blueprint/components/map_provider.hpp +64 -0
  274. include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
  275. include/rerun/blueprint/components/panel_state.hpp +61 -0
  276. include/rerun/blueprint/components/query_expression.hpp +89 -0
  277. include/rerun/blueprint/components/root_container.hpp +77 -0
  278. include/rerun/blueprint/components/row_share.hpp +78 -0
  279. include/rerun/blueprint/components/selected_columns.hpp +76 -0
  280. include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
  281. include/rerun/blueprint/components/timeline_name.hpp +76 -0
  282. include/rerun/blueprint/components/view_class.hpp +76 -0
  283. include/rerun/blueprint/components/view_fit.hpp +61 -0
  284. include/rerun/blueprint/components/view_maximized.hpp +79 -0
  285. include/rerun/blueprint/components/view_origin.hpp +81 -0
  286. include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
  287. include/rerun/blueprint/components/visible_time_range.hpp +77 -0
  288. include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
  289. include/rerun/blueprint/components/visualizer_override.hpp +86 -0
  290. include/rerun/blueprint/components/zoom_level.hpp +78 -0
  291. include/rerun/blueprint/components.hpp +41 -0
  292. include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
  293. include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
  294. include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
  295. include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
  296. include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
  297. include/rerun/blueprint/datatypes.hpp +9 -0
  298. include/rerun/c/arrow_c_data_interface.h +111 -0
  299. include/rerun/c/compiler_utils.h +10 -0
  300. include/rerun/c/rerun.h +627 -0
  301. include/rerun/c/sdk_info.h +28 -0
  302. include/rerun/collection.hpp +496 -0
  303. include/rerun/collection_adapter.hpp +43 -0
  304. include/rerun/collection_adapter_builtins.hpp +138 -0
  305. include/rerun/compiler_utils.hpp +61 -0
  306. include/rerun/component_batch.hpp +163 -0
  307. include/rerun/component_column.hpp +111 -0
  308. include/rerun/component_descriptor.hpp +142 -0
  309. include/rerun/component_type.hpp +35 -0
  310. include/rerun/components/aggregation_policy.hpp +76 -0
  311. include/rerun/components/albedo_factor.hpp +74 -0
  312. include/rerun/components/annotation_context.hpp +102 -0
  313. include/rerun/components/axis_length.hpp +74 -0
  314. include/rerun/components/blob.hpp +73 -0
  315. include/rerun/components/class_id.hpp +71 -0
  316. include/rerun/components/clear_is_recursive.hpp +75 -0
  317. include/rerun/components/color.hpp +99 -0
  318. include/rerun/components/colormap.hpp +99 -0
  319. include/rerun/components/depth_meter.hpp +84 -0
  320. include/rerun/components/draw_order.hpp +79 -0
  321. include/rerun/components/entity_path.hpp +83 -0
  322. include/rerun/components/fill_mode.hpp +72 -0
  323. include/rerun/components/fill_ratio.hpp +79 -0
  324. include/rerun/components/gamma_correction.hpp +80 -0
  325. include/rerun/components/geo_line_string.hpp +63 -0
  326. include/rerun/components/graph_edge.hpp +75 -0
  327. include/rerun/components/graph_node.hpp +79 -0
  328. include/rerun/components/graph_type.hpp +57 -0
  329. include/rerun/components/half_size2d.hpp +91 -0
  330. include/rerun/components/half_size3d.hpp +95 -0
  331. include/rerun/components/image_buffer.hpp +86 -0
  332. include/rerun/components/image_format.hpp +84 -0
  333. include/rerun/components/image_plane_distance.hpp +77 -0
  334. include/rerun/components/interactive.hpp +76 -0
  335. include/rerun/components/keypoint_id.hpp +74 -0
  336. include/rerun/components/lat_lon.hpp +89 -0
  337. include/rerun/components/length.hpp +77 -0
  338. include/rerun/components/line_strip2d.hpp +73 -0
  339. include/rerun/components/line_strip3d.hpp +73 -0
  340. include/rerun/components/magnification_filter.hpp +63 -0
  341. include/rerun/components/marker_shape.hpp +82 -0
  342. include/rerun/components/marker_size.hpp +74 -0
  343. include/rerun/components/media_type.hpp +157 -0
  344. include/rerun/components/name.hpp +83 -0
  345. include/rerun/components/opacity.hpp +77 -0
  346. include/rerun/components/pinhole_projection.hpp +94 -0
  347. include/rerun/components/plane3d.hpp +75 -0
  348. include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
  349. include/rerun/components/pose_rotation_quat.hpp +71 -0
  350. include/rerun/components/pose_scale3d.hpp +102 -0
  351. include/rerun/components/pose_transform_mat3x3.hpp +87 -0
  352. include/rerun/components/pose_translation3d.hpp +96 -0
  353. include/rerun/components/position2d.hpp +86 -0
  354. include/rerun/components/position3d.hpp +90 -0
  355. include/rerun/components/radius.hpp +98 -0
  356. include/rerun/components/range1d.hpp +75 -0
  357. include/rerun/components/resolution.hpp +88 -0
  358. include/rerun/components/rotation_axis_angle.hpp +72 -0
  359. include/rerun/components/rotation_quat.hpp +71 -0
  360. include/rerun/components/scalar.hpp +76 -0
  361. include/rerun/components/scale3d.hpp +102 -0
  362. include/rerun/components/series_visible.hpp +76 -0
  363. include/rerun/components/show_labels.hpp +79 -0
  364. include/rerun/components/stroke_width.hpp +74 -0
  365. include/rerun/components/tensor_data.hpp +94 -0
  366. include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
  367. include/rerun/components/tensor_height_dimension.hpp +71 -0
  368. include/rerun/components/tensor_width_dimension.hpp +71 -0
  369. include/rerun/components/texcoord2d.hpp +101 -0
  370. include/rerun/components/text.hpp +83 -0
  371. include/rerun/components/text_log_level.hpp +110 -0
  372. include/rerun/components/timestamp.hpp +76 -0
  373. include/rerun/components/transform_mat3x3.hpp +92 -0
  374. include/rerun/components/transform_relation.hpp +66 -0
  375. include/rerun/components/translation3d.hpp +96 -0
  376. include/rerun/components/triangle_indices.hpp +85 -0
  377. include/rerun/components/value_range.hpp +78 -0
  378. include/rerun/components/vector2d.hpp +92 -0
  379. include/rerun/components/vector3d.hpp +96 -0
  380. include/rerun/components/video_timestamp.hpp +120 -0
  381. include/rerun/components/view_coordinates.hpp +346 -0
  382. include/rerun/components/visible.hpp +74 -0
  383. include/rerun/components.hpp +77 -0
  384. include/rerun/config.hpp +52 -0
  385. include/rerun/datatypes/angle.hpp +76 -0
  386. include/rerun/datatypes/annotation_info.hpp +76 -0
  387. include/rerun/datatypes/blob.hpp +67 -0
  388. include/rerun/datatypes/bool.hpp +57 -0
  389. include/rerun/datatypes/channel_datatype.hpp +87 -0
  390. include/rerun/datatypes/class_description.hpp +92 -0
  391. include/rerun/datatypes/class_description_map_elem.hpp +69 -0
  392. include/rerun/datatypes/class_id.hpp +62 -0
  393. include/rerun/datatypes/color_model.hpp +68 -0
  394. include/rerun/datatypes/dvec2d.hpp +76 -0
  395. include/rerun/datatypes/entity_path.hpp +60 -0
  396. include/rerun/datatypes/float32.hpp +62 -0
  397. include/rerun/datatypes/float64.hpp +62 -0
  398. include/rerun/datatypes/image_format.hpp +107 -0
  399. include/rerun/datatypes/keypoint_id.hpp +63 -0
  400. include/rerun/datatypes/keypoint_pair.hpp +65 -0
  401. include/rerun/datatypes/mat3x3.hpp +105 -0
  402. include/rerun/datatypes/mat4x4.hpp +119 -0
  403. include/rerun/datatypes/pixel_format.hpp +142 -0
  404. include/rerun/datatypes/plane3d.hpp +60 -0
  405. include/rerun/datatypes/quaternion.hpp +110 -0
  406. include/rerun/datatypes/range1d.hpp +59 -0
  407. include/rerun/datatypes/range2d.hpp +55 -0
  408. include/rerun/datatypes/rgba32.hpp +94 -0
  409. include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
  410. include/rerun/datatypes/tensor_buffer.hpp +529 -0
  411. include/rerun/datatypes/tensor_data.hpp +100 -0
  412. include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
  413. include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
  414. include/rerun/datatypes/time_int.hpp +62 -0
  415. include/rerun/datatypes/time_range.hpp +55 -0
  416. include/rerun/datatypes/time_range_boundary.hpp +175 -0
  417. include/rerun/datatypes/uint16.hpp +62 -0
  418. include/rerun/datatypes/uint32.hpp +62 -0
  419. include/rerun/datatypes/uint64.hpp +62 -0
  420. include/rerun/datatypes/utf8.hpp +76 -0
  421. include/rerun/datatypes/utf8pair.hpp +62 -0
  422. include/rerun/datatypes/uuid.hpp +60 -0
  423. include/rerun/datatypes/uvec2d.hpp +76 -0
  424. include/rerun/datatypes/uvec3d.hpp +80 -0
  425. include/rerun/datatypes/uvec4d.hpp +59 -0
  426. include/rerun/datatypes/vec2d.hpp +76 -0
  427. include/rerun/datatypes/vec3d.hpp +80 -0
  428. include/rerun/datatypes/vec4d.hpp +84 -0
  429. include/rerun/datatypes/video_timestamp.hpp +67 -0
  430. include/rerun/datatypes/view_coordinates.hpp +87 -0
  431. include/rerun/datatypes/visible_time_range.hpp +57 -0
  432. include/rerun/datatypes.hpp +51 -0
  433. include/rerun/demo_utils.hpp +75 -0
  434. include/rerun/entity_path.hpp +20 -0
  435. include/rerun/error.hpp +180 -0
  436. include/rerun/half.hpp +10 -0
  437. include/rerun/image_utils.hpp +187 -0
  438. include/rerun/indicator_component.hpp +59 -0
  439. include/rerun/loggable.hpp +54 -0
  440. include/rerun/recording_stream.hpp +960 -0
  441. include/rerun/rerun_sdk_export.hpp +25 -0
  442. include/rerun/result.hpp +86 -0
  443. include/rerun/rotation3d.hpp +33 -0
  444. include/rerun/sdk_info.hpp +20 -0
  445. include/rerun/spawn.hpp +21 -0
  446. include/rerun/spawn_options.hpp +57 -0
  447. include/rerun/string_utils.hpp +16 -0
  448. include/rerun/third_party/cxxopts.hpp +2198 -0
  449. include/rerun/time_column.hpp +288 -0
  450. include/rerun/timeline.hpp +38 -0
  451. include/rerun/type_traits.hpp +40 -0
  452. include/rerun.hpp +86 -0
  453. lib/cmake/axel/axel-config.cmake +45 -0
  454. lib/cmake/axel/axelTargets-release.cmake +19 -0
  455. lib/cmake/axel/axelTargets.cmake +108 -0
  456. lib/cmake/momentum/Findre2.cmake +52 -0
  457. lib/cmake/momentum/momentum-config.cmake +67 -0
  458. lib/cmake/momentum/momentumTargets-release.cmake +259 -0
  459. lib/cmake/momentum/momentumTargets.cmake +377 -0
  460. lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
  461. lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
  462. lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
  463. lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
  464. lib/libarrow.a +0 -0
  465. lib/libarrow_bundled_dependencies.a +0 -0
  466. lib/libaxel.a +0 -0
  467. lib/libmomentum_app_utils.a +0 -0
  468. lib/libmomentum_character.a +0 -0
  469. lib/libmomentum_character_sequence_solver.a +0 -0
  470. lib/libmomentum_character_solver.a +0 -0
  471. lib/libmomentum_common.a +0 -0
  472. lib/libmomentum_diff_ik.a +0 -0
  473. lib/libmomentum_io.a +0 -0
  474. lib/libmomentum_io_common.a +0 -0
  475. lib/libmomentum_io_fbx.a +0 -0
  476. lib/libmomentum_io_gltf.a +0 -0
  477. lib/libmomentum_io_legacy_json.a +0 -0
  478. lib/libmomentum_io_marker.a +0 -0
  479. lib/libmomentum_io_motion.a +0 -0
  480. lib/libmomentum_io_shape.a +0 -0
  481. lib/libmomentum_io_skeleton.a +0 -0
  482. lib/libmomentum_io_urdf.a +0 -0
  483. lib/libmomentum_marker_tracker.a +0 -0
  484. lib/libmomentum_math.a +0 -0
  485. lib/libmomentum_online_qr.a +0 -0
  486. lib/libmomentum_process_markers.a +0 -0
  487. lib/libmomentum_rerun.a +0 -0
  488. lib/libmomentum_simd_constraints.a +0 -0
  489. lib/libmomentum_simd_generalized_loss.a +0 -0
  490. lib/libmomentum_skeleton.a +0 -0
  491. lib/libmomentum_solver.a +0 -0
  492. lib/librerun_c__macos_arm64.a +0 -0
  493. lib/librerun_sdk.a +0 -0
  494. pymomentum/axel.cpython-313-darwin.so +0 -0
  495. pymomentum/backend/__init__.py +16 -0
  496. pymomentum/backend/skel_state_backend.py +631 -0
  497. pymomentum/backend/trs_backend.py +889 -0
  498. pymomentum/backend/utils.py +224 -0
  499. pymomentum/geometry.cpython-313-darwin.so +0 -0
  500. pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
  501. pymomentum/quaternion.py +740 -0
  502. pymomentum/skel_state.py +514 -0
  503. pymomentum/solver.cpython-313-darwin.so +0 -0
  504. pymomentum/solver2.cpython-313-darwin.so +0 -0
  505. pymomentum/torch/character.py +863 -0
  506. pymomentum/torch/parameter_limits.py +494 -0
  507. pymomentum/torch/utility.py +20 -0
  508. pymomentum/trs.py +535 -0
  509. pymomentum_cpu-0.1.84.post0.dist-info/METADATA +126 -0
  510. pymomentum_cpu-0.1.84.post0.dist-info/RECORD +512 -0
  511. pymomentum_cpu-0.1.84.post0.dist-info/WHEEL +5 -0
  512. pymomentum_cpu-0.1.84.post0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,117 @@
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/character_solver/fwd.h>
11
+ #include <momentum/character_solver/skeleton_error_function.h>
12
+ #include <momentum/math/fwd.h>
13
+
14
+ namespace momentum {
15
+
16
+ template <typename T>
17
+ struct VertexProjectionConstraintT {
18
+ int vertexIndex = -1;
19
+ T weight = 1;
20
+ Eigen::Vector2<T> targetPosition;
21
+ Eigen::Matrix<T, 3, 4> projection; // Projection matrix
22
+
23
+ template <typename T2>
24
+ VertexProjectionConstraintT<T2> cast() const {
25
+ return {
26
+ this->vertexIndex,
27
+ (T)this->weight,
28
+ this->targetPosition.template cast<T2>(),
29
+ };
30
+ }
31
+ };
32
+
33
+ template <typename T>
34
+ class VertexProjectionErrorFunctionT : public SkeletonErrorFunctionT<T> {
35
+ public:
36
+ explicit VertexProjectionErrorFunctionT(const Character& character, uint32_t maxThreads = 0);
37
+ ~VertexProjectionErrorFunctionT() override;
38
+
39
+ [[nodiscard]] double getError(
40
+ const ModelParametersT<T>& modelParameters,
41
+ const SkeletonStateT<T>& state,
42
+ const MeshStateT<T>& meshState) final;
43
+
44
+ double getGradient(
45
+ const ModelParametersT<T>& modelParameters,
46
+ const SkeletonStateT<T>& state,
47
+ const MeshStateT<T>& meshState,
48
+ Eigen::Ref<Eigen::VectorX<T>> gradient) final;
49
+
50
+ double getJacobian(
51
+ const ModelParametersT<T>& modelParameters,
52
+ const SkeletonStateT<T>& state,
53
+ const MeshStateT<T>& meshState,
54
+ Eigen::Ref<Eigen::MatrixX<T>> jacobian,
55
+ Eigen::Ref<Eigen::VectorX<T>> residual,
56
+ int& usedRows) final;
57
+
58
+ [[nodiscard]] size_t getJacobianSize() const final;
59
+
60
+ void addConstraint(
61
+ int vertexIndex,
62
+ T weight,
63
+ const Eigen::Vector2<T>& targetPosition,
64
+ const Eigen::Matrix<T, 3, 4>& projection);
65
+ void clearConstraints();
66
+
67
+ [[nodiscard]] const std::vector<VertexProjectionConstraintT<T>>& getConstraints() const {
68
+ return constraints_;
69
+ }
70
+
71
+ [[nodiscard]] const Character* getCharacter() const override {
72
+ return &character_;
73
+ }
74
+
75
+ [[nodiscard]] size_t numConstraints() const {
76
+ return constraints_.size();
77
+ }
78
+
79
+ /// Override to indicate this function requires mesh state
80
+ [[nodiscard]] bool needsMesh() const override {
81
+ return true;
82
+ }
83
+
84
+ private:
85
+ double calculateJacobian(
86
+ const ModelParametersT<T>& modelParameters,
87
+ const SkeletonStateT<T>& state,
88
+ const MeshStateT<T>& meshState,
89
+ const VertexProjectionConstraintT<T>& constr,
90
+ Ref<Eigen::MatrixX<T>> jac,
91
+ Ref<Eigen::VectorX<T>> res) const;
92
+
93
+ double calculateGradient(
94
+ const ModelParametersT<T>& modelParameters,
95
+ const SkeletonStateT<T>& state,
96
+ const MeshStateT<T>& meshState,
97
+ const VertexProjectionConstraintT<T>& constr,
98
+ Eigen::Ref<Eigen::VectorX<T>> gradient) const;
99
+
100
+ // Utility function used now in calculateJacobian and calculateGradient
101
+ // to calculate derivatives with respect to position in world space (considering skinning)
102
+ void calculateDWorldPos(
103
+ const SkeletonStateT<T>& state,
104
+ const VertexProjectionConstraintT<T>& constr,
105
+ const Eigen::Vector3<T>& d_restPos,
106
+ Eigen::Vector3<T>& d_worldPos) const;
107
+
108
+ const Character& character_;
109
+
110
+ std::vector<VertexProjectionConstraintT<T>> constraints_;
111
+
112
+ uint32_t maxThreads_;
113
+
114
+ T _nearClip = 1.0f;
115
+ };
116
+
117
+ } // namespace momentum
@@ -0,0 +1,147 @@
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/character_solver/fwd.h>
11
+ #include <momentum/character_solver/skeleton_error_function.h>
12
+ #include <momentum/math/fwd.h>
13
+
14
+ #include <Eigen/Dense>
15
+ #include <memory>
16
+ #include <vector>
17
+
18
+ namespace momentum {
19
+
20
+ /// Constraint for vertex-to-vertex distance errors
21
+ template <typename T>
22
+ struct VertexVertexDistanceConstraintT {
23
+ int vertexIndex1 = -1; ///< First vertex index
24
+ int vertexIndex2 = -1; ///< Second vertex index
25
+ T weight = 1; ///< Constraint weight
26
+ T targetDistance = 0; ///< Desired distance between the two vertices
27
+
28
+ template <typename T2>
29
+ VertexVertexDistanceConstraintT<T2> cast() const {
30
+ return {
31
+ this->vertexIndex1,
32
+ this->vertexIndex2,
33
+ static_cast<T2>(this->weight),
34
+ static_cast<T2>(this->targetDistance)};
35
+ }
36
+ };
37
+
38
+ /// Error function for vertex-to-vertex distance constraints
39
+ template <typename T>
40
+ class VertexVertexDistanceErrorFunctionT : public SkeletonErrorFunctionT<T> {
41
+ public:
42
+ explicit VertexVertexDistanceErrorFunctionT(const Character& character);
43
+ ~VertexVertexDistanceErrorFunctionT() override;
44
+
45
+ VertexVertexDistanceErrorFunctionT(const VertexVertexDistanceErrorFunctionT& other) = delete;
46
+ VertexVertexDistanceErrorFunctionT(VertexVertexDistanceErrorFunctionT&& other) noexcept = delete;
47
+ VertexVertexDistanceErrorFunctionT& operator=(const VertexVertexDistanceErrorFunctionT& other) =
48
+ delete;
49
+ VertexVertexDistanceErrorFunctionT& operator=(VertexVertexDistanceErrorFunctionT&& other) =
50
+ delete;
51
+
52
+ [[nodiscard]] double getError(
53
+ const ModelParametersT<T>& modelParameters,
54
+ const SkeletonStateT<T>& state,
55
+ const MeshStateT<T>& meshState) final;
56
+
57
+ double getGradient(
58
+ const ModelParametersT<T>& modelParameters,
59
+ const SkeletonStateT<T>& state,
60
+ const MeshStateT<T>& meshState,
61
+ Eigen::Ref<Eigen::VectorX<T>> gradient) final;
62
+
63
+ double getJacobian(
64
+ const ModelParametersT<T>& modelParameters,
65
+ const SkeletonStateT<T>& state,
66
+ const MeshStateT<T>& meshState,
67
+ Eigen::Ref<Eigen::MatrixX<T>> jacobian,
68
+ Eigen::Ref<Eigen::VectorX<T>> residual,
69
+ int& usedRows) final;
70
+
71
+ [[nodiscard]] size_t getJacobianSize() const final;
72
+
73
+ /// Add a vertex-to-vertex distance constraint
74
+ void addConstraint(int vertexIndex1, int vertexIndex2, T weight, T targetDistance);
75
+
76
+ /// Clear all constraints
77
+ void clearConstraints();
78
+
79
+ /// Get all constraints
80
+ [[nodiscard]] const std::vector<VertexVertexDistanceConstraintT<T>>& getConstraints() const {
81
+ return constraints_;
82
+ }
83
+
84
+ /// Get the number of constraints
85
+ [[nodiscard]] size_t numConstraints() const {
86
+ return constraints_.size();
87
+ }
88
+
89
+ /// Get the character
90
+ [[nodiscard]] const Character* getCharacter() const override {
91
+ return &character_;
92
+ }
93
+
94
+ /// Override to indicate this function requires mesh state
95
+ [[nodiscard]] bool needsMesh() const override {
96
+ return true;
97
+ }
98
+
99
+ private:
100
+ /// Calculate jacobian for a distance constraint
101
+ double calculateJacobian(
102
+ const ModelParametersT<T>& modelParameters,
103
+ const SkeletonStateT<T>& state,
104
+ const MeshStateT<T>& meshState,
105
+ const VertexVertexDistanceConstraintT<T>& constraint,
106
+ Eigen::Ref<Eigen::MatrixX<T>> jacobian,
107
+ T& residual) const;
108
+
109
+ /// Calculate gradient for a distance constraint
110
+ double calculateGradient(
111
+ const ModelParametersT<T>& modelParameters,
112
+ const SkeletonStateT<T>& state,
113
+ const MeshStateT<T>& meshState,
114
+ const VertexVertexDistanceConstraintT<T>& constraint,
115
+ Eigen::Ref<Eigen::VectorX<T>> gradient) const;
116
+
117
+ /// Calculate gradient contribution from a single vertex
118
+ void calculateVertexGradient(
119
+ const ModelParametersT<T>& modelParameters,
120
+ const SkeletonStateT<T>& state,
121
+ const MeshStateT<T>& meshState,
122
+ int vertexIndex,
123
+ const Eigen::Vector3<T>& gradientDirection,
124
+ Eigen::Ref<Eigen::VectorX<T>> gradient) const;
125
+
126
+ /// Calculate jacobian contribution from a single vertex
127
+ void calculateVertexJacobian(
128
+ const ModelParametersT<T>& modelParameters,
129
+ const SkeletonStateT<T>& state,
130
+ const MeshStateT<T>& meshState,
131
+ int vertexIndex,
132
+ const Eigen::Vector3<T>& jacobianDirection,
133
+ Eigen::Ref<Eigen::MatrixX<T>> jacobian) const;
134
+
135
+ /// Calculate world space position derivative for blend shape parameters
136
+ void calculateDWorldPos(
137
+ const SkeletonStateT<T>& state,
138
+ int vertexIndex,
139
+ const Eigen::Vector3<T>& d_restPos,
140
+ Eigen::Vector3<T>& d_worldPos) const;
141
+
142
+ const Character& character_;
143
+
144
+ std::vector<VertexVertexDistanceConstraintT<T>> constraints_;
145
+ };
146
+
147
+ } // namespace momentum
@@ -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/common/exception.h>
11
+
12
+ #include <limits>
13
+ #include <memory>
14
+
15
+ namespace momentum {
16
+
17
+ #if defined(_WIN32)
18
+
19
+ [[nodiscard]] inline void* aligned_malloc(size_t size, size_t align) {
20
+ return _aligned_malloc(size, align);
21
+ }
22
+
23
+ inline void aligned_free(void* ptr) {
24
+ return _aligned_free(ptr);
25
+ }
26
+
27
+ #elif (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000) || \
28
+ (defined(__ANDROID_API__) && __ANDROID_API__ < 28)
29
+
30
+ [[nodiscard]] inline void* aligned_malloc(size_t size, size_t align) {
31
+ void* result = nullptr;
32
+ posix_memalign(&result, align, size);
33
+ return result;
34
+ }
35
+
36
+ inline void aligned_free(void* ptr) {
37
+ return std::free(ptr);
38
+ }
39
+
40
+ #else
41
+
42
+ [[nodiscard]] inline void* aligned_malloc(size_t size, size_t align) {
43
+ return std::aligned_alloc(align, size);
44
+ }
45
+
46
+ inline void aligned_free(void* ptr) {
47
+ return std::free(ptr);
48
+ }
49
+
50
+ #endif
51
+
52
+ inline constexpr std::size_t roundUpToAlignment(std::size_t value, std::size_t alignment) {
53
+ MT_THROW_IF_T(alignment == 0, std::invalid_argument, "Alignment must be non-zero");
54
+ return ((value + alignment - 1) / alignment) * alignment;
55
+ }
56
+
57
+ /// Allocates a block of memory that can hold `n` elements of type `T` with the specified alignment.
58
+ ///
59
+ /// This function is intended to be used in the `AlignedAllocator::allocate()` method and throws
60
+ /// exceptions as `std::allocator<T>::allocate` does.
61
+ template <typename T, std::size_t Alignment = alignof(T)>
62
+ [[nodiscard]] T* alignedAlloc(std::size_t n) {
63
+ MT_THROW_IF_T(std::numeric_limits<std::size_t>::max() / sizeof(T) < n, std::bad_array_new_length);
64
+
65
+ const std::size_t size = roundUpToAlignment(n * sizeof(T), Alignment);
66
+ void* ptr = aligned_malloc(size, Alignment);
67
+
68
+ MT_THROW_IF_T(ptr == nullptr, std::bad_alloc);
69
+
70
+ return static_cast<T*>(ptr);
71
+ }
72
+
73
+ /// Custom deleter for aligned memory
74
+ struct AlignedDeleter {
75
+ void operator()(void* ptr) const {
76
+ aligned_free(ptr);
77
+ }
78
+ };
79
+
80
+ /// Creates a std::unique_ptr for aligned memory.
81
+ template <typename T, std::size_t Alignment = alignof(T), class Deleter = AlignedDeleter>
82
+ [[nodiscard]] std::unique_ptr<T, Deleter> makeAlignedUnique(
83
+ std::size_t n,
84
+ Deleter deleter = Deleter()) {
85
+ return std::unique_ptr<T, Deleter>(alignedAlloc<T, Alignment>(n), std::move(deleter));
86
+ }
87
+
88
+ /// Creates a std::shared_ptr for aligned memory.
89
+ template <typename T, std::size_t Alignment = alignof(T), class Deleter = AlignedDeleter>
90
+ [[nodiscard]] std::shared_ptr<T> makeAlignedShared(std::size_t n, Deleter deleter = Deleter()) {
91
+ return std::shared_ptr<T>(alignedAlloc<T, Alignment>(n), std::move(deleter));
92
+ }
93
+
94
+ /// An allocator that aligns memory blocks according to a specified alignment.
95
+ /// The allocator is compatible with `std::allocator` and can be used in
96
+ /// place of `std::allocator` in STL containers.
97
+ ///
98
+ /// @tparam T The type of elements that the allocator will allocate.
99
+ /// @tparam Alignment The alignment for the allocated memory blocks.
100
+ template <class T, std::size_t Alignment>
101
+ class AlignedAllocator {
102
+ public:
103
+ using value_type = T;
104
+
105
+ AlignedAllocator() noexcept = default;
106
+
107
+ template <class U>
108
+ explicit AlignedAllocator(const AlignedAllocator<U, Alignment>& /*other*/) noexcept {
109
+ // Empty
110
+ }
111
+
112
+ /// Allocates a block of memory that can hold `n` elements of type `T`.
113
+ ///
114
+ /// @param[in] n The number of elements to allocate space for.
115
+ /// @return A pointer to the first byte of the allocated memory block.
116
+ [[nodiscard]] T* allocate(std::size_t n) {
117
+ return alignedAlloc<T, Alignment>(n);
118
+ }
119
+
120
+ /// Deallocates a block of memory that was previously allocated by `allocate`.
121
+ ///
122
+ /// @param[in] ptr A pointer to the first byte of the memory block to deallocate.
123
+ /// @param size The size of the memory block to deallocate. This parameter is not used, but it is
124
+ /// included to maintain compatibility with `std::allocator`.
125
+ void deallocate(T* ptr, std::size_t /*n*/) noexcept {
126
+ aligned_free(ptr);
127
+ }
128
+
129
+ template <class U>
130
+ struct rebind {
131
+ using other = AlignedAllocator<U, Alignment>;
132
+ };
133
+ };
134
+
135
+ /// Checks if storage allocated from `lhs` can be deallocated from `rhs`, and vice versa.
136
+ ///
137
+ /// This always returns true for stateless allocators.
138
+ template <class T, class U, std::size_t Alignment>
139
+ [[nodiscard]] bool operator==(
140
+ const AlignedAllocator<T, Alignment>& /*lhs*/,
141
+ const AlignedAllocator<U, Alignment>& /*rhs*/) {
142
+ return true;
143
+ }
144
+
145
+ /// Checks if storage allocated from `lhs` cannot be deallocated from `rhs`, and vice versa.
146
+ ///
147
+ /// This always returns false for stateless allocators.
148
+ template <class T, class U, std::size_t Alignment>
149
+ [[nodiscard]] bool operator!=(
150
+ const AlignedAllocator<T, Alignment>& /*lhs*/,
151
+ const AlignedAllocator<U, Alignment>& /*rhs*/) {
152
+ return false;
153
+ }
154
+
155
+ } // namespace momentum
@@ -0,0 +1,27 @@
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
+ #if defined(MOMENTUM_WITH_XR_LOGGER)
11
+
12
+ #include <logging/Checks.h>
13
+
14
+ #define MT_CHECK(condition, ...) XR_CHECK(condition, __VA_ARGS__)
15
+ #define MT_CHECK_LT(val1, val2, ...) XR_CHECK_DETAIL_OP1(val1, val2, <, ##__VA_ARGS__)
16
+ #define MT_CHECK_NOTNULL(ptr, ...) XR_CHECK(ptr != nullptr, ##__VA_ARGS__)
17
+
18
+ #else
19
+
20
+ #include <cassert>
21
+
22
+ // TODO: Support asserts with messages as XR_CHECK does
23
+ #define MT_CHECK(condition, ...) assert(condition)
24
+ #define MT_CHECK_LT(val1, val2, ...) assert(val1 < val2)
25
+ #define MT_CHECK_NOTNULL(ptr, ...) assert(ptr != nullptr)
26
+
27
+ #endif
@@ -0,0 +1,70 @@
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 <fmt/format.h>
11
+
12
+ #include <stdexcept>
13
+
14
+ /// Throws an exception of a specified type with a formatted message.
15
+ /// @param Exception The type of exception to throw.
16
+ /// @param ... The message and format specifiers.
17
+ /// @code
18
+ /// MT_THROW_T(std::invalid_argument, "Invalid argument: {}", arg);
19
+ /// MT_THROW_T(std::bad_array_new_length); // No message
20
+ /// @endcode
21
+ #define MT_THROW_T(Exception, ...) ::momentum::detail::throwImpl<Exception>(__VA_ARGS__)
22
+
23
+ /// Throws a std::runtime_error with a formatted message.
24
+ /// @param ... The message and format specifiers.
25
+ /// @code
26
+ /// MT_THROW("Error occurred: {}", errorDetail);
27
+ /// @endcode
28
+ #define MT_THROW(...) MT_THROW_T(::momentum::detail::DefaultException, ##__VA_ARGS__)
29
+
30
+ /// Conditionally throws an exception of a specified type with a formatted message if the condition
31
+ /// is true.
32
+ /// @param Condition The condition to evaluate.
33
+ /// @param Exception The type of exception to throw.
34
+ /// @param ... The message and format specifiers.
35
+ /// @code
36
+ /// MT_THROW_IF_T(x > y, std::out_of_range, "x ({}) is greater than y ({})", x, y);
37
+ /// MT_THROW_IF_T(x > y, std::bad_array_new_length); // No message
38
+ /// @endcode
39
+ #define MT_THROW_IF_T(Condition, Exception, ...) \
40
+ if (Condition) { \
41
+ MT_THROW_T(Exception, ##__VA_ARGS__); \
42
+ }
43
+
44
+ /// Conditionally throws a std::runtime_error with a formatted message if the condition is true.
45
+ /// @param Condition The condition to evaluate.
46
+ /// @param ... The message and format specifiers.
47
+ /// @code
48
+ /// MT_THROW_IF(x == nullptr, "x cannot be nullptr");
49
+ /// @endcode
50
+ #define MT_THROW_IF(Condition, ...) \
51
+ MT_THROW_IF_T(Condition, ::momentum::detail::DefaultException, ##__VA_ARGS__)
52
+
53
+ namespace momentum::detail {
54
+
55
+ using DefaultException = std::runtime_error;
56
+
57
+ // Helper function template to throw with formatted message
58
+ template <typename Exception = DefaultException, typename... Args>
59
+ [[noreturn]] void throwImpl(fmt::format_string<Args...> format, Args&&... args) {
60
+ throw Exception{fmt::format(format, std::forward<Args>(args)...)};
61
+ }
62
+
63
+ // Overload for throwing exceptions that do not require any message or whose constructors do not
64
+ // take any arguments.
65
+ template <typename Exception>
66
+ [[noreturn]] void throwImpl() {
67
+ throw Exception{};
68
+ }
69
+
70
+ } // namespace momentum::detail
@@ -0,0 +1,20 @@
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
+ #if defined(MOMENTUM_WITH_PORTABILITY)
11
+
12
+ #include <portability/Filesystem.h>
13
+
14
+ #else
15
+
16
+ #include <filesystem>
17
+
18
+ namespace filesystem = std::filesystem;
19
+
20
+ #endif
@@ -0,0 +1,27 @@
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
+ // This file is @generated by gen_fwd.py
9
+ // Do not edit this file directly, instead update gen_fwd_input.toml and run:
10
+ // buck run @arvr/mode/platform010/opt //arvr/libraries/momentum:gen_fwd
11
+
12
+ #pragma once
13
+
14
+ #include <memory>
15
+
16
+ namespace momentum {
17
+
18
+ class ProgressBar;
19
+
20
+ using ProgressBar_p = ::std::shared_ptr<ProgressBar>;
21
+ using ProgressBar_u = ::std::unique_ptr<ProgressBar>;
22
+ using ProgressBar_w = ::std::weak_ptr<ProgressBar>;
23
+ using ProgressBar_const_p = ::std::shared_ptr<const ProgressBar>;
24
+ using ProgressBar_const_u = ::std::unique_ptr<const ProgressBar>;
25
+ using ProgressBar_const_w = ::std::weak_ptr<const ProgressBar>;
26
+
27
+ } // namespace momentum