Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions

OpenTissue::mesh::detail::IsoSurfaceGenerator Class Reference

#include <mesh_isosurface.h>

List of all members.

Public Member Functions

template<typename grid_type , typename mesh_type >
void operator() (grid_type const &phi, typename grid_type::value_type const &isolevel, mesh_type &mesh)

Protected Types

typedef int identifier_type

Protected Member Functions

identifier_type compute_vertex_id (size_t i, size_t j, size_t k, size_t I, size_t J)
identifier_type get_edge_id (size_t i, size_t j, size_t k, identifier_type edge_number, size_t I, size_t J)
template<typename grid_type , typename size_t >
grid_type::math_types::vector3_type calculate_intersection (grid_type const &phi, typename grid_type::value_type const &isovalue, size_t i, size_t j, size_t k, identifier_type edge_number)

Static Protected Member Functions

static identifier_type edge_table (identifier_type const &idx)
static identifier_type triangle_table (identifier_type const &idx1, identifier_type const &idx2)

Detailed Description

Iso Surface Generator Class.

Optimizations: 1) change for-loops to use iterators 2) avoid calling edge_table and triangle_table functions (use array lookup) 3) unroll the calculate_intersection function 4) minimize number of argumts passed to get_edge_id


Member Typedef Documentation


Member Function Documentation

template<typename grid_type , typename size_t >
grid_type::math_types::vector3_type OpenTissue::mesh::detail::IsoSurfaceGenerator::calculate_intersection ( grid_type const &  phi,
typename grid_type::value_type const &  isovalue,
size_t  i,
size_t  j,
size_t  k,
identifier_type  edge_number 
) [inline, protected]
Parameters:
phi 
isovalue 
i 
j 
k 
Returns:
identifier_type OpenTissue::mesh::detail::IsoSurfaceGenerator::compute_vertex_id ( size_t  i,
size_t  j,
size_t  k,
size_t  I,
size_t  J 
) [inline, protected]
Parameters:
i 
j 
k 
I 
J 
Returns:
static identifier_type OpenTissue::mesh::detail::IsoSurfaceGenerator::edge_table ( identifier_type const &  idx  )  [inline, static, protected]
Parameters:
idx 
Returns:
identifier_type OpenTissue::mesh::detail::IsoSurfaceGenerator::get_edge_id ( size_t  i,
size_t  j,
size_t  k,
identifier_type  edge_number,
size_t  I,
size_t  J 
) [inline, protected]
Parameters:
i 
j 
k 
edge_number 
I 
J 
Returns:
template<typename grid_type , typename mesh_type >
void OpenTissue::mesh::detail::IsoSurfaceGenerator::operator() ( grid_type const &  phi,
typename grid_type::value_type const &  isolevel,
mesh_type mesh 
) [inline]
Parameters:
phi 
isovalue 
mesh 
static identifier_type OpenTissue::mesh::detail::IsoSurfaceGenerator::triangle_table ( identifier_type const &  idx1,
identifier_type const &  idx2 
) [inline, static, protected]
Parameters:
idx 
Returns:

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