Changeset 473 in Sophya for trunk/SophyaLib/Samba/localmap.h


Ignore:
Timestamp:
Oct 18, 1999, 4:37:44 PM (26 years ago)
Author:
ansari
Message:

modifs francois : passage en double etc. 18-OCT-99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/Samba/localmap.h

    r470 r473  
    4242
    4343LocalMap();
    44 LocalMap(int_4 nx, int_4 ny);
     44LocalMap(int nx, int ny);
    4545LocalMap(const LocalMap<T>& lm);
    4646virtual ~LocalMap();
     
    4848// ---------- Overloading of () to access pixel number k ----
    4949
    50 inline T& operator()(int_4 k) {return(PixVal(k));}
    51 inline T const& operator()(int_4 k) const {return(PixVal(k));}
     50inline T& operator()(int k) {return(PixVal(k));}
     51inline T const& operator()(int k) const {return(PixVal(k));}
    5252inline T& operator()(int ix, int iy) {return PixVal(iy*nSzX_+ix);};
    5353inline T const& operator()(int ix, int iy) const {return PixVal(iy*nSzX_+ix);};
     
    5656
    5757/* return/set the number of pixels */
    58 virtual int_4 NbPixels() const;
    59 inline void setNbPixels(int_4 n) {nPix_= n;}
     58virtual int NbPixels() const;
     59inline void setNbPixels(int n) {nPix_= n;}
    6060 
    6161/* return the value of pixel number k */
    62 virtual T& PixVal(int_4 k);
    63 virtual T const& PixVal(int_4 k) const;
     62virtual T& PixVal(int k);
     63virtual T const& PixVal(int k) const;
    6464
    6565/* return the index of pixel at (theta,phi) */
    66 virtual int_4 PixIndexSph(float theta, float phi) const;
     66virtual int PixIndexSph(double theta,double phi) const;
    6767   
    6868/* return the spherical coordinates of center of pixel number k */
    69 virtual void PixThetaPhi(int_4 k, float& theta, float& phi) const;
     69virtual void PixThetaPhi(int k,double& theta,double& phi) const;
    7070
    7171/* return the Pixel Solid angle  (steradians) */
    72 virtual r_8 PixSolAngle(int_4 k) const;
     72virtual double PixSolAngle(int k) const;
    7373
    7474// ---------- Specific methods ------------------------------
    7575
    76 void ReSize(int_4 nx, int_4 ny);
     76void ReSize(int nx, int ny);
    7777
    7878inline virtual char* TypeOfMap() const {return "LOCAL";};
    7979 
    8080/* Origin (with angle between x axis and phi axis, in degrees)  x0,y0  the default: middle of map*/
    81 virtual void SetOrigin(float theta=90., float phi=0., float angle=0.);
    82 virtual void SetOrigin(float theta,float phi,int_4 x0,int_4 y0,float angle=0.);
     81virtual void SetOrigin(double theta=90.,double phi=0.,double angle=0.);
     82virtual void SetOrigin(double theta,double phi,int x0,int y0,double angle=0.);
    8383
    8484/* Pixel size (degres) */
    85 virtual void SetSize(float angleX, float angleY);
     85virtual void SetSize(double angleX,double angleY);
    8686
    8787/* Check to see if the local mapping is done */
     
    9595 
    9696/* provides a integer characterizing the pixelization refinement  (here : number of pixels) */
    97 inline virtual int_4 SizeIndex() const {return(nPix_);}
    98 inline int_4 Size_x() const {return nSzX_;}
    99 inline void setSize_x(int_4 n) {nSzX_= n;}
    100 inline int_4 Size_y() const {return nSzY_;}
    101 inline void setSize_y(int_4 n) {nSzY_= n;}
     97inline virtual int SizeIndex() const {return(nPix_);}
     98inline int Size_x() const {return nSzX_;}
     99inline void setSize_x(int n) {nSzX_= n;}
     100inline int Size_y() const {return nSzY_;}
     101inline void setSize_y(int n) {nSzY_= n;}
    102102
    103 inline void Origin(float& theta, float& phi,int& x0, int& y0, float& angle) const {theta= (float)theta0_; phi= (float)phi0_; x0= x0_; y0= y0_;angle= (float)angle_;}
     103inline void Origin(double& theta,double& phi,int& x0,int& y0,double& angle) const {theta= theta0_; phi= phi0_; x0= x0_; y0= y0_;angle= angle_;}
    104104
    105 inline void Aperture(float& anglex, float& angley) const {anglex= (float)angleX_; angley= (float)angleY_;}
     105inline void Aperture(double& anglex,double& angley) const {anglex= angleX_; angley= angleY_;}
    106106
    107107/* retourne le pointeur vers/remplit  le vecteur des contenus des pixels */
    108108inline const NDataBlock<T>* getDataBlock() const {return (&pixels_);}
    109 inline void setDataBlock(T* data, int_4 n) {pixels_.FillFrom(n,data);}
     109inline void setDataBlock(T* data, int n) {pixels_.FillFrom(n,data);}
    110110
    111111/* impression */
     
    117117
    118118void InitNul();
    119 void Getij(int k, int& i, int& j) const;
    120 void ReferenceToUser(float &theta, float &phi) const;
    121 void UserToReference(float &theta, float &phi) const;
    122 void PixProjToAngle(float x, float y,float &theta, float &phi) const;
    123 void AngleProjToPix(float theta, float phi, float& x, float& y) const;
     119void Getij(int k,int& i,int& j) const;
     120void ReferenceToUser(double& theta,double& phi) const;
     121void UserToReference(double& theta,double& phi) const;
     122void PixProjToAngle(double x,double y,double& theta,double& phi) const;
     123void AngleProjToPix(double theta,double phi,double& x,double& y) const;
    124124
    125125// ---------- Variables internes ----------------------------
    126126
    127 int_4 nSzX_;
    128 int_4 nSzY_;
    129 int_4 nPix_;
     127int nSzX_;
     128int nSzY_;
     129int nPix_;
    130130bool originFlag_;
    131131bool extensFlag_;
    132 int_4 x0_;
    133 int_4 y0_;
    134 r_8 theta0_;
    135 r_8 phi0_;
    136 r_8 angle_;
    137 r_4 cos_angle_;
    138 r_4 sin_angle_;
    139 r_8 angleX_;
    140 r_8 angleY_;
    141 r_8 tgAngleX_;
    142 r_8 tgAngleY_;
     132int x0_;
     133int y0_;
     134double theta0_;
     135double phi0_;
     136double angle_;
     137double cos_angle_;
     138double sin_angle_;
     139double angleX_;
     140double angleY_;
     141double tgAngleX_;
     142double tgAngleY_;
    143143NDataBlock<T> pixels_;
    144144};
Note: See TracChangeset for help on using the changeset viewer.