VTK: vtkFiniteDifferenceGradientEstimator Class Reference

| VTK 9.3.1

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
vtkFiniteDifferenceGradientEstimator Class Reference

Use finite differences to estimate gradient. More...

`#include <vtkFiniteDifferenceGradientEstimator.h>`

Inheritance diagram for vtkFiniteDifferenceGradientEstimator:
[legend]
Collaboration diagram for vtkFiniteDifferenceGradientEstimator:
[legend]

## Public Types
typedef vtkEncodedGradientEstimator | Superclass
Public Types inherited from vtkEncodedGradientEstimator
typedef vtkObject | Superclass

## Public Member Functions
virtual vtkTypeBool | IsA (const char *type)
| Return 1 if this class is the same type of (or a subclass of) the named class. More...
vtkFiniteDifferenceGradientEstimator * | NewInstance () const
void | PrintSelf (ostream &os, vtkIndent indent) override
| Methods invoked by print to print information about the object including superclasses. More...
virtual void | SetSampleSpacingInVoxels (int)
| Set/Get the spacing between samples for the finite differences method used to compute the normal. More...
virtual int | GetSampleSpacingInVoxels ()
| Set/Get the spacing between samples for the finite differences method used to compute the normal. More...
Public Member Functions inherited from vtkEncodedGradientEstimator
vtkEncodedGradientEstimator * | NewInstance () const
void | Update ()
| Recompute the encoded normals and gradient magnitudes. More...
unsigned short * | GetEncodedNormals ()
| Get the encoded normals. More...
unsigned char * | GetGradientMagnitudes ()
| Get the gradient magnitudes. More...
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 | SetInputData (vtkImageData *)
| Set/Get the scalar input for which the normals will be calculated. More...
virtual vtkImageData * | GetInputData ()
| Set/Get the scalar input for which the normals will be calculated. More...
virtual void | SetGradientMagnitudeScale (float)
| Set/Get the scale and bias for the gradient magnitude. More...
virtual float | GetGradientMagnitudeScale ()
| Set/Get the scale and bias for the gradient magnitude. More...
virtual void | SetGradientMagnitudeBias (float)
| Set/Get the scale and bias for the gradient magnitude. More...
virtual float | GetGradientMagnitudeBias ()
| Set/Get the scale and bias for the gradient magnitude. More...
virtual void | SetBoundsClip (vtkTypeBool)
| Turn on / off the bounding of the normal computation by the this->Bounds bounding box. More...
virtual vtkTypeBool | GetBoundsClip ()
| Turn on / off the bounding of the normal computation by the this->Bounds bounding box. More...
virtual void | BoundsClipOn ()
| Turn on / off the bounding of the normal computation by the this->Bounds bounding box. More...
virtual void | BoundsClipOff ()
| Turn on / off the bounding of the normal computation by the this->Bounds bounding box. More...
virtual void | SetBounds (int, int, int, int, int, int)
| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax. More...
virtual void | SetBounds (int[6])
| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax. More...
virtual int * | GetBounds ()
| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax. More...
virtual void | GetBounds (int data[6])
| Set / Get the bounds of the computation (used if this->ComputationBounds is 1.) The bounds are specified xmin, xmax, ymin, ymax, zmin, zmax. More...
int | GetEncodedNormalIndex (vtkIdType xyzIndex)
| Get the encoded normal at an x,y,z location in the volume. More...
int | GetEncodedNormalIndex (int xIndex, int yIndex, int zIndex)
| Get the encoded normal at an x,y,z location in the volume. More...
virtual void | SetNumberOfThreads (int)
| Get/Set the number of threads to create when encoding normals This defaults to the number of available processors on the machine. More...
virtual int | GetNumberOfThreads ()
| Get/Set the number of threads to create when encoding normals This defaults to the number of available processors on the machine. More...
void | SetDirectionEncoder (vtkDirectionEncoder *direnc)
| Set / Get the direction encoder used to encode normal directions to fit within two bytes. More...
virtual vtkDirectionEncoder * | GetDirectionEncoder ()
| Set / Get the direction encoder used to encode normal directions to fit within two bytes. More...
virtual void | SetComputeGradientMagnitudes (vtkTypeBool)
| If you don't want to compute gradient magnitudes (but you do want normals for shading) this can be used. More...
virtual vtkTypeBool | GetComputeGradientMagnitudes ()
| If you don't want to compute gradient magnitudes (but you do want normals for shading) this can be used. More...
virtual void | ComputeGradientMagnitudesOn ()
| If you don't want to compute gradient magnitudes (but you do want normals for shading) this can be used. More...
virtual void | ComputeGradientMagnitudesOff ()
| If you don't want to compute gradient magnitudes (but you do want normals for shading) this can be used. More...
virtual void | SetCylinderClip (vtkTypeBool)
| 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. More...
virtual vtkTypeBool | GetCylinderClip ()
| 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. More...
virtual void | CylinderClipOn ()
| 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. More...
virtual void | CylinderClipOff ()
| 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. More...
virtual float | GetLastUpdateTimeInSeconds ()
| Get the time required for the last update in seconds or cpu seconds. More...
virtual float | GetLastUpdateTimeInCPUSeconds ()
| Get the time required for the last update in seconds or cpu seconds. More...
void | SetZeroNormalThreshold (float v)
| Set / Get the ZeroNormalThreshold - this defines the minimum magnitude of a gradient that is considered sufficient to define a direction. More...
virtual float | GetZeroNormalThreshold ()
| Set / Get the ZeroNormalThreshold - this defines the minimum magnitude of a gradient that is considered sufficient to define a direction. More...
virtual void | SetZeroPad (vtkTypeBool)
| Assume that the data value outside the volume is zero when computing normals. More...
virtual vtkTypeBool | GetZeroPad ()
| Assume that the data value outside the volume is zero when computing normals. More...
virtual void | ZeroPadOn ()
| Assume that the data value outside the volume is zero when computing normals. More...
virtual void | ZeroPadOff ()
| Assume that the data value outside the volume is zero when computing normals. More...
Public Member Functions inherited from vtkObject
| vtkBaseTypeMacro (vtkObject, vtkObjectBase)
virtual void | DebugOn ()
| Turn debugging output on. More...
virtual void | DebugOff ()
| Turn debugging output off. More...
bool | GetDebug ()
| Get the value of the debug flag. More...
void | SetDebug (bool debugFlag)
| Set the value of the debug flag. More...
virtual void | Modified ()
| Update the modification time for this object. More...
virtual vtkMTimeType | GetMTime ()
| Return this object's modified time. More...
void | RemoveObserver (unsigned long tag)
void | RemoveObservers (unsigned long event)
void | RemoveObservers (const char *event)
void | RemoveAllObservers ()
vtkTypeBool | HasObserver (unsigned long event)
vtkTypeBool | HasObserver (const char *event)
vtkTypeBool | InvokeEvent (unsigned long event)
vtkTypeBool | InvokeEvent (const char *event)
std::string | GetObjectDescription () const override
| The object description printed in messages and PrintSelf output. More...
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
vtkCommand * | GetCommand (unsigned long tag)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
void | RemoveObserver (vtkCommand *)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
void | RemoveObservers (unsigned long event, vtkCommand *)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
void | RemoveObservers (const char *event, vtkCommand *)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
vtkTypeBool | HasObserver (const char *event, vtkCommand *)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
| Allow user to set the AbortFlagOn() with the return value of the callback method. More...
vtkTypeBool | InvokeEvent (unsigned long event, void *callData)
| This method invokes an event and return whether the event was aborted or not. More...
vtkTypeBool | InvokeEvent (const char *event, void *callData)
| This method invokes an event and return whether the event was aborted or not. More...
virtual void | SetObjectName (const std::string &objectName)
| Set/get the name of this object for reporting purposes. More...
virtual std::string | GetObjectName () const
| Set/get the name of this object for reporting purposes. More...
Public Member Functions inherited from vtkObjectBase
const char * | GetClassName () const
| Return the class name as a string. More...
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name)
| Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
virtual void | Delete ()
| Delete a VTK object. More...
virtual void | FastDelete ()
| Delete a reference to this object. More...
void | InitializeObjectBase ()
void | Print (ostream &os)
| Print an object to an ostream. More...
virtual void | Register (vtkObjectBase *o)
| Increase the reference count (mark as used by another object). More...
virtual void | UnRegister (vtkObjectBase *o)
| Decrease the reference count (release by another object). More...
int | GetReferenceCount ()
| Return the current reference count of this object. More...
void | SetReferenceCount (int)
| Sets the reference count. More...
bool | GetIsInMemkind () const
| A local state flag that remembers whether this object lives in the normal or extended memory space. More...
virtual void | PrintHeader (ostream &os, vtkIndent indent)
| Methods invoked by print to print information about the object including superclasses. More...
virtual void | PrintTrailer (ostream &os, vtkIndent indent)
| Methods invoked by print to print information about the object including superclasses. More...
virtual bool | UsesGarbageCollector () const
| Indicate whether the class uses `vtkGarbageCollector` or not. More...

