VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkImplicitSum.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImplicitSum.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 =========================================================================*/
31 #ifndef __vtkImplicitSum_h
32 #define __vtkImplicitSum_h
33 
34 #include "vtkCommonDataModelModule.h" // For export macro
35 #include "vtkImplicitFunction.h"
36 
37 class vtkDoubleArray;
39 
40 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitSum : public vtkImplicitFunction
41 {
42 public:
43  static vtkImplicitSum *New();
44 
45  vtkTypeMacro(vtkImplicitSum,vtkImplicitFunction);
46  void PrintSelf(ostream& os, vtkIndent indent);
47 
49 
50  double EvaluateFunction(double x[3]);
51  double EvaluateFunction(double x, double y, double z)
52  {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
54 
57  void EvaluateGradient(double x[3], double g[3]);
58 
60  unsigned long GetMTime();
61 
64  void AddFunction(vtkImplicitFunction *in, double weight);
65 
68  void AddFunction(vtkImplicitFunction *in) { this->AddFunction(in, 1.0); }
69 
71  void RemoveAllFunctions();
72 
74  void SetFunctionWeight(vtkImplicitFunction *f, double weight);
75 
77 
82  vtkSetMacro(NormalizeByWeight, int);
83  vtkGetMacro(NormalizeByWeight, int);
84  vtkBooleanMacro(NormalizeByWeight, int);
86 
87 protected:
89  ~vtkImplicitSum();
90 
92  vtkDoubleArray *Weights;
93  double TotalWeight;
94 
95  void CalculateTotalWeight(void);
97 
98 private:
99  vtkImplicitSum(const vtkImplicitSum&); // Not implemented.
100  void operator=(const vtkImplicitSum&); // Not implemented.
101 };
102 
103 #endif
void AddFunction(vtkImplicitFunction *in)
vtkImplicitFunctionCollection * FunctionList
maintain a list of implicit functions
vtkDoubleArray * Weights
double EvaluateFunction(double x, double y, double z)
implicit sum of other implicit functions