|
template<typename OctreeT > |
Eigen::Vector3f | 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 | interp_vertexes (const OctreeT &octree, const int x, const int y, const int z, const int edge) |
|
template<typename BlockT > |
void | gather_data (const BlockT *block, typename BlockT::DataType data[8], const int x, const int y, const int z) |
|
template<typename OctreeT > |
void | gather_data (const OctreeT &octree, typename OctreeT::DataType data[8], const int x, const int y, const int z) |
|
template<typename OctreeT > |
uint8_t | 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 | 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 | 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 | 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 | 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 | 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 | 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 | checkVertex (const Eigen::Vector3f &vertex_M, const float dim) |
|