00001 #ifndef IMAGES_BEAMMANIPULATOR_H 00002 #define IMAGES_BEAMMANIPULATOR_H 00003 00004 #include <imageanalysis/ImageTypedefs.h> 00005 00006 #include <casa/Quanta/Quantum.h> 00007 00008 namespace casa { 00009 00010 template <class T> class BeamManipulator { 00011 // <summary> 00012 // Manipulate beams associated with images. 00013 // </summary> 00014 00015 // <reviewed reviewer="" date="" tests="" demos=""> 00016 // </reviewed> 00017 00018 // <prerequisite> 00019 // </prerequisite> 00020 00021 // <etymology> 00022 // Manipulates beams. 00023 // </etymology> 00024 00025 // <synopsis> 00026 // Manipulate beams associated with images. 00027 // </synopsis> 00028 00029 public: 00030 00031 BeamManipulator() = delete; 00032 00033 BeamManipulator(SPIIT image); 00034 00035 BeamManipulator operator=(const BeamManipulator& other) = delete; 00036 00037 ~BeamManipulator() {} 00038 00039 // remove all existing beam(s) 00040 void remove(); 00041 00042 // rotate all the beams counterclockwise by the specified angle 00043 void rotate(const Quantity& angle); 00044 00045 void set( 00046 const Quantity& major, const Quantity& minor, 00047 const Quantity& pa, const Record& rec, 00048 Int channel, Int polarization 00049 ); 00050 00051 // set all beams in one go 00052 void set(const ImageBeamSet& beamSet); 00053 00054 void setVerbose(Bool v); 00055 00056 private: 00057 SPIIT _image; 00058 SHARED_PTR<LogIO> _log; 00059 }; 00060 } 00061 00062 #ifndef AIPS_NO_TEMPLATE_SRC 00063 #include <imageanalysis/ImageAnalysis/BeamManipulator.tcc> 00064 #endif 00065 00066 #endif