casa
$Rev:20696$
|
00001 //# ComponentImager.h: this defines ComponentImager, which ... 00002 //# Copyright (C) 1999,2000,2003 00003 //# Associated Universities, Inc. Washington DC, USA. 00004 //# 00005 //# This library is free software; you can redistribute it and/or modify it 00006 //# under the terms of the GNU Library General Public License as published by 00007 //# the Free Software Foundation; either version 2 of the License, or (at your 00008 //# option) any later version. 00009 //# 00010 //# This library is distributed in the hope that it will be useful, but WITHOUT 00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00013 //# License for more details. 00014 //# 00015 //# You should have received a copy of the GNU Library General Public License 00016 //# along with this library; if not, write to the Free Software Foundation, 00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00018 //# 00019 //# Correspondence concerning AIPS++ should be addressed as follows: 00020 //# Internet email: aips2-request@nrao.edu. 00021 //# Postal address: AIPS++ Project Office 00022 //# National Radio Astronomy Observatory 00023 //# 520 Edgemont Road 00024 //# Charlottesville, VA 22903-2475 USA 00025 //# 00026 //# 00027 //# $Id: ComponentImager.h 20299 2008-04-03 05:56:44Z gervandiepen $ 00028 //#! ======================================================================== 00029 //#! Attention! Programmers read this! 00030 //#! 00031 //#! This file is a template to guide you in creating a header file 00032 //#! for your new class. By following this template, you will create 00033 //#! a permanent reference document for your class, suitable for both 00034 //#! the novice client programmer, the seasoned veteran, and anyone in 00035 //#! between. It is essential that you write the documentation portions 00036 //#! of this file with as much care as you do the source code. 00037 //#! 00038 //#! If you are unfamilar with the AIPS++ header style please refer to 00039 //#! template-class-h. 00040 //#! 00041 //#! Replacement Tokens 00042 //#! ------------------ 00043 //#! 00044 //#! These are character strings enclosed in angle brackets, on a commented 00045 //#! line. Two are found on the first line of this file: 00046 //#! 00047 //#! <ClassFileName.h> <ClassName> 00048 //#! 00049 //#! You should remove the angle brackets, and replace the characters within 00050 //#! the brackets with names specific to your class. Mimic the capitalization 00051 //#! and punctuation of the original. For example, you would change 00052 //#! 00053 //#! <ClassFileName.h> to LatticeIter.h 00054 //#! <ClassName> to LatticeIterator 00055 //#! 00056 //#! Another replacement token will be found in the "include guard" just 00057 //#! a few lines below. 00058 //#! 00059 //#! #define <AIPS_CLASSFILENAME_H> to #define AIPS_LATTICEITER_H 00060 //#! 00061 00062 #ifndef IMAGES_COMPONENTIMAGER_H 00063 #define IMAGES_COMPONENTIMAGER_H 00064 00065 #include <casa/aips.h> 00066 00067 namespace casa { //# NAMESPACE CASA - BEGIN 00068 00069 template <class T> class ImageInterface; 00070 class ComponentList; 00071 class Unit; 00072 class LogIO; 00073 00074 // <summary> 00075 // </summary> 00076 00077 // <use visibility=local> 00078 00079 // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos=""> 00080 // </reviewed> 00081 00082 // <prerequisite> 00083 // <li> ImageInterface 00084 // <li> ComponentList 00085 // </prerequisite> 00086 // 00087 // <etymology> 00088 // </etymology> 00089 // 00090 // <synopsis> 00091 // Project the componentlist onto the image. If any of the coordinate 00092 // transformations for a particular pixel fail (e.g. coordinate system 00093 // is not defined for that pixel) if the image has a writable mask, then those 00094 // pixels will be masked, otherwise they are just zeroed. Any pixels 00095 // that are already masked mask=F) will not have their values changed 00096 // (perhaps this behaviour should be changed). 00097 // </synopsis> 00098 // 00099 // <example> 00100 // </example> 00101 // 00102 // <motivation> 00103 // </motivation> 00104 00105 class ComponentImager 00106 { 00107 public: 00108 00109 // Project the componentlist onto the image. If any of the coordinate 00110 // transformations for a particular pixel fail (e.g. coordinate system 00111 // is not defined for that pixel) if the image has a writable mask, then those 00112 // pixels will be masked, otherwise they are just zeroed. Any pixels 00113 // that are already masked mask=F) will not have their values changed 00114 // (perhaps this behaviour should be changed). 00115 static void project(ImageInterface<Float>& image, 00116 const ComponentList& list); 00117 }; 00118 00119 00120 } //# NAMESPACE CASA - END 00121 00122 #endif 00123 00124