00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef TRIALDISPLAY_SCROLLINGRASTERDD_H
00029 #define TRIALDISPLAY_SCROLLINGRASTERDD_H
00030
00031 #include <display/DisplayDatas/PrincipalAxesDD.h>
00032
00033 #include <casa/Arrays/Array.h>
00034 #include <lattices/Lattices/Lattice.h>
00035 #include <casa/Containers/Record.h>
00036
00037 #include <images/Images/ImageInterface.h>
00038 #include <lattices/Lattices/MaskedLattice.h>
00039 #include <lattices/Lattices/LatticeStatistics.h>
00040 #include <lattices/Lattices/SubLattice.h>
00041 #include <lattices/Lattices/LatticeConcat.h>
00042
00043
00044
00045
00046
00047 namespace casa {
00048
00049 class WCResampleHandler;
00050
00051 class ScrollingRasterDM;
00052
00053 class ScrollingRasterDD : public PrincipalAxesDD {
00054
00055 public:
00056 ScrollingRasterDD(const uInt nDim,
00057 const IPosition, const Vector<String>, const Vector<String>,
00058 uInt sAxis = 2, uInt scanNo = 100);
00059 virtual ~ScrollingRasterDD();
00060
00061 virtual void updateLattice(const Record &){};
00062 virtual void updateLattice(Array<Float> &, CoordinateSystem &);
00063
00064 virtual String className() {
00065 return String("ScrollingRasterDD");
00066 }
00067
00068 virtual Bool setOptions(Record &rec, Record &recOut);
00069 virtual Record getOptions();
00070
00071 virtual void setDefaultOptions();
00072
00073
00074 virtual Bool setLabellerOptions(Record &, Record &){return False;}
00075
00076
00077 virtual Record getLabellerOptions(){Record rec; return rec;}
00078
00079
00080 virtual Bool sizeControl(WorldCanvasHolder& wcHolder,
00081 AttributeBuffer& holderBuf);
00082
00083 virtual WCResampleHandler *resampleHandler() { return itsResampleHandler; }
00084
00085 protected:
00086 friend class ScrollingRasterDM;
00087
00088 virtual void updateLatticeConcat(Array<Float>* = NULL , CoordinateSystem* = NULL);
00089 virtual void initLattice(const Record &);
00090 virtual void initLattice(const Float, const Float, const uInt);
00091
00092 virtual void recreateEmptyLattices(uInt changedScanNumber = 0);
00093
00094 virtual const IPosition dataShape();
00095 virtual const uInt dataDim();
00096 virtual const Unit dataUnit();
00097 virtual void setupElements();
00098 virtual void getMinAndMax();
00099 virtual void updateLatticeStatistics();
00100
00101
00102
00103 virtual Bool labelAxes(const WCRefreshEvent &ev);
00104
00105 virtual MaskedLattice<Float>* maskedLattice()
00106 { return itsLatticeConcatPtr; }
00107
00108 virtual Display::DisplayDataType classType()
00109 { return Display::Raster; }
00110
00111 virtual String showValue(const Vector<Double> &world);
00112 virtual const Float dataValue(IPosition pos);
00113 virtual const Bool maskValue(const IPosition &pos);
00114
00115 virtual Vector<String> worldAxisNames();
00116 virtual Vector<String> worldAxisUnits();
00117
00118
00119 ScrollingRasterDD();
00120
00121
00122 ScrollingRasterDD(const ScrollingRasterDD &other);
00123
00124
00125 void operator=(const ScrollingRasterDD &other);
00126
00127
00128 virtual void setSpectralPreference (
00129 CoordinateSystem& cSys, const String&, const String& ){}
00130
00131 void setHeaderMin(Float x){ itsHeaderMin = x; }
00132 void setHeaderMax(Float x){ itsHeaderMax = x; }
00133 Float headerMin() { return itsHeaderMin; }
00134 Float headerMax() { return itsHeaderMax; }
00135 void setScanNumber(uInt x){ itsScanNumber = x; }
00136 uInt scanNumber() { return itsScanNumber; }
00137 Bool headerReceived() { return itsHeaderReceived; }
00138 void setHeaderReceived(Bool x) { itsHeaderReceived = x; }
00139
00140 IPosition latticesShape(){ return itsLattices[0]->shape(); }
00141 uInt shiftAxis(){ return itsShiftAxis; }
00142
00143 void setNeedResize(const Bool x) { itsNeedResize = x; }
00144 Bool needResize() { return itsNeedResize; }
00145
00146 IPosition fixedPos() { return itsFixedPos; }
00147
00148
00149
00150
00151 void setLatticeShape(const IPosition x) { itsLatticeShape = x; }
00152 IPosition latticeShape() { return itsLatticeShape; }
00153
00154 private:
00155 uInt nDim;
00156
00157
00159 LatticeConcat<Float>* itsLatticeConcatPtr;
00160
00161 LatticeStatistics<Float> *itsLatticeStatisticsPtr;
00162 SubLattice<Float> *itsFilledDisplayedLatticePtr;
00163
00164 IPosition itsFixedPos;
00165
00166 Int itsFilledCount;
00167
00168 MaskedLattice<Float> **itsLattices;
00169
00170 Bool itsNeedResize;
00171 uInt itsShiftAxis;
00172
00173 Bool itsHeaderReceived;
00174 Float itsHeaderMin;
00175 Float itsHeaderMax;
00176 uInt itsScanNumber;
00177 IPosition itsLatticeShape;
00178
00179
00180
00181
00182 String itsResample;
00183
00184
00185 WCResampleHandler *itsResampleHandler;
00186
00187 };
00188
00189
00190 }
00191
00192 #endif
00193