17 #ifndef GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENT_H
18 #define GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENT_H
21 #include <geos/export.h>
28 class SweepLineEventOBJ;
39 class GEOS_DLL SweepLineEvent{
40 friend class SweepLineEventLessThen;
49 SweepLineEvent(
void* newEdgeSet,
double x,
50 SweepLineEvent *newInsertEvent,
51 SweepLineEventOBJ *newObj);
53 virtual ~SweepLineEvent();
55 bool isInsert() {
return insertEvent==NULL; }
57 bool isDelete() {
return insertEvent!=NULL; }
59 SweepLineEvent* getInsertEvent() {
return insertEvent; }
61 int getDeleteEventIndex() {
return deleteEventIndex; }
63 void setDeleteEventIndex(
int newDeleteEventIndex) {
64 deleteEventIndex=newDeleteEventIndex;
67 SweepLineEventOBJ* getObject()
const {
return obj; }
69 int compareTo(SweepLineEvent *sle);
77 SweepLineEventOBJ* obj;
85 SweepLineEvent *insertEvent;
90 class GEOS_DLL SweepLineEventLessThen {
92 bool operator()(
const SweepLineEvent *f,
const SweepLineEvent *s)
const
94 if (f->xValue<s->xValue)
return true;
95 if (f->xValue>s->xValue)
return false;
96 if (f->eventType<s->eventType)
return true;