From cd66d8c53ed83f494ef01f77c44fa42be312a4b7 Mon Sep 17 00:00:00 2001 From: Frederik Date: Wed, 30 Aug 2023 17:19:30 +0200 Subject: [PATCH 1/5] Made viewbox dynamic on the SVG on the generated webpage --- .../web/tools/scripts/template/favicon.ico | Bin 0 -> 93973 bytes .../web/tools/scripts/template/index.html | 6 +- .../web/tools/scripts/template/script.js | 184 +++++++++++------- .../web/tools/scripts/template/styles.css | 14 +- 4 files changed, 129 insertions(+), 75 deletions(-) create mode 100644 web/include/actsvg/web/tools/scripts/template/favicon.ico diff --git a/web/include/actsvg/web/tools/scripts/template/favicon.ico b/web/include/actsvg/web/tools/scripts/template/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..634d3f3749489b3397cf2773114357c8c84daf64 GIT binary patch literal 93973 zcmbrl^IoA;=hazo=!6}(x6Zrk&%0oDJ1FMA4C745F155L_v zmO4;&KDsGy-$a(x1j}1$crQOyIaz)Nzu)Dk5OCYfjO^S}jcoqAy!7^8Lv3*b1FGwP zUw=bkwMpp^)Xb{fPDSk9!&}+?S;0_gih7XO$Cc}4$j%GG&0XVR8NyA^ko#GB;s)~m z;djds7iIHl%O`*H^%l>~CdN=l0e_y=js*Tg|A{KNup0>c*ZIfeOyWxRiur2krmN$w zY^Lja|9oI_;>vT!xqG5r)l7Gldgy+|9}8mP3eB4LyH0-cDZoz7qb&L}`oRC9a--1B z=b;kk_peA7?`dj#gFnri@8mbaIG)OJW{RbY7LQvu1!o`NYw3IoHqb8p{@gLQvWh)2 z&G?Vs5BCEF=cWrwAI5aKzl%NLGj(q;_3avHlE>v+1?>hBZzDI}ddJ)r1t?z-wf~B#H5yRt^COg8eJ-Xq&K~$5zM`!tM4$e2G zK#|~^JM!jtIDko-l7nTU6@i3nRz4ome8%ZDU<}+JQHd{mgh8DfryRp*v zyT_uLhgzkYEiU`Juw|2uOreIM5;gX^oaUbizG9-87ZUqdKL>M#pUVC8Ny$5dhcxJ z-JrF9ZXG&DC#Amfwnt?u`YyCmN#9I0zbhO66wMrb9fbJU#c0DI=$0O3DAU9nV^8!? zW`;`on6VQt5`P(Ipj#xx7cy>>H_5a~@Rr|eWr8cr`7MVZZi>O|*C$&=Q$vsb*%{i$ zuF~m%NJ7F&GcfNBiH;v>m_HdZ1$TIVfx-nm;Chs4d7mu|WV{9`n z^^IH)%%V7&{c!X0`*Zu3nirQ&=S)e#i0X?56N@Tm8W2ES<*d912;YYMn!8k*t8&Y| zQ3fGLCG*~%M{5J!sHAGsXu7Ir;Mi%Jx5)B-`0hyxGL@keU2kr~Vlo$E z65Gik5(EMCO~09#=9lG;E>gKa4+~>?Lyl0;XfJrMH z;43E}?DOC!aVftNO&bRUsJ%7=^r1}upnxDgXVZv>v5f_pG%e+HQBwIWNA3xKhq7W* z2Y(#1$+LWxJ}VBuSamzIVYkTnU49geU0cSiUB0p>*R;AqSB1>gR(|PfX{_bO6;r!< zYWVF$-m8u23mk*zq?;78bw-V*<0V^he@s>XmlO&dJEuyKKA?FLJ?ZGE1cWUemnh^%N{XLPcNYHIKu&S`jJx%b

ZBT+a|7=T=p?J?>Ut00rv0!stZU#AW0 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

