This file is indexed.

/usr/include/marble/ClipPainter.h is in libmarble-dev 4:4.13.0-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2006-2009 Torsten Rahn <tackat@kde.org>
// Copyright 2007      Inge Wallin  <ingwa@kde.org>
//

#ifndef MARBLE_CLIPPAINTER_H
#define MARBLE_CLIPPAINTER_H


#include <QPointF>
#include <QPainter>
#include "marble_export.h"
#include "MarbleGlobal.h"

class QPaintDevice;
class QPolygonF;

namespace Marble
{
/**
 * @short A QPainter that does viewport clipping for polygons 
 *
 * This class introduces fast polygon/polyline clipping for QPainter
 * to increase the performance.
 * Clipping is accomplished using an algorithm (by Torsten Rahn) that 
 * processes each polyline once. 
 * To keep things fast each possible scenario of two subsequent 
 * points is implemented case by case in a specialized handler which
 * creates interpolated points and helper points.
 */

// The reason for this class is a terrible bug in some versions of the
// X Server.  Suppose the widget size is, say, 1000 x 1000 and we have
// a high zoom so that we want to draw a vector from (-100000,
// -100000) to (100000, 100000).  Then the X server will create a
// bitmap that is at least 100000 x 100000 and in the process eat all
// available memory.
//
// So we introduce the ClipPainter that clips all polylines and polygons 
// to the area that is actually visible in the viewport.
//
// @internal

class ClipPainterPrivate;
class MARBLE_EXPORT ClipPainter : public QPainter 
{
 public:
    ClipPainter();
    ClipPainter(QPaintDevice*, bool);

    ~ClipPainter();

    void setClipping( bool enable );
    bool isClipping() const;

    void drawPolygon( const QPolygonF &, 
                      Qt::FillRule fillRule = Qt::OddEvenFill );

    void drawPolyline( const QPolygonF & );
    void drawPolyline( const QPolygonF &, QVector<QPointF>& labelNodes, 
                       LabelPositionFlags labelPositionFlag = LineCenter );

    //	void clearNodeCount(){ m_debugNodeCount = 0; }
    //	int nodeCount(){ return m_debugNodeCount; }

 private:
    ClipPainterPrivate * const d;
};

}

#endif