int main() { /** Initally there are walls everywhere, each move breaks walls */ int N=0; scanf("%d",&N); for(int k=1;k<=N;k++) { scanf("%s %s",path[0],path[1]); POINT minpt(0,0), maxpt(0,0); POINT dir(0,-1); POINT pos(0,1); Walk(path[0],pos,dir, minpt,maxpt); dir=-dir; Walk(path[1],pos,dir, minpt,maxpt); printf("Case #%d:\n",k); for(int y=maxpt.imag();y>=minpt.imag();y--) { for(int x=minpt.real();x<=maxpt.real();x++) printf("%x",maze[std::make_pair(x,y)]); printf("\n"); } maze.clear(); } return 0; }
HiJitCube::Corners HiJitCube::getCorners(const geos::geom::Geometry &poly) const { Corners corners; if ((poly.isValid()) && (!poly.isEmpty())) { // Get the coordinate list geos::geom::CoordinateSequence *clist = poly.getCoordinates(); const geos::geom::Coordinate *minpt = clist->minCoordinate(); // cout << "MinPoint: " << minpt->x << ", " << minpt->y << std::endl; geos::geom::Coordinate maxpt(clist->getAt(0)); for (unsigned int i = 1 ; i < clist->getSize() ; i++) { geos::geom::Coordinate pt = clist->getAt(i); if ((pt.x >= maxpt.x) && (pt.y >= maxpt.y)) maxpt = pt; } // cout << "MaxPoint: " << maxpt.x << ", " << maxpt.y << std::endl; corners.topLeft.sample = minpt->x; corners.topLeft.line = minpt->y; corners.lowerRight.sample = maxpt.x; corners.lowerRight.line = maxpt.y; corners.good = true; delete clist; } return (corners); }