From 5ccbd19422c57b62cea37e77aa0739ed4b22fadb Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Thu, 25 Oct 2007 13:20:29 +0000
Subject: [PATCH] Suppression des commentaires francias restant.

---
 Code/Projections/otbCompositeTransform.h      | 208 ++++++++---------
 Code/Projections/otbCompositeTransform.txx    | 208 +++++++++--------
 Code/Projections/otbEckert4MapProjection.cxx  | 130 +++++------
 Code/Projections/otbEckert4MapProjection.h    |  99 ++++----
 Code/Projections/otbForwardSensorModel.h      | 146 ++++++------
 Code/Projections/otbForwardSensorModel.txx    |  65 ++++--
 Code/Projections/otbInverseSensorModel.h      | 215 +++++++++--------
 Code/Projections/otbInverseSensorModel.txx    | 160 +++++++------
 .../otbLambertConformalConicMapProjection.cxx | 180 +++++++--------
 .../otbLambertConformalConicMapProjection.h   |  97 ++++----
 Code/Projections/otbMapProjection.h           | 217 ++++++++----------
 Code/Projections/otbMapProjections.h          |  91 ++++----
 12 files changed, 906 insertions(+), 910 deletions(-)

diff --git a/Code/Projections/otbCompositeTransform.h b/Code/Projections/otbCompositeTransform.h
index ba9e8e4eda..21e8f5982f 100644
--- a/Code/Projections/otbCompositeTransform.h
+++ b/Code/Projections/otbCompositeTransform.h
@@ -1,18 +1,18 @@
 /*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
 
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbCompositeTransform_h
@@ -27,104 +27,104 @@
 
 namespace otb
 {
-
-
-/** \class CompositeTransform
-
- * \brief Class which compose two itk::Transform to obtain one itk::Transform
- * 			 T1					T2												 T3
- * (x,y) -> (x',y') -> (x'',y'')   =>    (x,y) -> (x'',y'') 
- * \ingroup Transform 
- */
- 
-template <class TFirstTransform,
-					class TSecondTransform,
-					class TScalarType=double, 
-					unsigned int NInputDimensions=2,
-					unsigned int NOutputDimensions=2>
-class ITK_EXPORT CompositeTransform: public itk::Transform<TScalarType,       // Data type for scalars 
-																									NInputDimensions,  // Number of dimensions in the input space
-																									NOutputDimensions> // Number of dimensions in the output space
-{
-public :
   
-
-	/** Standard class typedefs */
-  typedef itk::Transform< TScalarType,
-                  				NInputDimensions,
-				                  NOutputDimensions >  				Superclass;
-  typedef CompositeTransform                            				Self;
-  typedef itk::SmartPointer<Self>              				Pointer;
-  typedef itk::SmartPointer<const Self>        				ConstPointer;
-
-  typedef TFirstTransform					         						FirstTransformType;
-  typedef typename TFirstTransform::Pointer 					FirstTransformPointerType;
-  typedef TSecondTransform					       						SecondTransformType;
-	typedef typename TSecondTransform::Pointer       		SecondTransformPointerType;
-
-  /** Standard vector type for this class. */
-//  typedef typename TFirstTransform::InputVectorType  FirstTransformInputVectorType;
-//  typedef typename TFirstTransform::OutputVectorType FirstTransformOutputVectorType;
   
-  /** Standard covariant vector type for this class */
-//  typedef typename TFirstTransform::InputCovariantVectorType FirstTransformInputCovariantVectorType;
-//  typedef typename TFirstTransform::OutputCovariantVectorType FirstTransformOutputCovariantVectorType;
+  /** \class CompositeTransform
+      
+  * \brief Class which compose two itk::Transform to obtain one itk::Transform
+  * 	 T1    T2	    T3
+  * (x,y) -> (x',y') -> (x'',y'')   =>    (x,y) -> (x'',y'') 
+  * \ingroup Transform 
+  */
   
-  /** Standard vnl_vector type for this class. */
-//  typedef typename TFirstTransform::InputVnlVectorType FirstTransformInputVnlVectorType;
-//  typedef typename TFirstTransform::OutputVnlVectorType FirstTransformOutputVnlVectorType;
+  template <class TFirstTransform,
+            class TSecondTransform,
+            class TScalarType=double, 
+            unsigned int NInputDimensions=2,
+            unsigned int NOutputDimensions=2>
+    class ITK_EXPORT CompositeTransform: public itk::Transform<TScalarType,  // Data type for scalars 
+                                                     NInputDimensions,       // Number of dimensions in the input space
+                                                     NOutputDimensions>      // Number of dimensions in the output space
+    {
+      public :
+      
+      
+      /** Standard class typedefs */
+      typedef itk::Transform< TScalarType,
+      NInputDimensions,
+      NOutputDimensions >  			 Superclass;
+      typedef CompositeTransform                 Self;
+      typedef itk::SmartPointer<Self>            Pointer;
+      typedef itk::SmartPointer<const Self>      ConstPointer;
+
+      typedef TFirstTransform			 FirstTransformType;
+      typedef typename TFirstTransform::Pointer  FirstTransformPointerType;
+      typedef TSecondTransform			 SecondTransformType;
+      typedef typename TSecondTransform::Pointer SecondTransformPointerType;
+      
+      /** Standard vector type for this class. */
+      //  typedef typename TFirstTransform::InputVectorType  FirstTransformInputVectorType;
+      //  typedef typename TFirstTransform::OutputVectorType FirstTransformOutputVectorType;
+      
+      /** Standard covariant vector type for this class */
+      //  typedef typename TFirstTransform::InputCovariantVectorType FirstTransformInputCovariantVectorType;
+      //  typedef typename TFirstTransform::OutputCovariantVectorType FirstTransformOutputCovariantVectorType;
+      
+      /** Standard vnl_vector type for this class. */
+      //  typedef typename TFirstTransform::InputVnlVectorType FirstTransformInputVnlVectorType;
+      //  typedef typename TFirstTransform::OutputVnlVectorType FirstTransformOutputVnlVectorType;
+      
+      /** Standard coordinate point type for this class */
+      typedef typename Superclass::InputPointType       FirstTransformInputPointType;
+      typedef typename TFirstTransform::OutputPointType FirstTransformOutputPointType;
+      /** TSecondTransform::InputPointType is purposely not defined
+       *  It contrains user to choose First Transform Output compatible 
+       *	with Second Transform Input */
+      typedef typename Superclass::OutputPointType      SecondTransformOutputPointType;
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( CompositeTransform, itk::Transform );
+      
+      itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
+      itkStaticConstMacro(OutputSpaceDimension,unsigned int, NOutputDimensions);
+      itkStaticConstMacro(SpaceDimension,      unsigned int, NInputDimensions);
+      itkStaticConstMacro(ParametersDimension, unsigned int, NInputDimensions*(NInputDimensions+1));
+      
+      /** Set first transformation */  
+      itkSetObjectMacro(FirstTransform,FirstTransformType); 
+      
+      /** Set second transformation */ 
+      itkSetObjectMacro(SecondTransform,SecondTransformType);
+      
+      
+      /**  Method to transform a point. */
+      virtual SecondTransformOutputPointType TransformPoint(const FirstTransformInputPointType  & ) const;
+      
+      /**  Method to transform a vector. */
+      //  virtual OutputVectorType TransformVector(const InputVectorType &) const;
+      
+      /**  Method to transform a vnl_vector. */
+      //  virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const;
+      
+      /**  Method to transform a CovariantVector. */
+      //  virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const;
+      
+      protected:
+      CompositeTransform();
+      ~CompositeTransform();
+      
+      FirstTransformPointerType  m_FirstTransform;
+      SecondTransformPointerType m_SecondTransform;  
+      
+      private:
+      CompositeTransform(const Self&); //purposely not implemented
+      void operator=(const Self&); //purposely not implemented
+      
+    };
   
-  /** Standard coordinate point type for this class */
-  typedef typename Superclass::InputPointType FirstTransformInputPointType;
-  typedef typename TFirstTransform::OutputPointType FirstTransformOutputPointType;
-	/** TSecondTransform::InputPointType is purposely not defined
-	 *  It contrains user to choose First Transform Output compatible 
-	 *	with Second Transform Input */
-	typedef typename Superclass::OutputPointType SecondTransformOutputPointType;
-
-	/** Method for creation through the object factory. */
-	itkNewMacro( Self );
-	
-	/** Run-time type information (and related methods). */
-	itkTypeMacro( CompositeTransform, itk::Transform );
-	
-  itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
-  itkStaticConstMacro(SpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(ParametersDimension, unsigned int,NInputDimensions*(NInputDimensions+1));
-
-	/** Set first transformation */  
-	itkSetObjectMacro(FirstTransform,FirstTransformType); 
-	
-	/** Set second transformation */ 
-	itkSetObjectMacro(SecondTransform,SecondTransformType);
-
-
-  /**  Method to transform a point. */
-  virtual SecondTransformOutputPointType TransformPoint(const FirstTransformInputPointType  & ) const;
-
-  /**  Method to transform a vector. */
-//  virtual OutputVectorType TransformVector(const InputVectorType &) const;
-
-  /**  Method to transform a vnl_vector. */
-//  virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const;
-
-  /**  Method to transform a CovariantVector. */
-//  virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const;
-
-protected:
-	CompositeTransform();
-	~CompositeTransform();
-	
-	FirstTransformPointerType m_FirstTransform;
-	SecondTransformPointerType m_SecondTransform;  
-	
-private:
-  CompositeTransform(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-	
-};
-
 } // namespace otb
 
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Code/Projections/otbCompositeTransform.txx b/Code/Projections/otbCompositeTransform.txx
index 6567a50b83..a63e887def 100644
--- a/Code/Projections/otbCompositeTransform.txx
+++ b/Code/Projections/otbCompositeTransform.txx
@@ -1,18 +1,18 @@
 /*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
 
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbCompositeTransform_txx
@@ -23,87 +23,115 @@
 
 namespace otb
 {
-
-template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions>
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>
-::CompositeTransform() : Superclass(SpaceDimension,ParametersDimension)
-{
-	m_FirstTransform = FirstTransformType::New();
-	m_SecondTransform = SecondTransformType::New();
-}
   
-template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions>
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>
-::~CompositeTransform()
-{
-}
-
-
-template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
-typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>::SecondTransformOutputPointType 
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>
-::TransformPoint(const FirstTransformInputPointType &point1) const
-{
-	FirstTransformOutputPointType pointTmp;
-	SecondTransformOutputPointType point2;	
-	
-	pointTmp=m_FirstTransform->TransformPoint(point1); 
-
-	otbMsgDevMacro(<< "Geographic point is ("<<  pointTmp[0]<< ","<<  pointTmp[1]<< ")"); 	
-
-	point2=m_SecondTransform->TransformPoint(pointTmp); 
-
-  otbMsgDevMacro(<< "Coresponding coordinates in sensor geometry are: " << std::endl
-               << point2[0] << ","<< point2[1] );
-
-	return point2;
-}
-
-/*template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
-typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputVectorType 
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
-::TransformVector(const InputVectorType &vector1) const
-{ 
-	InputVectorType vectorTmp;
-	OutputVectorType vector2;	
-	
-	vectorTmp=m_FirstTransform->TransformVector(vector1); 
-	vector2=m_SecondTransform->TransformVector(vectorTmp); 
-
-	return vector2;
-}
-
-template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
-typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputVnlVectorType 
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
-::TransformVector(const InputVnlVectorType &vnlVector1) const
-{ 
-	InputVnlVectorType vnlVectorTmp;
-	OutputVnlVectorType vnlVector2;	
-	
-	vnlVectorTmp=m_FirstTransform->TransformVector(vnlVector1); 
-	vnlVector2=m_SecondTransform->TransformVector(vnlVectorTmp); 
-
-	return vnlVector2;
-}
-
-template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
-typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputCovariantVectorType 
-CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
-::TransformCovariantVector(const InputCovariantVectorType &covariantVector1) const
-{ 
-	InputCovariantVectorType covariantVectorTmp;
-	OutputCovariantVectorType covariantVector2;	
-	
-	covariantVectorTmp=m_FirstTransform->TransformCovariantVector(covariantVector1); 
-	covariantVector2=m_SecondTransform->TransformCovariantVector(covariantVectorTmp); 
-
-	return covariantVector2;
-}*/
-
-
-
-
+  template<class TFirstTransform, 
+           class TSecondTransform, 
+           class TScalarType, 
+           unsigned int NInputDimensions, 
+           unsigned int NOutputDimensions>
+  CompositeTransform<TFirstTransform, 
+                     TSecondTransform, 
+                     TScalarType,  
+                     NInputDimensions, 
+                     NOutputDimensions>
+  ::CompositeTransform() : Superclass(SpaceDimension,ParametersDimension)
+  {
+    m_FirstTransform = FirstTransformType::New();
+    m_SecondTransform = SecondTransformType::New();
+  }
+  
+  template<class TFirstTransform, 
+           class TSecondTransform, 
+           class TScalarType, 
+           unsigned int NInputDimensions, 
+           unsigned int NOutputDimensions>
+  CompositeTransform<TFirstTransform, 
+                     TSecondTransform, 
+                     TScalarType, 
+                     NInputDimensions, 
+                     NOutputDimensions>
+  ::~CompositeTransform()
+  {
+  }
+  
+  
+  template<class TFirstTransform, 
+           class TSecondTransform, 
+           class TScalarType, 
+           unsigned int NInputDimensions, 
+           unsigned int NOutputDimensions> 
+  typename CompositeTransform<TFirstTransform, 
+                              TSecondTransform, 
+                              TScalarType,
+                              NInputDimensions, 
+                              NOutputDimensions>::SecondTransformOutputPointType 
+  CompositeTransform<TFirstTransform, 
+                     TSecondTransform, 
+                     TScalarType, 
+                     NInputDimensions, 
+                     NOutputDimensions>
+  ::TransformPoint(const FirstTransformInputPointType &point1) const
+  {
+    FirstTransformOutputPointType pointTmp;
+    SecondTransformOutputPointType point2;	
+    
+    pointTmp=m_FirstTransform->TransformPoint(point1); 
+    
+    otbMsgDevMacro(<< "Geographic point is ("<<  pointTmp[0]<< ","<<  pointTmp[1]<< ")"); 	
+    
+    point2=m_SecondTransform->TransformPoint(pointTmp); 
+    
+    otbMsgDevMacro(<< "Coresponding coordinates in sensor geometry are: " << std::endl
+		   << point2[0] << ","<< point2[1] );
+    
+    return point2;
+  }
+  
+  /*template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
+    typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputVectorType 
+    CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
+    ::TransformVector(const InputVectorType &vector1) const
+    { 
+    InputVectorType vectorTmp;
+    OutputVectorType vector2;	
+    
+    vectorTmp=m_FirstTransform->TransformVector(vector1); 
+    vector2=m_SecondTransform->TransformVector(vectorTmp); 
+    
+    return vector2;
+    }
+    
+    template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
+    typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputVnlVectorType 
+    CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
+    ::TransformVector(const InputVnlVectorType &vnlVector1) const
+    { 
+    InputVnlVectorType vnlVectorTmp;
+    OutputVnlVectorType vnlVector2;	
+    
+    vnlVectorTmp=m_FirstTransform->TransformVector(vnlVector1); 
+    vnlVector2=m_SecondTransform->TransformVector(vnlVectorTmp); 
+    
+    return vnlVector2;
+    }
+    
+    template<class TFirstTransform, class TSecondTransform, class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> 
+    typename CompositeTransform<TFirstTransform, TSecondTransform, TScalarType, NInputDimensions, NOutputDimensions>::OutputCovariantVectorType 
+    CompositeTransform<TFirstTransform, TSecondTransform, TScalarType,NInputDimensions, NOutputDimensions>
+    ::TransformCovariantVector(const InputCovariantVectorType &covariantVector1) const
+    { 
+    InputCovariantVectorType covariantVectorTmp;
+    OutputCovariantVectorType covariantVector2;	
+    
+    covariantVectorTmp=m_FirstTransform->TransformCovariantVector(covariantVector1); 
+    covariantVector2=m_SecondTransform->TransformCovariantVector(covariantVectorTmp); 
+    
+    return covariantVector2;
+    }*/
+  
+  
+  
+  
 } // namespace otb
 
 #endif
