@tolokoban/tgd 2.0.1 → 2.0.3
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 +0 -0
- package/lib/dist/buffer/buffer.d.ts.map +0 -0
- package/lib/dist/buffer/buffer.js +37 -0
- package/lib/dist/buffer/index.d.ts +0 -0
- package/lib/dist/buffer/index.d.ts.map +0 -0
- package/lib/dist/buffer/index.js +2 -0
- package/lib/dist/camera/camera-orthographic.d.ts +13 -5
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +97 -0
- package/lib/dist/camera/camera-perspective.d.ts +19 -9
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +94 -0
- package/lib/dist/camera/camera.d.ts +84 -18
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +368 -0
- package/lib/dist/camera/index.d.ts +3 -3
- package/lib/dist/camera/index.d.ts.map +1 -1
- package/lib/dist/camera/index.js +4 -0
- package/lib/dist/canvas/gizmo/gizmo.d.ts +42 -0
- package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -0
- package/lib/dist/canvas/gizmo/gizmo.js +183 -0
- package/lib/dist/canvas/gizmo/index.d.ts +2 -0
- package/lib/dist/canvas/gizmo/index.d.ts.map +1 -0
- package/lib/dist/canvas/gizmo/index.js +2 -0
- package/lib/dist/canvas/gizmo/painter/shader.frag +17 -0
- package/lib/dist/canvas/gizmo/painter/shader.vert +24 -0
- package/lib/dist/canvas/gizmo/painter/tips.d.ts +13 -0
- package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -0
- package/lib/dist/canvas/gizmo/painter/tips.js +96 -0
- package/lib/dist/canvas/index.d.ts +3 -0
- package/lib/dist/canvas/index.d.ts.map +1 -0
- package/lib/dist/canvas/index.js +3 -0
- package/lib/dist/canvas/landscape/index.d.ts +2 -0
- package/lib/dist/canvas/landscape/index.d.ts.map +1 -0
- package/lib/dist/canvas/landscape/index.js +2 -0
- package/lib/dist/canvas/landscape/landscape.d.ts +18 -0
- package/lib/dist/canvas/landscape/landscape.d.ts.map +1 -0
- package/lib/dist/canvas/landscape/landscape.js +40 -0
- package/lib/dist/color/color.d.ts +22 -0
- package/lib/dist/color/color.d.ts.map +1 -0
- package/lib/dist/color/color.js +160 -0
- package/lib/dist/color/index.d.ts +2 -0
- package/lib/dist/color/index.d.ts.map +1 -0
- package/lib/dist/color/index.js +2 -0
- package/lib/dist/context/animation/animation-manager.d.ts +8 -0
- package/lib/dist/context/animation/animation-manager.d.ts.map +1 -0
- package/lib/dist/context/animation/animation-manager.js +41 -0
- package/lib/dist/context/context.d.ts +95 -8
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +297 -0
- package/lib/dist/context/index.d.ts +0 -0
- package/lib/dist/context/index.d.ts.map +0 -0
- package/lib/dist/context/index.js +2 -0
- package/lib/dist/controller/camera/index.d.ts +0 -0
- package/lib/dist/controller/camera/index.d.ts.map +0 -0
- package/lib/dist/controller/camera/index.js +2 -0
- package/lib/dist/controller/camera/orbit.d.ts +79 -4
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +186 -0
- package/lib/dist/controller/index.d.ts +0 -0
- package/lib/dist/controller/index.d.ts.map +0 -0
- package/lib/dist/controller/index.js +2 -0
- package/lib/dist/dataset/dataset.d.ts +78 -10
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +217 -0
- package/lib/dist/dataset/index.d.ts +0 -0
- package/lib/dist/dataset/index.d.ts.map +0 -0
- package/lib/dist/dataset/index.js +2 -0
- package/lib/dist/debug.d.ts +0 -0
- package/lib/dist/debug.d.ts.map +0 -0
- package/lib/dist/debug.js +13 -0
- package/lib/dist/event/event.d.ts +0 -0
- package/lib/dist/event/event.d.ts.map +0 -0
- package/lib/dist/event/event.js +13 -0
- package/lib/dist/event/index.d.ts +0 -0
- package/lib/dist/event/index.d.ts.map +0 -0
- package/lib/dist/event/index.js +2 -0
- package/lib/dist/filter/blur.d.ts +10 -0
- package/lib/dist/filter/blur.d.ts.map +1 -0
- package/lib/dist/filter/blur.js +42 -0
- package/lib/dist/filter/filter.d.ts +39 -0
- package/lib/dist/filter/filter.d.ts.map +1 -0
- package/lib/dist/filter/filter.js +43 -0
- package/lib/dist/filter/hue-rotation.d.ts +12 -0
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -0
- package/lib/dist/filter/hue-rotation.js +41 -0
- package/lib/dist/filter/index.d.ts +4 -0
- package/lib/dist/filter/index.d.ts.map +1 -0
- package/lib/dist/filter/index.js +4 -0
- package/lib/dist/geometry/box.d.ts +10 -0
- package/lib/dist/geometry/box.d.ts.map +1 -0
- package/lib/dist/geometry/box.js +136 -0
- package/lib/dist/geometry/geometry.d.ts +47 -0
- package/lib/dist/geometry/geometry.d.ts.map +1 -0
- package/lib/dist/geometry/geometry.js +190 -0
- package/lib/dist/geometry/index.d.ts +3 -0
- package/lib/dist/geometry/index.d.ts.map +1 -0
- package/lib/dist/geometry/index.js +3 -0
- package/lib/dist/index.d.ts +7 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +21 -2
- package/lib/dist/input/index.d.ts +0 -0
- package/lib/dist/input/index.d.ts.map +0 -0
- package/lib/dist/input/index.js +4 -0
- package/lib/dist/input/inputs.d.ts +0 -0
- package/lib/dist/input/inputs.d.ts.map +1 -1
- package/lib/dist/input/inputs.js +23 -0
- package/lib/dist/input/keyboard.d.ts +3 -0
- package/lib/dist/input/keyboard.d.ts.map +1 -1
- package/lib/dist/input/keyboard.js +46 -0
- package/lib/dist/input/pointer.d.ts +17 -33
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +138 -0
- package/lib/dist/light/index.d.ts +2 -0
- package/lib/dist/light/index.d.ts.map +1 -0
- package/lib/dist/light/index.js +2 -0
- package/lib/dist/light/light.d.ts +16 -0
- package/lib/dist/light/light.d.ts.map +1 -0
- package/lib/dist/light/light.js +19 -0
- package/lib/dist/loader/image.d.ts +4 -0
- package/lib/dist/loader/image.d.ts.map +1 -1
- package/lib/dist/loader/image.js +31 -0
- package/lib/dist/loader/index.d.ts +0 -0
- package/lib/dist/loader/index.d.ts.map +0 -0
- package/lib/dist/loader/index.js +2 -0
- package/lib/dist/material/diffuse.d.ts +28 -0
- package/lib/dist/material/diffuse.d.ts.map +1 -0
- package/lib/dist/material/diffuse.js +68 -0
- package/lib/dist/material/ghost.d.ts +19 -0
- package/lib/dist/material/ghost.d.ts.map +1 -0
- package/lib/dist/material/ghost.js +25 -0
- package/lib/dist/material/index.d.ts +5 -0
- package/lib/dist/material/index.d.ts.map +1 -0
- package/lib/dist/material/index.js +5 -0
- package/lib/dist/material/material.d.ts +29 -0
- package/lib/dist/material/material.d.ts.map +1 -0
- package/lib/dist/material/material.js +14 -0
- package/lib/dist/material/normals.d.ts +13 -0
- package/lib/dist/material/normals.d.ts.map +1 -0
- package/lib/dist/material/normals.js +20 -0
- package/lib/dist/math/index.d.ts +3 -0
- package/lib/dist/math/index.d.ts.map +1 -1
- package/lib/dist/math/index.js +8 -0
- package/lib/dist/math/mat3.d.ts +8 -0
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +154 -0
- package/lib/dist/math/mat4.d.ts +111 -2
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +402 -0
- package/lib/dist/math/mat4.test.d.ts +0 -0
- package/lib/dist/math/mat4.test.d.ts.map +0 -0
- package/lib/dist/math/mat4.test.js +57 -0
- package/lib/dist/math/quat.d.ts +1 -0
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +184 -0
- package/lib/dist/math/quat.test.d.ts +0 -0
- package/lib/dist/math/quat.test.d.ts.map +0 -0
- package/lib/dist/math/quat.test.js +45 -0
- package/lib/dist/math/transfo.d.ts +27 -0
- package/lib/dist/math/transfo.d.ts.map +1 -0
- package/lib/dist/math/transfo.js +86 -0
- package/lib/dist/math/vec2.d.ts +34 -0
- package/lib/dist/math/vec2.d.ts.map +1 -0
- package/lib/dist/math/vec2.js +119 -0
- package/lib/dist/math/vec3.d.ts +24 -13
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +187 -0
- package/lib/dist/math/vec3.test.d.ts +2 -0
- package/lib/dist/math/vec3.test.d.ts.map +1 -0
- package/lib/dist/math/vec3.test.js +22 -0
- package/lib/dist/math/vec4.d.ts +8 -4
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +152 -0
- package/lib/dist/math/vec4.test.d.ts +0 -0
- package/lib/dist/math/vec4.test.d.ts.map +0 -0
- package/lib/dist/math/vec4.test.js +15 -0
- package/lib/dist/painter/axis/axis.d.ts +1 -1
- package/lib/dist/painter/axis/axis.d.ts.map +1 -1
- package/lib/dist/painter/axis/axis.frag +11 -0
- package/lib/dist/painter/axis/axis.js +84 -0
- package/lib/dist/painter/axis/axis.vert +21 -0
- package/lib/dist/painter/axis/index.d.ts +0 -0
- package/lib/dist/painter/axis/index.d.ts.map +0 -0
- package/lib/dist/painter/axis/index.js +2 -0
- package/lib/dist/painter/background/background.d.ts +5 -1
- package/lib/dist/painter/background/background.d.ts.map +1 -1
- package/lib/dist/painter/background/background.frag +11 -0
- package/lib/dist/painter/background/background.js +63 -0
- package/lib/dist/painter/background/background.vert +16 -0
- package/lib/dist/painter/background/index.d.ts +0 -0
- package/lib/dist/painter/background/index.d.ts.map +0 -0
- package/lib/dist/painter/background/index.js +2 -0
- package/lib/dist/painter/clear.d.ts +11 -6
- package/lib/dist/painter/clear.d.ts.map +1 -1
- package/lib/dist/painter/clear.js +51 -0
- package/lib/dist/painter/depth.d.ts +0 -0
- package/lib/dist/painter/depth.d.ts.map +1 -1
- package/lib/dist/painter/depth.js +34 -0
- package/lib/dist/painter/filter/filter.d.ts +23 -0
- package/lib/dist/painter/filter/filter.d.ts.map +1 -0
- package/lib/dist/painter/filter/filter.frag +15 -0
- package/lib/dist/painter/filter/filter.js +76 -0
- package/lib/dist/painter/filter/filter.vert +11 -0
- package/lib/dist/painter/filter/index.d.ts +2 -0
- package/lib/dist/painter/filter/index.d.ts.map +1 -0
- package/lib/dist/painter/filter/index.js +2 -0
- package/lib/dist/painter/framebuffer.d.ts +38 -0
- package/lib/dist/painter/framebuffer.d.ts.map +1 -0
- package/lib/dist/painter/framebuffer.js +102 -0
- package/lib/dist/painter/group.d.ts +4 -0
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +59 -0
- package/lib/dist/painter/index.d.ts +3 -1
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +12 -0
- package/lib/dist/painter/logic.d.ts +3 -0
- package/lib/dist/painter/logic.d.ts.map +1 -1
- package/lib/dist/painter/logic.js +16 -0
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +14 -0
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -0
- package/lib/dist/painter/mesh/gltf/gltf.js +93 -0
- package/lib/dist/painter/mesh/gltf/index.d.ts +2 -0
- package/lib/dist/painter/mesh/gltf/index.d.ts.map +1 -0
- package/lib/dist/painter/mesh/gltf/index.js +2 -0
- package/lib/dist/painter/mesh/index.d.ts +4 -0
- package/lib/dist/painter/mesh/index.d.ts.map +1 -0
- package/lib/dist/painter/mesh/index.js +4 -0
- package/lib/dist/painter/mesh/mesh/index.d.ts +2 -0
- package/lib/dist/painter/mesh/mesh/index.d.ts.map +1 -0
- package/lib/dist/painter/mesh/mesh/index.js +2 -0
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +32 -0
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -0
- package/lib/dist/painter/mesh/mesh/mesh.js +128 -0
- package/lib/dist/painter/mesh/normals/index.d.ts +2 -0
- package/lib/dist/painter/mesh/normals/index.d.ts.map +1 -0
- package/lib/dist/painter/mesh/normals/index.js +2 -0
- package/lib/dist/painter/mesh/normals/normals.d.ts +18 -0
- package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -0
- package/lib/dist/painter/mesh/normals/normals.js +53 -0
- package/lib/dist/painter/mesh/normals/shader.frag +14 -0
- package/lib/dist/painter/mesh/normals/shader.vert +18 -0
- package/lib/dist/painter/node.d.ts +26 -0
- package/lib/dist/painter/node.d.ts.map +1 -0
- package/lib/dist/painter/node.js +67 -0
- package/lib/dist/painter/painter.d.ts +1 -0
- package/lib/dist/painter/painter.d.ts.map +1 -1
- package/lib/dist/painter/painter.js +4 -0
- package/lib/dist/painter/segments/index.d.ts +0 -0
- package/lib/dist/painter/segments/index.d.ts.map +0 -0
- package/lib/dist/painter/segments/index.js +2 -0
- package/lib/dist/painter/segments/segments.d.ts +56 -17
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.frag +12 -0
- package/lib/dist/painter/segments/segments.js +196 -0
- package/lib/dist/painter/segments/segments.vert +114 -0
- package/lib/dist/painter/skybox/index.d.ts +0 -0
- package/lib/dist/painter/skybox/index.d.ts.map +0 -0
- package/lib/dist/painter/skybox/index.js +2 -0
- package/lib/dist/painter/skybox/skybox.d.ts +2 -2
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.frag +15 -0
- package/lib/dist/painter/skybox/skybox.js +59 -0
- package/lib/dist/painter/skybox/skybox.vert +10 -0
- package/lib/dist/parser/for-each-line.d.ts +3 -0
- package/lib/dist/parser/for-each-line.d.ts.map +1 -1
- package/lib/dist/parser/for-each-line.js +17 -0
- package/lib/dist/parser/gltf/gltf.d.ts +34 -0
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -0
- package/lib/dist/parser/gltf/gltf.js +164 -0
- package/lib/dist/parser/gltf/index.d.ts +2 -0
- package/lib/dist/parser/gltf/index.d.ts.map +1 -0
- package/lib/dist/parser/gltf/index.js +2 -0
- package/lib/dist/parser/gltf/parser.d.ts +9 -0
- package/lib/dist/parser/gltf/parser.d.ts.map +1 -0
- package/lib/dist/parser/gltf/parser.js +53 -0
- package/lib/dist/parser/index.d.ts +1 -0
- package/lib/dist/parser/index.d.ts.map +1 -1
- package/lib/dist/parser/index.js +3 -0
- package/lib/dist/parser/mesh/wavefront.d.ts +70 -12
- package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
- package/lib/dist/parser/mesh/wavefront.js +246 -0
- package/lib/dist/program/index.d.ts +0 -0
- package/lib/dist/program/index.d.ts.map +0 -0
- package/lib/dist/program/index.js +2 -0
- package/lib/dist/program/program.d.ts +15 -0
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +220 -0
- package/lib/dist/ref-map.d.ts +15 -0
- package/lib/dist/ref-map.d.ts.map +1 -1
- package/lib/dist/ref-map.js +48 -0
- package/lib/dist/resource/index.d.ts +0 -0
- package/lib/dist/resource/index.d.ts.map +0 -0
- package/lib/dist/resource/index.js +5 -0
- package/lib/dist/resource/program.d.ts +0 -0
- package/lib/dist/resource/program.d.ts.map +1 -1
- package/lib/dist/resource/program.js +20 -0
- package/lib/dist/resource/resource.d.ts +7 -1
- package/lib/dist/resource/resource.d.ts.map +1 -1
- package/lib/dist/resource/resource.js +48 -0
- package/lib/dist/resource/texture2d.d.ts +1 -0
- package/lib/dist/resource/texture2d.d.ts.map +1 -1
- package/lib/dist/resource/texture2d.js +20 -0
- package/lib/dist/resource/textureCube.d.ts +0 -0
- package/lib/dist/resource/textureCube.d.ts.map +1 -1
- package/lib/dist/resource/textureCube.js +17 -0
- package/lib/dist/shader/code.d.ts +12 -0
- package/lib/dist/shader/code.d.ts.map +1 -0
- package/lib/dist/shader/code.js +32 -0
- package/lib/dist/shader/fragment.d.ts +23 -0
- package/lib/dist/shader/fragment.d.ts.map +1 -0
- package/lib/dist/shader/fragment.js +37 -0
- package/lib/dist/shader/vertex.d.ts +23 -0
- package/lib/dist/shader/vertex.d.ts.map +1 -0
- package/lib/dist/shader/vertex.js +35 -0
- package/lib/dist/texture/index.d.ts +0 -0
- package/lib/dist/texture/index.d.ts.map +0 -0
- package/lib/dist/texture/index.js +3 -0
- package/lib/dist/texture/texture2d.d.ts +4 -3
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +132 -0
- package/lib/dist/texture/textureCube.d.ts +0 -0
- package/lib/dist/texture/textureCube.d.ts.map +1 -1
- package/lib/dist/texture/textureCube.js +87 -0
- package/lib/dist/types/animation.d.ts +20 -0
- package/lib/dist/types/animation.d.ts.map +1 -0
- package/lib/dist/types/animation.js +2 -0
- package/lib/dist/types/arrays.d.ts +33 -0
- package/lib/dist/types/arrays.d.ts.map +1 -0
- package/lib/dist/types/arrays.js +2 -0
- package/lib/dist/types/context.d.ts +7 -2
- package/lib/dist/types/context.d.ts.map +1 -1
- package/lib/dist/types/context.js +2 -0
- package/lib/dist/types/gltf.d.ts +200 -0
- package/lib/dist/types/gltf.d.ts.map +1 -0
- package/lib/dist/types/gltf.js +117 -0
- package/lib/dist/types/guards.d.ts +25 -0
- package/lib/dist/types/guards.d.ts.map +1 -0
- package/lib/dist/types/guards.js +218 -0
- package/lib/dist/types/index.d.ts +2 -0
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +10 -0
- package/lib/dist/types/input-keyboard.d.ts +3 -0
- package/lib/dist/types/input-keyboard.d.ts.map +1 -1
- package/lib/dist/types/input-keyboard.js +2 -0
- package/lib/dist/types/input-pointer.d.ts +33 -20
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/types/input-pointer.js +2 -0
- package/lib/dist/types/mesh.d.ts +10 -0
- package/lib/dist/types/mesh.d.ts.map +1 -0
- package/lib/dist/types/mesh.js +2 -0
- package/lib/dist/types/painter.d.ts +0 -0
- package/lib/dist/types/painter.d.ts.map +0 -0
- package/lib/dist/types/painter.js +2 -0
- package/lib/dist/types/program.d.ts +15 -0
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/types/program.js +2 -0
- package/lib/dist/types/texture2d.d.ts +14 -6
- package/lib/dist/types/texture2d.d.ts.map +1 -1
- package/lib/dist/types/texture2d.js +2 -0
- package/lib/dist/types/textureCube.d.ts +39 -0
- package/lib/dist/types/textureCube.d.ts.map +1 -1
- package/lib/dist/types/textureCube.js +2 -0
- package/lib/dist/types/webgl.d.ts +28 -1
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +2 -0
- package/lib/dist/utils/action/camera.d.ts +13 -0
- package/lib/dist/utils/action/camera.d.ts.map +1 -0
- package/lib/dist/utils/action/camera.js +30 -0
- package/lib/dist/utils/action/index.d.ts +2 -0
- package/lib/dist/utils/action/index.d.ts.map +1 -0
- package/lib/dist/utils/action/index.js +2 -0
- package/lib/dist/utils/canvas.d.ts +9 -1
- package/lib/dist/utils/canvas.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +23 -0
- package/lib/dist/utils/ease-func/ease-func.d.ts +32 -0
- package/lib/dist/utils/ease-func/ease-func.d.ts.map +1 -0
- package/lib/dist/utils/ease-func/ease-func.js +142 -0
- package/lib/dist/utils/ease-func/index.d.ts +2 -0
- package/lib/dist/utils/ease-func/index.d.ts.map +1 -0
- package/lib/dist/utils/ease-func/index.js +2 -0
- package/lib/dist/utils/fetch/fetch.d.ts +2 -0
- package/lib/dist/utils/fetch/fetch.d.ts.map +1 -0
- package/lib/dist/utils/fetch/fetch.js +5 -0
- package/lib/dist/utils/fetch/index.d.ts +2 -0
- package/lib/dist/utils/fetch/index.d.ts.map +1 -0
- package/lib/dist/utils/fetch/index.js +2 -0
- package/lib/dist/utils/fullscreen.d.ts +21 -0
- package/lib/dist/utils/fullscreen.d.ts.map +1 -0
- package/lib/dist/utils/fullscreen.js +64 -0
- package/lib/dist/utils/index.d.ts +4 -0
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +6 -0
- package/lib/dist/utils/math.d.ts +3 -0
- package/lib/dist/utils/math.d.ts.map +1 -0
- package/lib/dist/utils/math.js +11 -0
- package/lib/dist/utils/ref-map.d.ts +22 -0
- package/lib/dist/utils/ref-map.d.ts.map +1 -0
- package/lib/dist/utils/ref-map.js +48 -0
- package/lib/dist/vao/index.d.ts +0 -0
- package/lib/dist/vao/index.d.ts.map +0 -0
- package/lib/dist/vao/index.js +2 -0
- package/lib/dist/vao/vao.d.ts +5 -1
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +67 -0
- package/package.json +2 -4
- package/lib/dist/index.js.map +0 -1
- package/lib/dist/mesh/mesh.d.ts +0 -11
- package/lib/dist/mesh/mesh.d.ts.map +0 -1
- package/lib/dist/painter/isometric/isometric.frag.d.ts +0 -3
- package/lib/dist/painter/isometric/isometric.frag.d.ts.map +0 -1
- package/lib/dist/painter/isometric/isometric.vert.d.ts +0 -3
- package/lib/dist/painter/isometric/isometric.vert.d.ts.map +0 -1
- package/lib/dist/painter/primitive/primitive.frag.d.ts +0 -3
- package/lib/dist/painter/primitive/primitive.frag.d.ts.map +0 -1
- package/lib/dist/painter/primitive/primitive.vert.d.ts +0 -3
- package/lib/dist/painter/primitive/primitive.vert.d.ts.map +0 -1
- package/lib/dist/painter/sprites/sprites-painter.frag.d.ts +0 -3
- package/lib/dist/painter/sprites/sprites-painter.frag.d.ts.map +0 -1
- package/lib/dist/painter/sprites/sprites-painter.vert.d.ts +0 -3
- package/lib/dist/painter/sprites/sprites-painter.vert.d.ts.map +0 -1
|
@@ -1,48 +1,135 @@
|
|
|
1
|
-
import { TgdCamera } from "../camera";
|
|
2
|
-
import { TgdPainter } from "../painter/painter";
|
|
3
|
-
import { TgdContextInterface, TgdProgram } from "../types";
|
|
4
|
-
import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube } from "../resource";
|
|
5
1
|
import { TgdBuffer, TgdBufferOptions } from "../buffer";
|
|
2
|
+
import { TgdCamera } from "../camera";
|
|
6
3
|
import { TgdDataset } from "../dataset";
|
|
7
|
-
import { TgdVertexArray } from "../vao";
|
|
8
4
|
import { TgdInputs } from "../input";
|
|
5
|
+
import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube } from "../resource";
|
|
6
|
+
import { TgdContextInterface, TgdProgram } from "../types";
|
|
9
7
|
import { TgdPainterFunction as TgdPainterFunctionType } from "../types/painter";
|
|
8
|
+
import { TgdVertexArray } from "../vao";
|
|
9
|
+
import { TgdPainter } from "../painter/painter";
|
|
10
|
+
import { TgdAnimation } from "../types/animation";
|
|
11
|
+
/**
|
|
12
|
+
* You can pass all the attributes of the [WebGLContextAttributes](https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes)
|
|
13
|
+
* object.
|
|
14
|
+
* @see {@link TgdContext}
|
|
15
|
+
*/
|
|
10
16
|
export type TgdContextOptions = WebGLContextAttributes & {
|
|
11
|
-
|
|
17
|
+
/**
|
|
18
|
+
* You can override the behaviour for when a resize even occurs,
|
|
19
|
+
* by providing a callback `onResize(...)`.
|
|
20
|
+
*
|
|
21
|
+
* By default, this is what will happen:
|
|
22
|
+
* ```
|
|
23
|
+
* gl.canvas.width = width
|
|
24
|
+
* gl.canvas.height = height
|
|
25
|
+
* gl.viewport(0, 0, width, height)
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
onResize?(this: void, context: TgdContextInterface, width: number, height: number): void;
|
|
29
|
+
name?: string;
|
|
12
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* This class gives you a [WebGL2RenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext) for a given canvas,
|
|
33
|
+
* through its public readonly attribute `gl`.
|
|
34
|
+
*
|
|
35
|
+
* It also acts as a resource manager for most of the WebGL2 reources you need.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```
|
|
39
|
+
* import { TgdContext, TgdPainterClear } from "@tgd"
|
|
40
|
+
*
|
|
41
|
+
* export function paint(canvas: HTMLCanvasElement) {
|
|
42
|
+
* const ctx = new TgdContext(canvas)
|
|
43
|
+
* const clear = new TgdPainterClear(ctx, { color: [1, 0.667, 0, 1] })
|
|
44
|
+
* ctx.add(clear)
|
|
45
|
+
* ctx.paint()
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
13
49
|
export declare class TgdContext implements TgdContextInterface {
|
|
14
50
|
readonly canvas: HTMLCanvasElement;
|
|
51
|
+
private readonly options;
|
|
52
|
+
private static incrementalId;
|
|
53
|
+
readonly name: string;
|
|
15
54
|
readonly gl: WebGL2RenderingContext;
|
|
16
55
|
readonly inputs: TgdInputs;
|
|
17
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Resource manager for WebGLProgram.
|
|
58
|
+
*/
|
|
18
59
|
readonly programs: TgdResourceProgram;
|
|
19
60
|
readonly textures2D: TgdResourceTexture2D;
|
|
20
61
|
private _texturesCube;
|
|
62
|
+
private _camera;
|
|
21
63
|
private readonly observer;
|
|
22
64
|
private readonly painters;
|
|
23
65
|
private isPlaying;
|
|
24
66
|
private requestAnimationFrame;
|
|
25
67
|
private lastTime;
|
|
68
|
+
private readonly animationManager;
|
|
69
|
+
/**
|
|
70
|
+
* @param canvas The canvas to which attach a WebGL2 context.
|
|
71
|
+
* @see {@link TgdContextOptions}
|
|
72
|
+
*/
|
|
26
73
|
constructor(canvas: HTMLCanvasElement, options?: TgdContextOptions);
|
|
74
|
+
get camera(): TgdCamera;
|
|
75
|
+
set camera(camera: TgdCamera);
|
|
27
76
|
get texturesCube(): TgdResourceTextureCube;
|
|
77
|
+
animSchedule(animation: TgdAnimation): TgdAnimation;
|
|
78
|
+
animCancel(animation: TgdAnimation): void;
|
|
28
79
|
get onEnter(): TgdPainterFunctionType | undefined;
|
|
29
80
|
set onEnter(v: TgdPainterFunctionType | undefined);
|
|
30
81
|
get onExit(): TgdPainterFunctionType | undefined;
|
|
31
82
|
set onExit(v: TgdPainterFunctionType | undefined);
|
|
32
83
|
get width(): number;
|
|
33
84
|
get height(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Is the animation playing?
|
|
87
|
+
*/
|
|
34
88
|
get playing(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* If `playing` is true, the method `paint()` will be called
|
|
91
|
+
* for every animation frame.
|
|
92
|
+
* @see paint()
|
|
93
|
+
*/
|
|
35
94
|
set playing(value: boolean);
|
|
95
|
+
/**
|
|
96
|
+
* Start the animation.
|
|
97
|
+
* You can achieve the same result with `context.playing = true`.
|
|
98
|
+
*
|
|
99
|
+
* @see playing
|
|
100
|
+
*/
|
|
36
101
|
play(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Pause the animation.
|
|
104
|
+
* You can achieve the same result with `context.playing = false`.
|
|
105
|
+
*
|
|
106
|
+
* @see playing
|
|
107
|
+
*/
|
|
37
108
|
pause(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Check if `painter` already exist in the current list of painters.
|
|
111
|
+
*/
|
|
38
112
|
has(painter: TgdPainter): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Add one or more painters.
|
|
115
|
+
*/
|
|
39
116
|
add(...painters: TgdPainter[]): void;
|
|
117
|
+
/**
|
|
118
|
+
* Remove one or more painters.
|
|
119
|
+
* */
|
|
40
120
|
remove(...painters: TgdPainter[]): void;
|
|
41
121
|
removeAll(): void;
|
|
42
122
|
createBuffer(data?: BufferSource, options?: Partial<TgdBufferOptions>): TgdBuffer;
|
|
43
|
-
|
|
123
|
+
createFramebuffer(): WebGLFramebuffer;
|
|
124
|
+
createVAO(program?: TgdProgram, datasets?: Readonly<TgdDataset>[], elements?: Uint8Array | Uint16Array | Uint32Array | BufferSource): TgdVertexArray;
|
|
125
|
+
takeSnapshot(target: HTMLCanvasElement): void;
|
|
126
|
+
lookupWebglConstant(value: number): string;
|
|
127
|
+
/**
|
|
128
|
+
* Trigger the painters to render the scene.
|
|
129
|
+
*/
|
|
44
130
|
readonly paint: () => void;
|
|
45
131
|
private readonly actualPaint;
|
|
46
132
|
destroy(): void;
|
|
133
|
+
stateReset(): WebGL2RenderingContext;
|
|
47
134
|
}
|
|
48
135
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { TgdBuffer } from "./../buffer/index.js";
|
|
2
|
+
import { TgdCameraPerspective } from "./../camera/index.js";
|
|
3
|
+
import { TgdInputs } from "./../input/index.js";
|
|
4
|
+
import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube, } from "./../resource/index.js";
|
|
5
|
+
import { TgdVertexArray } from "./../vao/index.js";
|
|
6
|
+
import { TgdPainterGroup } from "../painter/group.js";
|
|
7
|
+
import { tgdCanvasCreate } from "../utils/index.js";
|
|
8
|
+
import { TgdManagerAnimation } from "./animation/animation-manager.js";
|
|
9
|
+
/**
|
|
10
|
+
* This class gives you a [WebGL2RenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext) for a given canvas,
|
|
11
|
+
* through its public readonly attribute `gl`.
|
|
12
|
+
*
|
|
13
|
+
* It also acts as a resource manager for most of the WebGL2 reources you need.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```
|
|
17
|
+
* import { TgdContext, TgdPainterClear } from "@tgd"
|
|
18
|
+
*
|
|
19
|
+
* export function paint(canvas: HTMLCanvasElement) {
|
|
20
|
+
* const ctx = new TgdContext(canvas)
|
|
21
|
+
* const clear = new TgdPainterClear(ctx, { color: [1, 0.667, 0, 1] })
|
|
22
|
+
* ctx.add(clear)
|
|
23
|
+
* ctx.paint()
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class TgdContext {
|
|
28
|
+
canvas;
|
|
29
|
+
options;
|
|
30
|
+
static incrementalId = 1;
|
|
31
|
+
name;
|
|
32
|
+
gl;
|
|
33
|
+
inputs;
|
|
34
|
+
/**
|
|
35
|
+
* Resource manager for WebGLProgram.
|
|
36
|
+
*/
|
|
37
|
+
programs;
|
|
38
|
+
textures2D;
|
|
39
|
+
_texturesCube = null;
|
|
40
|
+
_camera;
|
|
41
|
+
observer;
|
|
42
|
+
painters;
|
|
43
|
+
isPlaying = false;
|
|
44
|
+
requestAnimationFrame = -1;
|
|
45
|
+
// Last time the context has been painted.
|
|
46
|
+
lastTime = -1;
|
|
47
|
+
animationManager = new TgdManagerAnimation();
|
|
48
|
+
/**
|
|
49
|
+
* @param canvas The canvas to which attach a WebGL2 context.
|
|
50
|
+
* @see {@link TgdContextOptions}
|
|
51
|
+
*/
|
|
52
|
+
constructor(canvas, options = {}) {
|
|
53
|
+
this.canvas = canvas;
|
|
54
|
+
this.options = options;
|
|
55
|
+
const gl = canvas.getContext("webgl2", options);
|
|
56
|
+
if (!gl)
|
|
57
|
+
throw Error("Unable to create a WebGL2 context!");
|
|
58
|
+
this.gl = gl;
|
|
59
|
+
this.programs = new TgdResourceProgram(gl);
|
|
60
|
+
this.textures2D = new TgdResourceTexture2D(this);
|
|
61
|
+
this.observer = new ResizeObserver(() => {
|
|
62
|
+
const width = canvas.clientWidth;
|
|
63
|
+
const height = canvas.clientHeight;
|
|
64
|
+
canvas.width = width;
|
|
65
|
+
canvas.height = height;
|
|
66
|
+
gl.viewport(0, 0, width, height);
|
|
67
|
+
this.paint();
|
|
68
|
+
options.onResize?.(this, canvas.clientWidth, canvas.clientHeight);
|
|
69
|
+
});
|
|
70
|
+
this.observer.observe(canvas);
|
|
71
|
+
this.inputs = new TgdInputs(canvas);
|
|
72
|
+
this._camera = new TgdCameraPerspective();
|
|
73
|
+
this.painters = new TgdPainterGroup();
|
|
74
|
+
this.name = options.name ?? `TgdContext#${TgdContext.incrementalId++}`;
|
|
75
|
+
// Prevent system gestures.
|
|
76
|
+
canvas.style.touchAction = "none";
|
|
77
|
+
}
|
|
78
|
+
get camera() {
|
|
79
|
+
return this._camera;
|
|
80
|
+
}
|
|
81
|
+
set camera(camera) {
|
|
82
|
+
if (camera === this._camera)
|
|
83
|
+
return;
|
|
84
|
+
this._camera.eventTransformChange.removeListener(this.paint);
|
|
85
|
+
camera.eventTransformChange.addListener(this.paint);
|
|
86
|
+
this._camera = camera;
|
|
87
|
+
this.paint();
|
|
88
|
+
}
|
|
89
|
+
get texturesCube() {
|
|
90
|
+
if (!this._texturesCube) {
|
|
91
|
+
this._texturesCube = new TgdResourceTextureCube(this);
|
|
92
|
+
}
|
|
93
|
+
return this._texturesCube;
|
|
94
|
+
}
|
|
95
|
+
animSchedule(animation) {
|
|
96
|
+
const result = this.animationManager.schedule(animation);
|
|
97
|
+
this.paint();
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
animCancel(animation) {
|
|
101
|
+
this.animationManager.cancel(animation);
|
|
102
|
+
}
|
|
103
|
+
get onEnter() {
|
|
104
|
+
return this.painters.onEnter;
|
|
105
|
+
}
|
|
106
|
+
set onEnter(v) {
|
|
107
|
+
this.painters.onEnter = v;
|
|
108
|
+
}
|
|
109
|
+
get onExit() {
|
|
110
|
+
return this.painters.onExit;
|
|
111
|
+
}
|
|
112
|
+
set onExit(v) {
|
|
113
|
+
this.painters.onExit = v;
|
|
114
|
+
}
|
|
115
|
+
get width() {
|
|
116
|
+
return this.gl.drawingBufferWidth;
|
|
117
|
+
}
|
|
118
|
+
get height() {
|
|
119
|
+
return this.gl.drawingBufferHeight;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Is the animation playing?
|
|
123
|
+
*/
|
|
124
|
+
get playing() {
|
|
125
|
+
return this.isPlaying;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* If `playing` is true, the method `paint()` will be called
|
|
129
|
+
* for every animation frame.
|
|
130
|
+
* @see paint()
|
|
131
|
+
*/
|
|
132
|
+
set playing(value) {
|
|
133
|
+
if (value === this.isPlaying)
|
|
134
|
+
return;
|
|
135
|
+
if (value)
|
|
136
|
+
this.paint();
|
|
137
|
+
this.isPlaying = value;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Start the animation.
|
|
141
|
+
* You can achieve the same result with `context.playing = true`.
|
|
142
|
+
*
|
|
143
|
+
* @see playing
|
|
144
|
+
*/
|
|
145
|
+
play() {
|
|
146
|
+
this.playing = true;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Pause the animation.
|
|
150
|
+
* You can achieve the same result with `context.playing = false`.
|
|
151
|
+
*
|
|
152
|
+
* @see playing
|
|
153
|
+
*/
|
|
154
|
+
pause() {
|
|
155
|
+
this.playing = false;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Check if `painter` already exist in the current list of painters.
|
|
159
|
+
*/
|
|
160
|
+
has(painter) {
|
|
161
|
+
return this.painters.has(painter);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Add one or more painters.
|
|
165
|
+
*/
|
|
166
|
+
add(...painters) {
|
|
167
|
+
this.painters.add(...painters);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Remove one or more painters.
|
|
171
|
+
* */
|
|
172
|
+
remove(...painters) {
|
|
173
|
+
this.painters.remove(...painters);
|
|
174
|
+
}
|
|
175
|
+
removeAll() {
|
|
176
|
+
this.painters.removeAll();
|
|
177
|
+
}
|
|
178
|
+
createBuffer(data, options) {
|
|
179
|
+
return new TgdBuffer(this.gl, data, options);
|
|
180
|
+
}
|
|
181
|
+
createFramebuffer() {
|
|
182
|
+
const fb = this.gl.createFramebuffer();
|
|
183
|
+
if (!fb)
|
|
184
|
+
throw Error("Unable to create a WebGL2 Framebuffer!");
|
|
185
|
+
return fb;
|
|
186
|
+
}
|
|
187
|
+
createVAO(program, datasets, elements) {
|
|
188
|
+
return new TgdVertexArray(this.gl, program, datasets, elements);
|
|
189
|
+
}
|
|
190
|
+
takeSnapshot(target) {
|
|
191
|
+
const ctx = target.getContext("2d");
|
|
192
|
+
if (!ctx)
|
|
193
|
+
throw Error("[TgdContext.takeSnapshot] We cannot get a 2D context for the target canvas! Maybe it already has another type of context.");
|
|
194
|
+
const { width, height } = target;
|
|
195
|
+
const canvas = tgdCanvasCreate(width, height);
|
|
196
|
+
const context = new TgdContext(canvas, this.options);
|
|
197
|
+
this.painters.forEachChild(painter => context.add(painter));
|
|
198
|
+
context.actualPaint(this.lastTime);
|
|
199
|
+
context.gl.finish();
|
|
200
|
+
ctx.drawImage(canvas, 0, 0);
|
|
201
|
+
}
|
|
202
|
+
lookupWebglConstant(value) {
|
|
203
|
+
const { gl } = this;
|
|
204
|
+
for (const key in gl) {
|
|
205
|
+
if (gl[key] === value)
|
|
206
|
+
return key;
|
|
207
|
+
}
|
|
208
|
+
return `Unknown gl[${value}]`;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Trigger the painters to render the scene.
|
|
212
|
+
*/
|
|
213
|
+
paint = () => {
|
|
214
|
+
window.cancelAnimationFrame(this.requestAnimationFrame);
|
|
215
|
+
this.requestAnimationFrame = window.requestAnimationFrame(this.actualPaint);
|
|
216
|
+
};
|
|
217
|
+
actualPaint = (time) => {
|
|
218
|
+
const { lastTime, gl } = this;
|
|
219
|
+
if (lastTime < 0) {
|
|
220
|
+
this.lastTime = time;
|
|
221
|
+
// First frame, let's skip it to get better timing.
|
|
222
|
+
this.paint();
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const delay = time - this.lastTime;
|
|
226
|
+
this.lastTime = time;
|
|
227
|
+
this._camera.screenWidth = gl.drawingBufferWidth;
|
|
228
|
+
this._camera.screenHeight = gl.drawingBufferHeight;
|
|
229
|
+
this.painters.paint(time, delay);
|
|
230
|
+
if (this.animationManager.paint(time) || this.isPlaying)
|
|
231
|
+
this.paint();
|
|
232
|
+
};
|
|
233
|
+
destroy() {
|
|
234
|
+
window.cancelAnimationFrame(this.requestAnimationFrame);
|
|
235
|
+
this.playing = false;
|
|
236
|
+
this.painters.delete();
|
|
237
|
+
this.observer.unobserve(this.canvas);
|
|
238
|
+
}
|
|
239
|
+
// eslint-disable-next-line max-statements
|
|
240
|
+
stateReset() {
|
|
241
|
+
const { gl } = this;
|
|
242
|
+
const numAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
|
|
243
|
+
const tmp = gl.createBuffer();
|
|
244
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tmp);
|
|
245
|
+
for (let ii = 0; ii < numAttribs; ++ii) {
|
|
246
|
+
gl.disableVertexAttribArray(ii);
|
|
247
|
+
gl.vertexAttribPointer(ii, 4, gl.FLOAT, false, 0, 0);
|
|
248
|
+
gl.vertexAttrib1f(ii, 0);
|
|
249
|
+
}
|
|
250
|
+
gl.deleteBuffer(tmp);
|
|
251
|
+
const numTextureUnits = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
|
|
252
|
+
for (let ii = 0; ii < numTextureUnits; ++ii) {
|
|
253
|
+
gl.activeTexture(gl.TEXTURE0 + ii);
|
|
254
|
+
gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
|
|
255
|
+
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
256
|
+
}
|
|
257
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
258
|
+
gl.useProgram(null);
|
|
259
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
260
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
|
|
261
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
262
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
263
|
+
gl.disable(gl.BLEND);
|
|
264
|
+
gl.disable(gl.CULL_FACE);
|
|
265
|
+
gl.disable(gl.DEPTH_TEST);
|
|
266
|
+
gl.disable(gl.DITHER);
|
|
267
|
+
gl.disable(gl.SCISSOR_TEST);
|
|
268
|
+
gl.blendColor(0, 0, 0, 0);
|
|
269
|
+
gl.blendEquation(gl.FUNC_ADD);
|
|
270
|
+
gl.blendFunc(gl.ONE, gl.ZERO);
|
|
271
|
+
gl.clearColor(0, 0, 0, 0);
|
|
272
|
+
gl.clearDepth(1);
|
|
273
|
+
gl.clearStencil(-1);
|
|
274
|
+
gl.colorMask(true, true, true, true);
|
|
275
|
+
gl.cullFace(gl.BACK);
|
|
276
|
+
gl.depthFunc(gl.LESS);
|
|
277
|
+
gl.depthMask(true);
|
|
278
|
+
gl.depthRange(0, 1);
|
|
279
|
+
gl.frontFace(gl.CCW);
|
|
280
|
+
gl.hint(gl.GENERATE_MIPMAP_HINT, gl.DONT_CARE);
|
|
281
|
+
gl.lineWidth(1);
|
|
282
|
+
gl.pixelStorei(gl.PACK_ALIGNMENT, 4);
|
|
283
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
|
|
284
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
285
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
286
|
+
gl.polygonOffset(0, 0);
|
|
287
|
+
gl.sampleCoverage(1, false);
|
|
288
|
+
gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);
|
|
289
|
+
gl.stencilFunc(gl.ALWAYS, 0, 0xffffffff);
|
|
290
|
+
gl.stencilMask(0xffffffff);
|
|
291
|
+
gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
|
|
292
|
+
gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
|
|
293
|
+
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
|
|
294
|
+
return gl;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUE7QUFDekQsT0FBTyxFQUFhLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsc0JBQXNCLEdBQ3pCLE1BQU0sZUFBZSxDQUFBO0FBR3RCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUE2Qm5FOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBMkJDO0lBQ0M7SUEzQmIsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7SUFFaEIsSUFBSSxDQUFRO0lBQ1osRUFBRSxDQUF3QjtJQUMxQixNQUFNLENBQVc7SUFDakM7O09BRUc7SUFDYSxRQUFRLENBQW9CO0lBQzVCLFVBQVUsQ0FBc0I7SUFFeEMsYUFBYSxHQUFrQyxJQUFJLENBQUE7SUFDbkQsT0FBTyxDQUFXO0lBQ1QsUUFBUSxDQUFnQjtJQUN4QixRQUFRLENBQWlCO0lBQ2xDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDakIscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDbEMsMENBQTBDO0lBQ2xDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNKLGdCQUFnQixHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQTtJQUU3RDs7O09BR0c7SUFDSCxZQUNvQixNQUF5QixFQUN4QixVQUE2QixFQUFFO1FBRGhDLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBRWhELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxFQUFFO1lBQUUsTUFBTSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUUxRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFBO1lBQ2xDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1lBQ3RCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ1osT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyRSxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUE7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxjQUFjLFVBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFBO1FBQ3RFLDJCQUEyQjtRQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUE7SUFDckMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBaUI7UUFDeEIsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRW5DLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM1RCxNQUFNLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtRQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDaEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF1QjtRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBdUI7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUNoQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBcUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO0lBQy9CLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFxQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFBO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUN6QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILElBQUksT0FBTyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFNO1FBRXBDLElBQUksS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxPQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxHQUFHLFFBQXNCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOztTQUVLO0lBQ0wsTUFBTSxDQUFDLEdBQUcsUUFBc0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FDUixJQUFtQixFQUNuQixPQUFtQztRQUVuQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRCxpQkFBaUI7UUFDYixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDdEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO1FBRTlELE9BQU8sRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FDTCxPQUFvQixFQUNwQixRQUFpQyxFQUNqQyxRQUFnRTtRQUVoRSxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXlCO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLEdBQUc7WUFDSixNQUFNLEtBQUssQ0FDUCwySEFBMkgsQ0FDOUgsQ0FBQTtRQUVMLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUMzRCxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNsQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ25CLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYTtRQUM3QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ25CLEtBQUssTUFBTSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbkIsSUFBSSxFQUFFLENBQUMsR0FBbUMsQ0FBQyxLQUFLLEtBQUs7Z0JBQUUsT0FBTyxHQUFHLENBQUE7UUFDckUsQ0FBQztRQUNELE9BQU8sY0FBYyxLQUFLLEdBQUcsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDTSxLQUFLLEdBQUcsR0FBRyxFQUFFO1FBQ2xCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUN2RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUNyRCxJQUFJLENBQUMsV0FBVyxDQUNuQixDQUFBO0lBQ0wsQ0FBQyxDQUFBO0lBRWdCLFdBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQzVDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzdCLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7WUFDcEIsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNaLE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFBO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQTtRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3pFLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxVQUFVO1FBQ04sTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNuQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBVyxDQUFBO1FBQ25FLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUM3QixFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDbkMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMvQixFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDcEQsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUNELEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFcEIsTUFBTSxlQUFlLEdBQVcsRUFBRSxDQUFDLFlBQVksQ0FDM0MsRUFBRSxDQUFDLHVCQUF1QixDQUNuQixDQUFBO1FBQ1gsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQTtZQUNsQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN6QyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUVELEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3BDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFBO1FBQzVDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN4QyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUMxQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN4QixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN6QixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMzQixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN6QixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hCLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNuQixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3BDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3BCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEIsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDZixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDcEMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdEMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDN0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDeEQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdEIsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDM0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkQsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN4QyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxFQUFFLENBQUMsS0FBSyxDQUNKLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUNwRSxDQUFBO1FBRUQsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDIn0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,19 +1,94 @@
|
|
|
1
|
+
import { TgdContextInterface, TgdInputPointerModifierKeys } from "../../types";
|
|
1
2
|
import { TgdEvent } from "../../event";
|
|
2
|
-
import {
|
|
3
|
+
import { TgdCamera } from "../../camera";
|
|
4
|
+
export interface TgdControllerCameraOrbitZoomRequest extends TgdInputPointerModifierKeys {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}
|
|
3
8
|
export interface TgdControllerCameraOrbitOptions {
|
|
9
|
+
minZoom: number;
|
|
10
|
+
maxZoom: number;
|
|
4
11
|
speedOrbit: number;
|
|
5
12
|
speedZoom: number;
|
|
13
|
+
speedPanning: number;
|
|
14
|
+
/**
|
|
15
|
+
* Time in msec during which the orbiting continues
|
|
16
|
+
* after the pointer stop touching.
|
|
17
|
+
*/
|
|
18
|
+
inertiaOrbit: number;
|
|
19
|
+
/**
|
|
20
|
+
* Time in msec during which the zooming continues
|
|
21
|
+
* after the pointer stop touching.
|
|
22
|
+
*
|
|
23
|
+
* Default to 0.
|
|
24
|
+
*/
|
|
25
|
+
inertiaZoom: number;
|
|
26
|
+
/**
|
|
27
|
+
* Time in msec during which the panning continues
|
|
28
|
+
* after the pointer stop touching.
|
|
29
|
+
*
|
|
30
|
+
* Default to 0.
|
|
31
|
+
*/
|
|
32
|
+
inertiaPanning: number;
|
|
33
|
+
/**
|
|
34
|
+
* If `true`, pannig will only act on `camera.shift`,
|
|
35
|
+
* not on `camera.target`.
|
|
36
|
+
*
|
|
37
|
+
* Default to 0.
|
|
38
|
+
*/
|
|
39
|
+
fixedTarget: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Zooming can be done by the mouse wheel.
|
|
42
|
+
* In this case, we may want to prevent it when the
|
|
43
|
+
* canvas is not in fullscreen, to let the rest of
|
|
44
|
+
* the page to scroll.
|
|
45
|
+
*
|
|
46
|
+
* This function, if defined, will be called just
|
|
47
|
+
* before the zoom event. If it returns `false`,
|
|
48
|
+
* the event is not dispatched.
|
|
49
|
+
*/
|
|
50
|
+
onZoomRequest(this: void, evt: TgdControllerCameraOrbitZoomRequest): boolean;
|
|
6
51
|
}
|
|
7
52
|
export declare class TgdControllerCameraOrbit {
|
|
8
53
|
private readonly context;
|
|
54
|
+
readonly eventChange: TgdEvent<TgdCamera>;
|
|
55
|
+
minZoom: number;
|
|
56
|
+
maxZoom: number;
|
|
57
|
+
/**
|
|
58
|
+
* The camera will only move if `enabled === true`.
|
|
59
|
+
*/
|
|
9
60
|
enabled: boolean;
|
|
10
61
|
speedZoom: number;
|
|
11
62
|
speedOrbit: number;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
63
|
+
speedPanning: number;
|
|
64
|
+
inertiaZoom: number;
|
|
65
|
+
inertiaOrbit: number;
|
|
66
|
+
inertiaPanning: number;
|
|
67
|
+
/**
|
|
68
|
+
* If `true`, pannig will only act on `camera.shift`,
|
|
69
|
+
* not on `camera.target`.
|
|
70
|
+
*/
|
|
71
|
+
fixedTarget: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Zooming can be done by the mouse wheel.
|
|
74
|
+
* In this case, we may want to prevent it when the
|
|
75
|
+
* canvas is not in fullscreen, to let the rest of
|
|
76
|
+
* the page to scroll.
|
|
77
|
+
*
|
|
78
|
+
* This function, if defined, will be called just
|
|
79
|
+
* before the zoom event. If it returns `false`,
|
|
80
|
+
* the event is not dispatched.
|
|
81
|
+
*/
|
|
82
|
+
onZoomRequest: (this: void, evt: TgdControllerCameraOrbitZoomRequest) => boolean;
|
|
83
|
+
private animOrbit;
|
|
84
|
+
constructor(context: TgdContextInterface, { minZoom, maxZoom, speedZoom, speedOrbit, speedPanning, inertiaZoom, inertiaOrbit, inertiaPanning, fixedTarget, onZoomRequest, }?: Partial<TgdControllerCameraOrbitOptions>);
|
|
15
85
|
detach(): void;
|
|
16
86
|
private readonly handleMove;
|
|
87
|
+
private orbit;
|
|
88
|
+
private readonly handleMoveStart;
|
|
89
|
+
private readonly handleMoveEnd;
|
|
90
|
+
private handlePan;
|
|
91
|
+
private handleRotateAroundZ;
|
|
17
92
|
private fireOrbitChange;
|
|
18
93
|
private readonly handleZoom;
|
|
19
94
|
private fireZoomChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../../../src/controller/camera/orbit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../../../src/controller/camera/orbit.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEnB,2BAA2B,EAE9B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,mCACb,SAAQ,2BAA2B;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,+BAA+B;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,mCAAmC,GAAG,OAAO,CAAA;CAC/E;AAED,qBAAa,wBAAwB;IAqC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IApC5B,SAAgB,WAAW,sBAA4B;IAChD,OAAO,SAAO;IACd,OAAO,SAAW;IACzB;;OAEG;IACI,OAAO,UAAO;IACd,SAAS,SAAI;IACb,UAAU,SAAI;IACd,YAAY,SAAI;IAChB,WAAW,SAAI;IACf,YAAY,SAAI;IAChB,cAAc,SAAI;IACzB;;;OAGG;IACI,WAAW,UAAQ;IAC1B;;;;;;;;;OASG;IACI,aAAa,EAAE,CAClB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,mCAAmC,KACvC,OAAO,CAAA;IAEZ,OAAO,CAAC,SAAS,CAA4B;gBAGxB,OAAO,EAAE,mBAAmB,EAC7C,EACI,OAAc,EACd,OAAkB,EAClB,SAAa,EACb,UAAc,EACd,YAAgB,EAChB,WAAe,EACf,YAAgB,EAChB,cAAkB,EAClB,WAAmB,EACnB,aAA0B,GAC7B,GAAE,OAAO,CAAC,+BAA+B,CAAM;IAmBpD,MAAM;IAMN,OAAO,CAAC,QAAQ,CAAC,UAAU,CAkB1B;IAED,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK/B;IAED,OAAO,CAAC,QAAQ,CAAC,aAAa,CAsB7B;IAED,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAuB1B;IAED,OAAO,CAAC,cAAc;CAGzB"}
|