ImageMaskHandler.h
Go to the documentation of this file.00001 #ifndef IMAGEANALYSIS_IMAGEMASKHANDLER_H
00002 #define IMAGEANALYSIS_IMAGEMASKHANDLER_H
00003
00004 #include <casa/BasicSL/String.h>
00005 #include <casa/Arrays/Vector.h>
00006
00007 #include <imageanalysis/ImageTypedefs.h>
00008
00009
00010
00011 #include <set>
00012
00013 namespace casa {
00014
00015 class ImageRegion;
00016 class LatticeExprNode;
00017 template <class T> class MaskedLattice;
00018
00019 template <class T> class ImageMaskHandler {
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 public:
00038 ImageMaskHandler(SPIIT);
00039
00040 ~ImageMaskHandler();
00041
00042
00043 void set(const String& name);
00044
00045
00046 String defaultMask() const;
00047
00048
00049 void deleteMasks(const std::set<String>& masks);
00050
00051
00052 void rename(const String& oldName, const String& newName);
00053
00054
00055 Vector<String> get() const;
00056
00057
00058 void copy(const String& currentName, const String& newName);
00059
00060 void calcmask(
00061 const String& mask, Record& regions,
00062 const String& name, Bool asdefault=True
00063 );
00064
00065
00066
00067 template <class U> void copy(const MaskedLattice<U>& mask);
00068
00069 private:
00070 const SPIIT _image;
00071
00072 void _calcmask(
00073 const LatticeExprNode& node,
00074 const String& name, const Bool makedefault
00075 );
00076
00077
00078 static void _makeRegionBlock(
00079 PtrBlock<const ImageRegion*>& regions,
00080 const Record& Regions
00081 );
00082 };
00083
00084 }
00085
00086 #ifndef AIPS_NO_TEMPLATE_SRC
00087 #include <imageanalysis/ImageAnalysis/ImageMaskHandler.tcc>
00088 #endif
00089
00090 #endif