1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Canvas3D-Dn6B10BO.js","./index-Bq2njFOY.js","./index-JtiO_h80.css","./i18n-CGlVUOvE.js","./i18n-DmEW90TJ.css","./Canvas3DGS-Ba2XF_ih.js"])))=>i.map(i=>d[i]); 2import { M as push, ab as state, ac as proxy, ad as user_effect, $ as set, Z as get, N as first_child, a as append, O as pop, ag as __vitePreload, a2 as user_derived, S as sibling, R as from_html, Q as child, T as reset, t as template_effect, a3 as comment } from './index-Bq2njFOY.js'; 3import { p as prop, i as if_block, a as set_attribute, d as bind_this } from './i18n-CGlVUOvE.js'; 4import { I as IconButton, c as component } from './ScrollFade.svelte_svelte_type_style_lang-D0JPkGar.js'; 5import './MarkdownCode.svelte_svelte_type_style_lang-B29zDiob.js'; 6import { B as BlockLabel } from './BlockLabel-VpI11pHf.js'; 7import { D as Download } from './Download-D5ZNT7uE.js'; 8import { F as File } from './File-BiXBtg1a.js'; 9import { U as Undo } from './Undo-4MCSCpCy.js'; 10import { I as IconButtonWrapper } from './IconButtonWrapper-DAsvkfJg.js'; 11import { d as dequal } from './index-DnoGeqVF.js'; 12import './snippet-BG7qkY_1.js'; 13import './prism-python-NrKIQnfs.js'; 14 15var root_2 = from_html(`<!> <a><!></a>`, 1); 16var root_1 = from_html(`<div class="model3D svelte-pnaihf" data-testid="model3d"><!> <!></div>`); 17var root = from_html(`<!> <!>`, 1); 18 19function Model3D($$anchor, $$props) { 20 push($$props, true); 21 22 let display_mode = prop($$props, 'display_mode', 3, "solid"), 23 clear_color = prop($$props, 'clear_color', 19, () => [0, 0, 0, 0]), 24 label = prop($$props, 'label', 3, ""), 25 zoom_speed = prop($$props, 'zoom_speed', 3, 1), 26 pan_speed = prop($$props, 'pan_speed', 3, 1), 27 camera_position = prop($$props, 'camera_position', 19, () => [null, null, null]), 28 has_change_history = prop($$props, 'has_change_history', 3, false); 29 30 let current_settings = state(proxy({ 31 camera_position: camera_position(), 32 zoom_speed: zoom_speed(), 33 pan_speed: pan_speed() 34 })); 35 36 let use_3dgs = state(false); 37 let Canvas3DGSComponent = state(void 0); 38 let Canvas3DComponent = state(void 0); 39 let canvas3d = state(void 0); 40 41 async function loadCanvas3D() { 42 const module = await __vitePreload(() => import('./Canvas3D-Dn6B10BO.js'),true ?__vite__mapDeps([0,1,2,3,4]):void 0,import.meta.url); 43 44 return module.default; 45 } 46 47 async function loadCanvas3DGS() { 48 const module = await __vitePreload(() => import('./Canvas3DGS-Ba2XF_ih.js'),true ?__vite__mapDeps([5,3,1,2,4]):void 0,import.meta.url); 49 50 return module.default; 51 } 52 53 user_effect(() => { 54 if ($$props.value) { 55 set(use_3dgs, $$props.value.path.endsWith(".splat") || $$props.value.path.endsWith(".ply"), true); 56 57 if (get(use_3dgs)) { 58 loadCanvas3DGS().then((component) => { 59 set(Canvas3DGSComponent, component, true); 60 }); 61 } else { 62 loadCanvas3D().then((component) => { 63 set(Canvas3DComponent, component, true); 64 }); 65 } 66 } 67 }); 68 69 function handle_undo() { 70 get(canvas3d)?.reset_camera_position(); 71 } 72 73 user_effect(() => { 74 if (!dequal(get(current_settings).camera_position, camera_position()) || get(current_settings).zoom_speed !== zoom_speed() || get(current_settings).pan_speed !== pan_speed()) { 75 get(canvas3d)?.update_camera(camera_position(), zoom_speed(), pan_speed()); 76 77 set( 78 current_settings, 79 { 80 camera_position: camera_position(), 81 zoom_speed: zoom_speed(), 82 pan_speed: pan_speed() 83 }, 84 true 85 ); 86 } 87 }); 88 89 var fragment = root(); 90 var node = first_child(fragment); 91 92 { 93 let $0 = user_derived(() => label() || $$props.i18n("3D_model.3d_model")); 94 95 BlockLabel(node, { 96 get show_label() { 97 return $$props.show_label; 98 }, 99 100 get Icon() { 101 return File; 102 }, 103 104 get label() { 105 return get($0); 106 } 107 }); 108 } 109 110 var node_1 = sibling(node, 2); 111 112 { 113 var consequent_2 = ($$anchor) => { 114 var div = root_1(); 115 var node_2 = child(div); 116 117 IconButtonWrapper(node_2, { 118 children: ($$anchor, $$slotProps) => { 119 var fragment_1 = root_2(); 120 var node_3 = first_child(fragment_1); 121 122 { 123 var consequent = ($$anchor) => { 124 { 125 let $0 = user_derived(() => !has_change_history()); 126 127 IconButton($$anchor, { 128 get Icon() { 129 return Undo; 130 }, 131 label: 'Undo', 132 onclick: () =>
132 handle_undo(), 133 get disabled() { 134 return get($0); 135 } 136 }); 137 } 138 }; 139 140 if_block(node_3, ($$render) => { 141 if (!get(use_3dgs)) $$render(consequent); 142 }); 143 } 144 145 var a = sibling(node_3, 2); 146 147 set_attribute(a, 'target', window.__is_colab__ ? "_blank" : null); 148 149 var node_4 = child(a); 150 151 { 152 let $0 = user_derived(() => $$props.i18n("common.download")); 153 154 IconButton(node_4, { 155 get Icon() { 156 return Download; 157 }, 158 159 get label() { 160 return get($0); 161 } 162 }); 163 } 164 165 reset(a); 166 167 template_effect(() => { 168 set_attribute(a, 'href', $$props.value.url); 169 set_attribute(a, 'download', window.__is_colab__ ? null : $$props.value.orig_name || $$props.value.path); 170 }); 171 172 append($$anchor, fragment_1); 173 }, 174 $$slots: { default: true } 175 }); 176 177 var node_5 = sibling(node_2, 2); 178 179 { 180 var consequent_1 = ($$anchor) => { 181 var fragment_3 = comment(); 182 var node_6 = first_child(fragment_3); 183 184 component(node_6, () => get(Canvas3DGSComponent), ($$anchor, $$component) => { 185 $$component($$anchor, { 186 get value() { 187 return $$props.value; 188 }, 189 190 get zoom_speed() { 191 return zoom_speed(); 192 }, 193 194 get pan_speed() { 195 return pan_speed(); 196 } 197 }); 198 }); 199 200 append($$anchor, fragment_3); 201 }; 202 203 var alternate = ($$anchor) => { 204 var fragment_4 = comment(); 205 var node_7 = first_child(fragment_4); 206 207 component(node_7, () => get(Canvas3DComponent), ($$anchor, $$component) => { 208 bind_this( 209 $$component($$anchor, { 210 get value() { 211 return $$props.value; 212 }, 213 214 get display_mode() { 215 return display_mode(); 216 }, 217 218 get clear_color() { 219 return clear_color(); 220 }, 221 222 get camera_position() { 223 return camera_position(); 224 }, 225 226 get zoom_speed() { 227 return zoom_speed(); 228 }, 229 230 get pan_speed() { 231 return pan_speed(); 232 } 233 }), 234 ($$value) => set(canvas3d, $$value, true), 235 () => get(canvas3d) 236 ); 237 }); 238 239 append($$anchor, fragment_4); 240 }; 241 242 if_block(node_5, ($$render) => { 243 if (get(use_3dgs)) $$render(consequent_1); else $$render(alternate, false); 244 }); 245 } 246 247 reset(div); 248 append($$anchor, div); 249 }; 250 251 if_block(node_1, ($$render) => { 252 if ($$props.value) $$render(consequent_2); 253 }); 254 } 255 256 append($$anchor, fragment); 257 pop(); 258} 259 260export { Model3D as default }; 261//# sourceMappingURL=Model3D-DJQlKi0w.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.