VTK  9.1.0
vtkSphericalDirectionEncoder.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkSphericalDirectionEncoder.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
26#ifndef vtkSphericalDirectionEncoder_h
27#define vtkSphericalDirectionEncoder_h
28
29#include "vtkDirectionEncoder.h"
30#include "vtkRenderingVolumeModule.h" // For export macro
31
32class VTKRENDERINGVOLUME_EXPORT vtkSphericalDirectionEncoder : public vtkDirectionEncoder
33{
34public:
36 void PrintSelf(ostream& os, vtkIndent indent) override;
37
44
48 int GetEncodedDirection(float n[3]) override;
49
53 float* GetDecodedGradient(int value) VTK_SIZEHINT(3) override;
54
58 int GetNumberOfEncodedDirections(void) override { return 65536; }
59
66 float* GetDecodedGradientTable(void) override { return &(this->DecodedGradientTable[0]); }
67
68protected:
71
72 static float DecodedGradientTable[65536 * 3];
73
75
81
82private:
84 void operator=(const vtkSphericalDirectionEncoder&) = delete;
85};
86
87#endif
encode a direction into a one or two byte value
a simple class to control print indentation
Definition: vtkIndent.h:113
A direction encoder based on spherical coordinates.
int GetNumberOfEncodedDirections(void) override
Return the number of encoded directions.
static int DecodedGradientTableInitialized
Initialize the table at startup.
static void InitializeDecodedGradientTable()
Initialize the table at startup.
float * GetDecodedGradient(int value) override
/ Given an encoded value, return a pointer to the normal vector
static vtkSphericalDirectionEncoder * New()
Construct the object.
int GetEncodedDirection(float n[3]) override
Given a normal vector n, return the encoded direction.
~vtkSphericalDirectionEncoder() override
void PrintSelf(ostream &os, vtkIndent indent) override
Get the name of this class.
float * GetDecodedGradientTable(void) override
Get the decoded gradient table.
#define VTK_SIZEHINT(...)