## Static Public Member Functions
static vtkTypeBool | IsTypeOf (const char *type)
static vtkFiniteDifferenceGradientEstimator * | SafeDownCast (vtkObjectBase *o)
static vtkFiniteDifferenceGradientEstimator * | New ()
| Construct a vtkFiniteDifferenceGradientEstimator with a SampleSpacingInVoxels of 1. More...
Static Public Member Functions inherited from vtkEncodedGradientEstimator
static vtkTypeBool | IsTypeOf (const char *type)
static vtkEncodedGradientEstimator * | SafeDownCast (vtkObjectBase *o)
Static Public Member Functions inherited from vtkObject
static vtkObject * | New ()
| Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
static void | BreakOnError ()
| This method is called when vtkErrorMacro executes. More...
static void | SetGlobalWarningDisplay (vtkTypeBool val)
| This is a global flag that controls whether any debug, warning or error messages are displayed. More...
static void | GlobalWarningDisplayOn ()
| This is a global flag that controls whether any debug, warning or error messages are displayed. More...
static void | GlobalWarningDisplayOff ()
| This is a global flag that controls whether any debug, warning or error messages are displayed. More...
static vtkTypeBool | GetGlobalWarningDisplay ()
| This is a global flag that controls whether any debug, warning or error messages are displayed. More...
Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool | IsTypeOf (const char *name)
| Return 1 if this class type is the same type of (or a subclass of) the named class. More...
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name)
| Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
static vtkObjectBase * | New ()
| Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
static void | SetMemkindDirectory (const char *directoryname)
| The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. More...
static bool | GetUsingMemkind ()
| A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. More...

