public GeocentricTransformationGeographicWrapper(GeographicGeocentricTransformation geographicGeocentric, GeocentricGeographicTransformation geocentricGeographic, ITransformation<Point3> core)
     : base(geographicGeocentric, geocentricGeographic)
 {
     if (null == core) throw new ArgumentNullException("core");
     Contract.Requires(geographicGeocentric != null);
     Contract.Requires(geocentricGeographic != null);
     _core = core;
 }
 private Inverse(GeographicGeocentricTransformation geographicGeocentric, GeocentricGeographicTransformation geocentricGeographic, MolodenskyBadekasGeographicTransformation core)
     : base(geographicGeocentric, geocentricGeographic)
 {
     _core = core;
     Contract.Requires(core != null);
     Contract.Requires(core.MolodenskyBadekas.HasInverse);
     Contract.Requires(geographicGeocentric != null);
     Contract.Requires(geocentricGeographic != null);
     _mbInverse = _core.MolodenskyBadekas.GetInverse();
 }
 private Inverse(GeographicGeocentricTransformation geographicGeocentric, GeocentricGeographicTransformation geocentricGeographic, GeocentricTransformationGeographicWrapper coreWrapper)
     : base(geographicGeocentric, geocentricGeographic)
 {
     Contract.Requires(coreWrapper != null);
     Contract.Requires(coreWrapper.GeocentricCore.HasInverse);
     Contract.Requires(geographicGeocentric != null);
     Contract.Requires(geocentricGeographic != null);
     _coreWrapper = coreWrapper;
     _inverseOperation = coreWrapper.GeocentricCore.GetInverse();
 }