SbProj4Projection Class Reference
[Basics]

Cartographic (PROJ4) projection class. More...

#include <Inventor/projection/SbProj4Projection.h>

Inheritance diagram for SbProj4Projection:
SbProjection

List of all members.

Public Types

enum  CoordinateSystem {
  GEOCENTRIC = 0,
  GEODETIC,
  NUM_COORDINATE_SYSTEMS
}
enum  PredefinedEllipsoid {
  SPHERE = 0,
  AIRY,
  AIRYM,
  ANDRAE,
  APL,
  AUST_SA,
  BESSEL,
  BESS_NAM,
  CLRK66,
  CLRK80,
  CPM,
  DELMBR,
  ENGELIS,
  EVRST30,
  EVRST48,
  EVRST56,
  EVRST69,
  EVRSTSS,
  FSCHR60,
  FSCHR60M,
  FSCHR68,
  GRS67,
  GRS80,
  HELMERT,
  HOUGH,
  IAU76,
  INTL,
  KAULA,
  KRASS,
  LERCH,
  MERIT,
  MPRTS,
  NEW_INTL,
  NWL9D,
  PLESSIS,
  SE_ASIA,
  SGS85,
  WALBECK,
  WGS60,
  WGS66,
  WGS72,
  WGS84,
  NUM_ELLIPSOIDS
}
enum  Projection {
  CASSINI,
  EQUAL_AREA_CYLINDRICAL,
  COLLIGNON,
  CRASTER_PARABOLIC,
  ECKERT_I,
  ECKERT_II,
  ECKERT_III,
  ECKERT_IV,
  ECKERT_V,
  ECKERT_VI,
  EQUIDISTANT_CYLINDRICAL,
  FAHEY,
  FOUCAUT_SINUSOIDAL,
  GALL,
  GEOCENTRIC_PROJ,
  HATANO_ASYMMETRICAL_EQUAL_AREA,
  KAVRAISKY_VII,
  KROVAK,
  LAMBERT_AZIMUTHAL_EQUAL_AREA,
  LAT_LONG,
  LONG_LAT,
  LAMBERT_EQUAL_AREA_CONIC,
  LOXIMUTHAL,
  MCBRYDE_THOMAS_FLAT_POLE_SINE,
  MCBRYDE_THOMAS_FLAT_POLAR_PARABOLIC,
  MCBRYDE_THOMAS_FLAT_POLAR_QUARTIC,
  MCBRYDE_THOMAS_FLAT_POLAR_SINUSOIDAL,
  MERCATOR,
  MILLER_CYLINDRICAL,
  MOLLWEIDE,
  NELL,
  NELL_HAMMER,
  OBLIQUE_CYLINDRICAL_EQUAL_AREA,
  POLYCONIC,
  PUTNINS_P1,
  PUTNINS_P2,
  PUTNINS_P3_2,
  PUTNINS_P4_2,
  PUTNINS_P5,
  PUTNINS_P5_2,
  PUTNINS_P6,
  PUTNINS_P6_2,
  ROBINSON,
  SINUSOIDAL,
  SWISS_OBL_MERCATOR,
  OBLIQUE_STEREOGRAPHIC_ALTERNATIVE,
  TRANSVERSE_CYLINDRICAL_EQUAL_AREA,
  TRANSVERSE_MERCATOR,
  UNIVERSAL_POLAR_STEREOGRAPHIC,
  UNIVERSAL_TRANSVERSE_MERCATOR,
  VAN_DER_GRINTEN_I,
  WAGNER_I,
  WAGNER_II,
  WAGNER_III,
  WAGNER_IV,
  WAGNER_V,
  WAGNER_VI,
  WERENSKIOLD_I,
  WINKEL_I,
  WINKEL_TRIPEL,
  NUM_PROJ4_PROJECTIONS
}

Public Member Functions

 SbProj4Projection ()
 SbProj4Projection (SoProjection *node)
 SbProj4Projection (const SbProj4Projection &proj)
virtual ~SbProj4Projection ()
void setEllipsoid (SbProj4Projection::PredefinedEllipsoid ellipsoid)
SbProj4Projection::PredefinedEllipsoid getEllipsoid ()
void setEllipsoidIn (SbProj4Projection::PredefinedEllipsoid ellipsoid)
SbProj4Projection::PredefinedEllipsoid getEllipsoidIn ()
void setCoordinateSystem (SbProj4Projection::CoordinateSystem coordinateSystem)
SbProj4Projection::CoordinateSystem getCoordinateSystem ()
void setProjection (SbProj4Projection::Projection proj)
SbProj4Projection::Projection getProjection ()
void setProjectionIn (SbProj4Projection::Projection proj)
SbProj4Projection::Projection getProjectionIn ()
void setUTMZone (int zone)
int getUTMZone ()
void setUTMSouth (bool south)
bool isUTMSouth ()
void setRevertCoord (bool revertCoordNeeded)
bool isRevertCoordNeeded ()
virtual void init ()
virtual void exit ()
virtual void inverse (SbVec3f &point)
void toGeodetic (SbVec3f &point)
void toGeocentric (SbVec3f &point)

