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 
57 class vtkTimeStamp;
59 
60 class VTKRENDERINGCORE_EXPORT vtkVolumeProperty : public vtkObject
61 {
62 public:
64  vtkTypeMacro(vtkVolumeProperty, vtkObject);
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 
130  void SetColor(int index, vtkPiecewiseFunction *function);
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); }
234  virtual void DisableGradientOpacityOn(int index )
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 
256  bool HasGradientOpacity(int index=0) {
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);
285  int GetShade()
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);
336  void SetSpecularPower(double value)
337  { this->SetSpecularPower(0, value); }
338  double GetSpecularPower(int index);
340  { return this->GetSpecularPower(0); }
342 
350  void UpdateMTimes();
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 
384 protected:
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 
418 private:
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)
vtkPiecewiseFunction * GetGrayTransferFunction(int index)
Get the gray transfer function.
void SetAmbient(int index, double value)
Set/Get the ambient lighting coefficient.
double GetAmbient(int index)
virtual double GetComponentWeight(int index)
vtkTimeStamp GetRGBTransferFunctionMTime()
void SetShade(int index, int value)
Set/Get the shading of a volume.
void SetScalarOpacityUnitDistance(double distance)
static vtkVolumeProperty * New()
virtual int GetDisableGradientOpacity(int index)
void SetSpecular(double value)
void SetColor(vtkPiecewiseFunction *function)
vtkTimeStamp GetGrayTransferFunctionMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the GrayTransferFunction wa...
vtkPiecewiseFunction * GetStoredGradientOpacity(int index)
double GetSpecularPower(int index)
vtkColorTransferFunction * GetRGBTransferFunction(int index)
Get the RGB transfer function for the given component.
vtkTimeStamp GetScalarOpacityMTime()
vtkPiecewiseFunction * GetStoredGradientOpacity()
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.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
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()
virtual void SetDisableGradientOpacity(int value)
vtkPiecewiseFunction * GetScalarOpacity()
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)
vtkPiecewiseFunction * GetGradientOpacity(int index)
Get the gradient magnitude opacity transfer function for the given component.
vtkTimeStamp GetRGBTransferFunctionMTime(int index)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Get the time that the RGBTransferFunction was...
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.
vtkPiecewiseFunction * GetScalarOpacity(int index)
Get the scalar opacity transfer function for the given component.
void SetColor(int index, vtkPiecewiseFunction *function)
Set the color of a volume to a gray level transfer function for the component indicated by index.
vtkColorTransferFunction * GetRGBTransferFunction()
void SetInterpolationTypeToLinear()
vtkPiecewiseFunction * GetGrayTransferFunction()
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()
double GetSpecular(int index)
@ 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