|
template<typename OctreeT > |
Eigen::Vector3f | se::meshing::compute_intersection (const OctreeT &octree, const Eigen::Vector3i &coord_0, const Eigen::Vector3i &coord_1) |
| Single-res marching cube implementation.
|
|
template<typename OctreeT > |
Eigen::Vector3f | se::meshing::interp_vertexes (const OctreeT &octree, const int x, const int y, const int z, const int edge) |
|
template<typename BlockT > |
void | se::meshing::gather_data (const BlockT *block, typename BlockT::DataType data[8], const int x, const int y, const int z) |
|
template<typename OctreeT > |
void | se::meshing::gather_data (const OctreeT &octree, typename OctreeT::DataType data[8], const int x, const int y, const int z) |
|
template<typename OctreeT > |
uint8_t | se::meshing::compute_index (const OctreeT &octree, const typename OctreeT::BlockType *block_ptr, const int x, const int y, const int z) |
|
template<typename DataT > |
Eigen::Vector3f | se::meshing::compute_dual_intersection (const DataT &data_0, const DataT &data_1, const Eigen::Vector3f &dual_point_0_M, const Eigen::Vector3f &dual_point_1_M) |
| Multires-res marching cube implementation.
|
|
template<typename DataT , typename ValueSelector > |
Eigen::Vector3f | se::meshing::interp_dual_vertexes (const int edge, const DataT data[8], const std::array< Eigen::Vector3f, 8 > &dual_corner_coords_f) |
|
template<typename BlockT , typename DataT > |
void | se::meshing::gather_dual_data (const BlockT *block, const int scale, const Eigen::Vector3f &primal_corner_coord_f, DataT data[8], std::array< Eigen::Vector3f, 8 > &dual_corner_coords_f, std::array< Eigen::Vector3i, 8 > &dual_corner_coords_i) |
|
void | se::meshing::norm_dual_corner_idxs (const Eigen::Vector3i &primal_corner_coord_rel, const int block_size, BoundedVector< int, 8 > &lower_priority_neighbours, BoundedVector< int, 8 > &higher_priority_neighbours, BoundedVector< BoundedVector< int, 8 >, 8 > &neighbours) |
| The following strategy is derived from I.
|
|
template<typename OctreeT , typename DataT > |
void | se::meshing::gather_dual_data (const OctreeT &octree, const typename OctreeT::BlockType *block, const int scale, const Eigen::Vector3i &primal_corner_coord, DataT data[8], std::array< Eigen::Vector3f, 8 > &dual_corner_coords_f, std::array< Eigen::Vector3i, 8 > &dual_corner_coords_i) |
|
template<typename OctreeT , typename DataT > |
void | se::meshing::compute_dual_index (const OctreeT &octree, const typename OctreeT::BlockType *block_ptr, const int scale, const Eigen::Vector3i &primal_corner_coord, uint8_t &edge_pattern_idx, DataT data[8], std::array< Eigen::Vector3f, 8 > &dual_corner_coords_f, std::array< Eigen::Vector3i, 8 > &dual_corner_coords_i) |
|
bool | se::meshing::checkVertex (const Eigen::Vector3f &vertex_M, const float dim) |
|
template<typename OctreeT , typename = std::enable_if_t<OctreeT::res_ == se::Res::Single>> |
OctreeT::SurfaceMesh | se::algorithms::marching_cube_kernel (const OctreeT &octree, const std::vector< const typename OctreeT::BlockType * > &block_ptrs) |
|
template<typename OctreeT , typename = std::enable_if_t<OctreeT::res_ == se::Res::Multi>> |
OctreeT::SurfaceMesh | se::algorithms::dual_marching_cube_kernel (const OctreeT &octree, const std::vector< const typename OctreeT::BlockType * > &block_ptrs, const int min_desired_scale) |
|
template<typename OctreeT > |
std::vector< meshing::VertexIndexMesh< 3 > > | se::algorithms::dual_marching_cube_kernel_new (const OctreeT &octree, const std::vector< const typename OctreeT::BlockType * > &block_ptrs) |
|
template<typename OctreeT > |
meshing::VertexIndexMesh< 3 > | se::algorithms::dual_marching_cube_new (const OctreeT &octree, const std::vector< const typename OctreeT::BlockType * > &block_ptrs) |
|
template<typename OctreeT > |
meshing::VertexIndexMesh< 3 > | se::algorithms::dual_marching_cube_new (const OctreeT &octree) |
|
template<typename OctreeT > |
OctreeT::SurfaceMesh | se::algorithms::marching_cube (const OctreeT &octree, const int min_desired_scale=0) |
| Return a triangle mesh of the surface in octree .
|
|