bool OrSpans::initSpanQueue(int32_t target) { queue = newLucene<SpanQueue>(query->clauses.size()); for (Collection<SpanQueryPtr>::iterator clause = query->clauses.begin(); clause != query->clauses.end(); ++clause) { SpansPtr spans((*clause)->getSpans(reader)); if ((target == -1 && spans->next()) || (target != -1 && spans->skipTo(target))) { queue->add(spans); } } return !queue->empty(); }
void Rasterizer::DrawSpanBetweenBuffers() { for ( int i = 0; i < _height; i++) { if ( _leftBounds[i] == (_width + 1) && _rightBounds[i] == -1 ) { continue; } Span spans(_leftColor[i], _leftBounds[i], _leftZBounds[i], _leftUBounds[i], _leftVBounds[i], _leftWBounds[i], _rightColor[i], _rightBounds[i], _rightZBounds[i], _rightUBounds[i], _rightVBounds[i], _rightWBounds[i]); DrawSpan(spans, i); } }
static PyObject* pyDrawableSpans_buildDIIndex(pyDrawableSpans* self, PyObject* args) { PyObject* list; if (!PyArg_ParseTuple(args, "O", &list)) { PyErr_SetString(PyExc_TypeError, "buildDIIndex expects a sequence of plGeometrySpan"); return NULL; } if (!PySequence_Check(list)) { PyErr_SetString(PyExc_TypeError, "buildDIIndex expects a sequence of plGeometrySpan"); return NULL; } std::vector<std::shared_ptr<plGeometrySpan> > spans(PySequence_Size(list)); for (size_t i = 0; i < spans.size(); ++i) { PyObject* o = PySequence_Fast_GET_ITEM(list, i); if (pyGeometrySpan_Check(o)) spans[i] = ((pyGeometrySpan*)o)->fThis; else { PyErr_SetString(PyExc_TypeError, "buildDIIndex expects a sequence of plGeometrySpan"); return NULL; } } return PyInt_FromLong(self->fThis->buildDIIndex(spans)); }
void print(std::ostream& out) const { out << '[' << type() << " spans=" << spans() << " multiple=" << multiple() << ']'; }