WRAPPER_API void set_BaseCoordSys(const CoordSys &value)
The set_BaseCoordSys method sets the CoordSys from which this FittedCoordSys is constructed.
void FittedCoordSys_setBaseCoordSys(GeoCalcPBW::DataSource & data, GeoCalcPBW::CoordPointCollection & control, GeoCalcPBW::CoordPointCollection & observed)
{
GeoCalcPBW::FittedCoordSys fcs;
GeoCalcPBW::CoordSys * baseCS = data.GetProjectedCoordSys(L"BMG", L"AK9-27");
fcs.set_BaseCoordSys(*baseCS);
fcs.set_PointStyle(baseCS->get_PointStyle());
fcs.set_TransformAhead(GeoCalcPBW::MathTransform(GeoCalcPBW::MathTransform::ClassType::Affine));
if(fcs.get_TransformAhead().AddPointList(control, observed) < control.get_Count())
{
AfxMessageBox("AddPointList for TransformAhead failed to add all points");
}
if(! fcs.get_TransformAhead().Solve())
{
AfxMessageBox("Solve for TransformAhead failed");
}
fcs.set_TransformBack(GeoCalcPBW::MathTransform(GeoCalcPBW::MathTransform::ClassType::Affine));
if(fcs.get_TransformBack().AddPointList(observed, control) < observed.get_Count())
{
AfxMessageBox("AddPointList for TransformBack failed to add all points");
}
if(! fcs.get_TransformBack().Solve())
{
AfxMessageBox("Solve for TransformBack failed");
}
GeoCalcPBW::GeodeticPoint * basePt = data.GetGeodeticPoint(L"BMG", L"GEODETIC_POINT_DEGREES");
GeoCalcPBW::CoordPoint * fittedPt = fcs.get_PointStyle().CloneCoordPoint();
basePt->set_InUnits(-68.4, 46);
if(! fcs.FromGeodeticBase(*basePt, *fittedPt))
{
AfxMessageBox("FromGeodeticBase failed");
}
delete baseCS;
delete basePt;
delete fittedPt;
}