#include <smoothmask3d.h>
Display a mesh for a mask. It is an isosurface whose isovalue represents the boundary of the mask.
This classes uses a binary mask of any type. Possible values of the masks are 0 and anything but 0.
For better results use the following OpenGL initialization:
glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
To use it, use:
unsigned char* volume; // e.g., [512*512*512] volume unsigned char* mask; // e.g., [512*512*512] fill mask Display::SmoothMask3D displayMask; displayMask.update(volume, mask, 512,512,512); glColor3f(0.8,0,0); // color of the mask displayMask.display();
Public Member Functions | |
SmoothMask3D () | |
~SmoothMask3D () | |
template<typename DataType, typename MaskType> | |
void | update (const DataType *data, const MaskType *mask, unsigned int width, unsigned int height, unsigned int depth) |
void | display () const |
void | clear () |
Classes | |
struct | GRIDCELL |
struct | TRIANGLE |
struct | XYZ |
Display::SmoothMask3D::SmoothMask3D | ( | ) |
Display::SmoothMask3D::~SmoothMask3D | ( | ) |
void Display::SmoothMask3D::update | ( | const DataType * | data, | |
const MaskType * | mask, | |||
unsigned int | width, | |||
unsigned int | height, | |||
unsigned int | depth | |||
) | [inline] |
update the visualizer with a new mask internally creates or update the display list
data | volume data (we will get its gradient for the surface normal | |
mask | binary mask (either 0 or else) |
void Display::SmoothMask3D::display | ( | ) | const |
display the display list
void Display::SmoothMask3D::clear | ( | ) |
clear the mask, remove any display list