This file is indexed.

/usr/include/citygml/geometry.h is in libcitygml-dev 2.0-1build1.

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
79
80
81
82
83
84
85
86
87
88
89
90
91
#pragma once

#include <memory>
#include <vector>
#include <unordered_set>

#include <citygml/citygml_api.h>
#include <citygml/appearancetarget.h>

class Tesselator;

namespace citygml {

    class LineString;
    class Polygon;
    class AppearanceManager;
    class Appearance;
    class ParserParams;
    class CityGMLFactory;
    class CityGMLLogger;

    class LIBCITYGML_EXPORT Geometry : public AppearanceTarget
    {
        friend class CityGMLFactory;
    public:
        enum class GeometryType
        {
            GT_Unknown          = 1 << 0,
            GT_Roof             = 1 << 1,
            GT_Wall             = 1 << 2,
            GT_Ground           = 1 << 3,
            GT_Closure          = 1 << 4,
            GT_Floor            = 1 << 5,
            GT_InteriorWall     = 1 << 6,
            GT_Ceiling          = 1 << 7
        };

        unsigned int getLOD() const;

        unsigned int getPolygonsCount() const;
        std::shared_ptr<Polygon> getPolygon( unsigned int i );
        std::shared_ptr<const Polygon> getPolygon( unsigned int i ) const;

        unsigned int getLineStringCount() const;
        std::shared_ptr<LineString> getLineString( unsigned int i );
        std::shared_ptr<const LineString> getLineString( unsigned int i ) const;

        unsigned int getGeometriesCount() const;
        const Geometry& getGeometry( unsigned int i ) const;
        Geometry& getGeometry( unsigned int i );
        void addGeometry(Geometry* geom);

        GeometryType getType() const;

        std::string getTypeAsString() const;

        unsigned int lod() const;
        void setLod(unsigned int lod);

        void addPolygon(std::shared_ptr<Polygon> );
        void addLineString(std::shared_ptr<LineString>);

        /**
         * @brief finishes the geometry by finishing its child polygons after broadcasting its appearances to all child polygons
         * @param tesselate determines wether the polygons are tesselated
         * @param tesselator the tesselator to be used for tesselation
         * @param mergePolygons determines wether all polygons are merged into one
         */
        void finish(Tesselator& tesselator, bool optimize, std::shared_ptr<CityGMLLogger> logger);

        ~Geometry();


    protected:
        Geometry( const std::string& id, GeometryType type = GeometryType::GT_Unknown, unsigned int lod = 0 );

        bool m_finished;

        GeometryType m_type;

        unsigned int m_lod;

        std::vector<std::shared_ptr<Geometry>> m_childGeometries;

        std::vector<std::shared_ptr<Polygon>> m_polygons;
        std::vector<std::shared_ptr<LineString>> m_lineStrings;
    };

    std::ostream& operator<<( std::ostream& os, const citygml::Geometry& s );

}