pymomentum-cpu 0.1.77.post30__cp313-cp313-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/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 +128 -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 +126 -0
- include/momentum/character_solver/vertex_vertex_distance_error_function.h +151 -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 +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 +259 -0
- lib64/cmake/momentum/momentumTargets.cmake +377 -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_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-313-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-313-x86_64-linux-gnu.so +0 -0
- pymomentum/marker_tracking.cpython-313-x86_64-linux-gnu.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-313-x86_64-linux-gnu.so +0 -0
- pymomentum/solver2.cpython-313-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.1.77.post30.dist-info/METADATA +208 -0
- pymomentum_cpu-0.1.77.post30.dist-info/RECORD +555 -0
- pymomentum_cpu-0.1.77.post30.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.77.post30.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
include/axel/Profile.h
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
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(AXEL_WITH_XR_PROFILER)
|
|
11
|
+
|
|
12
|
+
#include <arvr/libraries/profile_redirect/annotate.hpp>
|
|
13
|
+
|
|
14
|
+
#elif defined(AXEL_WITH_TRACY_PROFILER)
|
|
15
|
+
|
|
16
|
+
#include <tracy/Tracy.hpp>
|
|
17
|
+
#include <tracy/TracyC.h>
|
|
18
|
+
#include <stack>
|
|
19
|
+
|
|
20
|
+
#define _XR_PROFILE_CONCATENATE_DETAIL(x, y) x##y
|
|
21
|
+
#define _XR_PROFILE_CONCATENATE(x, y) _XR_PROFILE_CONCATENATE_DETAIL(x, y)
|
|
22
|
+
#define _XR_PROFILE_MAKE_UNIQUE(x) _XR_PROFILE_CONCATENATE(x, __LINE__)
|
|
23
|
+
|
|
24
|
+
#define XR_PROFILE_FUNCTION() ZoneScoped
|
|
25
|
+
#define XR_PROFILE_FUNCTION_CATEGORY(CATEGORY)
|
|
26
|
+
#define XR_PROFILE_EVENT(NAME) ZoneNamedN(_XR_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
|
|
27
|
+
#define XR_PROFILE_EVENT_DYNAMIC(NAME) ZoneTransientN(_XR_PROFILE_MAKE_UNIQUE(__tracy), NAME, true)
|
|
28
|
+
#define XR_PROFILE_CATEGORY(NAME, CATEGORY)
|
|
29
|
+
#define XR_PROFILE_PREPARE_PUSH_POP() std::stack<TracyCZoneCtx> ___tracy_xr_stack
|
|
30
|
+
#define XR_PROFILE_PUSH(NAME) \
|
|
31
|
+
static const struct ___tracy_source_location_data TracyConcat( \
|
|
32
|
+
__tracy_source_location, TracyLine) = {NAME, __func__, TracyFile, (uint32_t)TracyLine, 0}; \
|
|
33
|
+
___tracy_xr_stack.push( \
|
|
34
|
+
___tracy_emit_zone_begin(&TracyConcat(__tracy_source_location, TracyLine), true));
|
|
35
|
+
#define XR_PROFILE_POP() \
|
|
36
|
+
TracyCZoneEnd(___tracy_xr_stack.top()); \
|
|
37
|
+
___tracy_xr_stack.pop()
|
|
38
|
+
#define XR_PROFILE_THREAD(THREAD_NAME) \
|
|
39
|
+
{ \
|
|
40
|
+
/* support both std::string and c strings */ \
|
|
41
|
+
std::string threadNameStr(THREAD_NAME); \
|
|
42
|
+
TracyCSetThreadName(threadNameStr.c_str()); \
|
|
43
|
+
}
|
|
44
|
+
#define XR_PROFILE_UPDATE()
|
|
45
|
+
#define XR_PROFILE_BEGIN_FRAME() FrameMark
|
|
46
|
+
#define XR_PROFILE_END_FRAME()
|
|
47
|
+
#define XR_PROFILE_METADATA(NAME, DATA)
|
|
48
|
+
|
|
49
|
+
#else
|
|
50
|
+
|
|
51
|
+
#define XR_PROFILE_FUNCTION()
|
|
52
|
+
#define XR_PROFILE_FUNCTION_CATEGORY(CATEGORY)
|
|
53
|
+
#define XR_PROFILE_EVENT(NAME)
|
|
54
|
+
#define XR_PROFILE_EVENT_DYNAMIC(NAME)
|
|
55
|
+
#define XR_PROFILE_CATEGORY(NAME, CATEGORY)
|
|
56
|
+
#define XR_PROFILE_PUSH(NAME)
|
|
57
|
+
#define XR_PROFILE_POP()
|
|
58
|
+
#define XR_PROFILE_THREAD(THREAD_NAME)
|
|
59
|
+
#define XR_PROFILE_UPDATE()
|
|
60
|
+
#define XR_PROFILE_BEGIN_FRAME()
|
|
61
|
+
#define XR_PROFILE_END_FRAME()
|
|
62
|
+
#define XR_PROFILE_METADATA(NAME, DATA)
|
|
63
|
+
|
|
64
|
+
#endif
|
include/axel/Ray.h
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
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 <Eigen/Core>
|
|
11
|
+
|
|
12
|
+
namespace axel {
|
|
13
|
+
inline constexpr double kRayMinDistanceEpsilon{1e-3};
|
|
14
|
+
|
|
15
|
+
template <typename ScalarType>
|
|
16
|
+
struct Ray3 {
|
|
17
|
+
Eigen::Vector3<ScalarType> origin;
|
|
18
|
+
ScalarType minT = static_cast<ScalarType>(kRayMinDistanceEpsilon);
|
|
19
|
+
|
|
20
|
+
Eigen::Vector3<ScalarType> direction;
|
|
21
|
+
ScalarType maxT = std::numeric_limits<ScalarType>::max();
|
|
22
|
+
|
|
23
|
+
inline Ray3() = default;
|
|
24
|
+
|
|
25
|
+
inline Ray3(const Eigen::Vector3<ScalarType>& origin, const Eigen::Vector3<ScalarType>& direction)
|
|
26
|
+
: origin(origin), direction(direction) {}
|
|
27
|
+
|
|
28
|
+
inline Ray3(
|
|
29
|
+
const Eigen::Vector3<ScalarType>& origin,
|
|
30
|
+
const Eigen::Vector3<ScalarType>& direction,
|
|
31
|
+
const ScalarType maxT)
|
|
32
|
+
: origin(origin), direction(direction), maxT(maxT) {}
|
|
33
|
+
|
|
34
|
+
inline Ray3(
|
|
35
|
+
const Eigen::Vector3<ScalarType>& origin,
|
|
36
|
+
const Eigen::Vector3<ScalarType>& direction,
|
|
37
|
+
const ScalarType maxT,
|
|
38
|
+
const ScalarType minT)
|
|
39
|
+
: origin(origin), minT(minT), direction(direction), maxT(maxT) {}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
using Ray3d = Ray3<double>;
|
|
43
|
+
using Ray3f = Ray3<float>;
|
|
44
|
+
|
|
45
|
+
} // namespace axel
|
|
@@ -0,0 +1,248 @@
|
|
|
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 <vector>
|
|
11
|
+
|
|
12
|
+
#include <Eigen/Core>
|
|
13
|
+
#include <Eigen/Geometry>
|
|
14
|
+
|
|
15
|
+
#include "axel/BoundingBox.h"
|
|
16
|
+
#include "axel/common/Types.h"
|
|
17
|
+
|
|
18
|
+
namespace axel {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A 3D signed distance field implementation that stores distance values in a uniform grid.
|
|
22
|
+
* Provides efficient trilinear interpolation for smooth distance queries.
|
|
23
|
+
*
|
|
24
|
+
* The SDF uses a regular 3D grid where each cell stores the signed distance to the nearest surface.
|
|
25
|
+
* Negative values indicate inside the surface, positive values indicate outside.
|
|
26
|
+
*/
|
|
27
|
+
template <typename ScalarType>
|
|
28
|
+
class SignedDistanceField {
|
|
29
|
+
public:
|
|
30
|
+
using Scalar = ScalarType;
|
|
31
|
+
using Vector3 = Eigen::Vector3<Scalar>;
|
|
32
|
+
using BoundingBoxType = BoundingBox<Scalar>;
|
|
33
|
+
|
|
34
|
+
/// Default "very far" distance value used for uninitialized voxels
|
|
35
|
+
static constexpr Scalar kVeryFarDistance = std::numeric_limits<Scalar>::max();
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Constructs an empty SDF with the given dimensions and bounds.
|
|
39
|
+
* All voxels are initialized to the specified initial value.
|
|
40
|
+
*
|
|
41
|
+
* @param bounds The 3D bounding box that defines the spatial extent of the SDF
|
|
42
|
+
* @param resolution Grid resolution in each dimension (nx, ny, nz)
|
|
43
|
+
* @param initialValue Initial distance value for all voxels (default: kVeryFarDistance)
|
|
44
|
+
*/
|
|
45
|
+
SignedDistanceField(
|
|
46
|
+
const BoundingBoxType& bounds,
|
|
47
|
+
const Eigen::Vector3<Index>& resolution,
|
|
48
|
+
Scalar initialValue = kVeryFarDistance);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Constructs an SDF with the given dimensions, bounds, and initial data.
|
|
52
|
+
*
|
|
53
|
+
* @param bounds The 3D bounding box that defines the spatial extent of the SDF
|
|
54
|
+
* @param resolution Grid resolution in each dimension (nx, ny, nz)
|
|
55
|
+
* @param data Initial distance values. Must have size resolution.x() * resolution.y() *
|
|
56
|
+
* resolution.z()
|
|
57
|
+
*/
|
|
58
|
+
SignedDistanceField(
|
|
59
|
+
const BoundingBoxType& bounds,
|
|
60
|
+
const Eigen::Vector3<Index>& resolution,
|
|
61
|
+
std::vector<Scalar> data);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Get the distance value at a specific grid cell using integer indices.
|
|
65
|
+
* No bounds checking is performed for performance.
|
|
66
|
+
*
|
|
67
|
+
* @param i Grid index in x dimension
|
|
68
|
+
* @param j Grid index in y dimension
|
|
69
|
+
* @param k Grid index in z dimension
|
|
70
|
+
* @return The signed distance value at grid cell (i,j,k)
|
|
71
|
+
*/
|
|
72
|
+
[[nodiscard]] Scalar at(Index i, Index j, Index k) const;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Set the distance value at a specific grid cell using integer indices.
|
|
76
|
+
* No bounds checking is performed for performance.
|
|
77
|
+
*
|
|
78
|
+
* @param i Grid index in x dimension
|
|
79
|
+
* @param j Grid index in y dimension
|
|
80
|
+
* @param k Grid index in z dimension
|
|
81
|
+
* @param value The signed distance value to store
|
|
82
|
+
*/
|
|
83
|
+
void set(Index i, Index j, Index k, Scalar value);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Sample the SDF at a continuous 3D position using trilinear interpolation.
|
|
87
|
+
* If the query point is outside the SDF bounds, returns the nearest boundary value.
|
|
88
|
+
*
|
|
89
|
+
* @param position 3D world-space position to query
|
|
90
|
+
* @return Interpolated signed distance value
|
|
91
|
+
*/
|
|
92
|
+
template <typename InputScalar = Scalar>
|
|
93
|
+
[[nodiscard]] InputScalar sample(const Eigen::Vector3<InputScalar>& position) const;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Sample the SDF gradient at a continuous 3D position using analytical gradients
|
|
97
|
+
* from trilinear interpolation. The gradient points in the direction of increasing distance.
|
|
98
|
+
*
|
|
99
|
+
* @param position 3D world-space position to query
|
|
100
|
+
* @return Gradient vector at the given position
|
|
101
|
+
*/
|
|
102
|
+
template <typename InputScalar = Scalar>
|
|
103
|
+
[[nodiscard]] Eigen::Vector3<InputScalar> gradient(
|
|
104
|
+
const Eigen::Vector3<InputScalar>& position) const;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Sample both the SDF value and gradient at a continuous 3D position using
|
|
108
|
+
* trilinear interpolation. More efficient than calling sample() and gradient()
|
|
109
|
+
* separately as it uses the same 8 corner values for both computations.
|
|
110
|
+
*
|
|
111
|
+
* @param position 3D world-space position to query
|
|
112
|
+
* @return Pair of (value, gradient) at the given position
|
|
113
|
+
*/
|
|
114
|
+
template <typename InputScalar = Scalar>
|
|
115
|
+
[[nodiscard]] std::pair<InputScalar, Eigen::Vector3<InputScalar>> sampleWithGradient(
|
|
116
|
+
const Eigen::Vector3<InputScalar>& position) const;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Convert a 3D world-space position to continuous grid coordinates.
|
|
120
|
+
*
|
|
121
|
+
* @param position 3D world-space position
|
|
122
|
+
* @return Continuous grid coordinates (may be fractional)
|
|
123
|
+
*/
|
|
124
|
+
template <typename InputScalar = Scalar>
|
|
125
|
+
[[nodiscard]] Eigen::Vector3<InputScalar> worldToGrid(
|
|
126
|
+
const Eigen::Vector3<InputScalar>& position) const;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Convert continuous grid coordinates to 3D world-space position.
|
|
130
|
+
*
|
|
131
|
+
* @param gridPos Continuous grid coordinates
|
|
132
|
+
* @return 3D world-space position
|
|
133
|
+
*/
|
|
134
|
+
template <typename InputScalar = Scalar>
|
|
135
|
+
[[nodiscard]] Eigen::Vector3<InputScalar> gridToWorld(
|
|
136
|
+
const Eigen::Vector3<InputScalar>& gridPos) const;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Get the world-space position of a grid cell center given discrete indices.
|
|
140
|
+
* This is equivalent to gridToWorld(Vector3(i, j, k)).
|
|
141
|
+
*
|
|
142
|
+
* @param i Grid index in x dimension
|
|
143
|
+
* @param j Grid index in y dimension
|
|
144
|
+
* @param k Grid index in z dimension
|
|
145
|
+
* @return 3D world-space position of the grid cell center
|
|
146
|
+
*/
|
|
147
|
+
[[nodiscard]] Vector3 gridLocation(Index i, Index j, Index k) const;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Check if the given grid coordinates are within bounds.
|
|
151
|
+
*
|
|
152
|
+
* @param i Grid index in x dimension
|
|
153
|
+
* @param j Grid index in y dimension
|
|
154
|
+
* @param k Grid index in z dimension
|
|
155
|
+
* @return True if indices are within valid range
|
|
156
|
+
*/
|
|
157
|
+
[[nodiscard]] bool isValidIndex(Index i, Index j, Index k) const;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Get the resolution of the SDF grid.
|
|
161
|
+
*
|
|
162
|
+
* @return Grid resolution as (nx, ny, nz)
|
|
163
|
+
*/
|
|
164
|
+
[[nodiscard]] const Eigen::Vector3<Index>& resolution() const;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Get the bounding box of the SDF.
|
|
168
|
+
*
|
|
169
|
+
* @return The 3D bounding box
|
|
170
|
+
*/
|
|
171
|
+
[[nodiscard]] const BoundingBoxType& bounds() const;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Get the voxel size in each dimension.
|
|
175
|
+
*
|
|
176
|
+
* @return Voxel size as (dx, dy, dz)
|
|
177
|
+
*/
|
|
178
|
+
[[nodiscard]] Vector3 voxelSize() const;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Get the total number of voxels in the SDF.
|
|
182
|
+
*
|
|
183
|
+
* @return Total number of grid cells
|
|
184
|
+
*/
|
|
185
|
+
[[nodiscard]] Size totalVoxels() const;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Get read-only access to the underlying data array.
|
|
189
|
+
* Data is stored in row-major order: data[k * nx * ny + j * nx + i]
|
|
190
|
+
*
|
|
191
|
+
* @return Const reference to the data vector
|
|
192
|
+
*/
|
|
193
|
+
[[nodiscard]] const std::vector<Scalar>& data() const;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Get mutable access to the underlying data array.
|
|
197
|
+
* Data is stored in row-major order: data[k * nx * ny + j * nx + i]
|
|
198
|
+
*
|
|
199
|
+
* @return Mutable reference to the data vector
|
|
200
|
+
*/
|
|
201
|
+
[[nodiscard]] std::vector<Scalar>& data();
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Fill the entire SDF with a constant value.
|
|
205
|
+
*
|
|
206
|
+
* @param value The value to fill with
|
|
207
|
+
*/
|
|
208
|
+
void fill(Scalar value);
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Clear the SDF and reset it to zero values.
|
|
212
|
+
*/
|
|
213
|
+
void clear();
|
|
214
|
+
|
|
215
|
+
private:
|
|
216
|
+
/**
|
|
217
|
+
* Convert 3D grid indices to a linear array index.
|
|
218
|
+
*
|
|
219
|
+
* @param i Grid index in x dimension
|
|
220
|
+
* @param j Grid index in y dimension
|
|
221
|
+
* @param k Grid index in z dimension
|
|
222
|
+
* @return Linear array index
|
|
223
|
+
*/
|
|
224
|
+
[[nodiscard]] Size linearIndex(Index i, Index j, Index k) const;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Clamp grid coordinates to valid bounds.
|
|
228
|
+
*
|
|
229
|
+
* @param gridPos Input grid coordinates
|
|
230
|
+
* @return Clamped grid coordinates
|
|
231
|
+
*/
|
|
232
|
+
template <typename InputScalar = Scalar>
|
|
233
|
+
[[nodiscard]] Eigen::Vector3<InputScalar> clampToGrid(
|
|
234
|
+
const Eigen::Vector3<InputScalar>& gridPos) const;
|
|
235
|
+
|
|
236
|
+
BoundingBoxType bounds_;
|
|
237
|
+
Eigen::Vector3<Index> resolution_;
|
|
238
|
+
Vector3 voxelSize_;
|
|
239
|
+
std::vector<Scalar> data_;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
using SignedDistanceFieldf = SignedDistanceField<float>;
|
|
243
|
+
using SignedDistanceFieldd = SignedDistanceField<double>;
|
|
244
|
+
|
|
245
|
+
extern template class SignedDistanceField<float>;
|
|
246
|
+
extern template class SignedDistanceField<double>;
|
|
247
|
+
|
|
248
|
+
} // namespace axel
|