diff --git a/Code/Projections/otbEckert4MapProjection.cxx b/Code/Projections/otbEckert4MapProjection.cxx
index 665f550d83..341018d680 100644
--- a/Code/Projections/otbEckert4MapProjection.cxx
+++ b/Code/Projections/otbEckert4MapProjection.cxx
@@ -1,80 +1,80 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #include "otbEckert4MapProjection.h"
 
 namespace otb
 { 
-
-Eckert4MapProjection
-::Eckert4MapProjection()
-{
+  
+  Eckert4MapProjection
+  ::Eckert4MapProjection()
+  {
 	m_Eckert4Projection = new ossimEckert4Projection();
-}
-
-
-Eckert4MapProjection
-::~Eckert4MapProjection()
-{
-	delete m_Eckert4Projection;
-}
-
-///False easting specification
-void Eckert4MapProjection
+  }
+  
+  
+  Eckert4MapProjection
+  ::~Eckert4MapProjection()
+  {
+    delete m_Eckert4Projection;
+  }
+  
+  ///False easting specification
+  void Eckert4MapProjection
 ::SetFalseEasting(double falseEasting) 
-{
-	m_Eckert4Projection->setFalseEasting(falseEasting);
-}
-
-///False Northing specification
-void Eckert4MapProjection
-::SetFalseNorthing(double falseNorthing) 
-{
-	m_Eckert4Projection->setFalseNorthing(falseNorthing);
-}
-
-///Set the defaul parameters
-void Eckert4MapProjection
-	::SetDefaults() 
-{
-m_Eckert4Projection->setDefaults();
-}
-
-///Get the false northing coordinates (avoid negative values)
-double Eckert4MapProjection
-::GetFalseNorthing() const
-{
-	double falseNorthing=m_Eckert4Projection->getFalseNorthing();
-	return falseNorthing;
-}
-
-///Get the false easting coordinates (avoid negative values)
-double Eckert4MapProjection
-::GetFalseEasting() const
-{
-	double falseEasting=m_Eckert4Projection->getFalseEasting();
-	return falseEasting;
-}
-
-void Eckert4MapProjection
-::SetParameters(double falseEasting,double falseNorthing)
-{
-	m_Eckert4Projection->setFalseEastingNorthing(falseEasting,falseNorthing);
-}
-
+  {
+    m_Eckert4Projection->setFalseEasting(falseEasting);
+  }
+  
+  ///False Northing specification
+  void Eckert4MapProjection
+  ::SetFalseNorthing(double falseNorthing) 
+  {
+    m_Eckert4Projection->setFalseNorthing(falseNorthing);
+  }
+  
+  ///Set the defaul parameters
+  void Eckert4MapProjection
+  ::SetDefaults() 
+  {
+    m_Eckert4Projection->setDefaults();
+  }
+  
+  ///Get the false northing coordinates (avoid negative values)
+  double Eckert4MapProjection
+  ::GetFalseNorthing() const
+  {
+    double falseNorthing=m_Eckert4Projection->getFalseNorthing();
+    return falseNorthing;
+  }
+  
+  ///Get the false easting coordinates (avoid negative values)
+  double Eckert4MapProjection
+  ::GetFalseEasting() const
+  {
+    double falseEasting=m_Eckert4Projection->getFalseEasting();
+    return falseEasting;
+  }
+  
+  void Eckert4MapProjection
+  ::SetParameters(double falseEasting,double falseNorthing)
+  {
+    m_Eckert4Projection->setFalseEastingNorthing(falseEasting,falseNorthing);
+  }
+  
 } // namespace otb
 
