7 #ifndef _HALMAPPEDSEGMENT_H
8 #define _HALMAPPEDSEGMENT_H
11 #include "halSlicedSegment.h"
28 virtual SlicedSegmentConstPtr
getSource()
const = 0;
33 virtual bool lessThan(
const MappedSegmentConstPtr& other)
const = 0;
43 virtual bool equals(
const MappedSegmentConstPtr& other)
const = 0;
47 virtual void flip()
const = 0;
54 virtual MappedSegmentConstPtr
copy()
const = 0;
60 const MappedSegmentConstPtr& next,
61 const std::set<hal_index_t>* cutSet = NULL,
62 const std::set<hal_index_t>* sourceCutSet = NULL)
const = 0;
66 struct LessSource {
bool operator()(
const MappedSegmentConstPtr& ms1,
67 const MappedSegmentConstPtr& ms2)
const {
68 return ms1->lessThanBySource(ms2); }
73 struct Less {
bool operator()(
const MappedSegmentConstPtr& ms1,
74 const MappedSegmentConstPtr& ms2)
const {
75 return ms1->lessThan(ms2); }
79 struct EqualTo {
bool operator()(
const MappedSegmentConstPtr& ms1,
80 const MappedSegmentConstPtr& ms2)
const {
81 return ms1->equals(ms2); }
85 virtual void print(std::ostream& os)
const = 0;
93 inline MappedSegment::~MappedSegment() {}
99 struct less<hal::MappedSegmentConstPtr>
101 bool operator()(
const hal::MappedSegmentConstPtr& m1,
102 const hal::MappedSegmentConstPtr& m2)
const
virtual bool lessThanBySource(const MappedSegmentConstPtr &other) const =0
virtual bool canMergeRightWith(const MappedSegmentConstPtr &next, const std::set< hal_index_t > *cutSet=NULL, const std::set< hal_index_t > *sourceCutSet=NULL) const =0
Definition: halMappedSegment.h:66
virtual bool equals(const MappedSegmentConstPtr &other) const =0
virtual void flip() const =0
Definition: halMappedSegment.h:73
virtual bool lessThan(const MappedSegmentConstPtr &other) const =0
virtual MappedSegmentConstPtr copy() const =0
virtual SlicedSegmentConstPtr getSource() const =0
virtual void fullReverse() const =0
Definition: halMappedSegment.h:23
virtual void print(std::ostream &os) const =0
Definition: halSlicedSegment.h:22
Definition: halMappedSegment.h:79