dox/Common/vtkImplicitFunction.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00049
#ifndef __vtkImplicitFunction_h
00050
#define __vtkImplicitFunction_h
00051
00052
#include "vtkObject.h"
00053
00054
class vtkAbstractTransform;
00055
00056 class VTK_COMMON_EXPORT vtkImplicitFunction :
public vtkObject
00057 {
00058
public:
00059 vtkTypeRevisionMacro(vtkImplicitFunction,
vtkObject);
00060
void PrintSelf(ostream& os,
vtkIndent indent);
00061
00064
unsigned long GetMTime();
00065
00067
00069
double FunctionValue(
const double x[3]);
00070 double FunctionValue(
double x,
double y,
double z) {
00071
double xyz[3] = {x, y, z};
return this->FunctionValue(xyz); };
00073
00075
00077
void FunctionGradient(
const double x[3],
double g[3]);
00078 double *FunctionGradient(
const double x[3]) {
00079 this->FunctionGradient(x,this->ReturnValue);
00080
return this->ReturnValue; };
00081 double *FunctionGradient(
double x,
double y,
double z) {
00082
double xyz[3] = {x, y, z};
return this->FunctionGradient(xyz); };
00084
00086
00088
virtual void SetTransform(
vtkAbstractTransform*);
00089 vtkGetObjectMacro(Transform,
vtkAbstractTransform);
00091
00093
00097
virtual double EvaluateFunction(
double x[3]) = 0;
00098 double EvaluateFunction(
double x,
double y,
double z) {
00099
double xyz[3] = {x, y, z};
return this->EvaluateFunction(xyz); };
00101
00106
virtual void EvaluateGradient(
double x[3],
double g[3]) = 0;
00107
00108
protected:
00109 vtkImplicitFunction();
00110 ~vtkImplicitFunction();
00111
00112 vtkAbstractTransform *Transform;
00113 double ReturnValue[3];
00114
private:
00115 vtkImplicitFunction(
const vtkImplicitFunction&);
00116
void operator=(
const vtkImplicitFunction&);
00117 };
00118
00119
#endif