Changeset 518 in Sophya for trunk/SophyaLib/Samba/pixelmap.h
- Timestamp:
- Oct 26, 1999, 4:31:44 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/Samba/pixelmap.h
r473 r518 1 // This may look like C code, but it is really -*- C++ -*- 1 2 #ifndef PIXELMAP_SEEN 2 3 #define PIXELMAP_SEEN … … 4 5 #include "ppersist.h" 5 6 #include "dvlist.h" 7 #include "spherepos.h" 6 8 #include <iostream.h> 7 9 … … 21 23 public: 22 24 23 PixelMap():mInfo_(NULL) {}; 24 virtual ~PixelMap() {}; 25 25 PixelMap(SphereCoordSys* cs = NULL) : mInfo_(NULL) 26 { if (cs) cs_ = cs; else cs = new SphereCoordSys; } 27 virtual ~PixelMap() 28 { if (mInfo_) delete mInfo_; if (cs_) delete cs_; } 29 30 // Set/Change/Get the coordinate system 31 virtual void SetCoordSys(SphereCoordSys* cs) 32 { if (cs) { delete cs_; cs_ = cs; } } 33 inline SphereCoordSys* GetCoordSys() const { return(cs_); } 34 26 35 // Number of pixels 27 36 virtual int NbPixels() const=0; … … 30 39 virtual T& PixVal(int k)=0; 31 40 virtual T const& PixVal(int k) const=0; 32 41 42 // Map s coverage 43 virtual bool ContainsSph(double theta, double phi) const=0; 44 virtual bool Contains(const SpherePosition& spos) const; 45 33 46 // Index of pixel at (theta,phi) 34 47 virtual int PixIndexSph(double theta, double phi) const=0; 48 // Index of pixel at a sky-position 49 virtual int PixIndex(const SpherePosition& spos); 50 35 51 36 52 // Value of pixel number at (theta,phi) … … 55 71 inline T const& operator()(int k) const {return(PixVal(k));} 56 72 73 // Overloading of () to access pixel at a sky position . 74 inline T& operator()(const SpherePosition& spos) 75 { return(PixVal(PixIndex(spos))); } 76 inline T const& operator()(const SpherePosition& spos) const 77 { return(PixVal(PixIndex(spos))); } 78 79 57 80 // Note : no overloading of (double,double) to access pixel (theta,phi). 58 81 // overloading of (double,double) in SphericalMap … … 75 98 76 99 protected : 77 100 SphereCoordSys *cs_; // Coordinate system used in the map 78 101 DVList* mInfo_; // Infos (variables) attachees 79 102 }; 103 104 105 template <class T> 106 int PixelMap<T>::PixIndex(const SpherePosition& spos) 107 { 108 UnitVector v = spos.Transform(*cs_); 109 return(PixIndexSph(v.Theta(), v.Phi())); 110 } 111 112 template <class T> 113 bool PixelMap<T>::Contains(const SpherePosition& spos) const 114 { 115 UnitVector v = spos.Transform(*cs_); 116 return(ContainsSph(v.Theta(), v.Phi())); 117 } 118 80 119 #endif
Note:
See TracChangeset
for help on using the changeset viewer.