Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

marching_tetra.c File Reference

#include <volume_io/internal_volume_io.h>
#include <bicpl/marching.h>

Include dependency graph for marching_tetra.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  case_struct

Defines

#define MAX_POLYGONS_PER_VOXEL   5
#define MAX_INDICES_PER_VOXEL   20

Enumerations

enum  Case_types { PLUS_FLAG, MINUS_FLAG, MAX_CASES }

Functions

private void create_marching_cubes_lookup (void)
private void create_case (int x, int y, int z, Case_types case_flags[2][2][2], case_struct *case_info)
private void check_initialized (void)
private int get_tetra_polygon (Case_types tetra_flags[], int tetra_indices[][2])
private int get_tetra_case (Case_types case_flags[2][2][2], int indices[][3], int edge_indices[][2][3])
private int lookup_case (Case_types case_flags[2][2][2], int sizes[], int edge_indices[][2][3])
public void translate_to_edge_index (int x1, int y1, int z1, int x2, int y2, int z2, voxel_point_type *edge_point)
public void translate_from_edge_index (int edge_index, int offset[])
private void delete_case (case_struct *case_info)
public int get_tetra_isosurface_polygons (int x, int y, int z, Real corners[2][2][2], Real isovalue, int *sizes[], voxel_point_type *points[])
public void delete_tetra_marching_cubes_table (void)

Variables

private case_struct cases [2][2][2][2][2][2][2][2][2][2][2]
private BOOLEAN initialized = FALSE


Define Documentation

#define MAX_INDICES_PER_VOXEL   20
 

Definition at line 6 of file marching_tetra.c.

#define MAX_POLYGONS_PER_VOXEL   5
 

Definition at line 5 of file marching_tetra.c.


Enumeration Type Documentation

enum Case_types
 

Enumeration values:
PLUS_FLAG 
MINUS_FLAG 
MAX_CASES 

Definition at line 15 of file marching_tetra.c.


Function Documentation

private void check_initialized void   ) 
 

Definition at line 34 of file marching_tetra.c.

References create_marching_cubes_lookup(), initialized, and TRUE.

private void create_case int  x,
int  y,
int  z,
Case_types  case_flags[2][2][2],
case_struct case_info
 

Definition at line 281 of file marching_tetra.c.

References Case_types, case_struct::indices, lookup_case(), MAX_INDICES_PER_VOXEL, MAX_POLYGONS_PER_VOXEL, case_struct::n_polygons, case_struct::sizes, translate_to_edge_index(), and y.

Referenced by create_marching_cubes_lookup(), and get_tetra_isosurface_polygons().

private void create_marching_cubes_lookup void   ) 
 

private void delete_case case_struct case_info  ) 
 

Referenced by delete_marching_cubes_table(), delete_tetra_marching_cubes_table(), and get_tetra_isosurface_polygons().

public void delete_tetra_marching_cubes_table void   ) 
 

Definition at line 430 of file marching_tetra.c.

References Case_types, cases, delete_case(), initialized, MAX_CASES, and y.

private int get_tetra_case Case_types  case_flags[2][2][2],
int  indices[][3],
int  edge_indices[][2][3]
 

Definition at line 103 of file marching_tetra.c.

References Case_types, get_tetra_polygon(), PLUS_FLAG, and y.

Referenced by lookup_case().

public int get_tetra_isosurface_polygons int  x,
int  y,
int  z,
Real  corners[2][2][2],
Real  isovalue,
int *  sizes[],
voxel_point_type points[]
 

Definition at line 368 of file marching_tetra.c.

References Case_types, cases, check_initialized(), create_case(), delete_case(), case_struct::indices, case_struct::n_polygons, case_struct::sizes, and y.

Referenced by get_polygons().

private int get_tetra_polygon Case_types  tetra_flags[],
int  tetra_indices[][2]
 

Definition at line 73 of file marching_tetra.c.

References MINUS_FLAG.

Referenced by get_tetra_case().

private int lookup_case Case_types  case_flags[2][2][2],
int  sizes[],
int  edge_indices[][2][3]
 

Definition at line 172 of file marching_tetra.c.

References get_tetra_case().

Referenced by create_case().

public void translate_from_edge_index int  edge_index,
int  offset[]
 

Definition at line 272 of file marching_tetra.c.

Referenced by get_isosurface_point().

public void translate_to_edge_index int  x1,
int  y1,
int  z1,
int  x2,
int  y2,
int  z2,
voxel_point_type edge_point
 

Definition at line 231 of file marching_tetra.c.

References voxel_point_type::coord, and voxel_point_type::edge_intersected.

Referenced by create_case().


Variable Documentation

private case_struct cases[2][2][2][2][2][2][2][2][2][2][2]
 

Definition at line 18 of file marching_tetra.c.

private BOOLEAN initialized = FALSE
 

Definition at line 20 of file marching_tetra.c.


Generated on Wed Jul 28 09:11:10 2004 for BICPL by doxygen 1.3.7