#Fxbwua4-iZ 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 literal 0 HcmV?d00001 diff --git a/web/include/actsvg/web/tools/scripts/template/index.html b/web/include/actsvg/web/tools/scripts/template/index.html index e69e252..7fc492b 100644 --- a/web/include/actsvg/web/tools/scripts/template/index.html +++ b/web/include/actsvg/web/tools/scripts/template/index.html @@ -12,8 +12,10 @@

Select SVGs

-
- +
+ + +
diff --git a/web/include/actsvg/web/tools/scripts/template/script.js b/web/include/actsvg/web/tools/scripts/template/script.js index 5776b8d..a13f42a 100644 --- a/web/include/actsvg/web/tools/scripts/template/script.js +++ b/web/include/actsvg/web/tools/scripts/template/script.js @@ -1,64 +1,86 @@ -// Initialize the page by loading a form with a button for each SVG available. -// This is done by reading the paths in the config.json file. -document.addEventListener("DOMContentLoaded", function () { - fetch('./config.json').then(response => response.json()).then(json =>{ - load_form(json); - }); -}); +let SVGResult = document.getElementById('result-svg'); +let formContainer = document.getElementById('formContainer'); +let SVGContainer = document.getElementById("result-div"); + +// Given a collection of paths, returns a collection of containing the respective file text. +async function readFiles(paths){ + let result = [] + for (const path of paths) { + let data = await (await fetch(path)).text(); + result.push(data); + } + return result; +} + +// Removes the and tag to obtain its content. +function removeSVGTag(data){ + let startTag = /]*>/i; + let endTag = /<\/svg>/i; + data = data.replace(startTag, ''); + data = data.replace(endTag, ''); + return data; +} + +async function SVGContentMerge(paths){ + let contents = await readFiles(paths); + return contents.map(removeSVGTag).join('\n'); +} // Loads a form containing a button for each SVG available. function load_form(group) { - let form = document.createElement("form"); - form.id = "checkboxForm"; + let form = document.createElement('form'); + form.id = 'checkboxForm'; group.forEach(item =>{ - itemDiv = document.createElement("div"); - itemDiv.classList.add("form-item"); + itemDiv = document.createElement('div'); + itemDiv.classList.add('form-item'); let label = document.createElement("label"); itemDiv.appendChild(label); - let checkbox = document.createElement("input"); - checkbox.type = "checkbox"; - checkbox.name = "checkbox"; - checkbox.value = "./svgs/" + item; + let checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.name = 'checkbox'; + checkbox.value = './svgs/' + item; label.append(checkbox); - let span = document.createElement("span"); - span.textContent = get_name(item); + let span = document.createElement('span'); + span.textContent = item.replace('.svg', ''); label.appendChild(span); form.appendChild(itemDiv); }); - form.append(document.createElement("br")); + form.append(document.createElement('br')); // Create a button to apply the changes - let apply_button = document.createElement("input"); - apply_button.type = "button"; - apply_button.value = "Apply Selection"; - apply_button.onclick = getSelectedValues; - apply_button.classList.add("apply-button"); + let apply_button = document.createElement('input'); + apply_button.type = 'button'; + apply_button.value = 'Apply Selection'; + apply_button.onclick = applyChanges; + apply_button.classList.add('apply-button'); // Append the apply button to the form form.append(apply_button); // Append the form to the formContainer div - const formContainer = document.getElementById("formContainer"); formContainer.appendChild(form); } -// For removing the file extension. -function get_name(path){ - return path.replace(".svg", ""); -} +// Initialize the page by loading a form with a button for each SVG available. +// This is done by reading the paths in the config.json file. +document.addEventListener('DOMContentLoaded', function () { + fetch('./config.json').then(response => response.json()).then(json =>{ + load_form(json); + }); +}); // Updates the displayed SVG by combining the selected SVGs. -async function getSelectedValues() { - var checkboxes = document.getElementsByName("checkbox"); +async function applyChanges() { + var checkboxes = document.getElementsByName('checkbox'); var selectedValues = []; for (var i = 0; i < checkboxes.length; i++) { @@ -67,52 +89,76 @@ async function getSelectedValues() { } } - selectedValues = selectedValues.reverse(); - let svg = await combineSVGS(selectedValues); - var resultDiv = document.getElementById('result'); - resultDiv.innerHTML = svg; + paths = selectedValues.reverse(); + SVGResult.innerHTML = await SVGContentMerge(paths); } -// Removes the and tag to obtain its content. -function removeSVGTag(data){ - let startTag = /]*>/i; - let endTag = /<\/svg>/i; - data = data.replace(startTag, ''); - data = data.replace(endTag, ''); - return data; + +// For navigation on the svg: + +//--- Adjustable paramters: +// Speed of zoom on scroll. +const zoomFactor = 1.1; +// To calculate the maximum width and height of the viewbox. +const maxHalfLengths = { x: 3000, y: 3000 }; +//---- + +let pivot = { x: 0, y: 0 }; +let position = { x: 0, y: 0 }; +let halfSize = { x: 300, y: 300 }; +const clamp = (num, min, max) => Math.min(Math.max(num, min), max); + +setViewBox(); + +SVGResult.addEventListener("mousemove", onMousemove); +SVGResult.addEventListener("mousedown", onMousedown); +SVGResult.addEventListener("wheel", onWheel); + +const mouse = { + position: { x: 0, y: 0 }, + isDown: false, +}; + +function viewBoxDim(){ + return {x: position.x - halfSize.x, y: position.y - halfSize.y, w: 2*halfSize.x, h: 2*halfSize.y}; } -// Given a collection of paths, returns a collection of containing the respective file text. -async function readFiles(paths){ - let result = [] - for (const path of paths) { - try{ - let data = await (await fetch(path)).text(); - result.push(data); - } - catch(err) - { - console.error(err); - } +function onMousedown(e) { + mouse.position = screenToViewBoxPosition(e.pageX, e.pageY); + window.addEventListener("mouseup", onMouseup); + mouse.isDown = true; +} + +function setViewBox() { + let dim = viewBoxDim(); + SVGResult.setAttribute("viewBox", `${dim.x} ${dim.y} ${dim.w} ${dim.h}`); +} + +function screenToViewBoxPosition(screenX, screenY){ + return { + x: screenX * 2 * halfSize.x/SVGResult.clientWidth, + y: screenY * 2 * halfSize.y/SVGResult.clientHeight } - return result; } -// Creates an SVG from a list of svg objects by joining and appending svg start and end tags. -function createSVG(contents){ - let result = [] - result.push('\n'); - contents.forEach(e => { - result.push(e); - result.push('\n'); - }); - result.push(''); - return result.join(''); +function onMousemove(e) { + if (mouse.isDown) { + let pos = screenToViewBoxPosition(e.pageX, e.pageY); + let dx = (pos.x - mouse.position.x); + let dy = (pos.y - mouse.position.y); + position = {x: clamp(position.x - dx, -maxHalfLengths.x, maxHalfLengths.x), y: clamp(position.y - dy, -maxHalfLengths.y, maxHalfLengths.y)}; + mouse.position = pos; + setViewBox(); + } } -// Given a list of paths to svgs, returns an svg of their combined content. -async function combineSVGS(paths){ - let contents = await readFiles(paths); - contents = contents.map(removeSVGTag); - return createSVG(contents); +function onMouseup(e) { + window.removeEventListener("mouseup", onMouseup); + mouse.isDown = false; +} + +function onWheel(e) { + const scale = e.deltaY > 0 ? zoomFactor : 1/zoomFactor; + halfSize = {x: clamp(halfSize.x * scale, 1, maxHalfLengths.x), y: clamp(halfSize.y * scale, 1, maxHalfLengths.y)}; + setViewBox(); } diff --git a/web/include/actsvg/web/tools/scripts/template/styles.css b/web/include/actsvg/web/tools/scripts/template/styles.css index 9dcf5cf..5ba90ca 100644 --- a/web/include/actsvg/web/tools/scripts/template/styles.css +++ b/web/include/actsvg/web/tools/scripts/template/styles.css @@ -59,9 +59,15 @@ font-family: monospace; } -.result{ - box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35); - width: 60%; - height: 60%; +.result-div{ + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35); + height: 40%; + width: 40%; display: inline-block; + cursor: grab; } + +.result-div svg g{ + cursor: pointer; +} + From a88ed246e04971c9e6cc618d2f15112308995fb8 Mon Sep 17 00:00:00 2001 From: Frederik Date: Wed, 30 Aug 2023 17:20:20 +0200 Subject: [PATCH 2/5] Regenerated webpage content header file --- web/include/actsvg/web/webpage_text.hpp | 204 +++++++++++++++--------- 1 file changed, 129 insertions(+), 75 deletions(-) diff --git a/web/include/actsvg/web/webpage_text.hpp b/web/include/actsvg/web/webpage_text.hpp index 34687a6..960dac1 100644 --- a/web/include/actsvg/web/webpage_text.hpp +++ b/web/include/actsvg/web/webpage_text.hpp @@ -26,8 +26,10 @@ const std::string index_text = R"( -
- +
+ + +
@@ -37,67 +39,89 @@ const std::string index_text = R"( )"; -const std::string script_text = R"(// Initialize the page by loading a form with a button for each SVG available. -// This is done by reading the paths in the config.json file. -document.addEventListener("DOMContentLoaded", function () { - fetch('./config.json').then(response => response.json()).then(json =>{ - load_form(json); - }); -}); +const std::string script_text = R"(let SVGResult = document.getElementById('result-svg'); +let formContainer = document.getElementById('formContainer'); +let SVGContainer = document.getElementById("result-div"); + +// Given a collection of paths, returns a collection of containing the respective file text. +async function readFiles(paths){ + let result = [] + for (const path of paths) { + let data = await (await fetch(path)).text(); + result.push(data); + } + return result; +} + +// Removes the and tag to obtain its content. +function removeSVGTag(data){ + let startTag = /]*>/i; + let endTag = /<\/svg>/i; + data = data.replace(startTag, ''); + data = data.replace(endTag, ''); + return data; +} + +async function SVGContentMerge(paths){ + let contents = await readFiles(paths); + return contents.map(removeSVGTag).join('\n'); +} // Loads a form containing a button for each SVG available. function load_form(group) { - let form = document.createElement("form"); - form.id = "checkboxForm"; + let form = document.createElement('form'); + form.id = 'checkboxForm'; group.forEach(item =>{ - itemDiv = document.createElement("div"); - itemDiv.classList.add("form-item"); + itemDiv = document.createElement('div'); + itemDiv.classList.add('form-item'); let label = document.createElement("label"); itemDiv.appendChild(label); - let checkbox = document.createElement("input"); - checkbox.type = "checkbox"; - checkbox.name = "checkbox"; - checkbox.value = "./svgs/" + item; + let checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.name = 'checkbox'; + checkbox.value = './svgs/' + item; label.append(checkbox); - let span = document.createElement("span"); - span.textContent = get_name(item); + let span = document.createElement('span'); + span.textContent = item.replace('.svg', ''); label.appendChild(span); form.appendChild(itemDiv); }); - form.append(document.createElement("br")); + form.append(document.createElement('br')); // Create a button to apply the changes - let apply_button = document.createElement("input"); - apply_button.type = "button"; - apply_button.value = "Apply Selection"; - apply_button.onclick = getSelectedValues; - apply_button.classList.add("apply-button"); + let apply_button = document.createElement('input'); + apply_button.type = 'button'; + apply_button.value = 'Apply Selection'; + apply_button.onclick = applyChanges; + apply_button.classList.add('apply-button'); // Append the apply button to the form form.append(apply_button); // Append the form to the formContainer div - const formContainer = document.getElementById("formContainer"); formContainer.appendChild(form); } -// For removing the file extension. -function get_name(path){ - return path.replace(".svg", ""); -} +// Initialize the page by loading a form with a button for each SVG available. +// This is done by reading the paths in the config.json file. +document.addEventListener('DOMContentLoaded', function () { + fetch('./config.json').then(response => response.json()).then(json =>{ + load_form(json); + }); +}); // Updates the displayed SVG by combining the selected SVGs. -async function getSelectedValues() { - var checkboxes = document.getElementsByName("checkbox"); +async function applyChanges() { + var checkboxes = document.getElementsByName('checkbox'); var selectedValues = []; for (var i = 0; i < checkboxes.length; i++) { @@ -106,54 +130,78 @@ async function getSelectedValues() { } } - selectedValues = selectedValues.reverse(); - let svg = await combineSVGS(selectedValues); - var resultDiv = document.getElementById('result'); - resultDiv.innerHTML = svg; + paths = selectedValues.reverse(); + SVGResult.innerHTML = await SVGContentMerge(paths); } -// Removes the and tag to obtain its content. -function removeSVGTag(data){ - let startTag = /]*>/i; - let endTag = /<\/svg>/i; - data = data.replace(startTag, ''); - data = data.replace(endTag, ''); - return data; + +// For navigation on the svg: + +//--- Adjustable paramters: +// Speed of zoom on scroll. +const zoomFactor = 1.1; +// To calculate the maximum width and height of the viewbox. +const maxHalfLengths = { x: 3000, y: 3000 }; +//---- + +let pivot = { x: 0, y: 0 }; +let position = { x: 0, y: 0 }; +let halfSize = { x: 300, y: 300 }; +const clamp = (num, min, max) => Math.min(Math.max(num, min), max); + +setViewBox(); + +SVGResult.addEventListener("mousemove", onMousemove); +SVGResult.addEventListener("mousedown", onMousedown); +SVGResult.addEventListener("wheel", onWheel); + +const mouse = { + position: { x: 0, y: 0 }, + isDown: false, +}; + +function viewBoxDim(){ + return {x: position.x - halfSize.x, y: position.y - halfSize.y, w: 2*halfSize.x, h: 2*halfSize.y}; } -// Given a collection of paths, returns a collection of containing the respective file text. -async function readFiles(paths){ - let result = [] - for (const path of paths) { - try{ - let data = await (await fetch(path)).text(); - result.push(data); - } - catch(err) - { - console.error(err); - } +function onMousedown(e) { + mouse.position = screenToViewBoxPosition(e.pageX, e.pageY); + window.addEventListener("mouseup", onMouseup); + mouse.isDown = true; +} + +function setViewBox() { + let dim = viewBoxDim(); + SVGResult.setAttribute("viewBox", `${dim.x} ${dim.y} ${dim.w} ${dim.h}`); +} + +function screenToViewBoxPosition(screenX, screenY){ + return { + x: screenX * 2 * halfSize.x/SVGResult.clientWidth, + y: screenY * 2 * halfSize.y/SVGResult.clientHeight } - return result; } -// Creates an SVG from a list of svg objects by joining and appending svg start and end tags. -function createSVG(contents){ - let result = [] - result.push('\n'); - contents.forEach(e => { - result.push(e); - result.push('\n'); - }); - result.push(''); - return result.join(''); +function onMousemove(e) { + if (mouse.isDown) { + let pos = screenToViewBoxPosition(e.pageX, e.pageY); + let dx = (pos.x - mouse.position.x); + let dy = (pos.y - mouse.position.y); + position = {x: clamp(position.x - dx, -maxHalfLengths.x, maxHalfLengths.x), y: clamp(position.y - dy, -maxHalfLengths.y, maxHalfLengths.y)}; + mouse.position = pos; + setViewBox(); + } } -// Given a list of paths to svgs, returns an svg of their combined content. -async function combineSVGS(paths){ - let contents = await readFiles(paths); - contents = contents.map(removeSVGTag); - return createSVG(contents); +function onMouseup(e) { + window.removeEventListener("mouseup", onMouseup); + mouse.isDown = false; +} + +function onWheel(e) { + const scale = e.deltaY > 0 ? zoomFactor : 1/zoomFactor; + halfSize = {x: clamp(halfSize.x * scale, 1, maxHalfLengths.x), y: clamp(halfSize.y * scale, 1, maxHalfLengths.y)}; + setViewBox(); } )"; @@ -218,12 +266,18 @@ const std::string css_text = R"(.app{ font-family: monospace; } -.result{ - box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35); - width: 60%; - height: 60%; +.result-div{ + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35); + height: 40%; + width: 40%; display: inline-block; + cursor: grab; } + +.result-div svg g{ + cursor: pointer; +} + )"; } // namespace actsvg::web \ No newline at end of file From 60cb4d2ad5e24e32e5b1049eef4e2372c258466d Mon Sep 17 00:00:00 2001 From: Frederik Date: Wed, 30 Aug 2023 18:20:23 +0200 Subject: [PATCH 3/5] Added comment regarding browser caching --- web/include/actsvg/web/web_builder.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/include/actsvg/web/web_builder.hpp b/web/include/actsvg/web/web_builder.hpp index ffa4612..3ca8a33 100644 --- a/web/include/actsvg/web/web_builder.hpp +++ b/web/include/actsvg/web/web_builder.hpp @@ -63,6 +63,8 @@ bool alphanumericCompare(const svg::object& svg1, const svg::object& svg2) { }; /// @brief Class for generating a web page to view and merge svgs. +/// @note When used a debugging tool and rebuilding mutliple times, +/// if the webpage does not refresh as expected it is likely caused by browser caching. class web_builder{ public: @@ -73,6 +75,8 @@ class web_builder{ /// @param svgs the svgs avaible for selection on the web page. /// @param order_comparator a compartor function to determine /// the display order of the svgs. + /// @note When used a debugging tool and rebuilding mutliple times, + /// if the webpage does not refresh as expected it is likely caused by browser caching. template void build(const std::filesystem::path& output_directory, const iterator_t& svgs, comparison_function order_comparator) { @@ -88,6 +92,8 @@ class web_builder{ /// @param svgs the svgs avaible for selection on the web page. /// @note uses an alpha-numeric comparator on the svgs' ids /// to determine the display order. + /// @note When used a debugging tool and rebuilding mutliple times, + /// if the webpage does not refresh as expected it is likely caused by browser caching. template void build(const std::filesystem::path& output_directory, const iterator_t& svgs) { From d2837a2e20fe4e5e82a4fbd3b3241910cf5095a8 Mon Sep 17 00:00:00 2001 From: Frederik Date: Wed, 30 Aug 2023 18:30:43 +0200 Subject: [PATCH 4/5] Added code to attempt to prevent html caching as this can be confusing when used for debugging purposes --- web/include/actsvg/web/tools/scripts/template/index.html | 3 +++ web/include/actsvg/web/webpage_text.hpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/web/include/actsvg/web/tools/scripts/template/index.html b/web/include/actsvg/web/tools/scripts/template/index.html index 7fc492b..ef5a3e2 100644 --- a/web/include/actsvg/web/tools/scripts/template/index.html +++ b/web/include/actsvg/web/tools/scripts/template/index.html @@ -2,6 +2,9 @@ + + + SVG Viewer diff --git a/web/include/actsvg/web/webpage_text.hpp b/web/include/actsvg/web/webpage_text.hpp index 960dac1..9f0c229 100644 --- a/web/include/actsvg/web/webpage_text.hpp +++ b/web/include/actsvg/web/webpage_text.hpp @@ -16,6 +16,9 @@ const std::string index_text = R"( + + + SVG Viewer From 7e15ac069f08ee2f80c0c5b97383d718335ea993 Mon Sep 17 00:00:00 2001 From: Frederik Date: Thu, 31 Aug 2023 15:08:38 +0200 Subject: [PATCH 5/5] Typo --- web/include/actsvg/web/tools/scripts/template/build-and-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/include/actsvg/web/tools/scripts/template/build-and-run.sh b/web/include/actsvg/web/tools/scripts/template/build-and-run.sh index a09eeed..7c111b9 100755 --- a/web/include/actsvg/web/tools/scripts/template/build-and-run.sh +++ b/web/include/actsvg/web/tools/scripts/template/build-and-run.sh @@ -3,7 +3,7 @@ # Change to the directory of the Bash script cd "$(dirname "$0")" -# Run the build.py script +# Run the build script python3 rebuild.py # Start the Python 3 HTTP server