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.
Tools/Win64/VTK/include/vtk-9.0/vtkUnstructuredGridHomogene...

94 lines
3.0 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkUnstructuredGridHomogeneousRayIntegrator.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.
=========================================================================*/
/*
* Copyright 2004 Sandia Corporation.
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
* license for use of this work by or on behalf of the
* U.S. Government. Redistribution and use in source and binary forms, with
* or without modification, are permitted provided that this Notice and any
* statement of authorship are reproduced on all copies.
*/
/**
* @class vtkUnstructuredGridHomogeneousRayIntegrator
* @brief performs piecewise constant ray integration.
*
*
*
* vtkUnstructuredGridHomogeneousRayIntegrator performs homogeneous ray
* integration. This is a good method to use when volume rendering scalars
* that are defined on cells.
*
*/
#ifndef vtkUnstructuredGridHomogeneousRayIntegrator_h
#define vtkUnstructuredGridHomogeneousRayIntegrator_h
#include "vtkRenderingVolumeModule.h" // For export macro
#include "vtkUnstructuredGridVolumeRayIntegrator.h"
class vtkVolumeProperty;
class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridHomogeneousRayIntegrator
: public vtkUnstructuredGridVolumeRayIntegrator
{
public:
vtkTypeMacro(vtkUnstructuredGridHomogeneousRayIntegrator, vtkUnstructuredGridVolumeRayIntegrator);
static vtkUnstructuredGridHomogeneousRayIntegrator* New();
void PrintSelf(ostream& os, vtkIndent indent) override;
void Initialize(vtkVolume* volume, vtkDataArray* scalars) override;
void Integrate(vtkDoubleArray* intersectionLengths, vtkDataArray* nearIntersections,
vtkDataArray* farIntersections, float color[4]) override;
//@{
/**
* For quick lookup, the transfer function is sampled into a table.
* This parameter sets how big of a table to use. By default, 1024
* entries are used.
*/
vtkSetMacro(TransferFunctionTableSize, int);
vtkGetMacro(TransferFunctionTableSize, int);
//@}
protected:
vtkUnstructuredGridHomogeneousRayIntegrator();
~vtkUnstructuredGridHomogeneousRayIntegrator() override;
vtkVolume* Volume;
vtkVolumeProperty* Property;
int NumComponents;
float** ColorTable;
float** AttenuationTable;
double* TableShift;
double* TableScale;
vtkTimeStamp TablesBuilt;
int UseAverageColor;
int TransferFunctionTableSize;
virtual void GetTransferFunctionTables(vtkDataArray* scalars);
private:
vtkUnstructuredGridHomogeneousRayIntegrator(
const vtkUnstructuredGridHomogeneousRayIntegrator&) = delete;
void operator=(const vtkUnstructuredGridHomogeneousRayIntegrator&) = delete;
};
#endif // vtkUnstructuredGridHomogeneousRayIntegrator_h