34#ifndef vtkEncodedGradientEstimator_h
35#define vtkEncodedGradientEstimator_h
38#include "vtkRenderingVolumeModule.h"
39#include "vtkThreads.h"
68 vtkSetMacro(GradientMagnitudeScale,
float);
69 vtkGetMacro(GradientMagnitudeScale,
float);
70 vtkSetMacro(GradientMagnitudeBias,
float);
71 vtkGetMacro(GradientMagnitudeBias,
float);
90 vtkSetVector6Macro(Bounds,
int);
91 vtkGetVectorMacro(Bounds,
int, 6);
122 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
123 vtkGetMacro(NumberOfThreads,
int);
162 vtkGetMacro(LastUpdateTimeInSeconds,
float);
163 vtkGetMacro(LastUpdateTimeInCPUSeconds,
float);
166 vtkGetMacro(UseCylinderClip,
int);
179 vtkGetMacro(ZeroNormalThreshold,
float);
202 int EncodedNormalsSize[3];
210 vtkGetVectorMacro(InputSize,
int, 3);
211 vtkGetVectorMacro(InputAspect,
float, 3);
246 float InputAspect[3];
encode a direction into a one or two byte value
Superclass for gradient estimation.
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
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
Detect and break reference loops.
topologically and geometrically regular array of data
a simple class to control print indentation
A class for performing multithreaded execution.
abstract base class for most VTK objects
record modification and/or execution time