Static Public Member Functions

static SbString getEllipsoidString (SbProj4Projection::PredefinedEllipsoid ellipsoid)
static SbString getProjectionString (SbProj4Projection::Projection proj)
static SbString getProjectionName (SbProj4Projection::Projection proj)

Detailed Description

Cartographic (PROJ4) projection class.

This class performs a cartographic projection using the PROJ.4 Cartographic Projections Library ( see http://proj.maptools.org/ )

To use this class as a projection, refer to the documentation of SbProjection class.

By default, input points must be defined in the geodetic coordinate system :

It is possible to define the input data in the geocentric coordinate system by calling setCoordinateSystem(GEOCENTRIC). The geocentric coordinate system is the earth coordinate system, where x, y and z coordinate are expressed in meters.

The PROJ.4 library parameters are stored as SbProjection string parameters:

The first SbProjection float parameter is used to specify the z coordinate scaleRatio applied to the projected shapes.

The enumeration PredefinedEllipsoid defines the list of available ellipsoid. An ellispoid definition is a mathematical representation used to approximate the earth when computing projections. Calling setEllipsoid() sets the current ellipsoid used to compute projections.

Only projections with an inverse function defined are available.

The available projections are defined with the Projection enumeration. When using an SbProj4Projection object with an SoProjection node, those projections are automatically added in the order above, and you can choose the desired projection by using the corresponding id (refer to SoProjection node).

LIMITATIONS

It can happen that vertices of a projected shape cross other ones, depending on the chosen projection. Visually it results in a flipping effect.

SEE ALSO

SbProjection, SoProjection, SoGeoProjection


Member Enumeration Documentation

Available coordinate systems.

Enumerator:
GEOCENTRIC 
GEODETIC 
NUM_COORDINATE_SYSTEMS 

Available ellipsoids.

Enumerator:
SPHERE 
AIRY 
AIRYM 
ANDRAE 
APL 
AUST_SA 
BESSEL 
BESS_NAM 
CLRK66 
CLRK80 
CPM 
DELMBR 
ENGELIS 
EVRST30 
EVRST48 
EVRST56 
EVRST69 
EVRSTSS 
FSCHR60 
FSCHR60M 
FSCHR68 
GRS67 
GRS80 
HELMERT 
HOUGH 
IAU76 
INTL 
KAULA 
KRASS 
LERCH 
MERIT 
MPRTS 
NEW_INTL 
NWL9D 
PLESSIS 
SE_ASIA 
SGS85 
WALBECK 
WGS60 
WGS66 
WGS72 
WGS84 
NUM_ELLIPSOIDS 

Available projections.

Enumerator:
CASSINI 
EQUAL_AREA_CYLINDRICAL 
COLLIGNON 
CRASTER_PARABOLIC 
ECKERT_I 
ECKERT_II 
ECKERT_III 
ECKERT_IV 
ECKERT_V 
ECKERT_VI 
EQUIDISTANT_CYLINDRICAL 
FAHEY 
FOUCAUT_SINUSOIDAL 
GALL 
GEOCENTRIC_PROJ 
HATANO_ASYMMETRICAL_EQUAL_AREA 
KAVRAISKY_VII 
KROVAK 
LAMBERT_AZIMUTHAL_EQUAL_AREA 
LAT_LONG 
LONG_LAT 
LAMBERT_EQUAL_AREA_CONIC 
LOXIMUTHAL 
MCBRYDE_THOMAS_FLAT_POLE_SINE 
MCBRYDE_THOMAS_FLAT_POLAR_PARABOLIC 
MCBRYDE_THOMAS_FLAT_POLAR_QUARTIC 
MCBRYDE_THOMAS_FLAT_POLAR_SINUSOIDAL 
MERCATOR 
MILLER_CYLINDRICAL 
MOLLWEIDE 
NELL 
NELL_HAMMER 
OBLIQUE_CYLINDRICAL_EQUAL_AREA 
POLYCONIC 
PUTNINS_P1 
PUTNINS_P2 
PUTNINS_P3_2 
PUTNINS_P4_2 
PUTNINS_P5 
PUTNINS_P5_2 
PUTNINS_P6 
PUTNINS_P6_2 
ROBINSON 
SINUSOIDAL 
SWISS_OBL_MERCATOR 
OBLIQUE_STEREOGRAPHIC_ALTERNATIVE 
TRANSVERSE_CYLINDRICAL_EQUAL_AREA 
TRANSVERSE_MERCATOR 
UNIVERSAL_POLAR_STEREOGRAPHIC 
UNIVERSAL_TRANSVERSE_MERCATOR 
VAN_DER_GRINTEN_I 
WAGNER_I 
WAGNER_II 
WAGNER_III 
WAGNER_IV 
WAGNER_V 
WAGNER_VI 
WERENSKIOLD_I 
WINKEL_I 
WINKEL_TRIPEL 
NUM_PROJ4_PROJECTIONS 

Constructor & Destructor Documentation

SbProj4Projection::SbProj4Projection (  ) 

Constructor.

SbProj4Projection::SbProj4Projection ( SoProjection node  ) 

Constructor.

SbProj4Projection::SbProj4Projection ( const SbProj4Projection proj  ) 

Copy constructor.

virtual SbProj4Projection::~SbProj4Projection (  )  [virtual]

Destructor.


Member Function Documentation

virtual void SbProj4Projection::exit (  )  [virtual]

Exit function.

Reimplemented from SbProjection.

SbProj4Projection::CoordinateSystem SbProj4Projection::getCoordinateSystem (  ) 

Get current coordinate system.

SbProj4Projection::PredefinedEllipsoid SbProj4Projection::getEllipsoid (  ) 

Get current ellipsoid.

SbProj4Projection::PredefinedEllipsoid SbProj4Projection::getEllipsoidIn (  ) 

Get current input ellipsoid.

static SbString SbProj4Projection::getEllipsoidString ( SbProj4Projection::PredefinedEllipsoid  ellipsoid  )  [static]

Get PROJ.4 ellipsoid string.

SbProj4Projection::Projection SbProj4Projection::getProjection (  ) 

Get current projection .

SbProj4Projection::Projection SbProj4Projection::getProjectionIn (  ) 

Get current input projection .

static SbString SbProj4Projection::getProjectionName ( SbProj4Projection::Projection  proj  )  [static]

Get projection name description.

static SbString SbProj4Projection::getProjectionString ( SbProj4Projection::Projection  proj  )  [static]

Get internal PROJ.4 projection string.

int SbProj4Projection::getUTMZone (  ) 

Get current UTM zone.

virtual void SbProj4Projection::init (  )  [virtual]

Initialisation.

Reimplemented from SbProjection.

virtual void SbProj4Projection::inverse ( SbVec3f point  )  [virtual]

Inverse projection of one point.

Reimplemented from SbProjection.

bool SbProj4Projection::isRevertCoordNeeded (  )  [inline]

Get revertCoordNeeded.

bool SbProj4Projection::isUTMSouth (  ) 

Get m_south (UTM).

void SbProj4Projection::setCoordinateSystem ( SbProj4Projection::CoordinateSystem  coordinateSystem  ) 

Set current coordinate system.

void SbProj4Projection::setEllipsoid ( SbProj4Projection::PredefinedEllipsoid  ellipsoid  ) 

Set current ellipsoid.

void SbProj4Projection::setEllipsoidIn ( SbProj4Projection::PredefinedEllipsoid  ellipsoid  ) 

Set current input ellipsoid.

void SbProj4Projection::setProjection ( SbProj4Projection::Projection  proj  ) 

Set current projection.

void SbProj4Projection::setProjectionIn ( SbProj4Projection::Projection  proj  ) 

Set current input projection.

void SbProj4Projection::setRevertCoord ( bool  revertCoordNeeded  )  [inline]

Set revertCoordNeeded.

void SbProj4Projection::setUTMSouth ( bool  south  ) 

Set m_south (UTM).

void SbProj4Projection::setUTMZone ( int  zone  ) 

Set current UTM zone.

void SbProj4Projection::toGeocentric ( SbVec3f point  ) 

Transform the given coordinates from Geodetic coordinate system to Geocentric coordinate system .

void SbProj4Projection::toGeodetic ( SbVec3f point  ) 

Transform the given coordinates from Geocentric coordinate system to Geodetic coordinate system .


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 4 Sep 2023
Copyright © Thermo Fisher Scientific All rights reserved.
https://www.openinventor.com/