void CCoordinateSystemGridBoundary::SetBoundaryExtents (MgCoordinate* southwest, MgCoordinate* northeast) { MgGeometryFactory factory; Ptr<MgCoordinate> swPnt; Ptr<MgCoordinate> sePnt; Ptr<MgCoordinate> nePnt; Ptr<MgCoordinate> nwPnt; Ptr<MgCoordinate> clPnt; Ptr<MgCoordinateCollection> collection; MG_TRY() swPnt = factory.CreateCoordinateXY(southwest->GetX(),southwest->GetY()); sePnt = factory.CreateCoordinateXY(northeast->GetX(),southwest->GetY()); nePnt = factory.CreateCoordinateXY(northeast->GetX(),northeast->GetY()); nwPnt = factory.CreateCoordinateXY(southwest->GetX(),northeast->GetY()); clPnt = factory.CreateCoordinateXY(southwest->GetX(),southwest->GetY()); if (!swPnt|| !swPnt || !nePnt || !nwPnt ||!clPnt) { throw new MgOutOfMemoryException(L"MgCoordinateSystemGridBoundary.SetBoundaryExtents", __LINE__, __WFILE__, NULL, L"", NULL); } collection = new MgCoordinateCollection(); if (collection == NULL) { throw new MgOutOfMemoryException(L"MgCoordinateSystemGridBoundary.SetBoundaryExtents", __LINE__, __WFILE__, NULL, L"", NULL); } collection->Add (swPnt); collection->Add (sePnt); collection->Add (nePnt); collection->Add (nwPnt); collection->Add (clPnt); Ptr<MgLinearRing> ring = factory.CreateLinearRing (collection); if (ring == 0) { throw new MgOutOfMemoryException(L"MgCoordinateSystemGridBoundary.SetBoundaryExtents", __LINE__, __WFILE__, NULL, L"", NULL); } m_GridBoundary = factory.CreatePolygon (ring,NULL); MG_CATCH_AND_THROW(L"MgCoordinateSystemGridBoundary.SetBoundaryExtents") }