Overture  Version 25
StretchTransform.h
Go to the documentation of this file.
1 #ifndef STRETCH_TRANSFORM
2 #define STRETCH_TRANSFORM
3 
4 #include "ComposeMapping.h"
5 #include "StretchedSquare.h"
6 
7 class DialogData;
8 
10 //----------------------------------------------------------------
11 // Stretch a Mapping along the Coordinate Directions
12 // -------------------------------------------------
13 //
14 // Compose a Mapping with a StretchedSquare
15 //----------------------------------------------------------------
16  private:
17  aString className;
18  StretchedSquare *stretchedSquare; // this mapping is use to stretch
19  public:
20 
22 
23  void setMapping( Mapping & map ); // set the mapping for the stretch tranform
25 
26  void reinitialize(); // call this function if you change the StretchedSquare
27 
28  // Copy constructor is deep by default
29  StretchTransform( const StretchTransform &, const CopyType copyType=DEEP );
30 
32 
34 
35  virtual int get( const GenericDataBase & dir, const aString & name); // get from a database file
36  virtual int put( GenericDataBase & dir, const aString & name) const; // put to a database file
37 
39 
40  aString getClassName() const { return StretchTransform::className; }
41 
42  int update( MappingInformation & mapInfo ) ;
43 
44 
45  int update( MappingInformation & mapInfo,
46  const aString & command,
47  DialogData *interface =NULL );
48 
49  int applyStretching( int stretchingType[3], IntegerArray *ipar, RealArray *rpar );
50 
51  int updateStretchingParameters(aString & answer, IntegerArray *ipar, RealArray *rpar,
52  int stretchingType[3], int numberOfMultigridLevels,
53  real stretchResolutionFactor,
54  DialogData *stretchParametersDialog[3],
55  DialogData & dialog, MappingInformation & mapInfo );
56 
58  const StretchMapping::StretchingType stretchType,
59  const int direction );
60 
61  int resizeParameterArrays( int stretchID, IntegerArray & ipar, RealArray & rpar );
62 
63  protected:
65 
66  private:
67 
68  //
69  // Virtual member functions used only through class ReferenceCounting:
70  //
72  { return operator=((StretchTransform &)x); }
73  virtual void reference( const ReferenceCounting& x)
74  { reference((StretchTransform &)x); } // *** Conversion to this class for the virtual = ****
75  virtual ReferenceCounting* virtualConstructor( const CopyType ct = DEEP ) const
76  { return ::new StretchTransform(*this, ct); }
77  };
78 
79 
80 #endif