## Public Attributes
int | SampleSpacingInVoxels
Public Attributes inherited from vtkEncodedGradientEstimator
vtkImageData * | InputData
unsigned short * | EncodedNormals
int | EncodedNormalsSize [3]
unsigned char * | GradientMagnitudes
vtkTimeStamp | BuildTime

## Protected Member Functions
virtual vtkObjectBase * | NewInstanceInternal () const
| vtkFiniteDifferenceGradientEstimator ()
| ~vtkFiniteDifferenceGradientEstimator () override
void | UpdateNormals () override
| Recompute the encoded normals and gradient magnitudes. More...
Protected Member Functions inherited from vtkEncodedGradientEstimator
| vtkEncodedGradientEstimator ()
| ~vtkEncodedGradientEstimator () override
void | ReportReferences (vtkGarbageCollector *) override
void | ComputeCircleLimits (int size)
Protected Member Functions inherited from vtkObject
| vtkObject ()
| ~vtkObject () override
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
| These methods allow a command to exclusively grab all events. More...
void | InternalReleaseFocus ()
| These methods allow a command to exclusively grab all events. More...
Protected Member Functions inherited from vtkObjectBase
| vtkObjectBase ()
virtual | ~vtkObjectBase ()
| vtkObjectBase (const vtkObjectBase &)
void | operator= (const vtkObjectBase &)

## Additional Inherited Members
Static Protected Member Functions inherited from vtkObjectBase
static vtkMallocingFunction | GetCurrentMallocFunction ()
static vtkReallocingFunction | GetCurrentReallocFunction ()
static vtkFreeingFunction | GetCurrentFreeFunction ()
static vtkFreeingFunction | GetAlternateFreeFunction ()
Protected Attributes inherited from vtkEncodedGradientEstimator
int | NumberOfThreads
vtkMultiThreader * | Threader
vtkDirectionEncoder * | DirectionEncoder
float | GradientMagnitudeScale
float | GradientMagnitudeBias
float | LastUpdateTimeInSeconds
float | LastUpdateTimeInCPUSeconds
float | ZeroNormalThreshold
vtkTypeBool | CylinderClip
int * | CircleLimits
int | CircleLimitsSize
int | UseCylinderClip
vtkTypeBool | BoundsClip
int | Bounds [6]
int | InputSize [3]
float | InputAspect [3]
vtkTypeBool | ComputeGradientMagnitudes
vtkTypeBool | ZeroPad
Protected Attributes inherited from vtkObject
bool | Debug
vtkTimeStamp | MTime
vtkSubjectHelper * | SubjectHelper
std::string | ObjectName
Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > | ReferenceCount
vtkWeakPointerBase ** | WeakPointers

