|
4 | 4 | <meta http-equiv="encoding" content="utf-8" charset="utf-8"> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
6 | 6 | <meta name="description" content="VRML (Virtual Reality Modeling Language) Viewer"> |
| 7 | + <link rel="stylesheet" href="../static/css/desktop-viewers.css"> |
7 | 8 | <link rel="shortcut icon" href="../../images/favicon.ico" type="image/x-icon"/> |
8 | 9 |
|
9 | 10 | <script async src="https://cdn.jsdelivr.net/npm/es-module-shims@1.10.0/dist/es-module-shims.min.js"></script> |
|
23 | 24 | "meshoptimizer_encoder": "https://cdn.jsdelivr.net/npm/meshoptimizer@0.24.0/meshopt_encoder.module.min.js", |
24 | 25 | "meshoptimizer_simplifier": "https://cdn.jsdelivr.net/npm/meshoptimizer@0.24.0/meshopt_simplifier.module.min.js", |
25 | 26 | "ktx2-encoder": "https://esm.sh/ktx2-encoder@0.1.1", |
26 | | - "@jsquash/avif": "https://esm.sh/@jsquash/avif@2.0.0" |
| 27 | + "@jsquash/avif": "https://esm.sh/@jsquash/avif@2.1.1" |
27 | 28 | } |
28 | 29 | } |
29 | 30 | </script> |
|
83 | 84 | <script src="../static/js/omggif/omggif.min.js" defer></script> |
84 | 85 | <script src="../static/js/pako/dist/pako.min.js" defer></script> |
85 | 86 |
|
86 | | - <style> |
87 | | - body, html { |
88 | | - position: relative; |
89 | | - display: block; |
90 | | - background-color: black; |
91 | | - background-image: url( '../../images/DragonFly.webp' ), url( '../../images/DragonFly.png' ); |
92 | | - background-image: -webkit-image-set( url( '../../images/DragonFly.webp' ), url( '../../images/DragonFly.png' ) ); |
93 | | - background-position: calc(50vw - 115px) calc(50vh - 115px); |
94 | | - background-repeat: no-repeat; |
95 | | - width: 100%; |
96 | | - min-height: 100vh; |
97 | | - border: 0; |
98 | | - padding: 0; |
99 | | - margin: 0; |
100 | | - overflow: hidden; |
101 | | - } |
102 | | - |
103 | | - button { |
104 | | - background-color: #d1cefc; |
105 | | - border: 1px solid blue; |
106 | | - -webkit-border-radius: 3px; |
107 | | - border-radius: 3px; |
108 | | - vertical-align: middle; |
109 | | - margin: 2px 2px 2px 0; |
110 | | - min-width: 20px; |
111 | | - height: 22px; |
112 | | - padding: 1px; |
113 | | - } |
114 | | - |
115 | | - label { |
116 | | - vertical-align: middle; |
117 | | - white-space: nowrap; |
118 | | - margin: 2px 0 2px 0; |
119 | | - text-align: center; |
120 | | - font-size: 110%; |
121 | | - height: 22px; |
122 | | - } |
123 | | - |
124 | | - input[type=color] { |
125 | | - border: 1px solid whitesmoke; |
126 | | - vertical-align: middle; |
127 | | - margin: 0 2px 3px 2px; |
128 | | - background: none; |
129 | | - height: 18px; |
130 | | - width: 16px; |
131 | | - padding: 0; |
132 | | - } |
133 | | - |
134 | | - input[type=file] { |
135 | | - vertical-align: middle; |
136 | | - margin: 2px 0 2px 0; |
137 | | - max-width: 160px; |
138 | | - } |
139 | | - |
140 | | - input[type=radio] { |
141 | | - vertical-align: middle; |
142 | | - margin: 0 2px 0 2px; |
143 | | - } |
144 | | - |
145 | | - input[type=checkbox] { |
146 | | - margin: 0 2px 0 3px; |
147 | | - } |
148 | | - |
149 | | - input[type=range] { |
150 | | - vertical-align: middle; |
151 | | - margin: 2px 0 2px 0; |
152 | | - min-width: 30px; |
153 | | - } |
154 | | - |
155 | | - input[type=text] { |
156 | | - vertical-align: middle; |
157 | | - margin: 2px 2px 2px 0; |
158 | | - } |
159 | | - |
160 | | - .dropdown { |
161 | | - background-color: transparent; |
162 | | - vertical-align: middle; |
163 | | - display: inline-block; |
164 | | - position: relative; |
165 | | - min-width: 40px; |
166 | | - font-size: 85%; |
167 | | - color: blue; |
168 | | - border: none; |
169 | | - padding: 1px; |
170 | | - } |
171 | | - |
172 | | - .dropdown-content { |
173 | | - background-color: #FFFAD5; |
174 | | - border: 1px solid #DEAF64; |
175 | | - -webkit-border-radius: 3px; |
176 | | - border-radius: 3px; |
177 | | - position: absolute; |
178 | | - margin-top: 2px; |
179 | | - z-index: 10; |
180 | | - } |
181 | | - |
182 | | - select { |
183 | | - vertical-align: middle; |
184 | | - border: 1px solid blue; |
185 | | - -webkit-border-radius: 3px; |
186 | | - border-radius: 3px; |
187 | | - background: none; |
188 | | - min-width: 72px; |
189 | | - height: 22px; |
190 | | - color: blue; |
191 | | - } |
192 | | - |
193 | | - .gif_rectangle { |
194 | | - background-color: transparent; |
195 | | - border: 1px solid blue; |
196 | | - left: calc(50% - 252px); |
197 | | - top: calc(50% - 252px); |
198 | | - position: absolute; |
199 | | - display: none; |
200 | | - height: 500px; |
201 | | - width: 500px; |
202 | | - z-index: 1; |
203 | | - } |
204 | | - |
205 | | - .spinner { |
206 | | - position: absolute; |
207 | | - display: block; |
208 | | - background-color: transparent; |
209 | | - width: 240px; |
210 | | - height: 240px; |
211 | | - top: calc(50% - 130px); |
212 | | - left: calc(50% - 130px); |
213 | | - padding: 4px; |
214 | | - border: 6px solid blue; |
215 | | - -webkit-border-radius: 50%; |
216 | | - border-radius: 50%; |
217 | | - border-top-color: lightblue; |
218 | | - border-bottom-color: lightblue; |
219 | | - -webkit-animation: spin 8s ease-in-out infinite; |
220 | | - animation: spin 8s ease-in-out infinite; |
221 | | - } |
222 | | - |
223 | | - @-webkit-keyframes spin { to { -webkit-transform: rotate( 360deg ); } } |
224 | | - @keyframes spin { to { transform: rotate( 360deg ); } } |
225 | | - |
226 | | - .error_msg { |
227 | | - background-color: transparent; |
228 | | - position: absolute; |
229 | | - text-align: center; |
230 | | - font-size: x-large; |
231 | | - display: none; |
232 | | - color: red; |
233 | | - width: 50vw; |
234 | | - height: 50vh; |
235 | | - top: 50vh; |
236 | | - left: 25vw; |
237 | | - padding: 5px; |
238 | | - border: none; |
239 | | - } |
240 | | - |
241 | | - .loading_msg { |
242 | | - background-color: transparent; |
243 | | - color: greenyellow; |
244 | | - position: absolute; |
245 | | - text-align: center; |
246 | | - font-size: x-large; |
247 | | - display: none; |
248 | | - width: 50vw; |
249 | | - height: 50vh; |
250 | | - top: 50vh; |
251 | | - left: 25vw; |
252 | | - padding: 5px; |
253 | | - border: none; |
254 | | - } |
255 | | - |
256 | | - p.full_screen { |
257 | | - text-align: center; |
258 | | - content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAf0lEQVRIie1VQQ6AMAjb/x9M4IRePICoK7GLB5eQbElpCTAY7j6YRiUPAvvxbNMkN76XIDhSRKCdjhmB494hzzwngcoBIa/eASgisMgTBo4ODqCTAiSFrW6Biv8LfL/I1DbtfDRV9VLgjVFhZp59A4g+7JaM6yULh7IyWUYX2AAPDxz26GjX+gAAAABJRU5ErkJggg==); |
259 | | - margin: 1px 1px 1px 2px; |
260 | | - padding: 0; |
261 | | - width: 15px; |
262 | | - height: 15px; |
263 | | - } |
264 | | - |
265 | | - p.polar { |
266 | | - text-align: center; |
267 | | - content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAv0lEQVRIic2V6wqFIBCEe3PfWhDEjYIDtc7s5VjQDwkvO9/uaLqJyPZmCy0qpQhqywBPKAK6d85uLJCBfhq0Ar0gYxGKnYT0Qs+iqziEZgMQRCfUe5cJcEzUWoUF0k0EidwSRYO6EkvcjbcmtZB1WlgVIYAWZFUhnRDgn7FvAV63aHmTLcgjx5Rl8OiPhjLPXhWttSkGAnTp7MQgK02AlXnkNTOv6zHGWerxRZl4NoUfHMuG7LwLYPZkntQQYKXtSAJKMrYucd0AAAAASUVORK5CYII=); |
268 | | - margin: 1px 1px 1px 2px; |
269 | | - padding: 0; |
270 | | - width: 15px; |
271 | | - height: 15px; |
272 | | - } |
273 | | - |
274 | | - #gui_position { |
275 | | - position: absolute; |
276 | | - display: none; |
277 | | - min-width: 200px; |
278 | | - border: 1px solid navy; |
279 | | - -webkit-border-radius: 2px; |
280 | | - border-radius: 2px; |
281 | | - min-height: 22px; |
282 | | - margin-left: 2px; |
283 | | - } |
284 | | - |
285 | | - .fm { |
286 | | - color: navy; |
287 | | - width: 99%; |
288 | | - border: 1px solid navy; |
289 | | - -webkit-border-radius: 2px; |
290 | | - border-radius: 2px; |
291 | | - padding: 4px; |
292 | | - margin: 1px; |
293 | | - } |
294 | | - |
295 | | - .fixed-menu { |
296 | | - background-color: whitesmoke; |
297 | | - display: inline-block; |
298 | | - position: fixed; |
299 | | - padding: 1px; |
300 | | - width: 100%; |
301 | | - z-index: 1; |
302 | | - margin: 0; |
303 | | - } |
304 | | - |
305 | | - #progress { |
306 | | - width: 99.5%; |
307 | | - height: 2px; |
308 | | - margin-left: 3px; |
309 | | - margin-right: 3px; |
310 | | - text-align: center; |
311 | | - -webkit-appearance: none; |
312 | | - -moz-appearance: none; |
313 | | - appearance: none; |
314 | | - } |
315 | | - </style> |
316 | | - |
317 | 87 | <!-- Original OBJ source code that inspired this: https://codepen.io/Mamboleoo/pen/PqjGdN --> |
318 | 88 | <!-- Using three.js library: https://github.com/mrdoob/three.js --> |
319 | 89 | <!-- Using jQuery: https://github.com/jquery/jquery --> |
|
0 commit comments