22#ifndef vtkEncodedGradientEstimator_h
23#define vtkEncodedGradientEstimator_h
26#include "vtkRenderingVolumeModule.h"
27#include "vtkThreads.h"
29VTK_ABI_NAMESPACE_BEGIN
57 vtkSetMacro(GradientMagnitudeScale,
float);
58 vtkGetMacro(GradientMagnitudeScale,
float);
59 vtkSetMacro(GradientMagnitudeBias,
float);
60 vtkGetMacro(GradientMagnitudeBias,
float);
79 vtkSetVector6Macro(Bounds,
int);
80 vtkGetVectorMacro(Bounds,
int, 6);
111 vtkSetClampMacro(NumberOfThreads,
int, 1, VTK_MAX_THREADS);
112 vtkGetMacro(NumberOfThreads,
int);
151 vtkGetMacro(LastUpdateTimeInSeconds,
float);
152 vtkGetMacro(LastUpdateTimeInCPUSeconds,
float);
155 vtkGetMacro(UseCylinderClip,
int);
168 vtkGetMacro(ZeroNormalThreshold,
float);
191 int EncodedNormalsSize[3];
199 vtkGetVectorMacro(InputSize,
int, 3);
200 vtkGetVectorMacro(InputAspect,
float, 3);
235 float InputAspect[3];
encode a direction into a one or two byte value
Superclass for gradient estimation.
float ZeroNormalThreshold
virtual void UpdateNormals()=0
void ComputeCircleLimits(int size)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkEncodedGradientEstimator() override
float LastUpdateTimeInCPUSeconds
virtual void SetInputData(vtkImageData *)
Set/Get the scalar input for which the normals will be calculated.
vtkDirectionEncoder * DirectionEncoder
unsigned short * GetEncodedNormals()
Get the encoded normals.
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()
Get the gradient magnitudes.
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
void Update()
Recompute the encoded normals and gradient magnitudes.
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