Advertisement
Guest User

Untitled

a guest
Aug 20th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <s2/s2latlng.h>
  2. #include <vector>
  3. #include <s2/s2polyline.h>
  4. #include <s2/s2builderutil_snap_functions.h>
  5. #include <s2/s2builderutil_s2polyline_layer.h>
  6. #include <s2/s2loop.h>
  7.  
  8. int main(int argc, char **argv) {
  9. std::vector<S2LatLng> latlngs;
  10.  
  11. latlngs.emplace_back(S2LatLng::FromRadians(1, -1));
  12. latlngs.emplace_back(S2LatLng::FromRadians(1, 1));
  13. latlngs.emplace_back(S2LatLng::FromRadians(-1, -1));
  14. latlngs.emplace_back(S2LatLng::FromRadians(-1, 1));
  15. latlngs.emplace_back(S2LatLng::FromRadians(1, -1));
  16.  
  17. S2Polyline inPolyline(latlngs);
  18. S2Polyline outPolyline;
  19. s2builderutil::IntLatLngSnapFunction snap(2);
  20. snap.set_snap_radius(S1Angle::Radians(0.01));
  21. S2Builder::Options options(snap);
  22. options.set_split_crossing_edges(true);
  23. options.set_simplify_edge_chains(true);
  24. options.set_idempotent(false);
  25. S2Builder builder(options);
  26. builder.StartLayer(absl::make_unique<s2builderutil::S2PolylineLayer>(&outPolyline));
  27. builder.AddPolyline(inPolyline);
  28. S2Error error;
  29. S2_CHECK(builder.Build(&error)) << error;
  30.  
  31. std::vector<S2Point> correctedContour;
  32. for (int i=0; i<outPolyline.num_vertices()-1; i++)
  33. correctedContour.emplace_back(outPolyline.vertex(i));
  34.  
  35. S2Loop loop(correctedContour);
  36. return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement