Line data Source code
1 : //# HanningSmoothTVI.h: This file contains the interface definition of the MSTransformManager class. 2 : //# 3 : //# CASA - Common Astronomy Software Applications (http://casa.nrao.edu/) 4 : //# Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved. 5 : //# Copyright (C) European Southern Observatory, 2011, All rights reserved. 6 : //# 7 : //# This library is free software; you can redistribute it and/or 8 : //# modify it under the terms of the GNU Lesser General Public 9 : //# License as published by the Free software Foundation; either 10 : //# version 2.1 of the License, or (at your option) any later version. 11 : //# 12 : //# This library is distributed in the hope that it will be useful, 13 : //# but WITHOUT ANY WARRANTY, without even the implied warranty of 14 : //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 : //# Lesser General Public License for more details. 16 : //# 17 : //# You should have received a copy of the GNU Lesser General Public 18 : //# License along with this library; if not, write to the Free Software 19 : //# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20 : //# MA 02111-1307 USA 21 : //# $Id: $ 22 : 23 : #ifndef HanningSmoothTVI_H_ 24 : #define HanningSmoothTVI_H_ 25 : 26 : // Base class 27 : #include <mstransform/TVI/ConvolutionTVI.h> 28 : 29 : 30 : namespace casa { //# NAMESPACE CASA - BEGIN 31 : 32 : namespace vi { //# NAMESPACE VI - BEGIN 33 : 34 : ////////////////////////////////////////////////////////////////////////// 35 : // HanningSmoothTVI class 36 : ////////////////////////////////////////////////////////////////////////// 37 : 38 : class HanningSmoothTVI : public ConvolutionTVI 39 : { 40 : 41 : public: 42 : 43 : HanningSmoothTVI( ViImplementation2 * inputVii); 44 : 45 : // Report the the ViImplementation type 46 0 : virtual casacore::String ViiType() const { return casacore::String("HanningSmooth( ")+getVii()->ViiType()+" )"; }; 47 : 48 : protected: 49 : 50 : void initialize(); 51 : }; 52 : 53 : ////////////////////////////////////////////////////////////////////////// 54 : // HanningSmoothTVIFactory class 55 : ////////////////////////////////////////////////////////////////////////// 56 : 57 : class HanningSmoothTVIFactory : public ViFactory 58 : { 59 : 60 : public: 61 : 62 : HanningSmoothTVIFactory(ViImplementation2 *inputVII); 63 : 64 : protected: 65 : 66 : vi::ViImplementation2 * createVi (VisibilityIterator2 *) const; 67 : vi::ViImplementation2 * createVi () const; 68 : 69 : ViImplementation2 *inputVii_p;; 70 : }; 71 : 72 : ////////////////////////////////////////////////////////////////////////// 73 : // HanningSmoothTVILayerFactory class (for _recursive_ layering) 74 : ////////////////////////////////////////////////////////////////////////// 75 : 76 : class HanningSmoothTVILayerFactory : public ViiLayerFactory 77 : { 78 : 79 : public: 80 : 81 : HanningSmoothTVILayerFactory(); 82 : 83 0 : virtual ~HanningSmoothTVILayerFactory() {}; 84 : 85 : protected: 86 : 87 : 88 : virtual ViImplementation2 * createInstance(ViImplementation2* vii0) const; 89 : 90 : }; 91 : 92 : 93 : } //# NAMESPACE VI - END 94 : 95 : } //# NAMESPACE CASA - END 96 : 97 : #endif /* HanningSmoothTVI_H_ */ 98 :