// Copyright 2023 Google LLC // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. #ifndef SweepLine_DEFINED #define SweepLine_DEFINED #include "modules/bentleyottmann/include/EventQueueInterface.h" #include "modules/bentleyottmann/include/Segment.h" #include #include namespace bentleyottmann { struct Point; class SweepLine : public SweepLineInterface { public: SweepLine(); void handleDeletions(Point eventPoint, const DeletionSegmentSet& removing) override; void handleInsertionsAndCheckForNewCrossings(Point eventPoint, const InsertionSegmentSet& inserting, EventQueueInterface* queue) override; private: friend struct SweepLineTestingPeer; void verify(int32_t y) const; std::vector fSweepLine; }; } // namespace bentleyottmann #endif // SweepLine_DEFINED