VTK
vtkUnstructuredGridLinearRayIntegrator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkUnstructuredGridLinearRayIntegrator.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 
16 /*
17  * Copyright 2004 Sandia Corporation.
18  * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
19  * license for use of this work by or on behalf of the
20  * U.S. Government. Redistribution and use in source and binary forms, with
21  * or without modification, are permitted provided that this Notice and any
22  * statement of authorship are reproduced on all copies.
23  */
24 
45 #ifndef __vtkUnstructuredGridLinearRayIntegrator_h
46 #define __vtkUnstructuredGridLinearRayIntegrator_h
47 
49 
50 class vtkLinearRayIntegratorTransferFunction;
51 class vtkVolumeProperty;
52 
54 {
55 public:
59  virtual void PrintSelf(ostream &os, vtkIndent indent);
60 
61  virtual void Initialize(vtkVolume *volume, vtkDataArray *scalars);
62 
63  virtual void Integrate(vtkDoubleArray *intersectionLengths,
64  vtkDataArray *nearIntersections,
65  vtkDataArray *farIntersections,
66  float color[4]);
67 
69 
71  static void IntegrateRay(double length,
72  double intensity_front, double attenuation_front,
73  double intensity_back, double attenuation_back,
74  float color[4]);
75  static void IntegrateRay(double length,
76  const double color_front[3],
77  double attenuation_front,
78  const double color_back[3],
79  double attenuation_back,
80  float color[4]);
82 
84 
86  static float Psi(float length,
87  float attenuation_front, float attenuation_back);
89 
90 protected:
93 
95 
96  vtkLinearRayIntegratorTransferFunction *TransferFunctions;
99 
100 private:
102  void operator=(const vtkUnstructuredGridLinearRayIntegrator&); // Not implemented.
103 };
104 
105 #endif //__vtkUnstructuredGridLinearRayIntegrator_h