pymomentum-cpu 0.1.84.post0__cp313-cp313-macosx_14_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymomentum-cpu might be problematic. Click here for more details.
- include/axel/BoundingBox.h +59 -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 +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 +144 -0
- include/momentum/character_sequence_solver/sequence_solver_function.h +134 -0
- include/momentum/character_sequence_solver/state_sequence_error_function.h +109 -0
- include/momentum/character_sequence_solver/vertex_sequence_error_function.h +123 -0
- include/momentum/character_solver/aim_error_function.h +112 -0
- include/momentum/character_solver/collision_error_function.h +92 -0
- include/momentum/character_solver/collision_error_function_stateless.h +75 -0
- include/momentum/character_solver/constraint_error_function-inl.h +324 -0
- include/momentum/character_solver/constraint_error_function.h +248 -0
- include/momentum/character_solver/distance_error_function.h +77 -0
- include/momentum/character_solver/error_function_utils.h +60 -0
- include/momentum/character_solver/fixed_axis_error_function.h +139 -0
- include/momentum/character_solver/fwd.h +924 -0
- include/momentum/character_solver/gauss_newton_solver_qr.h +64 -0
- include/momentum/character_solver/limit_error_function.h +57 -0
- include/momentum/character_solver/model_parameters_error_function.h +64 -0
- include/momentum/character_solver/normal_error_function.h +73 -0
- include/momentum/character_solver/orientation_error_function.h +74 -0
- include/momentum/character_solver/plane_error_function.h +102 -0
- include/momentum/character_solver/point_triangle_vertex_error_function.h +141 -0
- include/momentum/character_solver/pose_prior_error_function.h +80 -0
- include/momentum/character_solver/position_error_function.h +75 -0
- include/momentum/character_solver/projection_error_function.h +93 -0
- include/momentum/character_solver/simd_collision_error_function.h +99 -0
- include/momentum/character_solver/simd_normal_error_function.h +157 -0
- include/momentum/character_solver/simd_plane_error_function.h +164 -0
- include/momentum/character_solver/simd_position_error_function.h +165 -0
- include/momentum/character_solver/skeleton_error_function.h +151 -0
- include/momentum/character_solver/skeleton_solver_function.h +94 -0
- include/momentum/character_solver/skinned_locator_error_function.h +166 -0
- include/momentum/character_solver/skinned_locator_triangle_error_function.h +146 -0
- include/momentum/character_solver/skinning_weight_iterator.h +80 -0
- include/momentum/character_solver/state_error_function.h +94 -0
- include/momentum/character_solver/transform_pose.h +80 -0
- include/momentum/character_solver/trust_region_qr.h +80 -0
- include/momentum/character_solver/vertex_error_function.h +155 -0
- include/momentum/character_solver/vertex_projection_error_function.h +117 -0
- include/momentum/character_solver/vertex_vertex_distance_error_function.h +147 -0
- include/momentum/common/aligned.h +155 -0
- include/momentum/common/checks.h +27 -0
- include/momentum/common/exception.h +70 -0
- include/momentum/common/filesystem.h +20 -0
- include/momentum/common/fwd.h +27 -0
- include/momentum/common/log.h +173 -0
- include/momentum/common/log_channel.h +17 -0
- include/momentum/common/memory.h +71 -0
- include/momentum/common/profile.h +79 -0
- include/momentum/common/progress_bar.h +37 -0
- include/momentum/common/string.h +52 -0
- include/momentum/diff_ik/ceres_utility.h +73 -0
- include/momentum/diff_ik/fully_differentiable_body_ik.h +58 -0
- include/momentum/diff_ik/fully_differentiable_distance_error_function.h +69 -0
- include/momentum/diff_ik/fully_differentiable_motion_error_function.h +46 -0
- include/momentum/diff_ik/fully_differentiable_orientation_error_function.h +114 -0
- include/momentum/diff_ik/fully_differentiable_pose_prior_error_function.h +76 -0
- include/momentum/diff_ik/fully_differentiable_position_error_function.h +138 -0
- include/momentum/diff_ik/fully_differentiable_projection_error_function.h +65 -0
- include/momentum/diff_ik/fully_differentiable_skeleton_error_function.h +160 -0
- include/momentum/diff_ik/fully_differentiable_state_error_function.h +54 -0
- include/momentum/diff_ik/fwd.h +385 -0
- include/momentum/diff_ik/union_error_function.h +67 -0
- include/momentum/gui/rerun/eigen_adapters.h +70 -0
- include/momentum/gui/rerun/logger.h +102 -0
- include/momentum/gui/rerun/logging_redirect.h +27 -0
- include/momentum/io/character_io.h +56 -0
- include/momentum/io/common/gsl_utils.h +50 -0
- include/momentum/io/common/stream_utils.h +65 -0
- include/momentum/io/fbx/fbx_io.h +161 -0
- include/momentum/io/fbx/fbx_memory_stream.h +66 -0
- include/momentum/io/fbx/openfbx_loader.h +62 -0
- include/momentum/io/fbx/polygon_data.h +60 -0
- include/momentum/io/gltf/gltf_builder.h +132 -0
- include/momentum/io/gltf/gltf_file_format.h +19 -0
- include/momentum/io/gltf/gltf_io.h +148 -0
- include/momentum/io/gltf/utils/accessor_utils.h +299 -0
- include/momentum/io/gltf/utils/coordinate_utils.h +60 -0
- include/momentum/io/gltf/utils/json_utils.h +102 -0
- include/momentum/io/legacy_json/legacy_json_io.h +70 -0
- include/momentum/io/marker/c3d_io.h +30 -0
- include/momentum/io/marker/conversions.h +57 -0
- include/momentum/io/marker/coordinate_system.h +30 -0
- include/momentum/io/marker/marker_io.h +56 -0
- include/momentum/io/marker/trc_io.h +27 -0
- include/momentum/io/motion/mmo_io.h +97 -0
- include/momentum/io/shape/blend_shape_io.h +70 -0
- include/momentum/io/shape/pose_shape_io.h +21 -0
- include/momentum/io/skeleton/locator_io.h +41 -0
- include/momentum/io/skeleton/mppca_io.h +26 -0
- include/momentum/io/skeleton/parameter_limits_io.h +25 -0
- include/momentum/io/skeleton/parameter_transform_io.h +41 -0
- include/momentum/io/skeleton/parameters_io.h +20 -0
- include/momentum/io/urdf/urdf_io.h +26 -0
- include/momentum/io/usd/usd_io.h +36 -0
- include/momentum/marker_tracking/app_utils.h +62 -0
- include/momentum/marker_tracking/marker_tracker.h +213 -0
- include/momentum/marker_tracking/process_markers.h +58 -0
- include/momentum/marker_tracking/tracker_utils.h +90 -0
- include/momentum/math/constants.h +82 -0
- include/momentum/math/covariance_matrix.h +84 -0
- include/momentum/math/fmt_eigen.h +23 -0
- include/momentum/math/fwd.h +132 -0
- include/momentum/math/generalized_loss.h +61 -0
- include/momentum/math/intersection.h +32 -0
- include/momentum/math/mesh.h +84 -0
- include/momentum/math/mppca.h +67 -0
- include/momentum/math/online_householder_qr.h +516 -0
- include/momentum/math/random-inl.h +404 -0
- include/momentum/math/random.h +310 -0
- include/momentum/math/simd_generalized_loss.h +40 -0
- include/momentum/math/transform.h +229 -0
- include/momentum/math/types.h +461 -0
- include/momentum/math/utility.h +282 -0
- include/momentum/rasterizer/camera.h +453 -0
- include/momentum/rasterizer/fwd.h +102 -0
- include/momentum/rasterizer/geometry.h +83 -0
- include/momentum/rasterizer/image.h +18 -0
- include/momentum/rasterizer/rasterizer.h +583 -0
- include/momentum/rasterizer/tensor.h +140 -0
- include/momentum/rasterizer/utility.h +268 -0
- include/momentum/simd/simd.h +221 -0
- include/momentum/solver/fwd.h +131 -0
- include/momentum/solver/gauss_newton_solver.h +136 -0
- include/momentum/solver/gradient_descent_solver.h +65 -0
- include/momentum/solver/solver.h +155 -0
- include/momentum/solver/solver_function.h +126 -0
- include/momentum/solver/subset_gauss_newton_solver.h +109 -0
- include/rerun/archetypes/annotation_context.hpp +157 -0
- include/rerun/archetypes/arrows2d.hpp +271 -0
- include/rerun/archetypes/arrows3d.hpp +257 -0
- include/rerun/archetypes/asset3d.hpp +262 -0
- include/rerun/archetypes/asset_video.hpp +275 -0
- include/rerun/archetypes/bar_chart.hpp +261 -0
- include/rerun/archetypes/boxes2d.hpp +293 -0
- include/rerun/archetypes/boxes3d.hpp +369 -0
- include/rerun/archetypes/capsules3d.hpp +333 -0
- include/rerun/archetypes/clear.hpp +180 -0
- include/rerun/archetypes/depth_image.hpp +425 -0
- include/rerun/archetypes/ellipsoids3d.hpp +384 -0
- include/rerun/archetypes/encoded_image.hpp +250 -0
- include/rerun/archetypes/geo_line_strings.hpp +166 -0
- include/rerun/archetypes/geo_points.hpp +177 -0
- include/rerun/archetypes/graph_edges.hpp +152 -0
- include/rerun/archetypes/graph_nodes.hpp +206 -0
- include/rerun/archetypes/image.hpp +434 -0
- include/rerun/archetypes/instance_poses3d.hpp +221 -0
- include/rerun/archetypes/line_strips2d.hpp +289 -0
- include/rerun/archetypes/line_strips3d.hpp +270 -0
- include/rerun/archetypes/mesh3d.hpp +387 -0
- include/rerun/archetypes/pinhole.hpp +385 -0
- include/rerun/archetypes/points2d.hpp +333 -0
- include/rerun/archetypes/points3d.hpp +369 -0
- include/rerun/archetypes/recording_properties.hpp +132 -0
- include/rerun/archetypes/scalar.hpp +170 -0
- include/rerun/archetypes/scalars.hpp +153 -0
- include/rerun/archetypes/segmentation_image.hpp +305 -0
- include/rerun/archetypes/series_line.hpp +274 -0
- include/rerun/archetypes/series_lines.hpp +271 -0
- include/rerun/archetypes/series_point.hpp +265 -0
- include/rerun/archetypes/series_points.hpp +251 -0
- include/rerun/archetypes/tensor.hpp +213 -0
- include/rerun/archetypes/text_document.hpp +200 -0
- include/rerun/archetypes/text_log.hpp +211 -0
- include/rerun/archetypes/transform3d.hpp +925 -0
- include/rerun/archetypes/video_frame_reference.hpp +295 -0
- include/rerun/archetypes/view_coordinates.hpp +393 -0
- include/rerun/archetypes.hpp +43 -0
- include/rerun/arrow_utils.hpp +32 -0
- include/rerun/as_components.hpp +90 -0
- include/rerun/blueprint/archetypes/background.hpp +113 -0
- include/rerun/blueprint/archetypes/container_blueprint.hpp +259 -0
- include/rerun/blueprint/archetypes/dataframe_query.hpp +178 -0
- include/rerun/blueprint/archetypes/entity_behavior.hpp +130 -0
- include/rerun/blueprint/archetypes/force_center.hpp +115 -0
- include/rerun/blueprint/archetypes/force_collision_radius.hpp +141 -0
- include/rerun/blueprint/archetypes/force_link.hpp +136 -0
- include/rerun/blueprint/archetypes/force_many_body.hpp +124 -0
- include/rerun/blueprint/archetypes/force_position.hpp +132 -0
- include/rerun/blueprint/archetypes/line_grid3d.hpp +178 -0
- include/rerun/blueprint/archetypes/map_background.hpp +104 -0
- include/rerun/blueprint/archetypes/map_zoom.hpp +103 -0
- include/rerun/blueprint/archetypes/near_clip_plane.hpp +109 -0
- include/rerun/blueprint/archetypes/panel_blueprint.hpp +95 -0
- include/rerun/blueprint/archetypes/plot_legend.hpp +118 -0
- include/rerun/blueprint/archetypes/scalar_axis.hpp +116 -0
- include/rerun/blueprint/archetypes/tensor_scalar_mapping.hpp +146 -0
- include/rerun/blueprint/archetypes/tensor_slice_selection.hpp +167 -0
- include/rerun/blueprint/archetypes/tensor_view_fit.hpp +95 -0
- include/rerun/blueprint/archetypes/view_blueprint.hpp +170 -0
- include/rerun/blueprint/archetypes/view_contents.hpp +142 -0
- include/rerun/blueprint/archetypes/viewport_blueprint.hpp +200 -0
- include/rerun/blueprint/archetypes/visible_time_ranges.hpp +116 -0
- include/rerun/blueprint/archetypes/visual_bounds2d.hpp +109 -0
- include/rerun/blueprint/archetypes/visualizer_overrides.hpp +113 -0
- include/rerun/blueprint/archetypes.hpp +29 -0
- include/rerun/blueprint/components/active_tab.hpp +82 -0
- include/rerun/blueprint/components/apply_latest_at.hpp +79 -0
- include/rerun/blueprint/components/auto_layout.hpp +77 -0
- include/rerun/blueprint/components/auto_views.hpp +77 -0
- include/rerun/blueprint/components/background_kind.hpp +66 -0
- include/rerun/blueprint/components/column_share.hpp +78 -0
- include/rerun/blueprint/components/component_column_selector.hpp +81 -0
- include/rerun/blueprint/components/container_kind.hpp +65 -0
- include/rerun/blueprint/components/corner2d.hpp +64 -0
- include/rerun/blueprint/components/enabled.hpp +77 -0
- include/rerun/blueprint/components/filter_by_range.hpp +74 -0
- include/rerun/blueprint/components/filter_is_not_null.hpp +77 -0
- include/rerun/blueprint/components/force_distance.hpp +82 -0
- include/rerun/blueprint/components/force_iterations.hpp +82 -0
- include/rerun/blueprint/components/force_strength.hpp +82 -0
- include/rerun/blueprint/components/grid_columns.hpp +78 -0
- include/rerun/blueprint/components/grid_spacing.hpp +78 -0
- include/rerun/blueprint/components/included_content.hpp +86 -0
- include/rerun/blueprint/components/lock_range_during_zoom.hpp +82 -0
- include/rerun/blueprint/components/map_provider.hpp +64 -0
- include/rerun/blueprint/components/near_clip_plane.hpp +82 -0
- include/rerun/blueprint/components/panel_state.hpp +61 -0
- include/rerun/blueprint/components/query_expression.hpp +89 -0
- include/rerun/blueprint/components/root_container.hpp +77 -0
- include/rerun/blueprint/components/row_share.hpp +78 -0
- include/rerun/blueprint/components/selected_columns.hpp +76 -0
- include/rerun/blueprint/components/tensor_dimension_index_slider.hpp +90 -0
- include/rerun/blueprint/components/timeline_name.hpp +76 -0
- include/rerun/blueprint/components/view_class.hpp +76 -0
- include/rerun/blueprint/components/view_fit.hpp +61 -0
- include/rerun/blueprint/components/view_maximized.hpp +79 -0
- include/rerun/blueprint/components/view_origin.hpp +81 -0
- include/rerun/blueprint/components/viewer_recommendation_hash.hpp +82 -0
- include/rerun/blueprint/components/visible_time_range.hpp +77 -0
- include/rerun/blueprint/components/visual_bounds2d.hpp +74 -0
- include/rerun/blueprint/components/visualizer_override.hpp +86 -0
- include/rerun/blueprint/components/zoom_level.hpp +78 -0
- include/rerun/blueprint/components.hpp +41 -0
- include/rerun/blueprint/datatypes/component_column_selector.hpp +61 -0
- include/rerun/blueprint/datatypes/filter_by_range.hpp +59 -0
- include/rerun/blueprint/datatypes/filter_is_not_null.hpp +61 -0
- include/rerun/blueprint/datatypes/selected_columns.hpp +62 -0
- include/rerun/blueprint/datatypes/tensor_dimension_index_slider.hpp +63 -0
- include/rerun/blueprint/datatypes.hpp +9 -0
- include/rerun/c/arrow_c_data_interface.h +111 -0
- include/rerun/c/compiler_utils.h +10 -0
- include/rerun/c/rerun.h +627 -0
- include/rerun/c/sdk_info.h +28 -0
- include/rerun/collection.hpp +496 -0
- include/rerun/collection_adapter.hpp +43 -0
- include/rerun/collection_adapter_builtins.hpp +138 -0
- include/rerun/compiler_utils.hpp +61 -0
- include/rerun/component_batch.hpp +163 -0
- include/rerun/component_column.hpp +111 -0
- include/rerun/component_descriptor.hpp +142 -0
- include/rerun/component_type.hpp +35 -0
- include/rerun/components/aggregation_policy.hpp +76 -0
- include/rerun/components/albedo_factor.hpp +74 -0
- include/rerun/components/annotation_context.hpp +102 -0
- include/rerun/components/axis_length.hpp +74 -0
- include/rerun/components/blob.hpp +73 -0
- include/rerun/components/class_id.hpp +71 -0
- include/rerun/components/clear_is_recursive.hpp +75 -0
- include/rerun/components/color.hpp +99 -0
- include/rerun/components/colormap.hpp +99 -0
- include/rerun/components/depth_meter.hpp +84 -0
- include/rerun/components/draw_order.hpp +79 -0
- include/rerun/components/entity_path.hpp +83 -0
- include/rerun/components/fill_mode.hpp +72 -0
- include/rerun/components/fill_ratio.hpp +79 -0
- include/rerun/components/gamma_correction.hpp +80 -0
- include/rerun/components/geo_line_string.hpp +63 -0
- include/rerun/components/graph_edge.hpp +75 -0
- include/rerun/components/graph_node.hpp +79 -0
- include/rerun/components/graph_type.hpp +57 -0
- include/rerun/components/half_size2d.hpp +91 -0
- include/rerun/components/half_size3d.hpp +95 -0
- include/rerun/components/image_buffer.hpp +86 -0
- include/rerun/components/image_format.hpp +84 -0
- include/rerun/components/image_plane_distance.hpp +77 -0
- include/rerun/components/interactive.hpp +76 -0
- include/rerun/components/keypoint_id.hpp +74 -0
- include/rerun/components/lat_lon.hpp +89 -0
- include/rerun/components/length.hpp +77 -0
- include/rerun/components/line_strip2d.hpp +73 -0
- include/rerun/components/line_strip3d.hpp +73 -0
- include/rerun/components/magnification_filter.hpp +63 -0
- include/rerun/components/marker_shape.hpp +82 -0
- include/rerun/components/marker_size.hpp +74 -0
- include/rerun/components/media_type.hpp +157 -0
- include/rerun/components/name.hpp +83 -0
- include/rerun/components/opacity.hpp +77 -0
- include/rerun/components/pinhole_projection.hpp +94 -0
- include/rerun/components/plane3d.hpp +75 -0
- include/rerun/components/pose_rotation_axis_angle.hpp +73 -0
- include/rerun/components/pose_rotation_quat.hpp +71 -0
- include/rerun/components/pose_scale3d.hpp +102 -0
- include/rerun/components/pose_transform_mat3x3.hpp +87 -0
- include/rerun/components/pose_translation3d.hpp +96 -0
- include/rerun/components/position2d.hpp +86 -0
- include/rerun/components/position3d.hpp +90 -0
- include/rerun/components/radius.hpp +98 -0
- include/rerun/components/range1d.hpp +75 -0
- include/rerun/components/resolution.hpp +88 -0
- include/rerun/components/rotation_axis_angle.hpp +72 -0
- include/rerun/components/rotation_quat.hpp +71 -0
- include/rerun/components/scalar.hpp +76 -0
- include/rerun/components/scale3d.hpp +102 -0
- include/rerun/components/series_visible.hpp +76 -0
- include/rerun/components/show_labels.hpp +79 -0
- include/rerun/components/stroke_width.hpp +74 -0
- include/rerun/components/tensor_data.hpp +94 -0
- include/rerun/components/tensor_dimension_index_selection.hpp +77 -0
- include/rerun/components/tensor_height_dimension.hpp +71 -0
- include/rerun/components/tensor_width_dimension.hpp +71 -0
- include/rerun/components/texcoord2d.hpp +101 -0
- include/rerun/components/text.hpp +83 -0
- include/rerun/components/text_log_level.hpp +110 -0
- include/rerun/components/timestamp.hpp +76 -0
- include/rerun/components/transform_mat3x3.hpp +92 -0
- include/rerun/components/transform_relation.hpp +66 -0
- include/rerun/components/translation3d.hpp +96 -0
- include/rerun/components/triangle_indices.hpp +85 -0
- include/rerun/components/value_range.hpp +78 -0
- include/rerun/components/vector2d.hpp +92 -0
- include/rerun/components/vector3d.hpp +96 -0
- include/rerun/components/video_timestamp.hpp +120 -0
- include/rerun/components/view_coordinates.hpp +346 -0
- include/rerun/components/visible.hpp +74 -0
- include/rerun/components.hpp +77 -0
- include/rerun/config.hpp +52 -0
- include/rerun/datatypes/angle.hpp +76 -0
- include/rerun/datatypes/annotation_info.hpp +76 -0
- include/rerun/datatypes/blob.hpp +67 -0
- include/rerun/datatypes/bool.hpp +57 -0
- include/rerun/datatypes/channel_datatype.hpp +87 -0
- include/rerun/datatypes/class_description.hpp +92 -0
- include/rerun/datatypes/class_description_map_elem.hpp +69 -0
- include/rerun/datatypes/class_id.hpp +62 -0
- include/rerun/datatypes/color_model.hpp +68 -0
- include/rerun/datatypes/dvec2d.hpp +76 -0
- include/rerun/datatypes/entity_path.hpp +60 -0
- include/rerun/datatypes/float32.hpp +62 -0
- include/rerun/datatypes/float64.hpp +62 -0
- include/rerun/datatypes/image_format.hpp +107 -0
- include/rerun/datatypes/keypoint_id.hpp +63 -0
- include/rerun/datatypes/keypoint_pair.hpp +65 -0
- include/rerun/datatypes/mat3x3.hpp +105 -0
- include/rerun/datatypes/mat4x4.hpp +119 -0
- include/rerun/datatypes/pixel_format.hpp +142 -0
- include/rerun/datatypes/plane3d.hpp +60 -0
- include/rerun/datatypes/quaternion.hpp +110 -0
- include/rerun/datatypes/range1d.hpp +59 -0
- include/rerun/datatypes/range2d.hpp +55 -0
- include/rerun/datatypes/rgba32.hpp +94 -0
- include/rerun/datatypes/rotation_axis_angle.hpp +67 -0
- include/rerun/datatypes/tensor_buffer.hpp +529 -0
- include/rerun/datatypes/tensor_data.hpp +100 -0
- include/rerun/datatypes/tensor_dimension_index_selection.hpp +58 -0
- include/rerun/datatypes/tensor_dimension_selection.hpp +56 -0
- include/rerun/datatypes/time_int.hpp +62 -0
- include/rerun/datatypes/time_range.hpp +55 -0
- include/rerun/datatypes/time_range_boundary.hpp +175 -0
- include/rerun/datatypes/uint16.hpp +62 -0
- include/rerun/datatypes/uint32.hpp +62 -0
- include/rerun/datatypes/uint64.hpp +62 -0
- include/rerun/datatypes/utf8.hpp +76 -0
- include/rerun/datatypes/utf8pair.hpp +62 -0
- include/rerun/datatypes/uuid.hpp +60 -0
- include/rerun/datatypes/uvec2d.hpp +76 -0
- include/rerun/datatypes/uvec3d.hpp +80 -0
- include/rerun/datatypes/uvec4d.hpp +59 -0
- include/rerun/datatypes/vec2d.hpp +76 -0
- include/rerun/datatypes/vec3d.hpp +80 -0
- include/rerun/datatypes/vec4d.hpp +84 -0
- include/rerun/datatypes/video_timestamp.hpp +67 -0
- include/rerun/datatypes/view_coordinates.hpp +87 -0
- include/rerun/datatypes/visible_time_range.hpp +57 -0
- include/rerun/datatypes.hpp +51 -0
- include/rerun/demo_utils.hpp +75 -0
- include/rerun/entity_path.hpp +20 -0
- include/rerun/error.hpp +180 -0
- include/rerun/half.hpp +10 -0
- include/rerun/image_utils.hpp +187 -0
- include/rerun/indicator_component.hpp +59 -0
- include/rerun/loggable.hpp +54 -0
- include/rerun/recording_stream.hpp +960 -0
- include/rerun/rerun_sdk_export.hpp +25 -0
- include/rerun/result.hpp +86 -0
- include/rerun/rotation3d.hpp +33 -0
- include/rerun/sdk_info.hpp +20 -0
- include/rerun/spawn.hpp +21 -0
- include/rerun/spawn_options.hpp +57 -0
- include/rerun/string_utils.hpp +16 -0
- include/rerun/third_party/cxxopts.hpp +2198 -0
- include/rerun/time_column.hpp +288 -0
- include/rerun/timeline.hpp +38 -0
- include/rerun/type_traits.hpp +40 -0
- include/rerun.hpp +86 -0
- lib/cmake/axel/axel-config.cmake +45 -0
- lib/cmake/axel/axelTargets-release.cmake +19 -0
- lib/cmake/axel/axelTargets.cmake +108 -0
- lib/cmake/momentum/Findre2.cmake +52 -0
- lib/cmake/momentum/momentum-config.cmake +67 -0
- lib/cmake/momentum/momentumTargets-release.cmake +259 -0
- lib/cmake/momentum/momentumTargets.cmake +377 -0
- lib/cmake/rerun_sdk/rerun_sdkConfig.cmake +70 -0
- lib/cmake/rerun_sdk/rerun_sdkConfigVersion.cmake +83 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets-release.cmake +19 -0
- lib/cmake/rerun_sdk/rerun_sdkTargets.cmake +108 -0
- lib/libarrow.a +0 -0
- lib/libarrow_bundled_dependencies.a +0 -0
- lib/libaxel.a +0 -0
- lib/libmomentum_app_utils.a +0 -0
- lib/libmomentum_character.a +0 -0
- lib/libmomentum_character_sequence_solver.a +0 -0
- lib/libmomentum_character_solver.a +0 -0
- lib/libmomentum_common.a +0 -0
- lib/libmomentum_diff_ik.a +0 -0
- lib/libmomentum_io.a +0 -0
- lib/libmomentum_io_common.a +0 -0
- lib/libmomentum_io_fbx.a +0 -0
- lib/libmomentum_io_gltf.a +0 -0
- lib/libmomentum_io_legacy_json.a +0 -0
- lib/libmomentum_io_marker.a +0 -0
- lib/libmomentum_io_motion.a +0 -0
- lib/libmomentum_io_shape.a +0 -0
- lib/libmomentum_io_skeleton.a +0 -0
- lib/libmomentum_io_urdf.a +0 -0
- lib/libmomentum_marker_tracker.a +0 -0
- lib/libmomentum_math.a +0 -0
- lib/libmomentum_online_qr.a +0 -0
- lib/libmomentum_process_markers.a +0 -0
- lib/libmomentum_rerun.a +0 -0
- lib/libmomentum_simd_constraints.a +0 -0
- lib/libmomentum_simd_generalized_loss.a +0 -0
- lib/libmomentum_skeleton.a +0 -0
- lib/libmomentum_solver.a +0 -0
- lib/librerun_c__macos_arm64.a +0 -0
- lib/librerun_sdk.a +0 -0
- pymomentum/axel.cpython-313-darwin.so +0 -0
- pymomentum/backend/__init__.py +16 -0
- pymomentum/backend/skel_state_backend.py +631 -0
- pymomentum/backend/trs_backend.py +889 -0
- pymomentum/backend/utils.py +224 -0
- pymomentum/geometry.cpython-313-darwin.so +0 -0
- pymomentum/marker_tracking.cpython-313-darwin.so +0 -0
- pymomentum/quaternion.py +740 -0
- pymomentum/skel_state.py +514 -0
- pymomentum/solver.cpython-313-darwin.so +0 -0
- pymomentum/solver2.cpython-313-darwin.so +0 -0
- pymomentum/torch/character.py +863 -0
- pymomentum/torch/parameter_limits.py +494 -0
- pymomentum/torch/utility.py +20 -0
- pymomentum/trs.py +535 -0
- pymomentum_cpu-0.1.84.post0.dist-info/METADATA +126 -0
- pymomentum_cpu-0.1.84.post0.dist-info/RECORD +512 -0
- pymomentum_cpu-0.1.84.post0.dist-info/WHEEL +5 -0
- pymomentum_cpu-0.1.84.post0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,270 @@
|
|
|
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/line_strips3d.fbs".
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "../collection.hpp"
|
|
7
|
+
#include "../component_batch.hpp"
|
|
8
|
+
#include "../component_column.hpp"
|
|
9
|
+
#include "../components/class_id.hpp"
|
|
10
|
+
#include "../components/color.hpp"
|
|
11
|
+
#include "../components/line_strip3d.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**: 3D line strips with positions and optional colors, radii, labels, etc.
|
|
25
|
+
///
|
|
26
|
+
/// ## Examples
|
|
27
|
+
///
|
|
28
|
+
/// ### Many strips
|
|
29
|
+
/// 
|
|
30
|
+
///
|
|
31
|
+
/// ```cpp
|
|
32
|
+
/// #include <rerun.hpp>
|
|
33
|
+
///
|
|
34
|
+
/// #include <vector>
|
|
35
|
+
///
|
|
36
|
+
/// int main() {
|
|
37
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_line_strip3d_batch");
|
|
38
|
+
/// rec.spawn().exit_on_failure();
|
|
39
|
+
///
|
|
40
|
+
/// rerun::Collection<rerun::Vec3D> strip1 = {
|
|
41
|
+
/// {0.f, 0.f, 2.f},
|
|
42
|
+
/// {1.f, 0.f, 2.f},
|
|
43
|
+
/// {1.f, 1.f, 2.f},
|
|
44
|
+
/// {0.f, 1.f, 2.f},
|
|
45
|
+
/// };
|
|
46
|
+
/// rerun::Collection<rerun::Vec3D> strip2 = {
|
|
47
|
+
/// {0.f, 0.f, 0.f},
|
|
48
|
+
/// {0.f, 0.f, 1.f},
|
|
49
|
+
/// {1.f, 0.f, 0.f},
|
|
50
|
+
/// {1.f, 0.f, 1.f},
|
|
51
|
+
/// {1.f, 1.f, 0.f},
|
|
52
|
+
/// {1.f, 1.f, 1.f},
|
|
53
|
+
/// {0.f, 1.f, 0.f},
|
|
54
|
+
/// {0.f, 1.f, 1.f},
|
|
55
|
+
/// };
|
|
56
|
+
/// rec.log(
|
|
57
|
+
/// "strips",
|
|
58
|
+
/// rerun::LineStrips3D({strip1, strip2})
|
|
59
|
+
/// .with_colors({0xFF0000FF, 0x00FF00FF})
|
|
60
|
+
/// .with_radii({0.025f, 0.005f})
|
|
61
|
+
/// .with_labels({"one strip here", "and one strip there"})
|
|
62
|
+
/// );
|
|
63
|
+
/// }
|
|
64
|
+
/// ```
|
|
65
|
+
///
|
|
66
|
+
/// ### Lines with scene & UI radius each
|
|
67
|
+
/// 
|
|
68
|
+
///
|
|
69
|
+
/// ```cpp
|
|
70
|
+
/// #include <rerun.hpp>
|
|
71
|
+
///
|
|
72
|
+
/// int main() {
|
|
73
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_line_strip3d_ui_radius");
|
|
74
|
+
/// rec.spawn().exit_on_failure();
|
|
75
|
+
///
|
|
76
|
+
/// // A blue line with a scene unit radii of 0.01.
|
|
77
|
+
/// rerun::LineStrip3D linestrip_blue(
|
|
78
|
+
/// {{0.f, 0.f, 0.f}, {0.f, 0.f, 1.f}, {1.f, 0.f, 0.f}, {1.f, 0.f, 1.f}}
|
|
79
|
+
/// );
|
|
80
|
+
/// rec.log(
|
|
81
|
+
/// "scene_unit_line",
|
|
82
|
+
/// rerun::LineStrips3D(linestrip_blue)
|
|
83
|
+
/// // By default, radii are interpreted as world-space units.
|
|
84
|
+
/// .with_radii(0.01f)
|
|
85
|
+
/// .with_colors(rerun::Color(0, 0, 255))
|
|
86
|
+
/// );
|
|
87
|
+
///
|
|
88
|
+
/// // A red line with a ui point radii of 5.
|
|
89
|
+
/// // UI points are independent of zooming in Views, but are sensitive to the application UI scaling.
|
|
90
|
+
/// // For 100 % ui scaling, UI points are equal to pixels.
|
|
91
|
+
/// rerun::LineStrip3D linestrip_red(
|
|
92
|
+
/// {{3.f, 0.f, 0.f}, {3.f, 0.f, 1.f}, {4.f, 0.f, 0.f}, {4.f, 0.f, 1.f}}
|
|
93
|
+
/// );
|
|
94
|
+
/// rec.log(
|
|
95
|
+
/// "ui_points_line",
|
|
96
|
+
/// rerun::LineStrips3D(linestrip_red)
|
|
97
|
+
/// // By default, radii are interpreted as world-space units.
|
|
98
|
+
/// .with_radii(rerun::Radius::ui_points(5.0f))
|
|
99
|
+
/// .with_colors(rerun::Color(255, 0, 0))
|
|
100
|
+
/// );
|
|
101
|
+
/// }
|
|
102
|
+
/// ```
|
|
103
|
+
struct LineStrips3D {
|
|
104
|
+
/// All the actual 3D line strips that make up the batch.
|
|
105
|
+
std::optional<ComponentBatch> strips;
|
|
106
|
+
|
|
107
|
+
/// Optional radii for the line strips.
|
|
108
|
+
std::optional<ComponentBatch> radii;
|
|
109
|
+
|
|
110
|
+
/// Optional colors for the line strips.
|
|
111
|
+
std::optional<ComponentBatch> colors;
|
|
112
|
+
|
|
113
|
+
/// Optional text labels for the line strips.
|
|
114
|
+
///
|
|
115
|
+
/// If there's a single label present, it will be placed at the center of the entity.
|
|
116
|
+
/// Otherwise, each instance will have its own label.
|
|
117
|
+
std::optional<ComponentBatch> labels;
|
|
118
|
+
|
|
119
|
+
/// Optional choice of whether the text labels should be shown by default.
|
|
120
|
+
std::optional<ComponentBatch> show_labels;
|
|
121
|
+
|
|
122
|
+
/// Optional `components::ClassId`s for the lines.
|
|
123
|
+
///
|
|
124
|
+
/// The `components::ClassId` provides colors and labels if not specified explicitly.
|
|
125
|
+
std::optional<ComponentBatch> class_ids;
|
|
126
|
+
|
|
127
|
+
public:
|
|
128
|
+
static constexpr const char IndicatorComponentName[] =
|
|
129
|
+
"rerun.components.LineStrips3DIndicator";
|
|
130
|
+
|
|
131
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
132
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
133
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
134
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.LineStrips3D";
|
|
135
|
+
|
|
136
|
+
/// `ComponentDescriptor` for the `strips` field.
|
|
137
|
+
static constexpr auto Descriptor_strips = ComponentDescriptor(
|
|
138
|
+
ArchetypeName, "strips",
|
|
139
|
+
Loggable<rerun::components::LineStrip3D>::Descriptor.component_name
|
|
140
|
+
);
|
|
141
|
+
/// `ComponentDescriptor` for the `radii` field.
|
|
142
|
+
static constexpr auto Descriptor_radii = ComponentDescriptor(
|
|
143
|
+
ArchetypeName, "radii", Loggable<rerun::components::Radius>::Descriptor.component_name
|
|
144
|
+
);
|
|
145
|
+
/// `ComponentDescriptor` for the `colors` field.
|
|
146
|
+
static constexpr auto Descriptor_colors = ComponentDescriptor(
|
|
147
|
+
ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
|
|
148
|
+
);
|
|
149
|
+
/// `ComponentDescriptor` for the `labels` field.
|
|
150
|
+
static constexpr auto Descriptor_labels = ComponentDescriptor(
|
|
151
|
+
ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
|
|
152
|
+
);
|
|
153
|
+
/// `ComponentDescriptor` for the `show_labels` field.
|
|
154
|
+
static constexpr auto Descriptor_show_labels = ComponentDescriptor(
|
|
155
|
+
ArchetypeName, "show_labels",
|
|
156
|
+
Loggable<rerun::components::ShowLabels>::Descriptor.component_name
|
|
157
|
+
);
|
|
158
|
+
/// `ComponentDescriptor` for the `class_ids` field.
|
|
159
|
+
static constexpr auto Descriptor_class_ids = ComponentDescriptor(
|
|
160
|
+
ArchetypeName, "class_ids",
|
|
161
|
+
Loggable<rerun::components::ClassId>::Descriptor.component_name
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
public:
|
|
165
|
+
LineStrips3D() = default;
|
|
166
|
+
LineStrips3D(LineStrips3D&& other) = default;
|
|
167
|
+
LineStrips3D(const LineStrips3D& other) = default;
|
|
168
|
+
LineStrips3D& operator=(const LineStrips3D& other) = default;
|
|
169
|
+
LineStrips3D& operator=(LineStrips3D&& other) = default;
|
|
170
|
+
|
|
171
|
+
explicit LineStrips3D(Collection<rerun::components::LineStrip3D> _strips)
|
|
172
|
+
: strips(ComponentBatch::from_loggable(std::move(_strips), Descriptor_strips)
|
|
173
|
+
.value_or_throw()) {}
|
|
174
|
+
|
|
175
|
+
/// Update only some specific fields of a `LineStrips3D`.
|
|
176
|
+
static LineStrips3D update_fields() {
|
|
177
|
+
return LineStrips3D();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/// Clear all the fields of a `LineStrips3D`.
|
|
181
|
+
static LineStrips3D clear_fields();
|
|
182
|
+
|
|
183
|
+
/// All the actual 3D line strips that make up the batch.
|
|
184
|
+
LineStrips3D with_strips(const Collection<rerun::components::LineStrip3D>& _strips) && {
|
|
185
|
+
strips = ComponentBatch::from_loggable(_strips, Descriptor_strips).value_or_throw();
|
|
186
|
+
return std::move(*this);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/// Optional radii for the line strips.
|
|
190
|
+
LineStrips3D with_radii(const Collection<rerun::components::Radius>& _radii) && {
|
|
191
|
+
radii = ComponentBatch::from_loggable(_radii, Descriptor_radii).value_or_throw();
|
|
192
|
+
return std::move(*this);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/// Optional colors for the line strips.
|
|
196
|
+
LineStrips3D with_colors(const Collection<rerun::components::Color>& _colors) && {
|
|
197
|
+
colors = ComponentBatch::from_loggable(_colors, Descriptor_colors).value_or_throw();
|
|
198
|
+
return std::move(*this);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/// Optional text labels for the line strips.
|
|
202
|
+
///
|
|
203
|
+
/// If there's a single label present, it will be placed at the center of the entity.
|
|
204
|
+
/// Otherwise, each instance will have its own label.
|
|
205
|
+
LineStrips3D with_labels(const Collection<rerun::components::Text>& _labels) && {
|
|
206
|
+
labels = ComponentBatch::from_loggable(_labels, Descriptor_labels).value_or_throw();
|
|
207
|
+
return std::move(*this);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/// Optional choice of whether the text labels should be shown by default.
|
|
211
|
+
LineStrips3D with_show_labels(const rerun::components::ShowLabels& _show_labels) && {
|
|
212
|
+
show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
|
|
213
|
+
.value_or_throw();
|
|
214
|
+
return std::move(*this);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/// This method makes it possible to pack multiple `show_labels` in a single component batch.
|
|
218
|
+
///
|
|
219
|
+
/// This only makes sense when used in conjunction with `columns`. `with_show_labels` should
|
|
220
|
+
/// be used when logging a single row's worth of data.
|
|
221
|
+
LineStrips3D with_many_show_labels(
|
|
222
|
+
const Collection<rerun::components::ShowLabels>& _show_labels
|
|
223
|
+
) && {
|
|
224
|
+
show_labels = ComponentBatch::from_loggable(_show_labels, Descriptor_show_labels)
|
|
225
|
+
.value_or_throw();
|
|
226
|
+
return std::move(*this);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/// Optional `components::ClassId`s for the lines.
|
|
230
|
+
///
|
|
231
|
+
/// The `components::ClassId` provides colors and labels if not specified explicitly.
|
|
232
|
+
LineStrips3D with_class_ids(const Collection<rerun::components::ClassId>& _class_ids) && {
|
|
233
|
+
class_ids =
|
|
234
|
+
ComponentBatch::from_loggable(_class_ids, Descriptor_class_ids).value_or_throw();
|
|
235
|
+
return std::move(*this);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/// Partitions the component data into multiple sub-batches.
|
|
239
|
+
///
|
|
240
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
241
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
242
|
+
///
|
|
243
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
244
|
+
///
|
|
245
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
246
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
247
|
+
|
|
248
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
249
|
+
///
|
|
250
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
251
|
+
/// where `n` is automatically guessed.
|
|
252
|
+
Collection<ComponentColumn> columns();
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
} // namespace rerun::archetypes
|
|
256
|
+
|
|
257
|
+
namespace rerun {
|
|
258
|
+
/// \private
|
|
259
|
+
template <typename T>
|
|
260
|
+
struct AsComponents;
|
|
261
|
+
|
|
262
|
+
/// \private
|
|
263
|
+
template <>
|
|
264
|
+
struct AsComponents<archetypes::LineStrips3D> {
|
|
265
|
+
/// Serialize all set component batches.
|
|
266
|
+
static Result<Collection<ComponentBatch>> as_batches(
|
|
267
|
+
const archetypes::LineStrips3D& archetype
|
|
268
|
+
);
|
|
269
|
+
};
|
|
270
|
+
} // namespace rerun
|
|
@@ -0,0 +1,387 @@
|
|
|
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/mesh3d.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/class_id.hpp"
|
|
11
|
+
#include "../components/color.hpp"
|
|
12
|
+
#include "../components/image_buffer.hpp"
|
|
13
|
+
#include "../components/image_format.hpp"
|
|
14
|
+
#include "../components/position3d.hpp"
|
|
15
|
+
#include "../components/texcoord2d.hpp"
|
|
16
|
+
#include "../components/triangle_indices.hpp"
|
|
17
|
+
#include "../components/vector3d.hpp"
|
|
18
|
+
#include "../indicator_component.hpp"
|
|
19
|
+
#include "../result.hpp"
|
|
20
|
+
|
|
21
|
+
#include <cstdint>
|
|
22
|
+
#include <optional>
|
|
23
|
+
#include <utility>
|
|
24
|
+
#include <vector>
|
|
25
|
+
|
|
26
|
+
namespace rerun::archetypes {
|
|
27
|
+
/// **Archetype**: A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
|
|
28
|
+
///
|
|
29
|
+
/// See also `archetypes::Asset3D`.
|
|
30
|
+
///
|
|
31
|
+
/// If there are multiple `archetypes::InstancePoses3D` instances logged to the same entity as a mesh,
|
|
32
|
+
/// an instance of the mesh will be drawn for each transform.
|
|
33
|
+
///
|
|
34
|
+
/// ## Examples
|
|
35
|
+
///
|
|
36
|
+
/// ### Simple indexed 3D mesh
|
|
37
|
+
/// 
|
|
38
|
+
///
|
|
39
|
+
/// ```cpp
|
|
40
|
+
/// #include <rerun.hpp>
|
|
41
|
+
///
|
|
42
|
+
/// #include <vector>
|
|
43
|
+
///
|
|
44
|
+
/// int main() {
|
|
45
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_mesh3d_indexed");
|
|
46
|
+
/// rec.spawn().exit_on_failure();
|
|
47
|
+
///
|
|
48
|
+
/// const rerun::Position3D vertex_positions[3] = {
|
|
49
|
+
/// {0.0f, 1.0f, 0.0f},
|
|
50
|
+
/// {1.0f, 0.0f, 0.0f},
|
|
51
|
+
/// {0.0f, 0.0f, 0.0f},
|
|
52
|
+
/// };
|
|
53
|
+
/// const rerun::Color vertex_colors[3] = {
|
|
54
|
+
/// {0, 0, 255},
|
|
55
|
+
/// {0, 255, 0},
|
|
56
|
+
/// {255, 0, 0},
|
|
57
|
+
/// };
|
|
58
|
+
///
|
|
59
|
+
/// rec.log(
|
|
60
|
+
/// "triangle",
|
|
61
|
+
/// rerun::Mesh3D(vertex_positions)
|
|
62
|
+
/// .with_vertex_normals({{0.0, 0.0, 1.0}})
|
|
63
|
+
/// .with_vertex_colors(vertex_colors)
|
|
64
|
+
/// .with_triangle_indices({{2, 1, 0}})
|
|
65
|
+
/// );
|
|
66
|
+
/// }
|
|
67
|
+
/// ```
|
|
68
|
+
///
|
|
69
|
+
/// ### 3D mesh with instancing
|
|
70
|
+
/// 
|
|
71
|
+
///
|
|
72
|
+
/// ```cpp
|
|
73
|
+
/// #include <rerun.hpp>
|
|
74
|
+
///
|
|
75
|
+
/// int main() {
|
|
76
|
+
/// const auto rec = rerun::RecordingStream("rerun_example_mesh3d_instancing");
|
|
77
|
+
/// rec.spawn().exit_on_failure();
|
|
78
|
+
///
|
|
79
|
+
/// rec.set_time_sequence("frame", 0);
|
|
80
|
+
/// rec.log(
|
|
81
|
+
/// "shape",
|
|
82
|
+
/// rerun::Mesh3D(
|
|
83
|
+
/// {{1.0f, 1.0f, 1.0f}, {-1.0f, -1.0f, 1.0f}, {-1.0f, 1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}}
|
|
84
|
+
/// )
|
|
85
|
+
/// .with_triangle_indices({{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}})
|
|
86
|
+
/// .with_vertex_colors({0xFF0000FF, 0x00FF00FF, 0x00000FFFF, 0xFFFF00FF})
|
|
87
|
+
/// );
|
|
88
|
+
/// // This box will not be affected by its parent's instance poses!
|
|
89
|
+
/// rec.log("shape/box", rerun::Boxes3D::from_half_sizes({{5.0f, 5.0f, 5.0f}}));
|
|
90
|
+
///
|
|
91
|
+
/// for (int i = 0; i <100; ++i) {
|
|
92
|
+
/// rec.set_time_sequence("frame", i);
|
|
93
|
+
/// rec.log(
|
|
94
|
+
/// "shape",
|
|
95
|
+
/// rerun::InstancePoses3D()
|
|
96
|
+
/// .with_translations(
|
|
97
|
+
/// {{2.0f, 0.0f, 0.0f},
|
|
98
|
+
/// {0.0f, 2.0f, 0.0f},
|
|
99
|
+
/// {0.0f, -2.0f, 0.0f},
|
|
100
|
+
/// {-2.0f, 0.0f, 0.0f}}
|
|
101
|
+
/// )
|
|
102
|
+
/// .with_rotation_axis_angles({rerun::RotationAxisAngle(
|
|
103
|
+
/// {0.0f, 0.0f, 1.0f},
|
|
104
|
+
/// rerun::Angle::degrees(static_cast<float>(i) * 2.0f)
|
|
105
|
+
/// )})
|
|
106
|
+
/// );
|
|
107
|
+
/// }
|
|
108
|
+
/// }
|
|
109
|
+
/// ```
|
|
110
|
+
struct Mesh3D {
|
|
111
|
+
/// The positions of each vertex.
|
|
112
|
+
///
|
|
113
|
+
/// If no `triangle_indices` are specified, then each triplet of positions is interpreted as a triangle.
|
|
114
|
+
std::optional<ComponentBatch> vertex_positions;
|
|
115
|
+
|
|
116
|
+
/// Optional indices for the triangles that make up the mesh.
|
|
117
|
+
std::optional<ComponentBatch> triangle_indices;
|
|
118
|
+
|
|
119
|
+
/// An optional normal for each vertex.
|
|
120
|
+
std::optional<ComponentBatch> vertex_normals;
|
|
121
|
+
|
|
122
|
+
/// An optional color for each vertex.
|
|
123
|
+
std::optional<ComponentBatch> vertex_colors;
|
|
124
|
+
|
|
125
|
+
/// An optional uv texture coordinate for each vertex.
|
|
126
|
+
std::optional<ComponentBatch> vertex_texcoords;
|
|
127
|
+
|
|
128
|
+
/// A color multiplier applied to the whole mesh.
|
|
129
|
+
std::optional<ComponentBatch> albedo_factor;
|
|
130
|
+
|
|
131
|
+
/// Optional albedo texture.
|
|
132
|
+
///
|
|
133
|
+
/// Used with the `components::Texcoord2D` of the mesh.
|
|
134
|
+
///
|
|
135
|
+
/// Currently supports only sRGB(A) textures, ignoring alpha.
|
|
136
|
+
/// (meaning that the tensor must have 3 or 4 channels and use the `u8` format)
|
|
137
|
+
std::optional<ComponentBatch> albedo_texture_buffer;
|
|
138
|
+
|
|
139
|
+
/// The format of the `albedo_texture_buffer`, if any.
|
|
140
|
+
std::optional<ComponentBatch> albedo_texture_format;
|
|
141
|
+
|
|
142
|
+
/// Optional class Ids for the vertices.
|
|
143
|
+
///
|
|
144
|
+
/// The `components::ClassId` provides colors and labels if not specified explicitly.
|
|
145
|
+
std::optional<ComponentBatch> class_ids;
|
|
146
|
+
|
|
147
|
+
public:
|
|
148
|
+
static constexpr const char IndicatorComponentName[] = "rerun.components.Mesh3DIndicator";
|
|
149
|
+
|
|
150
|
+
/// Indicator component, used to identify the archetype when converting to a list of components.
|
|
151
|
+
using IndicatorComponent = rerun::components::IndicatorComponent<IndicatorComponentName>;
|
|
152
|
+
/// The name of the archetype as used in `ComponentDescriptor`s.
|
|
153
|
+
static constexpr const char ArchetypeName[] = "rerun.archetypes.Mesh3D";
|
|
154
|
+
|
|
155
|
+
/// `ComponentDescriptor` for the `vertex_positions` field.
|
|
156
|
+
static constexpr auto Descriptor_vertex_positions = ComponentDescriptor(
|
|
157
|
+
ArchetypeName, "vertex_positions",
|
|
158
|
+
Loggable<rerun::components::Position3D>::Descriptor.component_name
|
|
159
|
+
);
|
|
160
|
+
/// `ComponentDescriptor` for the `triangle_indices` field.
|
|
161
|
+
static constexpr auto Descriptor_triangle_indices = ComponentDescriptor(
|
|
162
|
+
ArchetypeName, "triangle_indices",
|
|
163
|
+
Loggable<rerun::components::TriangleIndices>::Descriptor.component_name
|
|
164
|
+
);
|
|
165
|
+
/// `ComponentDescriptor` for the `vertex_normals` field.
|
|
166
|
+
static constexpr auto Descriptor_vertex_normals = ComponentDescriptor(
|
|
167
|
+
ArchetypeName, "vertex_normals",
|
|
168
|
+
Loggable<rerun::components::Vector3D>::Descriptor.component_name
|
|
169
|
+
);
|
|
170
|
+
/// `ComponentDescriptor` for the `vertex_colors` field.
|
|
171
|
+
static constexpr auto Descriptor_vertex_colors = ComponentDescriptor(
|
|
172
|
+
ArchetypeName, "vertex_colors",
|
|
173
|
+
Loggable<rerun::components::Color>::Descriptor.component_name
|
|
174
|
+
);
|
|
175
|
+
/// `ComponentDescriptor` for the `vertex_texcoords` field.
|
|
176
|
+
static constexpr auto Descriptor_vertex_texcoords = ComponentDescriptor(
|
|
177
|
+
ArchetypeName, "vertex_texcoords",
|
|
178
|
+
Loggable<rerun::components::Texcoord2D>::Descriptor.component_name
|
|
179
|
+
);
|
|
180
|
+
/// `ComponentDescriptor` for the `albedo_factor` field.
|
|
181
|
+
static constexpr auto Descriptor_albedo_factor = ComponentDescriptor(
|
|
182
|
+
ArchetypeName, "albedo_factor",
|
|
183
|
+
Loggable<rerun::components::AlbedoFactor>::Descriptor.component_name
|
|
184
|
+
);
|
|
185
|
+
/// `ComponentDescriptor` for the `albedo_texture_buffer` field.
|
|
186
|
+
static constexpr auto Descriptor_albedo_texture_buffer = ComponentDescriptor(
|
|
187
|
+
ArchetypeName, "albedo_texture_buffer",
|
|
188
|
+
Loggable<rerun::components::ImageBuffer>::Descriptor.component_name
|
|
189
|
+
);
|
|
190
|
+
/// `ComponentDescriptor` for the `albedo_texture_format` field.
|
|
191
|
+
static constexpr auto Descriptor_albedo_texture_format = ComponentDescriptor(
|
|
192
|
+
ArchetypeName, "albedo_texture_format",
|
|
193
|
+
Loggable<rerun::components::ImageFormat>::Descriptor.component_name
|
|
194
|
+
);
|
|
195
|
+
/// `ComponentDescriptor` for the `class_ids` field.
|
|
196
|
+
static constexpr auto Descriptor_class_ids = ComponentDescriptor(
|
|
197
|
+
ArchetypeName, "class_ids",
|
|
198
|
+
Loggable<rerun::components::ClassId>::Descriptor.component_name
|
|
199
|
+
);
|
|
200
|
+
|
|
201
|
+
public:
|
|
202
|
+
Mesh3D() = default;
|
|
203
|
+
Mesh3D(Mesh3D&& other) = default;
|
|
204
|
+
Mesh3D(const Mesh3D& other) = default;
|
|
205
|
+
Mesh3D& operator=(const Mesh3D& other) = default;
|
|
206
|
+
Mesh3D& operator=(Mesh3D&& other) = default;
|
|
207
|
+
|
|
208
|
+
explicit Mesh3D(Collection<rerun::components::Position3D> _vertex_positions)
|
|
209
|
+
: vertex_positions(ComponentBatch::from_loggable(
|
|
210
|
+
std::move(_vertex_positions), Descriptor_vertex_positions
|
|
211
|
+
)
|
|
212
|
+
.value_or_throw()) {}
|
|
213
|
+
|
|
214
|
+
/// Update only some specific fields of a `Mesh3D`.
|
|
215
|
+
static Mesh3D update_fields() {
|
|
216
|
+
return Mesh3D();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/// Clear all the fields of a `Mesh3D`.
|
|
220
|
+
static Mesh3D clear_fields();
|
|
221
|
+
|
|
222
|
+
/// The positions of each vertex.
|
|
223
|
+
///
|
|
224
|
+
/// If no `triangle_indices` are specified, then each triplet of positions is interpreted as a triangle.
|
|
225
|
+
Mesh3D with_vertex_positions(
|
|
226
|
+
const Collection<rerun::components::Position3D>& _vertex_positions
|
|
227
|
+
) && {
|
|
228
|
+
vertex_positions =
|
|
229
|
+
ComponentBatch::from_loggable(_vertex_positions, Descriptor_vertex_positions)
|
|
230
|
+
.value_or_throw();
|
|
231
|
+
return std::move(*this);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/// Optional indices for the triangles that make up the mesh.
|
|
235
|
+
Mesh3D with_triangle_indices(
|
|
236
|
+
const Collection<rerun::components::TriangleIndices>& _triangle_indices
|
|
237
|
+
) && {
|
|
238
|
+
triangle_indices =
|
|
239
|
+
ComponentBatch::from_loggable(_triangle_indices, Descriptor_triangle_indices)
|
|
240
|
+
.value_or_throw();
|
|
241
|
+
return std::move(*this);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/// An optional normal for each vertex.
|
|
245
|
+
Mesh3D with_vertex_normals(const Collection<rerun::components::Vector3D>& _vertex_normals
|
|
246
|
+
) && {
|
|
247
|
+
vertex_normals =
|
|
248
|
+
ComponentBatch::from_loggable(_vertex_normals, Descriptor_vertex_normals)
|
|
249
|
+
.value_or_throw();
|
|
250
|
+
return std::move(*this);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/// An optional color for each vertex.
|
|
254
|
+
Mesh3D with_vertex_colors(const Collection<rerun::components::Color>& _vertex_colors) && {
|
|
255
|
+
vertex_colors = ComponentBatch::from_loggable(_vertex_colors, Descriptor_vertex_colors)
|
|
256
|
+
.value_or_throw();
|
|
257
|
+
return std::move(*this);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/// An optional uv texture coordinate for each vertex.
|
|
261
|
+
Mesh3D with_vertex_texcoords(
|
|
262
|
+
const Collection<rerun::components::Texcoord2D>& _vertex_texcoords
|
|
263
|
+
) && {
|
|
264
|
+
vertex_texcoords =
|
|
265
|
+
ComponentBatch::from_loggable(_vertex_texcoords, Descriptor_vertex_texcoords)
|
|
266
|
+
.value_or_throw();
|
|
267
|
+
return std::move(*this);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/// A color multiplier applied to the whole mesh.
|
|
271
|
+
Mesh3D with_albedo_factor(const rerun::components::AlbedoFactor& _albedo_factor) && {
|
|
272
|
+
albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
|
|
273
|
+
.value_or_throw();
|
|
274
|
+
return std::move(*this);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/// This method makes it possible to pack multiple `albedo_factor` in a single component batch.
|
|
278
|
+
///
|
|
279
|
+
/// This only makes sense when used in conjunction with `columns`. `with_albedo_factor` should
|
|
280
|
+
/// be used when logging a single row's worth of data.
|
|
281
|
+
Mesh3D with_many_albedo_factor(
|
|
282
|
+
const Collection<rerun::components::AlbedoFactor>& _albedo_factor
|
|
283
|
+
) && {
|
|
284
|
+
albedo_factor = ComponentBatch::from_loggable(_albedo_factor, Descriptor_albedo_factor)
|
|
285
|
+
.value_or_throw();
|
|
286
|
+
return std::move(*this);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/// Optional albedo texture.
|
|
290
|
+
///
|
|
291
|
+
/// Used with the `components::Texcoord2D` of the mesh.
|
|
292
|
+
///
|
|
293
|
+
/// Currently supports only sRGB(A) textures, ignoring alpha.
|
|
294
|
+
/// (meaning that the tensor must have 3 or 4 channels and use the `u8` format)
|
|
295
|
+
Mesh3D with_albedo_texture_buffer(
|
|
296
|
+
const rerun::components::ImageBuffer& _albedo_texture_buffer
|
|
297
|
+
) && {
|
|
298
|
+
albedo_texture_buffer = ComponentBatch::from_loggable(
|
|
299
|
+
_albedo_texture_buffer,
|
|
300
|
+
Descriptor_albedo_texture_buffer
|
|
301
|
+
)
|
|
302
|
+
.value_or_throw();
|
|
303
|
+
return std::move(*this);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/// This method makes it possible to pack multiple `albedo_texture_buffer` in a single component batch.
|
|
307
|
+
///
|
|
308
|
+
/// This only makes sense when used in conjunction with `columns`. `with_albedo_texture_buffer` should
|
|
309
|
+
/// be used when logging a single row's worth of data.
|
|
310
|
+
Mesh3D with_many_albedo_texture_buffer(
|
|
311
|
+
const Collection<rerun::components::ImageBuffer>& _albedo_texture_buffer
|
|
312
|
+
) && {
|
|
313
|
+
albedo_texture_buffer = ComponentBatch::from_loggable(
|
|
314
|
+
_albedo_texture_buffer,
|
|
315
|
+
Descriptor_albedo_texture_buffer
|
|
316
|
+
)
|
|
317
|
+
.value_or_throw();
|
|
318
|
+
return std::move(*this);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/// The format of the `albedo_texture_buffer`, if any.
|
|
322
|
+
Mesh3D with_albedo_texture_format(
|
|
323
|
+
const rerun::components::ImageFormat& _albedo_texture_format
|
|
324
|
+
) && {
|
|
325
|
+
albedo_texture_format = ComponentBatch::from_loggable(
|
|
326
|
+
_albedo_texture_format,
|
|
327
|
+
Descriptor_albedo_texture_format
|
|
328
|
+
)
|
|
329
|
+
.value_or_throw();
|
|
330
|
+
return std::move(*this);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/// This method makes it possible to pack multiple `albedo_texture_format` in a single component batch.
|
|
334
|
+
///
|
|
335
|
+
/// This only makes sense when used in conjunction with `columns`. `with_albedo_texture_format` should
|
|
336
|
+
/// be used when logging a single row's worth of data.
|
|
337
|
+
Mesh3D with_many_albedo_texture_format(
|
|
338
|
+
const Collection<rerun::components::ImageFormat>& _albedo_texture_format
|
|
339
|
+
) && {
|
|
340
|
+
albedo_texture_format = ComponentBatch::from_loggable(
|
|
341
|
+
_albedo_texture_format,
|
|
342
|
+
Descriptor_albedo_texture_format
|
|
343
|
+
)
|
|
344
|
+
.value_or_throw();
|
|
345
|
+
return std::move(*this);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/// Optional class Ids for the vertices.
|
|
349
|
+
///
|
|
350
|
+
/// The `components::ClassId` provides colors and labels if not specified explicitly.
|
|
351
|
+
Mesh3D with_class_ids(const Collection<rerun::components::ClassId>& _class_ids) && {
|
|
352
|
+
class_ids =
|
|
353
|
+
ComponentBatch::from_loggable(_class_ids, Descriptor_class_ids).value_or_throw();
|
|
354
|
+
return std::move(*this);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/// Partitions the component data into multiple sub-batches.
|
|
358
|
+
///
|
|
359
|
+
/// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
|
|
360
|
+
/// instead, via `ComponentBatch::partitioned`.
|
|
361
|
+
///
|
|
362
|
+
/// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
|
|
363
|
+
///
|
|
364
|
+
/// The specified `lengths` must sum to the total length of the component batch.
|
|
365
|
+
Collection<ComponentColumn> columns(const Collection<uint32_t>& lengths_);
|
|
366
|
+
|
|
367
|
+
/// Partitions the component data into unit-length sub-batches.
|
|
368
|
+
///
|
|
369
|
+
/// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
|
|
370
|
+
/// where `n` is automatically guessed.
|
|
371
|
+
Collection<ComponentColumn> columns();
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
} // namespace rerun::archetypes
|
|
375
|
+
|
|
376
|
+
namespace rerun {
|
|
377
|
+
/// \private
|
|
378
|
+
template <typename T>
|
|
379
|
+
struct AsComponents;
|
|
380
|
+
|
|
381
|
+
/// \private
|
|
382
|
+
template <>
|
|
383
|
+
struct AsComponents<archetypes::Mesh3D> {
|
|
384
|
+
/// Serialize all set component batches.
|
|
385
|
+
static Result<Collection<ComponentBatch>> as_batches(const archetypes::Mesh3D& archetype);
|
|
386
|
+
};
|
|
387
|
+
} // namespace rerun
|