pymomentum-cpu 0.1.93.post0__cp312-cp312-macosx_14_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- include/axel/BoundingBox.h +59 -0
- include/axel/Bvh.h +708 -0
- include/axel/BvhBase.h +75 -0
- include/axel/BvhCommon.h +43 -0
- include/axel/BvhEmbree.h +87 -0
- include/axel/BvhFactory.h +34 -0
- include/axel/Checks.h +21 -0
- include/axel/DualContouring.h +79 -0
- include/axel/KdTree.h +208 -0
- include/axel/Log.h +22 -0
- include/axel/MeshToSdf.h +123 -0
- include/axel/Profile.h +64 -0
- include/axel/Ray.h +45 -0
- include/axel/SignedDistanceField.h +248 -0
- include/axel/SimdKdTree.h +515 -0
- include/axel/TriBvh.h +157 -0
- include/axel/TriBvhEmbree.h +57 -0
- include/axel/common/Constants.h +27 -0
- include/axel/common/Types.h +21 -0
- include/axel/common/VectorizationTypes.h +58 -0
- include/axel/math/BoundingBoxUtils.h +54 -0
- include/axel/math/ContinuousCollisionDetection.h +48 -0
- include/axel/math/CoplanarityCheck.h +30 -0
- include/axel/math/EdgeEdgeDistance.h +31 -0
- include/axel/math/MeshHoleFilling.h +117 -0
- include/axel/math/PointTriangleProjection.h +34 -0
- include/axel/math/PointTriangleProjectionDefinitions.h +209 -0
- include/axel/math/RayTriangleIntersection.h +36 -0
- include/momentum/character/blend_shape.h +97 -0
- include/momentum/character/blend_shape_base.h +86 -0
- include/momentum/character/blend_shape_skinning.h +96 -0
- include/momentum/character/character.h +272 -0
- include/momentum/character/character_state.h +108 -0
- include/momentum/character/character_utility.h +128 -0
- include/momentum/character/collision_geometry.h +80 -0
- include/momentum/character/collision_geometry_state.h +130 -0
- include/momentum/character/fwd.h +262 -0
- include/momentum/character/inverse_parameter_transform.h +58 -0
- include/momentum/character/joint.h +82 -0
- include/momentum/character/joint_state.h +241 -0
- include/momentum/character/linear_skinning.h +139 -0
- include/momentum/character/locator.h +94 -0
- include/momentum/character/locator_state.h +43 -0
- include/momentum/character/marker.h +48 -0
- include/momentum/character/mesh_state.h +71 -0
- include/momentum/character/parameter_limits.h +144 -0
- include/momentum/character/parameter_transform.h +207 -0
- include/momentum/character/pose_shape.h +65 -0
- include/momentum/character/skeleton.h +85 -0
- include/momentum/character/skeleton_state.h +227 -0
- include/momentum/character/skeleton_utility.h +38 -0
- include/momentum/character/skin_weights.h +67 -0
- include/momentum/character/skinned_locator.h +80 -0
- include/momentum/character/types.h +202 -0
- include/momentum/character_sequence_solver/fwd.h +200 -0
- include/momentum/character_sequence_solver/model_parameters_sequence_error_function.h +65 -0
- include/momentum/character_sequence_solver/multipose_solver.h +65 -0
- include/momentum/character_sequence_solver/multipose_solver_function.h +82 -0
- include/momentum/character_sequence_solver/sequence_error_function.h +104 -0
- include/momentum/character_sequence_solver/sequence_solver.h +155 -0
- include/momentum/character_sequence_solver/sequence_solver_function.h +158 -0
- include/momentum/character_sequence_solver/state_sequence_error_function.h +117 -0
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
- include/momentum/character_solver/aim_error_function.h +112 -0
- include/momentum/character_solver/collision_error_function.h +92 -0
- include/momentum/character_solver/collision_error_function_stateless.h +75 -0
- include/momentum/character_solver/constraint_error_function-inl.h +324 -0
- include/momentum/character_solver/constraint_error_function.h +248 -0
- include/momentum/character_solver/distance_error_function.h +77 -0
- include/momentum/character_solver/error_function_utils.h +60 -0
- include/momentum/character_solver/fixed_axis_error_function.h +139 -0
- include/momentum/character_solver/fwd.h +943 -0
- include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
- include/momentum/character_solver/height_error_function.h +176 -0
- include/momentum/character_solver/joint_to_joint_distance_error_function.h +111 -0
- include/momentum/character_solver/limit_error_function.h +57 -0
- include/momentum/character_solver/model_parameters_error_function.h +64 -0
- include/momentum/character_solver/normal_error_function.h +73 -0
- include/momentum/character_solver/orientation_error_function.h +74 -0
- include/momentum/character_solver/plane_error_function.h +102 -0
- include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
- include/momentum/character_solver/pose_prior_error_function.h +80 -0
- include/momentum/character_solver/position_error_function.h +75 -0
- include/momentum/character_solver/projection_error_function.h +93 -0
- include/momentum/character_solver/simd_collision_error_function.h +99 -0
- include/momentum/character_solver/simd_normal_error_function.h +157 -0
- include/momentum/character_solver/simd_plane_error_function.h +164 -0
- include/momentum/character_solver/simd_position_error_function.h +165 -0
- include/momentum/character_solver/skeleton_error_function.h +151 -0
- include/momentum/character_solver/skeleton_solver_function.h +94 -0
- include/momentum/character_solver/skinned_locator_error_function.h +166 -0
- include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
- include/momentum/character_solver/skinning_weight_iterator.h +80 -0
- include/momentum/character_solver/state_error_function.h +119 -0
- include/momentum/character_solver/transform_pose.h +80 -0
- include/momentum/character_solver/trust_region_qr.h +80 -0
- include/momentum/character_solver/vertex_error_function.h +155 -0
- include/momentum/character_solver/vertex_projection_error_function.h +117 -0
- include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
- include/momentum/common/aligned.h +155 -0
- include/momentum/common/checks.h +27 -0
- include/momentum/common/exception.h +70 -0
- include/momentum/common/filesystem.h +20 -0
- include/momentum/common/fwd.h +27 -0
- include/momentum/common/log.h +173 -0
- include/momentum/common/log_channel.h +17 -0
- include/momentum/common/memory.h +71 -0
- include/momentum/common/profile.h +79 -0
- include/momentum/common/progress_bar.h +37 -0
- include/momentum/common/string.h +52 -0
- include/momentum/diff_ik/ceres_utility.h +73 -0
- include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
- include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
- include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
- include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
- include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
- include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
- include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
- include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
- include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
- include/momentum/diff_ik/fwd.h +385 -0
- include/momentum/diff_ik/union_error_function.h +67 -0
- include/momentum/gui/rerun/eigen_adapters.h +70 -0
- include/momentum/gui/rerun/logger.h +102 -0
- include/momentum/gui/rerun/logging_redirect.h +27 -0
- include/momentum/io/character_io.h +98 -0
- include/momentum/io/common/gsl_utils.h +50 -0
- include/momentum/io/common/stream_utils.h +65 -0
- include/momentum/io/fbx/fbx_io.h +135 -0
- include/momentum/io/fbx/fbx_memory_stream.h +70 -0
- include/momentum/io/fbx/openfbx_loader.h +62 -0
- include/momentum/io/fbx/polygon_data.h +60 -0
- include/momentum/io/file_save_options.h +107 -0
- include/momentum/io/gltf/gltf_builder.h +141 -0
- include/momentum/io/gltf/gltf_io.h +149 -0
- include/momentum/io/gltf/utils/accessor_utils.h +299 -0
- include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
- include/momentum/io/gltf/utils/json_utils.h +102 -0
- include/momentum/io/legacy_json/legacy_json_io.h +70 -0
- include/momentum/io/marker/c3d_io.h +30 -0
- include/momentum/io/marker/conversions.h +57 -0
- include/momentum/io/marker/coordinate_system.h +30 -0
- include/momentum/io/marker/marker_io.h +56 -0
- include/momentum/io/marker/trc_io.h +27 -0
- include/momentum/io/motion/mmo_io.h +97 -0
- include/momentum/io/shape/blend_shape_io.h +82 -0
- include/momentum/io/shape/pose_shape_io.h +21 -0
- include/momentum/io/skeleton/locator_io.h +41 -0
- include/momentum/io/skeleton/mppca_io.h +26 -0
- include/momentum/io/skeleton/parameter_limits_io.h +38 -0
- include/momentum/io/skeleton/parameter_transform_io.h +80 -0
- include/momentum/io/skeleton/parameters_io.h +20 -0
- include/momentum/io/skeleton/utility.h +67 -0
- include/momentum/io/urdf/urdf_io.h +26 -0
- include/momentum/io/usd/usd_io.h +36 -0
- include/momentum/marker_tracking/app_utils.h +64 -0
- include/momentum/marker_tracking/marker_tracker.h +221 -0
- include/momentum/marker_tracking/process_markers.h +58 -0
- include/momentum/marker_tracking/tracker_utils.h +99 -0
- include/momentum/math/constants.h +82 -0
- include/momentum/math/covariance_matrix.h +84 -0
- include/momentum/math/fmt_eigen.h +23 -0
- include/momentum/math/fwd.h +132 -0
- include/momentum/math/generalized_loss.h +61 -0
- include/momentum/math/intersection.h +32 -0
- include/momentum/math/mesh.h +84 -0
- include/momentum/math/mppca.h +67 -0
- include/momentum/math/online_householder_qr.h +516 -0
- include/momentum/math/random-inl.h +404 -0
- include/momentum/math/random.h +310 -0
- include/momentum/math/simd_generalized_loss.h +40 -0
- include/momentum/math/transform.h +229 -0
- include/momentum/math/types.h +461 -0
- include/momentum/math/utility.h +324 -0
- include/momentum/rasterizer/camera.h +453 -0
- include/momentum/rasterizer/fwd.h +102 -0
- include/momentum/rasterizer/geometry.h +83 -0
- include/momentum/rasterizer/image.h +18 -0
- include/momentum/rasterizer/rasterizer.h +583 -0
- include/momentum/rasterizer/tensor.h +140 -0
- include/momentum/rasterizer/text_rasterizer.h +89 -0
- include/momentum/rasterizer/utility.h +268 -0
- include/momentum/simd/simd.h +221 -0
- include/momentum/solver/fwd.h +131 -0
- include/momentum/solver/gauss_newton_solver.h +136 -0
- include/momentum/solver/gradient_descent_solver.h +65 -0
- include/momentum/solver/solver.h +155 -0
- include/momentum/solver/solver_function.h +126 -0
- include/momentum/solver/subset_gauss_newton_solver.h +109 -0
- include/rerun/archetypes/annotation_context.hpp +157 -0
- include/rerun/archetypes/arrows2d.hpp +271 -0
- include/rerun/archetypes/arrows3d.hpp +257 -0
- include/rerun/archetypes/asset3d.hpp +262 -0
- include/rerun/archetypes/asset_video.hpp +275 -0
- include/rerun/archetypes/bar_chart.hpp +261 -0
- include/rerun/archetypes/boxes2d.hpp +293 -0
- include/rerun/archetypes/boxes3d.hpp +369 -0
- include/rerun/archetypes/capsules3d.hpp +333 -0
- include/rerun/archetypes/clear.hpp +180 -0
- include/rerun/archetypes/depth_image.hpp +425 -0
- include/rerun/archetypes/ellipsoids3d.hpp +384 -0
- include/rerun/archetypes/encoded_image.hpp +250 -0
- include/rerun/archetypes/geo_line_strings.hpp +166 -0
- include/rerun/archetypes/geo_points.hpp +177 -0
- include/rerun/archetypes/graph_edges.hpp +152 -0
- include/rerun/archetypes/graph_nodes.hpp +206 -0
- include/rerun/archetypes/image.hpp +434 -0
- include/rerun/archetypes/instance_poses3d.hpp +221 -0
- include/rerun/archetypes/line_strips2d.hpp +289 -0
- include/rerun/archetypes/line_strips3d.hpp +270 -0
- include/rerun/archetypes/mesh3d.hpp +387 -0
- include/rerun/archetypes/pinhole.hpp +385 -0
- include/rerun/archetypes/points2d.hpp +333 -0
- include/rerun/archetypes/points3d.hpp +369 -0
- include/rerun/archetypes/recording_properties.hpp +132 -0
- include/rerun/archetypes/scalar.hpp +170 -0
- include/rerun/archetypes/scalars.hpp +153 -0
- include/rerun/archetypes/segmentation_image.hpp +305 -0
- include/rerun/archetypes/series_line.hpp +274 -0
- include/rerun/archetypes/series_lines.hpp +271 -0
- include/rerun/archetypes/series_point.hpp +265 -0
- include/rerun/archetypes/series_points.hpp +251 -0
- include/rerun/archetypes/tensor.hpp +213 -0
- include/rerun/archetypes/text_document.hpp +200 -0
- include/rerun/archetypes/text_log.hpp +211 -0
- include/rerun/archetypes/transform3d.hpp +925 -0
- include/rerun/archetypes/video_frame_reference.hpp +295 -0
- include/rerun/archetypes/view_coordinates.hpp +393 -0
- include/rerun/archetypes.hpp +43 -0
- include/rerun/arrow_utils.hpp +32 -0
- include/rerun/as_components.hpp +90 -0
- include/rerun/blueprint/archetypes/background.hpp +113 -0
- include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
- include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
- include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
- include/rerun/blueprint/archetypes/force_center.hpp +115 -0
- include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
- include/rerun/blueprint/archetypes/force_link.hpp +136 -0
- include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
- include/rerun/blueprint/archetypes/force_position.hpp +132 -0
- include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
- include/rerun/blueprint/archetypes/map_background.hpp +104 -0
- include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
- include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
- include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
- include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
- include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
- include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
- include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
- include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
- include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
- include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
- include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
- include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
- include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
- include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
- include/rerun/blueprint/archetypes.hpp +29 -0
- include/rerun/blueprint/components/active_tab.hpp +82 -0
- include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
- include/rerun/blueprint/components/auto_layout.hpp +77 -0
- include/rerun/blueprint/components/auto_views.hpp +77 -0
- include/rerun/blueprint/components/background_kind.hpp +66 -0
- include/rerun/blueprint/components/column_share.hpp +78 -0
- include/rerun/blueprint/components/component_column_selector.hpp +81 -0
- include/rerun/blueprint/components/container_kind.hpp +65 -0
- include/rerun/blueprint/components/corner2d.hpp +64 -0
- include/rerun/blueprint/components/enabled.hpp +77 -0
- include/rerun/blueprint/components/filter_by_range.hpp +74 -0
- include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
- include/rerun/blueprint/components/force_distance.hpp +82 -0
- include/rerun/blueprint/components/force_iterations.hpp +82 -0
- include/rerun/blueprint/components/force_strength.hpp +82 -0
- include/rerun/blueprint/components/grid_columns.hpp +78 -0
- include/rerun/blueprint/components/grid_spacing.hpp +78 -0
- include/rerun/blueprint/components/included_content.hpp +86 -0
- include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
- include/rerun/blueprint/components/map_provider.hpp +64 -0
- include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
- include/rerun/blueprint/components/panel_state.hpp +61 -0
- include/rerun/blueprint/components/query_expression.hpp +89 -0
- include/rerun/blueprint/components/root_container.hpp +77 -0
- include/rerun/blueprint/components/row_share.hpp +78 -0
- include/rerun/blueprint/components/selected_columns.hpp +76 -0
- include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
- include/rerun/blueprint/components/timeline_name.hpp +76 -0
- include/rerun/blueprint/components/view_class.hpp +76 -0
- include/rerun/blueprint/components/view_fit.hpp +61 -0
- include/rerun/blueprint/components/view_maximized.hpp +79 -0
- include/rerun/blueprint/components/view_origin.hpp +81 -0
- include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
- include/rerun/blueprint/components/visible_time_range.hpp +77 -0
- include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
- include/rerun/blueprint/components/visualizer_override.hpp +86 -0
- include/rerun/blueprint/components/zoom_level.hpp +78 -0
- include/rerun/blueprint/components.hpp +41 -0
- include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
- include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
- include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
- include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
- include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
- include/rerun/blueprint/datatypes.hpp +9 -0
- include/rerun/c/arrow_c_data_interface.h +111 -0
- include/rerun/c/compiler_utils.h +10 -0
- include/rerun/c/rerun.h +627 -0
- include/rerun/c/sdk_info.h +28 -0
- include/rerun/collection.hpp +496 -0
- include/rerun/collection_adapter.hpp +43 -0
- include/rerun/collection_adapter_builtins.hpp +138 -0
- include/rerun/compiler_utils.hpp +61 -0
- include/rerun/component_batch.hpp +163 -0
- include/rerun/component_column.hpp +111 -0
- include/rerun/component_descriptor.hpp +142 -0
- include/rerun/component_type.hpp +35 -0
- include/rerun/components/aggregation_policy.hpp +76 -0
- include/rerun/components/albedo_factor.hpp +74 -0
- include/rerun/components/annotation_context.hpp +102 -0
- include/rerun/components/axis_length.hpp +74 -0
- include/rerun/components/blob.hpp +73 -0
- include/rerun/components/class_id.hpp +71 -0
- include/rerun/components/clear_is_recursive.hpp +75 -0
- include/rerun/components/color.hpp +99 -0
- include/rerun/components/colormap.hpp +99 -0
- include/rerun/components/depth_meter.hpp +84 -0
- include/rerun/components/draw_order.hpp +79 -0
- include/rerun/components/entity_path.hpp +83 -0
- include/rerun/components/fill_mode.hpp +72 -0
- include/rerun/components/fill_ratio.hpp +79 -0
- include/rerun/components/gamma_correction.hpp +80 -0
- include/rerun/components/geo_line_string.hpp +63 -0
- include/rerun/components/graph_edge.hpp +75 -0
- include/rerun/components/graph_node.hpp +79 -0
- include/rerun/components/graph_type.hpp +57 -0
- include/rerun/components/half_size2d.hpp +91 -0
- include/rerun/components/half_size3d.hpp +95 -0
- include/rerun/components/image_buffer.hpp +86 -0
- include/rerun/components/image_format.hpp +84 -0
- include/rerun/components/image_plane_distance.hpp +77 -0
- include/rerun/components/interactive.hpp +76 -0
- include/rerun/components/keypoint_id.hpp +74 -0
- include/rerun/components/lat_lon.hpp +89 -0
- include/rerun/components/length.hpp +77 -0
- include/rerun/components/line_strip2d.hpp +73 -0
- include/rerun/components/line_strip3d.hpp +73 -0
- include/rerun/components/magnification_filter.hpp +63 -0
- include/rerun/components/marker_shape.hpp +82 -0
- include/rerun/components/marker_size.hpp +74 -0
- include/rerun/components/media_type.hpp +157 -0
- include/rerun/components/name.hpp +83 -0
- include/rerun/components/opacity.hpp +77 -0
- include/rerun/components/pinhole_projection.hpp +94 -0
- include/rerun/components/plane3d.hpp +75 -0
- include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
- include/rerun/components/pose_rotation_quat.hpp +71 -0
- include/rerun/components/pose_scale3d.hpp +102 -0
- include/rerun/components/pose_transform_mat3x3.hpp +87 -0
- include/rerun/components/pose_translation3d.hpp +96 -0
- include/rerun/components/position2d.hpp +86 -0
- include/rerun/components/position3d.hpp +90 -0
- include/rerun/components/radius.hpp +98 -0
- include/rerun/components/range1d.hpp +75 -0
- include/rerun/components/resolution.hpp +88 -0
- include/rerun/components/rotation_axis_angle.hpp +72 -0
- include/rerun/components/rotation_quat.hpp +71 -0
- include/rerun/components/scalar.hpp +76 -0
- include/rerun/components/scale3d.hpp +102 -0
- include/rerun/components/series_visible.hpp +76 -0
- include/rerun/components/show_labels.hpp +79 -0
- include/rerun/components/stroke_width.hpp +74 -0
- include/rerun/components/tensor_data.hpp +94 -0
- include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
- include/rerun/components/tensor_height_dimension.hpp +71 -0
- include/rerun/components/tensor_width_dimension.hpp +71 -0
- include/rerun/components/texcoord2d.hpp +101 -0
- include/rerun/components/text.hpp +83 -0
- include/rerun/components/text_log_level.hpp +110 -0
- include/rerun/components/timestamp.hpp +76 -0
- include/rerun/components/transform_mat3x3.hpp +92 -0
- include/rerun/components/transform_relation.hpp +66 -0
- include/rerun/components/translation3d.hpp +96 -0
- include/rerun/components/triangle_indices.hpp +85 -0
- include/rerun/components/value_range.hpp +78 -0
- include/rerun/components/vector2d.hpp +92 -0
- include/rerun/components/vector3d.hpp +96 -0
- include/rerun/components/video_timestamp.hpp +120 -0
- include/rerun/components/view_coordinates.hpp +346 -0
- include/rerun/components/visible.hpp +74 -0
- include/rerun/components.hpp +77 -0
- include/rerun/config.hpp +52 -0
- include/rerun/datatypes/angle.hpp +76 -0
- include/rerun/datatypes/annotation_info.hpp +76 -0
- include/rerun/datatypes/blob.hpp +67 -0
- include/rerun/datatypes/bool.hpp +57 -0
- include/rerun/datatypes/channel_datatype.hpp +87 -0
- include/rerun/datatypes/class_description.hpp +92 -0
- include/rerun/datatypes/class_description_map_elem.hpp +69 -0
- include/rerun/datatypes/class_id.hpp +62 -0
- include/rerun/datatypes/color_model.hpp +68 -0
- include/rerun/datatypes/dvec2d.hpp +76 -0
- include/rerun/datatypes/entity_path.hpp +60 -0
- include/rerun/datatypes/float32.hpp +62 -0
- include/rerun/datatypes/float64.hpp +62 -0
- include/rerun/datatypes/image_format.hpp +107 -0
- include/rerun/datatypes/keypoint_id.hpp +63 -0
- include/rerun/datatypes/keypoint_pair.hpp +65 -0
- include/rerun/datatypes/mat3x3.hpp +105 -0
- include/rerun/datatypes/mat4x4.hpp +119 -0
- include/rerun/datatypes/pixel_format.hpp +142 -0
- include/rerun/datatypes/plane3d.hpp +60 -0
- include/rerun/datatypes/quaternion.hpp +110 -0
- include/rerun/datatypes/range1d.hpp +59 -0
- include/rerun/datatypes/range2d.hpp +55 -0
- include/rerun/datatypes/rgba32.hpp +94 -0
- include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
- include/rerun/datatypes/tensor_buffer.hpp +529 -0
- include/rerun/datatypes/tensor_data.hpp +100 -0
- include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
- include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
- include/rerun/datatypes/time_int.hpp +62 -0
- include/rerun/datatypes/time_range.hpp +55 -0
- include/rerun/datatypes/time_range_boundary.hpp +175 -0
- include/rerun/datatypes/uint16.hpp +62 -0
- include/rerun/datatypes/uint32.hpp +62 -0
- include/rerun/datatypes/uint64.hpp +62 -0
- include/rerun/datatypes/utf8.hpp +76 -0
- include/rerun/datatypes/utf8pair.hpp +62 -0
- include/rerun/datatypes/uuid.hpp +60 -0
- include/rerun/datatypes/uvec2d.hpp +76 -0
- include/rerun/datatypes/uvec3d.hpp +80 -0
- include/rerun/datatypes/uvec4d.hpp +59 -0
- include/rerun/datatypes/vec2d.hpp +76 -0
- include/rerun/datatypes/vec3d.hpp +80 -0
- include/rerun/datatypes/vec4d.hpp +84 -0
- include/rerun/datatypes/video_timestamp.hpp +67 -0
- include/rerun/datatypes/view_coordinates.hpp +87 -0
- include/rerun/datatypes/visible_time_range.hpp +57 -0
- include/rerun/datatypes.hpp +51 -0
- include/rerun/demo_utils.hpp +75 -0
- include/rerun/entity_path.hpp +20 -0
- include/rerun/error.hpp +180 -0
- include/rerun/half.hpp +10 -0
- include/rerun/image_utils.hpp +187 -0
- include/rerun/indicator_component.hpp +59 -0
- include/rerun/loggable.hpp +54 -0
- include/rerun/recording_stream.hpp +960 -0
- include/rerun/rerun_sdk_export.hpp +25 -0
- include/rerun/result.hpp +86 -0
- include/rerun/rotation3d.hpp +33 -0
- include/rerun/sdk_info.hpp +20 -0
- include/rerun/spawn.hpp +21 -0
- include/rerun/spawn_options.hpp +57 -0
- include/rerun/string_utils.hpp +16 -0
- include/rerun/third_party/cxxopts.hpp +2198 -0
- include/rerun/time_column.hpp +288 -0
- include/rerun/timeline.hpp +38 -0
- include/rerun/type_traits.hpp +40 -0
- include/rerun.hpp +86 -0
- lib/cmake/axel/axel-config.cmake +45 -0
- lib/cmake/axel/axelTargets-release.cmake +19 -0
- lib/cmake/axel/axelTargets.cmake +108 -0
- lib/cmake/momentum/FindFbxSdk.cmake +115 -0
- lib/cmake/momentum/Findre2.cmake +52 -0
- lib/cmake/momentum/momentum-config.cmake +67 -0
- lib/cmake/momentum/momentumTargets-release.cmake +259 -0
- lib/cmake/momentum/momentumTargets.cmake +385 -0
- lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
- lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
- lib/libarrow.a +0 -0
- lib/libarrow_bundled_dependencies.a +0 -0
- lib/libaxel.a +0 -0
- lib/libmomentum_app_utils.a +0 -0
- lib/libmomentum_character.a +0 -0
- lib/libmomentum_character_sequence_solver.a +0 -0
- lib/libmomentum_character_solver.a +0 -0
- lib/libmomentum_common.a +0 -0
- lib/libmomentum_diff_ik.a +0 -0
- lib/libmomentum_io.a +0 -0
- lib/libmomentum_io_common.a +0 -0
- lib/libmomentum_io_fbx.a +0 -0
- lib/libmomentum_io_gltf.a +0 -0
- lib/libmomentum_io_legacy_json.a +0 -0
- lib/libmomentum_io_marker.a +0 -0
- lib/libmomentum_io_motion.a +0 -0
- lib/libmomentum_io_shape.a +0 -0
- lib/libmomentum_io_skeleton.a +0 -0
- lib/libmomentum_io_urdf.a +0 -0
- lib/libmomentum_marker_tracker.a +0 -0
- lib/libmomentum_math.a +0 -0
- lib/libmomentum_online_qr.a +0 -0
- lib/libmomentum_process_markers.a +0 -0
- lib/libmomentum_rerun.a +0 -0
- lib/libmomentum_simd_constraints.a +0 -0
- lib/libmomentum_simd_generalized_loss.a +0 -0
- lib/libmomentum_skeleton.a +0 -0
- lib/libmomentum_solver.a +0 -0
- lib/librerun_c__macos_arm64.a +0 -0
- lib/librerun_sdk.a +0 -0
- pymomentum/axel.cpython-312-darwin.so +0 -0
- pymomentum/backend/__init__.py +16 -0
- pymomentum/backend/skel_state_backend.py +631 -0
- pymomentum/backend/trs_backend.py +889 -0
- pymomentum/backend/utils.py +224 -0
- pymomentum/geometry.cpython-312-darwin.so +0 -0
- pymomentum/marker_tracking.cpython-312-darwin.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-312-darwin.so +0 -0
- pymomentum/solver2.cpython-312-darwin.so +0 -0
- pymomentum/torch/character.py +868 -0
- pymomentum/torch/parameter_limits.py +494 -0
- pymomentum/torch/utility.py +20 -0
- pymomentum/trs.py +535 -0
- pymomentum_cpu-0.1.93.post0.dist-info/METADATA +126 -0
- pymomentum_cpu-0.1.93.post0.dist-info/RECORD +517 -0
- pymomentum_cpu-0.1.93.post0.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.93.post0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
// DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
|
|
2
|
+
// Based on "crates/store/re_types/definitions/rerun/archetypes/asset3d.fbs".
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "../collection.hpp"
|
|
7
|
+
#include "../component_batch.hpp"
|
|
8
|
+
#include "../component_column.hpp"
|
|
9
|
+
#include "../components/albedo_factor.hpp"
|
|
10
|
+
#include "../components/blob.hpp"
|
|
11
|
+
#include "../components/media_type.hpp"
|
|
12
|
+
#include "../indicator_component.hpp"
|
|
13
|
+
#include "../result.hpp"
|
|
14
|
+
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <filesystem>
|
|
17
|
+
#include <optional>
|
|
18
|
+
#include <utility>
|
|
19
|
+
#include <vector>
|
|
20
|
+
|
|
21
|
+
namespace rerun::archetypes {
|
|
22
|
+
/// **Archetype**: A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
|
|
23
|
+
///
|
|
24
|
+
/// See also `archetypes::Mesh3D`.
|
|
25
|
+
///
|
|
26
|
+
/// If there are multiple `archetypes::InstancePoses3D` instances logged to the same entity as a mesh,
|
|
27
|
+
/// an instance of the mesh will be drawn for each transform.
|
|
28
|
+
///
|
|
29
|
+
/// ## Example
|
|
30
|
+
///
|
|
31
|
+
/// ### Simple 3D asset
|
|
32
|
+
/// 
|
|
33
|
+
///
|
|
34
|
+
/// ```cpp
|
|
35
|
+
/// #include <rerun.hpp>
|
|
36
|
+
///
|
|
37
|
+
/// #include <iostream>
|
|
38
|
+
///
|
|
39
|
+
/// int main(int argc, char* argv[]) {
|
|
40
|
+
/// if (argc <2) {
|
|
41
|
+
/// std::cerr <<"Usage: " <<argv[0] <<" <path_to_asset.[gltf|glb|obj|stl]>" <<std::endl;
|
|
42
|
+
/// return 1;
|
|
43
|
+
/// }
|
|
44
|
+
///
|
|
45
|
+
/// const auto path = argv[1];
|
|
46
|
+
///
|
|
47
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_asset3d");
|
|
48
|
+
/// rec.spawn().exit_on_failure();
|
|
49
|
+
///
|
|
50
|
+
/// rec.log_static("world", rerun::ViewCoordinates::RIGHT_HAND_Z_UP); // Set an up-axis
|
|
51
|
+
/// rec.log("world/asset", rerun::Asset3D::from_file_path(path).value_or_throw());
|
|
52
|
+
/// }
|
|
53
|
+
/// ```
|
|
54
|
+
struct Asset3D {
|
|
55
|
+
/// The asset's bytes.
|
|
56
|
+
std::optional<ComponentBatch> blob;
|
|
57
|
+
|
|
58
|
+
/// The Media Type of the asset.
|
|
59
|
+
///
|
|
60
|
+
/// Supported values:
|
|
61
|
+
/// * `model/gltf-binary`
|
|
62
|
+
/// * `model/gltf+json`
|
|
63
|
+
/// * `model/obj` (.mtl material files are not supported yet, references are silently ignored)
|
|
64
|
+
/// * `model/stl`
|
|
65
|
+
///
|
|
66
|
+
/// If omitted, the viewer will try to guess from the data blob.
|
|
67
|
+
/// If it cannot guess, it won't be able to render the asset.
|
|
68
|
+
std::optional<ComponentBatch> media_type;
|
|
69
|
+
|
|
70
|
+
/// A color multiplier applied to the whole asset.
|
|
71
|
+
///
|
|
72
|
+
/// For mesh who already have `albedo_factor` in materials,
|
|
73
|
+
/// it will be overwritten by actual `albedo_factor` of `archetypes::Asset3D` (if specified).
|
|
74
|
+
std::optional<ComponentBatch> albedo_factor;
|
|
75
|
+
|
|
76
|
+
public:
|
|
77
|
+
static constexpr const char IndicatorComponentName[] = "rerun.components.Asset3DIndicator";
|
|
78
|
+
|
|
79
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
80
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
81
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
82
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.Asset3D";
|
|
83
|
+
|
|
84
|
+
/// `ComponentDescriptor` for the `blob` field.
|
|
85
|
+
static constexpr auto Descriptor_blob = ComponentDescriptor(
|
|
86
|
+
ArchetypeName, "blob", Loggable<rerun::components::Blob>::Descriptor.component_name
|
|
87
|
+
);
|
|
88
|
+
/// `ComponentDescriptor` for the `media_type` field.
|
|
89
|
+
static constexpr auto Descriptor_media_type = ComponentDescriptor(
|
|
90
|
+
ArchetypeName, "media_type",
|
|
91
|
+
Loggable<rerun::components::MediaType>::Descriptor.component_name
|
|
92
|
+
);
|
|
93
|
+
/// `ComponentDescriptor` for the `albedo_factor` field.
|
|
94
|
+
static constexpr auto Descriptor_albedo_factor = ComponentDescriptor(
|
|
95
|
+
ArchetypeName, "albedo_factor",
|
|
96
|
+
Loggable<rerun::components::AlbedoFactor>::Descriptor.component_name
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
public: // START of extensions from asset3d_ext.cpp:
|
|
100
|
+
/// Creates a new `Asset3D` from the file contents at `path`.
|
|
101
|
+
///
|
|
102
|
+
/// The `MediaType` will be guessed from the file extension.
|
|
103
|
+
///
|
|
104
|
+
/// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
|
|
105
|
+
/// from the data at render-time. If it can't, rendering will fail with an error.
|
|
106
|
+
/// \deprecated Use `from_file_path` instead.
|
|
107
|
+
[[deprecated("Use `from_file_path` instead")]] static Result<Asset3D> from_file(
|
|
108
|
+
const std::filesystem::path& path
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
/// Creates a new `Asset3D` from the file contents at `path`.
|
|
112
|
+
///
|
|
113
|
+
/// The `MediaType` will be guessed from the file extension.
|
|
114
|
+
///
|
|
115
|
+
/// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
|
|
116
|
+
/// from the data at render-time. If it can't, rendering will fail with an error.
|
|
117
|
+
static Result<Asset3D> from_file_path(const std::filesystem::path& path);
|
|
118
|
+
|
|
119
|
+
/// Creates a new `Asset3D` from the given `bytes`.
|
|
120
|
+
///
|
|
121
|
+
/// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
|
|
122
|
+
/// at render-time. If it can't, rendering will fail with an error.
|
|
123
|
+
/// \deprecated Use `from_file_contents` instead.
|
|
124
|
+
[[deprecated("Use `from_file_contents` instead")]] static Asset3D from_bytes(
|
|
125
|
+
rerun::Collection<uint8_t> bytes,
|
|
126
|
+
std::optional<rerun::components::MediaType> media_type = {}
|
|
127
|
+
) {
|
|
128
|
+
return from_file_contents(bytes, media_type);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/// Creates a new `Asset3D` from the given `bytes`.
|
|
132
|
+
///
|
|
133
|
+
/// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
|
|
134
|
+
/// at render-time. If it can't, rendering will fail with an error.
|
|
135
|
+
static Asset3D from_file_contents(
|
|
136
|
+
rerun::Collection<uint8_t> bytes,
|
|
137
|
+
std::optional<rerun::components::MediaType> media_type = {}
|
|
138
|
+
) {
|
|
139
|
+
Asset3D asset = Asset3D(std::move(bytes));
|
|
140
|
+
// TODO(cmc): we could try and guess using magic bytes here, like rust does.
|
|
141
|
+
if (media_type.has_value()) {
|
|
142
|
+
return std::move(asset).with_media_type(media_type.value());
|
|
143
|
+
}
|
|
144
|
+
return asset;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// END of extensions from asset3d_ext.cpp, start of generated code:
|
|
148
|
+
|
|
149
|
+
public:
|
|
150
|
+
Asset3D() = default;
|
|
151
|
+
Asset3D(Asset3D&& other) = default;
|
|
152
|
+
Asset3D(const Asset3D& other) = default;
|
|
153
|
+
Asset3D& operator=(const Asset3D& other) = default;
|
|
154
|
+
Asset3D& operator=(Asset3D&& other) = default;
|
|
155
|
+
|
|
156
|
+
explicit Asset3D(rerun::components::Blob _blob)
|
|
157
|
+
: blob(ComponentBatch::from_loggable(std::move(_blob), Descriptor_blob).value_or_throw()
|
|
158
|
+
) {}
|
|
159
|
+
|
|
160
|
+
/// Update only some specific fields of a `Asset3D`.
|
|
161
|
+
static Asset3D update_fields() {
|
|
162
|
+
return Asset3D();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/// Clear all the fields of a `Asset3D`.
|
|
166
|
+
static Asset3D clear_fields();
|
|
167
|
+
|
|
168
|
+
/// The asset's bytes.
|
|
169
|
+
Asset3D with_blob(const rerun::components::Blob& _blob) && {
|
|
170
|
+
blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
|
|
171
|
+
return std::move(*this);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/// This method makes it possible to pack multiple `blob` in a single component batch.
|
|
175
|
+
///
|
|
176
|
+
/// This only makes sense when used in conjunction with `columns`. `with_blob` should
|
|
177
|
+
/// be used when logging a single row's worth of data.
|
|
178
|
+
Asset3D with_many_blob(const Collection<rerun::components::Blob>& _blob) && {
|
|
179
|
+
blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
|
|
180
|
+
return std::move(*this);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/// The Media Type of the asset.
|
|
184
|
+
///
|
|
185
|
+
/// Supported values:
|
|
186
|
+
/// * `model/gltf-binary`
|
|
187
|
+
/// * `model/gltf+json`
|
|
188
|
+
/// * `model/obj` (.mtl material files are not supported yet, references are silently ignored)
|
|
189
|
+
/// * `model/stl`
|
|
190
|
+
///
|
|
191
|
+
/// If omitted, the viewer will try to guess from the data blob.
|
|
192
|
+
/// If it cannot guess, it won't be able to render the asset.
|
|
193
|
+
Asset3D with_media_type(const rerun::components::MediaType& _media_type) && {
|
|
194
|
+
media_type =
|
|
195
|
+
ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
|
|
196
|
+
return std::move(*this);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// This method makes it possible to pack multiple `media_type` in a single component batch.
|
|
200
|
+
///
|
|
201
|
+
/// This only makes sense when used in conjunction with `columns`. `with_media_type` should
|
|
202
|
+
/// be used when logging a single row's worth of data.
|
|
203
|
+
Asset3D with_many_media_type(const Collection<rerun::components::MediaType>& _media_type
|
|
204
|
+
) && {
|
|
205
|
+
media_type =
|
|
206
|
+
ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
|
|
207
|
+
return std::move(*this);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/// A color multiplier applied to the whole asset.
|
|
211
|
+
///
|
|
212
|
+
/// For mesh who already have `albedo_factor` in materials,
|
|
213
|
+
/// it will be overwritten by actual `albedo_factor` of `archetypes::Asset3D` (if specified).
|
|
214
|
+
Asset3D with_albedo_factor(const rerun::components::AlbedoFactor& _albedo_factor) && {
|
|
215
|
+
albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
|
|
216
|
+
.value_or_throw();
|
|
217
|
+
return std::move(*this);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/// This method makes it possible to pack multiple `albedo_factor` in a single component batch.
|
|
221
|
+
///
|
|
222
|
+
/// This only makes sense when used in conjunction with `columns`. `with_albedo_factor` should
|
|
223
|
+
/// be used when logging a single row's worth of data.
|
|
224
|
+
Asset3D with_many_albedo_factor(
|
|
225
|
+
const Collection<rerun::components::AlbedoFactor>& _albedo_factor
|
|
226
|
+
) && {
|
|
227
|
+
albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
|
|
228
|
+
.value_or_throw();
|
|
229
|
+
return std::move(*this);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/// Partitions the component data into multiple sub-batches.
|
|
233
|
+
///
|
|
234
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
235
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
236
|
+
///
|
|
237
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
238
|
+
///
|
|
239
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
240
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
241
|
+
|
|
242
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
243
|
+
///
|
|
244
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
245
|
+
/// where `n` is automatically guessed.
|
|
246
|
+
Collection<ComponentColumn> columns();
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
} // namespace rerun::archetypes
|
|
250
|
+
|
|
251
|
+
namespace rerun {
|
|
252
|
+
/// \private
|
|
253
|
+
template <typename T>
|
|
254
|
+
struct AsComponents;
|
|
255
|
+
|
|
256
|
+
/// \private
|
|
257
|
+
template <>
|
|
258
|
+
struct AsComponents<archetypes::Asset3D> {
|
|
259
|
+
/// Serialize all set component batches.
|
|
260
|
+
static Result<Collection<ComponentBatch>> as_batches(const archetypes::Asset3D& archetype);
|
|
261
|
+
};
|
|
262
|
+
} // namespace rerun
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
// DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
|
|
2
|
+
// Based on "crates/store/re_types/definitions/rerun/archetypes/asset_video.fbs".
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "../collection.hpp"
|
|
7
|
+
#include "../component_batch.hpp"
|
|
8
|
+
#include "../component_column.hpp"
|
|
9
|
+
#include "../components/blob.hpp"
|
|
10
|
+
#include "../components/media_type.hpp"
|
|
11
|
+
#include "../indicator_component.hpp"
|
|
12
|
+
#include "../result.hpp"
|
|
13
|
+
|
|
14
|
+
#include <chrono>
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <filesystem>
|
|
17
|
+
#include <optional>
|
|
18
|
+
#include <utility>
|
|
19
|
+
#include <vector>
|
|
20
|
+
|
|
21
|
+
namespace rerun::archetypes {
|
|
22
|
+
/// **Archetype**: A video binary.
|
|
23
|
+
///
|
|
24
|
+
/// Only MP4 containers with AV1 are generally supported,
|
|
25
|
+
/// though the web viewer supports more video codecs, depending on browser.
|
|
26
|
+
///
|
|
27
|
+
/// See <https://rerun.io/docs/reference/video> for details of what is and isn't supported.
|
|
28
|
+
///
|
|
29
|
+
/// In order to display a video, you also need to log a `archetypes::VideoFrameReference` for each frame.
|
|
30
|
+
///
|
|
31
|
+
/// ## Examples
|
|
32
|
+
///
|
|
33
|
+
/// ### Video with automatically determined frames
|
|
34
|
+
/// 
|
|
35
|
+
///
|
|
36
|
+
/// ```cpp
|
|
37
|
+
/// #include <rerun.hpp>
|
|
38
|
+
///
|
|
39
|
+
/// #include <iostream>
|
|
40
|
+
///
|
|
41
|
+
/// using namespace std::chrono_literals;
|
|
42
|
+
///
|
|
43
|
+
/// int main(int argc, char* argv[]) {
|
|
44
|
+
/// if (argc <2) {
|
|
45
|
+
/// // TODO(#7354): Only mp4 is supported for now.
|
|
46
|
+
/// std::cerr <<"Usage: " <<argv[0] <<" <path_to_video.[mp4]>" <<std::endl;
|
|
47
|
+
/// return 1;
|
|
48
|
+
/// }
|
|
49
|
+
///
|
|
50
|
+
/// const auto path = argv[1];
|
|
51
|
+
///
|
|
52
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_asset_video_auto_frames");
|
|
53
|
+
/// rec.spawn().exit_on_failure();
|
|
54
|
+
///
|
|
55
|
+
/// // Log video asset which is referred to by frame references.
|
|
56
|
+
/// auto video_asset = rerun::AssetVideo::from_file(path).value_or_throw();
|
|
57
|
+
/// rec.log_static("video", video_asset);
|
|
58
|
+
///
|
|
59
|
+
/// // Send automatically determined video frame timestamps.
|
|
60
|
+
/// std::vector<std::chrono::nanoseconds> frame_timestamps_ns =
|
|
61
|
+
/// video_asset.read_frame_timestamps_nanos().value_or_throw();
|
|
62
|
+
/// // Note timeline values don't have to be the same as the video timestamps.
|
|
63
|
+
/// auto time_column =
|
|
64
|
+
/// rerun::TimeColumn::from_durations("video_time", rerun::borrow(frame_timestamps_ns));
|
|
65
|
+
///
|
|
66
|
+
/// std::vector<rerun::components::VideoTimestamp> video_timestamps(frame_timestamps_ns.size());
|
|
67
|
+
/// for (size_t i = 0; i <frame_timestamps_ns.size(); i++) {
|
|
68
|
+
/// video_timestamps[i] = rerun::components::VideoTimestamp(frame_timestamps_ns[i]);
|
|
69
|
+
/// }
|
|
70
|
+
/// auto video_frame_reference_indicators =
|
|
71
|
+
/// rerun::ComponentColumn::from_indicators<rerun::VideoFrameReference>(
|
|
72
|
+
/// static_cast<uint32_t>(video_timestamps.size())
|
|
73
|
+
/// );
|
|
74
|
+
///
|
|
75
|
+
/// rec.send_columns(
|
|
76
|
+
/// "video",
|
|
77
|
+
/// time_column,
|
|
78
|
+
/// rerun::VideoFrameReference().with_many_timestamp(rerun::borrow(video_timestamps)).columns()
|
|
79
|
+
/// );
|
|
80
|
+
/// }
|
|
81
|
+
/// ```
|
|
82
|
+
///
|
|
83
|
+
/// ### Demonstrates manual use of video frame references
|
|
84
|
+
/// 
|
|
85
|
+
///
|
|
86
|
+
/// ```cpp
|
|
87
|
+
/// #include <rerun.hpp>
|
|
88
|
+
///
|
|
89
|
+
/// #include <iostream>
|
|
90
|
+
///
|
|
91
|
+
/// using namespace std::chrono_literals;
|
|
92
|
+
///
|
|
93
|
+
/// int main(int argc, char* argv[]) {
|
|
94
|
+
/// if (argc <2) {
|
|
95
|
+
/// // TODO(#7354): Only mp4 is supported for now.
|
|
96
|
+
/// std::cerr <<"Usage: " <<argv[0] <<" <path_to_video.[mp4]>" <<std::endl;
|
|
97
|
+
/// return 1;
|
|
98
|
+
/// }
|
|
99
|
+
///
|
|
100
|
+
/// const auto path = argv[1];
|
|
101
|
+
///
|
|
102
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_asset_video_manual_frames");
|
|
103
|
+
/// rec.spawn().exit_on_failure();
|
|
104
|
+
///
|
|
105
|
+
/// // Log video asset which is referred to by frame references.
|
|
106
|
+
/// rec.log_static("video_asset", rerun::AssetVideo::from_file(path).value_or_throw());
|
|
107
|
+
///
|
|
108
|
+
/// // Create two entities, showing the same video frozen at different times.
|
|
109
|
+
/// rec.log("frame_1s", rerun::VideoFrameReference(1.0s).with_video_reference("video_asset"));
|
|
110
|
+
/// rec.log("frame_2s", rerun::VideoFrameReference(2.0s).with_video_reference("video_asset"));
|
|
111
|
+
///
|
|
112
|
+
/// // TODO(#5520): log blueprint once supported
|
|
113
|
+
/// }
|
|
114
|
+
/// ```
|
|
115
|
+
struct AssetVideo {
|
|
116
|
+
/// The asset's bytes.
|
|
117
|
+
std::optional<ComponentBatch> blob;
|
|
118
|
+
|
|
119
|
+
/// The Media Type of the asset.
|
|
120
|
+
///
|
|
121
|
+
/// Supported values:
|
|
122
|
+
/// * `video/mp4`
|
|
123
|
+
///
|
|
124
|
+
/// If omitted, the viewer will try to guess from the data blob.
|
|
125
|
+
/// If it cannot guess, it won't be able to render the asset.
|
|
126
|
+
std::optional<ComponentBatch> media_type;
|
|
127
|
+
|
|
128
|
+
public:
|
|
129
|
+
static constexpr const char IndicatorComponentName[] =
|
|
130
|
+
"rerun.components.AssetVideoIndicator";
|
|
131
|
+
|
|
132
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
133
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
134
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
135
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.AssetVideo";
|
|
136
|
+
|
|
137
|
+
/// `ComponentDescriptor` for the `blob` field.
|
|
138
|
+
static constexpr auto Descriptor_blob = ComponentDescriptor(
|
|
139
|
+
ArchetypeName, "blob", Loggable<rerun::components::Blob>::Descriptor.component_name
|
|
140
|
+
);
|
|
141
|
+
/// `ComponentDescriptor` for the `media_type` field.
|
|
142
|
+
static constexpr auto Descriptor_media_type = ComponentDescriptor(
|
|
143
|
+
ArchetypeName, "media_type",
|
|
144
|
+
Loggable<rerun::components::MediaType>::Descriptor.component_name
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
public: // START of extensions from asset_video_ext.cpp:
|
|
148
|
+
/// Creates a new `AssetVideo` from the file contents at `path`.
|
|
149
|
+
///
|
|
150
|
+
/// The `MediaType` will be guessed from the file extension.
|
|
151
|
+
///
|
|
152
|
+
/// If no `MediaType` can be guessed at the moment, the Rerun Viewer will try to guess one
|
|
153
|
+
/// from the data at render-time. If it can't, rendering will fail with an error.
|
|
154
|
+
static Result<AssetVideo> from_file(const std::filesystem::path& path);
|
|
155
|
+
|
|
156
|
+
/// Creates a new `AssetVideo` from the given `bytes`.
|
|
157
|
+
///
|
|
158
|
+
/// If no `MediaType` is specified, the Rerun Viewer will try to guess one from the data
|
|
159
|
+
/// at render-time. If it can't, rendering will fail with an error.
|
|
160
|
+
static AssetVideo from_bytes(
|
|
161
|
+
rerun::Collection<uint8_t> bytes,
|
|
162
|
+
std::optional<rerun::components::MediaType> media_type = {}
|
|
163
|
+
) {
|
|
164
|
+
AssetVideo asset = AssetVideo(std::move(bytes));
|
|
165
|
+
// TODO(jan): we could try and guess using magic bytes here, like rust does.
|
|
166
|
+
if (media_type.has_value()) {
|
|
167
|
+
return std::move(asset).with_media_type(media_type.value());
|
|
168
|
+
}
|
|
169
|
+
return asset;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/// Determines the presentation timestamps of all frames inside the video.
|
|
173
|
+
///
|
|
174
|
+
/// Returned timestamps are in nanoseconds since start and are guaranteed to be monotonically increasing.
|
|
175
|
+
Result<std::vector<std::chrono::nanoseconds>> read_frame_timestamps_nanos() const;
|
|
176
|
+
|
|
177
|
+
/// DEPRECATED: Use `read_frame_timestamps_nanos` instead.
|
|
178
|
+
[[deprecated("Renamed to `read_frame_timestamps_nanos`"
|
|
179
|
+
)]] Result<std::vector<std::chrono::nanoseconds>>
|
|
180
|
+
read_frame_timestamps_ns() const {
|
|
181
|
+
return read_frame_timestamps_nanos();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// END of extensions from asset_video_ext.cpp, start of generated code:
|
|
185
|
+
|
|
186
|
+
public:
|
|
187
|
+
AssetVideo() = default;
|
|
188
|
+
AssetVideo(AssetVideo&& other) = default;
|
|
189
|
+
AssetVideo(const AssetVideo& other) = default;
|
|
190
|
+
AssetVideo& operator=(const AssetVideo& other) = default;
|
|
191
|
+
AssetVideo& operator=(AssetVideo&& other) = default;
|
|
192
|
+
|
|
193
|
+
explicit AssetVideo(rerun::components::Blob _blob)
|
|
194
|
+
: blob(ComponentBatch::from_loggable(std::move(_blob), Descriptor_blob).value_or_throw()
|
|
195
|
+
) {}
|
|
196
|
+
|
|
197
|
+
/// Update only some specific fields of a `AssetVideo`.
|
|
198
|
+
static AssetVideo update_fields() {
|
|
199
|
+
return AssetVideo();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/// Clear all the fields of a `AssetVideo`.
|
|
203
|
+
static AssetVideo clear_fields();
|
|
204
|
+
|
|
205
|
+
/// The asset's bytes.
|
|
206
|
+
AssetVideo with_blob(const rerun::components::Blob& _blob) && {
|
|
207
|
+
blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
|
|
208
|
+
return std::move(*this);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/// This method makes it possible to pack multiple `blob` in a single component batch.
|
|
212
|
+
///
|
|
213
|
+
/// This only makes sense when used in conjunction with `columns`. `with_blob` should
|
|
214
|
+
/// be used when logging a single row's worth of data.
|
|
215
|
+
AssetVideo with_many_blob(const Collection<rerun::components::Blob>& _blob) && {
|
|
216
|
+
blob = ComponentBatch::from_loggable(_blob, Descriptor_blob).value_or_throw();
|
|
217
|
+
return std::move(*this);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/// The Media Type of the asset.
|
|
221
|
+
///
|
|
222
|
+
/// Supported values:
|
|
223
|
+
/// * `video/mp4`
|
|
224
|
+
///
|
|
225
|
+
/// If omitted, the viewer will try to guess from the data blob.
|
|
226
|
+
/// If it cannot guess, it won't be able to render the asset.
|
|
227
|
+
AssetVideo with_media_type(const rerun::components::MediaType& _media_type) && {
|
|
228
|
+
media_type =
|
|
229
|
+
ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
|
|
230
|
+
return std::move(*this);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/// This method makes it possible to pack multiple `media_type` in a single component batch.
|
|
234
|
+
///
|
|
235
|
+
/// This only makes sense when used in conjunction with `columns`. `with_media_type` should
|
|
236
|
+
/// be used when logging a single row's worth of data.
|
|
237
|
+
AssetVideo with_many_media_type(const Collection<rerun::components::MediaType>& _media_type
|
|
238
|
+
) && {
|
|
239
|
+
media_type =
|
|
240
|
+
ComponentBatch::from_loggable(_media_type, Descriptor_media_type).value_or_throw();
|
|
241
|
+
return std::move(*this);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/// Partitions the component data into multiple sub-batches.
|
|
245
|
+
///
|
|
246
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
247
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
248
|
+
///
|
|
249
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
250
|
+
///
|
|
251
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
252
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
253
|
+
|
|
254
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
255
|
+
///
|
|
256
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
257
|
+
/// where `n` is automatically guessed.
|
|
258
|
+
Collection<ComponentColumn> columns();
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
} // namespace rerun::archetypes
|
|
262
|
+
|
|
263
|
+
namespace rerun {
|
|
264
|
+
/// \private
|
|
265
|
+
template <typename T>
|
|
266
|
+
struct AsComponents;
|
|
267
|
+
|
|
268
|
+
/// \private
|
|
269
|
+
template <>
|
|
270
|
+
struct AsComponents<archetypes::AssetVideo> {
|
|
271
|
+
/// Serialize all set component batches.
|
|
272
|
+
static Result<Collection<ComponentBatch>> as_batches(const archetypes::AssetVideo& archetype
|
|
273
|
+
);
|
|
274
|
+
};
|
|
275
|
+
} // namespace rerun
|