CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns
CGAL 5.6 - 3D Isosurfacing
CGAL::Isosurfacing::Octree_wrapper< GeomTraits > Class Template Reference

#include <CGAL/Octree_wrapper.h>

Definition

template<typename GeomTraits>
class CGAL::Isosurfacing::Octree_wrapper< GeomTraits >

Examples:
Isosurfacing_3/dual_contouring_octree.cpp.

Public Types

typedef GeomTraits Kernel
 
typedef GeomTraits::FT FT
 
typedef GeomTraits::Point_3 Point_3
 
typedef GeomTraits::Vector_3 Vector_3
 
typedef CGAL::Octree< Kernel, std::vector< Point_3 > > Octree
 
typedef std::size_t Vertex_handle
 
typedef std::tuple< std::size_t, std::size_t > Edge_handle
 
typedef std::size_t Voxel_handle
 
typedef Octree::Node Node
 
typedef Node::Global_coordinates Uniform_coords
 

Public Member Functions

 Octree_wrapper (const CGAL::Bbox_3 &bbox)
 
template<class Split_predicate >
void refine (const Split_predicate &split_predicate)
 
std::size_t dim () const
 
FT hx () const
 
FT offset_x () const
 
FT offset_y () const
 
FT offset_z () const
 
std::size_t max_depth () const
 
const std::vector< Edge_handle > & leaf_edges () const
 
const std::vector< Vertex_handle > & leaf_vertices () const
 
const std::vector< Voxel_handle > & leaf_voxels () const
 
FT value (const Vertex_handle &v) const
 
FTvalue (const Vertex_handle &v)
 
Vector_3 gradient (const Vertex_handle &v) const
 
Vector_3gradient (const Vertex_handle &v)
 
std::size_t depth_factor (const std::size_t &depth) const
 
Uniform_coords uniform_coordinates (const Node &node) const
 
std::array< Point_3, 8 > node_points (const Node &node) const
 
Point_3 point (const Uniform_coords &vertex_coordinates) const
 
Point_3 point (const Vertex_handle &v) const
 
Uniform_coords vertex_uniform_coordinates (const Node &node, const typename Node::Local_coordinates local_coords) const
 
Node get_node (const std::size_t &i, const std::size_t &j, const std::size_t &k) const
 
Node get_node (const std::size_t lex_index) const
 
std::size_t lex_index (const std::size_t &i, const std::size_t &j, const std::size_t &k, const std::size_t &depth) const
 
std::size_t i_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t j_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t k_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::tuple< std::size_t, std::size_t, std::size_t > ijk_index (const std::size_t &lex_index, const std::size_t &depth) const
 
std::size_t e_glIndex (const std::size_t &e, const std::size_t &i_idx, const std::size_t &j_idx, const std::size_t &k_idx, const std::size_t &depth) const
 compute unique edge global index. More...
 
std::array< FT, 8 > voxel_values (const Voxel_handle &vox) const
 
FT vertex_value (const Vertex_handle &v) const
 
std::array< Edge_handle, 12 > voxel_edges (const Voxel_handle &vox) const
 
std::array< Vertex_handle, 8 > voxel_vertices (const Voxel_handle &vox) const
 
std::array< Vector_3, 8 > voxel_gradients (const Voxel_handle &vox) const
 
std::array< Point_3, 8 > voxel_vertex_positions (const Voxel_handle &vox) const
 
std::array< FT, 2 > edge_values (const Edge_handle &e_id) const
 Get the values at the incident two vertices. More...
 
std::array< Vertex_handle, 2 > edge_vertices (const Edge_handle &e_id) const
 
std::array< std::size_t, 4 > edge_voxels (const Edge_handle &e_id) const
 Get the 4 voxels incident to an edge. More...
 

Member Function Documentation

◆ e_glIndex()

template<typename GeomTraits >
std::size_t CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::e_glIndex ( const std::size_t &  e,
const std::size_t &  i_idx,
const std::size_t &  j_idx,
const std::size_t &  k_idx,
const std::size_t &  depth 
) const

compute unique edge global index.

Parameters
elocal edge index
i_idxi-index of cell
j_idxj-index of cell
k_idxk-index of cell
depthdepth of cell
Returns

◆ edge_values()

template<typename GeomTraits >
std::array<FT, 2> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_values ( const Edge_handle e_id) const

Get the values at the incident two vertices.

Vertices are sorted in ascending order.

Parameters
e_id
Returns

◆ edge_voxels()

template<typename GeomTraits >
std::array<std::size_t, 4> CGAL::Isosurfacing::Octree_wrapper< GeomTraits >::edge_voxels ( const Edge_handle e_id) const

Get the 4 voxels incident to an edge.

If an edge has only three incident voxels, one will appear twice. The voxels are given with the uniform lexicographical index.

Parameters
e_id
Returns