@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.
- package/package.json +25 -0
- package/src/common/index.ts +2 -0
- package/src/common/provider.ts +14 -0
- package/src/common/validate.ts +10 -0
- package/src/fragment/GeoMapFragment.vue +129 -0
- package/src/fragment/InstancedMeshFragment.vue +29 -0
- package/src/fragment/MeshFragment.vue +98 -0
- package/src/fragment/ModelFragment.vue +28 -0
- package/src/fragment/NodeFragment.vue +93 -0
- package/src/fragment/ParticleFragment.vue +147 -0
- package/src/fragment/PointsFragment.vue +34 -0
- package/src/fragment/SpriteFragment.vue +38 -0
- package/src/fragment/TextFragment.vue +98 -0
- package/src/fragment/animation/AnimationActionFragment.vue +110 -0
- package/src/fragment/geometry/BoxGeometryFragment.vue +44 -0
- package/src/fragment/geometry/BufferGeometryFragment.vue +26 -0
- package/src/fragment/geometry/CircleGeometryFragment.vue +35 -0
- package/src/fragment/geometry/CylinderGeometryFragment.vue +60 -0
- package/src/fragment/geometry/ExtrudeGeometryFragment.vue +111 -0
- package/src/fragment/geometry/PlaneGeometryFragment.vue +35 -0
- package/src/fragment/geometry/RingGeometryFragment.vue +45 -0
- package/src/fragment/geometry/SphereGeometryFragment.vue +51 -0
- package/src/fragment/geometry/SurfaceGeometryFragment.vue +18 -0
- package/src/fragment/geometry/TubeGeometryFragment.vue +65 -0
- package/src/fragment/light/AmbientLightFragment.vue +27 -0
- package/src/fragment/light/DirectionalLightFragment.vue +86 -0
- package/src/fragment/light/HemisphereLightFragment.vue +34 -0
- package/src/fragment/light/PointLightFragment.vue +68 -0
- package/src/fragment/light/RectAreaLightFragment.vue +48 -0
- package/src/fragment/light/SpotLightFragment.vue +96 -0
- package/src/fragment/material/MaterialFragment.vue +53 -0
- package/src/fragment/material/MeshBasicMaterialFragment.vue +126 -0
- package/src/fragment/material/MeshPhongMaterialFragment.vue +263 -0
- package/src/fragment/material/MeshStandardMaterialFragment.vue +256 -0
- package/src/fragment/material/PointsMaterialFragment.vue +81 -0
- package/src/fragment/material/ShaderMaterialFragment.vue +61 -0
- package/src/fragment/material/ShadowMaterialFragment.vue +49 -0
- package/src/fragment/material/SpriteMaterialFragment.vue +79 -0
- package/src/fragment/texture/TextureFragment.vue +131 -0
- package/src/index.ts +4 -0
- package/src/locale/Language.ts +10 -0
- package/src/locale/LanguageProvider.ts +655 -0
- package/src/locale/index.ts +2 -0
- package/src/option/Animation.ts +17 -0
- package/src/option/Geometry.ts +22 -0
- package/src/option/Material.ts +42 -0
- package/src/option/Mesh.ts +10 -0
- package/src/option/Shadow.ts +18 -0
- package/src/option/Texture.ts +55 -0
- package/src/option/index.ts +6 -0
- package/src/service/footer/action/geometry/index.ts +73 -0
- package/src/service/footer/action/index.ts +9 -0
- package/src/service/footer/action/material/index.ts +70 -0
- package/src/service/footer/action/texture/index.ts +63 -0
- package/src/service/global/index.ts +1 -0
- package/src/service/global/scripts/index.ts +12 -0
- package/src/service/index.ts +79 -0
- package/src/service/inspector/GeoMapViewer.vue +32 -0
- package/src/service/inspector/HTMLConvertViewer.vue +31 -0
- package/src/service/inspector/InstanceMeshViewer.vue +33 -0
- package/src/service/inspector/MeshViewer.vue +33 -0
- package/src/service/inspector/ModelViewer.vue +34 -0
- package/src/service/inspector/NodeViewer.vue +30 -0
- package/src/service/inspector/ParticleViewer.vue +37 -0
- package/src/service/inspector/PerspectiveCameraViewer.vue +62 -0
- package/src/service/inspector/PointsViewer.vue +33 -0
- package/src/service/inspector/ServiceViewer.vue +92 -0
- package/src/service/inspector/SpriteViewer.vue +34 -0
- package/src/service/inspector/TextViewer.vue +34 -0
- package/src/service/inspector/animation/AnimationActionViewer.vue +31 -0
- package/src/service/inspector/geometry/BoxGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/BufferGeometryViewer.vue +33 -0
- package/src/service/inspector/geometry/CircleGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/CylinderGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/ExtrudeGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/PlaneGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/RingGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/SphereGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/SurfaceGeometryViewer.vue +32 -0
- package/src/service/inspector/geometry/TubeGeometryViewer.vue +32 -0
- package/src/service/inspector/index.ts +50 -0
- package/src/service/inspector/light/AmbientLightViewer.vue +33 -0
- package/src/service/inspector/light/DirectionalLightViewer.vue +33 -0
- package/src/service/inspector/light/HemisphereLightViewer.vue +33 -0
- package/src/service/inspector/light/PointLightViewer.vue +33 -0
- package/src/service/inspector/light/RectAreaLightViewer.vue +33 -0
- package/src/service/inspector/light/SpotLightViewer.vue +33 -0
- package/src/service/inspector/material/MeshBasicMaterialViewer.vue +34 -0
- package/src/service/inspector/material/MeshPhongMaterialViewer.vue +34 -0
- package/src/service/inspector/material/MeshStandardMaterialViewer.vue +34 -0
- package/src/service/inspector/material/PointsMaterialViewer.vue +33 -0
- package/src/service/inspector/material/ShaderMaterialViewer.vue +34 -0
- package/src/service/inspector/material/ShadowMaterialViewer.vue +34 -0
- package/src/service/inspector/material/SpriteMaterialViewer.vue +34 -0
- package/src/service/inspector/texture/TextureViewer.vue +32 -0
- package/src/service/sidebar/asset/action/AddAnimationAction.ts +66 -0
- package/src/service/sidebar/asset/action/AddLightAction.ts +66 -0
- package/src/service/sidebar/asset/action/index.ts +7 -0
- package/src/service/sidebar/scene/action/AddAnimationAction.ts +64 -0
- package/src/service/sidebar/scene/action/AddLightAction.ts +66 -0
- package/src/service/sidebar/scene/action/index.ts +7 -0
- package/src/shims-vue.d.ts +10 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { language } from '../locale'
|
|
2
|
+
|
|
3
|
+
const cylinderOptions = [
|
|
4
|
+
{ label: language.get('option.Geometry.cylinder.true'), value: true },
|
|
5
|
+
{ label: language.get('option.Geometry.cylinder.false'), value: false },
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
const extrudeUvOptions = [
|
|
9
|
+
{ label: language.get('option.Geometry.extrudeUv.true'), value: true },
|
|
10
|
+
{ label: language.get('option.Geometry.extrudeUv.false'), value: false },
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
const tubeOptions = [
|
|
14
|
+
{ label: language.get('option.Geometry.tube.true'), value: true },
|
|
15
|
+
{ label: language.get('option.Geometry.tube.false'), value: false },
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
cylinderOptions,
|
|
20
|
+
extrudeUvOptions,
|
|
21
|
+
tubeOptions,
|
|
22
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { MaterialCombine, MaterialNormalMapType, MaterialSide, MaterialDlending,MaterialDepthFunc } from '@vyr/three'
|
|
2
|
+
import { language } from '../locale'
|
|
3
|
+
|
|
4
|
+
const combineOptions = [
|
|
5
|
+
{ label: language.get('option.Material.combine.multiply'), value: MaterialCombine.MultiplyOperation },
|
|
6
|
+
{ label: language.get('option.Material.combine.blend'), value: MaterialCombine.MixOperation },
|
|
7
|
+
{ label: language.get('option.Material.combine.add'), value: MaterialCombine.AddOperation },
|
|
8
|
+
]
|
|
9
|
+
const normalTypeOptions = [
|
|
10
|
+
{ label: language.get('option.Material.normalType.tangentialSpace'), value: MaterialNormalMapType.TangentSpaceNormalMap },
|
|
11
|
+
{ label: language.get('option.Material.normalType.objectSpace'), value: MaterialNormalMapType.ObjectSpaceNormalMap },
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
const sideOptions = [
|
|
15
|
+
{ label: language.get('option.Material.side.back'), value: MaterialSide.BackSide },
|
|
16
|
+
{ label: language.get('option.Material.side.front'), value: MaterialSide.FrontSide },
|
|
17
|
+
{ label: language.get('option.Material.side.double'), value: MaterialSide.DoubleSide },
|
|
18
|
+
]
|
|
19
|
+
const blendingOptions = [
|
|
20
|
+
{ label: language.get('option.Material.blending.disabled'), value: MaterialDlending.NoBlending },
|
|
21
|
+
{ label: language.get('option.Material.blending.normal'), value: MaterialDlending.NormalBlending },
|
|
22
|
+
{ label: language.get('option.Material.blending.overlay'), value: MaterialDlending.AdditiveBlending },
|
|
23
|
+
{ label: language.get('option.Material.blending.subtractive'), value: MaterialDlending.SubtractiveBlending },
|
|
24
|
+
{ label: language.get('option.Material.blending.multiplicative'), value: MaterialDlending.MultiplyBlending },
|
|
25
|
+
]
|
|
26
|
+
const depthFuncOptions = [
|
|
27
|
+
{ label: language.get('option.Material.depthFunc.never'), value: MaterialDepthFunc.NeverDepth },
|
|
28
|
+
{ label: language.get('option.Material.depthFunc.always'), value: MaterialDepthFunc.AlwaysDepth },
|
|
29
|
+
{ label: language.get('option.Material.depthFunc.less'), value: MaterialDepthFunc.LessDepth },
|
|
30
|
+
{ label: language.get('option.Material.depthFunc.less/equal'), value: MaterialDepthFunc.LessEqualDepth },
|
|
31
|
+
{ label: language.get('option.Material.depthFunc.greater/equal'), value: MaterialDepthFunc.GreaterEqualDepth },
|
|
32
|
+
{ label: language.get('option.Material.depthFunc.greater'), value: MaterialDepthFunc.GreaterDepth },
|
|
33
|
+
{ label: language.get('option.Material.depthFunc.notEqual'), value: MaterialDepthFunc.NotEqualDepth },
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
combineOptions,
|
|
38
|
+
normalTypeOptions,
|
|
39
|
+
sideOptions,
|
|
40
|
+
blendingOptions,
|
|
41
|
+
depthFuncOptions,
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SceneShadow } from '@vyr/three'
|
|
2
|
+
import { language } from '../locale'
|
|
3
|
+
|
|
4
|
+
const typeOptions = [
|
|
5
|
+
{ label: language.get('option.shadow.type.basicShadowMap'), value: SceneShadow.BasicShadowMap },
|
|
6
|
+
{ label: language.get('option.shadow.type.PCFShadowMap'), value: SceneShadow.PCFShadowMap },
|
|
7
|
+
{ label: language.get('option.shadow.type.PCFSoftShadowMap'), value: SceneShadow.PCFSoftShadowMap },
|
|
8
|
+
{ label: language.get('option.shadow.type.VSMShadowMap'), value: SceneShadow.VSMShadowMap },
|
|
9
|
+
]
|
|
10
|
+
const updateOptions = [
|
|
11
|
+
{ label: language.get('option.shadow.update.manual'), value: false },
|
|
12
|
+
{ label: language.get('option.shadow.update.auto'), value: true },
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
typeOptions,
|
|
17
|
+
updateOptions,
|
|
18
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { TextureMapping, TextureWrap, TextureFType, TextureFormat, TextureColorSpace } from '@vyr/three'
|
|
2
|
+
import { language } from '../locale'
|
|
3
|
+
|
|
4
|
+
const mappingOptions = [
|
|
5
|
+
{ label: language.get('option.Texture.mapping.UVMapping'), value: TextureMapping.UVMapping },
|
|
6
|
+
{ label: language.get('option.Texture.mapping.cubeReflectionMapping'), value: TextureMapping.CubeReflectionMapping },
|
|
7
|
+
{ label: language.get('option.Texture.mapping.cubeRefractionMapping'), value: TextureMapping.CubeRefractionMapping },
|
|
8
|
+
{ label: language.get('option.Texture.mapping.equirectangularReflectionMapping'), value: TextureMapping.EquirectangularReflectionMapping },
|
|
9
|
+
{ label: language.get('option.Texture.mapping.equirectangularRefractionMapping'), value: TextureMapping.EquirectangularRefractionMapping },
|
|
10
|
+
{ label: language.get('option.Texture.mapping.cubeUVReflectionMapping'), value: TextureMapping.CubeUVReflectionMapping },
|
|
11
|
+
]
|
|
12
|
+
const wrapOptions = [
|
|
13
|
+
{ label: language.get('option.Texture.wrap.repeatWrapping'), value: TextureWrap.RepeatWrapping },
|
|
14
|
+
{ label: language.get('option.Texture.wrap.clampToEdgeWrapping'), value: TextureWrap.ClampToEdgeWrapping },
|
|
15
|
+
{ label: language.get('option.Texture.wrap.mirroredRepeatWrapping'), value: TextureWrap.MirroredRepeatWrapping },
|
|
16
|
+
]
|
|
17
|
+
const ftypeOptions = [
|
|
18
|
+
{ label: language.get('option.Texture.ftype.unsignedByteType'), value: TextureFType.UnsignedByteType },
|
|
19
|
+
{ label: language.get('option.Texture.ftype.byteType'), value: TextureFType.ByteType },
|
|
20
|
+
{ label: language.get('option.Texture.ftype.shortType'), value: TextureFType.ShortType },
|
|
21
|
+
{ label: language.get('option.Texture.ftype.unsignedShortType'), value: TextureFType.UnsignedShortType },
|
|
22
|
+
{ label: language.get('option.Texture.ftype.intType'), value: TextureFType.IntType },
|
|
23
|
+
{ label: language.get('option.Texture.ftype.unsignedIntType'), value: TextureFType.UnsignedIntType },
|
|
24
|
+
{ label: language.get('option.Texture.ftype.floatType'), value: TextureFType.FloatType },
|
|
25
|
+
{ label: language.get('option.Texture.ftype.halfFloatType'), value: TextureFType.HalfFloatType },
|
|
26
|
+
{ label: language.get('option.Texture.ftype.unsignedShort4444Type'), value: TextureFType.UnsignedShort4444Type },
|
|
27
|
+
{ label: language.get('option.Texture.ftype.unsignedShort5551Type'), value: TextureFType.UnsignedShort5551Type },
|
|
28
|
+
{ label: language.get('option.Texture.ftype.unsignedInt248Type'), value: TextureFType.UnsignedInt248Type },
|
|
29
|
+
{ label: language.get('option.Texture.ftype.unsignedInt5999Type'), value: TextureFType.UnsignedInt5999Type },
|
|
30
|
+
]
|
|
31
|
+
const formatOptions = [
|
|
32
|
+
{ label: language.get('option.Texture.format.alphaFormat'), value: TextureFormat.AlphaFormat },
|
|
33
|
+
{ label: language.get('option.Texture.format.redFormat'), value: TextureFormat.RedFormat },
|
|
34
|
+
{ label: language.get('option.Texture.format.redIntegerFormat'), value: TextureFormat.RedIntegerFormat },
|
|
35
|
+
{ label: language.get('option.Texture.format.RGFormat'), value: TextureFormat.RGFormat },
|
|
36
|
+
{ label: language.get('option.Texture.format.RGIntegerFormat'), value: TextureFormat.RGIntegerFormat },
|
|
37
|
+
{ label: language.get('option.Texture.format.RGBFormat'), value: TextureFormat.RGBFormat },
|
|
38
|
+
{ label: language.get('option.Texture.format.RGBAFormat'), value: TextureFormat.RGBAFormat },
|
|
39
|
+
{ label: language.get('option.Texture.format.RGBAIntegerFormat'), value: TextureFormat.RGBAIntegerFormat },
|
|
40
|
+
{ label: language.get('option.Texture.format.depthFormat'), value: TextureFormat.DepthFormat },
|
|
41
|
+
{ label: language.get('option.Texture.format.depthStencilFormat'), value: TextureFormat.DepthStencilFormat },
|
|
42
|
+
]
|
|
43
|
+
const colorSpaceOptions = [
|
|
44
|
+
{ label: language.get('option.Texture.colorSpace.no'), value: TextureColorSpace.NoColorSpace },
|
|
45
|
+
{ label: language.get('option.Texture.colorSpace.SRGB'), value: TextureColorSpace.SRGBColorSpace },
|
|
46
|
+
{ label: language.get('option.Texture.colorSpace.linearSRGB'), value: TextureColorSpace.LinearSRGBColorSpace },
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
mappingOptions,
|
|
51
|
+
wrapOptions,
|
|
52
|
+
ftypeOptions,
|
|
53
|
+
formatOptions,
|
|
54
|
+
colorSpaceOptions,
|
|
55
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Action, DataService, runtime } from "@vyr/runtime";
|
|
2
|
+
import { Category, Descriptor } from "@vyr/engine";
|
|
3
|
+
import { defineScheme } from '@vyr/service-rpc';
|
|
4
|
+
import { BoxGeometryDescriptor, BufferGeometryDescriptor, CircleGeometryDescriptor, CylinderGeometryDescriptor, ExtrudeGeometryDescriptor, PlaneGeometryDescriptor, RingGeometryDescriptor, SphereGeometryDescriptor, SurfaceGeometryDescriptor, TubeGeometryDescriptor } from "@vyr/three";
|
|
5
|
+
import { language } from '../../../../locale'
|
|
6
|
+
|
|
7
|
+
class AddGeometryAction extends Action {
|
|
8
|
+
static id = 'footer.AddGeometry'
|
|
9
|
+
static generate = (label: string, Class: typeof Descriptor) => {
|
|
10
|
+
class ClassAction extends Action {
|
|
11
|
+
static id = `footer.${Class.type}`
|
|
12
|
+
label = label
|
|
13
|
+
update() {
|
|
14
|
+
this.show = true
|
|
15
|
+
this.disabled = false
|
|
16
|
+
}
|
|
17
|
+
validator() {
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
execute() {
|
|
21
|
+
const dataService = runtime.get<DataService>('data')
|
|
22
|
+
const modifyValue = dataService.footer.status.mouseRegion === 'directory' ? dataService.footer.status.mouseItem : dataService.footer.directory
|
|
23
|
+
dataService.footer.status.modifyMode = 'add'
|
|
24
|
+
dataService.footer.status.modifyModeAdd = 'file'
|
|
25
|
+
dataService.footer.status.modifyContent = new Class().serialization()
|
|
26
|
+
dataService.footer.status.modifySuffix = Category.geometrySuffix
|
|
27
|
+
dataService.footer.status.modifyValue = modifyValue
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return new ClassAction()
|
|
31
|
+
}
|
|
32
|
+
label = language.get('footer.action.addGeometry.label')
|
|
33
|
+
order = 5
|
|
34
|
+
|
|
35
|
+
constructor() {
|
|
36
|
+
super()
|
|
37
|
+
this.children.push(
|
|
38
|
+
AddGeometryAction.generate(language.get('descriptor.type.BoxGeometry'), BoxGeometryDescriptor),
|
|
39
|
+
AddGeometryAction.generate(language.get('descriptor.type.CircleGeometry'), CircleGeometryDescriptor),
|
|
40
|
+
AddGeometryAction.generate(language.get('descriptor.type.CylinderGeometry'), CylinderGeometryDescriptor),
|
|
41
|
+
AddGeometryAction.generate(language.get('descriptor.type.PlaneGeometry'), PlaneGeometryDescriptor),
|
|
42
|
+
AddGeometryAction.generate(language.get('descriptor.type.RingGeometry'), RingGeometryDescriptor),
|
|
43
|
+
AddGeometryAction.generate(language.get('descriptor.type.SphereGeometry'), SphereGeometryDescriptor),
|
|
44
|
+
AddGeometryAction.generate(language.get('descriptor.type.ExtrudeGeometry'), ExtrudeGeometryDescriptor),
|
|
45
|
+
AddGeometryAction.generate(language.get('descriptor.type.SurfaceGeometry'), SurfaceGeometryDescriptor),
|
|
46
|
+
AddGeometryAction.generate(language.get('descriptor.type.TubeGeometry'), TubeGeometryDescriptor),
|
|
47
|
+
AddGeometryAction.generate(language.get('descriptor.type.BufferGeometry'), BufferGeometryDescriptor),
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
update() {
|
|
51
|
+
this.show = false
|
|
52
|
+
this.disabled = true
|
|
53
|
+
|
|
54
|
+
const dataService = runtime.get<DataService>('data')
|
|
55
|
+
if (dataService.footer.status.mouseRegion === 'directory') {
|
|
56
|
+
if (dataService.footer.status.mouseItem === null) return
|
|
57
|
+
if (dataService.footer.status.mouseItem.scheme !== defineScheme.static) return
|
|
58
|
+
} else if (dataService.footer.status.mouseRegion === 'manifest') {
|
|
59
|
+
if (dataService.footer.status.mouseItem !== null) return
|
|
60
|
+
if (dataService.footer.directory.scheme !== defineScheme.static) return
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
this.show = true
|
|
64
|
+
|
|
65
|
+
this.disabled = false
|
|
66
|
+
}
|
|
67
|
+
validator() {
|
|
68
|
+
return false
|
|
69
|
+
}
|
|
70
|
+
execute() { }
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { AddGeometryAction }
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Action, DataService, runtime } from "@vyr/runtime";
|
|
2
|
+
import { Category, Descriptor } from "@vyr/engine";
|
|
3
|
+
import { defineScheme } from '@vyr/service-rpc'
|
|
4
|
+
import { MeshBasicMaterialDescriptor, MeshPhongMaterialDescriptor, MeshStandardMaterialDescriptor, PointsMaterialDescriptor, ShaderMaterialDescriptor, ShadowMaterialDescriptor, SpriteMaterialDescriptor } from "@vyr/three";
|
|
5
|
+
import { language } from '../../../../locale'
|
|
6
|
+
|
|
7
|
+
class AddMaterialAction extends Action {
|
|
8
|
+
static id = 'footer.AddMaterial'
|
|
9
|
+
static generate = (label: string, Class: typeof Descriptor) => {
|
|
10
|
+
class ClassAction extends Action {
|
|
11
|
+
static id = `footer.${Class.type}`
|
|
12
|
+
label = label
|
|
13
|
+
update() {
|
|
14
|
+
this.show = true
|
|
15
|
+
this.disabled = false
|
|
16
|
+
}
|
|
17
|
+
validator() {
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
execute() {
|
|
21
|
+
const dataService = runtime.get<DataService>('data')
|
|
22
|
+
const modifyValue = dataService.footer.status.mouseRegion === 'directory' ? dataService.footer.status.mouseItem : dataService.footer.directory
|
|
23
|
+
dataService.footer.status.modifyMode = 'add'
|
|
24
|
+
dataService.footer.status.modifyModeAdd = 'file'
|
|
25
|
+
dataService.footer.status.modifyContent = new Class().serialization()
|
|
26
|
+
dataService.footer.status.modifySuffix = Category.materialSuffix
|
|
27
|
+
dataService.footer.status.modifyValue = modifyValue
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return new ClassAction()
|
|
31
|
+
}
|
|
32
|
+
label = language.get('footer.action.addMaterial.label')
|
|
33
|
+
order = 5
|
|
34
|
+
|
|
35
|
+
constructor() {
|
|
36
|
+
super()
|
|
37
|
+
this.children.push(
|
|
38
|
+
AddMaterialAction.generate(language.get('descriptor.type.MeshBasicMaterial'), MeshBasicMaterialDescriptor),
|
|
39
|
+
AddMaterialAction.generate(language.get('descriptor.type.MeshPhongMaterial'), MeshPhongMaterialDescriptor),
|
|
40
|
+
AddMaterialAction.generate(language.get('descriptor.type.MeshStandardMaterial'), MeshStandardMaterialDescriptor),
|
|
41
|
+
AddMaterialAction.generate(language.get('descriptor.type.PointsMaterial'), PointsMaterialDescriptor),
|
|
42
|
+
AddMaterialAction.generate(language.get('descriptor.type.SpriteMaterial'), SpriteMaterialDescriptor),
|
|
43
|
+
AddMaterialAction.generate(language.get('descriptor.type.ShadowMaterial'), ShadowMaterialDescriptor),
|
|
44
|
+
AddMaterialAction.generate(language.get('descriptor.type.ShaderMaterial'), ShaderMaterialDescriptor),
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
update() {
|
|
49
|
+
this.show = false
|
|
50
|
+
this.disabled = true
|
|
51
|
+
|
|
52
|
+
const dataService = runtime.get<DataService>('data')
|
|
53
|
+
if (dataService.footer.status.mouseRegion === 'directory') {
|
|
54
|
+
if (dataService.footer.status.mouseItem === null) return
|
|
55
|
+
if (dataService.footer.status.mouseItem.scheme !== defineScheme.static) return
|
|
56
|
+
} else if (dataService.footer.status.mouseRegion === 'manifest') {
|
|
57
|
+
if (dataService.footer.status.mouseItem !== null) return
|
|
58
|
+
if (dataService.footer.directory.scheme !== defineScheme.static) return
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
this.show = true
|
|
62
|
+
this.disabled = false
|
|
63
|
+
}
|
|
64
|
+
validator() {
|
|
65
|
+
return false
|
|
66
|
+
}
|
|
67
|
+
execute() { }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { AddMaterialAction }
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { runtime, Action, DataService } from '@vyr/runtime'
|
|
2
|
+
import { Category, Descriptor } from '@vyr/engine'
|
|
3
|
+
import { defineScheme } from '@vyr/service-rpc'
|
|
4
|
+
import { TextureDescriptor } from '@vyr/three'
|
|
5
|
+
import { language } from '../../../../locale'
|
|
6
|
+
|
|
7
|
+
class AddTextureAction extends Action {
|
|
8
|
+
static id = 'footer.AddTexture'
|
|
9
|
+
static generate = (label: string, Class: typeof Descriptor) => {
|
|
10
|
+
class ClassAction extends Action {
|
|
11
|
+
static id = `footer.${Class.type}`
|
|
12
|
+
label = label
|
|
13
|
+
update() {
|
|
14
|
+
this.show = true
|
|
15
|
+
this.disabled = false
|
|
16
|
+
}
|
|
17
|
+
validator() {
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
execute() {
|
|
21
|
+
const dataService = runtime.get<DataService>('data')
|
|
22
|
+
const modifyValue = dataService.footer.status.mouseRegion === 'directory' ? dataService.footer.status.mouseItem : dataService.footer.directory
|
|
23
|
+
dataService.footer.status.modifyMode = 'add'
|
|
24
|
+
dataService.footer.status.modifyModeAdd = 'file'
|
|
25
|
+
dataService.footer.status.modifyContent = new Class().serialization()
|
|
26
|
+
dataService.footer.status.modifySuffix = Category.textureSuffix
|
|
27
|
+
dataService.footer.status.modifyValue = modifyValue
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return new ClassAction()
|
|
31
|
+
}
|
|
32
|
+
label = language.get('footer.action.addTexture.label')
|
|
33
|
+
order = 5
|
|
34
|
+
|
|
35
|
+
constructor() {
|
|
36
|
+
super()
|
|
37
|
+
this.children.push(
|
|
38
|
+
AddTextureAction.generate(language.get('descriptor.type.Texture'), TextureDescriptor)
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
update() {
|
|
42
|
+
this.show = false
|
|
43
|
+
this.disabled = true
|
|
44
|
+
|
|
45
|
+
const dataService = runtime.get<DataService>('data')
|
|
46
|
+
if (dataService.footer.status.mouseRegion === 'directory') {
|
|
47
|
+
if (dataService.footer.status.mouseItem === null) return
|
|
48
|
+
if (dataService.footer.status.mouseItem.scheme !== defineScheme.static) return
|
|
49
|
+
} else if (dataService.footer.status.mouseRegion === 'manifest') {
|
|
50
|
+
if (dataService.footer.status.mouseItem !== null) return
|
|
51
|
+
if (dataService.footer.directory.scheme !== defineScheme.static) return
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
this.show = true
|
|
55
|
+
this.disabled = false
|
|
56
|
+
}
|
|
57
|
+
validator() {
|
|
58
|
+
return false
|
|
59
|
+
}
|
|
60
|
+
execute() { }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { AddTextureAction }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './scripts'
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { SetupService } from '@vyr/service'
|
|
2
|
+
import { ShortcutkeyService, InspectorService, runtime, DataService } from '@vyr/runtime'
|
|
3
|
+
import { NodeDescriptor } from '@vyr/engine'
|
|
4
|
+
import { SceneServiceDescriptor, GeoMapDescriptor, HTMLConvertDescriptor, InstancedMeshDescriptor, MeshDescriptor, ModelDescriptor, OrthographicCameraDescriptor, ParticleDescriptor, PerspectiveCameraDescriptor, PointsDescriptor, SpriteDescriptor, TextDescriptor } from '@vyr/three'
|
|
5
|
+
import { language } from '../locale'
|
|
6
|
+
import sidebarSceneAction from './sidebar/scene/action'
|
|
7
|
+
import sidebarAssetAction from './sidebar/asset/action'
|
|
8
|
+
import inspectorViewer from './inspector'
|
|
9
|
+
import footerAction from './footer/action'
|
|
10
|
+
import * as global from './global'
|
|
11
|
+
|
|
12
|
+
const setup: SetupService['setup'] = async () => {
|
|
13
|
+
const dataService = runtime.get<DataService>('data')
|
|
14
|
+
const shortcutkeyService = runtime.get<ShortcutkeyService>('shortcutkey')
|
|
15
|
+
|
|
16
|
+
const footer = shortcutkeyService.get('footer')
|
|
17
|
+
for (const Action of footerAction) footer.add(new Action())
|
|
18
|
+
|
|
19
|
+
const sidebar = shortcutkeyService.get('sidebar')
|
|
20
|
+
const collection = [...sidebarSceneAction, ...sidebarAssetAction]
|
|
21
|
+
for (const Action of collection) sidebar.add(new Action())
|
|
22
|
+
|
|
23
|
+
const addServiceAction = sidebar.get('sidebar.scene.AddService')
|
|
24
|
+
if (addServiceAction) {
|
|
25
|
+
//@ts-ignore
|
|
26
|
+
const generate = addServiceAction.generate
|
|
27
|
+
addServiceAction.children.push(
|
|
28
|
+
generate(language.get('descriptor.type.SceneService'), SceneServiceDescriptor),
|
|
29
|
+
// generate(language.get('descriptor.type.ComposerService'), ComposerServiceDescriptor),
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const sceneAddNodeAction = sidebar.get('sidebar.scene.AddNode')
|
|
34
|
+
if (sceneAddNodeAction) {
|
|
35
|
+
//@ts-ignore
|
|
36
|
+
const generate = sceneAddNodeAction.generate
|
|
37
|
+
sceneAddNodeAction.children.push(
|
|
38
|
+
generate(language.get('descriptor.type.Node'), NodeDescriptor),
|
|
39
|
+
generate(language.get('descriptor.type.Text'), TextDescriptor),
|
|
40
|
+
generate(language.get('descriptor.type.Points'), PointsDescriptor),
|
|
41
|
+
generate(language.get('descriptor.type.Mesh'), MeshDescriptor),
|
|
42
|
+
generate(language.get('descriptor.type.InstancedMesh'), InstancedMeshDescriptor),
|
|
43
|
+
generate(language.get('descriptor.type.Sprite'), SpriteDescriptor),
|
|
44
|
+
generate(language.get('descriptor.type.Particle'), ParticleDescriptor),
|
|
45
|
+
generate(language.get('descriptor.type.GeoMap'), GeoMapDescriptor),
|
|
46
|
+
generate(language.get('descriptor.type.Model'), ModelDescriptor),
|
|
47
|
+
generate(language.get('descriptor.type.HTMLConvert'), HTMLConvertDescriptor),
|
|
48
|
+
// generate(language.get('descriptor.type.Pass'), PassDescriptor),
|
|
49
|
+
generate(language.get('descriptor.type.PerspectiveCamera'), PerspectiveCameraDescriptor),
|
|
50
|
+
generate(language.get('descriptor.type.OrthographicCamera'), OrthographicCameraDescriptor),
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const assetAddNodeAction = sidebar.get('sidebar.asset.AddNode')
|
|
55
|
+
if (assetAddNodeAction) {
|
|
56
|
+
//@ts-ignore
|
|
57
|
+
const generate = assetAddNodeAction.generate
|
|
58
|
+
assetAddNodeAction.children.push(
|
|
59
|
+
generate(language.get('descriptor.type.Node'), NodeDescriptor),
|
|
60
|
+
generate(language.get('descriptor.type.Text'), TextDescriptor),
|
|
61
|
+
generate(language.get('descriptor.type.Points'), PointsDescriptor),
|
|
62
|
+
generate(language.get('descriptor.type.Mesh'), MeshDescriptor),
|
|
63
|
+
generate(language.get('descriptor.type.InstancedMesh'), InstancedMeshDescriptor),
|
|
64
|
+
generate(language.get('descriptor.type.Sprite'), SpriteDescriptor),
|
|
65
|
+
generate(language.get('descriptor.type.Particle'), ParticleDescriptor),
|
|
66
|
+
generate(language.get('descriptor.type.GeoMap'), GeoMapDescriptor),
|
|
67
|
+
generate(language.get('descriptor.type.Model'), ModelDescriptor),
|
|
68
|
+
generate(language.get('descriptor.type.HTMLConvert'), HTMLConvertDescriptor),
|
|
69
|
+
// generate(language.get('descriptor.type.Pass'), PassDescriptor),
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const inspectorService = runtime.get<InspectorService>('inspector')
|
|
74
|
+
for (const viewer of inspectorViewer) inspectorService.set(viewer.type, viewer.import)
|
|
75
|
+
|
|
76
|
+
for (const script of global.scripts) dataService.addScripte(script)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export { setup }
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vyr-card v-if="descriptor" :title="language.get('descriptor.type.GeoMap')" :scroll="true">
|
|
3
|
+
<base-fragment :raw="raw"></base-fragment>
|
|
4
|
+
<node-fragment></node-fragment>
|
|
5
|
+
<geo-map-fragment></geo-map-fragment>
|
|
6
|
+
</vyr-card>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script lang="ts" setup>
|
|
10
|
+
import { Ref, ref, watch } from 'vue'
|
|
11
|
+
import { Descriptor } from '@vyr/engine';
|
|
12
|
+
import { GeoMapDescriptor } from '@vyr/three';
|
|
13
|
+
import { VyrCard, } from '@vyr/design';
|
|
14
|
+
import { BaseFragment, providerDescriptor as builtinProviderDescriptor } from '@vyr/builtin'
|
|
15
|
+
import { language } from '../../locale'
|
|
16
|
+
import { providerDescriptor } from '../../common';
|
|
17
|
+
import NodeFragment from '../../fragment/NodeFragment.vue';
|
|
18
|
+
import GeoMapFragment from '../../fragment/GeoMapFragment.vue';
|
|
19
|
+
|
|
20
|
+
const props = defineProps<{ raw: string, uuid: string }>()
|
|
21
|
+
const descriptor = ref(null) as Ref<GeoMapDescriptor | null>
|
|
22
|
+
const watchEditItem = (cur: string) => {
|
|
23
|
+
if (!cur) return descriptor.value = null
|
|
24
|
+
descriptor.value = Descriptor.get<GeoMapDescriptor>(cur)
|
|
25
|
+
}
|
|
26
|
+
watch(() => props.uuid, watchEditItem, { immediate: true })
|
|
27
|
+
|
|
28
|
+
providerDescriptor(descriptor)
|
|
29
|
+
builtinProviderDescriptor(descriptor)
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<style lang="less" scoped></style>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vyr-card v-if="descriptor" :title="language.get('descriptor.type.HTMLConvert')" :scroll="true">
|
|
3
|
+
<base-fragment :raw="raw"></base-fragment>
|
|
4
|
+
<node-fragment></node-fragment>
|
|
5
|
+
</vyr-card>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<script lang="ts" setup>
|
|
10
|
+
import { Ref, ref, watch } from 'vue'
|
|
11
|
+
import { Descriptor } from '@vyr/engine';
|
|
12
|
+
import { HTMLConvertDescriptor } from '@vyr/three';
|
|
13
|
+
import { VyrCard, } from '@vyr/design';
|
|
14
|
+
import { BaseFragment, providerDescriptor as builtinProviderDescriptor } from '@vyr/builtin'
|
|
15
|
+
import { language } from '../../locale'
|
|
16
|
+
import { providerDescriptor } from '../../common';
|
|
17
|
+
import NodeFragment from '../../fragment/NodeFragment.vue';
|
|
18
|
+
|
|
19
|
+
const props = defineProps<{ raw: string, uuid: string }>()
|
|
20
|
+
const descriptor = ref(null) as Ref<HTMLConvertDescriptor | null>
|
|
21
|
+
const watchEditItem = (cur: string) => {
|
|
22
|
+
if (!cur) return descriptor.value = null
|
|
23
|
+
descriptor.value = Descriptor.get<HTMLConvertDescriptor>(cur)
|
|
24
|
+
}
|
|
25
|
+
watch(() => props.uuid, watchEditItem, { immediate: true })
|
|
26
|
+
|
|
27
|
+
providerDescriptor(descriptor)
|
|
28
|
+
builtinProviderDescriptor(descriptor)
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<style lang="less" scoped></style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vyr-card v-if="descriptor" :title="language.get('descriptor.type.InstancedMesh')" :scroll="true">
|
|
3
|
+
<base-fragment :raw="raw"></base-fragment>
|
|
4
|
+
<node-fragment></node-fragment>
|
|
5
|
+
<instanced-mesh-fragment></instanced-mesh-fragment>
|
|
6
|
+
</vyr-card>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<script lang="ts" setup>
|
|
11
|
+
import { Ref, ref, watch } from 'vue'
|
|
12
|
+
import { Descriptor } from '@vyr/engine';
|
|
13
|
+
import { InstancedMeshDescriptor } from '@vyr/three';
|
|
14
|
+
import { VyrCard, } from '@vyr/design';
|
|
15
|
+
import { BaseFragment, providerDescriptor as builtinProviderDescriptor } from '@vyr/builtin'
|
|
16
|
+
import { language } from '../../locale'
|
|
17
|
+
import { providerDescriptor } from '../../common';
|
|
18
|
+
import NodeFragment from '../../fragment/NodeFragment.vue';
|
|
19
|
+
import InstancedMeshFragment from '../../fragment/InstancedMeshFragment.vue';
|
|
20
|
+
|
|
21
|
+
const props = defineProps<{ raw: string, uuid: string }>()
|
|
22
|
+
const descriptor = ref(null) as Ref<InstancedMeshDescriptor | null>
|
|
23
|
+
const watchEditItem = (cur: string) => {
|
|
24
|
+
if (!cur) return descriptor.value = null
|
|
25
|
+
descriptor.value = Descriptor.get<InstancedMeshDescriptor>(cur)
|
|
26
|
+
}
|
|
27
|
+
watch(() => props.uuid, watchEditItem, { immediate: true })
|
|
28
|
+
|
|
29
|
+
providerDescriptor(descriptor)
|
|
30
|
+
builtinProviderDescriptor(descriptor)
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<style lang="less" scoped></style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vyr-card v-if="descriptor" :title="language.get('descriptor.type.Mesh')" :scroll="true">
|
|
3
|
+
<base-fragment :raw="raw"></base-fragment>
|
|
4
|
+
<node-fragment></node-fragment>
|
|
5
|
+
<mesh-fragment></mesh-fragment>
|
|
6
|
+
</vyr-card>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<script lang="ts" setup>
|
|
11
|
+
import { Ref, ref, watch } from 'vue'
|
|
12
|
+
import { Descriptor } from '@vyr/engine';
|
|
13
|
+
import { MeshDescriptor } from '@vyr/three';
|
|
14
|
+
import { VyrCard, } from '@vyr/design';
|
|
15
|
+
import { BaseFragment, providerDescriptor as builtinProviderDescriptor } from '@vyr/builtin'
|
|
16
|
+
import { language } from '../../locale'
|
|
17
|
+
import { providerDescriptor } from '../../common';
|
|
18
|
+
import NodeFragment from '../../fragment/NodeFragment.vue';
|
|
19
|
+
import MeshFragment from '../../fragment/MeshFragment.vue';
|
|
20
|
+
|
|
21
|
+
const props = defineProps<{ raw: string, uuid: string }>()
|
|
22
|
+
const descriptor = ref(null) as Ref<MeshDescriptor | null>
|
|
23
|
+
const watchEditItem = (cur: string) => {
|
|
24
|
+
if (!cur) return descriptor.value = null
|
|
25
|
+
descriptor.value = Descriptor.get<MeshDescriptor>(cur)
|
|
26
|
+
}
|
|
27
|
+
watch(() => props.uuid, watchEditItem, { immediate: true })
|
|
28
|
+
|
|
29
|
+
providerDescriptor(descriptor)
|
|
30
|
+
builtinProviderDescriptor(descriptor)
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<style lang="less" scoped></style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vyr-card v-if="descriptor" :title="language.get('descriptor.type.Model')" :scroll="true">
|
|
3
|
+
<base-fragment :raw="raw"></base-fragment>
|
|
4
|
+
<node-fragment></node-fragment>
|
|
5
|
+
<model-fragment></model-fragment>
|
|
6
|
+
</vyr-card>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<script lang="ts" setup>
|
|
11
|
+
import { Ref, ref, watch } from 'vue'
|
|
12
|
+
import { Descriptor } from '@vyr/engine';
|
|
13
|
+
import { ModelDescriptor } from '@vyr/three';
|
|
14
|
+
import { VyrCard, } from '@vyr/design';
|
|
15
|
+
import { BaseFragment, providerDescriptor as builtinProviderDescriptor } from '@vyr/builtin'
|
|
16
|
+
import { language } from '../../locale'
|
|
17
|
+
import { providerDescriptor } from '../../common';
|
|
18
|
+
import NodeFragment from '../../fragment/NodeFragment.vue';
|
|
19
|
+
import ModelFragment from '../../fragment/ModelFragment.vue';
|
|
20
|
+
|
|
21
|
+
const props = defineProps<{ raw: string, uuid: string }>()
|
|
22
|
+
|
|
23
|
+
const descriptor = ref(null) as Ref<ModelDescriptor | null>
|
|
24
|
+
const watchEditItem = (cur: string) => {
|
|
25
|
+
if (!cur) return descriptor.value = null
|
|
26
|
+
descriptor.value = Descriptor.get<ModelDescriptor>(cur)
|
|
27
|
+
}
|
|
28
|
+
watch(() => props.uuid, watchEditItem, { immediate: true })
|
|
29
|
+
|
|
30
|
+
providerDescriptor(descriptor)
|
|
31
|
+
builtinProviderDescriptor(descriptor)
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<style lang="less" scoped></style>
|