MCPcopy Create free account
hub / github.com/comaps/comaps / TryMergeOne

Method TryMergeOne

generator/metalines_builder.cpp:117–143  ·  view source on GitHub ↗

static

Source from the content-addressed store, hash-verified

115
116// static
117bool LineStringMerger::TryMergeOne(LinePtr const & lineString, Buffer & buffer)
118{
119 auto static const kUndef = std::numeric_limits<int>::max();
120 uint64_t index = kUndef;
121 if (buffer.count(lineString->GetStart()) != 0)
122 index = lineString->GetStart();
123 else if (buffer.count(lineString->GetEnd()) != 0)
124 index = lineString->GetEnd();
125
126 if (index != kUndef)
127 {
128 auto bufferedLineString = buffer[index];
129 buffer.erase(bufferedLineString->GetStart());
130 buffer.erase(bufferedLineString->GetEnd());
131 if (!lineString->Add(*bufferedLineString))
132 {
133 buffer.emplace(bufferedLineString->GetStart(), bufferedLineString);
134 buffer.emplace(bufferedLineString->GetEnd(), bufferedLineString);
135
136 buffer.emplace(lineString->GetStart(), lineString);
137 buffer.emplace(lineString->GetEnd(), lineString);
138 return false;
139 }
140 }
141
142 return index != kUndef;
143}
144
145// static
146LineStringMerger::OutputData LineStringMerger::OrderData(InputData const & data)

Callers

nothing calls this directly

Calls 6

countMethod · 0.45
GetStartMethod · 0.45
GetEndMethod · 0.45
eraseMethod · 0.45
AddMethod · 0.45
emplaceMethod · 0.45

Tested by

no test coverage detected