diff --git a/Code/Projections/otbEckert4MapProjection.h b/Code/Projections/otbEckert4MapProjection.h
index 2255a33d71..ebb8145b8e 100644
--- a/Code/Projections/otbEckert4MapProjection.h
+++ b/Code/Projections/otbEckert4MapProjection.h
@@ -1,18 +1,18 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbEckert4MapProjection_h
@@ -28,52 +28,43 @@ namespace otb
    *  \brief This class implements the Eckert4 map projection.
    * It converts coordinates in longitude,latitude to Eckert4 map coordinates.
    */
-class ITK_EXPORT Eckert4MapProjection : public MapProjection<ossimEckert4Projection> 
-{
-public :
-
-	/** Standard class typedefs. */
-  typedef Eckert4MapProjection                                  Self;
-  typedef MapProjection<ossimEckert4Projection>                 Superclass;
-  typedef itk::SmartPointer<Self>                    	        Pointer;
-  typedef itk::SmartPointer<const Self>              	      	ConstPointer;
-
-  typedef Superclass::ScalarType 				ScalarType;
-  typedef itk::Point<ScalarType,2 >   	      			InputPointType;
-  typedef itk::Point<ScalarType,2 >  	      			OutputPointType; 
-
-  /** Method for creation through the object factory. */
-	itkNewMacro( Self );
-	
-	/** Run-time type information (and related methods). */
-	itkTypeMacro( Eckert4MapProjection, MapProjection );
-
-	virtual void SetFalseEasting(double falseEasting);
-
-	virtual void SetFalseNorthing(double falseNorthing);
-
-	virtual double GetFalseNorthing() const;
-
-	virtual double GetFalseEasting() const;
-	
-	virtual void SetParameters(double falseEasting,double falseNorthing);
-
-	virtual void SetDefaults();
-
-protected :
+  class ITK_EXPORT Eckert4MapProjection : public MapProjection<ossimEckert4Projection> 
+    {
+      public :
 	
+	/** Standard class typedefs. */
+	typedef Eckert4MapProjection                   Self;
+      typedef MapProjection<ossimEckert4Projection>    Superclass;
+      typedef itk::SmartPointer<Self>                  Pointer;
+      typedef itk::SmartPointer<const Self>            ConstPointer;
+      
+      typedef Superclass::ScalarType 			ScalarType;
+      typedef itk::Point<ScalarType,2 >   	      	InputPointType;
+      typedef itk::Point<ScalarType,2 >  	      	OutputPointType; 
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( Eckert4MapProjection, MapProjection );
+      virtual void SetFalseEasting(double falseEasting);
+      virtual void SetFalseNorthing(double falseNorthing);
+      virtual double GetFalseNorthing() const;
+      virtual double GetFalseEasting() const;
+      virtual void SetParameters(double falseEasting,double falseNorthing);
+      virtual void SetDefaults();
+      
+      protected :
 	Eckert4MapProjection(); 
-	virtual ~Eckert4MapProjection();
-
-	ossimEckert4Projection* m_Eckert4Projection;
-
-private :
-	
-  Eckert4MapProjection(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-
-};
-
+      virtual ~Eckert4MapProjection();
+      ossimEckert4Projection* m_Eckert4Projection;
+      
+      private :
+	Eckert4MapProjection(const Self&); //purposely not implemented
+      void operator=(const Self&); //purposely not implemented
+      
+    };
+  
 } // namespace otb
 
 #endif
