pymomentum-cpu 0.0.0__cp312-cp312-manylinux_2_39_x86_64.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/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 +237 -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 +98 -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 +243 -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/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 +62 -0
- include/momentum/character_sequence_solver/multipose_solver.h +63 -0
- include/momentum/character_sequence_solver/multipose_solver_function.h +80 -0
- include/momentum/character_sequence_solver/sequence_error_function.h +95 -0
- include/momentum/character_sequence_solver/sequence_solver.h +144 -0
- include/momentum/character_sequence_solver/sequence_solver_function.h +126 -0
- include/momentum/character_sequence_solver/state_sequence_error_function.h +106 -0
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h +125 -0
- include/momentum/character_solver/aim_error_function.h +112 -0
- include/momentum/character_solver/collision_error_function.h +88 -0
- include/momentum/character_solver/collision_error_function_stateless.h +71 -0
- include/momentum/character_solver/constraint_error_function-inl.h +321 -0
- include/momentum/character_solver/constraint_error_function.h +241 -0
- include/momentum/character_solver/distance_error_function.h +74 -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 +62 -0
- include/momentum/character_solver/limit_error_function.h +53 -0
- include/momentum/character_solver/model_parameters_error_function.h +61 -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 +140 -0
- include/momentum/character_solver/pose_prior_error_function.h +76 -0
- include/momentum/character_solver/position_error_function.h +75 -0
- include/momentum/character_solver/projection_error_function.h +90 -0
- include/momentum/character_solver/simd_collision_error_function.h +95 -0
- include/momentum/character_solver/simd_normal_error_function.h +151 -0
- include/momentum/character_solver/simd_plane_error_function.h +154 -0
- include/momentum/character_solver/simd_position_error_function.h +155 -0
- include/momentum/character_solver/skeleton_error_function.h +136 -0
- include/momentum/character_solver/skeleton_solver_function.h +72 -0
- include/momentum/character_solver/skinned_locator_error_function.h +163 -0
- include/momentum/character_solver/skinned_locator_triangle_error_function.h +138 -0
- include/momentum/character_solver/skinning_weight_iterator.h +80 -0
- include/momentum/character_solver/state_error_function.h +90 -0
- include/momentum/character_solver/transform_pose.h +80 -0
- include/momentum/character_solver/trust_region_qr.h +78 -0
- include/momentum/character_solver/vertex_error_function.h +154 -0
- include/momentum/character_solver/vertex_projection_error_function.h +118 -0
- include/momentum/character_solver/vertex_vertex_distance_error_function.h +143 -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 +109 -0
- include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
- include/momentum/diff_ik/fully_differentiable_position_error_function.h +133 -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 +63 -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 +135 -0
- include/momentum/io/gltf/gltf_file_format.h +19 -0
- include/momentum/io/gltf/gltf_io.h +136 -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 +29 -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 +54 -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/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/librerun_c__linux_x64.a +0 -0
- lib/librerun_sdk.a +0 -0
- lib64/cmake/axel/axel-config.cmake +45 -0
- lib64/cmake/axel/axelTargets-release.cmake +19 -0
- lib64/cmake/axel/axelTargets.cmake +108 -0
- lib64/cmake/momentum/Findre2.cmake +52 -0
- lib64/cmake/momentum/momentum-config.cmake +67 -0
- lib64/cmake/momentum/momentumTargets-release.cmake +269 -0
- lib64/cmake/momentum/momentumTargets.cmake +445 -0
- lib64/libaxel.a +0 -0
- lib64/libmomentum_app_utils.a +0 -0
- lib64/libmomentum_character.a +0 -0
- lib64/libmomentum_character_sequence_solver.a +0 -0
- lib64/libmomentum_character_solver.a +0 -0
- lib64/libmomentum_common.a +0 -0
- lib64/libmomentum_diff_ik.a +0 -0
- lib64/libmomentum_io.a +0 -0
- lib64/libmomentum_io_common.a +0 -0
- lib64/libmomentum_io_fbx.a +0 -0
- lib64/libmomentum_io_gltf.a +0 -0
- lib64/libmomentum_io_legacy_json.a +0 -0
- lib64/libmomentum_io_marker.a +0 -0
- lib64/libmomentum_io_motion.a +0 -0
- lib64/libmomentum_io_shape.a +0 -0
- lib64/libmomentum_io_skeleton.a +0 -0
- lib64/libmomentum_io_urdf.a +0 -0
- lib64/libmomentum_marker_tracker.a +0 -0
- lib64/libmomentum_math.a +0 -0
- lib64/libmomentum_online_qr.a +0 -0
- lib64/libmomentum_process_markers.a +0 -0
- lib64/libmomentum_rasterizer.a +0 -0
- lib64/libmomentum_rerun.a +0 -0
- lib64/libmomentum_simd_constraints.a +0 -0
- lib64/libmomentum_simd_generalized_loss.a +0 -0
- lib64/libmomentum_skeleton.a +0 -0
- lib64/libmomentum_solver.a +0 -0
- pymomentum/axel.cpython-312-x86_64-linux-gnu.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-312-x86_64-linux-gnu.so +0 -0
- pymomentum/marker_tracking.cpython-312-x86_64-linux-gnu.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/renderer.cpython-312-x86_64-linux-gnu.so +0 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-312-x86_64-linux-gnu.so +0 -0
- pymomentum/solver2.cpython-312-x86_64-linux-gnu.so +0 -0
- pymomentum/torch/character.py +809 -0
- pymomentum/torch/parameter_limits.py +494 -0
- pymomentum/torch/utility.py +20 -0
- pymomentum/trs.py +535 -0
- pymomentum_cpu-0.0.0.dist-info/METADATA +209 -0
- pymomentum_cpu-0.0.0.dist-info/RECORD +555 -0
- pymomentum_cpu-0.0.0.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.0.0.dist-info/licenses/LICENSE +21 -0
- pymomentum_cpu.libs/libabsl_base-86f3b38c.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_city-31b65ca2.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_debugging_internal-38680253.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_decode_rust_punycode-750652c3.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_demangle_internal-9a0351a3.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_demangle_rust-71629506.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_examine_stack-57661ecd.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_hash-8c523b7e.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_hashtablez_sampler-b5c3e343.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_int128-295bfed5.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_kernel_timeout_internal-29296ac1.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_globals-6cfa8af5.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_format-a5c79460.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_globals-481e9a7c.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_log_sink_set-ac08f942.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_message-7dfe150a.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_nullguard-883adc72.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_proto-a5da8c75.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_internal_structured_proto-e601fd9b.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_log_sink-894261b2.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_low_level_hash-a3284638.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_malloc_internal-814569de.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_raw_hash_set-922d64ad.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_raw_logging_internal-477f78ec.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_spinlock_wait-8b85a473.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_stacktrace-7369e71d.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_str_format_internal-98de729d.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_strerror-39a52998.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_strings-a57d5127.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_strings_internal-ed8c7c0d.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_symbolize-eba17dd1.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_synchronization-2f8cf326.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_time-066c0dde.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_time_zone-72867365.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_tracing_internal-021e37ee.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libabsl_utf8_for_code_point-de2a4d4a.so.2505.0.0 +0 -0
- pymomentum_cpu.libs/libconsole_bridge-f26e11cc.so.1.0 +0 -0
- pymomentum_cpu.libs/libdeflate-577b71e3.so.0 +0 -0
- pymomentum_cpu.libs/libdispenso-67ac1721.so.1.4.0 +0 -0
- pymomentum_cpu.libs/libezc3d-4a95ab2c.so +0 -0
- pymomentum_cpu.libs/libre2-985fb83c.so.11 +0 -0
- pymomentum_cpu.libs/libtinyxml2-8d10763c.so.11.0.0 +0 -0
- pymomentum_cpu.libs/liburdfdom_model-7b26ae88.so.4.0 +0 -0
|
@@ -0,0 +1,251 @@
|
|
|
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/constants.h>
|
|
11
|
+
#include <momentum/math/types.h>
|
|
12
|
+
|
|
13
|
+
#include <gsl/gsl>
|
|
14
|
+
|
|
15
|
+
#ifdef _WIN32
|
|
16
|
+
#include <malloc.h>
|
|
17
|
+
#endif // _WIN32
|
|
18
|
+
|
|
19
|
+
namespace momentum {
|
|
20
|
+
|
|
21
|
+
/// NaN check function that isn't optimized away by fastmath
|
|
22
|
+
///
|
|
23
|
+
/// Unlike std::isnan(), this implementation is not affected by compiler optimizations
|
|
24
|
+
/// when using fast math options
|
|
25
|
+
[[nodiscard]] inline bool IsNanNoOpt(float f) {
|
|
26
|
+
union {
|
|
27
|
+
float f;
|
|
28
|
+
std::uint32_t x;
|
|
29
|
+
} u = {f};
|
|
30
|
+
return (u.x << 1) > 0xff000000u;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/// @name Math Utilities
|
|
34
|
+
/// @{
|
|
35
|
+
|
|
36
|
+
/// Creates a ParameterSet with all parameters set to active
|
|
37
|
+
inline ParameterSet allParams() {
|
|
38
|
+
ParameterSet params;
|
|
39
|
+
params.set();
|
|
40
|
+
return params;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/// Computes the square of a value
|
|
44
|
+
///
|
|
45
|
+
/// Convenience function for x * x
|
|
46
|
+
template <class T>
|
|
47
|
+
inline T sqr(const T& x) {
|
|
48
|
+
return x * x;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/// Determines if two values are approximately equal within a given tolerance.
|
|
52
|
+
template <typename T = float>
|
|
53
|
+
[[nodiscard]] bool isApprox(T l, T r, T eps = Eps<T>(1e-4, 1e-6)) noexcept {
|
|
54
|
+
return (std::abs(l - r) < eps);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/// @}
|
|
58
|
+
|
|
59
|
+
/// @name Matrix Utilities
|
|
60
|
+
/// @{
|
|
61
|
+
|
|
62
|
+
/// Calculates the pseudo-inverse of a matrix
|
|
63
|
+
///
|
|
64
|
+
/// Uses singular value decomposition (SVD) to compute the Moore-Penrose pseudo-inverse
|
|
65
|
+
/// @tparam T The scalar type
|
|
66
|
+
/// @param mat Input matrix
|
|
67
|
+
/// @return The pseudo-inverse of the input matrix
|
|
68
|
+
template <typename T>
|
|
69
|
+
MatrixX<T> pseudoInverse(const MatrixX<T>& mat);
|
|
70
|
+
|
|
71
|
+
/// Calculates the pseudo-inverse of a sparse matrix
|
|
72
|
+
///
|
|
73
|
+
/// Converts the sparse matrix to a dense matrix before computing the pseudo-inverse
|
|
74
|
+
/// @tparam T The scalar type
|
|
75
|
+
/// @param mat Input sparse matrix
|
|
76
|
+
/// @return The pseudo-inverse as a dense matrix
|
|
77
|
+
template <typename T>
|
|
78
|
+
MatrixX<T> pseudoInverse(const SparseMatrix<T>& mat);
|
|
79
|
+
|
|
80
|
+
/// @}
|
|
81
|
+
|
|
82
|
+
/// @name Geometry Utilities
|
|
83
|
+
/// @{
|
|
84
|
+
|
|
85
|
+
/// Converts a quaternion to a rotation vector.
|
|
86
|
+
template <typename T>
|
|
87
|
+
Vector3<T> quaternionToRotVec(const Quaternion<T>& q);
|
|
88
|
+
|
|
89
|
+
/// Converts a rotation vector to a quaternion.
|
|
90
|
+
template <typename T>
|
|
91
|
+
Quaternion<T> rotVecToQuaternion(const Vector3<T>& v);
|
|
92
|
+
|
|
93
|
+
/// The Euler angles convention.
|
|
94
|
+
enum class EulerConvention {
|
|
95
|
+
/// The intrinsic convention. Intrinsic rotations (also called local, relative, or body-fixed
|
|
96
|
+
/// rotations) are performed around the axes of the coordinate system that is attached to the
|
|
97
|
+
/// rotating object.
|
|
98
|
+
///
|
|
99
|
+
/// Intrinsic rotations are usually represented by a sequence of three letters, like XYZ, which
|
|
100
|
+
/// means rotation around the X-axis, followed by rotation around the Y-axis, and finally rotation
|
|
101
|
+
/// around the Z-axis. For example, intrinsic XYZ is equivalent to RotX(a) * RotY(b) * RotZ(c).
|
|
102
|
+
Intrinsic,
|
|
103
|
+
|
|
104
|
+
/// The extrinsic convention. Extrinsic rotations (also called global, absolute, or space-fixed
|
|
105
|
+
/// rotations) are performed around the axes of a fixed coordinate system.
|
|
106
|
+
///
|
|
107
|
+
/// Extrinsic rotations are often represented by uppercase letters, like XYZ, which means rotation
|
|
108
|
+
/// around the fixed X-axis, followed by rotation around the fixed Y-axis, and finally rotation
|
|
109
|
+
/// around the fixed Z-axis. For example, extrinsic XYZ is equivalent to RotZ(c) * RotY(b) *
|
|
110
|
+
/// RotX(a).
|
|
111
|
+
Extrinsic,
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/// Converts rotation matrix to Euler angles
|
|
115
|
+
///
|
|
116
|
+
/// @tparam T The scalar type.
|
|
117
|
+
/// @param[in] m The rotation matrix to convert.
|
|
118
|
+
/// @param[in] axis0 The index of the first rotation's axis, one of {0, 1, 2}.
|
|
119
|
+
/// @param[in] axis1 The index of the second rotation's axis, one of {0, 1, 2}.
|
|
120
|
+
/// @param[in] axis2 The index of the third rotation's axis, one of {0, 1, 2}.
|
|
121
|
+
/// @param[in] convention The Euler angles convention.
|
|
122
|
+
template <typename T>
|
|
123
|
+
[[nodiscard]] Vector3<T> rotationMatrixToEuler(
|
|
124
|
+
const Matrix3<T>& m,
|
|
125
|
+
int axis0,
|
|
126
|
+
int axis1,
|
|
127
|
+
int axis2,
|
|
128
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
129
|
+
|
|
130
|
+
/// An optimized version of rotationMatrixToEuler(m, 0, 1, 2, convention) or
|
|
131
|
+
/// rotationMatrixToEuler(m, 2, 1, 0, convention).reverse().
|
|
132
|
+
template <typename T>
|
|
133
|
+
[[nodiscard]] Vector3<T> rotationMatrixToEulerXYZ(
|
|
134
|
+
const Matrix3<T>& m,
|
|
135
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
136
|
+
|
|
137
|
+
/// An optimized version of rotationMatrixToEuler(m, 2, 1, 0, convention) or
|
|
138
|
+
/// rotationMatrixToEuler(m, 0, 1, 2, convention).reverse().
|
|
139
|
+
template <typename T>
|
|
140
|
+
[[nodiscard]] Vector3<T> rotationMatrixToEulerZYX(
|
|
141
|
+
const Matrix3<T>& m,
|
|
142
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
143
|
+
|
|
144
|
+
/// Converts Euler angles to quaternion
|
|
145
|
+
///
|
|
146
|
+
/// @tparam T The scalar type.
|
|
147
|
+
/// @param[in] angles The 3-dimensional vector of Euler angles in order.
|
|
148
|
+
/// @param[in] axis0 The index of the first rotation's axis, one of {0, 1, 2}.
|
|
149
|
+
/// @param[in] axis1 The index of the second rotation's axis, one of {0, 1, 2}.
|
|
150
|
+
/// @param[in] axis2 The index of the third rotation's axis, one of {0, 1, 2}.
|
|
151
|
+
/// @param[in] convention The Euler angles convention.
|
|
152
|
+
template <typename T>
|
|
153
|
+
[[nodiscard]] Quaternion<T> eulerToQuaternion(
|
|
154
|
+
const Vector3<T>& angles,
|
|
155
|
+
int axis0,
|
|
156
|
+
int axis1,
|
|
157
|
+
int axis2,
|
|
158
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
159
|
+
|
|
160
|
+
/// Converts Euler angles to rotation matrix
|
|
161
|
+
///
|
|
162
|
+
/// @tparam T The scalar type.
|
|
163
|
+
/// @param[in] angles The 3-dimensional vector of Euler angles in order.
|
|
164
|
+
/// @param[in] axis0 The index of the first rotation's axis, one of {0, 1, 2}.
|
|
165
|
+
/// @param[in] axis1 The index of the second rotation's axis, one of {0, 1, 2}.
|
|
166
|
+
/// @param[in] axis2 The index of the third rotation's axis, one of {0, 1, 2}.
|
|
167
|
+
/// @param[in] convention The Euler angles convention.
|
|
168
|
+
template <typename T>
|
|
169
|
+
[[nodiscard]] Matrix3<T> eulerToRotationMatrix(
|
|
170
|
+
const Vector3<T>& angles,
|
|
171
|
+
int axis0,
|
|
172
|
+
int axis1,
|
|
173
|
+
int axis2,
|
|
174
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
175
|
+
|
|
176
|
+
/// An optimized version of eulerToRotationMatrix(angles, 0, 1, 2, convention) or
|
|
177
|
+
/// eulerToRotationMatrix(angles.reverse(), 2, 1, 0, convention).
|
|
178
|
+
template <typename T>
|
|
179
|
+
[[nodiscard]] Matrix3<T> eulerXYZToRotationMatrix(
|
|
180
|
+
const Vector3<T>& angles,
|
|
181
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
182
|
+
|
|
183
|
+
/// An optimized version of eulerToRotationMatrix(angles, 2, 1, 0, convention) or
|
|
184
|
+
/// eulerToRotationMatrix(angles.reverse(), 0, 1, 2, convention).
|
|
185
|
+
template <typename T>
|
|
186
|
+
[[nodiscard]] Matrix3<T> eulerZYXToRotationMatrix(
|
|
187
|
+
const Vector3<T>& angles,
|
|
188
|
+
EulerConvention convention = EulerConvention::Intrinsic);
|
|
189
|
+
|
|
190
|
+
/// Converts a quaternion to Euler angles using the Extrinsic XYZ convention
|
|
191
|
+
///
|
|
192
|
+
/// The returned angles [x, y, z] are such that applying Extrinsic rotations
|
|
193
|
+
/// RotX(x) then RotY(y) then RotZ(z) (i.e., about fixed world axes) reproduces
|
|
194
|
+
/// the input quaternion's rotation. Empirically verified by tests.
|
|
195
|
+
///
|
|
196
|
+
/// Note: This matches the convention used in skeleton_state (skel_state): Extrinsic XYZ.
|
|
197
|
+
///
|
|
198
|
+
/// @tparam T The scalar type
|
|
199
|
+
/// @param q Input quaternion
|
|
200
|
+
/// @return Vector of Euler angles [x, y, z]
|
|
201
|
+
template <typename T>
|
|
202
|
+
Vector3<T> quaternionToEuler(const Quaternion<T>& q);
|
|
203
|
+
|
|
204
|
+
/// Computes the weighted average of multiple quaternions
|
|
205
|
+
///
|
|
206
|
+
/// Uses the method described in Markley et al. "Averaging Quaternions"
|
|
207
|
+
/// @param q Array of quaternions to average
|
|
208
|
+
/// @param w Optional weights for each quaternion (defaults to equal weights)
|
|
209
|
+
/// @return The average quaternion
|
|
210
|
+
Quaternionf quaternionAverage(
|
|
211
|
+
gsl::span<const Quaternionf> q,
|
|
212
|
+
gsl::span<const float> w = std::vector<float>());
|
|
213
|
+
|
|
214
|
+
/// Returns the closest points on two line segments where the line segments are represented in
|
|
215
|
+
/// origin and direction
|
|
216
|
+
///
|
|
217
|
+
/// @tparam T Scalar type
|
|
218
|
+
/// @param o1 Origin of the first line segment
|
|
219
|
+
/// @param d1 Direction of the first line segment
|
|
220
|
+
/// @param o2 Origin of the second line segment
|
|
221
|
+
/// @param d2 Direction of the second line segment
|
|
222
|
+
/// @param maxDist Maximum distance to check
|
|
223
|
+
/// @return [success, distance, [dist0, dist1]]:
|
|
224
|
+
/// - success: Whether the closest points were successfully found. On false, the rest return values
|
|
225
|
+
/// are invalid.
|
|
226
|
+
/// - distance: Distance between the closest points
|
|
227
|
+
/// - [dist0, dist1]: Distances of the closest points from their origins to the directions
|
|
228
|
+
template <typename T>
|
|
229
|
+
[[nodiscard]] std::tuple<bool, T, Eigen::Vector2<T>> closestPointsOnSegments(
|
|
230
|
+
const Eigen::Vector3<T>& o1,
|
|
231
|
+
const Eigen::Vector3<T>& d1,
|
|
232
|
+
const Eigen::Vector3<T>& o2,
|
|
233
|
+
const Eigen::Vector3<T>& d2,
|
|
234
|
+
T maxDist = std::numeric_limits<T>::max());
|
|
235
|
+
|
|
236
|
+
/// Creates a skew-symmetric matrix for computing cross products
|
|
237
|
+
///
|
|
238
|
+
/// Returns a matrix M such that M*u = v×u for any vector u
|
|
239
|
+
/// @tparam T The scalar type
|
|
240
|
+
/// @param v Input vector
|
|
241
|
+
/// @return 3×3 skew-symmetric matrix
|
|
242
|
+
template <typename T>
|
|
243
|
+
Eigen::Matrix<T, 3, 3> crossProductMatrix(const Eigen::Vector3<T>& v) {
|
|
244
|
+
Eigen::Matrix<T, 3, 3> result;
|
|
245
|
+
result << T(0), -v.z(), v.y(), v.z(), T(0), -v.x(), -v.y(), v.x(), T(0);
|
|
246
|
+
return result;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/// @}
|
|
250
|
+
|
|
251
|
+
} // namespace momentum
|