#include <vtkMCubesReader.h>
Inheritance diagram for vtkMCubesReader:
vtkMCubesReader is a source object that reads binary marching cubes files. (Marching cubes is an isosurfacing technique that generates many triangles.) The binary format is supported by W. Lorensen's marching cubes program (and the vtkSliceCubes object). The format repeats point coordinates, so this object will merge the points with a vtkLocator object. You can choose to supply the vtkLocator or use the default.
Because points are merged when read, degenerate triangles may be removed. Thus the number of triangles read may be fewer than the number of triangles actually created.
The point merging does not take into account that the same point may have different normals. For example, running vtkPolyDataNormals after vtkContourFilter may split triangles because of the FeatureAngle ivar. Subsequent reading with vtkMCubesReader will merge the points and use the first point's normal. For the most part, this is undesirable.
Normals are generated from the gradient of the data scalar values. Hence the normals may on occasion point in a direction inconsistent with the ordering of the triangle vertices. If this happens, the resulting surface may be "black". Reverse the sense of the FlipNormals boolean flag to correct this.
Definition at line 65 of file vtkMCubesReader.h.
virtual void | SetFileName (const char *) |
virtual char * | GetFileName () |
static vtkMCubesReader * | New () |
Public Types | |
typedef vtkPolyDataAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | CreateDefaultLocator () |
unsigned long | GetMTime () |
virtual void | SetLimitsFileName (const char *) |
virtual char * | GetLimitsFileName () |
virtual void | SetHeaderSize (int) |
virtual int | GetHeaderSize () |
virtual void | SetFlipNormals (int) |
virtual int | GetFlipNormals () |
virtual void | FlipNormalsOn () |
virtual void | FlipNormalsOff () |
virtual void | SetNormals (int) |
virtual int | GetNormals () |
virtual void | NormalsOn () |
virtual void | NormalsOff () |
void | SetDataByteOrderToBigEndian () |
void | SetDataByteOrderToLittleEndian () |
int | GetDataByteOrder () |
void | SetDataByteOrder (int) |
const char * | GetDataByteOrderAsString () |
virtual void | SetSwapBytes (int) |
virtual int | GetSwapBytes () |
virtual void | SwapBytesOn () |
virtual void | SwapBytesOff () |
void | SetLocator (vtkPointLocator *locator) |
virtual vtkPointLocator * | GetLocator () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkMCubesReader * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
vtkMCubesReader () | |
~vtkMCubesReader () | |
int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
Protected Attributes | |
char * | FileName |
char * | LimitsFileName |
vtkPointLocator * | Locator |
int | SwapBytes |
int | HeaderSize |
int | FlipNormals |
int | Normals |
|
Reimplemented from vtkPolyDataAlgorithm. Definition at line 68 of file vtkMCubesReader.h. |
|
|
|
|
|
Reimplemented from vtkPolyDataAlgorithm. |
|
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkPolyDataAlgorithm. |
|
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. Reimplemented from vtkPolyDataAlgorithm. |
|
Reimplemented from vtkPolyDataAlgorithm. |
|
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from vtkPolyDataAlgorithm. |
|
Construct object with FlipNormals turned off and Normals set to true. Reimplemented from vtkPolyDataAlgorithm. |
|
Specify file name of marching cubes file. |
|
Specify file name of marching cubes file. |
|
Set / get the file name of the marching cubes limits file. |
|
Set / get the file name of the marching cubes limits file. |
|
Specify a header size if one exists. The header is skipped and not used at this time. |
|
Specify a header size if one exists. The header is skipped and not used at this time. |
|
Specify whether to flip normals in opposite direction. Flipping ONLY changes the direction of the normal vector. Contrast this with flipping in vtkPolyDataNormals which flips both the normal and the cell point order. |
|
Specify whether to flip normals in opposite direction. Flipping ONLY changes the direction of the normal vector. Contrast this with flipping in vtkPolyDataNormals which flips both the normal and the cell point order. |
|
Specify whether to flip normals in opposite direction. Flipping ONLY changes the direction of the normal vector. Contrast this with flipping in vtkPolyDataNormals which flips both the normal and the cell point order. |
|
Specify whether to flip normals in opposite direction. Flipping ONLY changes the direction of the normal vector. Contrast this with flipping in vtkPolyDataNormals which flips both the normal and the cell point order. |
|
Specify whether to read normals. |
|
Specify whether to read normals. |
|
Specify whether to read normals. |
|
Specify whether to read normals. |
|
These methods should be used instead of the SwapBytes methods. They indicate the byte ordering of the file you are trying to read in. These methods will then either swap or not swap the bytes depending on the byte ordering of the machine it is being run on. For example, reading in a BigEndian file on a BigEndian machine will result in no swapping. Trying to read the same file on a LittleEndian machine will result in swapping. As a quick note most UNIX machines are BigEndian while PC's and VAX tend to be LittleEndian. So if the file you are reading in was generated on a VAX or PC, SetDataByteOrderToLittleEndian otherwise SetDataByteOrderToBigEndian. |
|
These methods should be used instead of the SwapBytes methods. They indicate the byte ordering of the file you are trying to read in. These methods will then either swap or not swap the bytes depending on the byte ordering of the machine it is being run on. For example, reading in a BigEndian file on a BigEndian machine will result in no swapping. Trying to read the same file on a LittleEndian machine will result in swapping. As a quick note most UNIX machines are BigEndian while PC's and VAX tend to be LittleEndian. So if the file you are reading in was generated on a VAX or PC, SetDataByteOrderToLittleEndian otherwise SetDataByteOrderToBigEndian. |
|
These methods should be used instead of the SwapBytes methods. They indicate the byte ordering of the file you are trying to read in. These methods will then either swap or not swap the bytes depending on the byte ordering of the machine it is being run on. For example, reading in a BigEndian file on a BigEndian machine will result in no swapping. Trying to read the same file on a LittleEndian machine will result in swapping. As a quick note most UNIX machines are BigEndian while PC's and VAX tend to be LittleEndian. So if the file you are reading in was generated on a VAX or PC, SetDataByteOrderToLittleEndian otherwise SetDataByteOrderToBigEndian. |
|
These methods should be used instead of the SwapBytes methods. They indicate the byte ordering of the file you are trying to read in. These methods will then either swap or not swap the bytes depending on the byte ordering of the machine it is being run on. For example, reading in a BigEndian file on a BigEndian machine will result in no swapping. Trying to read the same file on a LittleEndian machine will result in swapping. As a quick note most UNIX machines are BigEndian while PC's and VAX tend to be LittleEndian. So if the file you are reading in was generated on a VAX or PC, SetDataByteOrderToLittleEndian otherwise SetDataByteOrderToBigEndian. |
|
These methods should be used instead of the SwapBytes methods. They indicate the byte ordering of the file you are trying to read in. These methods will then either swap or not swap the bytes depending on the byte ordering of the machine it is being run on. For example, reading in a BigEndian file on a BigEndian machine will result in no swapping. Trying to read the same file on a LittleEndian machine will result in swapping. As a quick note most UNIX machines are BigEndian while PC's and VAX tend to be LittleEndian. So if the file you are reading in was generated on a VAX or PC, SetDataByteOrderToLittleEndian otherwise SetDataByteOrderToBigEndian. |
|
Turn on/off byte swapping. |
|
Turn on/off byte swapping. |
|
Turn on/off byte swapping. |
|
Turn on/off byte swapping. |
|
Set / get a spatial locator for merging points. By default, an instance of vtkMergePoints is used. |
|
Set / get a spatial locator for merging points. By default, an instance of vtkMergePoints is used. |
|
Create default locator. Used to create one when none is specified. |
|
Return the mtime also considering the locator. Reimplemented from vtkObject. |
|
This is called by the superclass. This is the method you should override. Reimplemented from vtkPolyDataAlgorithm. |
|
Definition at line 154 of file vtkMCubesReader.h. |
|
Definition at line 155 of file vtkMCubesReader.h. |
|
Definition at line 156 of file vtkMCubesReader.h. |
|
Definition at line 157 of file vtkMCubesReader.h. |
|
Definition at line 158 of file vtkMCubesReader.h. |
|
Definition at line 159 of file vtkMCubesReader.h. |
|
Definition at line 160 of file vtkMCubesReader.h. |