diff --git a/Code/Projections/otbForwardSensorModel.h b/Code/Projections/otbForwardSensorModel.h
index 565968b7af..2b015e539a 100644
--- a/Code/Projections/otbForwardSensorModel.h
+++ b/Code/Projections/otbForwardSensorModel.h
@@ -1,20 +1,21 @@
 /*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
 
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
+
 #ifndef __otbForwardSensorModel_h
 #define __otbForwardSensorModel_h
 
@@ -25,70 +26,69 @@
 
 namespace otb
 {
-
-/** \class ForwardSensorModel
-
- * \brief Class for direct sensor models 
- *
- * Based to ossimProjectionFactoryRegistry and ossimProjection methods.
- * It takes in input an index and compute the world coordinates.
- * (i,j,h) -> (lat,lon).
- * Notice that the elevation h is optional. 
- *
- * \ingroup Transform 
- */
- 
-template <class TScalarType,
-          unsigned int NInputDimensions=2,
-          unsigned int NOutputDimensions=2,
-          unsigned int NParametersDimensions=3>
-class ITK_EXPORT ForwardSensorModel : public SensorModelBase<TScalarType,          
-			                                    									 NInputDimensions,  
-										                                         NOutputDimensions,
-                                                             NParametersDimensions> 
-{
-
-public :
-
-	/** Standard class typedefs. */
-  typedef ForwardSensorModel                             Self;
-  typedef SensorModelBase< TScalarType,
-                   				 NInputDimensions,
-                   				 NOutputDimensions,
-                   				 NParametersDimensions >       Superclass;
-  typedef itk::SmartPointer<Self>                    	   Pointer;
-  typedef itk::SmartPointer<const Self>              	   ConstPointer;
-
-  typedef typename Superclass::InputPointType            InputPointType;
-  typedef typename Superclass::OutputPointType           OutputPointType;      
   
-	/** Method for creation through the object factory. */
-  itkNewMacro( Self );
-	
-	/** Run-time type information (and related methods). */
-	itkTypeMacro( ForwardSensorModel, SensorModelBase );
-	       
-  itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
-  itkStaticConstMacro(ParametersDimension, unsigned int, NParametersDimensions); //A voir!!
-	         
-  /** Compute the world coordinates. */ 
-  OutputPointType TransformPoint(const InputPointType &point) const;
-
-protected:
-  ForwardSensorModel(); 
-  virtual ~ForwardSensorModel();
-
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const;
-	
-private :
-
-	ForwardSensorModel(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-};
-
-
+  /** \class ForwardSensorModel
+      
+  * \brief Class for direct sensor models 
+  *
+  * Based to ossimProjectionFactoryRegistry and ossimProjection methods.
+  * It takes in input an index and compute the world coordinates.
+  * (i,j,h) -> (lat,lon).
+  * Notice that the elevation h is optional. 
+  *
+  * \ingroup Transform 
+  */
+  
+  template <class TScalarType,
+            unsigned int NInputDimensions=2,
+            unsigned int NOutputDimensions=2,
+            unsigned int NParametersDimensions=3>
+    class ITK_EXPORT ForwardSensorModel : public SensorModelBase<TScalarType,          
+                                                                 NInputDimensions,  
+								 NOutputDimensions,
+                                                                 NParametersDimensions> 
+    {
+      
+      public :
+      /** Standard class typedefs. */
+      typedef ForwardSensorModel                         Self;
+      typedef SensorModelBase< TScalarType,
+                               NInputDimensions,
+                               NOutputDimensions,
+                   	       NParametersDimensions >   Superclass;
+      typedef itk::SmartPointer<Self>                    Pointer;
+      typedef itk::SmartPointer<const Self>              ConstPointer;
+      
+      typedef typename Superclass::InputPointType        InputPointType;
+      typedef typename Superclass::OutputPointType       OutputPointType;      
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( ForwardSensorModel, SensorModelBase );
+      
+      itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
+      itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
+      itkStaticConstMacro(ParametersDimension, unsigned int, NParametersDimensions); //A voir!!
+      
+      /** Compute the world coordinates. */ 
+      OutputPointType TransformPoint(const InputPointType &point) const;
+      
+      protected:
+      ForwardSensorModel(); 
+      virtual ~ForwardSensorModel();
+      
+      /** PrintSelf method */
+      void PrintSelf(std::ostream& os, itk::Indent indent) const;
+      
+      private :
+      
+      ForwardSensorModel(const Self&); //purposely not implemented
+      void operator=(const Self&);     //purposely not implemented
+    };
+  
+  
 } // namespace otb
 
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Code/Projections/otbForwardSensorModel.txx b/Code/Projections/otbForwardSensorModel.txx
index 99660a67f9..a8a7007482 100644
--- a/Code/Projections/otbForwardSensorModel.txx
+++ b/Code/Projections/otbForwardSensorModel.txx
@@ -1,18 +1,18 @@
 /*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
 
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbForwardSensorModel_txx
@@ -30,7 +30,10 @@ template < class TScalarType,
            unsigned int NInputDimensions,
            unsigned int NOutputDimensions,
            unsigned int NParametersDimensions >
-ForwardSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
+ForwardSensorModel< TScalarType,
+                    NInputDimensions,
+                    NOutputDimensions,
+                    NParametersDimensions>
 ::ForwardSensorModel()
 {
 }
@@ -39,7 +42,10 @@ template < class TScalarType,
            unsigned int NInputDimensions,
            unsigned int NOutputDimensions,
            unsigned int NParametersDimensions >
-ForwardSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
+ForwardSensorModel< TScalarType,
+                    NInputDimensions,
+                    NOutputDimensions,
+                    NParametersDimensions>
 ::~ForwardSensorModel()
 {
 }
@@ -49,29 +55,35 @@ template < class TScalarType,
            unsigned int NInputDimensions,
            unsigned int NOutputDimensions,
            unsigned int NParametersDimensions >
-typename ForwardSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>::OutputPointType 
-ForwardSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
+typename ForwardSensorModel< TScalarType,
+                             NInputDimensions,
+                             NOutputDimensions,
+                             NParametersDimensions>::OutputPointType 
+ForwardSensorModel< TScalarType,
+                    NInputDimensions,
+                    NOutputDimensions,
+                    NParametersDimensions>
 ::TransformPoint(const InputPointType &point) const
 {
-	//On transforme le type "itk::point" en type "ossim::ossimDpt" 
+  // "itk::point" to "ossim::ossimDpt" transformation
   ossimDpt ossimPoint(point[0], point[1]);
   
- 	//On calcule 
+  // Calculation 
   ossimGpt ossimGPoint;
   if( this->m_Model == NULL)
-  {
-  	itkExceptionMacro(<<"TransformPoint(): Invalid Model pointer m_Model == NULL !");
-  }
-
-  //Projection par la m�thode "lineSampleToWorld" de la classe ossimSensorModel
+    {
+      itkExceptionMacro(<<"TransformPoint(): Invalid Model pointer m_Model == NULL !");
+    }
+  
+  // Projection using the method of the class ossimSensorModel : lineSampleToWorld()
   this->m_Model->lineSampleToWorld(ossimPoint, ossimGPoint); 
   
-  //On stocke le resultat dans un "OutputPointType"  
+  // "OutputPointType" storage.
   OutputPointType outputPoint;
   outputPoint[0]=ossimGPoint.lat;
   outputPoint[1]=ossimGPoint.lon;
-    
-	return outputPoint;
+  
+  return outputPoint;
 }
 
 template < class TScalarType,
@@ -79,7 +91,10 @@ template < class TScalarType,
            unsigned int NOutputDimensions,
            unsigned int NParametersDimensions >
 void
-ForwardSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
+ForwardSensorModel< TScalarType, 
+                    NInputDimensions,
+                    NOutputDimensions,
+                    NParametersDimensions>
 ::PrintSelf(std::ostream& os, itk::Indent indent) const
 {
   Superclass::PrintSelf(os,indent);
diff --git a/Code/Projections/otbInverseSensorModel.h b/Code/Projections/otbInverseSensorModel.h
index e8b34f0de1..6b9e403f02 100644
--- a/Code/Projections/otbInverseSensorModel.h
+++ b/Code/Projections/otbInverseSensorModel.h
@@ -1,18 +1,18 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbInverseSensorModel_h
@@ -28,106 +28,105 @@
 
 namespace otb
 {
-
-/** \class InverseSensorModel
-
- * \brief Class for inverse sensor models 
- *
- * Based to ossimProjectionFactoryRegistry and ossimProjection methods.
- * It takes in input an world point and compute the index position of the correspondant point in the input image.
- * (lat,lon,h) -> (i,j).
- * Notice that the elevation h is optional. 
- *
- * \ingroup Transform 
- */
-template <class TScalarType,
-          unsigned int NInputDimensions=2,
-          unsigned int NOutputDimensions=2,
-          unsigned int NParametersDimensions=3>
-class ITK_EXPORT InverseSensorModel : public SensorModelBase<TScalarType,          
-			                                    									 NInputDimensions,  
-			                                    									 NOutputDimensions,
-                                                             NParametersDimensions>
-{
-
-public :
-
-	/** Standard class typedefs. */
-  typedef InverseSensorModel                             Self;
-  typedef SensorModelBase< TScalarType,
-                   NInputDimensions,
-                   NOutputDimensions,
-                   NParametersDimensions >               Superclass;
-  typedef itk::SmartPointer<Self>                    	   Pointer;
-  typedef itk::SmartPointer<const Self>              	   ConstPointer;
-
-  typedef typename Superclass::InputPointType            InputPointType;
-//	typedef itk::Point<TScalarType, 3>										 InputPointType;
-	typedef typename Superclass::OutputPointType           OutputPointType; 
-	
-	//typedef otb::Image<double, NInputDimensions>	 ImageType;
-	typedef DEMHandler													 						 DEMHandlerType;
-	typedef typename DEMHandlerType::Pointer							 DEMHandlerPointerType;     
-
-	/** Method for creation through the object factory. */
-  itkNewMacro( Self );
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro( InverseSensorModel, SensorModelBase );
-	       
-  itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
-  itkStaticConstMacro(ParametersDimension, unsigned int, NParametersDimensions); //A voir!!
-	         
-  // Transform of geographic point in image sensor index
-	OutputPointType TransformPoint(const InputPointType &point) const;
-  // Transform of geographic point in image sensor index -- Backward Compatibility
-//  OutputPointType TransformPoint(const InputPointType &point, double height) const;
-
-	itkGetMacro(UseDEM, bool);
-	itkSetMacro(UseDEM, bool);
-	
-	itkGetObjectMacro(DEMHandler, DEMHandlerType);
-	
-	virtual void SetDEMHandler(DEMHandlerType* _arg) 
-  { 
-    if (this->m_DEMHandler != _arg) 
+  
+  /** \class InverseSensorModel
+      
+  * \brief Class for inverse sensor models 
+  *
+  * Based to ossimProjectionFactoryRegistry and ossimProjection methods.
+  * It takes in input an world point and compute the index position of the correspondant point in the input image.
+  * (lat,lon,h) -> (i,j).
+  * Notice that the elevation h is optional. 
+  *
+  * \ingroup Transform 
+  */
+  template <class TScalarType,
+            unsigned int NInputDimensions=2,
+            unsigned int NOutputDimensions=2,
+            unsigned int NParametersDimensions=3>
+    class ITK_EXPORT InverseSensorModel : public SensorModelBase<TScalarType,          
+               						         NInputDimensions,  
+			                                         NOutputDimensions,
+                                                                 NParametersDimensions>
+    {
+      
+      public :
+      /** Standard class typedefs. */
+      typedef InverseSensorModel                         Self;
+      typedef SensorModelBase< TScalarType,
+                               NInputDimensions,
+                               NOutputDimensions,
+                               NParametersDimensions >   Superclass;
+      typedef itk::SmartPointer<Self>                    Pointer;
+      typedef itk::SmartPointer<const Self>              ConstPointer;
+      
+      typedef typename Superclass::InputPointType        InputPointType;
+      //typedef itk::Point<TScalarType, 3>		   InputPointType;
+      typedef typename Superclass::OutputPointType       OutputPointType; 
+      
+      //typedef otb::Image<double, NInputDimensions>	   ImageType;
+      typedef DEMHandler				 DEMHandlerType;
+      typedef typename DEMHandlerType::Pointer		 DEMHandlerPointerType;     
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( InverseSensorModel, SensorModelBase );
+      
+      itkStaticConstMacro(InputSpaceDimension,  unsigned int, NInputDimensions);
+      itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
+      itkStaticConstMacro(ParametersDimension,  unsigned int, NParametersDimensions); //A voir!!
+      
+      // Transform of geographic point in image sensor index
+      OutputPointType TransformPoint(const InputPointType &point) const;
+      // Transform of geographic point in image sensor index -- Backward Compatibility
+      //  OutputPointType TransformPoint(const InputPointType &point, double height) const;
+      
+      itkGetMacro(UseDEM, bool);
+      itkSetMacro(UseDEM, bool);
+      
+      itkGetObjectMacro(DEMHandler, DEMHandlerType);
+      
+      virtual void SetDEMHandler(DEMHandlerType* _arg) 
       { 
-      this->m_DEMHandler = _arg; 
-      this->Modified(); 
-			m_UseDEM = true;
-      } 
-  }
-	
-	virtual bool SetDEMDirectory(const std::string& directory)
-	{
-		bool b = m_DEMHandler->OpenDEMDirectory(directory.c_str());
-		this->UseDEM(true);	
-		
-		return b;	
-	}
-	
-	virtual void UseDEM(bool b) { m_UseDEM = b; this->Modified(); } 
-
-protected:
-  InverseSensorModel(); 
-  virtual ~InverseSensorModel();
-
-  /** PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const;
-	
-private :
-
-  InverseSensorModel(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
+	if (this->m_DEMHandler != _arg) 
+	  { 
+	    this->m_DEMHandler = _arg; 
+	    this->Modified(); 
+	    m_UseDEM = true;
+	  } 
+      }
+      
+      virtual bool SetDEMDirectory(const std::string& directory)
+      {
+	bool b = m_DEMHandler->OpenDEMDirectory(directory.c_str());
+	this->UseDEM(true);	
 	
-	/** Object that read and use DEM */
-	DEMHandlerPointerType m_DEMHandler;
-	
-	/** Specify if DEM is used in Point Transformation */
-	bool m_UseDEM ;
-};
-
+	return b;	
+      }
+      
+      virtual void UseDEM(bool b) { m_UseDEM = b; this->Modified(); } 
+      
+      protected:
+      InverseSensorModel(); 
+      virtual ~InverseSensorModel();
+      
+      /** PrintSelf method */
+      void PrintSelf(std::ostream& os, itk::Indent indent) const;
+      
+      private :
+      
+      InverseSensorModel(const Self&); //purposely not implemented
+      void operator=(const Self&);     //purposely not implemented
+      
+      /** Object that read and use DEM */
+      DEMHandlerPointerType m_DEMHandler;
+      
+      /** Specify if DEM is used in Point Transformation */
+      bool m_UseDEM ;
+    };
+  
 } // namespace otb
 
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Code/Projections/otbInverseSensorModel.txx b/Code/Projections/otbInverseSensorModel.txx
index 958a6fdec1..6adb17e104 100644
--- a/Code/Projections/otbInverseSensorModel.txx
+++ b/Code/Projections/otbInverseSensorModel.txx
@@ -25,85 +25,97 @@
 
 namespace otb
 { 
-
-template < class TScalarType,
-           unsigned int NInputDimensions,
-           unsigned int NOutputDimensions,
-           unsigned int NParametersDimensions >
-InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
-::InverseSensorModel()
-{
-	m_DEMHandler = DEMHandlerType::New();
-	m_UseDEM = false;
-}
-
-template < class TScalarType,
-           unsigned int NInputDimensions,
-           unsigned int NOutputDimensions,
-           unsigned int NParametersDimensions >
-InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
-::~InverseSensorModel()
-{
-}
-
-
-
-template < class TScalarType,
-           unsigned int NInputDimensions,
-           unsigned int NOutputDimensions,
-           unsigned int NParametersDimensions >
-typename InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>::OutputPointType 
-InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
-::TransformPoint(const InputPointType &point) const
-{
-	otbGenericMsgDebugMacro(<< "Geographic point lon/lat : (" << point[0] << "," <<	point[1] << ")");
-	
-	// Transformation of "itk::point" in "ossim::ossimGpt" 
-	ossimGpt ossimGPoint(point[1], point[0]);
-	
-	if (m_UseDEM)
-	{
-		otbMsgDebugMacro(<< "USING DEM ! ") ;
-		otbMsgDebugMacro(<< "Point : (" << point[1] << "," << point[0] << ")");
-		double height = m_DEMHandler->GetHeightAboveMSL(point);
-		otbMsgDebugMacro(<< "height : " << height) ;
-		ossimGPoint.height(height);
-	}
   
-  ossimDpt ossimDPoint;
-
-  if( this->m_Model == NULL)
+  template < class TScalarType,
+	     unsigned int NInputDimensions,
+	     unsigned int NOutputDimensions,
+	     unsigned int NParametersDimensions >
+  InverseSensorModel< TScalarType,
+                      NInputDimensions,
+                      NOutputDimensions,
+                      NParametersDimensions>
+  ::InverseSensorModel()
   {
+    m_DEMHandler = DEMHandlerType::New();
+    m_UseDEM = false;
+  }
+  
+  template < class TScalarType,
+	     unsigned int NInputDimensions,
+	     unsigned int NOutputDimensions,
+	     unsigned int NParametersDimensions >
+  InverseSensorModel< TScalarType,
+                      NInputDimensions,
+                      NOutputDimensions,
+                      NParametersDimensions>
+  ::~InverseSensorModel()
+  {
+  }
+  
+  
+  
+  template < class TScalarType,
+	     unsigned int NInputDimensions,
+	     unsigned int NOutputDimensions,
+	     unsigned int NParametersDimensions >
+  typename InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>::OutputPointType 
+  InverseSensorModel< TScalarType,
+                      NInputDimensions,
+                      NOutputDimensions,
+                      NParametersDimensions>
+  ::TransformPoint(const InputPointType &point) const
+  {
+    otbGenericMsgDebugMacro(<< "Geographic point lon/lat : (" << point[0] << "," <<	point[1] << ")");
+    
+    // Transformation of "itk::point" in "ossim::ossimGpt" 
+    ossimGpt ossimGPoint(point[1], point[0]);
+    
+    if (m_UseDEM)
+      {
+	otbMsgDevMacro(<< "USING DEM ! ") ;
+	otbMsgDevMacro(<< "Point : (" << point[1] << "," << point[0] << ")");
+	double height = m_DEMHandler->GetHeightAboveMSL(point);
+	otbMsgDevMacro(<< "height : " << height) ;
+	ossimGPoint.height(height);
+      }
+    
+    ossimDpt ossimDPoint;
+    
+    if( this->m_Model == NULL)
+      {
   	itkExceptionMacro(<<"TransformPoint(): Invalid Model pointer m_Model == NULL !");
+      }
+    this->m_Model->worldToLineSample(ossimGPoint, ossimDPoint); //"worldToLineSample" appelle la m�thode "lineSampleHeightToWorld" pour prendre en compte l'�l�vation. 
+    
+    OutputPointType outputPoint;
+    
+    //	std::cout << "m_UpperLeftCorner[1] : " << m_UpperLeftCorner[1] << std::endl;
+    //	std::cout << "ossimDPoint.x : " << ossimDPoint.x << std::endl;
+    //	std::cout << "ossimDPoint.y : " << ossimDPoint.y << std::endl;
+    
+    
+    outputPoint[0]=ossimDPoint.x;
+    outputPoint[1]=ossimDPoint.y;
+
+    otbMsgDevMacro(<< "Point in sensor geometry: (" << outputPoint[0] << "," <<	outputPoint[1] << ")");
+    
+    return outputPoint;
+  }
+  
+  template < class TScalarType,
+	     unsigned int NInputDimensions,
+	     unsigned int NOutputDimensions,
+	     unsigned int NParametersDimensions >
+  void
+  InverseSensorModel< TScalarType,
+                      NInputDimensions,
+                      NOutputDimensions,
+                      NParametersDimensions>
+  ::PrintSelf(std::ostream& os, itk::Indent indent) const
+  {
+    Superclass::PrintSelf(os,indent);
   }
-  this->m_Model->worldToLineSample(ossimGPoint, ossimDPoint); //"worldToLineSample" appelle la m�thode "lineSampleHeightToWorld" pour prendre en compte l'�l�vation. 
   
-  OutputPointType outputPoint;
-	
-//	std::cout << "m_UpperLeftCorner[1] : " << m_UpperLeftCorner[1] << std::endl;
-//	std::cout << "ossimDPoint.x : " << ossimDPoint.x << std::endl;
-//	std::cout << "ossimDPoint.y : " << ossimDPoint.y << std::endl;
-	
-	
-  outputPoint[0]=ossimDPoint.x;
-  outputPoint[1]=ossimDPoint.y;
-
-	otbGenericMsgDebugMacro(<< "Point in sensor geometry: (" << outputPoint[0] << "," <<	outputPoint[1] << ")");
-
-	return outputPoint;
-}
-
-template < class TScalarType,
-           unsigned int NInputDimensions,
-           unsigned int NOutputDimensions,
-           unsigned int NParametersDimensions >
-void
-InverseSensorModel< TScalarType,NInputDimensions,NOutputDimensions,NParametersDimensions>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os,indent);
-}
-
 } // namespace otb
 
 #endif
