File size: 3,473 Bytes
3b6bb5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Personnalisation</title>
</head>
<body class="bg-bg text-textDark font-sans">
    <div id="dashboard-layout" class="flex flex-col h-screen">
        <div id="content" class="flex flex-col flex-1 p-6">
            <!-- Error Message -->
            <div id="error" class="hidden text-red-600"></div>

            <!-- Viewspace Container -->
            <div id="viewspacecontainer" class="bg-white p-6 rounded-lg shadow-md">
                <div class="view aspect-w-16 aspect-h-9 rounded-xl border border-yellow-300 bg-gray-100 flex items-center justify-center">
                    <!-- Loading Animation -->
                    <div id="Loading" class="absolute">
                        <h4 class="text-lg font-bold text-gray-700">
                            <span id="image-progress">Loading images: 0/?</span>
                        </h4>
                    </div>
                    <!-- Benchmark Stats -->
                    <textarea readonly id="benchmark-stats" rows="10" cols="40" 
                              class="absolute top-4 left-4 border rounded p-2 text-gray-600 bg-white shadow">
                        Click me to start benchmarking when the frame-rate is behaving reasonably.
                    </textarea>
                    <!-- Loading Indicators -->
                    <div id="loading-container" class="absolute flex space-x-4">
                        <div id="topleft" class="loading-bgbox w-8 h-8 bg-gray-300 rounded-full"></div>
                        <div id="bottomleft" class="loading-bgbox w-8 h-8 bg-gray-300 rounded-full"></div>
                        <div id="topright" class="loading-bgbox w-8 h-8 bg-gray-300 rounded-full"></div>
                        <div id="bottomright" class="loading-bgbox w-8 h-8 bg-gray-300 rounded-full"></div>
                        <div id="loading-indicator" class="w-8 h-8 bg-gray-500 rounded-full animate-spin"></div>
                    </div>
                    <!-- Viewer Canvas -->
                    <canvas id="viewerCanvas" class="w-full h-full rounded-xl"></canvas>
                </div>
            </div>

        </div>
    </div>

    <script>
        const scriptsToLoad = [
            'https://unpkg.com/three@0.113.1/build/three.js',
            'https://unpkg.com/three@0.113.1/examples/js/controls/OrbitControls.js',
            'https://unpkg.com/three@0.113.1/examples/js/controls/PointerLockControls.js',
            'https://unpkg.com/three@0.113.1/examples/js/controls/TransformControls.js',
            'https://unpkg.com/stats-js@1.0.1/build/stats.min.js',
            'https://cdn.jsdelivr.net/npm/ccapture.js@1.0.9/build/CCapture.all.min.js',
            'https://unpkg.com/file-saver@2.0.0-rc.2/dist/FileSaver.min.js',
            'combined.min.js',
        ];

        async function loadScriptsInOrder(scripts) {
            for (const script of scripts) {
                await new Promise((resolve, reject) => {
                    const scriptEl = document.createElement('script');
                    scriptEl.src = script;
                    scriptEl.onload = resolve;
                    scriptEl.onerror = reject;
                    document.body.appendChild(scriptEl);
                });
            }
        }

        loadScriptsInOrder(scriptsToLoad);
    </script>
</body>
</html>