@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,65 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.TubeGeometry.track')">
4
+ <vyr-col>
5
+ <vyr-input v-model="descriptor.track" :clearable="true" :draggable="draggable" trigger="blur"
6
+ dragkey="track"></vyr-input>
7
+ </vyr-col>
8
+ </vyr-label>
9
+ </vyr-row>
10
+ <vyr-row>
11
+ <vyr-label :label="language.get('inspector.Geometry.radius')">
12
+ <vyr-col>
13
+ <vyr-input-number v-model="descriptor.radius" :allow-null="false"></vyr-input-number>
14
+ </vyr-col>
15
+ </vyr-label>
16
+ </vyr-row>
17
+ <vyr-row>
18
+ <vyr-label :label="language.get('inspector.Geometry.offset')">
19
+ <vyr-col :span="12">
20
+ <vyr-input-number v-model="descriptor.offset.x" :allow-null="false"></vyr-input-number>
21
+ </vyr-col>
22
+ <vyr-col :span="12">
23
+ <vyr-input-number v-model="descriptor.offset.y" :allow-null="false"></vyr-input-number>
24
+ </vyr-col>
25
+ </vyr-label>
26
+ </vyr-row>
27
+ <vyr-row>
28
+ <vyr-label :label="language.get('inspector.TubeGeometry.tubular')">
29
+ <vyr-col>
30
+ <vyr-input-number v-model="descriptor.tubularSegments" :allow-null="false"></vyr-input-number>
31
+ </vyr-col>
32
+ </vyr-label>
33
+ </vyr-row>
34
+ <vyr-row>
35
+ <vyr-label :label="language.get('inspector.TubeGeometry.radial')">
36
+ <vyr-col>
37
+ <vyr-input-number v-model="descriptor.radialSegments" :allow-null="false"></vyr-input-number>
38
+ </vyr-col>
39
+ </vyr-label>
40
+ </vyr-row>
41
+ <vyr-row>
42
+ <vyr-label :label="language.get('inspector.TubeGeometry.closed')">
43
+ <vyr-col>
44
+ <vyr-select v-model="descriptor.closed" :data="Geometry.tubeOptions"></vyr-select>
45
+ </vyr-col>
46
+ </vyr-label>
47
+ </vyr-row>
48
+ </template>
49
+
50
+ <script lang="ts" setup>
51
+ import { computed } from 'vue'
52
+ import { DraggableService, runtime } from '@vyr/runtime';
53
+ import { TubeGeometryDescriptor } from '@vyr/three';
54
+ import { VyrInput, VyrInputNumber, VyrRow, VyrCol, VyrLabel, VyrSelect } from '@vyr/design';
55
+ import { language } from '../../locale'
56
+ import { useDescriptor } from '../../common';
57
+ import { Geometry } from '../../option';
58
+
59
+ const descriptor = useDescriptor<TubeGeometryDescriptor>()
60
+
61
+ const draggableService = runtime.get<DraggableService>('draggable')
62
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
63
+ </script>
64
+
65
+ <style lang="less" scoped></style>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.intensity')">
11
+ <vyr-col>
12
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import { VyrRow, VyrCol, VyrLabel, VyrColorPicker, VyrInputNumber } from '@vyr/design';
20
+ import { AmbientLightDescriptor } from '@vyr/three';
21
+ import { language } from '../../locale'
22
+ import { useDescriptor } from '../../common';
23
+
24
+ const descriptor = useDescriptor<AmbientLightDescriptor>()
25
+ </script>
26
+
27
+ <style lang="less" scoped></style>
@@ -0,0 +1,86 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.intensity')">
11
+ <vyr-col>
12
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Light.target')">
18
+ <vyr-col>
19
+ <vyr-input v-model="descriptor.target" :clearable="true" dragkey="target" :draggable="draggable"
20
+ trigger="blur"></vyr-input>
21
+ </vyr-col>
22
+ </vyr-label>
23
+ </vyr-row>
24
+ <vyr-row>
25
+ <vyr-label :label="language.get('inspector.Light.basic')">
26
+ <vyr-col :span="12">
27
+ <vyr-input-number v-model="descriptor.bias" :allow-null="false"></vyr-input-number>
28
+ </vyr-col>
29
+ <vyr-col :span="12">
30
+ <vyr-input-number v-model="descriptor.normalBias" :allow-null="false"></vyr-input-number>
31
+ </vyr-col>
32
+ </vyr-label>
33
+ </vyr-row>
34
+ <vyr-row>
35
+ <vyr-label :label="language.get('inspector.Light.mapSize')">
36
+ <vyr-col :span="12">
37
+ <vyr-input-number v-model="descriptor.mapSize.x" :allow-null="false"></vyr-input-number>
38
+ </vyr-col>
39
+ <vyr-col :span="12">
40
+ <vyr-input-number v-model="descriptor.mapSize.y" :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.Light.camera')">
46
+ <vyr-col :span="12">
47
+ <vyr-input-number v-model="descriptor.camera.near" :allow-null="false"></vyr-input-number>
48
+ </vyr-col>
49
+ <vyr-col :span="12">
50
+ <vyr-input-number v-model="descriptor.camera.far" :allow-null="false"></vyr-input-number>
51
+ </vyr-col>
52
+ </vyr-label>
53
+ </vyr-row>
54
+ <vyr-row>
55
+ <vyr-label :label="language.get('inspector.Light.cameraRange')">
56
+ <vyr-col :span="6">
57
+ <vyr-input-number v-model="descriptor.camera.left" :allow-null="false"></vyr-input-number>
58
+ </vyr-col>
59
+ <vyr-col :span="6">
60
+ <vyr-input-number v-model="descriptor.camera.right" :allow-null="false"></vyr-input-number>
61
+ </vyr-col>
62
+ <vyr-col :span="6">
63
+ <vyr-input-number v-model="descriptor.camera.top" :allow-null="false"></vyr-input-number>
64
+ </vyr-col>
65
+ <vyr-col :span="6">
66
+ <vyr-input-number v-model="descriptor.camera.bottom" :allow-null="false"></vyr-input-number>
67
+ </vyr-col>
68
+ </vyr-label>
69
+ </vyr-row>
70
+ </template>
71
+
72
+ <script lang="ts" setup>
73
+ import { computed } from 'vue'
74
+ import { DraggableService, runtime } from '@vyr/runtime';
75
+ import { VyrRow, VyrCol, VyrLabel, VyrInput, VyrColorPicker, VyrInputNumber } from '@vyr/design';
76
+ import { DirectionalLightDescriptor } from '@vyr/three';
77
+ import { language } from '../../locale'
78
+ import { useDescriptor } from '../../common';
79
+
80
+ const draggableService = runtime.get<DraggableService>('draggable')
81
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
82
+
83
+ const descriptor = useDescriptor<DirectionalLightDescriptor>()
84
+ </script>
85
+
86
+ <style lang="less" scoped></style>
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.groundColor')">
11
+ <vyr-col>
12
+ <vyr-color-picker v-model="descriptor.groundColor" :allow-null="false" width="all"></vyr-color-picker>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Light.intensity')">
18
+ <vyr-col>
19
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
20
+ </vyr-col>
21
+ </vyr-label>
22
+ </vyr-row>
23
+ </template>
24
+
25
+ <script lang="ts" setup>
26
+ import { VyrRow, VyrCol, VyrLabel, VyrColorPicker, VyrInputNumber } from '@vyr/design';
27
+ import { HemisphereLightDescriptor } from '@vyr/three';
28
+ import { language } from '../../locale'
29
+ import { useDescriptor } from '../../common';
30
+
31
+ const descriptor = useDescriptor<HemisphereLightDescriptor>()
32
+ </script>
33
+
34
+ <style lang="less" scoped></style>
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.intensity')">
11
+ <vyr-col>
12
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Light.decay')">
18
+ <vyr-col>
19
+ <vyr-input-number v-model="descriptor.decay" :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.Light.distance')">
25
+ <vyr-col>
26
+ <vyr-input-number v-model="descriptor.distance" :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.Light.power')">
32
+ <vyr-col>
33
+ <vyr-input-number v-model="descriptor.power" :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.Light.mapSize')">
39
+ <vyr-col :span="12">
40
+ <vyr-input-number v-model="descriptor.mapSize.x" :allow-null="false"></vyr-input-number>
41
+ </vyr-col>
42
+ <vyr-col :span="12">
43
+ <vyr-input-number v-model="descriptor.mapSize.y" :allow-null="false"></vyr-input-number>
44
+ </vyr-col>
45
+ </vyr-label>
46
+ </vyr-row>
47
+ <vyr-row>
48
+ <vyr-label :label="language.get('inspector.Light.camera')">
49
+ <vyr-col :span="12">
50
+ <vyr-input-number v-model="descriptor.camera.near" :allow-null="false"></vyr-input-number>
51
+ </vyr-col>
52
+ <vyr-col :span="12">
53
+ <vyr-input-number v-model="descriptor.camera.far" :allow-null="false"></vyr-input-number>
54
+ </vyr-col>
55
+ </vyr-label>
56
+ </vyr-row>
57
+ </template>
58
+
59
+ <script lang="ts" setup>
60
+ import { VyrRow, VyrCol, VyrLabel, VyrColorPicker, VyrInputNumber } from '@vyr/design';
61
+ import { PointLightDescriptor } from '@vyr/three';
62
+ import { language } from '../../locale'
63
+ import { useDescriptor } from '../../common';
64
+
65
+ const descriptor = useDescriptor<PointLightDescriptor>()
66
+ </script>
67
+
68
+ <style lang="less" scoped></style>
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.intensity')">
11
+ <vyr-col>
12
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Light.width')">
18
+ <vyr-col>
19
+ <vyr-input-number v-model="descriptor.width" :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.Light.height')">
25
+ <vyr-col>
26
+ <vyr-input-number v-model="descriptor.height" :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.Light.power')">
32
+ <vyr-col>
33
+ <vyr-input-number v-model="descriptor.power" :allow-null="false"></vyr-input-number>
34
+ </vyr-col>
35
+ </vyr-label>
36
+ </vyr-row>
37
+ </template>
38
+
39
+ <script lang="ts" setup>
40
+ import { VyrRow, VyrCol, VyrLabel, VyrColorPicker, VyrInputNumber } from '@vyr/design';
41
+ import { RectAreaLightDescriptor } from '@vyr/three';
42
+ import { language } from '../../locale'
43
+ import { useDescriptor } from '../../common';
44
+
45
+ const descriptor = useDescriptor<RectAreaLightDescriptor>()
46
+ </script>
47
+
48
+ <style lang="less" scoped></style>
@@ -0,0 +1,96 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Light.color')">
4
+ <vyr-col>
5
+ <vyr-color-picker v-model="descriptor.color" :allow-null="false" width="all"></vyr-color-picker>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Light.intensity')">
11
+ <vyr-col>
12
+ <vyr-input-number v-model="descriptor.intensity" :allow-null="false"></vyr-input-number>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Light.target')">
18
+ <vyr-col>
19
+ <vyr-input v-model="descriptor.target" :clearable="true" dragkey="target" :draggable="draggable"
20
+ trigger="blur"></vyr-input>
21
+ </vyr-col>
22
+ </vyr-label>
23
+ </vyr-row>
24
+ <vyr-row>
25
+ <vyr-label :label="language.get('inspector.Light.angle')">
26
+ <vyr-col>
27
+ <vyr-input-number v-model="descriptor.angle" :min="0" :max="Math.PI / 2"
28
+ :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.Light.distance')">
34
+ <vyr-col>
35
+ <vyr-input-number v-model="descriptor.distance" :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.Light.decay')">
41
+ <vyr-col>
42
+ <vyr-input-number v-model="descriptor.decay" :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.Light.penumbra')">
48
+ <vyr-col>
49
+ <vyr-input-number v-model="descriptor.penumbra" :allow-null="false"></vyr-input-number>
50
+ </vyr-col>
51
+ </vyr-label>
52
+ </vyr-row>
53
+ <vyr-row>
54
+ <vyr-label :label="language.get('inspector.Light.power')">
55
+ <vyr-col>
56
+ <vyr-input-number v-model="descriptor.power" :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.Light.mapSize')">
62
+ <vyr-col :span="12">
63
+ <vyr-input-number v-model="descriptor.mapSize.x" :allow-null="false"></vyr-input-number>
64
+ </vyr-col>
65
+ <vyr-col :span="12">
66
+ <vyr-input-number v-model="descriptor.mapSize.y" :allow-null="false"></vyr-input-number>
67
+ </vyr-col>
68
+ </vyr-label>
69
+ </vyr-row>
70
+ <vyr-row>
71
+ <vyr-label :label="language.get('inspector.Light.camera')">
72
+ <vyr-col :span="12">
73
+ <vyr-input-number v-model="descriptor.camera.near" :allow-null="false"></vyr-input-number>
74
+ </vyr-col>
75
+ <vyr-col :span="12">
76
+ <vyr-input-number v-model="descriptor.camera.far" :allow-null="false"></vyr-input-number>
77
+ </vyr-col>
78
+ </vyr-label>
79
+ </vyr-row>
80
+ </template>
81
+
82
+ <script lang="ts" setup>
83
+ import { computed } from 'vue'
84
+ import { DraggableService, runtime } from '@vyr/runtime';
85
+ import { VyrInput, VyrRow, VyrCol, VyrLabel, VyrColorPicker, VyrInputNumber } from '@vyr/design';
86
+ import { SpotLightDescriptor } from '@vyr/three';
87
+ import { language } from '../../locale'
88
+ import { useDescriptor } from '../../common';
89
+
90
+ const draggableService = runtime.get<DraggableService>('draggable')
91
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
92
+
93
+ const descriptor = useDescriptor<SpotLightDescriptor>()
94
+ </script>
95
+
96
+ <style lang="less" scoped></style>
@@ -0,0 +1,53 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Material.side')">
4
+ <vyr-col>
5
+ <vyr-select v-model="descriptor.side" :data="Material.sideOptions"></vyr-select>
6
+ </vyr-col>
7
+ </vyr-label>
8
+ </vyr-row>
9
+ <vyr-row>
10
+ <vyr-label :label="language.get('inspector.Material.blending')">
11
+ <vyr-col>
12
+ <vyr-select v-model="descriptor.blending" :data="Material.blendingOptions"></vyr-select>
13
+ </vyr-col>
14
+ </vyr-label>
15
+ </vyr-row>
16
+ <vyr-row>
17
+ <vyr-label :label="language.get('inspector.Material.depthTest')">
18
+ <vyr-col>
19
+ <vyr-checked v-model="descriptor.depthTest"></vyr-checked>
20
+ <vyr-select v-model="descriptor.depthFunc" :data="Material.depthFuncOptions"></vyr-select>
21
+ </vyr-col>
22
+ </vyr-label>
23
+ </vyr-row>
24
+ <vyr-row>
25
+ <vyr-label :label="language.get('inspector.Material.depthrWrite')">
26
+ <vyr-col>
27
+ <vyr-select v-model="descriptor.depthrWrite" :data="option.stateOptions"></vyr-select>
28
+ </vyr-col>
29
+ </vyr-label>
30
+ </vyr-row>
31
+ <vyr-row>
32
+ <vyr-label :label="language.get('inspector.Material.vertexColors')">
33
+ <vyr-col>
34
+ <vyr-select v-model="descriptor.vertexColors" :data="option.stateOptions"></vyr-select>
35
+ </vyr-col>
36
+ </vyr-label>
37
+ </vyr-row>
38
+ <slot></slot>
39
+ </template>
40
+
41
+
42
+ <script lang="ts" setup>
43
+ import { MeshBasicMaterialDescriptor } from '@vyr/three';
44
+ import { VyrRow, VyrCol, VyrLabel, VyrChecked, VyrSelect } from '@vyr/design';
45
+ import { option, } from '@vyr/builtin'
46
+ import { language } from '../../locale'
47
+ import { useDescriptor } from '../../common';
48
+ import { Material } from '../../option';
49
+
50
+ const descriptor = useDescriptor<MeshBasicMaterialDescriptor>()
51
+ </script>
52
+
53
+ <style lang="less" scoped></style>
@@ -0,0 +1,126 @@
1
+ <template>
2
+ <vyr-row>
3
+ <vyr-label :label="language.get('inspector.Material.color')">
4
+ <vyr-col>
5
+ <vyr-checked v-model="descriptor.colorWrite"></vyr-checked>
6
+ <vyr-color-picker v-model="descriptor.color.value" width="all"></vyr-color-picker>
7
+ </vyr-col>
8
+ </vyr-label>
9
+ </vyr-row>
10
+ <vyr-row>
11
+ <vyr-label :label="language.get('inspector.Material.map')">
12
+ <vyr-col>
13
+ <vyr-input v-model="descriptor.map" :clearable="true" :draggable="draggable" trigger="blur"
14
+ dragkey="map"></vyr-input>
15
+ </vyr-col>
16
+ </vyr-label>
17
+ </vyr-row>
18
+ <vyr-row>
19
+ <vyr-label :label="language.get('inspector.Material.refractionRatio')">
20
+ <vyr-col>
21
+ <vyr-input-number v-model="descriptor.refractionRatio" :clearable="false" :allow-null="false"
22
+ :default-value="0"></vyr-input-number>
23
+ </vyr-col>
24
+ </vyr-label>
25
+ </vyr-row>
26
+ <vyr-row>
27
+ <vyr-label :label="language.get('inspector.Material.transparent')">
28
+ <vyr-col>
29
+ <vyr-checked v-model="descriptor.transparent"></vyr-checked>
30
+ <vyr-input-number v-model="descriptor.color.opacity" :allow-null="false"></vyr-input-number>
31
+ </vyr-col>
32
+ </vyr-label>
33
+ </vyr-row>
34
+ <vyr-row>
35
+ <vyr-label :label="language.get('inspector.Material.alphaMap')">
36
+ <vyr-col>
37
+ <vyr-input v-model="descriptor.alphaMap" :clearable="true" :draggable="draggable" trigger="blur"
38
+ dragkey="alphaMap"></vyr-input>
39
+ </vyr-col>
40
+ </vyr-label>
41
+ </vyr-row>
42
+ <vyr-row>
43
+ <vyr-label :label="language.get('inspector.Material.alphaTest')">
44
+ <vyr-col>
45
+ <vyr-input-number v-model="descriptor.alphaTest" :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.Material.envMap')">
51
+ <vyr-col>
52
+ <vyr-input v-model="descriptor.envMap" :clearable="true" :draggable="draggable" trigger="blur"
53
+ dragkey="envMap"></vyr-input>
54
+ </vyr-col>
55
+ </vyr-label>
56
+ </vyr-row>
57
+ <vyr-row>
58
+ <vyr-label :label="language.get('inspector.Material.combine')">
59
+ <vyr-col>
60
+ <vyr-select v-model="descriptor.combine" :data="Material.combineOptions"></vyr-select>
61
+ </vyr-col>
62
+ </vyr-label>
63
+ </vyr-row>
64
+ <vyr-row>
65
+ <vyr-label :label="language.get('inspector.Material.reflectivity')">
66
+ <vyr-col>
67
+ <vyr-input-number v-model="descriptor.reflectivity" :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.Material.lightMap')">
73
+ <vyr-col>
74
+ <vyr-input v-model="descriptor.lightMap" :clearable="true" :draggable="draggable" trigger="blur"
75
+ dragkey="lightMap"></vyr-input>
76
+ </vyr-col>
77
+ </vyr-label>
78
+ </vyr-row>
79
+ <vyr-row>
80
+ <vyr-label :label="language.get('inspector.Material.lightMapIntensity')">
81
+ <vyr-col>
82
+ <vyr-input-number v-model="descriptor.lightMapIntensity" :allow-null="false"></vyr-input-number>
83
+ </vyr-col>
84
+ </vyr-label>
85
+ </vyr-row>
86
+ <vyr-row>
87
+ <vyr-label :label="language.get('inspector.Material.specularMap')">
88
+ <vyr-col>
89
+ <vyr-input v-model="descriptor.specularMap" :clearable="true" :draggable="draggable" trigger="blur"
90
+ dragkey="specularMap"></vyr-input>
91
+ </vyr-col>
92
+ </vyr-label>
93
+ </vyr-row>
94
+ <vyr-row>
95
+ <vyr-label :label="language.get('inspector.Material.fog')">
96
+ <vyr-col>
97
+ <vyr-select v-model="descriptor.fog" :data="option.stateOptions"></vyr-select>
98
+ </vyr-col>
99
+ </vyr-label>
100
+ </vyr-row>
101
+ <vyr-row>
102
+ <vyr-label :label="language.get('inspector.Material.wireframe')">
103
+ <vyr-col>
104
+ <vyr-select v-model="descriptor.wireframe" :data="option.stateOptions"></vyr-select>
105
+ </vyr-col>
106
+ </vyr-label>
107
+ </vyr-row>
108
+ </template>
109
+
110
+ <script lang="ts" setup>
111
+ import { computed } from 'vue'
112
+ import { DraggableService, runtime } from '@vyr/runtime';
113
+ import { MeshBasicMaterialDescriptor } from '@vyr/three';
114
+ import { VyrInput, VyrRow, VyrCol, VyrLabel, VyrChecked, VyrColorPicker, VyrInputNumber, VyrSelect } from '@vyr/design';
115
+ import { option } from '@vyr/builtin'
116
+ import { language } from '../../locale'
117
+ import { useDescriptor } from '../../common';
118
+ import { Material } from '../../option';
119
+
120
+ const draggableService = runtime.get<DraggableService>('draggable')
121
+ const draggable = computed(() => draggableService.get(draggableService.key.inspector))
122
+ const descriptor = useDescriptor<MeshBasicMaterialDescriptor>()
123
+
124
+ </script>
125
+
126
+ <style lang="less" scoped></style>