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:
63  static vtkVolumeProperty *New();
64  vtkTypeMacro(vtkVolumeProperty, vtkObject);
65  void PrintSelf(ostream& os, vtkIndent indent);
66  void DeepCopy(vtkVolumeProperty *p);
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 
140  void SetColor(int index, vtkColorTransferFunction *function);
142  { this->SetColor(0, function); }
143 
148  int GetColorChannels(int index);
150  { return this->GetColorChannels(0); }
151 
157  vtkPiecewiseFunction *GetGrayTransferFunction(int index);
159  { return this->GetGrayTransferFunction(0); }
160 
166  vtkColorTransferFunction *GetRGBTransferFunction(int index);
168  { return this->GetRGBTransferFunction(0); }
169 
174  void SetScalarOpacity(int index, vtkPiecewiseFunction *function);
176  { this->SetScalarOpacity(0, function); }
177 
183  vtkPiecewiseFunction *GetScalarOpacity(int index);
185  { return this->GetScalarOpacity(0); }
186 
188 
194  void SetScalarOpacityUnitDistance(int index, double distance);
195  void SetScalarOpacityUnitDistance(double distance)
196  { this->SetScalarOpacityUnitDistance(0, distance); }
197  double GetScalarOpacityUnitDistance(int index);
199  { return this->GetScalarOpacityUnitDistance(0); }
201 
202 
207  void SetGradientOpacity(int index, vtkPiecewiseFunction *function);
209  { this->SetGradientOpacity(0, function); }
210 
219  vtkPiecewiseFunction *GetGradientOpacity(int index);
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); }
242  virtual int GetDisableGradientOpacity(int index);
244  { return this->GetDisableGradientOpacity(0); }
245  vtkPiecewiseFunction *GetStoredGradientOpacity(int index);
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 
356  vtkTimeStamp GetGradientOpacityMTime(int index);
358  { return this->GetGradientOpacityMTime(0); }
359 
364  vtkTimeStamp GetScalarOpacityMTime(int index);
366  { return this->GetScalarOpacityMTime(0); }
367 
372  vtkTimeStamp GetRGBTransferFunctionMTime(int index);
374  { return this->GetRGBTransferFunctionMTime(0); }
375 
380  vtkTimeStamp GetGrayTransferFunctionMTime(int index);
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 
416  virtual void CreateDefaultGradientOpacity(int index);
417 
418 private:
419  vtkVolumeProperty(const vtkVolumeProperty&) VTK_DELETE_FUNCTION;
420  void operator=(const vtkVolumeProperty&) VTK_DELETE_FUNCTION;
421 };
422 
424 
427 inline const char *vtkVolumeProperty::GetInterpolationTypeAsString(void)
428 {
429  if (this->InterpolationType == VTK_NEAREST_INTERPOLATION)
430  {
431  return "Nearest Neighbor";
432  }
433  if (this->InterpolationType == VTK_LINEAR_INTERPOLATION)
434  {
435  return "Linear";
436  }
437  return "Unknown";
438 }
440 
441 #endif
int GetShade()
Set/Get the shading of a volume.
vtkColorTransferFunction * GetRGBTransferFunction()
virtual void DisableGradientOpacityOn()
Enable/Disable the gradient opacity function for the given component.
abstract base class for most VTK objects
Definition: vtkObject.h:59
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
double GetDiffuse()
Set/Get the diffuse lighting coefficient.
void SetAmbient(double value)
Set/Get the ambient lighting coefficient.
Defines a 1D piecewise function.
void SetSpecularPower(double value)
Set/Get the specular power.
void SetColor(vtkColorTransferFunction *function)
vtkPiecewiseFunction * GetGrayTransferFunction()
record modification and/or execution time
Definition: vtkTimeStamp.h:35
#define VTK_LINEAR_INTERPOLATION
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
void SetScalarOpacity(vtkPiecewiseFunction *function)
double GetSpecular()
Set/Get the specular lighting coefficient.
void SetGradientOpacity(vtkPiecewiseFunction *function)
void SetColor(vtkPiecewiseFunction *function)
double GetScalarOpacityUnitDistance()
Set/Get the unit distance on which the scalar opacity transfer function is defined.
#define VTK_MAX_VRCOMP
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
vtkPiecewiseFunction * GetScalarOpacity()
vtkTimeStamp GetRGBTransferFunctionMTime()
vtkPiecewiseFunction * GetStoredGradientOpacity()
Enable/Disable the gradient opacity function for the given component.
vtkTimeStamp GetScalarOpacityMTime()
a simple class to control print indentation
Definition: vtkIndent.h:39
bool HasGradientOpacity(int index=0)
Check whether or not we have the gradient opacity.
vtkTimeStamp GetGrayTransferFunctionMTime()
void ShadeOff()
Set/Get the shading of a volume.
virtual vtkMTimeType GetMTime()
Return this object's modified time.
void SetInterpolationTypeToNearest()
Set the interpolation type for sampling a volume.
represents the common properties for rendering a volume.
virtual void SetDisableGradientOpacity(int value)
Enable/Disable the gradient opacity function for the given component.
void SetSpecular(double value)
Set/Get the specular lighting coefficient.
void SetShade(int value)
Set/Get the shading of a volume.
Defines a transfer function for mapping a property to an RGB color value.
void SetDiffuse(double value)
Set/Get the diffuse lighting coefficient.
void SetInterpolationTypeToLinear()
Set the interpolation type for sampling a volume.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual int GetDisableGradientOpacity()
Enable/Disable the gradient opacity function for the given component.
vtkTimeStamp GetGradientOpacityMTime()
virtual void DisableGradientOpacityOff(int index)
Enable/Disable the gradient opacity function for the given component.
virtual void DisableGradientOpacityOn(int index)
Enable/Disable the gradient opacity function for the given component.
#define VTK_NEAREST_INTERPOLATION
void ShadeOn()
Set/Get the shading of a volume.
virtual void DisableGradientOpacityOff()
Enable/Disable the gradient opacity function for the given component.
void SetScalarOpacityUnitDistance(double distance)
Set/Get the unit distance on which the scalar opacity transfer function is defined.
vtkPiecewiseFunction * GetGradientOpacity()
double GetAmbient()
Set/Get the ambient lighting coefficient.
double GetSpecularPower()
Set/Get the specular power.