diff --git a/Code/Projections/otbLambertConformalConicMapProjection.cxx b/Code/Projections/otbLambertConformalConicMapProjection.cxx
index f21f12b5f4..67ab655859 100644
--- a/Code/Projections/otbLambertConformalConicMapProjection.cxx
+++ b/Code/Projections/otbLambertConformalConicMapProjection.cxx
@@ -1,18 +1,18 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 
@@ -20,85 +20,85 @@
 
 namespace otb
 { 
-
-LambertConformalConicMapProjection
-::LambertConformalConicMapProjection()
-{
-	m_LambertConformalConicProjection = new ossimLambertConformalConicProjection();
-}
-
-LambertConformalConicMapProjection
-::~LambertConformalConicMapProjection()
-{
-	delete m_LambertConformalConicProjection;
-}
-
-
-/// Parallel1 specification
-void LambertConformalConicMapProjection
-::SetStandardParallel1(double degree) 
-{
-	m_LambertConformalConicProjection->setStandardParallel1(degree);
-}
-
-/// Parallel2 specification
-void LambertConformalConicMapProjection
-::SetStandardParallel2(double degree) 
-{
-	m_LambertConformalConicProjection->setStandardParallel2(degree);
-}
-
-/// Specification of the 2 parallels
-void LambertConformalConicMapProjection
-::SetStandardParallels(double parallel1Degree,double parallel2Degree) 
-{
-	m_LambertConformalConicProjection->setStandardParallels(parallel1Degree,parallel2Degree);
-}
-
-/// False easting specification
-void LambertConformalConicMapProjection
-::SetFalseEasting(double falseEasting) 
-{
-	m_LambertConformalConicProjection->setFalseEasting(falseEasting);
-}
-
-/// False Northing specification
-void LambertConformalConicMapProjection
-::SetFalseNorthing(double falseNorthing) 
-{
-	m_LambertConformalConicProjection->setFalseNorthing(falseNorthing);
-}
-
-/// Set the parameters
-void LambertConformalConicMapProjection
-::SetParameters(double parallel1Degree,double parallel2Degree,double falseEasting,double falseNorthing) 
-{
-	m_LambertConformalConicProjection->setParameters(parallel1Degree, parallel2Degree, falseEasting, falseNorthing);
-}
-
-/// Set the default parameters
-void LambertConformalConicMapProjection
-::SetDefaults() 
-{
-	m_LambertConformalConicProjection->setDefaults();
-}
-
-/// Get the False Northing (avoid negative coordinates)
-double LambertConformalConicMapProjection
-::GetFalseNorthing() const
-{
-	double falseNorthing=m_LambertConformalConicProjection->getFalseNorthing();
-	
-	return falseNorthing;
-}
-
-///Get the False Easting (avoid negative coordinates)
-double LambertConformalConicMapProjection
-::GetFalseEasting() const
-{
-	double falseEasting=m_LambertConformalConicProjection->getFalseEasting();
-	return falseEasting;
-}
-
+  
+  LambertConformalConicMapProjection
+  ::LambertConformalConicMapProjection()
+  {
+    m_LambertConformalConicProjection = new ossimLambertConformalConicProjection();
+  }
+  
+  LambertConformalConicMapProjection
+  ::~LambertConformalConicMapProjection()
+  {
+    delete m_LambertConformalConicProjection;
+  }
+  
+  
+  /// Parallel1 specification
+  void LambertConformalConicMapProjection
+  ::SetStandardParallel1(double degree) 
+  {
+    m_LambertConformalConicProjection->setStandardParallel1(degree);
+  }
+  
+  /// Parallel2 specification
+  void LambertConformalConicMapProjection
+  ::SetStandardParallel2(double degree) 
+  {
+    m_LambertConformalConicProjection->setStandardParallel2(degree);
+  }
+  
+  /// Specification of the 2 parallels
+  void LambertConformalConicMapProjection
+  ::SetStandardParallels(double parallel1Degree,double parallel2Degree) 
+  {
+    m_LambertConformalConicProjection->setStandardParallels(parallel1Degree,parallel2Degree);
+  }
+  
+  /// False easting specification
+  void LambertConformalConicMapProjection
+  ::SetFalseEasting(double falseEasting) 
+  {
+    m_LambertConformalConicProjection->setFalseEasting(falseEasting);
+  }
+  
+  /// False Northing specification
+  void LambertConformalConicMapProjection
+  ::SetFalseNorthing(double falseNorthing) 
+  {
+    m_LambertConformalConicProjection->setFalseNorthing(falseNorthing);
+  }
+  
+  /// Set the parameters
+  void LambertConformalConicMapProjection
+  ::SetParameters(double parallel1Degree,double parallel2Degree,double falseEasting,double falseNorthing) 
+  {
+    m_LambertConformalConicProjection->setParameters(parallel1Degree, parallel2Degree, falseEasting, falseNorthing);
+  }
+  
+  /// Set the default parameters
+  void LambertConformalConicMapProjection
+  ::SetDefaults() 
+  {
+    m_LambertConformalConicProjection->setDefaults();
+  }
+  
+  /// Get the False Northing (avoid negative coordinates)
+  double LambertConformalConicMapProjection
+  ::GetFalseNorthing() const
+  {
+    double falseNorthing=m_LambertConformalConicProjection->getFalseNorthing();
+    
+    return falseNorthing;
+  }
+  
+  ///Get the False Easting (avoid negative coordinates)
+  double LambertConformalConicMapProjection
+  ::GetFalseEasting() const
+  {
+    double falseEasting=m_LambertConformalConicProjection->getFalseEasting();
+    return falseEasting;
+  }
+  
 } // namespace otb
 
