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.
- include/axel/BoundingBox.h +59 -0
- include/axel/Bvh.h +708 -0
- include/axel/BvhBase.h +75 -0
- include/axel/BvhCommon.h +43 -0
- include/axel/BvhEmbree.h +87 -0
- include/axel/BvhFactory.h +34 -0
- include/axel/Checks.h +21 -0
- include/axel/DualContouring.h +79 -0
- include/axel/KdTree.h +208 -0
- include/axel/Log.h +22 -0
- include/axel/MeshToSdf.h +123 -0
- include/axel/Profile.h +64 -0
- include/axel/Ray.h +45 -0
- include/axel/SignedDistanceField.h +248 -0
- include/axel/SimdKdTree.h +515 -0
- include/axel/TriBvh.h +157 -0
- include/axel/TriBvhEmbree.h +57 -0
- include/axel/common/Constants.h +27 -0
- include/axel/common/Types.h +21 -0
- include/axel/common/VectorizationTypes.h +58 -0
- include/axel/math/BoundingBoxUtils.h +54 -0
- include/axel/math/ContinuousCollisionDetection.h +48 -0
- include/axel/math/CoplanarityCheck.h +30 -0
- include/axel/math/EdgeEdgeDistance.h +31 -0
- include/axel/math/MeshHoleFilling.h +117 -0
- include/axel/math/PointTriangleProjection.h +34 -0
- include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
- include/axel/math/RayTriangleIntersection.h +36 -0
- include/momentum/character/blend_shape.h +97 -0
- include/momentum/character/blend_shape_base.h +86 -0
- include/momentum/character/blend_shape_skinning.h +96 -0
- include/momentum/character/character.h +272 -0
- include/momentum/character/character_state.h +108 -0
- include/momentum/character/character_utility.h +128 -0
- include/momentum/character/collision_geometry.h +80 -0
- include/momentum/character/collision_geometry_state.h +130 -0
- include/momentum/character/fwd.h +262 -0
- include/momentum/character/inverse_parameter_transform.h +58 -0
- include/momentum/character/joint.h +82 -0
- include/momentum/character/joint_state.h +241 -0
- include/momentum/character/linear_skinning.h +139 -0
- include/momentum/character/locator.h +94 -0
- include/momentum/character/locator_state.h +43 -0
- include/momentum/character/marker.h +48 -0
- include/momentum/character/mesh_state.h +71 -0
- include/momentum/character/parameter_limits.h +144 -0
- include/momentum/character/parameter_transform.h +207 -0
- include/momentum/character/pose_shape.h +65 -0
- include/momentum/character/skeleton.h +85 -0
- include/momentum/character/skeleton_state.h +227 -0
- include/momentum/character/skeleton_utility.h +38 -0
- include/momentum/character/skin_weights.h +67 -0
- include/momentum/character/skinned_locator.h +80 -0
- include/momentum/character/types.h +202 -0
- include/momentum/character_sequence_solver/fwd.h +200 -0
- include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
- include/momentum/character_sequence_solver/multipose_solver.h +65 -0
- include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
- include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
- include/momentum/character_sequence_solver/sequence_solver.h +155 -0
- include/momentum/character_sequence_solver/sequence_solver_function.h +158 -0
- include/momentum/character_sequence_solver/state_sequence_error_function.h +117 -0
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
- include/momentum/character_solver/aim_error_function.h +112 -0
- include/momentum/character_solver/collision_error_function.h +92 -0
- include/momentum/character_solver/collision_error_function_stateless.h +75 -0
- include/momentum/character_solver/constraint_error_function-inl.h +324 -0
- include/momentum/character_solver/constraint_error_function.h +248 -0
- include/momentum/character_solver/distance_error_function.h +77 -0
- include/momentum/character_solver/error_function_utils.h +60 -0
- include/momentum/character_solver/fixed_axis_error_function.h +139 -0
- include/momentum/character_solver/fwd.h +943 -0
- include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
- include/momentum/character_solver/height_error_function.h +176 -0
- include/momentum/character_solver/joint_to_joint_distance_error_function.h +111 -0
- include/momentum/character_solver/limit_error_function.h +57 -0
- include/momentum/character_solver/model_parameters_error_function.h +64 -0
- include/momentum/character_solver/normal_error_function.h +73 -0
- include/momentum/character_solver/orientation_error_function.h +74 -0
- include/momentum/character_solver/plane_error_function.h +102 -0
- include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
- include/momentum/character_solver/pose_prior_error_function.h +80 -0
- include/momentum/character_solver/position_error_function.h +75 -0
- include/momentum/character_solver/projection_error_function.h +93 -0
- include/momentum/character_solver/simd_collision_error_function.h +99 -0
- include/momentum/character_solver/simd_normal_error_function.h +157 -0
- include/momentum/character_solver/simd_plane_error_function.h +164 -0
- include/momentum/character_solver/simd_position_error_function.h +165 -0
- include/momentum/character_solver/skeleton_error_function.h +151 -0
- include/momentum/character_solver/skeleton_solver_function.h +94 -0
- include/momentum/character_solver/skinned_locator_error_function.h +166 -0
- include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
- include/momentum/character_solver/skinning_weight_iterator.h +80 -0
- include/momentum/character_solver/state_error_function.h +119 -0
- include/momentum/character_solver/transform_pose.h +80 -0
- include/momentum/character_solver/trust_region_qr.h +80 -0
- include/momentum/character_solver/vertex_error_function.h +155 -0
- include/momentum/character_solver/vertex_projection_error_function.h +117 -0
- include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
- include/momentum/common/aligned.h +155 -0
- include/momentum/common/checks.h +27 -0
- include/momentum/common/exception.h +70 -0
- include/momentum/common/filesystem.h +20 -0
- include/momentum/common/fwd.h +27 -0
- include/momentum/common/log.h +173 -0
- include/momentum/common/log_channel.h +17 -0
- include/momentum/common/memory.h +71 -0
- include/momentum/common/profile.h +79 -0
- include/momentum/common/progress_bar.h +37 -0
- include/momentum/common/string.h +52 -0
- include/momentum/diff_ik/ceres_utility.h +73 -0
- include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
- include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
- include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
- include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
- include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
- include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
- include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
- include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
- include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
- include/momentum/diff_ik/fwd.h +385 -0
- include/momentum/diff_ik/union_error_function.h +67 -0
- include/momentum/gui/rerun/eigen_adapters.h +70 -0
- include/momentum/gui/rerun/logger.h +102 -0
- include/momentum/gui/rerun/logging_redirect.h +27 -0
- include/momentum/io/character_io.h +98 -0
- include/momentum/io/common/gsl_utils.h +50 -0
- include/momentum/io/common/stream_utils.h +65 -0
- include/momentum/io/fbx/fbx_io.h +135 -0
- include/momentum/io/fbx/fbx_memory_stream.h +70 -0
- include/momentum/io/fbx/openfbx_loader.h +62 -0
- include/momentum/io/fbx/polygon_data.h +60 -0
- include/momentum/io/file_save_options.h +107 -0
- include/momentum/io/gltf/gltf_builder.h +141 -0
- include/momentum/io/gltf/gltf_io.h +149 -0
- include/momentum/io/gltf/utils/accessor_utils.h +299 -0
- include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
- include/momentum/io/gltf/utils/json_utils.h +102 -0
- include/momentum/io/legacy_json/legacy_json_io.h +70 -0
- include/momentum/io/marker/c3d_io.h +30 -0
- include/momentum/io/marker/conversions.h +57 -0
- include/momentum/io/marker/coordinate_system.h +30 -0
- include/momentum/io/marker/marker_io.h +56 -0
- include/momentum/io/marker/trc_io.h +27 -0
- include/momentum/io/motion/mmo_io.h +97 -0
- include/momentum/io/shape/blend_shape_io.h +82 -0
- include/momentum/io/shape/pose_shape_io.h +21 -0
- include/momentum/io/skeleton/locator_io.h +41 -0
- include/momentum/io/skeleton/mppca_io.h +26 -0
- include/momentum/io/skeleton/parameter_limits_io.h +38 -0
- include/momentum/io/skeleton/parameter_transform_io.h +80 -0
- include/momentum/io/skeleton/parameters_io.h +20 -0
- include/momentum/io/skeleton/utility.h +67 -0
- include/momentum/io/urdf/urdf_io.h +26 -0
- include/momentum/io/usd/usd_io.h +36 -0
- include/momentum/marker_tracking/app_utils.h +64 -0
- include/momentum/marker_tracking/marker_tracker.h +221 -0
- include/momentum/marker_tracking/process_markers.h +58 -0
- include/momentum/marker_tracking/tracker_utils.h +99 -0
- include/momentum/math/constants.h +82 -0
- include/momentum/math/covariance_matrix.h +84 -0
- include/momentum/math/fmt_eigen.h +23 -0
- include/momentum/math/fwd.h +132 -0
- include/momentum/math/generalized_loss.h +61 -0
- include/momentum/math/intersection.h +32 -0
- include/momentum/math/mesh.h +84 -0
- include/momentum/math/mppca.h +67 -0
- include/momentum/math/online_householder_qr.h +516 -0
- include/momentum/math/random-inl.h +404 -0
- include/momentum/math/random.h +310 -0
- include/momentum/math/simd_generalized_loss.h +40 -0
- include/momentum/math/transform.h +229 -0
- include/momentum/math/types.h +461 -0
- include/momentum/math/utility.h +324 -0
- include/momentum/rasterizer/camera.h +453 -0
- include/momentum/rasterizer/fwd.h +102 -0
- include/momentum/rasterizer/geometry.h +83 -0
- include/momentum/rasterizer/image.h +18 -0
- include/momentum/rasterizer/rasterizer.h +583 -0
- include/momentum/rasterizer/tensor.h +140 -0
- include/momentum/rasterizer/text_rasterizer.h +89 -0
- include/momentum/rasterizer/utility.h +268 -0
- include/momentum/simd/simd.h +221 -0
- include/momentum/solver/fwd.h +131 -0
- include/momentum/solver/gauss_newton_solver.h +136 -0
- include/momentum/solver/gradient_descent_solver.h +65 -0
- include/momentum/solver/solver.h +155 -0
- include/momentum/solver/solver_function.h +126 -0
- include/momentum/solver/subset_gauss_newton_solver.h +109 -0
- include/rerun/archetypes/annotation_context.hpp +157 -0
- include/rerun/archetypes/arrows2d.hpp +271 -0
- include/rerun/archetypes/arrows3d.hpp +257 -0
- include/rerun/archetypes/asset3d.hpp +262 -0
- include/rerun/archetypes/asset_video.hpp +275 -0
- include/rerun/archetypes/bar_chart.hpp +261 -0
- include/rerun/archetypes/boxes2d.hpp +293 -0
- include/rerun/archetypes/boxes3d.hpp +369 -0
- include/rerun/archetypes/capsules3d.hpp +333 -0
- include/rerun/archetypes/clear.hpp +180 -0
- include/rerun/archetypes/depth_image.hpp +425 -0
- include/rerun/archetypes/ellipsoids3d.hpp +384 -0
- include/rerun/archetypes/encoded_image.hpp +250 -0
- include/rerun/archetypes/geo_line_strings.hpp +166 -0
- include/rerun/archetypes/geo_points.hpp +177 -0
- include/rerun/archetypes/graph_edges.hpp +152 -0
- include/rerun/archetypes/graph_nodes.hpp +206 -0
- include/rerun/archetypes/image.hpp +434 -0
- include/rerun/archetypes/instance_poses3d.hpp +221 -0
- include/rerun/archetypes/line_strips2d.hpp +289 -0
- include/rerun/archetypes/line_strips3d.hpp +270 -0
- include/rerun/archetypes/mesh3d.hpp +387 -0
- include/rerun/archetypes/pinhole.hpp +385 -0
- include/rerun/archetypes/points2d.hpp +333 -0
- include/rerun/archetypes/points3d.hpp +369 -0
- include/rerun/archetypes/recording_properties.hpp +132 -0
- include/rerun/archetypes/scalar.hpp +170 -0
- include/rerun/archetypes/scalars.hpp +153 -0
- include/rerun/archetypes/segmentation_image.hpp +305 -0
- include/rerun/archetypes/series_line.hpp +274 -0
- include/rerun/archetypes/series_lines.hpp +271 -0
- include/rerun/archetypes/series_point.hpp +265 -0
- include/rerun/archetypes/series_points.hpp +251 -0
- include/rerun/archetypes/tensor.hpp +213 -0
- include/rerun/archetypes/text_document.hpp +200 -0
- include/rerun/archetypes/text_log.hpp +211 -0
- include/rerun/archetypes/transform3d.hpp +925 -0
- include/rerun/archetypes/video_frame_reference.hpp +295 -0
- include/rerun/archetypes/view_coordinates.hpp +393 -0
- include/rerun/archetypes.hpp +43 -0
- include/rerun/arrow_utils.hpp +32 -0
- include/rerun/as_components.hpp +90 -0
- include/rerun/blueprint/archetypes/background.hpp +113 -0
- include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
- include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
- include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
- include/rerun/blueprint/archetypes/force_center.hpp +115 -0
- include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
- include/rerun/blueprint/archetypes/force_link.hpp +136 -0
- include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
- include/rerun/blueprint/archetypes/force_position.hpp +132 -0
- include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
- include/rerun/blueprint/archetypes/map_background.hpp +104 -0
- include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
- include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
- include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
- include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
- include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
- include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
- include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
- include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
- include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
- include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
- include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
- include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
- include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
- include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
- include/rerun/blueprint/archetypes.hpp +29 -0
- include/rerun/blueprint/components/active_tab.hpp +82 -0
- include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
- include/rerun/blueprint/components/auto_layout.hpp +77 -0
- include/rerun/blueprint/components/auto_views.hpp +77 -0
- include/rerun/blueprint/components/background_kind.hpp +66 -0
- include/rerun/blueprint/components/column_share.hpp +78 -0
- include/rerun/blueprint/components/component_column_selector.hpp +81 -0
- include/rerun/blueprint/components/container_kind.hpp +65 -0
- include/rerun/blueprint/components/corner2d.hpp +64 -0
- include/rerun/blueprint/components/enabled.hpp +77 -0
- include/rerun/blueprint/components/filter_by_range.hpp +74 -0
- include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
- include/rerun/blueprint/components/force_distance.hpp +82 -0
- include/rerun/blueprint/components/force_iterations.hpp +82 -0
- include/rerun/blueprint/components/force_strength.hpp +82 -0
- include/rerun/blueprint/components/grid_columns.hpp +78 -0
- include/rerun/blueprint/components/grid_spacing.hpp +78 -0
- include/rerun/blueprint/components/included_content.hpp +86 -0
- include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
- include/rerun/blueprint/components/map_provider.hpp +64 -0
- include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
- include/rerun/blueprint/components/panel_state.hpp +61 -0
- include/rerun/blueprint/components/query_expression.hpp +89 -0
- include/rerun/blueprint/components/root_container.hpp +77 -0
- include/rerun/blueprint/components/row_share.hpp +78 -0
- include/rerun/blueprint/components/selected_columns.hpp +76 -0
- include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
- include/rerun/blueprint/components/timeline_name.hpp +76 -0
- include/rerun/blueprint/components/view_class.hpp +76 -0
- include/rerun/blueprint/components/view_fit.hpp +61 -0
- include/rerun/blueprint/components/view_maximized.hpp +79 -0
- include/rerun/blueprint/components/view_origin.hpp +81 -0
- include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
- include/rerun/blueprint/components/visible_time_range.hpp +77 -0
- include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
- include/rerun/blueprint/components/visualizer_override.hpp +86 -0
- include/rerun/blueprint/components/zoom_level.hpp +78 -0
- include/rerun/blueprint/components.hpp +41 -0
- include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
- include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
- include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
- include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
- include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
- include/rerun/blueprint/datatypes.hpp +9 -0
- include/rerun/c/arrow_c_data_interface.h +111 -0
- include/rerun/c/compiler_utils.h +10 -0
- include/rerun/c/rerun.h +627 -0
- include/rerun/c/sdk_info.h +28 -0
- include/rerun/collection.hpp +496 -0
- include/rerun/collection_adapter.hpp +43 -0
- include/rerun/collection_adapter_builtins.hpp +138 -0
- include/rerun/compiler_utils.hpp +61 -0
- include/rerun/component_batch.hpp +163 -0
- include/rerun/component_column.hpp +111 -0
- include/rerun/component_descriptor.hpp +142 -0
- include/rerun/component_type.hpp +35 -0
- include/rerun/components/aggregation_policy.hpp +76 -0
- include/rerun/components/albedo_factor.hpp +74 -0
- include/rerun/components/annotation_context.hpp +102 -0
- include/rerun/components/axis_length.hpp +74 -0
- include/rerun/components/blob.hpp +73 -0
- include/rerun/components/class_id.hpp +71 -0
- include/rerun/components/clear_is_recursive.hpp +75 -0
- include/rerun/components/color.hpp +99 -0
- include/rerun/components/colormap.hpp +99 -0
- include/rerun/components/depth_meter.hpp +84 -0
- include/rerun/components/draw_order.hpp +79 -0
- include/rerun/components/entity_path.hpp +83 -0
- include/rerun/components/fill_mode.hpp +72 -0
- include/rerun/components/fill_ratio.hpp +79 -0
- include/rerun/components/gamma_correction.hpp +80 -0
- include/rerun/components/geo_line_string.hpp +63 -0
- include/rerun/components/graph_edge.hpp +75 -0
- include/rerun/components/graph_node.hpp +79 -0
- include/rerun/components/graph_type.hpp +57 -0
- include/rerun/components/half_size2d.hpp +91 -0
- include/rerun/components/half_size3d.hpp +95 -0
- include/rerun/components/image_buffer.hpp +86 -0
- include/rerun/components/image_format.hpp +84 -0
- include/rerun/components/image_plane_distance.hpp +77 -0
- include/rerun/components/interactive.hpp +76 -0
- include/rerun/components/keypoint_id.hpp +74 -0
- include/rerun/components/lat_lon.hpp +89 -0
- include/rerun/components/length.hpp +77 -0
- include/rerun/components/line_strip2d.hpp +73 -0
- include/rerun/components/line_strip3d.hpp +73 -0
- include/rerun/components/magnification_filter.hpp +63 -0
- include/rerun/components/marker_shape.hpp +82 -0
- include/rerun/components/marker_size.hpp +74 -0
- include/rerun/components/media_type.hpp +157 -0
- include/rerun/components/name.hpp +83 -0
- include/rerun/components/opacity.hpp +77 -0
- include/rerun/components/pinhole_projection.hpp +94 -0
- include/rerun/components/plane3d.hpp +75 -0
- include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
- include/rerun/components/pose_rotation_quat.hpp +71 -0
- include/rerun/components/pose_scale3d.hpp +102 -0
- include/rerun/components/pose_transform_mat3x3.hpp +87 -0
- include/rerun/components/pose_translation3d.hpp +96 -0
- include/rerun/components/position2d.hpp +86 -0
- include/rerun/components/position3d.hpp +90 -0
- include/rerun/components/radius.hpp +98 -0
- include/rerun/components/range1d.hpp +75 -0
- include/rerun/components/resolution.hpp +88 -0
- include/rerun/components/rotation_axis_angle.hpp +72 -0
- include/rerun/components/rotation_quat.hpp +71 -0
- include/rerun/components/scalar.hpp +76 -0
- include/rerun/components/scale3d.hpp +102 -0
- include/rerun/components/series_visible.hpp +76 -0
- include/rerun/components/show_labels.hpp +79 -0
- include/rerun/components/stroke_width.hpp +74 -0
- include/rerun/components/tensor_data.hpp +94 -0
- include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
- include/rerun/components/tensor_height_dimension.hpp +71 -0
- include/rerun/components/tensor_width_dimension.hpp +71 -0
- include/rerun/components/texcoord2d.hpp +101 -0
- include/rerun/components/text.hpp +83 -0
- include/rerun/components/text_log_level.hpp +110 -0
- include/rerun/components/timestamp.hpp +76 -0
- include/rerun/components/transform_mat3x3.hpp +92 -0
- include/rerun/components/transform_relation.hpp +66 -0
- include/rerun/components/translation3d.hpp +96 -0
- include/rerun/components/triangle_indices.hpp +85 -0
- include/rerun/components/value_range.hpp +78 -0
- include/rerun/components/vector2d.hpp +92 -0
- include/rerun/components/vector3d.hpp +96 -0
- include/rerun/components/video_timestamp.hpp +120 -0
- include/rerun/components/view_coordinates.hpp +346 -0
- include/rerun/components/visible.hpp +74 -0
- include/rerun/components.hpp +77 -0
- include/rerun/config.hpp +52 -0
- include/rerun/datatypes/angle.hpp +76 -0
- include/rerun/datatypes/annotation_info.hpp +76 -0
- include/rerun/datatypes/blob.hpp +67 -0
- include/rerun/datatypes/bool.hpp +57 -0
- include/rerun/datatypes/channel_datatype.hpp +87 -0
- include/rerun/datatypes/class_description.hpp +92 -0
- include/rerun/datatypes/class_description_map_elem.hpp +69 -0
- include/rerun/datatypes/class_id.hpp +62 -0
- include/rerun/datatypes/color_model.hpp +68 -0
- include/rerun/datatypes/dvec2d.hpp +76 -0
- include/rerun/datatypes/entity_path.hpp +60 -0
- include/rerun/datatypes/float32.hpp +62 -0
- include/rerun/datatypes/float64.hpp +62 -0
- include/rerun/datatypes/image_format.hpp +107 -0
- include/rerun/datatypes/keypoint_id.hpp +63 -0
- include/rerun/datatypes/keypoint_pair.hpp +65 -0
- include/rerun/datatypes/mat3x3.hpp +105 -0
- include/rerun/datatypes/mat4x4.hpp +119 -0
- include/rerun/datatypes/pixel_format.hpp +142 -0
- include/rerun/datatypes/plane3d.hpp +60 -0
- include/rerun/datatypes/quaternion.hpp +110 -0
- include/rerun/datatypes/range1d.hpp +59 -0
- include/rerun/datatypes/range2d.hpp +55 -0
- include/rerun/datatypes/rgba32.hpp +94 -0
- include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
- include/rerun/datatypes/tensor_buffer.hpp +529 -0
- include/rerun/datatypes/tensor_data.hpp +100 -0
- include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
- include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
- include/rerun/datatypes/time_int.hpp +62 -0
- include/rerun/datatypes/time_range.hpp +55 -0
- include/rerun/datatypes/time_range_boundary.hpp +175 -0
- include/rerun/datatypes/uint16.hpp +62 -0
- include/rerun/datatypes/uint32.hpp +62 -0
- include/rerun/datatypes/uint64.hpp +62 -0
- include/rerun/datatypes/utf8.hpp +76 -0
- include/rerun/datatypes/utf8pair.hpp +62 -0
- include/rerun/datatypes/uuid.hpp +60 -0
- include/rerun/datatypes/uvec2d.hpp +76 -0
- include/rerun/datatypes/uvec3d.hpp +80 -0
- include/rerun/datatypes/uvec4d.hpp +59 -0
- include/rerun/datatypes/vec2d.hpp +76 -0
- include/rerun/datatypes/vec3d.hpp +80 -0
- include/rerun/datatypes/vec4d.hpp +84 -0
- include/rerun/datatypes/video_timestamp.hpp +67 -0
- include/rerun/datatypes/view_coordinates.hpp +87 -0
- include/rerun/datatypes/visible_time_range.hpp +57 -0
- include/rerun/datatypes.hpp +51 -0
- include/rerun/demo_utils.hpp +75 -0
- include/rerun/entity_path.hpp +20 -0
- include/rerun/error.hpp +180 -0
- include/rerun/half.hpp +10 -0
- include/rerun/image_utils.hpp +187 -0
- include/rerun/indicator_component.hpp +59 -0
- include/rerun/loggable.hpp +54 -0
- include/rerun/recording_stream.hpp +960 -0
- include/rerun/rerun_sdk_export.hpp +25 -0
- include/rerun/result.hpp +86 -0
- include/rerun/rotation3d.hpp +33 -0
- include/rerun/sdk_info.hpp +20 -0
- include/rerun/spawn.hpp +21 -0
- include/rerun/spawn_options.hpp +57 -0
- include/rerun/string_utils.hpp +16 -0
- include/rerun/third_party/cxxopts.hpp +2198 -0
- include/rerun/time_column.hpp +288 -0
- include/rerun/timeline.hpp +38 -0
- include/rerun/type_traits.hpp +40 -0
- include/rerun.hpp +86 -0
- lib/cmake/axel/axel-config.cmake +45 -0
- lib/cmake/axel/axelTargets-release.cmake +19 -0
- lib/cmake/axel/axelTargets.cmake +108 -0
- lib/cmake/momentum/FindFbxSdk.cmake +115 -0
- lib/cmake/momentum/Findre2.cmake +52 -0
- lib/cmake/momentum/momentum-config.cmake +67 -0
- lib/cmake/momentum/momentumTargets-release.cmake +259 -0
- lib/cmake/momentum/momentumTargets.cmake +385 -0
- lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
- lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
- lib/libarrow.a +0 -0
- lib/libarrow_bundled_dependencies.a +0 -0
- lib/libaxel.a +0 -0
- lib/libmomentum_app_utils.a +0 -0
- lib/libmomentum_character.a +0 -0
- lib/libmomentum_character_sequence_solver.a +0 -0
- lib/libmomentum_character_solver.a +0 -0
- lib/libmomentum_common.a +0 -0
- lib/libmomentum_diff_ik.a +0 -0
- lib/libmomentum_io.a +0 -0
- lib/libmomentum_io_common.a +0 -0
- lib/libmomentum_io_fbx.a +0 -0
- lib/libmomentum_io_gltf.a +0 -0
- lib/libmomentum_io_legacy_json.a +0 -0
- lib/libmomentum_io_marker.a +0 -0
- lib/libmomentum_io_motion.a +0 -0
- lib/libmomentum_io_shape.a +0 -0
- lib/libmomentum_io_skeleton.a +0 -0
- lib/libmomentum_io_urdf.a +0 -0
- lib/libmomentum_marker_tracker.a +0 -0
- lib/libmomentum_math.a +0 -0
- lib/libmomentum_online_qr.a +0 -0
- lib/libmomentum_process_markers.a +0 -0
- lib/libmomentum_rerun.a +0 -0
- lib/libmomentum_simd_constraints.a +0 -0
- lib/libmomentum_simd_generalized_loss.a +0 -0
- lib/libmomentum_skeleton.a +0 -0
- lib/libmomentum_solver.a +0 -0
- lib/librerun_c__macos_arm64.a +0 -0
- lib/librerun_sdk.a +0 -0
- pymomentum/axel.cpython-312-darwin.so +0 -0
- pymomentum/backend/__init__.py +16 -0
- pymomentum/backend/skel_state_backend.py +631 -0
- pymomentum/backend/trs_backend.py +889 -0
- pymomentum/backend/utils.py +224 -0
- pymomentum/geometry.cpython-312-darwin.so +0 -0
- pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-312-darwin.so +0 -0
- pymomentum/solver2.cpython-312-darwin.so +0 -0
- pymomentum/torch/character.py +868 -0
- pymomentum/torch/parameter_limits.py +494 -0
- pymomentum/torch/utility.py +20 -0
- pymomentum/trs.py +535 -0
- pymomentum_cpu-0.1.93.post0.dist-info/METADATA +126 -0
- pymomentum_cpu-0.1.93.post0.dist-info/RECORD +517 -0
- pymomentum_cpu-0.1.93.post0.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.93.post0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,102 @@
|
|
|
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/parameter_limits.h>
|
|
11
|
+
#include <momentum/character/parameter_transform.h>
|
|
12
|
+
|
|
13
|
+
#include <nlohmann/json.hpp>
|
|
14
|
+
#include <Eigen/Core>
|
|
15
|
+
|
|
16
|
+
namespace momentum {
|
|
17
|
+
|
|
18
|
+
// Converts Eigen matrix or vector types to nlohmann::json
|
|
19
|
+
//
|
|
20
|
+
// Note: We intentionally avoid defining nlohmann::adl_serializers for type conversion between Eigen
|
|
21
|
+
// types and nlohmann::json to prevent multiple definitions of the same type in different projects
|
|
22
|
+
// that are compiled in a single translation unit. Instead, we recommend using explicit conversion
|
|
23
|
+
// between the types using the toJson() and fromJson() functions provided in this header.
|
|
24
|
+
template <typename Derived>
|
|
25
|
+
void toJson(const Eigen::MatrixBase<Derived>& mat, nlohmann::json& j) {
|
|
26
|
+
// always save new format that's numpy compatible
|
|
27
|
+
// this works for both dynamic and statically sized matrices
|
|
28
|
+
j = nlohmann::json::array();
|
|
29
|
+
for (int col_i = 0; col_i < mat.cols(); ++col_i) {
|
|
30
|
+
nlohmann::json jcol = nlohmann::json::array();
|
|
31
|
+
for (int row_i = 0; row_i < mat.rows(); ++row_i) {
|
|
32
|
+
jcol.push_back(mat(row_i, col_i));
|
|
33
|
+
}
|
|
34
|
+
j.push_back(jcol);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Converts nlohmann::json to Eigen matrix or vector types
|
|
39
|
+
template <typename T>
|
|
40
|
+
T fromJson(const nlohmann::json& j) {
|
|
41
|
+
T result;
|
|
42
|
+
|
|
43
|
+
// partially dynamic matrix
|
|
44
|
+
if constexpr (T::RowsAtCompileTime == Eigen::Dynamic || T::ColsAtCompileTime == Eigen::Dynamic) {
|
|
45
|
+
// dynamic size matrix
|
|
46
|
+
// reads dimensions from the json
|
|
47
|
+
const auto numCols = j.size();
|
|
48
|
+
if (numCols > 0) {
|
|
49
|
+
const auto numRows = j.at(0).size();
|
|
50
|
+
result.resize(numRows, numCols);
|
|
51
|
+
|
|
52
|
+
for (int col_i = 0; col_i < numCols; ++col_i) {
|
|
53
|
+
std::vector<typename T::Scalar> coef = j[col_i];
|
|
54
|
+
std::copy(coef.begin(), coef.end(), result.col(col_i).begin());
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// fixed size matrix or vector
|
|
59
|
+
else {
|
|
60
|
+
const int Rows = T::RowsAtCompileTime;
|
|
61
|
+
const int Cols = T::ColsAtCompileTime;
|
|
62
|
+
|
|
63
|
+
// vector stored as array
|
|
64
|
+
if (Rows == 1 && Cols != -1 && j.size() == Cols &&
|
|
65
|
+
j[0].type() != nlohmann::json::value_t::array) {
|
|
66
|
+
std::vector<typename T::Scalar> coef = j;
|
|
67
|
+
std::copy(coef.begin(), coef.end(), result.row(0).begin());
|
|
68
|
+
} else if (
|
|
69
|
+
Cols == 1 && Rows != -1 && j.size() == Rows &&
|
|
70
|
+
j[0].type() != nlohmann::json::value_t::array) {
|
|
71
|
+
std::vector<typename T::Scalar> coef = j;
|
|
72
|
+
std::copy(coef.begin(), coef.end(), result.col(0).begin());
|
|
73
|
+
}
|
|
74
|
+
// fixed size matrix
|
|
75
|
+
else {
|
|
76
|
+
const auto numCols = j.size();
|
|
77
|
+
if (numCols > 0) {
|
|
78
|
+
for (int col_i = 0; col_i < Cols; ++col_i) {
|
|
79
|
+
std::vector<typename T::Scalar> coef = j[col_i];
|
|
80
|
+
std::copy(coef.begin(), coef.end(), result.col(col_i).begin());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// to json conversion functions
|
|
90
|
+
void parameterLimitsToJson(const Character& character, nlohmann::json& j);
|
|
91
|
+
void parameterSetsToJson(const Character& character, nlohmann::json& j);
|
|
92
|
+
void poseConstraintsToJson(const Character& character, nlohmann::json& j);
|
|
93
|
+
void parameterTransformToJson(const Character& character, nlohmann::json& j);
|
|
94
|
+
void mppcaToJson(const Character& character, nlohmann::json& j);
|
|
95
|
+
|
|
96
|
+
// from json conversion functions
|
|
97
|
+
ParameterLimits parameterLimitsFromJson(const Character& character, const nlohmann::json& j);
|
|
98
|
+
ParameterSets parameterSetsFromJson(const Character& character, const nlohmann::json& j);
|
|
99
|
+
PoseConstraints poseConstraintsFromJson(const Character& character, const nlohmann::json& j);
|
|
100
|
+
ParameterTransform parameterTransformFromJson(const Character& character, const nlohmann::json& j);
|
|
101
|
+
|
|
102
|
+
} // namespace momentum
|
|
@@ -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 <momentum/character/collision_geometry.h>
|
|
11
|
+
#include <momentum/character/fwd.h>
|
|
12
|
+
#include <momentum/character/locator.h>
|
|
13
|
+
#include <momentum/math/fwd.h>
|
|
14
|
+
|
|
15
|
+
#include <nlohmann/json.hpp>
|
|
16
|
+
#include <span>
|
|
17
|
+
#include <string>
|
|
18
|
+
|
|
19
|
+
namespace momentum {
|
|
20
|
+
|
|
21
|
+
/// Loads a Character from a legacy JSON format that was previously used by older Python libraries
|
|
22
|
+
/// (and some other tools).
|
|
23
|
+
///
|
|
24
|
+
/// The legacy JSON format contains:
|
|
25
|
+
/// - "skeleton": FBX skeleton structure with joints, hierarchy, and transforms
|
|
26
|
+
/// - "skinnedmodel": Mesh data with skinning weights
|
|
27
|
+
/// - "collision": Optional collision geometry (tapered capsules)
|
|
28
|
+
///
|
|
29
|
+
/// @param[in] jsonPath Path to the legacy JSON file
|
|
30
|
+
/// @return The loaded Character object
|
|
31
|
+
/// @throws std::runtime_error if the file cannot be loaded or parsed
|
|
32
|
+
[[nodiscard]] Character loadCharacterFromLegacyJson(const std::string& jsonPath);
|
|
33
|
+
|
|
34
|
+
/// Loads a Character from a legacy JSON buffer.
|
|
35
|
+
///
|
|
36
|
+
/// @param[in] jsonBuffer Buffer containing the legacy JSON data
|
|
37
|
+
/// @return The loaded Character object
|
|
38
|
+
/// @throws std::runtime_error if the buffer cannot be parsed
|
|
39
|
+
[[nodiscard]] Character loadCharacterFromLegacyJsonBuffer(std::span<const std::byte> jsonBuffer);
|
|
40
|
+
|
|
41
|
+
/// Loads a Character from a legacy JSON string.
|
|
42
|
+
///
|
|
43
|
+
/// @param[in] jsonString String containing the legacy JSON data
|
|
44
|
+
/// @return The loaded Character object
|
|
45
|
+
/// @throws std::runtime_error if the string cannot be parsed
|
|
46
|
+
[[nodiscard]] Character loadCharacterFromLegacyJsonString(const std::string& jsonString);
|
|
47
|
+
|
|
48
|
+
/// Saves a Character to legacy JSON format.
|
|
49
|
+
///
|
|
50
|
+
/// This function converts a momentum::Character back to the legacy JSON format
|
|
51
|
+
/// for compatibility with existing tools and workflows.
|
|
52
|
+
///
|
|
53
|
+
/// @param[in] character The Character to save
|
|
54
|
+
/// @param[in] jsonPath Path where to save the legacy JSON file
|
|
55
|
+
/// @throws std::runtime_error if the file cannot be written
|
|
56
|
+
void saveCharacterToLegacyJson(const Character& character, const std::string& jsonPath);
|
|
57
|
+
|
|
58
|
+
/// Converts a Character to legacy JSON string.
|
|
59
|
+
///
|
|
60
|
+
/// @param[in] character The Character to convert
|
|
61
|
+
/// @return String containing the legacy JSON representation
|
|
62
|
+
[[nodiscard]] std::string characterToLegacyJsonString(const Character& character);
|
|
63
|
+
|
|
64
|
+
/// Converts a Character to legacy JSON object.
|
|
65
|
+
///
|
|
66
|
+
/// @param[in] character The Character to convert
|
|
67
|
+
/// @return nlohmann::json object containing the legacy JSON representation
|
|
68
|
+
[[nodiscard]] nlohmann::json characterToLegacyJson(const Character& character);
|
|
69
|
+
|
|
70
|
+
} // namespace momentum
|
|
@@ -0,0 +1,30 @@
|
|
|
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/marker.h>
|
|
11
|
+
#include <momentum/io/marker/coordinate_system.h>
|
|
12
|
+
|
|
13
|
+
namespace momentum {
|
|
14
|
+
|
|
15
|
+
/// Loads all the subjects from a C3D file into a vector of MarkerSequences.
|
|
16
|
+
///
|
|
17
|
+
/// The function reads the given C3D file and stores the marker data as a MarkerSequence. The unit
|
|
18
|
+
/// of the input file will be read from the file and converted to the momentum unit (i.e., cm). The
|
|
19
|
+
/// UpVector parameter 'up' is the up-vector convention of the input marker file.
|
|
20
|
+
///
|
|
21
|
+
/// @param[in] filename The C3D file to load marker data from.
|
|
22
|
+
/// @param[in] up (Optional) The up-vector convention of the input marker file (default:
|
|
23
|
+
/// UpVector::Y).
|
|
24
|
+
/// @return std::vector<MarkerSequence> A vector containing the marker sequences from the C3D file.
|
|
25
|
+
[[nodiscard]] std::vector<MarkerSequence> loadC3d(
|
|
26
|
+
const std::string& filename,
|
|
27
|
+
UpVector up = UpVector::Y,
|
|
28
|
+
std::span<const std::string> validMarkerNames = {});
|
|
29
|
+
|
|
30
|
+
} // namespace momentum
|
|
@@ -0,0 +1,57 @@
|
|
|
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/io/marker/coordinate_system.h>
|
|
11
|
+
#include <momentum/math/types.h>
|
|
12
|
+
|
|
13
|
+
namespace momentum {
|
|
14
|
+
|
|
15
|
+
/// @brief This function converts a 3D vector in the mocap marker coordinate system to the Momentum
|
|
16
|
+
/// coordinate system.
|
|
17
|
+
///
|
|
18
|
+
/// The mocap marker coordinate system uses a spatial index with a specified up-axis (default Z),
|
|
19
|
+
/// right-handedness, and units specified in the 'unit' parameter (default millimeters). The
|
|
20
|
+
/// Momentum coordinate system uses a spatial index with Y as the up-axis, right-handedness, and
|
|
21
|
+
/// units in centimeters.
|
|
22
|
+
///
|
|
23
|
+
/// @tparam T The numeric type of the input and output 3D vectors.
|
|
24
|
+
/// @param[in] vec The 3D vector in the mocap marker coordinate system to be converted.
|
|
25
|
+
/// @param[in] up (Optional) The up-axis convention of the input marker coordinate system (default:
|
|
26
|
+
/// UpVector::Z).
|
|
27
|
+
/// @param[in] unit (Optional) The units of measurement used in the input marker coordinate system
|
|
28
|
+
/// (default: Unit::MM).
|
|
29
|
+
/// @returns A 3D vector in the Momentum coordinate system.
|
|
30
|
+
///
|
|
31
|
+
/// @note This conversion has only been tested for TRC and C3D formats.
|
|
32
|
+
template <typename T>
|
|
33
|
+
[[nodiscard]] Vector3<T>
|
|
34
|
+
toMomentumVector3(const Vector3<T>& vec, UpVector up = UpVector::Z, Unit unit = Unit::MM);
|
|
35
|
+
|
|
36
|
+
/// @brief This function converts a 3D vector in the mocap marker coordinate system to the Momentum
|
|
37
|
+
/// coordinate system, using a string to specify the unit.
|
|
38
|
+
///
|
|
39
|
+
/// The mocap marker coordinate system uses a spatial index with a specified up-axis (default Z),
|
|
40
|
+
/// right-handedness, and units specified in the 'unitStr' parameter (e.g., "m", "cm", "mm"). The
|
|
41
|
+
/// Momentum coordinate system uses a spatial index with Y as the up-axis, right-handedness, and
|
|
42
|
+
/// units in centimeters.
|
|
43
|
+
///
|
|
44
|
+
/// @tparam T The numeric type of the input and output 3D vectors.
|
|
45
|
+
/// @param[in] vec The 3D vector in the mocap marker coordinate system to be converted.
|
|
46
|
+
/// @param[in] up (Optional) The up-axis convention of the input marker coordinate system (default:
|
|
47
|
+
/// UpVector::Z).
|
|
48
|
+
/// @param[in] unitStr The string representation of the units of measurement used in the input
|
|
49
|
+
/// marker coordinate system.
|
|
50
|
+
/// @returns A 3D vector in the Momentum coordinate system.
|
|
51
|
+
///
|
|
52
|
+
/// @note This conversion has only been tested for TRC and C3D formats.
|
|
53
|
+
template <typename T>
|
|
54
|
+
[[nodiscard]] Vector3<T>
|
|
55
|
+
toMomentumVector3(const Vector3<T>& vec, UpVector up, const std::string& unitStr);
|
|
56
|
+
|
|
57
|
+
} // namespace momentum
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
namespace momentum {
|
|
11
|
+
|
|
12
|
+
/// This enumeration is used to define the primary up vector directions for various coordinate
|
|
13
|
+
/// systems and orientations in a 3D environment.
|
|
14
|
+
enum class UpVector {
|
|
15
|
+
X = 0, ///< X-axis up vector
|
|
16
|
+
Y, ///< Y-axis up vector
|
|
17
|
+
Z, ///< Z-axis up vector
|
|
18
|
+
YNeg, ///< Negative Y-axis up vector
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/// An enumeration representing the units of measurement used in marker data files.
|
|
22
|
+
enum class Unit {
|
|
23
|
+
M, ///< Meters
|
|
24
|
+
DM, ///< Decimeter
|
|
25
|
+
CM, ///< Centimeters
|
|
26
|
+
MM, ///< Millimeters
|
|
27
|
+
Unknown, ///< Unknown unit of measurement
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
} // namespace momentum
|
|
@@ -0,0 +1,56 @@
|
|
|
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/marker.h>
|
|
11
|
+
#include <momentum/io/marker/coordinate_system.h>
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
#include <vector>
|
|
15
|
+
|
|
16
|
+
namespace momentum {
|
|
17
|
+
|
|
18
|
+
/// Loads all actor sequences from a marker file (c3d, trc, glb) and converts the positions
|
|
19
|
+
/// to the target coordinate system. Default target coordinate system is: (Y-up, right-handed,
|
|
20
|
+
/// centimeter units).
|
|
21
|
+
///
|
|
22
|
+
/// @param[in] filename The marker file to load data from.
|
|
23
|
+
/// @param[in] up (Optional) The up-vector convention of the input marker file (default:
|
|
24
|
+
/// UpVector::Y).
|
|
25
|
+
/// @return std::vector<MarkerSequence> A vector of MarkerSequences containing the marker data from
|
|
26
|
+
/// the file.
|
|
27
|
+
[[nodiscard]] std::vector<MarkerSequence> loadMarkers(
|
|
28
|
+
const std::string& filename,
|
|
29
|
+
UpVector up = UpVector::Y,
|
|
30
|
+
std::span<const std::string> validMarkerNames = {});
|
|
31
|
+
|
|
32
|
+
/// Loads the main subject's marker data from a marker file (c3d, trc, glb) and converts the
|
|
33
|
+
/// positions to the target coordinate system. Default target coordinate system is: (Y-up,
|
|
34
|
+
/// right-handed, centimeter units). The main subject is determined as the one with the most number
|
|
35
|
+
/// of visible markers in the first frame.
|
|
36
|
+
///
|
|
37
|
+
/// @param[in] filename The marker file to load data from.
|
|
38
|
+
/// @param[in] up (Optional) The up-vector convention of the input marker file (default:
|
|
39
|
+
/// UpVector::Y).
|
|
40
|
+
/// @return std::optional<MarkerSequence> A MarkerSequence containing the main subject's marker
|
|
41
|
+
/// data, or an empty optional if no main subject is found.
|
|
42
|
+
[[nodiscard]] std::optional<MarkerSequence> loadMarkersForMainSubject(
|
|
43
|
+
const std::string& filename,
|
|
44
|
+
UpVector up = UpVector::Y,
|
|
45
|
+
std::span<const std::string> validMarkerNames = {});
|
|
46
|
+
|
|
47
|
+
/// Finds the "main subject" from a vector of MarkerSequences. The main subject is currently defined
|
|
48
|
+
/// as a named actor with the maximum number of visible markers in the sequence.
|
|
49
|
+
///
|
|
50
|
+
/// @param[in] markerSequences A vector of MarkerSequences to search for the main subject.
|
|
51
|
+
/// @return int The main subject's index in the input vector. If no main subject found, -1 is
|
|
52
|
+
/// returned.
|
|
53
|
+
/// @note This function is exposed mainly for unit tests.
|
|
54
|
+
[[nodiscard]] int findMainSubjectIndex(std::span<const MarkerSequence> markerSequences);
|
|
55
|
+
|
|
56
|
+
} // 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
|
+
#include <momentum/character/marker.h>
|
|
11
|
+
#include <momentum/io/marker/coordinate_system.h>
|
|
12
|
+
|
|
13
|
+
namespace momentum {
|
|
14
|
+
|
|
15
|
+
/// Loads marker data from a TRC file into a MarkerSequence.
|
|
16
|
+
///
|
|
17
|
+
/// The function reads the given TRC file and stores the marker data as a MarkerSequence. The unit
|
|
18
|
+
/// of the input file will be read from the file and converted to the momentum unit (i.e., cm). The
|
|
19
|
+
/// UpVector parameter 'up' is the up-vector convention of the input marker file.
|
|
20
|
+
///
|
|
21
|
+
/// @param[in] filename The TRC file to load marker data from.
|
|
22
|
+
/// @param[in] up (Optional) The up-vector convention of the input marker file (default:
|
|
23
|
+
/// UpVector::Y).
|
|
24
|
+
/// @return MarkerSequence A MarkerSequence containing the marker data from the TRC file.
|
|
25
|
+
[[nodiscard]] MarkerSequence loadTrc(const std::string& filename, UpVector up = UpVector::Y);
|
|
26
|
+
|
|
27
|
+
} // namespace momentum
|
|
@@ -0,0 +1,97 @@
|
|
|
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/fwd.h>
|
|
11
|
+
#include <momentum/math/types.h>
|
|
12
|
+
|
|
13
|
+
namespace momentum {
|
|
14
|
+
|
|
15
|
+
/// Save motion data using character parameter mapping
|
|
16
|
+
///
|
|
17
|
+
/// @param filename Output file path
|
|
18
|
+
/// @param poses Motion poses as span of vectors, each vector represents one frame
|
|
19
|
+
/// @param scale Joint scale parameters
|
|
20
|
+
/// @param character Character definition for parameter mapping
|
|
21
|
+
void saveMmo(
|
|
22
|
+
const std::string& filename,
|
|
23
|
+
std::span<const VectorXf> poses,
|
|
24
|
+
const VectorXf& scale,
|
|
25
|
+
const Character& character);
|
|
26
|
+
|
|
27
|
+
/// Save motion data with optional additional parameters
|
|
28
|
+
///
|
|
29
|
+
/// @param filename Output file path
|
|
30
|
+
/// @param poses Motion poses matrix (parameters x frames)
|
|
31
|
+
/// @param scale Joint scale parameters
|
|
32
|
+
/// @param character Character definition for parameter mapping
|
|
33
|
+
/// @param additionalParameters Extra parameters to store alongside poses
|
|
34
|
+
/// @param additionalParameterNames Names for additional parameters
|
|
35
|
+
void saveMmo(
|
|
36
|
+
const std::string& filename,
|
|
37
|
+
const MatrixXf& poses,
|
|
38
|
+
const VectorXf& scale,
|
|
39
|
+
const Character& character,
|
|
40
|
+
const MatrixXf& additionalParameters = MatrixXf(),
|
|
41
|
+
std::span<const std::string> additionalParameterNames = std::vector<std::string>());
|
|
42
|
+
|
|
43
|
+
/// Save motion data with explicit parameter and joint names
|
|
44
|
+
///
|
|
45
|
+
/// @param filename Output file path
|
|
46
|
+
/// @param poses Motion poses matrix (parameters x frames)
|
|
47
|
+
/// @param scale Joint scale parameters
|
|
48
|
+
/// @param parameterNames Names of motion parameters
|
|
49
|
+
/// @param jointNames Names of skeleton joints
|
|
50
|
+
void saveMmo(
|
|
51
|
+
const std::string& filename,
|
|
52
|
+
const MatrixXf& poses,
|
|
53
|
+
const VectorXf& scale,
|
|
54
|
+
std::span<const std::string> parameterNames,
|
|
55
|
+
std::span<const std::string> jointNames);
|
|
56
|
+
|
|
57
|
+
/// Load motion data from file
|
|
58
|
+
///
|
|
59
|
+
/// @param filename Input file path
|
|
60
|
+
/// @return Tuple of (poses, scale, parameter names, joint names)
|
|
61
|
+
std::tuple<MatrixXf, VectorXf, std::vector<std::string>, std::vector<std::string>> loadMmo(
|
|
62
|
+
const std::string& filename);
|
|
63
|
+
|
|
64
|
+
/// Load motion data and map to character parameter space
|
|
65
|
+
///
|
|
66
|
+
/// @param filename Input file path
|
|
67
|
+
/// @param character Target character for parameter mapping
|
|
68
|
+
/// @return Tuple of (mapped poses, mapped scale)
|
|
69
|
+
std::tuple<MatrixXf, VectorXf> loadMmo(const std::string& filename, const Character& character);
|
|
70
|
+
|
|
71
|
+
/// Extract auxiliary data from motion parameters
|
|
72
|
+
///
|
|
73
|
+
/// Auxiliary parameters are identified by names wrapped with double underscores (e.g., "__param__")
|
|
74
|
+
///
|
|
75
|
+
/// @param poses Motion poses matrix
|
|
76
|
+
/// @param parameterNames Names of all parameters
|
|
77
|
+
/// @return Tuple of (auxiliary data matrix, auxiliary parameter names without underscores)
|
|
78
|
+
std::tuple<MatrixXf, std::vector<std::string>> getAuxiliaryDataFromMotion(
|
|
79
|
+
const MatrixXf& poses,
|
|
80
|
+
std::span<const std::string> parameterNames);
|
|
81
|
+
|
|
82
|
+
/// Map motion data from one parameter space to character parameter space
|
|
83
|
+
///
|
|
84
|
+
/// @param poses Source motion poses
|
|
85
|
+
/// @param offsets Source joint offsets
|
|
86
|
+
/// @param parameterNames Source parameter names
|
|
87
|
+
/// @param jointNames Source joint names
|
|
88
|
+
/// @param character Target character definition
|
|
89
|
+
/// @return Tuple of (mapped poses, mapped offsets)
|
|
90
|
+
std::tuple<MatrixXf, VectorXf> mapMotionToCharacter(
|
|
91
|
+
const MatrixXf& poses,
|
|
92
|
+
const VectorXf& offsets,
|
|
93
|
+
std::span<const std::string> parameterNames,
|
|
94
|
+
std::span<const std::string> jointNames,
|
|
95
|
+
const Character& character);
|
|
96
|
+
|
|
97
|
+
} // namespace momentum
|
|
@@ -0,0 +1,82 @@
|
|
|
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/blend_shape.h>
|
|
11
|
+
#include <momentum/common/filesystem.h>
|
|
12
|
+
|
|
13
|
+
#include <iosfwd>
|
|
14
|
+
|
|
15
|
+
namespace momentum {
|
|
16
|
+
|
|
17
|
+
/// Loads blend shape vectors from a file without base shape.
|
|
18
|
+
///
|
|
19
|
+
/// @param filename Path to the blend shape base data file
|
|
20
|
+
/// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
|
|
21
|
+
/// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
|
|
22
|
+
/// @return BlendShapeBase object with loaded shape vectors
|
|
23
|
+
BlendShapeBase loadBlendShapeBase(
|
|
24
|
+
const filesystem::path& filename,
|
|
25
|
+
int expectedShapes = -1,
|
|
26
|
+
int expectedVertices = -1);
|
|
27
|
+
|
|
28
|
+
/// Loads blend shape vectors from a stream without base shape.
|
|
29
|
+
///
|
|
30
|
+
/// @param data Input stream containing blend shape base data
|
|
31
|
+
/// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
|
|
32
|
+
/// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
|
|
33
|
+
/// @return BlendShapeBase object with loaded shape vectors
|
|
34
|
+
BlendShapeBase
|
|
35
|
+
loadBlendShapeBase(std::istream& data, int expectedShapes = -1, int expectedVertices = -1);
|
|
36
|
+
|
|
37
|
+
/// Loads a blend shape from a file, including base shape and shape vectors.
|
|
38
|
+
///
|
|
39
|
+
/// @param filename Path to the blend shape data file
|
|
40
|
+
/// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
|
|
41
|
+
/// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
|
|
42
|
+
/// @return BlendShape object with loaded data
|
|
43
|
+
///
|
|
44
|
+
/// @note Only supports local files. For non-local paths, use the stream version.
|
|
45
|
+
BlendShape loadBlendShape(
|
|
46
|
+
const filesystem::path& filename,
|
|
47
|
+
int expectedShapes = -1,
|
|
48
|
+
int expectedVertices = -1);
|
|
49
|
+
|
|
50
|
+
/// Loads a blend shape from a stream, including base shape and shape vectors.
|
|
51
|
+
///
|
|
52
|
+
/// @param data Input stream containing blend shape data
|
|
53
|
+
/// @param expectedShapes Limits number of shape vectors loaded if > 0, otherwise loads all
|
|
54
|
+
/// @param expectedVertices Limits number of vertices loaded if > 0, otherwise loads all
|
|
55
|
+
/// @return BlendShape object with loaded data
|
|
56
|
+
BlendShape loadBlendShape(std::istream& data, int expectedShapes = -1, int expectedVertices = -1);
|
|
57
|
+
|
|
58
|
+
/// Saves a blend shape base (shape vectors) to a file.
|
|
59
|
+
///
|
|
60
|
+
/// @param filename Output file path for the blend shape data
|
|
61
|
+
/// @param blendShapeBase BlendShapeBase object to save
|
|
62
|
+
void saveBlendShapeBase(const filesystem::path& filename, const BlendShapeBase& blendShapeBase);
|
|
63
|
+
|
|
64
|
+
/// Saves a blend shape to a file.
|
|
65
|
+
///
|
|
66
|
+
/// @param filename Output file path for the blend shape data
|
|
67
|
+
/// @param blendShape BlendShape object to save
|
|
68
|
+
void saveBlendShape(const filesystem::path& filename, const BlendShape& blendShape);
|
|
69
|
+
|
|
70
|
+
/// Saves a blend shape base (shape vectors) to a stream.
|
|
71
|
+
///
|
|
72
|
+
/// @param os Output stream to write blend shape data
|
|
73
|
+
/// @param blendShapeBase BlendShapeBase object to save
|
|
74
|
+
void saveBlendShapeBase(std::ostream& os, const BlendShapeBase& blendShapeBase);
|
|
75
|
+
|
|
76
|
+
/// Saves a blend shape to a stream.
|
|
77
|
+
///
|
|
78
|
+
/// @param os Output stream to write blend shape data
|
|
79
|
+
/// @param blendShape BlendShape object to save
|
|
80
|
+
void saveBlendShape(std::ostream& os, const BlendShape& blendShape);
|
|
81
|
+
|
|
82
|
+
} // namespace momentum
|
|
@@ -0,0 +1,21 @@
|
|
|
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/pose_shape.h>
|
|
11
|
+
|
|
12
|
+
namespace momentum {
|
|
13
|
+
|
|
14
|
+
/// Loads pose shape data from a binary file.
|
|
15
|
+
///
|
|
16
|
+
/// @param filename Path to the pose shape data file
|
|
17
|
+
/// @param character Character containing skeleton and mesh for validation and joint mapping
|
|
18
|
+
/// @return PoseShape with loaded data, or empty PoseShape if file cannot be opened
|
|
19
|
+
PoseShape loadPoseShape(const std::string& filename, const Character& character);
|
|
20
|
+
|
|
21
|
+
} // namespace momentum
|
|
@@ -0,0 +1,41 @@
|
|
|
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/fwd.h>
|
|
11
|
+
#include <momentum/character/locator.h>
|
|
12
|
+
|
|
13
|
+
#include <momentum/common/filesystem.h>
|
|
14
|
+
#include <span>
|
|
15
|
+
|
|
16
|
+
namespace momentum {
|
|
17
|
+
|
|
18
|
+
enum class LocatorSpace {
|
|
19
|
+
Local = 0, // local offset in the joint space; useful for transferring locators from one model to
|
|
20
|
+
// another.
|
|
21
|
+
Global = 1, // global offset in the character's space; useful for authoring in Maya/Blender
|
|
22
|
+
// without parenting the locators.
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
LocatorList loadLocators(
|
|
26
|
+
const filesystem::path& filename,
|
|
27
|
+
const Skeleton& skeleton,
|
|
28
|
+
const ParameterTransform& parameterTransform);
|
|
29
|
+
|
|
30
|
+
LocatorList loadLocatorsFromBuffer(
|
|
31
|
+
std::span<const std::byte> rawData,
|
|
32
|
+
const Skeleton& skeleton,
|
|
33
|
+
const ParameterTransform& parameterTransform);
|
|
34
|
+
|
|
35
|
+
void saveLocators(
|
|
36
|
+
const filesystem::path& filename,
|
|
37
|
+
const LocatorList& locators,
|
|
38
|
+
const Skeleton& skeleton,
|
|
39
|
+
LocatorSpace space = LocatorSpace::Global);
|
|
40
|
+
|
|
41
|
+
} // namespace momentum
|
|
@@ -0,0 +1,26 @@
|
|
|
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/fwd.h>
|
|
11
|
+
|
|
12
|
+
#include <span>
|
|
13
|
+
|
|
14
|
+
#include <istream>
|
|
15
|
+
|
|
16
|
+
namespace momentum {
|
|
17
|
+
|
|
18
|
+
std::shared_ptr<const Mppca> loadMppca(std::istream& inputStream);
|
|
19
|
+
|
|
20
|
+
std::shared_ptr<const Mppca> loadMppca(const std::string& name);
|
|
21
|
+
|
|
22
|
+
std::shared_ptr<const Mppca> loadMppca(std::span<const unsigned char> posePriorDataRaw);
|
|
23
|
+
|
|
24
|
+
void saveMppca(const Mppca& mppca, const std::string& name);
|
|
25
|
+
|
|
26
|
+
} // namespace momentum
|