#include <vtkEncodedGradientEstimator.h>
Inheritance diagram for vtkEncodedGradientEstimator:
Public Methods | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent index) |
virtual void | SetInput (vtkImageData *) |
virtual vtkImageData * | GetInput () |
virtual void | SetGradientMagnitudeScale (float) |
virtual float | GetGradientMagnitudeScale () |
virtual void | SetGradientMagnitudeBias (float) |
virtual float | GetGradientMagnitudeBias () |
virtual void | SetBoundsClip (int) |
virtual int | GetBoundsClip () |
virtual void | BoundsClipOn () |
virtual void | BoundsClipOff () |
virtual void | SetBounds (int, int, int, int, int, int) |
virtual void | SetBounds (int[6]) |
virtual int * | GetBounds () |
virtual void | GetBounds (int data[6]) |
void | Update (void) |
unsigned short * | GetEncodedNormals (void) |
int | GetEncodedNormalIndex (int xyz_index) |
int | GetEncodedNormalIndex (int x_index, int y_index, int z_index) |
unsigned char * | GetGradientMagnitudes (void) |
virtual void | SetNumberOfThreads (int) |
virtual int | GetNumberOfThreads () |
void | SetDirectionEncoder (vtkDirectionEncoder *direnc) |
virtual vtkDirectionEncoder * | GetDirectionEncoder () |
virtual void | SetComputeGradientMagnitudes (int) |
virtual int | GetComputeGradientMagnitudes () |
virtual void | ComputeGradientMagnitudesOn () |
virtual void | ComputeGradientMagnitudesOff () |
virtual void | SetCylinderClip (int) |
virtual int | GetCylinderClip () |
virtual void | CylinderClipOn () |
virtual void | CylinderClipOff () |
virtual float | GetLastUpdateTimeInSeconds () |
virtual float | GetLastUpdateTimeInCPUSeconds () |
virtual int | GetUseCylinderClip () |
int * | GetCircleLimits () |
void | SetZeroNormalThreshold (float v) |
virtual float | GetZeroNormalThreshold () |
virtual void | SetZeroPad (int) |
virtual int | GetZeroPad () |
virtual void | ZeroPadOn () |
virtual void | ZeroPadOff () |
virtual int * | GetInputSize () |
virtual void | GetInputSize (int data[3]) |
virtual float * | GetInputAspect () |
virtual void | GetInputAspect (float data[3]) |
Static Public Methods | |
int | IsTypeOf (const char *type) |
vtkEncodedGradientEstimator * | SafeDownCast (vtkObject *o) |
Public Attributes | |
vtkImageData * | Input |
unsigned short * | EncodedNormals |
int | EncodedNormalsSize [3] |
unsigned char * | GradientMagnitudes |
vtkTimeStamp | BuildTime |
Protected Methods | |
vtkEncodedGradientEstimator () | |
~vtkEncodedGradientEstimator () | |
vtkEncodedGradientEstimator (const vtkEncodedGradientEstimator &) | |
void | operator= (const vtkEncodedGradientEstimator &) |
virtual void | UpdateNormals (void)=0 |
void | ComputeCircleLimits (int size) |
Protected Attributes | |
int | NumberOfThreads |
vtkMultiThreader * | Threader |
vtkDirectionEncoder * | DirectionEncoder |
float | GradientMagnitudeScale |
float | GradientMagnitudeBias |
float | LastUpdateTimeInSeconds |
float | LastUpdateTimeInCPUSeconds |
float | ZeroNormalThreshold |
int | CylinderClip |
int * | CircleLimits |
int | CircleLimitsSize |
int | UseCylinderClip |
int | BoundsClip |
int | Bounds [6] |
int | InputSize [3] |
float | InputAspect [3] |
int | ComputeGradientMagnitudes |
int | ZeroPad |
vtkEncodedGradientEstimator is an abstract superclass for gradient estimation. It takes a scalar input of vtkImageData, computes a gradient value for every point, and encodes this value into a three byte value (2 for direction, 1 for magnitude) using the vtkDirectionEncoder. The direction encoder is defaulted to a vtkRecursiveSphereDirectionEncoder, but can be overridden with the SetDirectionEncoder method. The scale and the bias values for the gradient magnitude are used to convert it into a one byte value according to v = m*scale + bias where m is the magnitude and v is the resulting one byte value.
|
Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. |
|
Get the encoded normal at an x,y,z location in the volume |
|
Get the encoded normals. |
|
Get the gradient magnitudes |
|
Get the time required for the last update in seconds or cpu seconds |
|
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 vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. |
|
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 vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. |
|
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 vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. |
|
Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h. Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. |
|
Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax. |
|
Turn on / off the bounding of the normal computation by the this->Bounds bounding box |
|
If you don't want to compute gradient magnitudes (but you do want normals for shading) this can be used. Be careful - if if you a non-constant gradient magnitude transfer function and you turn this on, it may crash |
|
If the data in each slice is only contained within a circle circumscribed within the slice, and the slice is square, then don't compute anything outside the circle. This circle through the slices forms a cylinder. |
|
Set / Get the direction encoder used to encode normal directions to fit within two bytes |
|
Set/Get the scale and bias for the gradient magnitude |
|
Set/Get the scalar input for which the normals will be calculated |
|
Get/Set the number of threads to create when encoding normals This defaults to the number of available processors on the machine |
|
Set / Get the ZeroNormalThreshold - this defines the minimum magnitude of a gradient that is considered sufficient to define a direction. Gradients with magnitudes at or less than this value are given a "zero normal" index. These are handled specially in the shader, and you can set the intensity of light for these zero normals in the gradient shader. |
|
Assume that the data value outside the volume is zero when computing normals. |
|
Recompute the encoded normals and gradient magnitudes. |