@vyr/three-browser 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/package.json +25 -0
  2. package/src/common/index.ts +2 -0
  3. package/src/common/provider.ts +14 -0
  4. package/src/common/validate.ts +10 -0
  5. package/src/fragment/GeoMapFragment.vue +129 -0
  6. package/src/fragment/InstancedMeshFragment.vue +29 -0
  7. package/src/fragment/MeshFragment.vue +98 -0
  8. package/src/fragment/ModelFragment.vue +28 -0
  9. package/src/fragment/NodeFragment.vue +93 -0
  10. package/src/fragment/ParticleFragment.vue +147 -0
  11. package/src/fragment/PointsFragment.vue +34 -0
  12. package/src/fragment/SpriteFragment.vue +38 -0
  13. package/src/fragment/TextFragment.vue +98 -0
  14. package/src/fragment/animation/AnimationActionFragment.vue +110 -0
  15. package/src/fragment/geometry/BoxGeometryFragment.vue +44 -0
  16. package/src/fragment/geometry/BufferGeometryFragment.vue +26 -0
  17. package/src/fragment/geometry/CircleGeometryFragment.vue +35 -0
  18. package/src/fragment/geometry/CylinderGeometryFragment.vue +60 -0
  19. package/src/fragment/geometry/ExtrudeGeometryFragment.vue +111 -0
  20. package/src/fragment/geometry/PlaneGeometryFragment.vue +35 -0
  21. package/src/fragment/geometry/RingGeometryFragment.vue +45 -0
  22. package/src/fragment/geometry/SphereGeometryFragment.vue +51 -0
  23. package/src/fragment/geometry/SurfaceGeometryFragment.vue +18 -0
  24. package/src/fragment/geometry/TubeGeometryFragment.vue +65 -0
  25. package/src/fragment/light/AmbientLightFragment.vue +27 -0
  26. package/src/fragment/light/DirectionalLightFragment.vue +86 -0
  27. package/src/fragment/light/HemisphereLightFragment.vue +34 -0
  28. package/src/fragment/light/PointLightFragment.vue +68 -0
  29. package/src/fragment/light/RectAreaLightFragment.vue +48 -0
  30. package/src/fragment/light/SpotLightFragment.vue +96 -0
  31. package/src/fragment/material/MaterialFragment.vue +53 -0
  32. package/src/fragment/material/MeshBasicMaterialFragment.vue +126 -0
  33. package/src/fragment/material/MeshPhongMaterialFragment.vue +263 -0
  34. package/src/fragment/material/MeshStandardMaterialFragment.vue +256 -0
  35. package/src/fragment/material/PointsMaterialFragment.vue +81 -0
  36. package/src/fragment/material/ShaderMaterialFragment.vue +61 -0
  37. package/src/fragment/material/ShadowMaterialFragment.vue +49 -0
  38. package/src/fragment/material/SpriteMaterialFragment.vue +79 -0
  39. package/src/fragment/texture/TextureFragment.vue +131 -0
  40. package/src/index.ts +4 -0
  41. package/src/locale/Language.ts +10 -0
  42. package/src/locale/LanguageProvider.ts +655 -0
  43. package/src/locale/index.ts +2 -0
  44. package/src/option/Animation.ts +17 -0
  45. package/src/option/Geometry.ts +22 -0
  46. package/src/option/Material.ts +42 -0
  47. package/src/option/Mesh.ts +10 -0
  48. package/src/option/Shadow.ts +18 -0
  49. package/src/option/Texture.ts +55 -0
  50. package/src/option/index.ts +6 -0
  51. package/src/service/footer/action/geometry/index.ts +73 -0
  52. package/src/service/footer/action/index.ts +9 -0
  53. package/src/service/footer/action/material/index.ts +70 -0
  54. package/src/service/footer/action/texture/index.ts +63 -0
  55. package/src/service/global/index.ts +1 -0
  56. package/src/service/global/scripts/index.ts +12 -0
  57. package/src/service/index.ts +79 -0
  58. package/src/service/inspector/GeoMapViewer.vue +32 -0
  59. package/src/service/inspector/HTMLConvertViewer.vue +31 -0
  60. package/src/service/inspector/InstanceMeshViewer.vue +33 -0
  61. package/src/service/inspector/MeshViewer.vue +33 -0
  62. package/src/service/inspector/ModelViewer.vue +34 -0
  63. package/src/service/inspector/NodeViewer.vue +30 -0
  64. package/src/service/inspector/ParticleViewer.vue +37 -0
  65. package/src/service/inspector/PerspectiveCameraViewer.vue +62 -0
  66. package/src/service/inspector/PointsViewer.vue +33 -0
  67. package/src/service/inspector/ServiceViewer.vue +92 -0
  68. package/src/service/inspector/SpriteViewer.vue +34 -0
  69. package/src/service/inspector/TextViewer.vue +34 -0
  70. package/src/service/inspector/animation/AnimationActionViewer.vue +31 -0
  71. package/src/service/inspector/geometry/BoxGeometryViewer.vue +32 -0
  72. package/src/service/inspector/geometry/BufferGeometryViewer.vue +33 -0
  73. package/src/service/inspector/geometry/CircleGeometryViewer.vue +32 -0
  74. package/src/service/inspector/geometry/CylinderGeometryViewer.vue +32 -0
  75. package/src/service/inspector/geometry/ExtrudeGeometryViewer.vue +32 -0
  76. package/src/service/inspector/geometry/PlaneGeometryViewer.vue +32 -0
  77. package/src/service/inspector/geometry/RingGeometryViewer.vue +32 -0
  78. package/src/service/inspector/geometry/SphereGeometryViewer.vue +32 -0
  79. package/src/service/inspector/geometry/SurfaceGeometryViewer.vue +32 -0
  80. package/src/service/inspector/geometry/TubeGeometryViewer.vue +32 -0
  81. package/src/service/inspector/index.ts +50 -0
  82. package/src/service/inspector/light/AmbientLightViewer.vue +33 -0
  83. package/src/service/inspector/light/DirectionalLightViewer.vue +33 -0
  84. package/src/service/inspector/light/HemisphereLightViewer.vue +33 -0
  85. package/src/service/inspector/light/PointLightViewer.vue +33 -0
  86. package/src/service/inspector/light/RectAreaLightViewer.vue +33 -0
  87. package/src/service/inspector/light/SpotLightViewer.vue +33 -0
  88. package/src/service/inspector/material/MeshBasicMaterialViewer.vue +34 -0
  89. package/src/service/inspector/material/MeshPhongMaterialViewer.vue +34 -0
  90. package/src/service/inspector/material/MeshStandardMaterialViewer.vue +34 -0
  91. package/src/service/inspector/material/PointsMaterialViewer.vue +33 -0
  92. package/src/service/inspector/material/ShaderMaterialViewer.vue +34 -0
  93. package/src/service/inspector/material/ShadowMaterialViewer.vue +34 -0
  94. package/src/service/inspector/material/SpriteMaterialViewer.vue +34 -0
  95. package/src/service/inspector/texture/TextureViewer.vue +32 -0
  96. package/src/service/sidebar/asset/action/AddAnimationAction.ts +66 -0
  97. package/src/service/sidebar/asset/action/AddLightAction.ts +66 -0
  98. package/src/service/sidebar/asset/action/index.ts +7 -0
  99. package/src/service/sidebar/scene/action/AddAnimationAction.ts +64 -0
  100. package/src/service/sidebar/scene/action/AddLightAction.ts +66 -0
  101. package/src/service/sidebar/scene/action/index.ts +7 -0
  102. package/src/shims-vue.d.ts +10 -0
