From 5b582386566ee79b36130609fa126b85df1aef1a Mon Sep 17 00:00:00 2001
From: Athanasios <ath.kouk.oid@gmail.com>
Date: Sat, 24 Apr 2021 09:57:29 +0200
Subject: [PATCH] Support textures

---
 config.js       |  3 ++-
 src/handler.js  |  2 ++
 src/textures.js | 18 ++++++++++++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 src/textures.js

diff --git a/config.js b/config.js
index 4d80fe4..39df3e1 100644
--- a/config.js
+++ b/config.js
@@ -8,6 +8,7 @@ module.exports = {
     SHARED: "sharedResource.json.gz",
     FEATURES: ".json.gz",
     GEOMETRIES: ".bin.gz",
-    ATTRIBUTES: ".bin.gz"
+    ATTRIBUTES: ".bin.gz",
+    TEXTURES: ".bin.dds.gz"
   }
 };
\ No newline at end of file
diff --git a/src/handler.js b/src/handler.js
index 26edda6..25a3b5d 100644
--- a/src/handler.js
+++ b/src/handler.js
@@ -5,6 +5,7 @@ const shared = require('./shared');
 const features = require('./features');
 const geometries = require('./geometries');
 const attributes = require('./attributes');
+const textures = require('./textures');
 const layer = require('./layer');
 const layers = require('./layers');
 
@@ -16,6 +17,7 @@ const handlers = {
   features: features,
   geometries: geometries,
   attributes: attributes,
+  textures: textures,
   layer: layer,
   layers: layers
 }
diff --git a/src/textures.js b/src/textures.js
new file mode 100644
index 0000000..7293ef2
--- /dev/null
+++ b/src/textures.js
@@ -0,0 +1,18 @@
+const config = require('../config');
+const fs = require('fs');
+
+const handle = (req, res) => {
+
+  let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, "");
+  let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.resourceid}${config.FOLDER_INDEX.TEXTURES}`;
+  if (!fs.existsSync(resourse)) throw new Error("not found");
+
+  res.set({
+    'Content-Type': 'application/octet-stream',
+    'Content-Encoding': 'gzip'
+  });
+  res.sendFile(resourse);
+
+};
+
+module.exports = handle;
\ No newline at end of file
-- 
GitLab