You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
614 lines
16 KiB
614 lines
16 KiB
2 years ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: $RCSfile: vtkVolumeProperty.cxx,v $
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
||
|
=========================================================================*/
|
||
|
#include "vtkVolumeProperty.h"
|
||
|
|
||
|
#include "vtkObjectFactory.h"
|
||
|
#include "vtkPiecewiseFunction.h"
|
||
|
#include "vtkColorTransferFunction.h"
|
||
|
|
||
|
vtkCxxRevisionMacro(vtkVolumeProperty, "$Revision: 1.41 $");
|
||
|
vtkStandardNewMacro(vtkVolumeProperty);
|
||
|
|
||
|
// Construct a new vtkVolumeProperty with default values
|
||
|
vtkVolumeProperty::vtkVolumeProperty()
|
||
|
{
|
||
|
this->IndependentComponents = 1;
|
||
|
|
||
|
this->InterpolationType = VTK_NEAREST_INTERPOLATION;
|
||
|
|
||
|
for ( int i = 0; i < VTK_MAX_VRCOMP; i++ )
|
||
|
{
|
||
|
this->ColorChannels[i] = 1;
|
||
|
|
||
|
this->GrayTransferFunction[i] = NULL;
|
||
|
this->RGBTransferFunction[i] = NULL;
|
||
|
this->ScalarOpacity[i] = NULL;
|
||
|
this->ScalarOpacityUnitDistance[i] = 1.0;
|
||
|
this->GradientOpacity[i] = NULL;
|
||
|
this->DefaultGradientOpacity[i] = NULL;
|
||
|
this->DisableGradientOpacity[i] = 0;
|
||
|
|
||
|
this->ComponentWeight[i] = 1.0;
|
||
|
|
||
|
this->Shade[i] = 0;
|
||
|
this->Ambient[i] = 0.1;
|
||
|
this->Diffuse[i] = 0.7;
|
||
|
this->Specular[i] = 0.2;
|
||
|
this->SpecularPower[i] = 10.0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Destruct a vtkVolumeProperty
|
||
|
vtkVolumeProperty::~vtkVolumeProperty()
|
||
|
{
|
||
|
for ( int i = 0; i < VTK_MAX_VRCOMP; i++ )
|
||
|
{
|
||
|
if (this->GrayTransferFunction[i] != NULL)
|
||
|
{
|
||
|
this->GrayTransferFunction[i]->UnRegister(this);
|
||
|
}
|
||
|
|
||
|
if (this->RGBTransferFunction[i] != NULL)
|
||
|
{
|
||
|
this->RGBTransferFunction[i]->UnRegister(this);
|
||
|
}
|
||
|
|
||
|
if (this->ScalarOpacity[i] != NULL)
|
||
|
{
|
||
|
this->ScalarOpacity[i]->UnRegister(this);
|
||
|
}
|
||
|
|
||
|
if (this->GradientOpacity[i] != NULL)
|
||
|
{
|
||
|
this->GradientOpacity[i]->UnRegister(this);
|
||
|
}
|
||
|
|
||
|
if (this->DefaultGradientOpacity[i] != NULL)
|
||
|
{
|
||
|
this->DefaultGradientOpacity[i]->UnRegister(this);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::UpdateMTimes()
|
||
|
{
|
||
|
this->Modified();
|
||
|
|
||
|
for ( int i = 0; i < VTK_MAX_VRCOMP; i++ )
|
||
|
{
|
||
|
this->GrayTransferFunctionMTime[i].Modified();
|
||
|
this->RGBTransferFunctionMTime[i].Modified();
|
||
|
this->ScalarOpacityMTime[i].Modified();
|
||
|
this->GradientOpacityMTime[i].Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
unsigned long int vtkVolumeProperty::GetMTime()
|
||
|
{
|
||
|
unsigned long mTime=this->vtkObject::GetMTime();
|
||
|
unsigned long time;
|
||
|
|
||
|
for ( int i = 0; i < VTK_MAX_VRCOMP; i++ )
|
||
|
{
|
||
|
// Color MTimes
|
||
|
if (this->ColorChannels[i] == 1)
|
||
|
{
|
||
|
if (this->GrayTransferFunction[i])
|
||
|
{
|
||
|
// time that Gray transfer function pointer was set
|
||
|
time = this->GrayTransferFunctionMTime[i];
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
|
||
|
// time that Gray transfer function was last modified
|
||
|
time = this->GrayTransferFunction[i]->GetMTime();
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
}
|
||
|
}
|
||
|
else if (this->ColorChannels[i] == 3)
|
||
|
{
|
||
|
if (this->RGBTransferFunction[i])
|
||
|
{
|
||
|
// time that RGB transfer function pointer was set
|
||
|
time = this->RGBTransferFunctionMTime[i];
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
|
||
|
// time that RGB transfer function was last modified
|
||
|
time = this->RGBTransferFunction[i]->GetMTime();
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Opacity MTimes
|
||
|
if (this->ScalarOpacity[i])
|
||
|
{
|
||
|
// time that Scalar opacity transfer function pointer was set
|
||
|
time = this->ScalarOpacityMTime[i];
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
|
||
|
// time that Scalar opacity transfer function was last modified
|
||
|
time = this->ScalarOpacity[i]->GetMTime();
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
}
|
||
|
|
||
|
if (this->GradientOpacity[i])
|
||
|
{
|
||
|
// time that Gradient opacity transfer function pointer was set
|
||
|
time = this->GradientOpacityMTime[i];
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
|
||
|
if (!this->DisableGradientOpacity[i])
|
||
|
{
|
||
|
// time that Gradient opacity transfer function was last modified
|
||
|
time = this->GradientOpacity[i]->GetMTime();
|
||
|
mTime = (mTime > time ? mTime : time);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return mTime;
|
||
|
}
|
||
|
|
||
|
int vtkVolumeProperty::GetColorChannels( int index )
|
||
|
{
|
||
|
if ( index < 0 || index > 3 )
|
||
|
{
|
||
|
vtkErrorMacro("Bad index - must be between 0 and 3");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
return this->ColorChannels[index];
|
||
|
}
|
||
|
|
||
|
|
||
|
// Set the color of a volume to a gray transfer function
|
||
|
void vtkVolumeProperty::SetColor( int index, vtkPiecewiseFunction *function )
|
||
|
{
|
||
|
if (this->GrayTransferFunction[index] != function )
|
||
|
{
|
||
|
if (this->GrayTransferFunction[index] != NULL)
|
||
|
{
|
||
|
this->GrayTransferFunction[index]->UnRegister(this);
|
||
|
}
|
||
|
this->GrayTransferFunction[index] = function;
|
||
|
if (this->GrayTransferFunction[index] != NULL)
|
||
|
{
|
||
|
this->GrayTransferFunction[index]->Register(this);
|
||
|
}
|
||
|
|
||
|
this->GrayTransferFunctionMTime[index].Modified();
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
if (this->ColorChannels[index] != 1)
|
||
|
{
|
||
|
this->ColorChannels[index] = 1;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Get the currently set gray transfer function. Create one if none set.
|
||
|
vtkPiecewiseFunction *vtkVolumeProperty::GetGrayTransferFunction( int index )
|
||
|
{
|
||
|
if (this->GrayTransferFunction[index] == NULL )
|
||
|
{
|
||
|
this->GrayTransferFunction[index] = vtkPiecewiseFunction::New();
|
||
|
this->GrayTransferFunction[index]->Register(this);
|
||
|
this->GrayTransferFunction[index]->Delete();
|
||
|
this->GrayTransferFunction[index]->AddPoint( 0, 0.0 );
|
||
|
this->GrayTransferFunction[index]->AddPoint( 1024, 1.0 );
|
||
|
if (this->ColorChannels[index] != 1)
|
||
|
{
|
||
|
this->ColorChannels[index] = 1;
|
||
|
}
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
return this->GrayTransferFunction[index];
|
||
|
}
|
||
|
|
||
|
// Set the color of a volume to an RGB transfer function
|
||
|
void vtkVolumeProperty::SetColor( int index, vtkColorTransferFunction *function )
|
||
|
{
|
||
|
if (this->RGBTransferFunction[index] != function )
|
||
|
{
|
||
|
if (this->RGBTransferFunction[index] != NULL)
|
||
|
{
|
||
|
this->RGBTransferFunction[index]->UnRegister(this);
|
||
|
}
|
||
|
this->RGBTransferFunction[index] = function;
|
||
|
if (this->RGBTransferFunction[index] != NULL)
|
||
|
{
|
||
|
this->RGBTransferFunction[index]->Register(this);
|
||
|
}
|
||
|
this->RGBTransferFunctionMTime[index].Modified();
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
if (this->ColorChannels[index] != 3)
|
||
|
{
|
||
|
this->ColorChannels[index] = 3;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Get the currently set RGB transfer function. Create one if none set.
|
||
|
vtkColorTransferFunction *vtkVolumeProperty::GetRGBTransferFunction( int index )
|
||
|
{
|
||
|
if (this->RGBTransferFunction[index] == NULL )
|
||
|
{
|
||
|
this->RGBTransferFunction[index] = vtkColorTransferFunction::New();
|
||
|
this->RGBTransferFunction[index]->Register(this);
|
||
|
this->RGBTransferFunction[index]->Delete();
|
||
|
this->RGBTransferFunction[index]->AddRGBPoint( 0, 0.0, 0.0, 0.0 );
|
||
|
this->RGBTransferFunction[index]->AddRGBPoint( 1024, 1.0, 1.0, 1.0 );
|
||
|
if (this->ColorChannels[index] != 3)
|
||
|
{
|
||
|
this->ColorChannels[index] = 3;
|
||
|
}
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
return this->RGBTransferFunction[index];
|
||
|
}
|
||
|
|
||
|
// Set the scalar opacity of a volume to a transfer function
|
||
|
void vtkVolumeProperty::SetScalarOpacity( int index, vtkPiecewiseFunction *function )
|
||
|
{
|
||
|
if ( this->ScalarOpacity[index] != function )
|
||
|
{
|
||
|
if (this->ScalarOpacity[index] != NULL)
|
||
|
{
|
||
|
this->ScalarOpacity[index]->UnRegister(this);
|
||
|
}
|
||
|
this->ScalarOpacity[index] = function;
|
||
|
if (this->ScalarOpacity[index] != NULL)
|
||
|
{
|
||
|
this->ScalarOpacity[index]->Register(this);
|
||
|
}
|
||
|
|
||
|
this->ScalarOpacityMTime[index].Modified();
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Get the scalar opacity transfer function. Create one if none set.
|
||
|
vtkPiecewiseFunction *vtkVolumeProperty::GetScalarOpacity( int index )
|
||
|
{
|
||
|
if( this->ScalarOpacity[index] == NULL )
|
||
|
{
|
||
|
this->ScalarOpacity[index] = vtkPiecewiseFunction::New();
|
||
|
this->ScalarOpacity[index]->Register(this);
|
||
|
this->ScalarOpacity[index]->Delete();
|
||
|
this->ScalarOpacity[index]->AddPoint( 0, 1.0 );
|
||
|
this->ScalarOpacity[index]->AddPoint( 1024, 1.0 );
|
||
|
}
|
||
|
|
||
|
return this->ScalarOpacity[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetScalarOpacityUnitDistance( int index, double distance )
|
||
|
{
|
||
|
if ( index < 0 || index > 3 )
|
||
|
{
|
||
|
vtkErrorMacro("Bad index - must be between 0 and 3");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( this->ScalarOpacityUnitDistance[index] != distance )
|
||
|
{
|
||
|
this->ScalarOpacityUnitDistance[index] = distance;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetScalarOpacityUnitDistance( int index )
|
||
|
{
|
||
|
if ( index < 0 || index > 3 )
|
||
|
{
|
||
|
vtkErrorMacro("Bad index - must be between 0 and 3");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
return this->ScalarOpacityUnitDistance[index];
|
||
|
}
|
||
|
|
||
|
|
||
|
// Set the gradient opacity transfer function
|
||
|
void vtkVolumeProperty::SetGradientOpacity( int index, vtkPiecewiseFunction *function )
|
||
|
{
|
||
|
if ( this->GradientOpacity[index] != function )
|
||
|
{
|
||
|
if (this->GradientOpacity[index] != NULL)
|
||
|
{
|
||
|
this->GradientOpacity[index]->UnRegister(this);
|
||
|
}
|
||
|
this->GradientOpacity[index] = function;
|
||
|
if (this->GradientOpacity[index] != NULL)
|
||
|
{
|
||
|
this->GradientOpacity[index]->Register(this);
|
||
|
}
|
||
|
|
||
|
this->GradientOpacityMTime[index].Modified();
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::CreateDefaultGradientOpacity( int index )
|
||
|
{
|
||
|
if ( this->DefaultGradientOpacity[index] == NULL )
|
||
|
{
|
||
|
this->DefaultGradientOpacity[index] = vtkPiecewiseFunction::New();
|
||
|
this->DefaultGradientOpacity[index]->Register(this);
|
||
|
this->DefaultGradientOpacity[index]->Delete();
|
||
|
}
|
||
|
|
||
|
this->DefaultGradientOpacity[index]->RemoveAllPoints();
|
||
|
this->DefaultGradientOpacity[index]->AddPoint( 0, 1.0 );
|
||
|
this->DefaultGradientOpacity[index]->AddPoint( 255, 1.0 );
|
||
|
}
|
||
|
|
||
|
vtkPiecewiseFunction *vtkVolumeProperty::GetGradientOpacity( int index )
|
||
|
{
|
||
|
if (this->DisableGradientOpacity[index])
|
||
|
{
|
||
|
if ( this->DefaultGradientOpacity[index] == NULL )
|
||
|
{
|
||
|
this->CreateDefaultGradientOpacity(index);
|
||
|
}
|
||
|
return this->DefaultGradientOpacity[index];
|
||
|
}
|
||
|
|
||
|
return this->GetStoredGradientOpacity(index);
|
||
|
}
|
||
|
|
||
|
// Get the gradient opacity transfer function. Create one if none set.
|
||
|
vtkPiecewiseFunction *vtkVolumeProperty::GetStoredGradientOpacity( int index )
|
||
|
{
|
||
|
if ( this->GradientOpacity[index] == NULL )
|
||
|
{
|
||
|
this->GradientOpacity[index] = vtkPiecewiseFunction::New();
|
||
|
this->GradientOpacity[index]->Register(this);
|
||
|
this->GradientOpacity[index]->Delete();
|
||
|
this->GradientOpacity[index]->AddPoint( 0, 1.0 );
|
||
|
this->GradientOpacity[index]->AddPoint( 255, 1.0 );
|
||
|
}
|
||
|
|
||
|
return this->GradientOpacity[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetDisableGradientOpacity( int index, int value )
|
||
|
{
|
||
|
if (this->DisableGradientOpacity[index] == value)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
this->DisableGradientOpacity[index] = value;
|
||
|
|
||
|
// Make sure the default function is up-to-date (since the user
|
||
|
// could have modified the default function)
|
||
|
|
||
|
if (value)
|
||
|
{
|
||
|
this->CreateDefaultGradientOpacity(index);
|
||
|
}
|
||
|
|
||
|
// Since this Ivar basically "sets" the gradient opacity function to be
|
||
|
// either a default one or the user-specified one, update the MTime
|
||
|
// accordingly
|
||
|
|
||
|
this->GradientOpacityMTime[index].Modified();
|
||
|
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
int vtkVolumeProperty::GetDisableGradientOpacity( int index )
|
||
|
{
|
||
|
return this->DisableGradientOpacity[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetComponentWeight(int index, double value)
|
||
|
{
|
||
|
if (index < 0 || index >= VTK_MAX_VRCOMP)
|
||
|
{
|
||
|
vtkErrorMacro("Invalid index");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (this->ComponentWeight[index] == value)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
this->ComponentWeight[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetComponentWeight(int index)
|
||
|
{
|
||
|
if (index < 0 || index >= VTK_MAX_VRCOMP)
|
||
|
{
|
||
|
vtkErrorMacro("Invalid index");
|
||
|
return 0.0;
|
||
|
}
|
||
|
|
||
|
return this->ComponentWeight[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetShade( int index, int value )
|
||
|
{
|
||
|
if ( value != 0 && value != 1 )
|
||
|
{
|
||
|
vtkErrorMacro("SetShade accepts values 0 or 1");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( this->Shade[index] != value )
|
||
|
{
|
||
|
this->Shade[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::ShadeOn( int index )
|
||
|
{
|
||
|
this->SetShade( index, 1 );
|
||
|
}
|
||
|
|
||
|
|
||
|
void vtkVolumeProperty::ShadeOff( int index )
|
||
|
{
|
||
|
this->SetShade( index, 0 );
|
||
|
}
|
||
|
|
||
|
|
||
|
int vtkVolumeProperty::GetShade( int index )
|
||
|
{
|
||
|
return this->Shade[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetAmbient( int index, double value )
|
||
|
{
|
||
|
if ( this->Ambient[index] != value )
|
||
|
{
|
||
|
this->Ambient[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetAmbient( int index )
|
||
|
{
|
||
|
return this->Ambient[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetDiffuse( int index, double value )
|
||
|
{
|
||
|
if ( this->Diffuse[index] != value )
|
||
|
{
|
||
|
this->Diffuse[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetDiffuse( int index )
|
||
|
{
|
||
|
return this->Diffuse[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetSpecular( int index, double value )
|
||
|
{
|
||
|
if ( this->Specular[index] != value )
|
||
|
{
|
||
|
this->Specular[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetSpecular( int index )
|
||
|
{
|
||
|
return this->Specular[index];
|
||
|
}
|
||
|
|
||
|
void vtkVolumeProperty::SetSpecularPower( int index, double value )
|
||
|
{
|
||
|
if ( this->SpecularPower[index] != value )
|
||
|
{
|
||
|
this->SpecularPower[index] = value;
|
||
|
this->Modified();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
double vtkVolumeProperty::GetSpecularPower( int index )
|
||
|
{
|
||
|
return this->SpecularPower[index];
|
||
|
}
|
||
|
|
||
|
vtkTimeStamp vtkVolumeProperty::GetScalarOpacityMTime( int index )
|
||
|
{
|
||
|
return this->ScalarOpacityMTime[index];
|
||
|
}
|
||
|
|
||
|
vtkTimeStamp vtkVolumeProperty::GetGradientOpacityMTime( int index )
|
||
|
{
|
||
|
return this->GradientOpacityMTime[index];
|
||
|
}
|
||
|
|
||
|
vtkTimeStamp vtkVolumeProperty::GetRGBTransferFunctionMTime( int index )
|
||
|
{
|
||
|
return this->RGBTransferFunctionMTime[index];
|
||
|
}
|
||
|
|
||
|
vtkTimeStamp vtkVolumeProperty::GetGrayTransferFunctionMTime( int index )
|
||
|
{
|
||
|
return this->GrayTransferFunctionMTime[index];
|
||
|
}
|
||
|
|
||
|
// Print the state of the volume property.
|
||
|
void vtkVolumeProperty::PrintSelf(ostream& os, vtkIndent indent)
|
||
|
{
|
||
|
this->Superclass::PrintSelf(os,indent);
|
||
|
|
||
|
os << indent << "Independent Components: " <<
|
||
|
(this->IndependentComponents ? "On\n" : "Off\n");
|
||
|
|
||
|
os << indent << "Interpolation Type: "
|
||
|
<< this->GetInterpolationTypeAsString() << "\n";
|
||
|
|
||
|
for ( int i = 0; i < VTK_MAX_VRCOMP; i++ )
|
||
|
{
|
||
|
os << indent << "Properties for material " << i << endl;
|
||
|
|
||
|
os << indent << "Color Channels: " << this->ColorChannels[i] << "\n";
|
||
|
|
||
|
if( this->ColorChannels[i] == 1 )
|
||
|
{
|
||
|
os << indent << "Gray Color Transfer Function: "
|
||
|
<< this->GrayTransferFunction[i] << "\n";
|
||
|
}
|
||
|
else if( this->ColorChannels[i] == 3 )
|
||
|
{
|
||
|
os << indent << "RGB Color Transfer Function: "
|
||
|
<< this->RGBTransferFunction[i] << "\n";
|
||
|
}
|
||
|
|
||
|
os << indent << "Scalar Opacity Transfer Function: "
|
||
|
<< this->ScalarOpacity[i] << "\n";
|
||
|
|
||
|
os << indent << "Gradient Opacity Transfer Function: "
|
||
|
<< this->GradientOpacity[i] << "\n";
|
||
|
|
||
|
os << indent << "DisableGradientOpacity: "
|
||
|
<< (this->DisableGradientOpacity[i] ? "On" : "Off") << "\n";
|
||
|
|
||
|
|
||
|
os << indent << "ComponentWeight: "
|
||
|
<< this->ComponentWeight[i] << "\n";
|
||
|
|
||
|
os << indent << "Shade: " << this->Shade[i] << "\n";
|
||
|
os << indent << indent << "Ambient: " << this->Ambient[i] << "\n";
|
||
|
os << indent << indent << "Diffuse: " << this->Diffuse[i] << "\n";
|
||
|
os << indent << indent << "Specular: " << this->Specular[i] << "\n";
|
||
|
os << indent << indent << "SpecularPower: " << this->SpecularPower[i] << "\n";
|
||
|
}
|
||
|
|
||
|
// These variables should not be printed to the user:
|
||
|
// this->GradientOpacityMTime
|
||
|
// this->GrayTransferFunctionMTime
|
||
|
// this->RGBTransferFunctionMTime
|
||
|
// this->ScalarOpacityMTime
|
||
|
|
||
|
}
|
||
|
|