diff --git a/Code/Projections/otbLambertConformalConicMapProjection.h b/Code/Projections/otbLambertConformalConicMapProjection.h
index c87f5f4d73..5fbccca7af 100644
--- a/Code/Projections/otbLambertConformalConicMapProjection.h
+++ b/Code/Projections/otbLambertConformalConicMapProjection.h
@@ -1,18 +1,18 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbLambertConformalConicMapProjection_h
@@ -28,59 +28,46 @@ namespace otb
    * \brief This class implements the Lambert Conformatl Conic map projection.
    * It converts coordinates in longitude,latitude to Lambert Conformal Conic map coordinates.
    *
-   *
    */
-class ITK_EXPORT LambertConformalConicMapProjection : public MapProjection<ossimLambertConformalConicProjection> 
-{
-public :
-
-  /** Standard class typedefs. */
-  typedef LambertConformalConicMapProjection                        Self;
-  typedef MapProjection<ossimLambertConformalConicProjection>       Superclass;
-  typedef itk::SmartPointer<Self>                    	      		  	Pointer;
-  typedef itk::SmartPointer<const Self>              	      		  	ConstPointer;
-
-	typedef Superclass::ScalarType  ScalarType;
-	typedef itk::Point<ScalarType,2 >   	InputPointType;
-	typedef itk::Point<ScalarType,2 >  	OutputPointType;
-
-	/** Method for creation through the object factory. */
-	itkNewMacro( Self );
-
-	/** Run-time type information (and related methods). */
-	itkTypeMacro( LambertConformalConicMapProjection, MapProjection );
+  class ITK_EXPORT LambertConformalConicMapProjection : public MapProjection<ossimLambertConformalConicProjection> 
+    {
+      public :
+	/** Standard class typedefs. */
+	typedef LambertConformalConicMapProjection                  Self;
+      typedef MapProjection<ossimLambertConformalConicProjection>   Superclass;
+      typedef itk::SmartPointer<Self>                    	    Pointer;
+      typedef itk::SmartPointer<const Self>              	    ConstPointer;
       
-	void SetStandardParallel1 (double degree);
-
-	void SetStandardParallel2 (double degree);
-
-	void SetStandardParallels (double parallel1Degree,double parallel2Degree);
-
-	void SetFalseEasting(double falseEasting);
-
-	void SetFalseNorthing(double falseNorthing);
-
+      typedef Superclass::ScalarType                                ScalarType;
+      typedef itk::Point<ScalarType,2 >   	                    InputPointType;
+      typedef itk::Point<ScalarType,2 >              	            OutputPointType;
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( LambertConformalConicMapProjection, MapProjection );
+      
+	void   SetStandardParallel1 (double degree);
+	void   SetStandardParallel2 (double degree);
+	void   SetStandardParallels (double parallel1Degree,double parallel2Degree);
+	void   SetFalseEasting(double falseEasting);
+	void   SetFalseNorthing(double falseNorthing);
 	double GetFalseNorthing() const;
-
 	double GetFalseEasting() const;
-
-	void SetParameters(double parallel1Degree,double parallel2Degree,double falseEasting,double falseNorthing);
-
-	void SetDefaults();
-
-protected:
-
+	void  SetParameters(double parallel1Degree,double parallel2Degree,double falseEasting,double falseNorthing);
+	void  SetDefaults();
+	
+    protected:
 	LambertConformalConicMapProjection(); 
 	virtual ~LambertConformalConicMapProjection();
-
 	ossimLambertConformalConicProjection* m_LambertConformalConicProjection;
 	
-private :
-
-  LambertConformalConicMapProjection(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-};
-
+	private :
+	  LambertConformalConicMapProjection(const Self&); //purposely not implemented
+	void operator=(const Self&);                       //purposely not implemented
+    };
+  
 } // namespace otb
 
 
