5#ifndef RSMESH_GENERATE_SDF_H
6#define RSMESH_GENERATE_SDF_H
15#include "geometry/point3d.h"
16#include "common/utility.h"
17#include "point_cloud/sdf_data_generator.h"
18#include "common/eigen_utility.h"
25 double min_offset = 0.0;
26 double sdf_multiplication = 2.0;
31 const std::string& input = parameters.input;
32 const std::string& output = parameters.output;
33 const double max_offset = parameters.max_offset;
34 const double min_offset = parameters.min_offset;
35 const double sdf_multiplication = parameters.sdf_multiplication;
37 tabled table = read_table(input);
40 std::vector<index_t> indices(table.rows());
41 std::iota(indices.begin(), indices.end(), index_t{0});
42 std::shuffle(indices.begin(), indices.end(), std::mt19937{std::random_device{}()});
43 table = table(indices, Eigen::all).eval();
49 point_cloud::sdf_data_generator sdf_data(surface_points, surface_normals, min_offset, max_offset, sdf_multiplication);
51 valuesd values = sdf_data.sdf_values();
54 write_table(output, common::concatenate_cols(points, values));
examples命名空间,包含一些使用RSMesh库的示例
Eigen::Matrix< double, Eigen::Dynamic, 3, Eigen::RowMajor > vectors3d
3维向量的集合