mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-03 04:31:58 +00:00
Resolve 47 merge conflicts from merging main into the on-demand extension loading branch. Key decisions: - Accept main's maskeditor cleanup (composables+stores architecture) - Keep branch's glob+dispatch on-demand loading in core/index.ts - Port main's new load3d features (constants, FastPLYLoader, Asset Browser button) into branch's extensions/ directory structure - Combine main's async settings loading with branch's processExtensionSettings callback - Inject on-demand widget loading into main's standalone functions in litegraphService.ts - Fix import paths for files referencing old load3d/maskeditor paths - Allow processExtensionSettings worker re-registration for test compatibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
74 lines
1.7 KiB
Vue
74 lines
1.7 KiB
Vue
<template>
|
|
<div class="space-y-4">
|
|
<div>
|
|
<label>{{ $t('load3d.upDirection') }}</label>
|
|
<Select
|
|
v-model="upDirection"
|
|
:options="upDirectionOptions"
|
|
option-label="label"
|
|
option-value="value"
|
|
/>
|
|
</div>
|
|
|
|
<div v-if="!hideMaterialMode">
|
|
<label>{{ $t('load3d.materialMode') }}</label>
|
|
<Select
|
|
v-model="materialMode"
|
|
:options="materialModeOptions"
|
|
option-label="label"
|
|
option-value="value"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import Select from 'primevue/select'
|
|
import { computed } from 'vue'
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
import type {
|
|
MaterialMode,
|
|
UpDirection
|
|
} from '@/extensions/core/extensions/load3d/interfaces'
|
|
|
|
const { t } = useI18n()
|
|
const { hideMaterialMode = false, isPlyModel = false } = defineProps<{
|
|
hideMaterialMode?: boolean
|
|
isPlyModel?: boolean
|
|
}>()
|
|
|
|
const upDirection = defineModel<UpDirection>('upDirection')
|
|
const materialMode = defineModel<MaterialMode>('materialMode')
|
|
|
|
const upDirectionOptions = [
|
|
{ label: t('load3d.upDirections.original'), value: 'original' },
|
|
{ label: '-X', value: '-x' },
|
|
{ label: '+X', value: '+x' },
|
|
{ label: '-Y', value: '-y' },
|
|
{ label: '+Y', value: '+y' },
|
|
{ label: '-Z', value: '-z' },
|
|
{ label: '+Z', value: '+z' }
|
|
]
|
|
|
|
const materialModeOptions = computed(() => {
|
|
const options = [
|
|
{ label: t('load3d.materialModes.original'), value: 'original' }
|
|
]
|
|
|
|
if (isPlyModel) {
|
|
options.push({
|
|
label: t('load3d.materialModes.pointCloud'),
|
|
value: 'pointCloud'
|
|
})
|
|
}
|
|
|
|
options.push(
|
|
{ label: t('load3d.materialModes.normal'), value: 'normal' },
|
|
{ label: t('load3d.materialModes.wireframe'), value: 'wireframe' }
|
|
)
|
|
|
|
return options
|
|
})
|
|
</script>
|