34#ifndef vtkEncodedGradientEstimator_h
35#define vtkEncodedGradientEstimator_h
38#include "vtkRenderingVolumeModule.h"
39#include "vtkThreads.h"
encode a direction into a one or two byte value
void Update(void)
Recompute the encoded normals and gradient magnitudes.
float ZeroNormalThreshold
void ComputeCircleLimits(int size)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void UpdateNormals(void)=0
~vtkEncodedGradientEstimator() override
float LastUpdateTimeInCPUSeconds
virtual void SetInputData(vtkImageData *)
Set/Get the scalar input for which the normals will be calculated.
vtkDirectionEncoder * DirectionEncoder
float GradientMagnitudeBias
void ReportReferences(vtkGarbageCollector *) override
void SetDirectionEncoder(vtkDirectionEncoder *direnc)
Set / Get the direction encoder used to encode normal directions to fit within two bytes.
void SetZeroNormalThreshold(float v)
Set / Get the ZeroNormalThreshold - this defines the minimum magnitude of a gradient that is consider...
unsigned char * GradientMagnitudes
vtkTypeBool ComputeGradientMagnitudes
int EncodedNormalsSize[3]
unsigned char * GetGradientMagnitudes(void)
Get the gradient magnitudes.
unsigned short * GetEncodedNormals(void)
Get the encoded normals.
vtkMultiThreader * Threader
float LastUpdateTimeInSeconds
float GradientMagnitudeScale
int GetEncodedNormalIndex(int xIndex, int yIndex, int zIndex)
Get the encoded normal at an x,y,z location in the volume.
int GetEncodedNormalIndex(vtkIdType xyzIndex)
Get the encoded normal at an x,y,z location in the volume.
vtkEncodedGradientEstimator()
unsigned short * EncodedNormals
topologically and geometrically regular array of data
a simple class to control print indentation
A class for performing multithreaded execution.
friend class vtkGarbageCollector
Some classes need to clear the reference counts manually due to the way they work.
record modification and/or execution time