MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / loadModel

Function loadModel

renderer.js:970–1257  ·  view source on GitHub ↗
(filePath, options = {})

Source from the content-addressed store, hash-verified

968
969function dequeueNextRenderTask() {
970 pruneDisconnectedRenderTasks();
971 if (renderQueue.length === 0) return null;
972 if (renderQueue.length === 1) return renderQueue.shift();
973 let minIdx = 0;
974 let minP = renderQueue[0].thumbPriority ?? THUMB_PRIORITY_BACKGROUND;
975 for (let i = 1; i < renderQueue.length; i++) {
976 const p = renderQueue[i].thumbPriority ?? THUMB_PRIORITY_BACKGROUND;
977 if (p < minP) {
978 minP = p;
979 minIdx = i;
980 }
981 }
982 return renderQueue.splice(minIdx, 1)[0];
983}
984// When set during scan, any thumbnail completion (scan or grid) increments progress so bar stays in sync with visible renders
985window._scanThumbnailProgress = null;
986let activeRenders = 0;
987let isProcessingQueue = false;
988
989// Add these at the top of the file
990let isScanCancelled = false;
991let isRenderCancelled = false;
992let isBackgrounded = false;
993
994// Add these at the top with other global variables
995let RENDER_DELAY = 200; // Increase delay between renders to 200ms
996let autoStartedRendering = false;
997let thumbnailCache = new Map();
998let sharedRenderer = null;
999let renderContext = null;
1000
1001// Inverted filter state - tracks which filters are inverted (NOT equal instead of equal)
1002let invertedFilters = window.invertedFilters || {
1003 tag: false,
1004 designer: false,
1005 license: false,
1006 parentModel: false,
1007 search: false
1008};
1009// Ensure search flag exists if window.invertedFilters was created earlier without it
1010if (invertedFilters.search === undefined) {
1011 invertedFilters.search = false;
1012}
1013// Expose inverted filters globally so search.js can read the state (keep the same object reference)
1014window.invertedFilters = invertedFilters;
1015
1016// Define loadModel function at top level so it's available immediately (before DOMContentLoaded)
1017// Helper function to parse zip path format
1018function parseZipPath(filePath) {
1019 if (filePath.includes('::')) {
1020 const [zipPath, entryPath] = filePath.split('::');
1021 return { zipPath, entryPath, isZipEntry: true };
1022 }
1023 return { zipPath: filePath, entryPath: null, isZipEntry: false };
1024}
1025
1026// Helper function to get model color based on settings
1027function getModelColor() {

Callers 1

renderSTLThumbnailFunction · 0.85

Calls 2

getModelColorFunction · 0.85
parseZipPathFunction · 0.70

Tested by

no test coverage detected