@@ -0,0 +1,98 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Node.material')">
4
+ <vyr-col>
5
+ <vyr-input v-model="descriptor.material" :clearable="true" dragkey="material" :draggable="draggable"
6
+ trigger="blur"></vyr-input>
7
+ </vyr-col>
8
+ </vyr-label>
9
+ </vyr-row>
10
+ <vyr-row>
11
+ <vyr-label :label="language.get('inspector.Text.font')">
12
+ <vyr-col>
13
+ <vyr-input v-model="descriptor.font" :clearable="true" :draggable="draggable" trigger="blur"
14
+ dragkey="font"></vyr-input>
15
+ </vyr-col>
16
+ </vyr-label>
17
+ </vyr-row>
18
+ <vyr-row>
19
+ <vyr-label :label="language.get('inspector.Text.size')">
20
+ <vyr-col>
21
+ <vyr-input-number v-model="descriptor.size" :allow-null="false"></vyr-input-number>
22
+ </vyr-col>
23
+ </vyr-label>
24
+ </vyr-row>
25
+ <vyr-row>
26
+ <vyr-label :label="language.get('inspector.Text.maxWidth')">
27
+ <vyr-col>
28
+ <vyr-input-number v-model="descriptor.maxWidth" :allow-null="false"></vyr-input-number>
29
+ </vyr-col>
30
+ </vyr-label>
31
+ </vyr-row>
32
+ <vyr-row>
33
+ <vyr-label :label="language.get('inspector.Text.lineHeight')">
34
+ <vyr-col>
35
+ <vyr-input-number v-model="descriptor.lineHeight" :allow-null="false"></vyr-input-number>
36
+ </vyr-col>
37
+ </vyr-label>
38
+ </vyr-row>
39
+ <vyr-row>
40
+ <vyr-label :label="language.get('inspector.Text.letterSpacing')">
41
+ <vyr-col>
42
+ <vyr-input-number v-model="descriptor.letterSpacing" :allow-null="false"></vyr-input-number>
43
+ </vyr-col>
44
+ </vyr-label>
45
+ </vyr-row>
46
+ <vyr-row>
47
+ <vyr-label :label="language.get('inspector.Text.text')">
48
+ <vyr-col>
49
+ <vyr-input v-model="descriptor.text" trigger="blur"></vyr-input>
50
+ </vyr-col>
51
+ </vyr-label>
52
+ </vyr-row>
53
+ <vyr-row>
54
+ <vyr-label :label="language.get('inspector.Geometry.depth')">
55
+ <vyr-col>
56
+ <vyr-input-number v-model="descriptor.depth" :allow-null="false"></vyr-input-number>
57
+ </vyr-col>
58
+ </vyr-label>
59
+ </vyr-row>
60
+ <vyr-row>
61
+ <vyr-label :label="language.get('inspector.Geometry.flattenUVsToPlane')">
62
+ <vyr-col>
63
+ <vyr-select v-model="descriptor.flattenUVsToPlane" :data="Geometry.extrudeUvOptions"></vyr-select>
64
+ </vyr-col>
65
+ </vyr-label>
66
+ </vyr-row>
67
+ <vyr-row>
68
+ <vyr-label :label="language.get('inspector.Geometry.curveSegments')">
69
+ <vyr-col>
70
+ <vyr-input-number v-model="descriptor.curveSegments" :allow-null="false"></vyr-input-number>
71
+ </vyr-col>
72
+ </vyr-label>
73
+ </vyr-row>
74
+ <vyr-row>
75
+ <vyr-label :label="language.get('inspector.Geometry.steps')">
76
+ <vyr-col>
77
+ <vyr-input-number v-model="descriptor.steps" :allow-null="false"></vyr-input-number>
78
+ </vyr-col>
79
+ </vyr-label>
80
+ </vyr-row>
81
+ </template>
82
+
83
+ <script lang="ts" setup>
84
+ import { computed } from 'vue'
85
+ import { DraggableService, runtime } from '@vyr/runtime';
86
+ import { TextDescriptor } from '@vyr/three';
87
+ import { VyrInput, VyrInputNumber, VyrRow, VyrCol, VyrLabel, VyrSelect } from '@vyr/design';
88
+ import { language } from '../locale'
89
+ import { useDescriptor } from '../common';
90
+ import { Geometry } from '../option';
91
+
92
+ const descriptor = useDescriptor<TextDescriptor>()
93
+
94
+ const draggableService = runtime.get<DraggableService>('draggable')
95
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
96
+ </script>
97
+
98
+ <style lang="less" scoped></style>
@@ -0,0 +1,110 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.AnimationAction.clip')">
4
+ <vyr-col>
5
+ <vyr-select v-model="descriptor.clip" :data="animationOptions" :clearable="true"></vyr-select>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.AnimationAction.play')">
11
+ <vyr-col>
12
+ <vyr-select v-model="descriptor.play" :data="option.Animation.playOptions"></vyr-select>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.AnimationAction.enabled')">
18
+ <vyr-col>
19
+ <vyr-select v-model="descriptor.enabled" :data="option.Animation.stateOptions"></vyr-select>
20
+ </vyr-col>
21
+ </vyr-label>
22
+ </vyr-row>
23
+ <vyr-row>
24
+ <vyr-label :label="language.get('inspector.AnimationAction.duration')">
25
+ <vyr-col>
26
+ <vyr-input-number v-model="descriptor.duration" :allow-null="false"></vyr-input-number>
27
+ </vyr-col>
28
+ </vyr-label>
29
+ </vyr-row>
30
+ <vyr-row>
31
+ <vyr-label :label="language.get('inspector.AnimationAction.startTime')">
32
+ <vyr-col>
33
+ <vyr-input-number v-model="descriptor.startTime" :allow-null="false"></vyr-input-number>
34
+ </vyr-col>
35
+ </vyr-label>
36
+ </vyr-row>
37
+ <vyr-row>
38
+ <vyr-label :label="language.get('inspector.AnimationAction.weight')">
39
+ <vyr-col>
40
+ <vyr-input-number v-model="descriptor.weight" :allow-null="false"></vyr-input-number>
41
+ </vyr-col>
42
+ </vyr-label>
43
+ </vyr-row>
44
+ <vyr-row>
45
+ <vyr-label :label="language.get('inspector.AnimationAction.repetitions')">
46
+ <vyr-col>
47
+ <vyr-input-number v-model="descriptor.repetitions" :allow-null="false"></vyr-input-number>
48
+ </vyr-col>
49
+ </vyr-label>
50
+ </vyr-row>
51
+ <vyr-row>
52
+ <vyr-label :label="language.get('inspector.AnimationAction.loop')">
53
+ <vyr-col>
54
+ <vyr-select v-model="descriptor.loop" :data="Animation.loopOptions"></vyr-select>
55
+ </vyr-col>
56
+ </vyr-label>
57
+ </vyr-row>
58
+ <vyr-row>
59
+ <vyr-label :label="language.get('inspector.AnimationAction.blendMode')">
60
+ <vyr-col>
61
+ <vyr-select v-model="descriptor.blendMode" :data="Animation.blendModeOptions"></vyr-select>
62
+ </vyr-col>
63
+ </vyr-label>
64
+ </vyr-row>
65
+ <vyr-row>
66
+ <vyr-label :label="language.get('inspector.AnimationAction.zeroSlopeAtStart')">
67
+ <vyr-col>
68
+ <vyr-select v-model="descriptor.zeroSlopeAtStart"
69
+ :data="option.Animation.zeroSlopeAtStartOptions"></vyr-select>
70
+ </vyr-col>
71
+ </vyr-label>
72
+ </vyr-row>
73
+ <vyr-row>
74
+ <vyr-label :label="language.get('inspector.AnimationAction.zeroSlopeAtEnd')">
75
+ <vyr-col>
76
+ <vyr-select v-model="descriptor.zeroSlopeAtEnd"
77
+ :data="option.Animation.zeroSlopeAtEndOptions"></vyr-select>
78
+ </vyr-col>
79
+ </vyr-label>
80
+ </vyr-row>
81
+ </template>
82
+
83
+
84
+ <script lang="ts" setup>
85
+ import { computed } from 'vue';
86
+ import { DataService, runtime } from '@vyr/runtime';
87
+ import { AnimationActionDescriptor } from '@vyr/three';
88
+ import { option } from '@vyr/builtin'
89
+ import { VyrRow, VyrCol, VyrLabel, VyrInputNumber, VyrSelect } from '@vyr/design';
90
+ import { language } from '../../locale'
91
+ import { useDescriptor } from '../../common';
92
+ import { Animation } from '../../option'
93
+
94
+ const props = defineProps<{ raw: string }>()
95
+ const descriptor = useDescriptor<AnimationActionDescriptor>()
96
+ const dataService = runtime.get<DataService>('data')
97
+
98
+ const animationOptions = computed(() => {
99
+ const raw = AnimationActionDescriptor.get<AnimationActionDescriptor>(props.raw)
100
+ if (raw === null) return []
101
+ const { parent } = raw.traceAncestor(false)
102
+ if (parent === null) return []
103
+
104
+ const animations = dataService.inspector.animations[parent.uuid] ?? []
105
+ return animations.map(item => ({ label: item, value: item }))
106
+ })
107
+
108
+ </script>
109
+
110
+ <style lang="less" scoped></style>
@@ -0,0 +1,44 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.width')">
4
+ <vyr-col :span="12">
5
+ <vyr-input-number v-model="descriptor.width" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ <vyr-col :span="12">
8
+ <vyr-input-number v-model="descriptor.widthSegments" :allow-null="false"></vyr-input-number>
9
+ </vyr-col>
10
+ </vyr-label>
11
+ </vyr-row>
12
+ <vyr-row>
13
+ <vyr-label :label="language.get('inspector.Geometry.height')">
14
+ <vyr-col :span="12">
15
+ <vyr-input-number v-model="descriptor.height" :allow-null="false"></vyr-input-number>
16
+ </vyr-col>
17
+ <vyr-col :span="12">
18
+ <vyr-input-number v-model="descriptor.heightSegments" :allow-null="false"></vyr-input-number>
19
+ </vyr-col>
20
+ </vyr-label>
21
+ </vyr-row>
22
+ <vyr-row>
23
+ <vyr-label :label="language.get('inspector.Geometry.depth')">
24
+ <vyr-col :span="12">
25
+ <vyr-input-number v-model="descriptor.depth" :allow-null="false"></vyr-input-number>
26
+ </vyr-col>
27
+ <vyr-col :span="12">
28
+ <vyr-input-number v-model="descriptor.depthSegments" :allow-null="false"></vyr-input-number>
29
+ </vyr-col>
30
+ </vyr-label>
31
+ </vyr-row>
32
+ </template>
33
+
34
+
35
+ <script lang="ts" setup>
36
+ import { BoxGeometryDescriptor } from '@vyr/three';
37
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
38
+ import { language } from '../../locale'
39
+ import { useDescriptor } from '../../common';
40
+
41
+ const descriptor = useDescriptor<BoxGeometryDescriptor>()
42
+ </script>
43
+
44
+ <style lang="less" scoped></style>
@@ -0,0 +1,26 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.BufferGeometry.buffer')">
4
+ <vyr-col>
5
+ <vyr-input v-model="descriptor.buffer" :clearable="true" :draggable="draggable" trigger="blur"
6
+ dragkey="buffer"></vyr-input>
7
+ </vyr-col>
8
+ </vyr-label>
9
+ </vyr-row>
10
+ </template>
11
+
12
+ <script lang="ts" setup>
13
+ import { computed } from 'vue';
14
+ import { DraggableService, runtime } from '@vyr/runtime';
15
+ import { BufferGeometryDescriptor } from '@vyr/three';
16
+ import { VyrInput, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
17
+ import { language } from '../../locale'
18
+ import { useDescriptor } from '../../common';
19
+
20
+ const descriptor = useDescriptor<BufferGeometryDescriptor>()
21
+
22
+ const draggableService = runtime.get<DraggableService>('draggable')
23
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
24
+ </script>
25
+
26
+ <style lang="less" scoped></style>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
4
+ <vyr-col :span="12">
5
+ <vyr-input-number v-model="descriptor.radius" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ <vyr-col :span="12">
8
+ <vyr-input-number v-model="descriptor.segments" :allow-null="false"></vyr-input-number>
9
+ </vyr-col>
10
+
11
+ </vyr-label>
12
+ </vyr-row>
13
+ <vyr-row>
14
+ <vyr-label :label="language.get('inspector.CircleGeometry.theta')">
15
+ <vyr-col :span="12">
16
+ <vyr-input-number v-model="descriptor.thetaStart" :allow-null="false"></vyr-input-number>
17
+ </vyr-col>
18
+ <vyr-col :span="12">
19
+ <vyr-input-number v-model="descriptor.thetaLength" :allow-null="false"></vyr-input-number>
20
+ </vyr-col>
21
+ </vyr-label>
22
+ </vyr-row>
23
+ </template>
24
+
25
+
26
+ <script lang="ts" setup>
27
+ import { CircleGeometryDescriptor } from '@vyr/three';
28
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
29
+ import { language } from '../../locale'
30
+ import { useDescriptor } from '../../common';
31
+
32
+ const descriptor = useDescriptor<CircleGeometryDescriptor>()
33
+ </script>
34
+
35
+ <style lang="less" scoped></style>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.height')">
4
+ <vyr-col>
5
+ <vyr-input-number v-model="descriptor.height" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
11
+ <vyr-col :span="12">
12
+ <vyr-input-number v-model="descriptor.radiusTop" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ <vyr-col :span="12">
15
+ <vyr-input-number v-model="descriptor.radiusBottom" :allow-null="false"></vyr-input-number>
16
+ </vyr-col>
17
+
18
+ </vyr-label>
19
+ </vyr-row>
20
+ <vyr-row>
21
+ <vyr-label :label="language.get('inspector.CylinderGeometry.radial')">
22
+ <vyr-col :span="12">
23
+ <vyr-input-number v-model="descriptor.radialSegments" :allow-null="false"></vyr-input-number>
24
+ </vyr-col>
25
+ <vyr-col :span="12">
26
+ <vyr-input-number v-model="descriptor.heightSegments" :allow-null="false"></vyr-input-number>
27
+ </vyr-col>
28
+ </vyr-label>
29
+ </vyr-row>
30
+ <vyr-row>
31
+ <vyr-label :label="language.get('inspector.CylinderGeometry.theta')">
32
+ <vyr-col :span="12">
33
+ <vyr-input-number v-model="descriptor.thetaStart" :allow-null="false"></vyr-input-number>
34
+ </vyr-col>
35
+ <vyr-col :span="12">
36
+ <vyr-input-number v-model="descriptor.thetaLength" :allow-null="false"></vyr-input-number>
37
+ </vyr-col>
38
+ </vyr-label>
39
+ </vyr-row>
40
+ <vyr-row>
41
+ <vyr-label :label="language.get('inspector.CylinderGeometry.openEnded')">
42
+ <vyr-col>
43
+ <vyr-select v-model="descriptor.openEnded" :data="Geometry.cylinderOptions"></vyr-select>
44
+ </vyr-col>
45
+ </vyr-label>
46
+ </vyr-row>
47
+ </template>
48
+
49
+
50
+ <script lang="ts" setup>
51
+ import { CylinderGeometryDescriptor } from '@vyr/three';
52
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel, VyrSelect } from '@vyr/design';
53
+ import { language } from '../../locale'
54
+ import { useDescriptor } from '../../common';
55
+ import { Geometry } from '../../option';
56
+
57
+ const descriptor = useDescriptor<CylinderGeometryDescriptor>()
58
+ </script>
59
+
60
+ <style lang="less" scoped></style>
@@ -0,0 +1,111 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.shapes')">
4
+ <vyr-col>
5
+ <vyr-input v-model="descriptor.shapes" :clearable="true" :draggable="draggable" trigger="blur"
6
+ dragkey="shapes"></vyr-input>
7
+ </vyr-col>
8
+ </vyr-label>
9
+ </vyr-row>
10
+ <vyr-row v-if="$slots.radius">
11
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
12
+ <vyr-col>
13
+ <slot name="radius"></slot>
14
+ </vyr-col>
15
+ </vyr-label>
16
+ </vyr-row>
17
+ <slot></slot>
18
+ <vyr-row>
19
+ <vyr-label :label="language.get('inspector.Geometry.depth')">
20
+ <vyr-col>
21
+ <vyr-input-number v-model="descriptor.depth" :allow-null="false"></vyr-input-number>
22
+ </vyr-col>
23
+ </vyr-label>
24
+ </vyr-row>
25
+ <vyr-row>
26
+ <vyr-label :label="language.get('inspector.Geometry.offset')">
27
+ <vyr-col :span="12">
28
+ <vyr-input-number v-model="descriptor.offset.x" :allow-null="false"></vyr-input-number>
29
+ </vyr-col>
30
+ <vyr-col :span="12">
31
+ <vyr-input-number v-model="descriptor.offset.y" :allow-null="false"></vyr-input-number>
32
+ </vyr-col>
33
+ </vyr-label>
34
+ </vyr-row>
35
+ <vyr-row>
36
+ <vyr-label :label="language.get('inspector.Geometry.flattenUVsToPlane')">
37
+ <vyr-col>
38
+ <vyr-select v-model="descriptor.flattenUVsToPlane" :data="Geometry.extrudeUvOptions"></vyr-select>
39
+ </vyr-col>
40
+ </vyr-label>
41
+ </vyr-row>
42
+ <vyr-row>
43
+ <vyr-label :label="language.get('inspector.Geometry.curveSegments')">
44
+ <vyr-col>
45
+ <vyr-input-number v-model="descriptor.curveSegments" :allow-null="false"></vyr-input-number>
46
+ </vyr-col>
47
+ </vyr-label>
48
+ </vyr-row>
49
+ <vyr-row>
50
+ <vyr-label :label="language.get('inspector.Geometry.steps')">
51
+ <vyr-col>
52
+ <vyr-input-number v-model="descriptor.steps" :allow-null="false"></vyr-input-number>
53
+ </vyr-col>
54
+ </vyr-label>
55
+ </vyr-row>
56
+ <vyr-row>
57
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.bevelEnabled')">
58
+ <vyr-col>
59
+ <vyr-select v-model="descriptor.bevelEnabled" :data="option.stateOptions"></vyr-select>
60
+ </vyr-col>
61
+ </vyr-label>
62
+ </vyr-row>
63
+ <template v-if="descriptor.bevelEnabled">
64
+ <vyr-row>
65
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.bevelThickness')">
66
+ <vyr-col>
67
+ <vyr-input-number v-model="descriptor.bevelThickness" :allow-null="false"></vyr-input-number>
68
+ </vyr-col>
69
+ </vyr-label>
70
+ </vyr-row>
71
+ <vyr-row>
72
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.bevelSegments')">
73
+ <vyr-col>
74
+ <vyr-input-number v-model="descriptor.bevelSegments" :allow-null="false"></vyr-input-number>
75
+ </vyr-col>
76
+ </vyr-label>
77
+ </vyr-row>
78
+ <vyr-row>
79
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.bevelSize')">
80
+ <vyr-col>
81
+ <vyr-input-number v-model="descriptor.bevelSize" :allow-null="false"></vyr-input-number>
82
+ </vyr-col>
83
+ </vyr-label>
84
+ </vyr-row>
85
+ <vyr-row>
86
+ <vyr-label :label="language.get('inspector.ExtrudeGeometry.bevelOffset')">
87
+ <vyr-col>
88
+ <vyr-input-number v-model="descriptor.bevelOffset" :allow-null="false"></vyr-input-number>
89
+ </vyr-col>
90
+ </vyr-label>
91
+ </vyr-row>
92
+ </template>
93
+ </template>
94
+
95
+ <script lang="ts" setup>
96
+ import { computed } from 'vue'
97
+ import { DraggableService, runtime } from '@vyr/runtime';
98
+ import { ExtrudeGeometryDescriptor } from '@vyr/three';
99
+ import { option } from '@vyr/builtin'
100
+ import { VyrInput, VyrInputNumber, VyrRow, VyrCol, VyrLabel, VyrSelect } from '@vyr/design';
101
+ import { language } from '../../locale'
102
+ import { useDescriptor } from '../../common';
103
+ import { Geometry } from '../../option';
104
+
105
+ const descriptor = useDescriptor<ExtrudeGeometryDescriptor>()
106
+
107
+ const draggableService = runtime.get<DraggableService>('draggable')
108
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
109
+ </script>
110
+
111
+ <style lang="less" scoped></style>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.width')">
4
+ <vyr-col :span="12">
5
+ <vyr-input-number v-model="descriptor.width" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ <vyr-col :span="12">
8
+ <vyr-input-number v-model="descriptor.widthSegments" :allow-null="false"></vyr-input-number>
9
+ </vyr-col>
10
+
11
+ </vyr-label>
12
+ </vyr-row>
13
+ <vyr-row>
14
+ <vyr-label :label="language.get('inspector.Geometry.height')">
15
+ <vyr-col :span="12">
16
+ <vyr-input-number v-model="descriptor.height" :allow-null="false"></vyr-input-number>
17
+ </vyr-col>
18
+ <vyr-col :span="12">
19
+ <vyr-input-number v-model="descriptor.heightSegments" :allow-null="false"></vyr-input-number>
20
+ </vyr-col>
21
+ </vyr-label>
22
+ </vyr-row>
23
+ </template>
24
+
25
+
26
+ <script lang="ts" setup>
27
+ import { PlaneGeometryDescriptor } from '@vyr/three';
28
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
29
+ import { language } from '../../locale'
30
+ import { useDescriptor } from '../../common';
31
+
32
+ const descriptor = useDescriptor<PlaneGeometryDescriptor>()
33
+ </script>
34
+
35
+ <style lang="less" scoped></style>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
4
+ <vyr-col :span="12">
5
+ <vyr-input-number v-model="descriptor.innerRadius" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ <vyr-col :span="12">
8
+ <vyr-input-number v-model="descriptor.outerRadius" :allow-null="false"></vyr-input-number>
9
+ </vyr-col>
10
+
11
+ </vyr-label>
12
+ </vyr-row>
13
+ <vyr-row>
14
+ <vyr-label :label="language.get('inspector.RingGeometry.sgments')">
15
+ <vyr-col :span="12">
16
+ <vyr-input-number v-model="descriptor.thetaSegments" :allow-null="false"></vyr-input-number>
17
+ </vyr-col>
18
+ <vyr-col :span="12">
19
+ <vyr-input-number v-model="descriptor.phiSegments" :allow-null="false"></vyr-input-number>
20
+ </vyr-col>
21
+ </vyr-label>
22
+ </vyr-row>
23
+ <vyr-row>
24
+ <vyr-label :label="language.get('inspector.RingGeometry.theta')">
25
+ <vyr-col :span="12">
26
+ <vyr-input-number v-model="descriptor.thetaStart" :allow-null="false"></vyr-input-number>
27
+ </vyr-col>
28
+ <vyr-col :span="12">
29
+ <vyr-input-number v-model="descriptor.thetaLength" :allow-null="false"></vyr-input-number>
30
+ </vyr-col>
31
+ </vyr-label>
32
+ </vyr-row>
33
+ </template>
34
+
35
+
36
+ <script lang="ts" setup>
37
+ import { RingGeometryDescriptor } from '@vyr/three';
38
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
39
+ import { language } from '../../locale'
40
+ import { useDescriptor } from '../../common';
41
+
42
+ const descriptor = useDescriptor<RingGeometryDescriptor>()
43
+ </script>
44
+
45
+ <style lang="less" scoped></style>
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
4
+ <vyr-col>
5
+ <vyr-input-number v-model="descriptor.radius" :allow-null="false"></vyr-input-number>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.SphereGeometry.segments')">
11
+ <vyr-col :span="12">
12
+ <vyr-input-number v-model="descriptor.widthSegments" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ <vyr-col :span="12">
15
+ <vyr-input-number v-model="descriptor.heightSegments" :allow-null="false"></vyr-input-number>
16
+ </vyr-col>
17
+ </vyr-label>
18
+ </vyr-row>
19
+ <vyr-row>
20
+ <vyr-label :label="language.get('inspector.SphereGeometry.phi')">
21
+ <vyr-col :span="12">
22
+ <vyr-input-number v-model="descriptor.phiStart" :allow-null="false"></vyr-input-number>
23
+ </vyr-col>
24
+ <vyr-col :span="12">
25
+ <vyr-input-number v-model="descriptor.phiLength" :allow-null="false"></vyr-input-number>
26
+ </vyr-col>
27
+ </vyr-label>
28
+ </vyr-row>
29
+ <vyr-row>
30
+ <vyr-label :label="language.get('inspector.SphereGeometry.theta')">
31
+ <vyr-col :span="12">
32
+ <vyr-input-number v-model="descriptor.thetaStart" :allow-null="false"></vyr-input-number>
33
+ </vyr-col>
34
+ <vyr-col :span="12">
35
+ <vyr-input-number v-model="descriptor.thetaLength" :allow-null="false"></vyr-input-number>
36
+ </vyr-col>
37
+ </vyr-label>
38
+ </vyr-row>
39
+ </template>
40
+
41
+
42
+ <script lang="ts" setup>
43
+ import { SphereGeometryDescriptor } from '@vyr/three';
44
+ import { VyrInputNumber, VyrRow, VyrCol, VyrLabel } from '@vyr/design';
45
+ import { language } from '../../locale'
46
+ import { useDescriptor } from '../../common';
47
+
48
+ const descriptor = useDescriptor<SphereGeometryDescriptor>()
49
+ </script>
50
+
51
+ <style lang="less" scoped></style>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <extrude-geometry-fragment>
3
+ <template #radius>
4
+ <vyr-input-number v-model="descriptor.radius" :allow-null="false"></vyr-input-number>
5
+ </template>
6
+ </extrude-geometry-fragment>
7
+ </template>
8
+
9
+ <script lang="ts" setup>
10
+ import { SurfaceGeometryDescriptor } from '@vyr/three';
11
+ import { VyrInputNumber } from '@vyr/design';
12
+ import { useDescriptor } from '../../common';
13
+ import ExtrudeGeometryFragment from './ExtrudeGeometryFragment.vue';
14
+
15
+ const descriptor = useDescriptor<SurfaceGeometryDescriptor>()
16
+ </script>
17
+
18
+ <style lang="less" scoped></style>