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

Last change on this file since 2973 was 2973, checked in by ansari, 19 years ago

1/ Nettoyage+commentaires/doxygen ds Vector3d, UnitVector, LongLat,
SphereCoordSys ...
2/ Ajout de la classe angle pour faciliter les conversions rad<>deg<>arcmin
dans le fichier vector3d.h .cc
3/ nettoyage/uniformisation methodes print pour pixelmap, ajout de la
methode PixelMap<T>::Show()
4/ Ajout methodes SphericalMap<T>::HasSymThetaSlice() et
GetSymThetaSliceIndex(int_4 idx) et leurs implementations pour
SphereHEALPix et SphereThetaPhi en vue de l'optimisation du calcul
transforme Ylm
5/ Ajout methode ResolToSizeIndex ds SphereThetaPhi , SphereHEALPix et
SphereECP

Reza , 20 Juin 2006

File size: 1.8 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 :
35
36SphericalMap() {};
37virtual ~SphericalMap() {};
38
39// Overloading of () to access pixel number k.
40inline T& operator()(int k) {return(this->PixVal(k));}
41inline T const& operator()(int k) const {return(this->PixVal(k));}
42inline T& operator()(double theta,double phi) {return(this->PixValSph(theta,phi));};
43inline T const& operator()(double theta,double phi) const {return(this->PixValSph(theta,phi));};
44
45// index characterizing the size pixelization : m for SphereThetaPhi
46// nside for Gorski sphere...
47virtual void Resize(int_4 m)=0;
48virtual uint_4 NbThetaSlices() const=0;
49virtual r_8 ThetaOfSlice(int_4 index) const=0;
50/*!
51 Return true if some theta slices have a symmetric counter-part at (Pi-Theta)
52 (the default implementation return true)
53*/
54virtual bool HasSymThetaSlice() const { return false; }
55/*!
56 Return the slice index for the symmetric slice theta=Pi-ThetaOfSlice(idx)
57 an invalid index is returned if the symmetric slice does not exist
58*/
59virtual int_4 GetSymThetaSliceIndex(int_4 idx) const { return -1; }
60virtual void GetThetaSlice(int_4 index,r_8& theta, TVector<r_8>& phi, TVector<T>& value) const=0;
61virtual void GetThetaSlice(int_4 sliceIndex, r_8& theta, r_8& phi0, TVector<int_4>& pixelIndices,TVector<T>& value) const=0 ;
62};
63
64
65} // Fin du namespace
66
67
68
69
70#endif
71
72
73
74
75
76
Note: See TracBrowser for help on using the repository browser.