pymomentum-cpu 0.1.82.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.
- include/axel/BoundingBox.h +58 -0
- include/axel/Bvh.h +708 -0
- include/axel/BvhBase.h +75 -0
- include/axel/BvhCommon.h +43 -0
- include/axel/BvhEmbree.h +86 -0
- include/axel/BvhFactory.h +34 -0
- include/axel/Checks.h +21 -0
- include/axel/DualContouring.h +79 -0
- include/axel/KdTree.h +199 -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 +91 -0
- include/momentum/character/blend_shape_base.h +70 -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 +82 -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 +250 -0
- include/momentum/character/pose_shape.h +65 -0
- include/momentum/character/skeleton.h +85 -0
- include/momentum/character/skeleton_state.h +181 -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 +144 -0
- include/momentum/character_sequence_solver/sequence_solver_function.h +134 -0
- include/momentum/character_sequence_solver/state_sequence_error_function.h +109 -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 +924 -0
- include/momentum/character_solver/gauss_newton_solver_qr.h +64 -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 +94 -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 +56 -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 +109 -0
- include/momentum/io/fbx/fbx_memory_stream.h +66 -0
- include/momentum/io/fbx/openfbx_loader.h +49 -0
- include/momentum/io/fbx/polygon_data.h +60 -0
- include/momentum/io/gltf/gltf_builder.h +132 -0
- include/momentum/io/gltf/gltf_file_format.h +19 -0
- include/momentum/io/gltf/gltf_io.h +148 -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 +70 -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 +25 -0
- include/momentum/io/skeleton/parameter_transform_io.h +41 -0
- include/momentum/io/skeleton/parameters_io.h +20 -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 +62 -0
- include/momentum/marker_tracking/marker_tracker.h +213 -0
- include/momentum/marker_tracking/process_markers.h +58 -0
- include/momentum/marker_tracking/tracker_utils.h +90 -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 +251 -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/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/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 +377 -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-313-darwin.so +0 -0
- pymomentum/backend/__init__.py +16 -0
- pymomentum/backend/skel_state_backend.py +614 -0
- pymomentum/backend/trs_backend.py +871 -0
- pymomentum/backend/utils.py +224 -0
- pymomentum/geometry.cpython-313-darwin.so +0 -0
- pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-313-darwin.so +0 -0
- pymomentum/solver2.cpython-313-darwin.so +0 -0
- pymomentum/torch/character.py +856 -0
- pymomentum/torch/parameter_limits.py +494 -0
- pymomentum/torch/utility.py +20 -0
- pymomentum/trs.py +535 -0
- pymomentum_cpu-0.1.82.post0.dist-info/METADATA +121 -0
- pymomentum_cpu-0.1.82.post0.dist-info/RECORD +512 -0
- pymomentum_cpu-0.1.82.post0.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.82.post0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,173 @@
|
|
|
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
|
+
// Allow DEFAULT_LOG_CHANNEL to be defined before including this file if you want to override the
|
|
13
|
+
// default channel name. To set your own channel name (the order matters):
|
|
14
|
+
// #define DEFAULT_LOG_CHANNEL "my_custom_channel_name"
|
|
15
|
+
// #include <momentum/common/logging.h>
|
|
16
|
+
#ifndef DEFAULT_LOG_CHANNEL
|
|
17
|
+
#include <momentum/common/log_channel.h>
|
|
18
|
+
#define DEFAULT_LOG_CHANNEL MOMENTUM_LOG_CHANNEL
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#include <logging/Log.h>
|
|
22
|
+
|
|
23
|
+
#define MT_LOGT(...) XR_LOGT(__VA_ARGS__)
|
|
24
|
+
#define MT_LOGD(...) XR_LOGD(__VA_ARGS__)
|
|
25
|
+
#define MT_LOGI(...) XR_LOGI(__VA_ARGS__)
|
|
26
|
+
#define MT_LOGW(...) XR_LOGW(__VA_ARGS__)
|
|
27
|
+
#define MT_LOGE(...) XR_LOGE(__VA_ARGS__)
|
|
28
|
+
|
|
29
|
+
#define MT_LOGT_IF(condition, ...) XR_LOGT_IF(condition, __VA_ARGS__)
|
|
30
|
+
#define MT_LOGD_IF(condition, ...) XR_LOGD_IF(condition, __VA_ARGS__)
|
|
31
|
+
#define MT_LOGI_IF(condition, ...) XR_LOGI_IF(condition, __VA_ARGS__)
|
|
32
|
+
#define MT_LOGW_IF(condition, ...) XR_LOGW_IF(condition, __VA_ARGS__)
|
|
33
|
+
#define MT_LOGE_IF(condition, ...) XR_LOGE_IF(condition, __VA_ARGS__)
|
|
34
|
+
|
|
35
|
+
#define MT_LOGT_ONCE(...) XR_LOGT_ONCE(__VA_ARGS__)
|
|
36
|
+
#define MT_LOGD_ONCE(...) XR_LOGD_ONCE(__VA_ARGS__)
|
|
37
|
+
#define MT_LOGI_ONCE(...) XR_LOGI_ONCE(__VA_ARGS__)
|
|
38
|
+
#define MT_LOGW_ONCE(...) XR_LOGW_ONCE(__VA_ARGS__)
|
|
39
|
+
#define MT_LOGE_ONCE(...) XR_LOGE_ONCE(__VA_ARGS__)
|
|
40
|
+
|
|
41
|
+
#define MT_LOGT_ONCE_IF(condition, ...) XR_LOGT_ONCE_IF(condition, __VA_ARGS__)
|
|
42
|
+
#define MT_LOGD_ONCE_IF(condition, ...) XR_LOGD_ONCE_IF(condition, __VA_ARGS__)
|
|
43
|
+
#define MT_LOGI_ONCE_IF(condition, ...) XR_LOGI_ONCE_IF(condition, __VA_ARGS__)
|
|
44
|
+
#define MT_LOGW_ONCE_IF(condition, ...) XR_LOGW_ONCE_IF(condition, __VA_ARGS__)
|
|
45
|
+
#define MT_LOGE_ONCE_IF(condition, ...) XR_LOGE_ONCE_IF(condition, __VA_ARGS__)
|
|
46
|
+
|
|
47
|
+
#elif defined(MOMENTUM_WITH_SPDLOG)
|
|
48
|
+
|
|
49
|
+
#include <spdlog/spdlog.h>
|
|
50
|
+
|
|
51
|
+
#include <atomic>
|
|
52
|
+
|
|
53
|
+
#define MT_LOGT(...) ::spdlog::trace(__VA_ARGS__)
|
|
54
|
+
#define MT_LOGD(...) ::spdlog::debug(__VA_ARGS__)
|
|
55
|
+
#define MT_LOGI(...) ::spdlog::info(__VA_ARGS__)
|
|
56
|
+
#define MT_LOGW(...) ::spdlog::warn(__VA_ARGS__)
|
|
57
|
+
#define MT_LOGE(...) ::spdlog::error(__VA_ARGS__)
|
|
58
|
+
|
|
59
|
+
#define MT_LOGT_IF(condition, ...) \
|
|
60
|
+
if (condition) { \
|
|
61
|
+
MT_LOGT(__VA_ARGS__); \
|
|
62
|
+
}
|
|
63
|
+
#define MT_LOGD_IF(condition, ...) \
|
|
64
|
+
if (condition) { \
|
|
65
|
+
MT_LOGD(__VA_ARGS__); \
|
|
66
|
+
}
|
|
67
|
+
#define MT_LOGI_IF(condition, ...) \
|
|
68
|
+
if (condition) { \
|
|
69
|
+
MT_LOGI(__VA_ARGS__); \
|
|
70
|
+
}
|
|
71
|
+
#define MT_LOGW_IF(condition, ...) \
|
|
72
|
+
if (condition) { \
|
|
73
|
+
MT_LOGW(__VA_ARGS__); \
|
|
74
|
+
}
|
|
75
|
+
#define MT_LOGE_IF(condition, ...) \
|
|
76
|
+
if (condition) { \
|
|
77
|
+
MT_LOGE(__VA_ARGS__); \
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// This function is designed to limit the number of times an error is logged.
|
|
81
|
+
// Please note that in a multi-threaded context, its behavior may not be guaranteed.
|
|
82
|
+
#define _MT_RUN_ONCE(runcode) \
|
|
83
|
+
{ \
|
|
84
|
+
static std::atomic<bool> codeRan(false); \
|
|
85
|
+
if (!codeRan) { \
|
|
86
|
+
bool expected = false; \
|
|
87
|
+
if (codeRan.compare_exchange_strong(expected, true)) { \
|
|
88
|
+
runcode; \
|
|
89
|
+
} \
|
|
90
|
+
} \
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
#define MT_LOGT_ONCE(...) _MT_RUN_ONCE(MT_LOGT(__VA_ARGS__))
|
|
94
|
+
#define MT_LOGD_ONCE(...) _MT_RUN_ONCE(MT_LOGD(__VA_ARGS__))
|
|
95
|
+
#define MT_LOGI_ONCE(...) _MT_RUN_ONCE(MT_LOGI(__VA_ARGS__))
|
|
96
|
+
#define MT_LOGW_ONCE(...) _MT_RUN_ONCE(MT_LOGW(__VA_ARGS__))
|
|
97
|
+
#define MT_LOGE_ONCE(...) _MT_RUN_ONCE(MT_LOGE(__VA_ARGS__))
|
|
98
|
+
|
|
99
|
+
#define MT_LOGT_ONCE_IF(condition, ...) \
|
|
100
|
+
if (condition) { \
|
|
101
|
+
MT_LOGT_ONCE(__VA_ARGS__); \
|
|
102
|
+
}
|
|
103
|
+
#define MT_LOGD_ONCE_IF(condition, ...) \
|
|
104
|
+
if (condition) { \
|
|
105
|
+
MT_LOGD_ONCE(__VA_ARGS__); \
|
|
106
|
+
}
|
|
107
|
+
#define MT_LOGI_ONCE_IF(condition, ...) \
|
|
108
|
+
if (condition) { \
|
|
109
|
+
MT_LOGI_ONCE(__VA_ARGS__); \
|
|
110
|
+
}
|
|
111
|
+
#define MT_LOGW_ONCE_IF(condition, ...) \
|
|
112
|
+
if (condition) { \
|
|
113
|
+
MT_LOGW_ONCE(__VA_ARGS__); \
|
|
114
|
+
}
|
|
115
|
+
#define MT_LOGE_ONCE_IF(condition, ...) \
|
|
116
|
+
if (condition) { \
|
|
117
|
+
MT_LOGE_ONCE(__VA_ARGS__); \
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#else
|
|
121
|
+
|
|
122
|
+
#define MT_LOGT(...)
|
|
123
|
+
#define MT_LOGD(...)
|
|
124
|
+
#define MT_LOGI(...)
|
|
125
|
+
#define MT_LOGW(...)
|
|
126
|
+
#define MT_LOGE(...)
|
|
127
|
+
|
|
128
|
+
#define MT_LOGT_IF(condition, ...)
|
|
129
|
+
#define MT_LOGD_IF(condition, ...)
|
|
130
|
+
#define MT_LOGI_IF(condition, ...)
|
|
131
|
+
#define MT_LOGW_IF(condition, ...)
|
|
132
|
+
#define MT_LOGE_IF(condition, ...)
|
|
133
|
+
|
|
134
|
+
#define MT_LOGT_ONCE(...)
|
|
135
|
+
#define MT_LOGD_ONCE(...)
|
|
136
|
+
#define MT_LOGI_ONCE(...)
|
|
137
|
+
#define MT_LOGW_ONCE(...)
|
|
138
|
+
#define MT_LOGE_ONCE(...)
|
|
139
|
+
|
|
140
|
+
#define MT_LOGT_ONCE_IF(condition, ...)
|
|
141
|
+
#define MT_LOGD_ONCE_IF(condition, ...)
|
|
142
|
+
#define MT_LOGI_ONCE_IF(condition, ...)
|
|
143
|
+
#define MT_LOGW_ONCE_IF(condition, ...)
|
|
144
|
+
#define MT_LOGE_ONCE_IF(condition, ...)
|
|
145
|
+
|
|
146
|
+
#endif
|
|
147
|
+
|
|
148
|
+
#include <momentum/common/checks.h>
|
|
149
|
+
|
|
150
|
+
#include <map>
|
|
151
|
+
#include <string>
|
|
152
|
+
|
|
153
|
+
namespace momentum {
|
|
154
|
+
|
|
155
|
+
/// Logging levels in descending order of verbosity
|
|
156
|
+
enum class LogLevel {
|
|
157
|
+
Disabled = 0,
|
|
158
|
+
Error,
|
|
159
|
+
Warning,
|
|
160
|
+
Info,
|
|
161
|
+
Debug,
|
|
162
|
+
Trace,
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
[[nodiscard]] std::map<std::string, LogLevel> logLevelMap();
|
|
166
|
+
|
|
167
|
+
void setLogLevel(LogLevel level);
|
|
168
|
+
|
|
169
|
+
void setLogLevel(const std::string& levelStr);
|
|
170
|
+
|
|
171
|
+
[[nodiscard]] LogLevel getLogLevel();
|
|
172
|
+
|
|
173
|
+
} // namespace momentum
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
// The file to include in header files. Used as XR_LOGCI(MOMENTUM_LOG_CHANNEL, "message");
|
|
13
|
+
|
|
14
|
+
#include <logging/Log.h>
|
|
15
|
+
#define MOMENTUM_LOG_CHANNEL "MOMENTUM"
|
|
16
|
+
|
|
17
|
+
#endif
|
|
@@ -0,0 +1,71 @@
|
|
|
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 <memory>
|
|
11
|
+
|
|
12
|
+
// Define smart pointers for a type
|
|
13
|
+
#ifndef MOMENTUM_DEFINE_POINTERS
|
|
14
|
+
#define MOMENTUM_DEFINE_POINTERS(x) \
|
|
15
|
+
using x##_p = ::std::shared_ptr<x>; \
|
|
16
|
+
using x##_u = ::std::unique_ptr<x>; \
|
|
17
|
+
using x##_w = ::std::weak_ptr<x>; \
|
|
18
|
+
using x##_const_p = ::std::shared_ptr<const x>; \
|
|
19
|
+
using x##_const_u = ::std::unique_ptr<const x>; \
|
|
20
|
+
using x##_const_w = ::std::weak_ptr<const x>;
|
|
21
|
+
#endif // MOMENTUM_DEFINE_POINTERS
|
|
22
|
+
|
|
23
|
+
// Forward-declare a struct, define smart pointers
|
|
24
|
+
#ifndef MOMENTUM_FWD_DECLARE_STRUCT
|
|
25
|
+
#define MOMENTUM_FWD_DECLARE_STRUCT(x) \
|
|
26
|
+
struct x; \
|
|
27
|
+
MOMENTUM_DEFINE_POINTERS(x);
|
|
28
|
+
#endif // MOMENTUM_FWD_DECLARE_STRUCT
|
|
29
|
+
|
|
30
|
+
// Forward-declare a class, define smart pointers
|
|
31
|
+
#ifndef MOMENTUM_FWD_DECLARE_CLASS
|
|
32
|
+
// NOLINTBEGIN(bugprone-macro-parentheses)
|
|
33
|
+
#define MOMENTUM_FWD_DECLARE_CLASS(x) \
|
|
34
|
+
class x; \
|
|
35
|
+
MOMENTUM_DEFINE_POINTERS(x)
|
|
36
|
+
// NOLINTEND(bugprone-macro-parentheses)
|
|
37
|
+
#endif // MOMENTUM_FWD_DECLARE_CLASS
|
|
38
|
+
|
|
39
|
+
// Forward-declare a templated class, define smart pointers for the class and its variants
|
|
40
|
+
// Use the standard backward-compatible naming scheme:
|
|
41
|
+
// template <typename T> class BarT;
|
|
42
|
+
// using Bar = BarT<float>;
|
|
43
|
+
// using Bard = BarT<double>;
|
|
44
|
+
#ifndef MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS
|
|
45
|
+
// NOLINTBEGIN(bugprone-macro-parentheses)
|
|
46
|
+
#define MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS(x) \
|
|
47
|
+
template <typename T> \
|
|
48
|
+
class x##T; \
|
|
49
|
+
using x = x##T<float>; \
|
|
50
|
+
using x##d = x##T<double>; \
|
|
51
|
+
MOMENTUM_DEFINE_POINTERS(x) \
|
|
52
|
+
MOMENTUM_DEFINE_POINTERS(x##d)
|
|
53
|
+
// NOLINTEND(bugprone-macro-parentheses)
|
|
54
|
+
#endif // MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS
|
|
55
|
+
|
|
56
|
+
// Forward-declare a templated struct, define smart pointers for the struct and its variants
|
|
57
|
+
// Use the standard backward-compatible naming scheme:
|
|
58
|
+
// template <typename T> struct BarT;
|
|
59
|
+
// using Bar = BarT<float>;
|
|
60
|
+
// using Bard = BarT<double>;
|
|
61
|
+
#ifndef MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT
|
|
62
|
+
// NOLINTBEGIN(bugprone-macro-parentheses)
|
|
63
|
+
#define MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT(x) \
|
|
64
|
+
template <typename T> \
|
|
65
|
+
struct x##T; \
|
|
66
|
+
using x = x##T<float>; \
|
|
67
|
+
using x##d = x##T<double>; \
|
|
68
|
+
MOMENTUM_DEFINE_POINTERS(x) \
|
|
69
|
+
MOMENTUM_DEFINE_POINTERS(x##d)
|
|
70
|
+
// NOLINTEND(bugprone-macro-parentheses)
|
|
71
|
+
#endif // MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT
|
|
@@ -0,0 +1,79 @@
|
|
|
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_PROFILER)
|
|
11
|
+
|
|
12
|
+
#include <arvr/libraries/profile_redirect/annotate.hpp>
|
|
13
|
+
|
|
14
|
+
#define MT_PROFILE_FUNCTION() XR_PROFILE_FUNCTION()
|
|
15
|
+
#define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY) XR_PROFILE_FUNCTION_CATEGORY(CATEGORY)
|
|
16
|
+
#define MT_PROFILE_EVENT(NAME) XR_PROFILE_EVENT(NAME)
|
|
17
|
+
#define MT_PROFILE_EVENT_DYNAMIC(NAME) XR_PROFILE_EVENT_DYNAMIC(NAME)
|
|
18
|
+
#define MT_PROFILE_CATEGORY(NAME, CATEGORY) XR_PROFILE_CATEGORY(NAME, CATEGORY)
|
|
19
|
+
#define MT_PROFILE_PREPARE_PUSH_POP() XR_PROFILE_PREPARE_PUSH_POP()
|
|
20
|
+
#define MT_PROFILE_PUSH(NAME) XR_PROFILE_PUSH(NAME)
|
|
21
|
+
#define MT_PROFILE_POP() XR_PROFILE_POP()
|
|
22
|
+
#define MT_PROFILE_THREAD(THREAD_NAME) XR_PROFILE_THREAD(THREAD_NAME)
|
|
23
|
+
#define MT_PROFILE_UPDATE() XR_PROFILE_UPDATE()
|
|
24
|
+
#define MT_PROFILE_BEGIN_FRAME() XR_PROFILE_BEGIN_FRAME()
|
|
25
|
+
#define MT_PROFILE_END_FRAME() XR_PROFILE_END_FRAME()
|
|
26
|
+
#define MT_PROFILE_METADATA(NAME, DATA) XR_PROFILE_METADATA(NAME, DATA)
|
|
27
|
+
|
|
28
|
+
#elif defined(MOMENTUM_WITH_TRACY_PROFILER)
|
|
29
|
+
|
|
30
|
+
#include <tracy/Tracy.hpp>
|
|
31
|
+
#include <tracy/TracyC.h>
|
|
32
|
+
#include <stack>
|
|
33
|
+
|
|
34
|
+
#define _MT_PROFILE_CONCATENATE_DETAIL(x, y) x##y
|
|
35
|
+
#define _MT_PROFILE_CONCATENATE(x, y) _MT_PROFILE_CONCATENATE_DETAIL(x, y)
|
|
36
|
+
#define _MT_PROFILE_MAKE_UNIQUE(x) _MT_PROFILE_CONCATENATE(x, __LINE__)
|
|
37
|
+
|
|
38
|
+
#define MT_PROFILE_FUNCTION() ZoneScoped
|
|
39
|
+
#define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY)
|
|
40
|
+
#define MT_PROFILE_EVENT(NAME) ZoneNamedN(_MT_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
|
|
41
|
+
#define MT_PROFILE_EVENT_DYNAMIC(NAME) ZoneTransientN(_MT_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
|
|
42
|
+
#define MT_PROFILE_CATEGORY(NAME, CATEGORY)
|
|
43
|
+
#define MT_PROFILE_PREPARE_PUSH_POP() std::stack<TracyCZoneCtx> ___tracy_xr_stack
|
|
44
|
+
#define MT_PROFILE_PUSH(NAME) \
|
|
45
|
+
static const struct ___tracy_source_location_data TracyConcat( \
|
|
46
|
+
__tracy_source_location, TracyLine) = {NAME, __func__, TracyFile, (uint32_t)TracyLine, 0}; \
|
|
47
|
+
___tracy_xr_stack.push( \
|
|
48
|
+
___tracy_emit_zone_begin(&TracyConcat(__tracy_source_location, TracyLine), true));
|
|
49
|
+
#define MT_PROFILE_POP() \
|
|
50
|
+
TracyCZoneEnd(___tracy_xr_stack.top()); \
|
|
51
|
+
___tracy_xr_stack.pop()
|
|
52
|
+
#define MT_PROFILE_THREAD(THREAD_NAME) \
|
|
53
|
+
{ \
|
|
54
|
+
/* support both std::string and c strings */ \
|
|
55
|
+
std::string threadNameStr(THREAD_NAME); \
|
|
56
|
+
TracyCSetThreadName(threadNameStr.c_str()); \
|
|
57
|
+
}
|
|
58
|
+
#define MT_PROFILE_UPDATE()
|
|
59
|
+
#define MT_PROFILE_BEGIN_FRAME() FrameMark
|
|
60
|
+
#define MT_PROFILE_END_FRAME()
|
|
61
|
+
#define MT_PROFILE_METADATA(NAME, DATA)
|
|
62
|
+
|
|
63
|
+
#else
|
|
64
|
+
|
|
65
|
+
#define MT_PROFILE_FUNCTION()
|
|
66
|
+
#define MT_PROFILE_FUNCTION_CATEGORY(CATEGORY)
|
|
67
|
+
#define MT_PROFILE_EVENT(NAME)
|
|
68
|
+
#define MT_PROFILE_EVENT_DYNAMIC(NAME)
|
|
69
|
+
#define MT_PROFILE_CATEGORY(NAME, CATEGORY)
|
|
70
|
+
#define MT_PROFILE_PREPARE_PUSH_POP()
|
|
71
|
+
#define MT_PROFILE_PUSH(NAME)
|
|
72
|
+
#define MT_PROFILE_POP()
|
|
73
|
+
#define MT_PROFILE_THREAD(THREAD_NAME)
|
|
74
|
+
#define MT_PROFILE_UPDATE()
|
|
75
|
+
#define MT_PROFILE_BEGIN_FRAME()
|
|
76
|
+
#define MT_PROFILE_END_FRAME()
|
|
77
|
+
#define MT_PROFILE_METADATA(NAME, DATA)
|
|
78
|
+
|
|
79
|
+
#endif
|
|
@@ -0,0 +1,37 @@
|
|
|
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 <indicators/progress_bar.hpp>
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
|
|
14
|
+
namespace momentum {
|
|
15
|
+
|
|
16
|
+
// A simple progress bar that prints hash marks (e.g., "Name [===> ] 60%")
|
|
17
|
+
class ProgressBar {
|
|
18
|
+
public:
|
|
19
|
+
/// @param prefix Displayed prefix
|
|
20
|
+
/// @param numOperations Total operations (determines progress ratio)
|
|
21
|
+
ProgressBar(const std::string& prefix, size_t numOperations);
|
|
22
|
+
|
|
23
|
+
/// Increments the progress by the given count (default 1)
|
|
24
|
+
void increment(size_t count = 1);
|
|
25
|
+
|
|
26
|
+
/// Sets the progress to the given count
|
|
27
|
+
void set(size_t count);
|
|
28
|
+
|
|
29
|
+
/// Returns the current progress in the range [0, 100]
|
|
30
|
+
[[nodiscard]] size_t getCurrentProgress();
|
|
31
|
+
|
|
32
|
+
private:
|
|
33
|
+
static constexpr size_t kMaxWidth = 80;
|
|
34
|
+
indicators::ProgressBar bar_;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace momentum
|
|
@@ -0,0 +1,52 @@
|
|
|
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 <string>
|
|
11
|
+
#include <string_view>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
namespace momentum {
|
|
15
|
+
|
|
16
|
+
/// Returns a copy of the string from which all the characters in whiteChars
|
|
17
|
+
/// at the beginning or at the end of the string have been removed.
|
|
18
|
+
/// @tparam StringType: The type of the string to trim (e.g., std::string, std::string_view)
|
|
19
|
+
/// @param text: The string to trim
|
|
20
|
+
/// @param whiteChars: A series of 1-byte characters to remove
|
|
21
|
+
/// @return The trimmed string
|
|
22
|
+
template <typename StringType>
|
|
23
|
+
[[nodiscard]] StringType trim(const StringType& text, const char* whiteChars = " \t");
|
|
24
|
+
|
|
25
|
+
/// Returns a copy of the string from which all the characters in whiteChars
|
|
26
|
+
/// at the beginning or at the end of the string have been removed.
|
|
27
|
+
/// @param text: The string to trim (null-terminated)
|
|
28
|
+
/// @param whiteChars: A series of 1-byte characters to remove
|
|
29
|
+
/// @return The trimmed string
|
|
30
|
+
[[nodiscard]] std::string trim(const char* text, const char* whiteChars = " \t");
|
|
31
|
+
|
|
32
|
+
/// Tokenize a string using the specified delimiters.
|
|
33
|
+
///
|
|
34
|
+
/// @param inputString The string to tokenize.
|
|
35
|
+
/// @param delimiters The string containing delimiter characters.
|
|
36
|
+
/// @param trim Whether to trim spaces around the tokens (default: true).
|
|
37
|
+
/// @return A vector of tokenized strings.
|
|
38
|
+
std::vector<std::string> tokenize(
|
|
39
|
+
const std::string& inputString,
|
|
40
|
+
const std::string& delimiters = " \t\r\n",
|
|
41
|
+
bool trim = true);
|
|
42
|
+
|
|
43
|
+
/// Tokenize a string_view using the specified delimiters.
|
|
44
|
+
///
|
|
45
|
+
/// @param inputString The string_view to tokenize.
|
|
46
|
+
/// @param delimiters The string_view containing delimiter characters.
|
|
47
|
+
/// @param trim Whether to trim spaces around the tokens (default: true).
|
|
48
|
+
/// @return A vector of tokenized string_views.
|
|
49
|
+
std::vector<std::string_view>
|
|
50
|
+
tokenize(std::string_view inputString, std::string_view delimiters = " \t\r\n", bool trim = true);
|
|
51
|
+
|
|
52
|
+
} // namespace momentum
|
|
@@ -0,0 +1,73 @@
|
|
|
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_transform.h>
|
|
11
|
+
#include <momentum/character/skeleton_state.h>
|
|
12
|
+
|
|
13
|
+
#include <ceres/jet.h>
|
|
14
|
+
#include <Eigen/Core>
|
|
15
|
+
|
|
16
|
+
namespace momentum {
|
|
17
|
+
|
|
18
|
+
template <typename T, typename T2>
|
|
19
|
+
Eigen::Vector3<T>
|
|
20
|
+
getRotationDerivative(const JointStateT<T2>& js, const size_t index, const Eigen::Vector3<T>& ref) {
|
|
21
|
+
return js.rotationAxis.col(index).cross(ref);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
template <typename T, typename T2>
|
|
25
|
+
Eigen::Vector3<T> getScaleDerivative(const JointStateT<T2>& js, const Eigen::Vector3<T>& ref) {
|
|
26
|
+
(void)js;
|
|
27
|
+
return ref * ln2<T2>();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
template <typename T, int N>
|
|
31
|
+
Eigen::Matrix<ceres::Jet<T, N>, N, 1> buildJetVec(const Eigen::Matrix<T, N, 1>& v) {
|
|
32
|
+
Eigen::Matrix<ceres::Jet<T, N>, N, 1> result;
|
|
33
|
+
for (int k = 0; k < N; ++k) {
|
|
34
|
+
result(k).a = v(k);
|
|
35
|
+
result(k).v.setZero();
|
|
36
|
+
result(k).v(k) = 1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
template <typename T, int Rows, int Cols>
|
|
43
|
+
Eigen::Matrix<ceres::Jet<T, Cols * Rows>, Rows, Cols> buildJetMat(
|
|
44
|
+
const Eigen::Matrix<T, Rows, Cols>& m) {
|
|
45
|
+
Eigen::Matrix<ceres::Jet<T, Cols * Rows>, Rows, Cols> result;
|
|
46
|
+
for (int iRow = 0; iRow < Rows; ++iRow) {
|
|
47
|
+
for (int jCol = 0; jCol < Cols; ++jCol) {
|
|
48
|
+
result(iRow, jCol).a = m(iRow, jCol);
|
|
49
|
+
result(iRow, jCol).v.setZero();
|
|
50
|
+
result(iRow, jCol).v(iRow * Cols + jCol) = 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
template <typename T, typename T2>
|
|
57
|
+
T times_parameterTransform_times_v(
|
|
58
|
+
const T& value,
|
|
59
|
+
const size_t jointParamIdx,
|
|
60
|
+
const ParameterTransform& parameterTransform,
|
|
61
|
+
Eigen::Ref<const Eigen::VectorX<T2>> v) {
|
|
62
|
+
T result = T();
|
|
63
|
+
for (auto index = parameterTransform.transform.outerIndexPtr()[jointParamIdx];
|
|
64
|
+
index < parameterTransform.transform.outerIndexPtr()[jointParamIdx + 1];
|
|
65
|
+
++index) {
|
|
66
|
+
result += value * static_cast<T2>(parameterTransform.transform.valuePtr()[index]) *
|
|
67
|
+
v[parameterTransform.transform.innerIndexPtr()[index]];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
} // namespace momentum
|
|
@@ -0,0 +1,58 @@
|
|
|
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/character.h>
|
|
11
|
+
#include <momentum/character_solver/skeleton_error_function.h>
|
|
12
|
+
#include <momentum/character_solver/skeleton_solver_function.h>
|
|
13
|
+
#include <momentum/diff_ik/fwd.h>
|
|
14
|
+
|
|
15
|
+
#include <unordered_map>
|
|
16
|
+
#include <vector>
|
|
17
|
+
|
|
18
|
+
namespace momentum {
|
|
19
|
+
|
|
20
|
+
// This is going to be used within Pytorch's automatic differentiation package,
|
|
21
|
+
// so we will assume the existence of a scalar "loss" function that is the thing
|
|
22
|
+
// we are minimizing in Pytorch. To clarify:
|
|
23
|
+
// "Error"/Error function: the thing that momentum's IK solver is minimizing
|
|
24
|
+
// to compute the body pose.
|
|
25
|
+
// "Loss"/Loss function: the thing that Pytorch is minimizing.
|
|
26
|
+
// Here, we will be computing the derivative of the loss function with respect
|
|
27
|
+
// to all the various error function inputs, like "weight" or "target".
|
|
28
|
+
|
|
29
|
+
template <typename T>
|
|
30
|
+
struct ErrorFunctionDerivativesT {
|
|
31
|
+
std::shared_ptr<const SkeletonErrorFunctionT<T>> errorFunction = nullptr;
|
|
32
|
+
|
|
33
|
+
// Gradient of the energy wrt the global weight.
|
|
34
|
+
T gradWeight = 0;
|
|
35
|
+
|
|
36
|
+
// Derivative of the energy wrt the various inputs.
|
|
37
|
+
std::unordered_map<std::string, Eigen::VectorX<T>> gradInputs;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Takes in the derivative of the loss wrt the model parameters and
|
|
41
|
+
// computes the derivative of the loss wrt the error function inputs,
|
|
42
|
+
// assuming the model parameters are always the ones that (locally)
|
|
43
|
+
// minimize the momentum IK error.
|
|
44
|
+
//
|
|
45
|
+
// The gradient_norm here can be used to determine if the derivatives
|
|
46
|
+
// are valid; the computation only really works when the gradient
|
|
47
|
+
// (wrt the subset of parameters that are allowed to vary) is close to 0.
|
|
48
|
+
template <typename T>
|
|
49
|
+
std::vector<ErrorFunctionDerivativesT<T>> d_modelParams_d_inputs(
|
|
50
|
+
const Skeleton& skeleton,
|
|
51
|
+
const ParameterTransformT<T>& parameterTransform,
|
|
52
|
+
const ParameterSet& activeParams,
|
|
53
|
+
const ModelParametersT<T>& parameters,
|
|
54
|
+
SkeletonSolverFunctionT<T>& solverFunction,
|
|
55
|
+
Eigen::Ref<const Eigen::VectorX<T>> dLoss_dModelParams,
|
|
56
|
+
T* gradientRmse = nullptr);
|
|
57
|
+
|
|
58
|
+
} // namespace momentum
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
#include <momentum/character/locator.h>
|
|
10
|
+
#include <momentum/character_solver/distance_error_function.h>
|
|
11
|
+
#include <momentum/character_solver/skeleton_error_function.h>
|
|
12
|
+
#include <momentum/diff_ik/fully_differentiable_skeleton_error_function.h>
|
|
13
|
+
#include <momentum/diff_ik/fwd.h>
|
|
14
|
+
|
|
15
|
+
namespace momentum {
|
|
16
|
+
|
|
17
|
+
MOMENTUM_FWD_DECLARE_TEMPLATE_CLASS(DistanceErrorFunction);
|
|
18
|
+
MOMENTUM_FWD_DECLARE_TEMPLATE_STRUCT(DistanceConstraintData);
|
|
19
|
+
|
|
20
|
+
template <typename T>
|
|
21
|
+
class FullyDifferentiableDistanceErrorFunctionT
|
|
22
|
+
: public DistanceErrorFunctionT<T>,
|
|
23
|
+
public virtual momentum::FullyDifferentiableSkeletonErrorFunctionT<T> {
|
|
24
|
+
public:
|
|
25
|
+
static constexpr const char* kOrigins = "origins";
|
|
26
|
+
static constexpr const char* kParents = "parents";
|
|
27
|
+
static constexpr const char* kOffsets = "offsets";
|
|
28
|
+
static constexpr const char* kWeights = "weights";
|
|
29
|
+
static constexpr const char* kTargets = "targets";
|
|
30
|
+
|
|
31
|
+
FullyDifferentiableDistanceErrorFunctionT(
|
|
32
|
+
const momentum::Skeleton& skel,
|
|
33
|
+
const momentum::ParameterTransform& pt);
|
|
34
|
+
|
|
35
|
+
[[nodiscard]] std::vector<std::string> inputs() const override;
|
|
36
|
+
[[nodiscard]] Eigen::Index getInputSize(const std::string& name) const override;
|
|
37
|
+
void getInputImp(const std::string& name, Eigen::Ref<Eigen::VectorX<T>> result) const override;
|
|
38
|
+
void setInputImp(const std::string& name, Eigen::Ref<const Eigen::VectorX<T>> value) override;
|
|
39
|
+
[[nodiscard]] const char* name() const override {
|
|
40
|
+
return "DistanceErrorFunction";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
Eigen::VectorX<T> d_gradient_d_input_dot(
|
|
44
|
+
const std::string& inputName,
|
|
45
|
+
const momentum::ModelParametersT<T>& modelParams,
|
|
46
|
+
const momentum::SkeletonStateT<T>& state,
|
|
47
|
+
Eigen::Ref<const Eigen::VectorX<T>> inputVec) override;
|
|
48
|
+
|
|
49
|
+
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
|
|
50
|
+
|
|
51
|
+
private:
|
|
52
|
+
// Compute dError/dModelParams^T * v for some v.
|
|
53
|
+
template <typename JetType>
|
|
54
|
+
JetType constraintGradient_dot(
|
|
55
|
+
const momentum::ModelParametersT<T>& modelParams,
|
|
56
|
+
const momentum::SkeletonStateT<T>& skelState,
|
|
57
|
+
const Eigen::Vector3<JetType>& origin_cons,
|
|
58
|
+
int parentJointIndex,
|
|
59
|
+
const Eigen::Vector3<JetType>& offset,
|
|
60
|
+
const JetType& weight_cons,
|
|
61
|
+
const JetType& target_cons,
|
|
62
|
+
Eigen::Ref<const Eigen::VectorX<T>> vec);
|
|
63
|
+
|
|
64
|
+
// weights for the error functions
|
|
65
|
+
using DistanceErrorFunctionT<T>::kDistanceWeight;
|
|
66
|
+
using DistanceErrorFunctionT<T>::constraints_;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
} // namespace momentum
|
|
@@ -0,0 +1,46 @@
|
|
|
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/model_parameters_error_function.h>
|
|
11
|
+
#include <momentum/character_solver/skeleton_error_function.h>
|
|
12
|
+
#include <momentum/diff_ik/fully_differentiable_skeleton_error_function.h>
|
|
13
|
+
#include <momentum/diff_ik/fwd.h>
|
|
14
|
+
|
|
15
|
+
#include <Eigen/Core>
|
|
16
|
+
|
|
17
|
+
namespace momentum {
|
|
18
|
+
|
|
19
|
+
template <typename T>
|
|
20
|
+
class FullyDifferentiableMotionErrorFunctionT : public FullyDifferentiableSkeletonErrorFunctionT<T>,
|
|
21
|
+
public ModelParametersErrorFunctionT<T> {
|
|
22
|
+
public:
|
|
23
|
+
FullyDifferentiableMotionErrorFunctionT(const Skeleton& skel, const ParameterTransform& pt);
|
|
24
|
+
~FullyDifferentiableMotionErrorFunctionT() override;
|
|
25
|
+
|
|
26
|
+
[[nodiscard]] std::vector<std::string> inputs() const final;
|
|
27
|
+
[[nodiscard]] Eigen::Index getInputSize(const std::string& name) const final;
|
|
28
|
+
[[nodiscard]] const char* name() const final {
|
|
29
|
+
return "ModelParametersErrorFunction";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static constexpr const char* kTargetParameters = "target_parameters";
|
|
33
|
+
static constexpr const char* kTargetWeights = "target_weights";
|
|
34
|
+
|
|
35
|
+
Eigen::VectorX<T> d_gradient_d_input_dot(
|
|
36
|
+
const std::string& inputName,
|
|
37
|
+
const ModelParametersT<T>& params,
|
|
38
|
+
const SkeletonStateT<T>& state,
|
|
39
|
+
Eigen::Ref<const Eigen::VectorX<T>> inputVec) final;
|
|
40
|
+
|
|
41
|
+
protected:
|
|
42
|
+
void getInputImp(const std::string& name, Eigen::Ref<Eigen::VectorX<T>> value) const final;
|
|
43
|
+
void setInputImp(const std::string& name, Eigen::Ref<const Eigen::VectorX<T>> value) final;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
} // namespace momentum
|