00001 /**************************************************************************** 00002 * * 00003 * Program: FDDlib * 00004 * Version: 1.1 * 00005 * * 00006 * Copyright (C) 2002 - 2004 by Eric Miller and Dana Brooks * 00007 * All rights reserved. * 00008 * * 00009 * This software is Version 1.1 of the fddlib tomography toolbox. * 00010 * It is not to be redistributed or used for any commercial purpose * 00011 * without the prior written consent of the authors and Northeastern * 00012 * University. * 00013 * * 00014 * This software is provided as is, and any express or implied warranties, * 00015 * including but not limited to the implied warranty of merchantability * 00016 * and the implied warranty of fitness for a particular purpose, are dis- * 00017 * claimed. In no event shall the authors or Northeastern University be * 00018 * liable for any direct, indirect, incidental, special, exemplary, or * 00019 * consequential damages (including but not limited to procurement of * 00020 * substitute goods or services; loss of use, data, or profits; or busi- * 00021 * ness interruption) however caused and on any theory of liability, * 00022 * whether in contract, strict liability, or tort (including negligence or * 00023 * otherwise) arising in any way from the use of this software, even if * 00024 * advised of the possibility of such damage. * 00025 * * 00026 * Portions of this code benefit from ideas from Kyle Guilbert, Greg * 00027 * Boverman, Derek Uluski, David Kaeli, and Jennifer Black * 00028 * * 00029 ****************************************************************************/ 00030 00031 #ifndef _DIPOLE_DET2D_H_ 00032 #define _DIPOLE_DET2D_H_ 00033 00034 #include "Detector2D.h" 00035 #include "Location2D.h" 00036 #include "Complex.h" 00037 #include "CartesianNode2D.h" 00038 00039 namespace FDDlib { 00040 00044 class DipoleDetector2D : public Detector2D 00045 { 00046 protected: 00047 00049 Location2D location1_; 00050 00052 Complex<double> weight1_; 00053 00055 Complex<double> data1_; 00056 00058 Location2D location2_; 00059 00061 Complex<double> weight2_; 00062 00064 Complex<double> data2_; 00065 00066 public: 00067 00075 DipoleDetector2D(const Location2D& location1, const Complex<double>& weight1, 00076 const Location2D& location2, const Complex<double>& weight2); 00077 00082 void setLocations(const Location2D& location1, 00083 const Location2D& location2); 00084 00089 void setWeights(const Complex<double>& weight1, const Complex<double>& weight2); 00090 00096 void getLocations(Location2D& location1, 00097 Location2D& location2) const; 00098 00104 void getWeights(Complex<double>& weight1, Complex<double>& weight2) const; 00105 00112 void setData(const CartesianNode2D& node, const Complex<double>& data); 00113 00115 Complex<double> getData() const; 00116 00121 Complex<double> getData(const CartesianNode2D& node) const; 00122 00123 00124 }; 00125 00126 } 00127 00128 #endif
1.2.18