diff --git a/Code/Projections/otbMapProjection.h b/Code/Projections/otbMapProjection.h
index 36052411f1..d893630e8b 100644
--- a/Code/Projections/otbMapProjection.h
+++ b/Code/Projections/otbMapProjection.h
@@ -1,18 +1,18 @@
 /*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
 
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbMapProjection_h
@@ -35,123 +35,92 @@
 
 namespace otb
 {
-
-/** \class otbMapProjection
- *  \brief This is the base class for all geographic projections (UTM, Lambert, ...)
-**/
-
-typedef enum {FORWARD=0, INVERSE=1} InverseOrForwardTransformationEnum;
-
-template <class TOssimMapProjection,
-        class TScalarType = double,
-        unsigned int NInputDimensions=2,
-        unsigned int NOutputDimensions=2,
-				InverseOrForwardTransformationEnum transform=INVERSE>
-class ITK_EXPORT MapProjection: public itk::Transform<TScalarType,         // Data type for scalars 
-																										  NInputDimensions,  // Number of dimensions in the input space
-																										  NOutputDimensions> // Number of dimensions in the output space
-{
-public :
   
- /** Standard class typedefs. */
-  typedef itk::Transform< TScalarType,
-                   NInputDimensions,
-                   NOutputDimensions >                      Superclass;
-  typedef MapProjection                                	    Self;
-  typedef itk::SmartPointer<Self>                    	      Pointer;
-  typedef itk::SmartPointer<const Self>              	      ConstPointer;
-
-  typedef typename Superclass::ScalarType 		ScalarType;
-  typedef TOssimMapProjection  				OssimMapProjectionType;
-  typedef itk::Point<ScalarType,NInputDimensions >   	      InputPointType;
-  typedef itk::Point<ScalarType,NOutputDimensions >  	      OutputPointType;        
- 
-  /** Method for creation through the object factory. */
-itkNewMacro( Self );
+  /** \class otbMapProjection
+   *  \brief This is the base class for all geographic projections (UTM, Lambert, ...)
+   **/
   
-	/** Run-time type information (and related methods). */
-	itkTypeMacro( MapProjection, Transform );
-
-typedef InverseOrForwardTransformationEnum DirectionOfMappingEnumType;
-	
-  itkStaticConstMacro(DirectionOfMapping,DirectionOfMappingEnumType,transform);
-  itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
-  itkStaticConstMacro(SpaceDimension, unsigned int, NInputDimensions);
-  itkStaticConstMacro(ParametersDimension, unsigned int,NInputDimensions*(NInputDimensions+1));
-
-	                                      
-  virtual void SetEllipsoid ();
-
-	void SetEllipsoid (const ossimEllipsoid &ellipsoid);
-
-	void SetEllipsoid(std::string code);
-
-	void SetEllipsoid(const double &major_axis, const double &minor_axis);
-
-//	OutputPointType Forward(const InputPointType &point) const;
-
-//	InputPointType Inverse(const OutputPointType &point) const;
+  typedef enum {FORWARD=0, INVERSE=1} InverseOrForwardTransformationEnum;
+  
+  template <class TOssimMapProjection,
+            class TScalarType = double,
+            unsigned int NInputDimensions=2,
+            unsigned int NOutputDimensions=2,
+            InverseOrForwardTransformationEnum transform=INVERSE>
+    class ITK_EXPORT MapProjection: public itk::Transform<TScalarType,       // Data type for scalars 
+                                                          NInputDimensions,  // Number of dimensions in the input space
+                                                          NOutputDimensions> // Number of dimensions in the output space
+    {
+      public :
+      /** Standard class typedefs. */
+      typedef itk::Transform< TScalarType,
+                              NInputDimensions,
+                              NOutputDimensions >       Superclass;
+      typedef MapProjection                    	        Self;
+      typedef itk::SmartPointer<Self>                   Pointer;
+      typedef itk::SmartPointer<const Self>             ConstPointer;
+      
+      typedef typename Superclass::ScalarType 	        ScalarType;
+      typedef TOssimMapProjection  			OssimMapProjectionType;
+      typedef itk::Point<ScalarType,NInputDimensions >  InputPointType;
+      typedef itk::Point<ScalarType,NOutputDimensions > OutputPointType;        
+      
+      /** Method for creation through the object factory. */
+      itkNewMacro( Self );
+      
+      /** Run-time type information (and related methods). */
+      itkTypeMacro( MapProjection, Transform );
+      
+      typedef InverseOrForwardTransformationEnum DirectionOfMappingEnumType;
+      
+      itkStaticConstMacro(DirectionOfMapping,DirectionOfMappingEnumType,transform);
+      itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions);
+      itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions);
+      itkStaticConstMacro(SpaceDimension, unsigned int, NInputDimensions);
+      itkStaticConstMacro(ParametersDimension, unsigned int,NInputDimensions*(NInputDimensions+1));
+      
+      
+      virtual void SetEllipsoid ();
+      void SetEllipsoid (const ossimEllipsoid &ellipsoid);
+      void SetEllipsoid(std::string code);
+      void SetEllipsoid(const double &major_axis, const double &minor_axis);
+      //OutputPointType Forward(const InputPointType &point) const;
+      //InputPointType Inverse(const OutputPointType &point) const;
 	
