MCPcopy Create free account
hub / github.com/PDAL/PDAL / run

Method run

pdal/private/StageRunner.cpp:55–90  ·  view source on GitHub ↗

For now this is all synchronous

Source from the content-addressed store, hash-verified

53
54// For now this is all synchronous
55void StageRunner::run()
56{
57 point_count_t keepSize = m_keeps->size();
58
59 // Don't run the stage if we're a filter and we're empty
60 if (dynamic_cast<Filter *>(m_stage) && keepSize == 0)
61 m_stage->log()->get(LogLevel::Debug) << "'where' filtering removed all points or "
62 "the reader is empty. Filter '" << m_stage->tag() << "' was not applied.";
63 else
64 m_viewSet = m_stage->run(m_keeps);
65
66 if (m_skips->size() == 0)
67 return;
68
69 if (m_stage->mergeMode() == Filter::WhereMergeMode::True)
70 {
71 if (m_viewSet.size())
72 {
73 (*m_viewSet.begin())->append(*m_skips);
74 return;
75 }
76 }
77 else if (m_stage->mergeMode() == Filter::WhereMergeMode::Auto)
78 {
79 if (m_viewSet.size() == 1)
80 {
81 PointViewPtr keeps = *m_viewSet.begin();
82 if (keeps.get() == m_keeps.get() && keepSize == keeps->size())
83 {
84 keeps->append(*m_skips);
85 return;
86 }
87 }
88 }
89 m_viewSet.insert(m_skips);
90}
91
92PointViewSet StageRunner::wait()
93{

Callers

nothing calls this directly

Calls 7

sizeMethod · 0.45
getMethod · 0.45
logMethod · 0.45
mergeModeMethod · 0.45
appendMethod · 0.45
beginMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected