00001 //# HanningSmoothTVI.h: This file contains the interface definition of the MSTransformManager class. 00002 //# 00003 //# CASA - Common Astronomy Software Applications (http://casa.nrao.edu/) 00004 //# Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved. 00005 //# Copyright (C) European Southern Observatory, 2011, All rights reserved. 00006 //# 00007 //# This library is free software; you can redistribute it and/or 00008 //# modify it under the terms of the GNU Lesser General Public 00009 //# License as published by the Free software Foundation; either 00010 //# version 2.1 of the License, or (at your option) any later version. 00011 //# 00012 //# This library is distributed in the hope that it will be useful, 00013 //# but WITHOUT ANY WARRANTY, without even the implied warranty of 00014 //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 //# Lesser General Public License for more details. 00016 //# 00017 //# You should have received a copy of the GNU Lesser General Public 00018 //# License along with this library; if not, write to the Free Software 00019 //# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00020 //# MA 02111-1307 USA 00021 //# $Id: $ 00022 00023 #ifndef HanningSmoothTVI_H_ 00024 #define HanningSmoothTVI_H_ 00025 00026 // Base class 00027 #include <mstransform/TVI/ConvolutionTVI.h> 00028 00029 00030 namespace casa { //# NAMESPACE CASA - BEGIN 00031 00032 namespace vi { //# NAMESPACE VI - BEGIN 00033 00035 // HanningSmoothTVI class 00037 00038 class HanningSmoothTVI : public ConvolutionTVI 00039 { 00040 00041 public: 00042 00043 HanningSmoothTVI( ViImplementation2 * inputVii, 00044 const Record &configuration); 00045 00046 // Report the the ViImplementation type 00047 virtual String ViiType() const { return String("HanningSmooth( ")+getVii()->ViiType()+" )"; }; 00048 00049 protected: 00050 00051 void initialize(); 00052 }; 00053 00055 // HanningSmoothTVIFactory class 00057 00058 class HanningSmoothTVIFactory : public ViFactory 00059 { 00060 00061 public: 00062 00063 HanningSmoothTVIFactory(Record &configuration,ViImplementation2 *inputVII); 00064 00065 protected: 00066 00067 vi::ViImplementation2 * createVi (VisibilityIterator2 *) const; 00068 vi::ViImplementation2 * createVi () const; 00069 00070 Record configuration_p; 00071 ViImplementation2 *inputVii_p;; 00072 }; 00073 00074 } //# NAMESPACE VI - END 00075 00076 } //# NAMESPACE CASA - END 00077 00078 #endif /* HanningSmoothTVI_H_ */ 00079