| // Copyright 2023 Google LLC | |
| // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. | |
| #include "modules/bentleyottmann/include/BruteForceCrossings.h" | |
| #include "modules/bentleyottmann/include/Segment.h" | |
| #include <optional> | |
| #include <vector> | |
| namespace bentleyottmann { | |
| std::optional<std::vector<Crossing>> brute_force_crossings(SkSpan<const Segment> segments) { | |
| std::vector<Crossing> answer; | |
| if (segments.size() >= 2) { | |
| for (auto i0 = segments.begin(); i0 != segments.end() - 1; ++i0) { | |
| for (auto i1 = i0 + 1; i1 != segments.end(); ++i1) { | |
| if (auto possiblePoint = intersect(*i0, *i1)) { | |
| answer.push_back({*i0, *i1, possiblePoint.value()}); | |
| } | |
| } | |
| } | |
| } | |
| return answer; | |
| } | |
| } // namespace bentleyottmann |