VTK
vtkVolumeProperty.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkVolumeProperty.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=========================================================================*/
15
50#ifndef vtkVolumeProperty_h
51#define vtkVolumeProperty_h
52
53#include "vtkRenderingCoreModule.h" // For export macro
54#include "vtkObject.h"
55
57class vtkTimeStamp;
59
60class VTKRENDERINGCORE_EXPORT vtkVolumeProperty : public vtkObject
61{
62public:
65 void PrintSelf(ostream& os, vtkIndent indent);
67
73
75
96 vtkSetClampMacro(IndependentComponents, int, 0, 1);
97 vtkGetMacro(IndependentComponents, int);
98 vtkBooleanMacro(IndependentComponents, int);
100
102
106 vtkSetClampMacro(InterpolationType, int,
108 vtkGetMacro(InterpolationType, int);
110 { this->SetInterpolationType(VTK_NEAREST_INTERPOLATION); }
112 { this->SetInterpolationType(VTK_LINEAR_INTERPOLATION); }
113 const char *GetInterpolationTypeAsString(void);
115
117
121 virtual void SetComponentWeight(int index, double value);
122 virtual double GetComponentWeight(int index);
124
132 { this->SetColor(0, function); }
133
142 { this->SetColor(0, function); }
143
150 { return this->GetColorChannels(0); }
151
159 { return this->GetGrayTransferFunction(0); }
160
168 { return this->GetRGBTransferFunction(0); }
169
176 { this->SetScalarOpacity(0, function); }
177
185 { return this->GetScalarOpacity(0); }
186
188
194 void SetScalarOpacityUnitDistance(int index, double distance);
195 void SetScalarOpacityUnitDistance(double distance)
196 { this->SetScalarOpacityUnitDistance(0, distance); }
199 { return this->GetScalarOpacityUnitDistance(0); }
201
202
209 { this->SetGradientOpacity(0, function); }
210
221 { return this->GetGradientOpacity(0); }
222
224
231 virtual void SetDisableGradientOpacity(int index, int value);
233 { this->SetDisableGradientOpacity(0, value); }
235 { this->SetDisableGradientOpacity(index, 1); }
237 { this->DisableGradientOpacityOn(0); }
239 { this->SetDisableGradientOpacity(index, 0); }
241 { this->DisableGradientOpacityOff(0); }
244 { return this->GetDisableGradientOpacity(0); }
247 { return this->GetStoredGradientOpacity(0); }
249
257 return (this->GradientOpacity[index] != NULL);
258 }
259
261
281 void SetShade(int index, int value);
282 void SetShade(int value)
283 { this->SetShade(0,value); }
284 int GetShade(int index);
286 { return this->GetShade(0); }
287 void ShadeOn(int index);
288 void ShadeOn()
289 { this->ShadeOn(0); }
290 void ShadeOff(int index);
291 void ShadeOff()
292 { this->ShadeOff(0); }
294
296
299 void SetAmbient(int index, double value);
300 void SetAmbient(double value)
301 { this->SetAmbient(0, value); }
302 double GetAmbient(int index);
303 double GetAmbient()
304 { return this->GetAmbient(0); }
306
308
311 void SetDiffuse(int index, double value);
312 void SetDiffuse(double value)
313 { this->SetDiffuse(0, value); }
314 double GetDiffuse(int index);
315 double GetDiffuse()
316 { return this->GetDiffuse(0); }
318
320
323 void SetSpecular(int index, double value);
324 void SetSpecular(double value)
325 { this->SetSpecular(0, value); }
326 double GetSpecular(int index);
327 double GetSpecular()
328 { return this->GetSpecular(0); }
330
332
335 void SetSpecularPower(int index, double value);
337 { this->SetSpecularPower(0, value); }
340 { return this->GetSpecularPower(0); }
342
351
358 { return this->GetGradientOpacityMTime(0); }
359
366 { return this->GetScalarOpacityMTime(0); }
367
374 { return this->GetRGBTransferFunctionMTime(0); }
375
382 { return this->GetGrayTransferFunctionMTime(0); }
383
384protected:
387
389 double ComponentWeight[VTK_MAX_VRCOMP];
390
392
393 int ColorChannels[VTK_MAX_VRCOMP];
394
395 vtkPiecewiseFunction *GrayTransferFunction[VTK_MAX_VRCOMP];
396 vtkTimeStamp GrayTransferFunctionMTime[VTK_MAX_VRCOMP];
397
399 vtkTimeStamp RGBTransferFunctionMTime[VTK_MAX_VRCOMP];
400
402 vtkTimeStamp ScalarOpacityMTime[VTK_MAX_VRCOMP];
403 double ScalarOpacityUnitDistance[VTK_MAX_VRCOMP];
404
406 vtkTimeStamp GradientOpacityMTime[VTK_MAX_VRCOMP];
407 vtkPiecewiseFunction *DefaultGradientOpacity[VTK_MAX_VRCOMP];
408 int DisableGradientOpacity[VTK_MAX_VRCOMP];
409
410 int Shade[VTK_MAX_VRCOMP];
411 double Ambient[VTK_MAX_VRCOMP];
412 double Diffuse[VTK_MAX_VRCOMP];
413 double Specular[VTK_MAX_VRCOMP];
414 double SpecularPower[VTK_MAX_VRCOMP];
415
417
418private:
419 vtkVolumeProperty(const vtkVolumeProperty&) VTK_DELETE_FUNCTION;
420 void operator=(const vtkVolumeProperty&) VTK_DELETE_FUNCTION;
421};
422
424
428{
430 {
431 return "Nearest Neighbor";
432 }
434 {
435 return "Linear";
436 }
437 return "Unknown";
438}
440
441#endif
Defines a transfer function for mapping a property to an RGB color value.
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
Defines a 1D piecewise function.
record modification and/or execution time
Definition: vtkTimeStamp.h:36
represents the common properties for rendering a volume.
void SetSpecular(int index, double value)
Set/Get the specular lighting coefficient.
void SetDiffuse(double value)
void SetAmbient(int index, double value)
Set/Get the ambient lighting coefficient.
double GetAmbient(int index)
virtual double GetComponentWeight(int index)
vtkPiecewiseFunction * GetStoredGradientOpacity()
vtkTimeStamp GetRGBTransferFunctionMTime()
void SetShade(int index, int value)
Set/Get the shading of a volume.
void SetScalarOpacityUnitDistance(double distance)
virtual int GetDisableGradientOpacity(int index)
void SetSpecular(double value)
vtkPiecewiseFunction * GetGrayTransferFunction()
void SetColor(vtkPiecewiseFunction *function)
vtkTimeStamp GetGrayTransferFunctionMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the GrayTransferFunction wa...
double GetSpecularPower(int index)
vtkPiecewiseFunction * GetStoredGradientOpacity(int index)
vtkColorTransferFunction * GetRGBTransferFunction()
vtkTimeStamp GetScalarOpacityMTime()
void SetGradientOpacity(int index, vtkPiecewiseFunction *function)
Set the opacity of a volume to an opacity transfer function based on gradient magnitude for the given...
virtual void DisableGradientOpacityOn(int index)
void SetSpecularPower(double value)
double GetScalarOpacityUnitDistance()
virtual void DisableGradientOpacityOff(int index)
void ShadeOn(int index)
void ShadeOff(int index)
void SetShade(int value)
void SetScalarOpacityUnitDistance(int index, double distance)
Set/Get the unit distance on which the scalar opacity transfer function is defined.
vtkPiecewiseFunction * GetScalarOpacity()
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkPiecewiseFunction * GetScalarOpacity(int index)
Get the scalar opacity transfer function for the given component.
virtual void SetComponentWeight(int index, double value)
Set/Get the scalar component weights.
virtual void SetDisableGradientOpacity(int index, int value)
Enable/Disable the gradient opacity function for the given component.
void SetAmbient(double value)
vtkTimeStamp GetGrayTransferFunctionMTime()
virtual void DisableGradientOpacityOff()
vtkPiecewiseFunction * GetGradientOpacity()
virtual void SetDisableGradientOpacity(int value)
void UpdateMTimes()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE UpdateMTimes performs a Modified() on all Tim...
void SetInterpolationTypeToNearest()
int GetColorChannels(int index)
Get the number of color channels in the transfer function for the given component.
const char * GetInterpolationTypeAsString(void)
Return the interpolation type as a descriptive character string.
virtual void DisableGradientOpacityOn()
vtkMTimeType GetMTime()
Get the modified time for this object (or the properties registered with this object).
void DeepCopy(vtkVolumeProperty *p)
vtkTimeStamp GetRGBTransferFunctionMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the RGBTransferFunction was...
static vtkVolumeProperty * New()
bool HasGradientOpacity(int index=0)
Check whether or not we have the gradient opacity.
void SetSpecularPower(int index, double value)
Set/Get the specular power.
void SetScalarOpacity(int index, vtkPiecewiseFunction *function)
Set the opacity of a volume to an opacity transfer function based on scalar value for the component i...
int GetShade(int index)
void SetColor(int index, vtkColorTransferFunction *function)
Set the color of a volume to an RGB transfer function for the component indicated by index.
void SetColor(int index, vtkPiecewiseFunction *function)
Set the color of a volume to a gray level transfer function for the component indicated by index.
vtkPiecewiseFunction * GetGrayTransferFunction(int index)
Get the gray transfer function.
void SetInterpolationTypeToLinear()
vtkColorTransferFunction * GetRGBTransferFunction(int index)
Get the RGB transfer function for the given component.
void SetGradientOpacity(vtkPiecewiseFunction *function)
void SetScalarOpacity(vtkPiecewiseFunction *function)
double GetDiffuse(int index)
virtual int GetDisableGradientOpacity()
void SetColor(vtkColorTransferFunction *function)
double GetScalarOpacityUnitDistance(int index)
vtkTimeStamp GetGradientOpacityMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the gradient opacity transf...
virtual void CreateDefaultGradientOpacity(int index)
vtkTimeStamp GetScalarOpacityMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the scalar opacity transfer...
vtkTimeStamp GetGradientOpacityMTime()
void SetDiffuse(int index, double value)
Set/Get the diffuse lighting coefficient.
vtkPiecewiseFunction * GetGradientOpacity(int index)
Get the gradient magnitude opacity transfer function for the given component.
double GetSpecular(int index)
@ function
Definition: vtkX3D.h:249
@ value
Definition: vtkX3D.h:220
@ index
Definition: vtkX3D.h:246
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
#define VTK_MAX_VRCOMP
#define VTK_NEAREST_INTERPOLATION
#define VTK_LINEAR_INTERPOLATION
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248