source: Sophya/trunk/SophyaLib/SkyMap/sphericalmap.h@ 4081

Last change on this file since 4081 was 4066, checked in by ansari, 13 years ago

Ajout gestion de niveau d'impression globale pour les cartes du module SkyMap ds pixelmap.h et prise en compte du niveau pour les prints ds Resize des SphericalMaps (fait en janv 2012 ?), Reza 27/04/2012

File size: 2.1 KB
Line 
1#ifndef SPHERICALMAP_SEEN
2#define SPHERICALMAP_SEEN
3
4// valeurs de Pi, 2*Pi, etc
5#include "smathconst.h"
6#include <math.h>
7#include "pixelmap.h"
8#include "tvector.h"
9
10// Map of pixels on a whole sphere.
11// Class hierarchy :
12// PixelMap
13// SphericalMap
14// SphereThetaPhi
15// SphereGorski
16// SphereIco
17// LocalMap
18
19
20
21
22namespace SOPHYA {
23
24/*!
25 \class SphericalMap
26 \ingroup SkyMap
27 Base class (pure virtual) for 4Pi spherical maps
28*/
29
30template<class T>
31class SphericalMap : public PixelMap<T>
32{
33
34public :
35SphericalMap() {};
36virtual ~SphericalMap() {};
37
38// Overloading of () to access pixel number k.
39inline T& operator()(int k) {return(this->PixVal(k));}
40inline T const& operator()(int k) const {return(this->PixVal(k));}
41inline T& operator()(double theta,double phi) {return(this->PixValSph(theta,phi));};
42inline T const& operator()(double theta,double phi) const {return(this->PixValSph(theta,phi));};
43
44// index characterizing the size pixelization : m for SphereThetaPhi
45// nside for Gorski sphere...
46virtual void Resize(int_4 m)=0;
47virtual uint_4 NbThetaSlices() const=0;
48virtual r_8 ThetaOfSlice(int_4 index) const=0;
49/*!
50 Return true if some theta slices have a symmetric counter-part at (Pi-Theta)
51 (the default implementation return true)
52*/
53virtual bool HasSymThetaSlice() const { return false; }
54/*!
55 Return the slice index for the symmetric slice theta=Pi-ThetaOfSlice(idx)
56 an invalid index is returned if the symmetric slice does not exist
57*/
58virtual int_4 GetSymThetaSliceIndex(int_4 idx) const { return -1; }
59virtual void GetThetaSlice(int_4 index,r_8& theta, TVector<r_8>& phi, TVector<T>& value) const=0;
60virtual void GetThetaSlice(int_4 sliceIndex, r_8& theta, r_8& phi0, TVector<int_4>& pixelIndices,TVector<T>& value) const=0 ;
61/*!
62 If possible return a pointer to the slice pixel data. return NULL otherwise
63*/
64virtual T* GetThetaSliceDataPtr(int_4 sliceIndex) { return NULL; }
65
66protected:
67 static int_4 prt_lev_; //!< Print level
68};
69
70
71} // Fin du namespace
72
73
74
75
76#endif
77
78
79
80
81
82
Note: See TracBrowser for help on using the repository browser.