00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _IRTKFLUIDFREEFORMTRANSFORMATION_H
00014
00015 #define _IRTKFLUIDFREEFORMTRANSFORMATION_H
00016
00017 #include <irtkGeometry.h>
00018
00026 class irtkFluidFreeFormTransformation : public irtkMultiLevelFreeFormTransformation
00027 {
00028
00029 public:
00030
00032 irtkFluidFreeFormTransformation();
00033
00035 irtkFluidFreeFormTransformation(const irtkRigidTransformation &);
00036
00038 irtkFluidFreeFormTransformation(const irtkAffineTransformation &);
00039
00041 irtkFluidFreeFormTransformation(const irtkFluidFreeFormTransformation &);
00042
00044 virtual void Transform(double &, double &, double &, double = 0);
00045
00047 virtual void Displacement(double& x, double& y, double& z, double = 0);
00048
00050 virtual void GlobalTransform(double &, double &, double &, double = 0);
00051
00053 virtual void LocalTransform (double &, double &, double &, double = 0);
00054
00056 virtual void GlobalDisplacement(double &, double &, double &, double = 0);
00057
00059 virtual void LocalDisplacement(double &, double &, double &, double = 0);
00060
00062 virtual void Transform(int, double &, double &, double &, double = 0);
00063
00065 virtual void LocalTransform (int, double &, double &, double &, double = 0);
00066
00068 virtual void LocalDisplacement(int, double &, double &, double &, double = 0);
00069
00071 virtual void Jacobian(irtkMatrix &, double, double, double, double = 0);
00072
00074 virtual void LocalJacobian(irtkMatrix &, double, double, double, double = 0);
00075
00077 virtual double Inverse(double &, double &, double &, double = 0, double = 0.01);
00078
00080 virtual double Inverse(int, double &, double &, double &, double = 0, double = 0.01);
00081
00083 virtual const char *NameOfClass();
00084
00086 virtual irtkCifstream& Read(irtkCifstream&);
00087
00089 virtual irtkCofstream& Write(irtkCofstream&);
00090 };
00091
00092 inline const char *irtkFluidFreeFormTransformation::NameOfClass()
00093 {
00094 return "irtkFluidFreeFormTransformation";
00095
00096 }
00097
00098 #endif