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 ¢er, 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 ¢er, 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