diff --git a/Code/Projections/otbMapProjection.h b/Code/Projections/otbMapProjection.h index e532a5aa9311e5250cb8fe2e6fe44067088ab5f9..ea3941a4f74bf375b82ccebbc2b71c15fa9915d4 100644 --- a/Code/Projections/otbMapProjection.h +++ b/Code/Projections/otbMapProjection.h @@ -75,8 +75,9 @@ itkNewMacro( Self ); /** Run-time type information (and related methods). */ itkTypeMacro( MapProjection, Transform ); +typedef InverseOrForwardTransformationEnum DirectionOfMappingEnumType; - itkStaticConstMacro(DirectionOfMapping,InverseOrForwardTransformationEnum,transform); + itkStaticConstMacro(DirectionOfMapping,DirectionOfMappingEnumType,transform); itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions); itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions); itkStaticConstMacro(SpaceDimension, unsigned int, NInputDimensions); diff --git a/Code/Projections/otbMapProjection.txx b/Code/Projections/otbMapProjection.txx index cb6384661e3a5aee859227bc566f687feb86b990..c9c7e7bc98e3172be6b80c6f013b99f2bd9a5125 100644 --- a/Code/Projections/otbMapProjection.txx +++ b/Code/Projections/otbMapProjection.txx @@ -136,34 +136,40 @@ MapProjection<TOssimMapProjection, TScalarType, NInputDimensions, NOutputDimensi { OutputPointType outputPoint; - if (DirectionOfMapping == INVERSE) - { - //On transforme le type "itk::point" en type "ossim::ossimDpt" - ossimDpt ossimDPoint(point[0], point[1]); - - //On le proj�te sur la carte - ossimGpt ossimGPoint; - ossimGPoint=m_MapProjection->inverse(ossimDPoint); - - outputPoint[0]=ossimGPoint.lat; - outputPoint[1]=ossimGPoint.lon; - } - else if (DirectionOfMapping == FORWARD) + switch(DirectionOfMapping) + { + case INVERSE: + { + //On transforme le type "itk::point" en type "ossim::ossimDpt" + ossimDpt ossimDPoint(point[0], point[1]); + + //On le proj�te sur la carte + ossimGpt ossimGPoint; + ossimGPoint=m_MapProjection->inverse(ossimDPoint); + + outputPoint[0]=ossimGPoint.lat; + outputPoint[1]=ossimGPoint.lon; + break; + } + case FORWARD: { //On transforme le type "itk::point" en type "ossim::ossimGpt" - ossimGpt ossimGPoint(point[0], point[1]); - - //On le proj�te sur la carte - ossimDpt ossimDPoint; - ossimDPoint=m_MapProjection->forward(ossimGPoint); - - outputPoint[0]=ossimDPoint.x; - outputPoint[1]=ossimDPoint.y; + ossimGpt ossimGPoint(point[0], point[1]); + + //On le proj�te sur la carte + ossimDpt ossimDPoint; + ossimDPoint=m_MapProjection->forward(ossimGPoint); + + outputPoint[0]=ossimDPoint.x; + outputPoint[1]=ossimDPoint.y; + break; } - else - { - itkExceptionMacro(<<"Model is INVERSE or FORWARD only !!"); - } + default: + { + itkExceptionMacro(<<"Model is INVERSE or FORWARD only !!"); + break; + } + } return outputPoint; }