-	OutputPointType TransformPoint(const InputPointType &point) const;
-
-	virtual InputPointType Origin();
-
-	//virtual void LineSampleToEastingNorthing(const InputPointType &linesample, InputPointType &eastingNorthing) const; 
-
-	virtual double GetFalseNorthing() const;
-
-	virtual double GetFalseEasting() const;
-
-	virtual double GetStandardParallel1() const;
-
-	virtual double GetStandardParallel2() const;
-
-	virtual std::string GetProjectionName() const;
-
-	virtual bool IsGeographic() const; 
-
-	virtual double GetA() const;
-
-	virtual double GetB() const;
-
-	virtual double GetF() const;
-
-	virtual OutputPointType GetMetersPerPixel() const;
-
-	virtual OutputPointType GetDecimalDegreesPerPixel() const;
-
-	virtual void SetAB(double a, double b);
-
-	virtual void SetOrigin(const InputPointType &origin);
-
-	virtual void SetMetersPerPixel(const OutputPointType &point);
-
-	virtual void SetDecimalDegreesPerPixel(const OutputPointType &point);
-
-	virtual void ComputeDegreesPerPixel(const InputPointType &ground, const OutputPointType &metersPerPixel, double &deltaLat, double &deltaLon);
-
-	virtual void ComputeMetersPerPixel(const InputPointType &center, double deltaDegreesPerPixelLat, double deltaDegreesPerPixelLon, OutputPointType &metersPerPixel);
-
-	virtual void ComputeMetersPerPixel(double deltaDegreesPerPixelLat, double deltaDegreesPerPixelLon, OutputPointType &metersPerPixel);
-
-	//virtual void SetMatrix(double rotation,  const OutputPointType &scale, const OutputPointType &translation);
- 
-	void SetFalseEasting(double falseEasting);
-
-protected:
-
-	MapProjection();
-	virtual ~MapProjection();
-
-	OssimMapProjectionType* m_MapProjection;  
-
-private :
-
-  MapProjection(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-};
-
+      OutputPointType TransformPoint(const InputPointType &point) const;
+      virtual InputPointType Origin();
+      //virtual void LineSampleToEastingNorthing(const InputPointType &linesample, InputPointType &eastingNorthing) const; 
+      virtual double GetFalseNorthing() const;
+      virtual double GetFalseEasting() const;
+      virtual double GetStandardParallel1() const;
+      virtual double GetStandardParallel2() const;
+      virtual std::string GetProjectionName() const;
+      virtual bool IsGeographic() const; 
+      virtual double GetA() const;
+      virtual double GetB() const;
+      virtual double GetF() const;
+      virtual OutputPointType GetMetersPerPixel() const;
+      virtual OutputPointType GetDecimalDegreesPerPixel() const;
+      virtual void SetAB(double a, double b);
+      virtual void SetOrigin(const InputPointType &origin);
+      virtual void SetMetersPerPixel(const OutputPointType &point);
+      virtual void SetDecimalDegreesPerPixel(const OutputPointType &point);
+      virtual void ComputeDegreesPerPixel(const InputPointType &ground, const OutputPointType &metersPerPixel, double &deltaLat, double &deltaLon);
+      virtual void ComputeMetersPerPixel(const InputPointType &center, double deltaDegreesPerPixelLat, double deltaDegreesPerPixelLon, OutputPointType &metersPerPixel);
+      virtual void ComputeMetersPerPixel(double deltaDegreesPerPixelLat, double deltaDegreesPerPixelLon, OutputPointType &metersPerPixel);
+      //virtual void SetMatrix(double rotation,  const OutputPointType &scale, const OutputPointType &translation);
+      void SetFalseEasting(double falseEasting);
+
+      protected:
+      MapProjection();
+      virtual ~MapProjection();
+      OssimMapProjectionType* m_MapProjection;  
+      
+      private :
+      MapProjection(const Self&); //purposely not implemented
+      void operator=(const Self&); //purposely not implemented
+    };
+  
 } // namespace otb
 
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Code/Projections/otbMapProjections.h b/Code/Projections/otbMapProjections.h
index 9959d1bc50..65c79b91de 100644
--- a/Code/Projections/otbMapProjections.h
+++ b/Code/Projections/otbMapProjections.h
@@ -1,18 +1,18 @@
 /*=========================================================================
+  
+Program:   ORFEO Toolbox
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
 
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
 
+Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+See OTBCopyright.txt for details.
 
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
 
-
-     This software is distributed WITHOUT ANY WARRANTY; without even 
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-     PURPOSE.  See the above copyright notices for more information.
+This software is distributed WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
 #ifndef __otbMapProjections_h
@@ -54,43 +54,38 @@
 #include "otbSinusoidalMapProjection.h"
 #include "otbMollweidMapProjection.h"
 
-namespace otb{
-
-typedef MapProjection<ossimAlbersProjection> AlbersProjection;
-typedef MapProjection<ossimAzimEquDistProjection> AzimEquDistProjection;
-typedef MapProjection<ossimBngProjection> BngProjection;
-typedef MapProjection<ossimBonneProjection> BonneProjection;
-typedef MapProjection<ossimCadrgProjection> CadrgProjection;
-typedef MapProjection<ossimCassiniProjection> CassiniProjection;
-typedef MapProjection<ossimCylEquAreaProjection> CylEquAreaProjection;
-//typedef MapProjection<ossimEckert4Projection> Eckert4Projection;
-typedef Eckert4MapProjection Eckert4Projection;
-typedef MapProjection<ossimEckert6Projection> Eckert6Projection;
-typedef MapProjection<ossimGnomonicProjection> GnomonicProjection;
-//typedef MapProjection<ossimLambertConformalConicProjection> LambertConformalConicProjection;
-typedef LambertConformalConicMapProjection LambertConformalConicProjection;
-typedef MapProjection<ossimLlxyProjection> LlxyProjection;
-typedef MapProjection<ossimEquDistCylProjection> EquDistCylProjection;
-typedef MapProjection<ossimMercatorProjection> MercatorProjection;
-typedef MapProjection<ossimMillerProjection> MillerProjection;
-//typedef MapProjection<ossimMollweidProjection> MollweidProjection;
-typedef MollweidMapProjection MollweidProjection;
-typedef MapProjection<ossimNewZealandMapGridProjection> NewZealandMapGridProjection;
-typedef MapProjection<ossimObliqueMercatorProjection> ObliqueMercatorProjection;
-typedef MapProjection<ossimOrthoGraphicProjection> OrthoGraphicProjection;
-typedef MapProjection<ossimPolarStereoProjection> PolarStereoProjection;
-typedef MapProjection<ossimPolyconicProjection> PolyconicProjection;
-//typedef MapProjection<ossimSinusoidalProjection> SinusoidalProjection;
-typedef SinusoidalMapProjection SinusoidalProjection;
-typedef MapProjection<ossimSpaceObliqueMercatorProjection> SpaceObliqueMercatorProjection;
-typedef MapProjection<ossimStereographicProjection> StereographicProjection;
-typedef MapProjection<ossimTransCylEquAreaProjection> TransCylEquAreaProjection;
-//typedef MapProjection<ossimTransMercatorProjection> TransMercatorProjection;
-typedef TransMercatorMapProjection TransMercatorProjection;
-typedef MapProjection<ossimUpsProjection> UpsProjection;
-//typedef MapProjection<ossimUtmProjection> UtmProjection;
-typedef UtmMapProjection UtmProjection;
-typedef MapProjection<ossimVanDerGrintenProjection> VanDerGrintenProjection;
-
+namespace otb
+{
+  
+  typedef MapProjection<ossimAlbersProjection>               AlbersProjection;
+  typedef MapProjection<ossimAzimEquDistProjection>          AzimEquDistProjection;
+  typedef MapProjection<ossimBngProjection>                  BngProjection;
+  typedef MapProjection<ossimBonneProjection>                BonneProjection;
+  typedef MapProjection<ossimCadrgProjection>                CadrgProjection;
+  typedef MapProjection<ossimCassiniProjection>              CassiniProjection;
+  typedef MapProjection<ossimCylEquAreaProjection>           CylEquAreaProjection;
+  typedef Eckert4MapProjection                               Eckert4Projection;
+  typedef MapProjection<ossimEckert6Projection>              Eckert6Projection;
+  typedef MapProjection<ossimGnomonicProjection>             GnomonicProjection;
+  typedef LambertConformalConicMapProjection                 LambertConformalConicProjection;
+  typedef MapProjection<ossimLlxyProjection>                 LlxyProjection;
+  typedef MapProjection<ossimEquDistCylProjection>           EquDistCylProjection;
+  typedef MapProjection<ossimMercatorProjection>             MercatorProjection;
+  typedef MapProjection<ossimMillerProjection>               MillerProjection;
+  typedef MollweidMapProjection                              MollweidProjection;
+  typedef MapProjection<ossimNewZealandMapGridProjection>    NewZealandMapGridProjection;
+  typedef MapProjection<ossimObliqueMercatorProjection>      ObliqueMercatorProjection;
+  typedef MapProjection<ossimOrthoGraphicProjection>         OrthoGraphicProjection;
+  typedef MapProjection<ossimPolarStereoProjection>          PolarStereoProjection;
+  typedef MapProjection<ossimPolyconicProjection>            PolyconicProjection;
+  typedef SinusoidalMapProjection                            SinusoidalProjection;
+  typedef MapProjection<ossimSpaceObliqueMercatorProjection> SpaceObliqueMercatorProjection;
+  typedef MapProjection<ossimStereographicProjection>        StereographicProjection;
+  typedef MapProjection<ossimTransCylEquAreaProjection>      TransCylEquAreaProjection;
+  typedef TransMercatorMapProjection                         TransMercatorProjection;
+  typedef MapProjection<ossimUpsProjection>                  UpsProjection;
+  typedef UtmMapProjection                                   UtmProjection;
+  typedef MapProjection<ossimVanDerGrintenProjection>        VanDerGrintenProjection;
+  
 }//namespace otb
 #endif
-- 
GitLab