You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/3rd/VTK7.1/include/vtkVolumeRayCastMIPFunction.h

96 lines
3.1 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkVolumeRayCastMIPFunction.h
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.
=========================================================================*/
/**
* @class vtkVolumeRayCastMIPFunction
* @brief A maximum intensity projection ray caster for volumes
*
*
* vtkVolumeRayCastMIPFunction is a volume ray cast function that
* computes the maximum value encountered along the ray. This is
* either the maximum scalar value, or the maximum opacity, as
* defined by the MaximizeMethod. The color and opacity returned
* by this function is based on the color, scalar opacity, and
* gradient opacity transfer functions defined in the vtkVolumeProperty
* of the vtkVolume.
*
* @sa
* vtkVolumeRayCastFunction vtkVolumeRayCastMapper vtkVolumeProperty
* vtkVolumeRayCastCompositeFunction vtkVolumeRayCastIsosurfaceFunction
* vtkVolume vtkVolumeProperty
* @deprecated
*/
#ifndef vtkVolumeRayCastMIPFunction_h
#define vtkVolumeRayCastMIPFunction_h
#include "vtkRenderingVolumeModule.h" // For export macro
#include "vtkVolumeRayCastFunction.h"
#if !defined(VTK_LEGACY_REMOVE)
#define VTK_MAXIMIZE_SCALAR_VALUE 0
#define VTK_MAXIMIZE_OPACITY 1
class VTKRENDERINGVOLUME_EXPORT vtkVolumeRayCastMIPFunction : public vtkVolumeRayCastFunction
{
public:
static vtkVolumeRayCastMIPFunction *New();
vtkTypeMacro(vtkVolumeRayCastMIPFunction,vtkVolumeRayCastFunction);
void PrintSelf( ostream& os, vtkIndent indent );
/**
* Get the scalar value below which all scalar values have zero opacity.
*/
float GetZeroOpacityThreshold( vtkVolume *vol );
//@{
/**
* Set the MaximizeMethod to either ScalarValue or Opacity.
*/
vtkSetClampMacro( MaximizeMethod, int,
VTK_MAXIMIZE_SCALAR_VALUE, VTK_MAXIMIZE_OPACITY );
vtkGetMacro(MaximizeMethod,int);
void SetMaximizeMethodToScalarValue()
{this->SetMaximizeMethod(VTK_MAXIMIZE_SCALAR_VALUE);}
void SetMaximizeMethodToOpacity()
{this->SetMaximizeMethod(VTK_MAXIMIZE_OPACITY);}
const char *GetMaximizeMethodAsString(void);
//@}
void CastRay( vtkVolumeRayCastDynamicInfo *dynamicInfo,
vtkVolumeRayCastStaticInfo *staticInfo );
protected:
vtkVolumeRayCastMIPFunction();
~vtkVolumeRayCastMIPFunction();
int MaximizeMethod;
void SpecificFunctionInitialize( vtkRenderer *ren,
vtkVolume *vol,
vtkVolumeRayCastStaticInfo *staticInfo,
vtkVolumeRayCastMapper *mapper );
private:
vtkVolumeRayCastMIPFunction(const vtkVolumeRayCastMIPFunction&) VTK_DELETE_FUNCTION;
void operator=(const vtkVolumeRayCastMIPFunction&) VTK_DELETE_FUNCTION;
};
#endif // VTK_LEGACY_REMOVE
#endif