cgv
Loading...
Searching...
No Matches
cgv::media::mesh::marching_cubes< X, T > Class Template Reference

class used to perform the marching cubes algorithm More...

#include <marching_cubes.h>

Inheritance diagram for cgv::media::mesh::marching_cubes< X, T >:
cgv::media::mesh::marching_cubes_base< X, T > cgv::media::mesh::streaming_mesh< X >

Public Types

typedef marching_cubes_base< X, T >::base_type base_type
 
typedef marching_cubes_base< X, T >::pnt_type pnt_type
 points must have three components
 
typedef marching_cubes_base< X, T >::vec_type vec_type
 vectors must have three components
 
- Public Types inherited from cgv::media::mesh::marching_cubes_base< X, T >
typedef streaming_mesh< X > base_type
 
typedef cgv::math::fvec< X, 3 > pnt_type
 points must have three components
 
typedef cgv::math::fvec< X, 3 > vec_type
 vectors must have three components
 
- Public Types inherited from cgv::media::mesh::streaming_mesh< X >
typedef cgv::math::fvec< X, 3 > pnt_type
 type of vertex locations
 
typedef cgv::math::fvec< X, 3 > vec_type
 type of vertex normals
 

Public Member Functions

 marching_cubes (const cgv::math::v3_func< X, T > &_func, streaming_mesh_callback_handler *_smcbh, const X &_grid_epsilon=0.01f, const X &_epsilon=1e-6f)
 construct marching cubes object
 
operator() (unsigned i, unsigned j, unsigned k, const pnt_type &p) const
 
void extract (const T &_iso_value, const axis_aligned_box< X, 3 > &box, unsigned int resx, unsigned int resy, unsigned int resz, bool show_progress=false)
 
- Public Member Functions inherited from cgv::media::mesh::marching_cubes_base< X, T >
 marching_cubes_base (streaming_mesh_callback_handler *_smcbh, const X &_grid_epsilon=0.01f, const X &_epsilon=1e-6f)
 construct marching cubes object
 
void construct_vertex (slice_info< T > *info_ptr_1, int i_1, int j_1, int e, slice_info< T > *info_ptr_2, int i_2, int j_2)
 construct a new vertex on an edge
 
template<typename Eval , typename Valid >
void extract_impl (const T &_iso_value, const axis_aligned_box< X, 3 > &box, unsigned int resx, unsigned int resy, unsigned int resz, const Eval &eval, const Valid &valid, bool show_progress=false)
 extract iso surface and send triangles to marching cubes handler
 
- Public Member Functions inherited from cgv::media::mesh::streaming_mesh< X >
 streaming_mesh (streaming_mesh_callback_handler *_smcbh=0)
 construct from callback handler
 
void set_callback_handler (streaming_mesh_callback_handler *_smcbh)
 set a new callback handler
 
unsigned int get_nr_dropped_vertices () const
 return the number of vertices dropped from the front, what is used as index offset into a deque
 
unsigned int get_nr_vertices () const
 return the number of vertices
 
unsigned int get_nr_faces () const
 return the number of faces
 
void drop_vertex ()
 drop the front most vertex from the deque
 
void drop_vertices (unsigned int n)
 drop n vertices from the front of the deque
 
pnt_typevertex_location (unsigned int vi)
 write access to vertex locations
 
const pnt_typevertex_location (unsigned int vi) const
 read access to vertex locations
 
const vec_typevertex_normal (unsigned int vi) const
 read access to vertex normals
 
vec_typevertex_normal (unsigned int vi)
 write access to vertex normals
 
unsigned int new_vertex (const pnt_type &p)
 add a new vertex with the given location and call the callback of the callback handler
 
void new_triangle (unsigned int vi, unsigned int vj, unsigned int vk)
 construct a new triangle by calling the new polygon method of the callback handler
 
void new_quad (unsigned int vi, unsigned int vj, unsigned int vk, unsigned int vl)
 construct a new quad by calling the new polygon method of the callback handler
 
void new_polygon (const std::vector< unsigned int > &vertex_indices)
 construct a new polygon by calling the new polygon method of the callback handler
 

Public Attributes

const cgv::math::v3_func< X, T > & func
 

Additional Inherited Members

- Protected Attributes inherited from cgv::media::mesh::marching_cubes_base< X, T >
epsilon
 
grid_epsilon
 
- Protected Attributes inherited from cgv::media::mesh::streaming_mesh< X >
int idx_off
 offset used to address vertices in deque
 
unsigned int nr_faces
 count the number of faces
 
std::deque< pnt_typepnts
 store currently used points in deque
 
std::deque< vec_typenmls
 store currently used normals in deque
 
streaming_mesh_callback_handlersmcbh
 store a pointer to the callback handler
 

Detailed Description

template<typename X, typename T>
class cgv::media::mesh::marching_cubes< X, T >

class used to perform the marching cubes algorithm

Definition at line 252 of file marching_cubes.h.

Member Typedef Documentation

◆ base_type

template<typename X , typename T >
typedef marching_cubes_base<X,T>::base_type cgv::media::mesh::marching_cubes< X, T >::base_type

Definition at line 257 of file marching_cubes.h.

◆ pnt_type

template<typename X , typename T >
typedef marching_cubes_base<X,T>::pnt_type cgv::media::mesh::marching_cubes< X, T >::pnt_type

points must have three components

Definition at line 259 of file marching_cubes.h.

◆ vec_type

template<typename X , typename T >
typedef marching_cubes_base<X,T>::vec_type cgv::media::mesh::marching_cubes< X, T >::vec_type

vectors must have three components

Definition at line 261 of file marching_cubes.h.

Constructor & Destructor Documentation

◆ marching_cubes()

template<typename X , typename T >
cgv::media::mesh::marching_cubes< X, T >::marching_cubes ( const cgv::math::v3_func< X, T > &  _func,
streaming_mesh_callback_handler _smcbh,
const X &  _grid_epsilon = 0.01f,
const X &  _epsilon = 1e-6f 
)
inline

construct marching cubes object

Definition at line 265 of file marching_cubes.h.

Member Function Documentation

◆ extract()

template<typename X , typename T >
void cgv::media::mesh::marching_cubes< X, T >::extract ( const T &  _iso_value,
const axis_aligned_box< X, 3 > &  box,
unsigned int  resx,
unsigned int  resy,
unsigned int  resz,
bool  show_progress = false 
)
inline

Definition at line 274 of file marching_cubes.h.

◆ operator()()

template<typename X , typename T >
T cgv::media::mesh::marching_cubes< X, T >::operator() ( unsigned  i,
unsigned  j,
unsigned  k,
const pnt_type p 
) const
inline

Definition at line 271 of file marching_cubes.h.

Member Data Documentation

◆ func

template<typename X , typename T >
const cgv::math::v3_func<X, T>& cgv::media::mesh::marching_cubes< X, T >::func

Definition at line 263 of file marching_cubes.h.


The documentation for this class was generated from the following file: