16 #ifndef GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENT_H
17 #define GEOS_GEOMGRAPH_INDEX_SWEEPLINEEVENT_H
20 #include <geos/export.h>
27 class SweepLineEventOBJ;
38 class GEOS_DLL SweepLineEvent{
39 friend class SweepLineEventLessThen;
48 SweepLineEvent(
void* newEdgeSet,
double x,
49 SweepLineEvent *newInsertEvent,
50 SweepLineEventOBJ *newObj);
52 virtual ~SweepLineEvent();
54 bool isInsert() {
return insertEvent==NULL; }
56 bool isDelete() {
return insertEvent!=NULL; }
58 SweepLineEvent* getInsertEvent() {
return insertEvent; }
60 int getDeleteEventIndex() {
return deleteEventIndex; }
62 void setDeleteEventIndex(
int newDeleteEventIndex) {
63 deleteEventIndex=newDeleteEventIndex;
66 SweepLineEventOBJ* getObject()
const {
return obj; }
68 int compareTo(SweepLineEvent *sle);
76 SweepLineEventOBJ* obj;
84 SweepLineEvent *insertEvent;
89 class GEOS_DLL SweepLineEventLessThen {
91 bool operator()(
const SweepLineEvent *f,
const SweepLineEvent *s)
const
93 if (f->xValue<s->xValue)
return true;
94 if (f->xValue>s->xValue)
return false;
95 if (f->eventType<s->eventType)
return true;