Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# vtkEncodedGradientEstimator Class Reference

`#include <vtkEncodedGradientEstimator.h>`

Inheritance diagram for vtkEncodedGradientEstimator:

[legend]
Collaboration diagram for vtkEncodedGradientEstimator:

[legend]
List of all members.

## Detailed Description

Superclass for gradient estimation.

Date:
  2002/10/28 19:02:06

Revision:
  1.31

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.

See also:
  vtkFiniteDifferenceGradientEstimator vtkDirectionEncoder

Created by:
  - Avila, Lisa

CVS contributions (if > 5%):
  - Avila, Lisa (84%)

CVS logs (CVSweb):
  - .`h` (`/Rendering/vtkEncodedGradientEstimator.h)`
  - .`cxx` (`/Rendering/vtkEncodedGradientEstimator.cxx)`

Definition at line 56 of file vtkEncodedGradientEstimator.h.

## Public Types

typedef vtkObject | Superclass

## Public Methods

virtual const char * | GetClassName ()
virtual int | IsA (const char *type)
void | PrintSelf (ostream &os, vtkIndent indent)
void | Update (void)
unsigned short * | GetEncodedNormals (void)
unsigned char * | GetGradientMagnitudes (void)
virtual int | GetUseCylinderClip ()
int * | GetCircleLimits ()
virtual int * | GetInputSize ()
virtual void | GetInputSize (int data[3])
virtual float * | GetInputAspect ()
virtual void | GetInputAspect (float data[3])
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])
int | GetEncodedNormalIndex (int xyz_index)
int | GetEncodedNormalIndex (int x_index, int y_index, int z_index)
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 ()
void | SetZeroNormalThreshold (float v)
virtual float | GetZeroNormalThreshold ()
virtual void | SetZeroPad (int)
virtual int | GetZeroPad ()
virtual void | ZeroPadOn ()
virtual void | ZeroPadOff ()

## 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 ()
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

## Member Typedef Documentation

typedef vtkObject vtkEncodedGradientEstimator::Superclass

| Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator. Definition at line 59 of file vtkEncodedGradientEstimator.h.

## Constructor & Destructor Documentation

vtkEncodedGradientEstimator::vtkEncodedGradientEstimator | ( |  | ) | `[protected]`

vtkEncodedGradientEstimator::~vtkEncodedGradientEstimator | ( |  | ) | `[protected]`

## Member Function Documentation

virtual const char* vtkEncodedGradientEstimator::GetClassName | ( |  | ) | `[virtual]`

| Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator.

int vtkEncodedGradientEstimator::IsTypeOf | ( | const char * | type | ) | `[static]`

| 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 vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator.

virtual int vtkEncodedGradientEstimator::IsA | ( | const char * | type | ) | `[virtual]`

| 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 vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator.

vtkEncodedGradientEstimator* vtkEncodedGradientEstimator::SafeDownCast | ( | vtkObject * | o | ) | `[static]`

| Reimplemented from vtkObject. Reimplemented in vtkFiniteDifferenceGradientEstimator.

void vtkEncodedGradientEstimator::PrintSelf | ( | ostream & | os,
|  | vtkIndent | indent
| ) | `[virtual]`

| 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.

virtual void vtkEncodedGradientEstimator::SetInput | ( | vtkImageData * |  | ) | `[virtual]`

| Set/Get the scalar input for which the normals will be calculated

virtual vtkImageData* vtkEncodedGradientEstimator::GetInput | ( |  | ) | `[virtual]`

| Set/Get the scalar input for which the normals will be calculated

virtual void vtkEncodedGradientEstimator::SetGradientMagnitudeScale | ( | float |  | ) | `[virtual]`

| Set/Get the scale and bias for the gradient magnitude

virtual float vtkEncodedGradientEstimator::GetGradientMagnitudeScale | ( |  | ) | `[virtual]`

| Set/Get the scale and bias for the gradient magnitude

virtual void vtkEncodedGradientEstimator::SetGradientMagnitudeBias | ( | float |  | ) | `[virtual]`

| Set/Get the scale and bias for the gradient magnitude

virtual float vtkEncodedGradientEstimator::GetGradientMagnitudeBias | ( |  | ) | `[virtual]`

| Set/Get the scale and bias for the gradient magnitude

virtual void vtkEncodedGradientEstimator::SetBoundsClip | ( | int |  | ) | `[virtual]`

