/usr/include/citygml/citygmlfactory.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 | #pragma once
#include "citygml/geometry.h"
#include "citygml/cityobject.h"
#include <memory>
namespace citygml {
class AppearanceManager;
class PolygonManager;
class GeometryManager;
class CityGMLLogger;
class CityModel;
class AppearanceTarget;
class CityObject;
class Geometry;
class ImplicitGeometry;
class Polygon;
class LineString;
class Appearance;
class Texture;
class GeoreferencedTexture;
class Material;
class MaterialTargetDefinition;
class TextureTargetDefinition;
class CityGMLFactory {
public:
CityGMLFactory(std::shared_ptr<CityGMLLogger> logger);
CityModel* createCityModel(const std::string& id);
CityObject* createCityObject(const std::string& id, CityObject::CityObjectsType type);
Geometry* createGeometry(const std::string& id, const CityObject::CityObjectsType& cityObjType = CityObject::CityObjectsType::COT_All, unsigned int lod = 0);
std::shared_ptr<Polygon> createPolygon(const std::string& id);
std::shared_ptr<LineString> createLineString(const std::string& id);
/**
* @brief requests a polygon for a Geometry object that will be added later
* @param geom the Geometry object to which the polygon will be added
* @param polygonId the id of the polygon
*/
void requestSharedPolygonForGeometry(Geometry* geom, const std::string& polygonId);
ImplicitGeometry* createImplictGeometry(const std::string& id);
std::shared_ptr<Geometry> shareGeometry(Geometry* geom);
void requestSharedGeometryWithID(ImplicitGeometry* implicitGeom, const std::string& id);
std::shared_ptr<Texture> createTexture(const std::string& id);
std::shared_ptr<Material> createMaterial(const std::string& id);
std::shared_ptr<GeoreferencedTexture> createGeoReferencedTexture(const std::string& id);
std::shared_ptr<MaterialTargetDefinition> createMaterialTargetDefinition(const std::string& targetID, std::shared_ptr<Material> appearance, const std::string& id);
std::shared_ptr<TextureTargetDefinition> createTextureTargetDefinition(const std::string& targetID, std::shared_ptr<Texture> appearance, const std::string& id);
std::shared_ptr<Appearance> getAppearanceWithID(const std::string& id);
std::vector<std::string> getAllThemes();
void closeFactory();
~CityGMLFactory();
protected:
void appearanceTargetCreated(AppearanceTarget* obj);
std::shared_ptr<CityGMLLogger> m_logger;
std::unique_ptr<AppearanceManager> m_appearanceManager;
std::unique_ptr<PolygonManager> m_polygonManager;
std::unique_ptr<GeometryManager> m_geometryManager;
};
}
|