Index: trunk/SophyaLib/Samba/localmap.cc
===================================================================
--- trunk/SophyaLib/Samba/localmap.cc	(revision 518)
+++ trunk/SophyaLib/Samba/localmap.cc	(revision 568)
@@ -40,22 +40,27 @@
 //    pixel(nx/2, ny/2)
 //
-//    la carte est consideree comme un tableau a deux indices i et j, i etant 
-//    indice de colonne et j indice de ligne. La carte est supposee resider 
-//    dans un plan tangent, dont le point de tangence est repere (x0,y0) dans 
-//    la carte et (theta0, phi0) sur la sphere celeste. L'extension de la 
-//    carte est definie par les valeurs de deux angles couverts respectivement
-//    par la totalite des pixels en x de la carte et la totalite des pixels 
-//    en y. (SetSize()).
-//    On considere un "plan de reference" : plan tangent a la sphere celeste 
-//    aux angles theta=Pi/2 et phi=0. Dans ce plan L'origine des coordonnees 
-//    est le point de tangence. L'axe Ox est la tangente parallele a 
-//    l'equateur, dirige vers les phi croissants, l'axe Oy est parallele 
-//    au meridien, dirige vers le pole nord.
-//    De maniere interne a la classe une carte est definie dans ce plan de 
-//    reference et transportee  jusqu'au point (theta0, phi0) de sorte que 
-//    les axes restent paralleles aux meridiens et paralleles. L'utilisateur 
-//    peut definir sa carte selon un repere en rotation par rapport au repere 
-//    de reference (par l'angle entre le parallele et l'axe Ox souhaite -- 
-//    methode SetOrigin(...))
+//    A local map is a 2 dimensional array, with i as column index and j
+//    as row index. The map is supposed to lie on a plan tangent to the 
+//    celestial sphere in a point whose coordinates are (x0,y0) on the local
+//    map and (theta0, phi0) on the sphere. The range of the map is defined
+//    by two values of angles covered respectively by all the pixels in 
+//    x direction and all the pixels in y direction (SetSize()).
+//
+//    A "reference plane" is considered : this plane is tangent to the 
+//    celestial sphere in a point with angles theta=Pi/2 and phi=0. This 
+//    point is the origine of coordinates is of the reference plane. The 
+//    x-axis is the tangent parallel to the equatorial line and oriented 
+//    toward the increasing phi's ; the y-axis is parallel to the meridian 
+//    line and oriented toward the north pole.
+//    
+//    Internally, a map is first defined within this reference plane and
+//    tranported until the point (theta0, phi0) in such a way that both 
+//    axes are kept parallel to meridian and parallel lines of the sphere.
+//    The user can define its own map with axes rotated with respect to
+//    reference axes (this rotation is characterized by angle between 
+//    the local parallel line and the wanted x-axis-- see method 
+//    SetOrigin(...))
+//    
+//
 
 //
@@ -70,10 +75,10 @@
 //++
 //
-// Links	Descendants
+// Links	Childs
 //
 //     
 //-- 
 //++
-// Titre	Constructeurs
+// Titre	Constructors
 //--
 //++
@@ -81,5 +86,5 @@
 LocalMap<T>::LocalMap()
 //