| Turn on / off the bounding of the normal computation by the this->Bounds bounding box

virtual int vtkEncodedGradientEstimator::GetBoundsClip | ( |  | ) | `[virtual]`

| Turn on / off the bounding of the normal computation by the this->Bounds bounding box

virtual void vtkEncodedGradientEstimator::BoundsClipOn | ( |  | ) | `[virtual]`

| Turn on / off the bounding of the normal computation by the this->Bounds bounding box

virtual void vtkEncodedGradientEstimator::BoundsClipOff | ( |  | ) | `[virtual]`

| Turn on / off the bounding of the normal computation by the this->Bounds bounding box

virtual void vtkEncodedGradientEstimator::SetBounds | ( | int | ,
|  | int | ,
|  | int | ,
|  | int | ,
|  | int | ,
|  | int |
| ) | `[virtual]`

| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax.

virtual void vtkEncodedGradientEstimator::SetBounds | ( | int | [6] | ) | `[virtual]`

| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax.

virtual int* vtkEncodedGradientEstimator::GetBounds | ( |  | ) | `[virtual]`

| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax.

virtual void vtkEncodedGradientEstimator::GetBounds | ( | int | data[6] | ) | `[virtual]`

| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax.

void vtkEncodedGradientEstimator::Update | ( | void |  | ) |

| Recompute the encoded normals and gradient magnitudes.

unsigned short* vtkEncodedGradientEstimator::GetEncodedNormals | ( | void |  | ) |

| Get the encoded normals.

int vtkEncodedGradientEstimator::GetEncodedNormalIndex | ( | int | xyz_index | ) |

| Get the encoded normal at an x,y,z location in the volume

int vtkEncodedGradientEstimator::GetEncodedNormalIndex | ( | int | x_index,
|  | int | y_index,
|  | int | z_index
| ) |

| Get the encoded normal at an x,y,z location in the volume

unsigned char* vtkEncodedGradientEstimator::GetGradientMagnitudes | ( | void |  | ) |

| Get the gradient magnitudes

virtual void vtkEncodedGradientEstimator::SetNumberOfThreads | ( | int |  | ) | `[virtual]`

| Get/Set the number of threads to create when encoding normals This defaults to the number of available processors on the machine

virtual int vtkEncodedGradientEstimator::GetNumberOfThreads | ( |  | ) | `[virtual]`

| Get/Set the number of threads to create when encoding normals This defaults to the number of available processors on the machine

void vtkEncodedGradientEstimator::SetDirectionEncoder | ( | vtkDirectionEncoder * | direnc | ) |

| Set / Get the direction encoder used to encode normal directions to fit within two bytes

virtual vtkDirectionEncoder* vtkEncodedGradientEstimator::GetDirectionEncoder | ( |  | ) | `[virtual]`

| Set / Get the direction encoder used to encode normal directions to fit within two bytes

virtual void vtkEncodedGradientEstimator::SetComputeGradientMagnitudes | ( | int |  | ) | `[virtual]`

| 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

virtual int vtkEncodedGradientEstimator::GetComputeGradientMagnitudes | ( |  | ) | `[virtual]`

| 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

virtual void vtkEncodedGradientEstimator::ComputeGradientMagnitudesOn | ( |  | ) | `[virtual]`

| 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

virtual void vtkEncodedGradientEstimator::ComputeGradientMagnitudesOff | ( |  | ) | `[virtual]`

| 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

virtual void vtkEncodedGradientEstimator::SetCylinderClip | ( | int |  | ) | `[virtual]`

| 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.

virtual int vtkEncodedGradientEstimator::GetCylinderClip | ( |  | ) | `[virtual]`

| 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.

virtual void vtkEncodedGradientEstimator::CylinderClipOn | ( |  | ) | `[virtual]`

| 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.

virtual void vtkEncodedGradientEstimator::CylinderClipOff | ( |  | ) | `[virtual]`

| 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.

virtual float vtkEncodedGradientEstimator::GetLastUpdateTimeInSeconds | ( |  | ) | `[virtual]`

| Get the time required for the last update in seconds or cpu seconds

virtual float vtkEncodedGradientEstimator::GetLastUpdateTimeInCPUSeconds | ( |  | ) | `[virtual]`

| Get the time required for the last update in seconds or cpu seconds

