pymomentum-cpu 0.1.78.post11__cp313-cp313-win_amd64.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/arrow_bundled_dependencies.lib +0 -0
- lib/arrow_static.lib +0 -0
- lib/axel.lib +0 -0
- lib/cmake/axel/axel-config.cmake +45 -0
- lib/cmake/axel/axelTargets-release.cmake +19 -0
- lib/cmake/axel/axelTargets.cmake +108 -0
- lib/cmake/momentum/Findre2.cmake +52 -0
- lib/cmake/momentum/momentum-config.cmake +67 -0
- lib/cmake/momentum/momentumTargets-release.cmake +259 -0
- lib/cmake/momentum/momentumTargets.cmake +377 -0
- lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
- lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
- lib/momentum_app_utils.lib +0 -0
- lib/momentum_character.lib +0 -0
- lib/momentum_character_sequence_solver.lib +0 -0
- lib/momentum_character_solver.lib +0 -0
- lib/momentum_common.lib +0 -0
- lib/momentum_diff_ik.lib +0 -0
- lib/momentum_io.lib +0 -0
- lib/momentum_io_common.lib +0 -0
- lib/momentum_io_fbx.lib +0 -0
- lib/momentum_io_gltf.lib +0 -0
- lib/momentum_io_legacy_json.lib +0 -0
- lib/momentum_io_marker.lib +0 -0
- lib/momentum_io_motion.lib +0 -0
- lib/momentum_io_shape.lib +0 -0
- lib/momentum_io_skeleton.lib +0 -0
- lib/momentum_io_urdf.lib +0 -0
- lib/momentum_marker_tracker.lib +0 -0
- lib/momentum_math.lib +0 -0
- lib/momentum_online_qr.lib +0 -0
- lib/momentum_process_markers.lib +0 -0
- lib/momentum_rerun.lib +0 -0
- lib/momentum_simd_constraints.lib +0 -0
- lib/momentum_simd_generalized_loss.lib +0 -0
- lib/momentum_skeleton.lib +0 -0
- lib/momentum_solver.lib +0 -0
- lib/rerun_c__win_x64.lib +0 -0
- lib/rerun_sdk.lib +0 -0
- pymomentum/axel.cp313-win_amd64.pyd +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.cp313-win_amd64.pyd +0 -0
- pymomentum/marker_tracking.cp313-win_amd64.pyd +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cp313-win_amd64.pyd +0 -0
- pymomentum/solver2.cp313-win_amd64.pyd +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.78.post11.dist-info/METADATA +121 -0
- pymomentum_cpu-0.1.78.post11.dist-info/RECORD +512 -0
- pymomentum_cpu-0.1.78.post11.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.78.post11.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,206 @@
|
|
|
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/graph_nodes.fbs".
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "../collection.hpp"
|
|
7
|
+
#include "../component_batch.hpp"
|
|
8
|
+
#include "../component_column.hpp"
|
|
9
|
+
#include "../components/color.hpp"
|
|
10
|
+
#include "../components/graph_node.hpp"
|
|
11
|
+
#include "../components/position2d.hpp"
|
|
12
|
+
#include "../components/radius.hpp"
|
|
13
|
+
#include "../components/show_labels.hpp"
|
|
14
|
+
#include "../components/text.hpp"
|
|
15
|
+
#include "../indicator_component.hpp"
|
|
16
|
+
#include "../result.hpp"
|
|
17
|
+
|
|
18
|
+
#include <cstdint>
|
|
19
|
+
#include <optional>
|
|
20
|
+
#include <utility>
|
|
21
|
+
#include <vector>
|
|
22
|
+
|
|
23
|
+
namespace rerun::archetypes {
|
|
24
|
+
/// **Archetype**: A list of nodes in a graph with optional labels, colors, etc.
|
|
25
|
+
///
|
|
26
|
+
/// ## Example
|
|
27
|
+
///
|
|
28
|
+
/// ### Simple directed graph
|
|
29
|
+
/// 
|
|
30
|
+
///
|
|
31
|
+
/// ```cpp
|
|
32
|
+
/// #include <rerun.hpp>
|
|
33
|
+
///
|
|
34
|
+
/// int main() {
|
|
35
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_graph_directed");
|
|
36
|
+
/// rec.spawn().exit_on_failure();
|
|
37
|
+
///
|
|
38
|
+
/// rec.log(
|
|
39
|
+
/// "simple",
|
|
40
|
+
/// rerun::GraphNodes({"a", "b", "c"})
|
|
41
|
+
/// .with_positions({{0.0, 100.0}, {-100.0, 0.0}, {100.0, 0.0}})
|
|
42
|
+
/// .with_labels({"A", "B", "C"}),
|
|
43
|
+
/// rerun::GraphEdges({{"a", "b"}, {"b", "c"}, {"c", "a"}})
|
|
44
|
+
/// // Graphs are undirected by default.
|
|
45
|
+
/// .with_graph_type(rerun::components::GraphType::Directed)
|
|
46
|
+
/// );
|
|
47
|
+
/// }
|
|
48
|
+
/// ```
|
|
49
|
+
struct GraphNodes {
|
|
50
|
+
/// A list of node IDs.
|
|
51
|
+
std::optional<ComponentBatch> node_ids;
|
|
52
|
+
|
|
53
|
+
/// Optional center positions of the nodes.
|
|
54
|
+
std::optional<ComponentBatch> positions;
|
|
55
|
+
|
|
56
|
+
/// Optional colors for the boxes.
|
|
57
|
+
std::optional<ComponentBatch> colors;
|
|
58
|
+
|
|
59
|
+
/// Optional text labels for the node.
|
|
60
|
+
std::optional<ComponentBatch> labels;
|
|
61
|
+
|
|
62
|
+
/// Optional choice of whether the text labels should be shown by default.
|
|
63
|
+
std::optional<ComponentBatch> show_labels;
|
|
64
|
+
|
|
65
|
+
/// Optional radii for nodes.
|
|
66
|
+
std::optional<ComponentBatch> radii;
|
|
67
|
+
|
|
68
|
+
public:
|
|
69
|
+
static constexpr const char IndicatorComponentName[] =
|
|
70
|
+
"rerun.components.GraphNodesIndicator";
|
|
71
|
+
|
|
72
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
73
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
74
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
75
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.GraphNodes";
|
|
76
|
+
|
|
77
|
+
/// `ComponentDescriptor` for the `node_ids` field.
|
|
78
|
+
static constexpr auto Descriptor_node_ids = ComponentDescriptor(
|
|
79
|
+
ArchetypeName, "node_ids",
|
|
80
|
+
Loggable<rerun::components::GraphNode>::Descriptor.component_name
|
|
81
|
+
);
|
|
82
|
+
/// `ComponentDescriptor` for the `positions` field.
|
|
83
|
+
static constexpr auto Descriptor_positions = ComponentDescriptor(
|
|
84
|
+
ArchetypeName, "positions",
|
|
85
|
+
Loggable<rerun::components::Position2D>::Descriptor.component_name
|
|
86
|
+
);
|
|
87
|
+
/// `ComponentDescriptor` for the `colors` field.
|
|
88
|
+
static constexpr auto Descriptor_colors = ComponentDescriptor(
|
|
89
|
+
ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
|
|
90
|
+
);
|
|
91
|
+
/// `ComponentDescriptor` for the `labels` field.
|
|
92
|
+
static constexpr auto Descriptor_labels = ComponentDescriptor(
|
|
93
|
+
ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
|
|
94
|
+
);
|
|
95
|
+
/// `ComponentDescriptor` for the `show_labels` field.
|
|
96
|
+
static constexpr auto Descriptor_show_labels = ComponentDescriptor(
|
|
97
|
+
ArchetypeName, "show_labels",
|
|
98
|
+
Loggable<rerun::components::ShowLabels>::Descriptor.component_name
|
|
99
|
+
);
|
|
100
|
+
/// `ComponentDescriptor` for the `radii` field.
|
|
101
|
+
static constexpr auto Descriptor_radii = ComponentDescriptor(
|
|
102
|
+
ArchetypeName, "radii", Loggable<rerun::components::Radius>::Descriptor.component_name
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
public:
|
|
106
|
+
GraphNodes() = default;
|
|
107
|
+
GraphNodes(GraphNodes&& other) = default;
|
|
108
|
+
GraphNodes(const GraphNodes& other) = default;
|
|
109
|
+
GraphNodes& operator=(const GraphNodes& other) = default;
|
|
110
|
+
GraphNodes& operator=(GraphNodes&& other) = default;
|
|
111
|
+
|
|
112
|
+
explicit GraphNodes(Collection<rerun::components::GraphNode> _node_ids)
|
|
113
|
+
: node_ids(ComponentBatch::from_loggable(std::move(_node_ids), Descriptor_node_ids)
|
|
114
|
+
.value_or_throw()) {}
|
|
115
|
+
|
|
116
|
+
/// Update only some specific fields of a `GraphNodes`.
|
|
117
|
+
static GraphNodes update_fields() {
|
|
118
|
+
return GraphNodes();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/// Clear all the fields of a `GraphNodes`.
|
|
122
|
+
static GraphNodes clear_fields();
|
|
123
|
+
|
|
124
|
+
/// A list of node IDs.
|
|
125
|
+
GraphNodes with_node_ids(const Collection<rerun::components::GraphNode>& _node_ids) && {
|
|
126
|
+
node_ids =
|
|
127
|
+
ComponentBatch::from_loggable(_node_ids, Descriptor_node_ids).value_or_throw();
|
|
128
|
+
return std::move(*this);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/// Optional center positions of the nodes.
|
|
132
|
+
GraphNodes with_positions(const Collection<rerun::components::Position2D>& _positions) && {
|
|
133
|
+
positions =
|
|
134
|
+
ComponentBatch::from_loggable(_positions, Descriptor_positions).value_or_throw();
|
|
135
|
+
return std::move(*this);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/// Optional colors for the boxes.
|
|
139
|
+
GraphNodes with_colors(const Collection<rerun::components::Color>& _colors) && {
|
|
140
|
+
colors = ComponentBatch::from_loggable(_colors, Descriptor_colors).value_or_throw();
|
|
141
|
+
return std::move(*this);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/// Optional text labels for the node.
|
|
145
|
+
GraphNodes with_labels(const Collection<rerun::components::Text>& _labels) && {
|
|
146
|
+
labels = ComponentBatch::from_loggable(_labels, Descriptor_labels).value_or_throw();
|
|
147
|
+
return std::move(*this);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/// Optional choice of whether the text labels should be shown by default.
|
|
151
|
+
GraphNodes with_show_labels(const rerun::components::ShowLabels& _show_labels) && {
|
|
152
|
+
show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
|
|
153
|
+
.value_or_throw();
|
|
154
|
+
return std::move(*this);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/// This method makes it possible to pack multiple `show_labels` in a single component batch.
|
|
158
|
+
///
|
|
159
|
+
/// This only makes sense when used in conjunction with `columns`. `with_show_labels` should
|
|
160
|
+
/// be used when logging a single row's worth of data.
|
|
161
|
+
GraphNodes with_many_show_labels(
|
|
162
|
+
const Collection<rerun::components::ShowLabels>& _show_labels
|
|
163
|
+
) && {
|
|
164
|
+
show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
|
|
165
|
+
.value_or_throw();
|
|
166
|
+
return std::move(*this);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/// Optional radii for nodes.
|
|
170
|
+
GraphNodes with_radii(const Collection<rerun::components::Radius>& _radii) && {
|
|
171
|
+
radii = ComponentBatch::from_loggable(_radii, Descriptor_radii).value_or_throw();
|
|
172
|
+
return std::move(*this);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/// Partitions the component data into multiple sub-batches.
|
|
176
|
+
///
|
|
177
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
178
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
179
|
+
///
|
|
180
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
181
|
+
///
|
|
182
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
183
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
184
|
+
|
|
185
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
186
|
+
///
|
|
187
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
188
|
+
/// where `n` is automatically guessed.
|
|
189
|
+
Collection<ComponentColumn> columns();
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
} // namespace rerun::archetypes
|
|
193
|
+
|
|
194
|
+
namespace rerun {
|
|
195
|
+
/// \private
|
|
196
|
+
template <typename T>
|
|
197
|
+
struct AsComponents;
|
|
198
|
+
|
|
199
|
+
/// \private
|
|
200
|
+
template <>
|
|
201
|
+
struct AsComponents<archetypes::GraphNodes> {
|
|
202
|
+
/// Serialize all set component batches.
|
|
203
|
+
static Result<Collection<ComponentBatch>> as_batches(const archetypes::GraphNodes& archetype
|
|
204
|
+
);
|
|
205
|
+
};
|
|
206
|
+
} // namespace rerun
|
|
@@ -0,0 +1,434 @@
|
|
|
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/image.fbs".
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "../collection.hpp"
|
|
7
|
+
#include "../component_batch.hpp"
|
|
8
|
+
#include "../component_column.hpp"
|
|
9
|
+
#include "../components/draw_order.hpp"
|
|
10
|
+
#include "../components/image_buffer.hpp"
|
|
11
|
+
#include "../components/image_format.hpp"
|
|
12
|
+
#include "../components/opacity.hpp"
|
|
13
|
+
#include "../image_utils.hpp"
|
|
14
|
+
#include "../indicator_component.hpp"
|
|
15
|
+
#include "../result.hpp"
|
|
16
|
+
|
|
17
|
+
#include <cstdint>
|
|
18
|
+
#include <optional>
|
|
19
|
+
#include <utility>
|
|
20
|
+
#include <vector>
|
|
21
|
+
|
|
22
|
+
namespace rerun::archetypes {
|
|
23
|
+
/// **Archetype**: A monochrome or color image.
|
|
24
|
+
///
|
|
25
|
+
/// See also `archetypes::DepthImage` and `archetypes::SegmentationImage`.
|
|
26
|
+
///
|
|
27
|
+
/// Rerun also supports compressed images (JPEG, PNG, …), using `archetypes::EncodedImage`.
|
|
28
|
+
/// For images that refer to video frames see `archetypes::VideoFrameReference`.
|
|
29
|
+
/// Compressing images or using video data instead can save a lot of bandwidth and memory.
|
|
30
|
+
///
|
|
31
|
+
/// The raw image data is stored as a single buffer of bytes in a `components::Blob`.
|
|
32
|
+
/// The meaning of these bytes is determined by the `components::ImageFormat` which specifies the resolution
|
|
33
|
+
/// and the pixel format (e.g. RGB, RGBA, …).
|
|
34
|
+
///
|
|
35
|
+
/// The order of dimensions in the underlying `components::Blob` follows the typical
|
|
36
|
+
/// row-major, interleaved-pixel image format.
|
|
37
|
+
///
|
|
38
|
+
/// Since the underlying [rerun::components::Blob] uses `rerun::Collection` internally,
|
|
39
|
+
/// data can be passed in without a copy from raw pointers or by reference from `std::vector`/`std::array`/c-arrays.
|
|
40
|
+
/// If needed, this "borrow-behavior" can be extended by defining your own `rerun::CollectionAdapter`.
|
|
41
|
+
///
|
|
42
|
+
/// ## Examples
|
|
43
|
+
///
|
|
44
|
+
/// ### image_simple:
|
|
45
|
+
/// 
|
|
46
|
+
///
|
|
47
|
+
/// ```cpp
|
|
48
|
+
/// #include <rerun.hpp>
|
|
49
|
+
///
|
|
50
|
+
/// #include <vector>
|
|
51
|
+
///
|
|
52
|
+
/// int main() {
|
|
53
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_image");
|
|
54
|
+
/// rec.spawn().exit_on_failure();
|
|
55
|
+
///
|
|
56
|
+
/// // Create a synthetic image.
|
|
57
|
+
/// const int HEIGHT = 200;
|
|
58
|
+
/// const int WIDTH = 300;
|
|
59
|
+
/// std::vector<uint8_t> data(WIDTH * HEIGHT * 3, 0);
|
|
60
|
+
/// for (size_t i = 0; i <data.size(); i += 3) {
|
|
61
|
+
/// data[i] = 255;
|
|
62
|
+
/// }
|
|
63
|
+
/// for (size_t y = 50; y <150; ++y) {
|
|
64
|
+
/// for (size_t x = 50; x <150; ++x) {
|
|
65
|
+
/// data[(y * WIDTH + x) * 3 + 0] = 0;
|
|
66
|
+
/// data[(y * WIDTH + x) * 3 + 1] = 255;
|
|
67
|
+
/// data[(y * WIDTH + x) * 3 + 2] = 0;
|
|
68
|
+
/// }
|
|
69
|
+
/// }
|
|
70
|
+
///
|
|
71
|
+
/// rec.log("image", rerun::Image::from_rgb24(data, {WIDTH, HEIGHT}));
|
|
72
|
+
/// }
|
|
73
|
+
/// ```
|
|
74
|
+
///
|
|
75
|
+
/// ### Logging images with various formats
|
|
76
|
+
/// 
|
|
77
|
+
///
|
|
78
|
+
/// ```cpp
|
|
79
|
+
/// #include <algorithm>
|
|
80
|
+
/// #include <cstdint>
|
|
81
|
+
/// #include <vector>
|
|
82
|
+
///
|
|
83
|
+
/// #include <rerun.hpp>
|
|
84
|
+
///
|
|
85
|
+
/// int main() {
|
|
86
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_image_formats");
|
|
87
|
+
/// rec.spawn().exit_on_failure();
|
|
88
|
+
///
|
|
89
|
+
/// // Simple gradient image
|
|
90
|
+
/// std::vector<uint8_t> image(256 * 256 * 3);
|
|
91
|
+
/// for (size_t y = 0; y <256; ++y) {
|
|
92
|
+
/// for (size_t x = 0; x <256; ++x) {
|
|
93
|
+
/// image[(y * 256 + x) * 3 + 0] = static_cast<uint8_t>(x);
|
|
94
|
+
/// image[(y * 256 + x) * 3 + 1] = static_cast<uint8_t>(std::min<size_t>(255, x + y));
|
|
95
|
+
/// image[(y * 256 + x) * 3 + 2] = static_cast<uint8_t>(y);
|
|
96
|
+
/// }
|
|
97
|
+
/// }
|
|
98
|
+
///
|
|
99
|
+
/// // RGB image
|
|
100
|
+
/// rec.log("image_rgb", rerun::Image::from_rgb24(image, {256, 256}));
|
|
101
|
+
///
|
|
102
|
+
/// // Green channel only (Luminance)
|
|
103
|
+
/// std::vector<uint8_t> green_channel(256 * 256);
|
|
104
|
+
/// for (size_t i = 0; i <256 * 256; ++i) {
|
|
105
|
+
/// green_channel[i] = image[i * 3 + 1];
|
|
106
|
+
/// }
|
|
107
|
+
/// rec.log(
|
|
108
|
+
/// "image_green_only",
|
|
109
|
+
/// rerun::Image(rerun::borrow(green_channel), {256, 256}, rerun::ColorModel::L)
|
|
110
|
+
/// );
|
|
111
|
+
///
|
|
112
|
+
/// // BGR image
|
|
113
|
+
/// std::vector<uint8_t> bgr_image(256 * 256 * 3);
|
|
114
|
+
/// for (size_t i = 0; i <256 * 256; ++i) {
|
|
115
|
+
/// bgr_image[i * 3 + 0] = image[i * 3 + 2];
|
|
116
|
+
/// bgr_image[i * 3 + 1] = image[i * 3 + 1];
|
|
117
|
+
/// bgr_image[i * 3 + 2] = image[i * 3 + 0];
|
|
118
|
+
/// }
|
|
119
|
+
/// rec.log(
|
|
120
|
+
/// "image_bgr",
|
|
121
|
+
/// rerun::Image(rerun::borrow(bgr_image), {256, 256}, rerun::ColorModel::BGR)
|
|
122
|
+
/// );
|
|
123
|
+
///
|
|
124
|
+
/// // New image with Separate Y/U/V planes with 4:2:2 chroma downsampling
|
|
125
|
+
/// std::vector<uint8_t> yuv_bytes(256 * 256 + 128 * 256 * 2);
|
|
126
|
+
/// std::fill_n(yuv_bytes.begin(), 256 * 256, static_cast<uint8_t>(128)); // Fixed value for Y
|
|
127
|
+
/// size_t u_plane_offset = 256 * 256;
|
|
128
|
+
/// size_t v_plane_offset = u_plane_offset + 128 * 256;
|
|
129
|
+
/// for (size_t y = 0; y <256; ++y) {
|
|
130
|
+
/// for (size_t x = 0; x <128; ++x) {
|
|
131
|
+
/// auto coord = y * 128 + x;
|
|
132
|
+
/// yuv_bytes[u_plane_offset + coord] = static_cast<uint8_t>(x * 2); // Gradient for U
|
|
133
|
+
/// yuv_bytes[v_plane_offset + coord] = static_cast<uint8_t>(y); // Gradient for V
|
|
134
|
+
/// }
|
|
135
|
+
/// }
|
|
136
|
+
/// rec.log(
|
|
137
|
+
/// "image_yuv422",
|
|
138
|
+
/// rerun::Image(rerun::borrow(yuv_bytes), {256, 256}, rerun::PixelFormat::Y_U_V16_FullRange)
|
|
139
|
+
/// );
|
|
140
|
+
///
|
|
141
|
+
/// return 0;
|
|
142
|
+
/// }
|
|
143
|
+
/// ```
|
|
144
|
+
struct Image {
|
|
145
|
+
/// The raw image data.
|
|
146
|
+
std::optional<ComponentBatch> buffer;
|
|
147
|
+
|
|
148
|
+
/// The format of the image.
|
|
149
|
+
std::optional<ComponentBatch> format;
|
|
150
|
+
|
|
151
|
+
/// Opacity of the image, useful for layering several images.
|
|
152
|
+
///
|
|
153
|
+
/// Defaults to 1.0 (fully opaque).
|
|
154
|
+
std::optional<ComponentBatch> opacity;
|
|
155
|
+
|
|
156
|
+
/// An optional floating point value that specifies the 2D drawing order.
|
|
157
|
+
///
|
|
158
|
+
/// Objects with higher values are drawn on top of those with lower values.
|
|
159
|
+
/// Defaults to `-10.0`.
|
|
160
|
+
std::optional<ComponentBatch> draw_order;
|
|
161
|
+
|
|
162
|
+
public:
|
|
163
|
+
static constexpr const char IndicatorComponentName[] = "rerun.components.ImageIndicator";
|
|
164
|
+
|
|
165
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
166
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
167
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
168
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.Image";
|
|
169
|
+
|
|
170
|
+
/// `ComponentDescriptor` for the `buffer` field.
|
|
171
|
+
static constexpr auto Descriptor_buffer = ComponentDescriptor(
|
|
172
|
+
ArchetypeName, "buffer",
|
|
173
|
+
Loggable<rerun::components::ImageBuffer>::Descriptor.component_name
|
|
174
|
+
);
|
|
175
|
+
/// `ComponentDescriptor` for the `format` field.
|
|
176
|
+
static constexpr auto Descriptor_format = ComponentDescriptor(
|
|
177
|
+
ArchetypeName, "format",
|
|
178
|
+
Loggable<rerun::components::ImageFormat>::Descriptor.component_name
|
|
179
|
+
);
|
|
180
|
+
/// `ComponentDescriptor` for the `opacity` field.
|
|
181
|
+
static constexpr auto Descriptor_opacity = ComponentDescriptor(
|
|
182
|
+
ArchetypeName, "opacity",
|
|
183
|
+
Loggable<rerun::components::Opacity>::Descriptor.component_name
|
|
184
|
+
);
|
|
185
|
+
/// `ComponentDescriptor` for the `draw_order` field.
|
|
186
|
+
static constexpr auto Descriptor_draw_order = ComponentDescriptor(
|
|
187
|
+
ArchetypeName, "draw_order",
|
|
188
|
+
Loggable<rerun::components::DrawOrder>::Descriptor.component_name
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
public: // START of extensions from image_ext.cpp:
|
|
192
|
+
/// Construct an image from bytes and image format.
|
|
193
|
+
///
|
|
194
|
+
/// @param bytes The raw image data as bytes.
|
|
195
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
196
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
197
|
+
/// The length of the data should be `W * H * image_format.bytes_per_pixel`.
|
|
198
|
+
/// @param format_ How the data should be interpreted.
|
|
199
|
+
Image(Collection<uint8_t> bytes, components::ImageFormat format_) {
|
|
200
|
+
if (bytes.size() != format_.image_format.num_bytes()) {
|
|
201
|
+
Error(
|
|
202
|
+
ErrorCode::InvalidTensorDimension,
|
|
203
|
+
"Image buffer has the wrong size. Got " + std::to_string(bytes.size()) +
|
|
204
|
+
" bytes, expected " + std::to_string(format_.image_format.num_bytes())
|
|
205
|
+
)
|
|
206
|
+
.handle();
|
|
207
|
+
}
|
|
208
|
+
*this = std::move(*this).with_buffer(bytes).with_format(format_);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/// Construct an image from resolution, pixel format and bytes.
|
|
212
|
+
///
|
|
213
|
+
/// @param bytes The raw image data as bytes.
|
|
214
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
215
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
216
|
+
/// The length of the data should be `W * H * pixel_format.bytes_per_pixel`.
|
|
217
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
218
|
+
/// @param pixel_format How the data should be interpreted.
|
|
219
|
+
Image(
|
|
220
|
+
Collection<uint8_t> bytes, WidthHeight resolution, datatypes::PixelFormat pixel_format
|
|
221
|
+
)
|
|
222
|
+
: Image{std::move(bytes), datatypes::ImageFormat{resolution, pixel_format}} {}
|
|
223
|
+
|
|
224
|
+
/// Construct an image from resolution, color model, channel datatype and bytes.
|
|
225
|
+
///
|
|
226
|
+
/// @param bytes The raw image data.
|
|
227
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
228
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
229
|
+
/// The length of the data should be `W * H * datatype.bytes * color_model.num_channels`.
|
|
230
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
231
|
+
/// @param color_model The color model of the pixel data.
|
|
232
|
+
/// @param datatype Datatype of the individual channels of the color model.
|
|
233
|
+
Image(
|
|
234
|
+
Collection<uint8_t> bytes, WidthHeight resolution, datatypes::ColorModel color_model,
|
|
235
|
+
datatypes::ChannelDatatype datatype
|
|
236
|
+
)
|
|
237
|
+
: Image(std::move(bytes), datatypes::ImageFormat(resolution, color_model, datatype)) {}
|
|
238
|
+
|
|
239
|
+
/// Construct an image from resolution, color model and elements,
|
|
240
|
+
/// inferring the channel datatype from the element type.
|
|
241
|
+
///
|
|
242
|
+
/// @param elements Pixel data as a `rerun::Collection`.
|
|
243
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
244
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
245
|
+
/// The length of the data should be `W * H * color_model.num_channels`.
|
|
246
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
247
|
+
/// @param color_model The color model of the pixel data.
|
|
248
|
+
/// Each element in elements is interpreted as a single channel of the color model.
|
|
249
|
+
template <typename T>
|
|
250
|
+
Image(Collection<T> elements, WidthHeight resolution, datatypes::ColorModel color_model)
|
|
251
|
+
: Image(elements.to_uint8(), resolution, color_model, get_datatype(elements.data())) {}
|
|
252
|
+
|
|
253
|
+
/// Construct an image from resolution, color model and element pointer,
|
|
254
|
+
/// inferring the channel datatype from the element type.
|
|
255
|
+
///
|
|
256
|
+
/// @param elements The raw image data.
|
|
257
|
+
/// ⚠️ Does not take ownership of the data, the caller must ensure the data outlives the image.
|
|
258
|
+
/// The number of elements is assumed to be `W * H * color_model.num_channels`.
|
|
259
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
260
|
+
/// @param color_model The color model of the pixel data.
|
|
261
|
+
/// Each element in elements is interpreted as a single channel of the color model.
|
|
262
|
+
template <typename T>
|
|
263
|
+
Image(const T* elements, WidthHeight resolution, datatypes::ColorModel color_model)
|
|
264
|
+
: Image(
|
|
265
|
+
rerun::Collection<uint8_t>::borrow(
|
|
266
|
+
reinterpret_cast<const uint8_t*>(elements),
|
|
267
|
+
resolution.width * resolution.height * color_model_channel_count(color_model)
|
|
268
|
+
),
|
|
269
|
+
resolution, color_model, get_datatype(elements)
|
|
270
|
+
) {}
|
|
271
|
+
|
|
272
|
+
/// Assumes single channel greyscale/luminance with 8-bit per value.
|
|
273
|
+
///
|
|
274
|
+
/// @param bytes Pixel data as a `rerun::Collection`.
|
|
275
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
276
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
277
|
+
/// The length of the data should be `W * H`.
|
|
278
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
279
|
+
static Image from_greyscale8(Collection<uint8_t> bytes, WidthHeight resolution) {
|
|
280
|
+
return Image(
|
|
281
|
+
bytes,
|
|
282
|
+
resolution,
|
|
283
|
+
datatypes::ColorModel::L,
|
|
284
|
+
datatypes::ChannelDatatype::U8
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/// Assumes RGB, 8-bit per channel, packed as `RGBRGBRGB…`.
|
|
289
|
+
///
|
|
290
|
+
/// @param bytes Pixel data as a `rerun::Collection`.
|
|
291
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
292
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
293
|
+
/// The length of the data should be `W * H * 3`.
|
|
294
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
295
|
+
static Image from_rgb24(Collection<uint8_t> bytes, WidthHeight resolution) {
|
|
296
|
+
return Image(
|
|
297
|
+
bytes,
|
|
298
|
+
resolution,
|
|
299
|
+
datatypes::ColorModel::RGB,
|
|
300
|
+
datatypes::ChannelDatatype::U8
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/// Assumes RGBA, 8-bit per channel, with separate alpha.
|
|
305
|
+
///
|
|
306
|
+
/// @param bytes Pixel data as a `rerun::Collection`.
|
|
307
|
+
/// If the data does not outlive the image, use `std::move` or create the `rerun::Collection`
|
|
308
|
+
/// explicitly ahead of time with `rerun::Collection::take_ownership`.
|
|
309
|
+
/// The length of the data should be `W * H * 4`.
|
|
310
|
+
/// @param resolution The resolution of the image as {width, height}.
|
|
311
|
+
static Image from_rgba32(Collection<uint8_t> bytes, WidthHeight resolution) {
|
|
312
|
+
return Image(
|
|
313
|
+
bytes,
|
|
314
|
+
resolution,
|
|
315
|
+
datatypes::ColorModel::RGBA,
|
|
316
|
+
datatypes::ChannelDatatype::U8
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// END of extensions from image_ext.cpp, start of generated code:
|
|
321
|
+
|
|
322
|
+
public:
|
|
323
|
+
Image() = default;
|
|
324
|
+
Image(Image&& other) = default;
|
|
325
|
+
Image(const Image& other) = default;
|
|
326
|
+
Image& operator=(const Image& other) = default;
|
|
327
|
+
Image& operator=(Image&& other) = default;
|
|
328
|
+
|
|
329
|
+
/// Update only some specific fields of a `Image`.
|
|
330
|
+
static Image update_fields() {
|
|
331
|
+
return Image();
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/// Clear all the fields of a `Image`.
|
|
335
|
+
static Image clear_fields();
|
|
336
|
+
|
|
337
|
+
/// The raw image data.
|
|
338
|
+
Image with_buffer(const rerun::components::ImageBuffer& _buffer) && {
|
|
339
|
+
buffer = ComponentBatch::from_loggable(_buffer, Descriptor_buffer).value_or_throw();
|
|
340
|
+
return std::move(*this);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/// This method makes it possible to pack multiple `buffer` in a single component batch.
|
|
344
|
+
///
|
|
345
|
+
/// This only makes sense when used in conjunction with `columns`. `with_buffer` should
|
|
346
|
+
/// be used when logging a single row's worth of data.
|
|
347
|
+
Image with_many_buffer(const Collection<rerun::components::ImageBuffer>& _buffer) && {
|
|
348
|
+
buffer = ComponentBatch::from_loggable(_buffer, Descriptor_buffer).value_or_throw();
|
|
349
|
+
return std::move(*this);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/// The format of the image.
|
|
353
|
+
Image with_format(const rerun::components::ImageFormat& _format) && {
|
|
354
|
+
format = ComponentBatch::from_loggable(_format, Descriptor_format).value_or_throw();
|
|
355
|
+
return std::move(*this);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/// This method makes it possible to pack multiple `format` in a single component batch.
|
|
359
|
+
///
|
|
360
|
+
/// This only makes sense when used in conjunction with `columns`. `with_format` should
|
|
361
|
+
/// be used when logging a single row's worth of data.
|
|
362
|
+
Image with_many_format(const Collection<rerun::components::ImageFormat>& _format) && {
|
|
363
|
+
format = ComponentBatch::from_loggable(_format, Descriptor_format).value_or_throw();
|
|
364
|
+
return std::move(*this);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/// Opacity of the image, useful for layering several images.
|
|
368
|
+
///
|
|
369
|
+
/// Defaults to 1.0 (fully opaque).
|
|
370
|
+
Image with_opacity(const rerun::components::Opacity& _opacity) && {
|
|
371
|
+
opacity = ComponentBatch::from_loggable(_opacity, Descriptor_opacity).value_or_throw();
|
|
372
|
+
return std::move(*this);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/// This method makes it possible to pack multiple `opacity` in a single component batch.
|
|
376
|
+
///
|
|
377
|
+
/// This only makes sense when used in conjunction with `columns`. `with_opacity` should
|
|
378
|
+
/// be used when logging a single row's worth of data.
|
|
379
|
+
Image with_many_opacity(const Collection<rerun::components::Opacity>& _opacity) && {
|
|
380
|
+
opacity = ComponentBatch::from_loggable(_opacity, Descriptor_opacity).value_or_throw();
|
|
381
|
+
return std::move(*this);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/// An optional floating point value that specifies the 2D drawing order.
|
|
385
|
+
///
|
|
386
|
+
/// Objects with higher values are drawn on top of those with lower values.
|
|
387
|
+
/// Defaults to `-10.0`.
|
|
388
|
+
Image with_draw_order(const rerun::components::DrawOrder& _draw_order) && {
|
|
389
|
+
draw_order =
|
|
390
|
+
ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
|
|
391
|
+
return std::move(*this);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/// This method makes it possible to pack multiple `draw_order` in a single component batch.
|
|
395
|
+
///
|
|
396
|
+
/// This only makes sense when used in conjunction with `columns`. `with_draw_order` should
|
|
397
|
+
/// be used when logging a single row's worth of data.
|
|
398
|
+
Image with_many_draw_order(const Collection<rerun::components::DrawOrder>& _draw_order) && {
|
|
399
|
+
draw_order =
|
|
400
|
+
ComponentBatch::from_loggable(_draw_order, Descriptor_draw_order).value_or_throw();
|
|
401
|
+
return std::move(*this);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/// Partitions the component data into multiple sub-batches.
|
|
405
|
+
///
|
|
406
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
407
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
408
|
+
///
|
|
409
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
410
|
+
///
|
|
411
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
412
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
413
|
+
|
|
414
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
415
|
+
///
|
|
416
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
417
|
+
/// where `n` is automatically guessed.
|
|
418
|
+
Collection<ComponentColumn> columns();
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
} // namespace rerun::archetypes
|
|
422
|
+
|
|
423
|
+
namespace rerun {
|
|
424
|
+
/// \private
|
|
425
|
+
template <typename T>
|
|
426
|
+
struct AsComponents;
|
|
427
|
+
|
|
428
|
+
/// \private
|
|
429
|
+
template <>
|
|
430
|
+
struct AsComponents<archetypes::Image> {
|
|
431
|
+
/// Serialize all set component batches.
|
|
432
|
+
static Result<Collection<ComponentBatch>> as_batches(const archetypes::Image& archetype);
|
|
433
|
+
};
|
|
434
|
+
} // namespace rerun
|