-// Constructeur par defaut 
+//     
 //--
 {
@@ -91,5 +96,5 @@
 LocalMap<T>::LocalMap(int nx, int ny) : nSzX_(nx), nSzY_(ny)
 //
-// Constructeur
+//    
 //--
 {
@@ -104,5 +109,5 @@
 LocalMap<T>::LocalMap(const LocalMap<T>& lm)
 //
-// Constructeur de recopie
+//    copy constructor
 //--
 {
@@ -130,8 +135,10 @@
 
 //++
+// Titre	Destructor
+//--
+//++
 template<class T>
 LocalMap<T>::~LocalMap()
 //
-// Destructeur
 //--
 {
@@ -139,17 +146,9 @@
 }
 
-//++
-template<class T>
-void LocalMap<T>::InitNul()
-//
-// Initialise à zéro certaines variables internes
-//--
-{ 
-  originFlag_= false;
-  extensFlag_= false;
-  cos_angle_= 1.0;
-  sin_angle_= 0.0;
-  pixels_.Reset();
-}
+
+
+//++
+// Titre	Public Methods
+//--
 
 //++
@@ -157,5 +156,5 @@
 void LocalMap<T>::ReSize(int nx, int ny) 
 //
-// Redimensionne l'espace de stokage des pixels
+//    Resize storage area for pixels 
 //--
 {
@@ -169,13 +168,8 @@
 
 //++
-// Titre	Methodes
-//--
-
-
-//++
 template<class T>
 int LocalMap<T>::NbPixels() const
 //
-//    Retourne le nombre de pixels du découpage
+//    Return number of pixels
 //--
 {
@@ -187,5 +181,5 @@
 T& LocalMap<T>::PixVal(int k)
 //
-//    Retourne la valeur du contenu du pixel d'indice k
+//    Return value of pixel with index k
 //--
 {
@@ -205,5 +199,5 @@
 T const& LocalMap<T>::PixVal(int k) const
 //
-//    Retourne la valeur du contenu du pixel d'indice k
+//   const version of previous method
 //--
 {
@@ -220,16 +214,7 @@
 //++
 template<class T>
-bool LocalMap<T>::ContainsSph(double theta, double phi) const
-//--
-{
-  return(true);  // $CHECK$  A MODIFIER - Reza 26/10/99
-}
-
-//++
-template<class T>
 int LocalMap<T>::PixIndexSph(double theta,double phi) const
 //
-//    Retourne l'indice du pixel vers lequel pointe une direction définie par 
-//    ses coordonnées sphériques
+//    Return index of the pixel with spherical coordinates (theta,phi)
 //--
 {
@@ -275,5 +260,5 @@
 void LocalMap<T>::PixThetaPhi(int k,double& theta,double& phi) const
 //
-//    Retourne les coordonnées (theta,phi) du milieu du pixel d'indice k
+//    Return (theta, phi) coordinates of pixel with index k
 //--
 {
@@ -302,7 +287,7 @@
 double LocalMap<T>::PixSolAngle(int k) const
 //
-// Pixel Solid angle  (steradians)
-// All the pixels have not necessarly the same size in (theta, phi)
-// because of the projection scheme which is not yet fixed.   
+//    Pixel Solid angle  (steradians)
+//    All the pixels have not necessarly the same size in (theta, phi)
+//    because of the projection scheme which is not yet fixed.   
 //--
 {
@@ -339,5 +324,6 @@
 void LocalMap<T>::SetOrigin(double theta0,double phi0,double angle)
 //
-// Fixe la repere de reference ( angles en degres) 
+//    set the referential of the map (angles in degrees)
+//    (default x0=siz_x/2,  y0=siz_y/2) 
 //--
 {
@@ -357,5 +343,5 @@
 void LocalMap<T>::SetOrigin(double theta0,double phi0,int x0,int y0,double angle)
 //
-// Fixe le repere de reference (angles en degres)  
+//    set the referential of the map (angles in degrees)
 //--
 {
@@ -375,5 +361,5 @@
 void LocalMap<T>::SetSize(double angleX,double angleY)
 //
-// Fixe l'extension de la carte (angles en degres)
+//    angle range of tthe map (angles in degrees)
 //--
 {
@@ -393,5 +379,5 @@
 void LocalMap<T>::Project(SphericalMap<T>& sphere) const
 //
-// Projection to spherical map   
+//    Projection to a spherical map   
 //--
 {
@@ -404,4 +390,18 @@
     }
 }
+// Titre	Private Methods
+//++
+template<class T>
+void LocalMap<T>::InitNul()
+//
+//    set some attributes to zero
+//--
+{ 
+  originFlag_= false;
+  extensFlag_= false;
+  cos_angle_= 1.0;
+  sin_angle_= 0.0;
+  pixels_.Reset();
+}
 
 //++
@@ -409,4 +409,5 @@
 void LocalMap<T>::Getij(int k,int& i,int& j) const
 //
+//    Return 2 indices corresponding to the pixel number k
 //--
 {
@@ -420,5 +421,7 @@
 void  LocalMap<T>::ReferenceToUser(double& theta,double& phi) const
 //
-// --     
+//    Transform a pair of coordinates (theta, phi) given in 
+//    reference coordinates into map coordinates
+//--     
 {
   if(theta > Pi || theta < 0. || phi < 0. || phi >= 2*Pi) 
@@ -457,5 +460,7 @@
 void  LocalMap<T>::UserToReference(double& theta,double& phi) const
 //
-// --     
+//    Transform a pair of coordinates (theta, phi) given in 
+//    map coordinates into reference coordinates
+//--     
 {
   if(theta > Pi || theta < 0. || phi < 0. || phi >= 2*Pi) 
@@ -498,6 +503,7 @@
 void LocalMap<T>::PixProjToAngle(double x,double y,double& theta,double& phi) const
 //
-// (x,y) representent les coordonnees en unites de pixels d'un point DANS LE PLAN DE REFERENCE. 
-// On recupere (theta,phi) par rapport au repere "absolu" theta=pi/2 et phi=0.
+//  
+//    Given coordinates in pixel units in the REFERENCE PLANE, return
+//    (theta, phi) in "absolute" referential theta=pi/2 ,phi=0.   
 //--
 {
@@ -511,6 +517,6 @@
 void LocalMap<T>::AngleProjToPix(double theta,double phi,double& x,double& y) const
 //
-// (theta,phi) par rapport au repere "absolu" theta=pi/2,phi=0. On recupere 
-// (i,j)  DANS LE PLAN DE REFERENCE. 
+//    Given coordinates  (theta, phi) in "absolute" referential 
+//    theta=pi/2 ,phi=0  return pixel indices  (i,j) in the REFERENCE PLANE.
 //--
 {
@@ -542,4 +548,8 @@
   os << endl;
 }
+//++
+// Titre	class FIO_LocalMap
+//    Delegated objects for persitance management
+//--
 
 //*******************************************************************
@@ -548,13 +558,18 @@
 //*******************************************************************
 
+//++
 template <class T>
 FIO_LocalMap<T>::FIO_LocalMap()
+//
+//--
 {
   dobj= new LocalMap<T>;
   ownobj= true;
 }
-
+//++
 template <class T>
 FIO_LocalMap<T>::FIO_LocalMap(string const& filename)
+//
+//--
 {
   dobj= new LocalMap<T>;
@@ -563,6 +578,9 @@
 }
 
+//++
 template <class T>
 FIO_LocalMap<T>::FIO_LocalMap(const LocalMap<T>& obj)
+//
+//--
 {
   dobj= new LocalMap<T>(obj);
@@ -577,20 +595,27 @@
 }
 
+//++
 template <class T>
 FIO_LocalMap<T>::~FIO_LocalMap()
+//
+//--
 {
   if (ownobj && dobj) delete dobj;
 }
-
+//++
 template <class T>
 AnyDataObj* FIO_LocalMap<T>::DataObj()
+//
+//--
 {
   return(dobj);
 }
 
+//++
 template <class T>
 void FIO_LocalMap<T>::ReadSelf(PInPersist& is)
-{
-  cout << " FIO_LocalMap:: ReadSelf " << endl;
+//
+//--
+{
 
   if(dobj == NULL) 
@@ -598,8 +623,4 @@
       dobj= new LocalMap<T>;
     }
-
-// Let's Read the SphereCoordSys object  -- ATTENTIOn - $CHECK$
-  SphereCoordSys* cs = dynamic_cast<SphereCoordSys*>(is.ReadObject());
-  dobj->SetCoordSys(cs);
 
   // Pour savoir s'il y avait un DVList Info associe
@@ -652,18 +673,16 @@
 }
 
+//++
 template <class T>
 void FIO_LocalMap<T>::WriteSelf(POutPersist& os) const
-{
-  cout << " FIO_LocalMap:: WriteSelf " << endl;
-
+//
+//--
+{
   if(dobj == NULL) 
     {
-      cout << " WriteSelf:: dobj= null " << endl;
+      cout << " FIO_LocalMap::WriteSelf:: dobj= null " << endl;
       return;
     }
 
-// Let's write the SphereCoordSys object
-  dobj->GetCoordSys()->Write(os);
-  
   char strg[256];
   int nSzX= dobj->Size_x();
