9 #ifndef CscDaeWorldElementsFactory_hpp
10 #define CscDaeWorldElementsFactory_hpp
39 const string &name =
"");
46 string toString()
const;
49 optional<CscPlaceIdNameAndProvider> tryParsePlaceIdNameAndProviderFromFilename(
const string &filename);
65 struct WorldElementData {
66 vector<CscWorldElementPart *> *
const parts;
67 vector<CscPoint3d *> *
const positions;
68 vector<CscPoint3d *> *
const normals;
69 vector<CscPolygon *> *
const polygons;
70 vector<const CscLocationTag *> *
const locationTags;
78 WorldElementData(vector<CscWorldElementPart *> *parts,
79 vector<CscPoint3d *> *positions,
80 vector<CscPoint3d *> *normals,
81 vector<CscPolygon *> *polygons,
82 vector<const CscLocationTag *> *locationTags,
93 locationTags(locationTags),
102 double getWidth() {
return maxX - minX; }
103 double getHeight() {
return maxY - minY; }
104 double getLength() {
return maxZ - minZ; }
107 unique_ptr<CscLogger>
logger = CscLogger::getForCategory(
"CscWorldElementsFactory");
109 WorldElementData *loadDaeData(
const string &daeFilePath);
110 WorldElementData *loadGltfData(
const fs::path &filePath);
113 map<fs::path, WorldElementData *> objectsDataCacheByFilename;