@tolokoban/tgd 2.0.18 → 2.0.22
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/lib/dist/buffer/buffer.d.ts +5 -2
- package/lib/dist/buffer/buffer.d.ts.map +1 -1
- package/lib/dist/buffer/buffer.js +14 -14
- package/lib/dist/camera/camera-node.d.ts +2 -2
- package/lib/dist/camera/camera-node.d.ts.map +1 -1
- package/lib/dist/camera/camera-node.js +4 -5
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +14 -12
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +20 -38
- package/lib/dist/camera/camera.d.ts +9 -56
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +50 -279
- package/lib/dist/camera/index.d.ts +0 -1
- package/lib/dist/camera/index.d.ts.map +1 -1
- package/lib/dist/camera/index.js +1 -2
- package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/gizmo.js +72 -78
- package/lib/dist/canvas/gizmo/painter/tips.d.ts +0 -1
- package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/painter/tips.js +38 -36
- package/lib/dist/canvas/landscape/landscape.js +4 -11
- package/lib/dist/code/color.d.ts +12 -0
- package/lib/dist/code/color.d.ts.map +1 -0
- package/lib/dist/code/color.js +26 -0
- package/lib/dist/code/consts.d.ts +16 -0
- package/lib/dist/code/consts.d.ts.map +1 -0
- package/lib/dist/code/consts.js +20 -0
- package/lib/dist/code/coords.d.ts +46 -0
- package/lib/dist/code/coords.d.ts.map +1 -0
- package/lib/dist/code/coords.js +95 -0
- package/lib/dist/code/index.d.ts +6 -0
- package/lib/dist/code/index.d.ts.map +1 -0
- package/lib/dist/code/index.js +6 -0
- package/lib/dist/code/random.d.ts +8 -0
- package/lib/dist/code/random.d.ts.map +1 -0
- package/lib/dist/code/random.js +13 -0
- package/lib/dist/code/transfo.d.ts +8 -0
- package/lib/dist/code/transfo.d.ts.map +1 -0
- package/lib/dist/code/transfo.js +19 -0
- package/lib/dist/color/color.js +24 -24
- package/lib/dist/context/animation/animation-manager.js +9 -6
- package/lib/dist/context/context.d.ts +11 -18
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +71 -96
- package/lib/dist/controller/camera/orbit.d.ts +33 -4
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +163 -117
- package/lib/dist/dataset/dataset.d.ts +1 -1
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +72 -72
- package/lib/dist/debug/debug.d.ts +1 -1
- package/lib/dist/debug/debug.d.ts.map +1 -1
- package/lib/dist/debug/debug.js +8 -7
- package/lib/dist/debug/tools.js +3 -3
- package/lib/dist/event/event.js +6 -3
- package/lib/dist/filter/blur.d.ts.map +1 -1
- package/lib/dist/filter/blur.js +9 -8
- package/lib/dist/filter/chromatic-aberration.js +10 -10
- package/lib/dist/filter/filter.d.ts +2 -1
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/filter.js +22 -22
- package/lib/dist/filter/hue-rotation.d.ts +1 -1
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
- package/lib/dist/filter/hue-rotation.js +5 -5
- package/lib/dist/filter/index.d.ts +1 -0
- package/lib/dist/filter/index.d.ts.map +1 -1
- package/lib/dist/filter/index.js +2 -1
- package/lib/dist/filter/verbatim.d.ts +8 -0
- package/lib/dist/filter/verbatim.d.ts.map +1 -0
- package/lib/dist/filter/verbatim.js +20 -0
- package/lib/dist/filter/zoom.d.ts +3 -1
- package/lib/dist/filter/zoom.d.ts.map +1 -1
- package/lib/dist/filter/zoom.js +10 -6
- package/lib/dist/geometry/box.d.ts +2 -1
- package/lib/dist/geometry/box.d.ts.map +1 -1
- package/lib/dist/geometry/box.js +103 -115
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +38 -48
- package/lib/dist/geometry/index.d.ts +1 -0
- package/lib/dist/geometry/index.d.ts.map +1 -1
- package/lib/dist/geometry/index.js +2 -1
- package/lib/dist/geometry/plane.d.ts +12 -0
- package/lib/dist/geometry/plane.d.ts.map +1 -0
- package/lib/dist/geometry/plane.js +51 -0
- package/lib/dist/index.d.ts +6 -1
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +7 -2
- package/lib/dist/input/inputs.js +3 -4
- package/lib/dist/input/keyboard.js +14 -14
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +85 -112
- package/lib/dist/interface/transformable.d.ts +3 -1
- package/lib/dist/interface/transformable.d.ts.map +1 -1
- package/lib/dist/light/light.js +5 -8
- package/lib/dist/loader/asset.js +15 -12
- package/lib/dist/loader/binary.js +29 -24
- package/lib/dist/loader/image.js +31 -24
- package/lib/dist/loader/index.d.ts +1 -0
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -1
- package/lib/dist/loader/video.d.ts +6 -0
- package/lib/dist/loader/video.d.ts.map +1 -0
- package/lib/dist/loader/video.js +23 -0
- package/lib/dist/log.d.ts +1 -1
- package/lib/dist/log.d.ts.map +1 -1
- package/lib/dist/log.js +19 -16
- package/lib/dist/material/diffuse.d.ts +3 -1
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +17 -20
- package/lib/dist/material/ghost.d.ts +2 -1
- package/lib/dist/material/ghost.d.ts.map +1 -1
- package/lib/dist/material/ghost.js +1 -4
- package/lib/dist/material/hull.d.ts +2 -1
- package/lib/dist/material/hull.d.ts.map +1 -1
- package/lib/dist/material/hull.js +10 -13
- package/lib/dist/material/material.d.ts +2 -1
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +14 -20
- package/lib/dist/material/normals.d.ts +2 -1
- package/lib/dist/material/normals.d.ts.map +1 -1
- package/lib/dist/material/normals.js +1 -4
- package/lib/dist/material/solid.d.ts +2 -1
- package/lib/dist/material/solid.d.ts.map +1 -1
- package/lib/dist/material/solid.js +6 -9
- package/lib/dist/math/common.test.d.ts +2 -0
- package/lib/dist/math/common.test.d.ts.map +1 -0
- package/lib/dist/math/common.test.js +22 -0
- package/lib/dist/math/index.d.ts +0 -1
- package/lib/dist/math/index.d.ts.map +1 -1
- package/lib/dist/math/index.js +1 -2
- package/lib/dist/math/mat3.d.ts +44 -16
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +140 -74
- package/lib/dist/math/mat3.test.d.ts +2 -0
- package/lib/dist/math/mat3.test.d.ts.map +1 -0
- package/lib/dist/math/mat3.test.js +32 -0
- package/lib/dist/math/mat4.d.ts +54 -121
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +167 -288
- package/lib/dist/math/quat.d.ts +9 -4
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +57 -70
- package/lib/dist/math/quat.test.d.ts +1 -0
- package/lib/dist/math/quat.test.d.ts.map +1 -1
- package/lib/dist/math/quat.test.js +81 -27
- package/lib/dist/math/transfo.d.ts +32 -5
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +135 -46
- package/lib/dist/math/vec2.js +6 -6
- package/lib/dist/math/vec3.d.ts +11 -3
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +30 -17
- package/lib/dist/math/vec3.test.js +20 -1
- package/lib/dist/math/vec4.d.ts +12 -3
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +36 -18
- package/lib/dist/painter/{axis/axis.d.ts → axes/axes.d.ts} +4 -4
- package/lib/dist/painter/{axis/axis.d.ts.map → axes/axes.d.ts.map} +1 -1
- package/lib/dist/painter/{axis/axis.frag → axes/axes.frag} +0 -0
- package/lib/dist/painter/axes/axes.js +82 -0
- package/lib/dist/painter/{axis/axis.vert → axes/axes.vert} +0 -0
- package/lib/dist/painter/axes/index.d.ts +2 -0
- package/lib/dist/painter/axes/index.d.ts.map +1 -0
- package/lib/dist/painter/axes/index.js +2 -0
- package/lib/dist/painter/background/background.d.ts +4 -3
- package/lib/dist/painter/background/background.d.ts.map +1 -1
- package/lib/dist/painter/background/background.js +15 -17
- package/lib/dist/painter/clear.d.ts +4 -3
- package/lib/dist/painter/clear.d.ts.map +1 -1
- package/lib/dist/painter/clear.js +18 -22
- package/lib/dist/painter/debug/index.d.ts +2 -0
- package/lib/dist/painter/debug/index.d.ts.map +1 -0
- package/lib/dist/painter/debug/index.js +2 -0
- package/lib/dist/painter/debug/stencil/index.d.ts +2 -0
- package/lib/dist/painter/debug/stencil/index.d.ts.map +1 -0
- package/lib/dist/painter/debug/stencil/index.js +2 -0
- package/lib/dist/painter/debug/stencil/stencil.d.ts +11 -0
- package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -0
- package/lib/dist/painter/debug/stencil/stencil.frag +10 -0
- package/lib/dist/painter/debug/stencil/stencil.js +53 -0
- package/lib/dist/painter/debug/stencil/stencil.vert +7 -0
- package/lib/dist/painter/depth.d.ts +7 -5
- package/lib/dist/painter/depth.d.ts.map +1 -1
- package/lib/dist/painter/depth.js +5 -11
- package/lib/dist/painter/filter/filter.d.ts +3 -3
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +44 -46
- package/lib/dist/painter/framebuffer.d.ts +25 -4
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +76 -43
- package/lib/dist/painter/group.js +11 -12
- package/lib/dist/painter/index.d.ts +2 -1
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +3 -2
- package/lib/dist/painter/logic.js +3 -3
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +9 -10
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +2 -2
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +45 -43
- package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -1
- package/lib/dist/painter/mesh/normals/normals.js +19 -22
- package/lib/dist/painter/node/node.d.ts +12 -12
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +32 -43
- package/lib/dist/painter/painter.js +11 -9
- package/lib/dist/painter/segments/segments.d.ts +11 -3
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +38 -38
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +13 -14
- package/lib/dist/painter/state/state.d.ts +4 -6
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +83 -65
- package/lib/dist/parser/for-each-line.d.ts.map +1 -1
- package/lib/dist/parser/for-each-line.js +5 -5
- package/lib/dist/parser/gltf/gltf.d.ts +5 -2
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +114 -83
- package/lib/dist/parser/gltf/parser.js +10 -11
- package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
- package/lib/dist/parser/mesh/wavefront.js +106 -111
- package/lib/dist/program/program.d.ts +2 -2
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +27 -33
- package/lib/dist/{ref-map.d.ts → reference-map.d.ts} +4 -4
- package/lib/dist/reference-map.d.ts.map +1 -0
- package/lib/dist/reference-map.js +52 -0
- package/lib/dist/shader/code.d.ts +2 -2
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +12 -12
- package/lib/dist/shader/fragment.js +7 -19
- package/lib/dist/shader/vertex.js +7 -12
- package/lib/dist/table/index.d.ts +2 -0
- package/lib/dist/table/index.d.ts.map +1 -0
- package/lib/dist/table/index.js +2 -0
- package/lib/dist/table/table.d.ts +41 -0
- package/lib/dist/table/table.d.ts.map +1 -0
- package/lib/dist/table/table.js +104 -0
- package/lib/dist/texture/index.d.ts +1 -1
- package/lib/dist/texture/index.d.ts.map +1 -1
- package/lib/dist/texture/index.js +2 -2
- package/lib/dist/texture/texture-cube.d.ts +24 -0
- package/lib/dist/texture/texture-cube.d.ts.map +1 -0
- package/lib/dist/texture/texture-cube.js +69 -0
- package/lib/dist/texture/texture2d.d.ts +47 -21
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +178 -133
- package/lib/dist/types/elements.js +2 -2
- package/lib/dist/types/gltf.js +3 -9
- package/lib/dist/types/guards.d.ts.map +1 -1
- package/lib/dist/types/guards.js +36 -37
- package/lib/dist/types/index.d.ts +1 -3
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +2 -4
- package/lib/dist/types/program.d.ts +0 -37
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/types/{textureCube.d.ts → texture-cube.d.ts} +7 -16
- package/lib/dist/types/texture-cube.d.ts.map +1 -0
- package/lib/dist/types/texture-cube.js +2 -0
- package/lib/dist/types/webgl.d.ts +15 -5
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +37 -30
- package/lib/dist/utils/action/camera.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.js +15 -25
- package/lib/dist/utils/action/transfo.d.ts +3 -0
- package/lib/dist/utils/action/transfo.d.ts.map +1 -0
- package/lib/dist/utils/action/transfo.js +18 -0
- package/lib/dist/utils/action/vector.d.ts.map +1 -1
- package/lib/dist/utils/action/vector.js +11 -11
- package/lib/dist/utils/assert.d.ts.map +1 -1
- package/lib/dist/utils/assert.js +2 -2
- package/lib/dist/utils/bbox.js +3 -3
- package/lib/dist/utils/bbox.test.js +18 -19
- package/lib/dist/utils/canvas.d.ts +28 -0
- package/lib/dist/utils/canvas.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +59 -5
- package/lib/dist/utils/{ease-func/ease-func.d.ts → easing-function/easing-function.d.ts} +1 -1
- package/lib/dist/utils/easing-function/easing-function.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/easing-function.js +142 -0
- package/lib/dist/utils/easing-function/index.d.ts +2 -0
- package/lib/dist/utils/easing-function/index.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/index.js +2 -0
- package/lib/dist/utils/framebuffer.d.ts +2 -0
- package/lib/dist/utils/framebuffer.d.ts.map +1 -0
- package/lib/dist/utils/framebuffer.js +7 -0
- package/lib/dist/utils/fullscreen.d.ts +1 -1
- package/lib/dist/utils/fullscreen.d.ts.map +1 -1
- package/lib/dist/utils/fullscreen.js +44 -37
- package/lib/dist/utils/index.d.ts +4 -1
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +5 -2
- package/lib/dist/utils/math.d.ts +4 -2
- package/lib/dist/utils/math.d.ts.map +1 -1
- package/lib/dist/utils/math.js +12 -4
- package/lib/dist/utils/pbo.d.ts +9 -0
- package/lib/dist/utils/pbo.d.ts.map +1 -0
- package/lib/dist/utils/pbo.js +32 -0
- package/lib/dist/utils/{ref-map.d.ts → reference-map.d.ts} +4 -4
- package/lib/dist/utils/reference-map.d.ts.map +1 -0
- package/lib/dist/utils/reference-map.js +52 -0
- package/lib/dist/utils/state/blend.d.ts +5 -5
- package/lib/dist/utils/state/blend.d.ts.map +1 -1
- package/lib/dist/utils/state/blend.js +10 -10
- package/lib/dist/utils/state/depth.d.ts +2 -2
- package/lib/dist/utils/state/depth.d.ts.map +1 -1
- package/lib/dist/utils/state/depth.js +5 -5
- package/lib/dist/utils/state/stencil.d.ts +55 -1
- package/lib/dist/utils/state/stencil.d.ts.map +1 -1
- package/lib/dist/utils/state/stencil.js +28 -46
- package/lib/dist/utils/template.js +3 -3
- package/lib/dist/utils/webgl.d.ts +1 -1
- package/lib/dist/utils/webgl.d.ts.map +1 -1
- package/lib/dist/utils/webgl.js +5 -5
- package/lib/dist/vao/vao.d.ts +2 -1
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +19 -19
- package/lib/dist/webgl/index.d.ts +2 -0
- package/lib/dist/webgl/index.d.ts.map +1 -0
- package/lib/dist/webgl/index.js +2 -0
- package/lib/dist/webgl/texture/index.d.ts +3 -0
- package/lib/dist/webgl/texture/index.d.ts.map +1 -0
- package/lib/dist/webgl/texture/index.js +3 -0
- package/lib/dist/webgl/texture/texture2d.d.ts +38 -0
- package/lib/dist/webgl/texture/texture2d.d.ts.map +1 -0
- package/lib/dist/webgl/texture/texture2d.js +35 -0
- package/lib/dist/webgl/texture/types.d.ts +4 -0
- package/lib/dist/webgl/texture/types.d.ts.map +1 -0
- package/lib/dist/webgl/texture/types.js +2 -0
- package/package.json +1 -1
- package/lib/dist/math/math.d.ts +0 -9
- package/lib/dist/math/math.d.ts.map +0 -1
- package/lib/dist/math/math.js +0 -13
- package/lib/dist/painter/axis/axis.js +0 -84
- package/lib/dist/painter/axis/index.d.ts +0 -2
- package/lib/dist/painter/axis/index.d.ts.map +0 -1
- package/lib/dist/painter/axis/index.js +0 -2
- package/lib/dist/painter/framebuffer-old.d.ts +0 -38
- package/lib/dist/painter/framebuffer-old.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer-old.js +0 -102
- package/lib/dist/painter/framebuffer.backup.d.ts +0 -39
- package/lib/dist/painter/framebuffer.backup.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer.backup.js +0 -125
- package/lib/dist/painter/mesh/hull/hull.d.ts +0 -12
- package/lib/dist/painter/mesh/hull/hull.d.ts.map +0 -1
- package/lib/dist/painter/mesh/hull/hull.js +0 -11
- package/lib/dist/painter/node.d.ts +0 -32
- package/lib/dist/painter/node.d.ts.map +0 -1
- package/lib/dist/painter/node.js +0 -73
- package/lib/dist/ref-map.d.ts.map +0 -1
- package/lib/dist/ref-map.js +0 -48
- package/lib/dist/resource/index.d.ts +0 -5
- package/lib/dist/resource/index.d.ts.map +0 -1
- package/lib/dist/resource/index.js +0 -5
- package/lib/dist/resource/program.d.ts +0 -10
- package/lib/dist/resource/program.d.ts.map +0 -1
- package/lib/dist/resource/program.js +0 -20
- package/lib/dist/resource/resource.d.ts +0 -17
- package/lib/dist/resource/resource.d.ts.map +0 -1
- package/lib/dist/resource/resource.js +0 -48
- package/lib/dist/resource/texture2d.d.ts +0 -10
- package/lib/dist/resource/texture2d.d.ts.map +0 -1
- package/lib/dist/resource/texture2d.js +0 -20
- package/lib/dist/resource/textureCube.d.ts +0 -9
- package/lib/dist/resource/textureCube.d.ts.map +0 -1
- package/lib/dist/resource/textureCube.js +0 -17
- package/lib/dist/scene/scene-node.d.ts +0 -8
- package/lib/dist/scene/scene-node.d.ts.map +0 -1
- package/lib/dist/scene/scene-node.js +0 -13
- package/lib/dist/texture/textureCube.d.ts +0 -17
- package/lib/dist/texture/textureCube.d.ts.map +0 -1
- package/lib/dist/texture/textureCube.js +0 -87
- package/lib/dist/types/context.d.ts +0 -27
- package/lib/dist/types/context.d.ts.map +0 -1
- package/lib/dist/types/context.js +0 -2
- package/lib/dist/types/texture2d.d.ts +0 -36
- package/lib/dist/types/texture2d.d.ts.map +0 -1
- package/lib/dist/types/texture2d.js +0 -2
- package/lib/dist/types/textureCube.d.ts.map +0 -1
- package/lib/dist/types/textureCube.js +0 -2
- package/lib/dist/utils/ease-func/ease-func.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/ease-func.js +0 -142
- package/lib/dist/utils/ease-func/index.d.ts +0 -2
- package/lib/dist/utils/ease-func/index.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/index.js +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts.map +0 -1
- package/lib/dist/utils/fetch/fetch.js +0 -5
- package/lib/dist/utils/fetch/index.d.ts +0 -2
- package/lib/dist/utils/fetch/index.d.ts.map +0 -1
- package/lib/dist/utils/fetch/index.js +0 -2
- package/lib/dist/utils/ref-map.d.ts.map +0 -1
- package/lib/dist/utils/ref-map.js +0 -48
|
@@ -10,24 +10,72 @@ import { TipsPainter } from "./painter/tips.js";
|
|
|
10
10
|
* You can click one of the axis to force the camera to face it.
|
|
11
11
|
*/
|
|
12
12
|
export class TgdCanvasGizmo {
|
|
13
|
-
options;
|
|
14
|
-
/**
|
|
15
|
-
* The user clicked a tip, so we dispatch the target orientation.
|
|
16
|
-
*/
|
|
17
|
-
eventTipClick = new TgdEvent();
|
|
18
|
-
_canvas = null;
|
|
19
|
-
context = null;
|
|
20
|
-
cameraExternal = null;
|
|
21
|
-
cameraInternal = new TgdCameraPerspective({
|
|
22
|
-
fovy: Math.PI / 3,
|
|
23
|
-
distance: 2.7,
|
|
24
|
-
near: 0.01,
|
|
25
|
-
far: 10,
|
|
26
|
-
});
|
|
27
|
-
orbiter = null;
|
|
28
|
-
tipsPainter = null;
|
|
29
13
|
constructor(options = {}) {
|
|
30
14
|
this.options = options;
|
|
15
|
+
/**
|
|
16
|
+
* The user clicked a tip, so we dispatch the target orientation.
|
|
17
|
+
*/
|
|
18
|
+
this.eventTipClick = new TgdEvent();
|
|
19
|
+
this._canvas = null;
|
|
20
|
+
this.context = null;
|
|
21
|
+
this.cameraExternal = null;
|
|
22
|
+
this.cameraInternal = new TgdCameraPerspective({
|
|
23
|
+
fovy: Math.PI / 3,
|
|
24
|
+
distance: 2.7,
|
|
25
|
+
near: 0.01,
|
|
26
|
+
far: 10,
|
|
27
|
+
});
|
|
28
|
+
this.orbiter = null;
|
|
29
|
+
this.tipsPainter = null;
|
|
30
|
+
this.handleExternalToInternal = (externalCamera) => {
|
|
31
|
+
this.cameraInternal.transfo.orientation =
|
|
32
|
+
externalCamera.transfo.orientation;
|
|
33
|
+
};
|
|
34
|
+
this.handleInternalToExternal = (internalCamera) => {
|
|
35
|
+
const { cameraExternal } = this;
|
|
36
|
+
if (cameraExternal) {
|
|
37
|
+
cameraExternal.transfo.orientation =
|
|
38
|
+
internalCamera.transfo.orientation;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
this.handleTap = (event) => {
|
|
42
|
+
var _a;
|
|
43
|
+
const camera = (_a = this.context) === null || _a === void 0 ? void 0 : _a.camera;
|
|
44
|
+
if (!camera)
|
|
45
|
+
return;
|
|
46
|
+
const { origin, direction } = camera.castRay(event.x, event.y);
|
|
47
|
+
const maxDistribution = 1;
|
|
48
|
+
let bestDistribution = maxDistribution;
|
|
49
|
+
let bestTip = TIPS[0];
|
|
50
|
+
for (const tip of TIPS) {
|
|
51
|
+
const distribution = tip.distanceToLineSquared(origin, direction);
|
|
52
|
+
if (distribution < bestDistribution) {
|
|
53
|
+
bestDistribution = distribution;
|
|
54
|
+
bestTip = tip;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (bestDistribution < maxDistribution) {
|
|
58
|
+
const axisX = new TgdVec3();
|
|
59
|
+
const axisY = new TgdVec3();
|
|
60
|
+
const axisZ = bestTip;
|
|
61
|
+
axisX.from(this.findAxisX());
|
|
62
|
+
if (axisX.isClose(axisZ)) {
|
|
63
|
+
axisY.from(this.findAxisY());
|
|
64
|
+
axisX.from(axisY).cross(axisZ);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
axisY.from(axisZ).cross(axisX);
|
|
68
|
+
}
|
|
69
|
+
const quat = new TgdQuat().fromAxes(axisX, axisY, axisZ);
|
|
70
|
+
if (quat.isEqual(camera.transfo.orientation)) {
|
|
71
|
+
quat.rotateAroundY(Math.PI);
|
|
72
|
+
}
|
|
73
|
+
this.eventTipClick.dispatch({
|
|
74
|
+
from: new TgdQuat(camera.transfo.orientation),
|
|
75
|
+
to: quat,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
};
|
|
31
79
|
if (options.canvas)
|
|
32
80
|
this.canvas = options.canvas;
|
|
33
81
|
}
|
|
@@ -42,29 +90,18 @@ export class TgdCanvasGizmo {
|
|
|
42
90
|
detach() {
|
|
43
91
|
const camera = this.cameraExternal;
|
|
44
92
|
if (camera) {
|
|
45
|
-
camera.eventTransformChange.removeListener(this.handleExternalToInternal);
|
|
46
93
|
this.cameraExternal = null;
|
|
47
94
|
}
|
|
48
95
|
}
|
|
49
96
|
attach() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
camera.eventTransformChange.addListener(this.handleExternalToInternal);
|
|
53
|
-
this.context?.paint();
|
|
97
|
+
var _a;
|
|
98
|
+
(_a = this.context) === null || _a === void 0 ? void 0 : _a.paint();
|
|
54
99
|
}
|
|
55
|
-
handleExternalToInternal = (externalCamera) => {
|
|
56
|
-
this.cameraInternal.orientation = externalCamera.orientation;
|
|
57
|
-
};
|
|
58
|
-
handleInternalToExternal = (internalCamera) => {
|
|
59
|
-
const { cameraExternal } = this;
|
|
60
|
-
if (cameraExternal) {
|
|
61
|
-
cameraExternal.orientation = internalCamera.orientation;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
100
|
get canvas() {
|
|
65
101
|
return this._canvas;
|
|
66
102
|
}
|
|
67
103
|
set canvas(canvas) {
|
|
104
|
+
var _a;
|
|
68
105
|
if (canvas === this._canvas)
|
|
69
106
|
return;
|
|
70
107
|
this._canvas = canvas;
|
|
@@ -78,16 +115,10 @@ export class TgdCanvasGizmo {
|
|
|
78
115
|
orbiter.eventChange.removeListener(this.handleInternalToExternal);
|
|
79
116
|
}
|
|
80
117
|
}
|
|
81
|
-
this.tipsPainter
|
|
118
|
+
(_a = this.tipsPainter) === null || _a === void 0 ? void 0 : _a.delete();
|
|
82
119
|
if (!canvas)
|
|
83
120
|
return;
|
|
84
|
-
const context = new TgdContext(canvas, {
|
|
85
|
-
alpha: true,
|
|
86
|
-
depth: true,
|
|
87
|
-
antialias: true,
|
|
88
|
-
name: "GizmoCanvas",
|
|
89
|
-
...this.options,
|
|
90
|
-
});
|
|
121
|
+
const context = new TgdContext(canvas, Object.assign({ alpha: true, depth: true, antialias: true, name: "GizmoCanvas" }, this.options));
|
|
91
122
|
context.inputs.pointer.eventTap.addListener(this.handleTap);
|
|
92
123
|
this.context = context;
|
|
93
124
|
context.camera = this.cameraInternal;
|
|
@@ -104,49 +135,12 @@ export class TgdCanvasGizmo {
|
|
|
104
135
|
}), new TgdPainterDepth(context, { enabled: true }), painter);
|
|
105
136
|
context.paint();
|
|
106
137
|
}
|
|
107
|
-
handleTap = (evt) => {
|
|
108
|
-
const camera = this.context?.camera;
|
|
109
|
-
if (!camera)
|
|
110
|
-
return;
|
|
111
|
-
const { origin, direction } = camera.castRay(evt.x, evt.y);
|
|
112
|
-
const maxDist = 1;
|
|
113
|
-
let bestDist = maxDist;
|
|
114
|
-
let bestTip = TIPS[0];
|
|
115
|
-
for (const tip of TIPS) {
|
|
116
|
-
const dist = tip.distanceToLineSquared(origin, direction);
|
|
117
|
-
if (dist < bestDist) {
|
|
118
|
-
bestDist = dist;
|
|
119
|
-
bestTip = tip;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (bestDist < maxDist) {
|
|
123
|
-
const axisX = new TgdVec3();
|
|
124
|
-
const axisY = new TgdVec3();
|
|
125
|
-
const axisZ = bestTip;
|
|
126
|
-
axisX.from(this.findAxisX());
|
|
127
|
-
if (axisX.isClose(axisZ)) {
|
|
128
|
-
axisY.from(this.findAxisY());
|
|
129
|
-
axisX.from(axisY).cross(axisZ);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
axisY.from(axisZ).cross(axisX);
|
|
133
|
-
}
|
|
134
|
-
const quat = new TgdQuat().fromAxis(axisX, axisY, axisZ);
|
|
135
|
-
if (quat.isEqual(camera.orientation)) {
|
|
136
|
-
quat.rotateAroundY(Math.PI);
|
|
137
|
-
}
|
|
138
|
-
this.eventTipClick.dispatch({
|
|
139
|
-
from: new TgdQuat(camera.orientation),
|
|
140
|
-
to: quat,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
138
|
findAxisX() {
|
|
145
139
|
let bestScore = 0;
|
|
146
140
|
let bestTip = TIPS[0];
|
|
147
141
|
const vec = new TgdVec3();
|
|
148
142
|
const mat = new TgdMat3();
|
|
149
|
-
mat.fromQuat(this.cameraInternal.orientation).transpose();
|
|
143
|
+
mat.fromQuat(this.cameraInternal.transfo.orientation).transpose();
|
|
150
144
|
for (const tip of TIPS) {
|
|
151
145
|
vec.from(tip).applyMatrix(mat);
|
|
152
146
|
if (vec.x > bestScore) {
|
|
@@ -161,7 +155,7 @@ export class TgdCanvasGizmo {
|
|
|
161
155
|
let bestTip = TIPS[0];
|
|
162
156
|
const vec = new TgdVec3();
|
|
163
157
|
const mat = new TgdMat3();
|
|
164
|
-
mat.fromQuat(this.cameraInternal.orientation).transpose();
|
|
158
|
+
mat.fromQuat(this.cameraInternal.transfo.orientation).transpose();
|
|
165
159
|
for (const tip of TIPS) {
|
|
166
160
|
vec.from(tip).applyMatrix(mat);
|
|
167
161
|
if (vec.y > bestScore) {
|
|
@@ -180,4 +174,4 @@ const TIPS = [
|
|
|
180
174
|
new TgdVec3(0, -1, 0),
|
|
181
175
|
new TgdVec3(0, 0, -1),
|
|
182
176
|
];
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2FudmFzL2dpem1vL2dpem1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGNBQWMsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFNNUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFxQnZCLFlBQTZCLFVBQWlDLEVBQUU7UUFBbkMsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFwQmhFOztXQUVHO1FBQ0ksa0JBQWEsR0FBRyxJQUFJLFFBQVEsRUFHL0IsQ0FBQTtRQUVJLFlBQU8sR0FBNkIsSUFBSSxDQUFBO1FBQ3hDLFlBQU8sR0FBc0IsSUFBSSxDQUFBO1FBQ2pDLG1CQUFjLEdBQXFCLElBQUksQ0FBQTtRQUM5QixtQkFBYyxHQUFHLElBQUksb0JBQW9CLENBQUM7WUFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQztZQUNqQixRQUFRLEVBQUUsR0FBRztZQUNiLElBQUksRUFBRSxJQUFJO1lBQ1YsR0FBRyxFQUFFLEVBQUU7U0FDVixDQUFDLENBQUE7UUFDTSxZQUFPLEdBQW9DLElBQUksQ0FBQTtRQUMvQyxnQkFBVyxHQUF1QixJQUFJLENBQUE7UUEwQjdCLDZCQUF3QixHQUFHLENBQUMsY0FBeUIsRUFBRSxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../../../../src/canvas/gizmo/painter/tips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../../../../src/canvas/gizmo/painter/tips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AASjD,qBAAa,WAAY,SAAQ,UAAU;IAK3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAEP,OAAO,EAAE,UAAU;IAuChD,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;CAYhB"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { TgdDataset } from "./../../../dataset/index.js";
|
|
2
2
|
import { TgdPainter } from "./../../../painter/painter.js";
|
|
3
3
|
import { tgdCanvasCreateWithContext2D } from "./../../../utils/index.js";
|
|
4
|
+
import { TgdVertexArray } from "./../../../vao/index.js";
|
|
5
|
+
import { TgdTexture2D } from "./../../../texture/index.js";
|
|
6
|
+
import { TgdProgram } from "./../../../program/index.js";
|
|
4
7
|
import FRAG from "./shader.frag";
|
|
5
8
|
import VERT from "./shader.vert";
|
|
6
9
|
export class TipsPainter extends TgdPainter {
|
|
7
|
-
context;
|
|
8
|
-
texture;
|
|
9
|
-
prg;
|
|
10
|
-
vao;
|
|
11
10
|
constructor(context) {
|
|
12
11
|
super();
|
|
13
12
|
this.context = context;
|
|
14
|
-
this.texture = context
|
|
13
|
+
this.texture = new TgdTexture2D(context)
|
|
14
|
+
.loadBitmap(createTipsCanvas())
|
|
15
|
+
.setParams({
|
|
15
16
|
minFilter: "LINEAR",
|
|
16
17
|
magFilter: "LINEAR",
|
|
17
|
-
})
|
|
18
|
-
|
|
18
|
+
})
|
|
19
|
+
.generateMipmap();
|
|
19
20
|
const data = new TgdDataset({
|
|
20
21
|
attPos: "vec3",
|
|
21
22
|
attUV: "vec2",
|
|
@@ -40,8 +41,8 @@ export class TipsPainter extends TgdPainter {
|
|
|
40
41
|
X, Y,
|
|
41
42
|
2 * X, Y,
|
|
42
43
|
]));
|
|
43
|
-
const prg = context.
|
|
44
|
-
const vao = context.
|
|
44
|
+
const prg = new TgdProgram(context.gl, { vert: VERT, frag: FRAG });
|
|
45
|
+
const vao = new TgdVertexArray(context.gl, prg, [data]);
|
|
45
46
|
this.prg = prg;
|
|
46
47
|
this.vao = vao;
|
|
47
48
|
}
|
|
@@ -52,45 +53,46 @@ export class TipsPainter extends TgdPainter {
|
|
|
52
53
|
const { context, prg, vao } = this;
|
|
53
54
|
const { gl, camera } = context;
|
|
54
55
|
prg.use();
|
|
55
|
-
this.texture.activate(
|
|
56
|
+
this.texture.activate(0);
|
|
57
|
+
prg.uniform1i("uniTexture", 0);
|
|
56
58
|
prg.uniform1f("uniScreenHeight", context.height);
|
|
57
59
|
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
58
60
|
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
59
61
|
vao.bind();
|
|
60
62
|
gl.drawArrays(gl.POINTS, 0, 6);
|
|
61
63
|
}
|
|
62
|
-
setTips() {
|
|
63
|
-
const SIZE = 256;
|
|
64
|
-
const { canvas, ctx } = tgdCanvasCreateWithContext2D(SIZE * 3, SIZE * 2);
|
|
65
|
-
paintDisk(ctx, 0, 0, SIZE, "X", "#f00", "#fff");
|
|
66
|
-
paintDisk(ctx, 1, 0, SIZE, "Y", "#0f0", "#000");
|
|
67
|
-
paintDisk(ctx, 2, 0, SIZE, "Z", "#00f", "#fff");
|
|
68
|
-
paintDisk(ctx, 0, 1, SIZE, "", "#f00", "#500");
|
|
69
|
-
paintDisk(ctx, 1, 1, SIZE, "", "#0f0", "#050");
|
|
70
|
-
paintDisk(ctx, 2, 1, SIZE, "", "#00f", "#005");
|
|
71
|
-
this.texture.loadImage(canvas);
|
|
72
|
-
}
|
|
73
64
|
}
|
|
74
|
-
function
|
|
65
|
+
function createTipsCanvas() {
|
|
66
|
+
const SIZE = 256;
|
|
67
|
+
const { canvas, ctx } = tgdCanvasCreateWithContext2D(SIZE * 3, SIZE * 2);
|
|
68
|
+
paintDisk(ctx, 0, 0, SIZE, "X", "#f00", "#fff");
|
|
69
|
+
paintDisk(ctx, 1, 0, SIZE, "Y", "#0f0", "#000");
|
|
70
|
+
paintDisk(ctx, 2, 0, SIZE, "Z", "#00f", "#fff");
|
|
71
|
+
paintDisk(ctx, 0, 1, SIZE, "", "#f00", "#500");
|
|
72
|
+
paintDisk(ctx, 1, 1, SIZE, "", "#0f0", "#050");
|
|
73
|
+
paintDisk(ctx, 2, 1, SIZE, "", "#00f", "#005");
|
|
74
|
+
return canvas;
|
|
75
|
+
}
|
|
76
|
+
function paintDisk(context, col, row, size, text, colorBack, colorText = "#fff") {
|
|
75
77
|
const x = (col + 0.5) * size;
|
|
76
78
|
const y = (row + 0.5) * size;
|
|
77
79
|
const r = size * 0.45;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
context.fillStyle = colorBack;
|
|
81
|
+
context.beginPath();
|
|
82
|
+
context.ellipse(x, y, r, r, 0, 0, 2 * Math.PI);
|
|
83
|
+
context.fill();
|
|
82
84
|
if (text) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
context.font = `bold ${size * 0.5}px sans-serif`;
|
|
86
|
+
context.fillStyle = colorText;
|
|
87
|
+
context.textAlign = "center";
|
|
88
|
+
context.textBaseline = "middle";
|
|
89
|
+
context.fillText(text, x, y);
|
|
88
90
|
}
|
|
89
91
|
else {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
context.fillStyle = colorText;
|
|
93
|
+
context.beginPath();
|
|
94
|
+
context.ellipse(x, y, r * 0.8, r * 0.8, 0, 0, 2 * Math.PI);
|
|
95
|
+
context.fill();
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYW52YXMvZ2l6bW8vcGFpbnRlci90aXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxPQUFPLElBQUksTUFBTSxlQUFlLENBQUE7QUFDaEMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBRWhDLE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVTtJQUt2QyxZQUE2QixPQUFtQjtRQUM1QyxLQUFLLEVBQUUsQ0FBQTtRQURrQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRTVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDO2FBQ25DLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNQLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1NBQ3RCLENBQUM7YUFDRCxjQUFjLEVBQUUsQ0FBQTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN4QixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1NBQ2hCLENBQUMsQ0FBQTtRQUNGLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQztZQUMvQixDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUM7WUFDVCxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUM7WUFDVCxDQUFDLEVBQUcsQ0FBQyxFQUFHLENBQUM7WUFDVixDQUFDLENBQUMsRUFBRyxDQUFDLEVBQUcsQ0FBQztZQUNULENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRyxDQUFDO1lBQ1QsQ0FBQyxFQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDYixDQUFDLENBQUMsQ0FBQTtRQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2Ysa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDO1lBQzdCLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDTixDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ04sQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNsQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDbEMsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUE7UUFDOUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDOUIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEQsR0FBRyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNsRSxHQUFHLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDcEUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ1YsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0o7QUFFRCxTQUFTLGdCQUFnQjtJQUNyQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUE7SUFDaEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDL0MsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQy9DLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDOUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM5QyxPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQ2QsT0FBaUMsRUFDakMsR0FBVyxFQUNYLEdBQVcsRUFDWCxJQUFZLEVBQ1osSUFBWSxFQUNaLFNBQWlCLEVBQ2pCLFNBQVMsR0FBRyxNQUFNO0lBRWxCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUE7SUFDNUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNyQixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtJQUM3QixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDbkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzlDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNkLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxPQUFPLENBQUMsSUFBSSxHQUFHLFFBQVEsSUFBSSxHQUFHLEdBQUcsZUFBZSxDQUFBO1FBQ2hELE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzdCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFBO1FBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNoQyxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzdCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbEIsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -4,11 +4,10 @@ import { TgdContext } from "./../../context/index.js";
|
|
|
4
4
|
* You can click one of the axis to force the camera to face it.
|
|
5
5
|
*/
|
|
6
6
|
export class TgdCanvasLandscape {
|
|
7
|
-
options;
|
|
8
|
-
_canvas = null;
|
|
9
|
-
context = null;
|
|
10
7
|
constructor(options) {
|
|
11
8
|
this.options = options;
|
|
9
|
+
this._canvas = null;
|
|
10
|
+
this.context = null;
|
|
12
11
|
if (options.canvas)
|
|
13
12
|
this.canvas = options.canvas;
|
|
14
13
|
}
|
|
@@ -25,16 +24,10 @@ export class TgdCanvasLandscape {
|
|
|
25
24
|
}
|
|
26
25
|
if (!canvas)
|
|
27
26
|
return;
|
|
28
|
-
const context = new TgdContext(canvas, {
|
|
29
|
-
alpha: false,
|
|
30
|
-
depth: true,
|
|
31
|
-
antialias: true,
|
|
32
|
-
name: "LandscapeCanvas",
|
|
33
|
-
...this.options,
|
|
34
|
-
});
|
|
27
|
+
const context = new TgdContext(canvas, Object.assign({ alpha: false, depth: true, antialias: true, name: "LandscapeCanvas" }, this.options));
|
|
35
28
|
this.context = context;
|
|
36
29
|
context.paint();
|
|
37
30
|
this.options.onReady(context);
|
|
38
31
|
}
|
|
39
32
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZHNjYXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhbnZhcy9sYW5kc2NhcGUvbGFuZHNjYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sY0FBYyxDQUFBO0FBTzVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJM0IsWUFBNkIsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFIdkQsWUFBTyxHQUE2QixJQUFJLENBQUE7UUFDeEMsWUFBTyxHQUFzQixJQUFJLENBQUE7UUFHckMsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtJQUNwRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFnQztRQUN2QyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFFbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU07UUFFbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxrQkFDakMsS0FBSyxFQUFFLEtBQUssRUFDWixLQUFLLEVBQUUsSUFBSSxFQUNYLFNBQVMsRUFBRSxJQUFJLEVBQ2YsSUFBSSxFQUFFLGlCQUFpQixJQUNwQixJQUFJLENBQUMsT0FBTyxFQUNqQixDQUFBO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakMsQ0FBQztDQUNKIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TgdCodeFunctions } from "../shader";
|
|
2
|
+
/**
|
|
3
|
+
* Fast hue shifting for colors.
|
|
4
|
+
* Hue shift is expressed in __radians__.
|
|
5
|
+
*/
|
|
6
|
+
export declare function tgdCodeFunction_shiftHue({ name, }: {
|
|
7
|
+
name: string;
|
|
8
|
+
}): TgdCodeFunctions;
|
|
9
|
+
export declare function tgdCodeFunction_luminance({ name, }: {
|
|
10
|
+
name: string;
|
|
11
|
+
}): TgdCodeFunctions;
|
|
12
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/code/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,IAAiB,GACpB,EAAE;IACC,IAAI,EAAE,MAAM,CAAA;CACf,GAAG,gBAAgB,CAanB;AAED,wBAAgB,yBAAyB,CAAC,EACtC,IAAkB,GACrB,EAAE;IACC,IAAI,EAAE,MAAM,CAAA;CACf,GAAG,gBAAgB,CAMnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fast hue shifting for colors.
|
|
3
|
+
* Hue shift is expressed in __radians__.
|
|
4
|
+
*/
|
|
5
|
+
export function tgdCodeFunction_shiftHue({ name = "shiftHue", }) {
|
|
6
|
+
return {
|
|
7
|
+
[name]: `vec3 ${name}(vec3 color, float hue) {
|
|
8
|
+
const vec3 k = vec3(0.5773502691896258);
|
|
9
|
+
float cosAngle = cos(hue);
|
|
10
|
+
return vec3(
|
|
11
|
+
color * cosAngle
|
|
12
|
+
+ cross(k, color) * sin(hue)
|
|
13
|
+
+ k * dot(k, color) * (1.0 - cosAngle)
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
`,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function tgdCodeFunction_luminance({ name = "luminance", }) {
|
|
20
|
+
return {
|
|
21
|
+
[name]: `float ${name}(vec3 color) {
|
|
22
|
+
return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
|
|
23
|
+
}`,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZS9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsRUFDckMsSUFBSSxHQUFHLFVBQVUsR0FHcEI7SUFDRyxPQUFPO1FBQ0gsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLElBQUk7Ozs7Ozs7OztDQVMzQjtLQUNJLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEVBQ3RDLElBQUksR0FBRyxXQUFXLEdBR3JCO0lBQ0csT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxJQUFJOztFQUUzQjtLQUNHLENBQUE7QUFDTCxDQUFDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TgdCodeFunctions } from "../shader";
|
|
2
|
+
declare const CONSTS_FLOAT: {
|
|
3
|
+
E: number;
|
|
4
|
+
PI: number;
|
|
5
|
+
TAU: number;
|
|
6
|
+
PI_INVERSE: number;
|
|
7
|
+
TAU_INVERSE: number;
|
|
8
|
+
DEG_PER_RAD: number;
|
|
9
|
+
RAD_PER_DEG: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Define common constants.
|
|
13
|
+
*/
|
|
14
|
+
export declare function tgdCodeConstants(...names: Array<keyof typeof CONSTS_FLOAT>): TgdCodeFunctions;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/code/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,QAAA,MAAM,YAAY;;;;;;;;CAQjB,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,YAAY,CAAC,GAC3C,gBAAgB,CAMlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const CONSTS_FLOAT = {
|
|
2
|
+
E: Math.E,
|
|
3
|
+
PI: Math.PI,
|
|
4
|
+
TAU: 2 * Math.PI,
|
|
5
|
+
PI_INVERSE: 1 / Math.PI,
|
|
6
|
+
TAU_INVERSE: 0.5 / Math.PI,
|
|
7
|
+
DEG_PER_RAD: 180 / Math.PI,
|
|
8
|
+
RAD_PER_DEG: Math.PI / 180,
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Define common constants.
|
|
12
|
+
*/
|
|
13
|
+
export function tgdCodeConstants(...names) {
|
|
14
|
+
const code = {};
|
|
15
|
+
for (const name of names) {
|
|
16
|
+
code[name] = `const float ${name} = ${CONSTS_FLOAT[name]};`;
|
|
17
|
+
}
|
|
18
|
+
return code;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvZGUvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sWUFBWSxHQUFHO0lBQ2pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNULEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtJQUNYLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUU7SUFDaEIsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRTtJQUN2QixXQUFXLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFO0lBQzFCLFdBQVcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUU7SUFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRztDQUM3QixDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLEdBQUcsS0FBdUM7SUFFMUMsTUFBTSxJQUFJLEdBQXFCLEVBQUUsQ0FBQTtJQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLElBQUksTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUMvRCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDZixDQUFDIn0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TgdCodeFunctions } from "../shader";
|
|
2
|
+
/**
|
|
3
|
+
* Convert uv coords ([0.0, +1.0]) into xy coords ([-1.0, +1.0]).
|
|
4
|
+
* Requires uniform `uniAspectRatio`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function tgdCodeFunction_uv2xy(options?: Partial<{
|
|
7
|
+
name: string;
|
|
8
|
+
uniAspectRatio: string;
|
|
9
|
+
}>): TgdCodeFunctions;
|
|
10
|
+
/**
|
|
11
|
+
* Convert xy coords ([-1.0, +1.0]) into uv coords ([0.0, +1.0]) .
|
|
12
|
+
* Requires uniform `uniAspectRatioInverse`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function tgdCodeFunction_xy2uv(options?: Partial<{
|
|
15
|
+
name: string;
|
|
16
|
+
uniAspectRatioInverse: string;
|
|
17
|
+
}>): TgdCodeFunctions;
|
|
18
|
+
/**
|
|
19
|
+
* Convert othogonal coords into polar coords.
|
|
20
|
+
* The function will return a vec2 with the length as first component,
|
|
21
|
+
* and the angle as second.
|
|
22
|
+
*/
|
|
23
|
+
export declare function tgdCodeFunction_xy2polar(options: {
|
|
24
|
+
name: string;
|
|
25
|
+
}): TgdCodeFunctions;
|
|
26
|
+
/**
|
|
27
|
+
* Reverse function of `xy2polar`.
|
|
28
|
+
* @see tgdCodeFunction_xy2polar
|
|
29
|
+
*/
|
|
30
|
+
export declare function tgdCodeFunction_polar2xy(options: {
|
|
31
|
+
name: string;
|
|
32
|
+
}): TgdCodeFunctions;
|
|
33
|
+
/**
|
|
34
|
+
* Reverse function of `xy2polar`.
|
|
35
|
+
* Requires uniform `uniAspectRatioInverse`.
|
|
36
|
+
* @see tgdCodeFunction_xy2polar
|
|
37
|
+
*/
|
|
38
|
+
export declare function tgdCodeFunction_polar2uv(options?: Partial<{
|
|
39
|
+
name: string;
|
|
40
|
+
uniAspectRatioInverse: string;
|
|
41
|
+
}>): TgdCodeFunctions;
|
|
42
|
+
export declare function tgdCodeFunction_uv2polar(options?: Partial<{
|
|
43
|
+
name: string;
|
|
44
|
+
uniAspectRatio: string;
|
|
45
|
+
}>): TgdCodeFunctions;
|
|
46
|
+
//# sourceMappingURL=coords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coords.d.ts","sourceRoot":"","sources":["../../src/code/coords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,OAAO,GAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAM,GAChE,gBAAgB,CAQlB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,OAAO,GAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAAM,GACvE,gBAAgB,CASlB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAA;CACf,GAAG,gBAAgB,CAWnB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAA;CACf,GAAG,gBAAgB,CAanB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,GAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAAM,GACvE,gBAAgB,CAiBlB;AAED,wBAAgB,wBAAwB,CACpC,OAAO,GAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAM,GAChE,gBAAgB,CAYlB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert uv coords ([0.0, +1.0]) into xy coords ([-1.0, +1.0]).
|
|
3
|
+
* Requires uniform `uniAspectRatio`.
|
|
4
|
+
*/
|
|
5
|
+
export function tgdCodeFunction_uv2xy(options = {}) {
|
|
6
|
+
const { name = "uv2xy", uniAspectRatio = "uniAspectRatio" } = options;
|
|
7
|
+
return {
|
|
8
|
+
[name]: `vec2 ${name}(vec2 uv) {
|
|
9
|
+
return 2.0 * (uv - vec2(0.5)) * vec2(${uniAspectRatio}, 1.0);
|
|
10
|
+
}
|
|
11
|
+
`,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Convert xy coords ([-1.0, +1.0]) into uv coords ([0.0, +1.0]) .
|
|
16
|
+
* Requires uniform `uniAspectRatioInverse`.
|
|
17
|
+
*/
|
|
18
|
+
export function tgdCodeFunction_xy2uv(options = {}) {
|
|
19
|
+
const { name = "xy2uv", uniAspectRatioInverse = "uniAspectRatioInverse" } = options;
|
|
20
|
+
return {
|
|
21
|
+
[name]: `vec2 ${name}(vec2 xy) {
|
|
22
|
+
return (0.5 * xy * vec2(${uniAspectRatioInverse}, 1.0)) + vec2(0.5);
|
|
23
|
+
}
|
|
24
|
+
`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Convert othogonal coords into polar coords.
|
|
29
|
+
* The function will return a vec2 with the length as first component,
|
|
30
|
+
* and the angle as second.
|
|
31
|
+
*/
|
|
32
|
+
export function tgdCodeFunction_xy2polar(options) {
|
|
33
|
+
const { name = "xy2polar" } = options;
|
|
34
|
+
return {
|
|
35
|
+
[name]: `vec2 ${name}(vec2 xy) {
|
|
36
|
+
return vec2(
|
|
37
|
+
length(xy),
|
|
38
|
+
atan(xy.y, xy.x)
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Reverse function of `xy2polar`.
|
|
46
|
+
* @see tgdCodeFunction_xy2polar
|
|
47
|
+
*/
|
|
48
|
+
export function tgdCodeFunction_polar2xy(options) {
|
|
49
|
+
const { name = "polar2uv" } = options;
|
|
50
|
+
return {
|
|
51
|
+
[name]: `vec2 ≈${name}(vec2 polar) {
|
|
52
|
+
float r = polar.x;
|
|
53
|
+
float a = polar.y;
|
|
54
|
+
return vec2(
|
|
55
|
+
r * cos(a),
|
|
56
|
+
r * sin(a)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reverse function of `xy2polar`.
|
|
64
|
+
* Requires uniform `uniAspectRatioInverse`.
|
|
65
|
+
* @see tgdCodeFunction_xy2polar
|
|
66
|
+
*/
|
|
67
|
+
export function tgdCodeFunction_polar2uv(options = {}) {
|
|
68
|
+
const { name = "polar2uv", uniAspectRatioInverse = "uniAspectRatioInverse", } = options;
|
|
69
|
+
return {
|
|
70
|
+
[name]: `vec2 ${name}(vec2 polar) {
|
|
71
|
+
float r = polar.x;
|
|
72
|
+
float a = polar.y;
|
|
73
|
+
vec2 xy = vec2(
|
|
74
|
+
r * cos(a),
|
|
75
|
+
r * sin(a)
|
|
76
|
+
);
|
|
77
|
+
return (0.5 * xy * vec2(${uniAspectRatioInverse}, 1.0)) + vec2(0.5);
|
|
78
|
+
}
|
|
79
|
+
`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function tgdCodeFunction_uv2polar(options = {}) {
|
|
83
|
+
const { name = "uv2polar", uniAspectRatio = "uniAspectRatio" } = options;
|
|
84
|
+
return {
|
|
85
|
+
[name]: `vec2 ${name}(vec2 uv) {
|
|
86
|
+
vec2 xy = 2.0 * (uv - vec2(0.5)) * vec2(${uniAspectRatio}, 1.0);
|
|
87
|
+
return vec2(
|
|
88
|
+
length(xy),
|
|
89
|
+
atan(xy.y, xy.x)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvZGUvY29vcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsVUFBNkQsRUFBRTtJQUUvRCxNQUFNLEVBQUUsSUFBSSxHQUFHLE9BQU8sRUFBRSxjQUFjLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDckUsT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxJQUFJOzJDQUNlLGNBQWM7O0NBRXhEO0tBQ0ksQ0FBQTtBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFVBQW9FLEVBQUU7SUFFdEUsTUFBTSxFQUFFLElBQUksR0FBRyxPQUFPLEVBQUUscUJBQXFCLEdBQUcsdUJBQXVCLEVBQUUsR0FDckUsT0FBTyxDQUFBO0lBQ1gsT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxJQUFJOzhCQUNFLHFCQUFxQjs7Q0FFbEQ7S0FDSSxDQUFBO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FFeEM7SUFDRyxNQUFNLEVBQUUsSUFBSSxHQUFHLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUNyQyxPQUFPO1FBQ0gsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLElBQUk7Ozs7OztDQU0zQjtLQUNJLENBQUE7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BRXhDO0lBQ0csTUFBTSxFQUFFLElBQUksR0FBRyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDckMsT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxJQUFJOzs7Ozs7OztDQVE1QjtLQUNJLENBQUE7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDcEMsVUFBb0UsRUFBRTtJQUV0RSxNQUFNLEVBQ0YsSUFBSSxHQUFHLFVBQVUsRUFDakIscUJBQXFCLEdBQUcsdUJBQXVCLEdBQ2xELEdBQUcsT0FBTyxDQUFBO0lBQ1gsT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxJQUFJOzs7Ozs7OzhCQU9FLHFCQUFxQjs7Q0FFbEQ7S0FDSSxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDcEMsVUFBNkQsRUFBRTtJQUUvRCxNQUFNLEVBQUUsSUFBSSxHQUFHLFVBQVUsRUFBRSxjQUFjLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDeEUsT0FBTztRQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxJQUFJOzhDQUNrQixjQUFjOzs7Ozs7Q0FNM0Q7S0FDSSxDQUFBO0FBQ0wsQ0FBQyJ9
|