virtual int vtkEncodedGradientEstimator::GetUseCylinderClip | ( |  | ) | `[virtual]`

int* vtkEncodedGradientEstimator::GetCircleLimits | ( |  | ) | `[inline]`

| Definition at line 148 of file vtkEncodedGradientEstimator.h.

void vtkEncodedGradientEstimator::SetZeroNormalThreshold | ( | float | v | ) |

| 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.

virtual float vtkEncodedGradientEstimator::GetZeroNormalThreshold | ( |  | ) | `[virtual]`

| 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.

virtual void vtkEncodedGradientEstimator::SetZeroPad | ( | int |  | ) | `[virtual]`

| Assume that the data value outside the volume is zero when computing normals.

virtual int vtkEncodedGradientEstimator::GetZeroPad | ( |  | ) | `[virtual]`

| Assume that the data value outside the volume is zero when computing normals.

virtual void vtkEncodedGradientEstimator::ZeroPadOn | ( |  | ) | `[virtual]`

| Assume that the data value outside the volume is zero when computing normals.

virtual void vtkEncodedGradientEstimator::ZeroPadOff | ( |  | ) | `[virtual]`

| Assume that the data value outside the volume is zero when computing normals.

virtual int* vtkEncodedGradientEstimator::GetInputSize | ( |  | ) | `[virtual]`

virtual void vtkEncodedGradientEstimator::GetInputSize | ( | int | data[3] | ) | `[virtual]`

virtual float* vtkEncodedGradientEstimator::GetInputAspect | ( |  | ) | `[virtual]`

virtual void vtkEncodedGradientEstimator::GetInputAspect | ( | float | data[3] | ) | `[virtual]`

virtual void vtkEncodedGradientEstimator::UpdateNormals | ( | void |  | ) | `[protected, pure virtual]`

| Implemented in vtkFiniteDifferenceGradientEstimator.

void vtkEncodedGradientEstimator::ComputeCircleLimits | ( | int | size | ) | `[protected]`

## Member Data Documentation

vtkImageData* vtkEncodedGradientEstimator::Input

| Definition at line 176 of file vtkEncodedGradientEstimator.h.

unsigned short* vtkEncodedGradientEstimator::EncodedNormals

| Definition at line 179 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::EncodedNormalsSize[3]

| Definition at line 180 of file vtkEncodedGradientEstimator.h.

unsigned char* vtkEncodedGradientEstimator::GradientMagnitudes

| Definition at line 183 of file vtkEncodedGradientEstimator.h.

vtkTimeStamp vtkEncodedGradientEstimator::BuildTime

| Definition at line 186 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::NumberOfThreads`[protected]`

| Definition at line 198 of file vtkEncodedGradientEstimator.h.

vtkMultiThreader* vtkEncodedGradientEstimator::Threader`[protected]`

| Definition at line 200 of file vtkEncodedGradientEstimator.h.

vtkDirectionEncoder* vtkEncodedGradientEstimator::DirectionEncoder`[protected]`

| Definition at line 202 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::GradientMagnitudeScale`[protected]`

| Definition at line 206 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::GradientMagnitudeBias`[protected]`

| Definition at line 207 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::LastUpdateTimeInSeconds`[protected]`

| Definition at line 209 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::LastUpdateTimeInCPUSeconds`[protected]`

| Definition at line 210 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::ZeroNormalThreshold`[protected]`

| Definition at line 212 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::CylinderClip`[protected]`

| Definition at line 214 of file vtkEncodedGradientEstimator.h.

int* vtkEncodedGradientEstimator::CircleLimits`[protected]`

| Definition at line 215 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::CircleLimitsSize`[protected]`

| Definition at line 216 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::UseCylinderClip`[protected]`

| Definition at line 217 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::BoundsClip`[protected]`

| Definition at line 220 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::Bounds[6]`[protected]`

| Definition at line 221 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::InputSize[3]`[protected]`

| Definition at line 223 of file vtkEncodedGradientEstimator.h.

float vtkEncodedGradientEstimator::InputAspect[3]`[protected]`

| Definition at line 224 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::ComputeGradientMagnitudes`[protected]`

| Definition at line 226 of file vtkEncodedGradientEstimator.h.

int vtkEncodedGradientEstimator::ZeroPad`[protected]`

| Definition at line 228 of file vtkEncodedGradientEstimator.h.

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

- Rendering/vtkEncodedGradientEstimator.h