## Detailed Description

Use finite differences to estimate gradient.

vtkFiniteDifferenceGradientEstimator is a concrete subclass of vtkEncodedGradientEstimator that uses a central differences technique to estimate the gradient. The gradient at some sample location (x,y,z) would be estimated by:

     nx = (f(x-dx,y,z) - f(x+dx,y,z)) / 2*dx;
     ny = (f(x,y-dy,z) - f(x,y+dy,z)) / 2*dy;
     nz = (f(x,y,z-dz) - f(x,y,z+dz)) / 2*dz;

This value is normalized to determine a unit direction vector and a magnitude. The normal is computed in voxel space, and dx = dy = dz = SampleSpacingInVoxels. A scaling factor is applied to convert this normal from voxel space to world coordinates.

See also
  vtkEncodedGradientEstimator

Definition at line 34 of file vtkFiniteDifferenceGradientEstimator.h.

## Member Typedef Documentation

## ◆ Superclass

typedef vtkEncodedGradientEstimator vtkFiniteDifferenceGradientEstimator::Superclass

Definition at line 38 of file vtkFiniteDifferenceGradientEstimator.h.

## Constructor & Destructor Documentation

## ◆ vtkFiniteDifferenceGradientEstimator()

vtkFiniteDifferenceGradientEstimator::vtkFiniteDifferenceGradientEstimator | ( |  | ) |
| protected

## ◆ ~vtkFiniteDifferenceGradientEstimator()

vtkFiniteDifferenceGradientEstimator::~vtkFiniteDifferenceGradientEstimator | ( |  | ) |
| overrideprotected

## Member Function Documentation

## ◆ IsTypeOf()

static vtkTypeBool vtkFiniteDifferenceGradientEstimator::IsTypeOf | ( | const char * | type | ) |
| static

## ◆ IsA()

virtual vtkTypeBool vtkFiniteDifferenceGradientEstimator::IsA | ( | const char * | name | ) |
| 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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkEncodedGradientEstimator.

## ◆ SafeDownCast()

static vtkFiniteDifferenceGradientEstimator* vtkFiniteDifferenceGradientEstimator::SafeDownCast | ( | vtkObjectBase * | o | ) |
| static

## ◆ NewInstanceInternal()

virtual vtkObjectBase* vtkFiniteDifferenceGradientEstimator::NewInstanceInternal | ( |  | ) | const
| protectedvirtual

Reimplemented from vtkEncodedGradientEstimator.

## ◆ NewInstance()

vtkFiniteDifferenceGradientEstimator* vtkFiniteDifferenceGradientEstimator::NewInstance | ( |  | ) | const

## ◆ PrintSelf()

void vtkFiniteDifferenceGradientEstimator::PrintSelf | ( | ostream & | os,
|  | vtkIndent | indent
| ) |  |
| overridevirtual

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

## ◆ New()

static vtkFiniteDifferenceGradientEstimator* vtkFiniteDifferenceGradientEstimator::New | ( |  | ) |
| static

Construct a vtkFiniteDifferenceGradientEstimator with a SampleSpacingInVoxels of 1.

## ◆ SetSampleSpacingInVoxels()

virtual void vtkFiniteDifferenceGradientEstimator::SetSampleSpacingInVoxels | ( | int |  | ) |
| virtual

Set/Get the spacing between samples for the finite differences method used to compute the normal.

This spacing is in voxel units.

## ◆ GetSampleSpacingInVoxels()

virtual int vtkFiniteDifferenceGradientEstimator::GetSampleSpacingInVoxels | ( |  | ) |
| virtual

Set/Get the spacing between samples for the finite differences method used to compute the normal.

This spacing is in voxel units.

## ◆ UpdateNormals()

void vtkFiniteDifferenceGradientEstimator::UpdateNormals | ( |  | ) |
| overrideprotectedvirtual

Recompute the encoded normals and gradient magnitudes.

Implements vtkEncodedGradientEstimator.

## Member Data Documentation

## ◆ SampleSpacingInVoxels

int vtkFiniteDifferenceGradientEstimator::SampleSpacingInVoxels

Definition at line 57 of file vtkFiniteDifferenceGradientEstimator.h.

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

- Rendering/Volume/vtkFiniteDifferenceGradientEstimator.h