@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
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { tgdEasingFunctionOutQuad } from "./../../utils/index.js";
|
|
2
|
+
import { clamp } from "./../../utils/math.js";
|
|
3
|
+
import { TgdEvent } from "./../../event/index.js";
|
|
4
|
+
export class TgdControllerCameraOrbit {
|
|
5
|
+
context;
|
|
6
|
+
eventChange = new TgdEvent();
|
|
7
|
+
minZoom = 1e-3;
|
|
8
|
+
maxZoom = Infinity;
|
|
9
|
+
/**
|
|
10
|
+
* The camera will only move if `enabled === true`.
|
|
11
|
+
*/
|
|
12
|
+
enabled = true;
|
|
13
|
+
speedZoom = 1;
|
|
14
|
+
speedOrbit = 1;
|
|
15
|
+
speedPanning = 1;
|
|
16
|
+
inertiaZoom = 0;
|
|
17
|
+
inertiaOrbit = 0;
|
|
18
|
+
inertiaPanning = 0;
|
|
19
|
+
/**
|
|
20
|
+
* If `true`, pannig will only act on `camera.shift`,
|
|
21
|
+
* not on `camera.target`.
|
|
22
|
+
*/
|
|
23
|
+
fixedTarget = false;
|
|
24
|
+
/**
|
|
25
|
+
* Zooming can be done by the mouse wheel.
|
|
26
|
+
* In this case, we may want to prevent it when the
|
|
27
|
+
* canvas is not in fullscreen, to let the rest of
|
|
28
|
+
* the page to scroll.
|
|
29
|
+
*
|
|
30
|
+
* This function, if defined, will be called just
|
|
31
|
+
* before the zoom event. If it returns `false`,
|
|
32
|
+
* the event is not dispatched.
|
|
33
|
+
*/
|
|
34
|
+
onZoomRequest;
|
|
35
|
+
animOrbit = null;
|
|
36
|
+
constructor(context, { minZoom = 1e-3, maxZoom = Infinity, speedZoom = 1, speedOrbit = 1, speedPanning = 1, inertiaZoom = 0, inertiaOrbit = 0, inertiaPanning = 0, fixedTarget = false, onZoomRequest = alwaysTrue, } = {}) {
|
|
37
|
+
this.context = context;
|
|
38
|
+
const { inputs } = context;
|
|
39
|
+
inputs.pointer.eventMoveStart.addListener(this.handleMoveStart);
|
|
40
|
+
inputs.pointer.eventMoveEnd.addListener(this.handleMoveEnd);
|
|
41
|
+
inputs.pointer.eventMove.addListener(this.handleMove);
|
|
42
|
+
inputs.pointer.eventZoom.addListener(this.handleZoom);
|
|
43
|
+
this.speedOrbit = speedOrbit;
|
|
44
|
+
this.speedZoom = speedZoom;
|
|
45
|
+
this.speedPanning = speedPanning;
|
|
46
|
+
this.inertiaOrbit = inertiaOrbit;
|
|
47
|
+
this.inertiaZoom = inertiaZoom;
|
|
48
|
+
this.inertiaPanning = inertiaPanning;
|
|
49
|
+
this.fixedTarget = fixedTarget;
|
|
50
|
+
this.minZoom = minZoom;
|
|
51
|
+
this.maxZoom = maxZoom;
|
|
52
|
+
this.onZoomRequest = onZoomRequest;
|
|
53
|
+
}
|
|
54
|
+
detach() {
|
|
55
|
+
const { inputs } = this.context;
|
|
56
|
+
inputs.pointer.eventMove.removeListener(this.handleMove);
|
|
57
|
+
inputs.pointer.eventZoom.removeListener(this.handleZoom);
|
|
58
|
+
}
|
|
59
|
+
handleMove = (evt) => {
|
|
60
|
+
if (!this.enabled)
|
|
61
|
+
return;
|
|
62
|
+
const dt = evt.current.t - evt.previous.t;
|
|
63
|
+
if (dt <= 0)
|
|
64
|
+
return;
|
|
65
|
+
const { context } = this;
|
|
66
|
+
const { keyboard } = context.inputs;
|
|
67
|
+
if (evt.altKey || evt.current.fingersCount === 2)
|
|
68
|
+
return this.handlePan(evt);
|
|
69
|
+
if (keyboard.isDown("z"))
|
|
70
|
+
return this.handleRotateAroundZ(evt);
|
|
71
|
+
this.orbit(evt.current.x - evt.previous.x, evt.current.y - evt.previous.y, evt.shiftKey);
|
|
72
|
+
};
|
|
73
|
+
orbit(deltaX, deltaY, slowDown) {
|
|
74
|
+
const { context } = this;
|
|
75
|
+
const { camera } = context;
|
|
76
|
+
const { keyboard } = context.inputs;
|
|
77
|
+
const speed = 3 * (slowDown ? 0.1 : 1) * this.speedOrbit;
|
|
78
|
+
const dx = deltaX * speed;
|
|
79
|
+
const dy = deltaY * speed;
|
|
80
|
+
if (!keyboard.isDown("x"))
|
|
81
|
+
camera.orbitAroundY(-dx);
|
|
82
|
+
if (!keyboard.isDown("y"))
|
|
83
|
+
camera.orbitAroundX(dy);
|
|
84
|
+
this.fireOrbitChange();
|
|
85
|
+
}
|
|
86
|
+
handleMoveStart = () => {
|
|
87
|
+
if (!this.enabled)
|
|
88
|
+
return;
|
|
89
|
+
const { animOrbit, context } = this;
|
|
90
|
+
if (animOrbit)
|
|
91
|
+
context.animCancel(animOrbit);
|
|
92
|
+
};
|
|
93
|
+
handleMoveEnd = (evt) => {
|
|
94
|
+
if (!this.enabled)
|
|
95
|
+
return;
|
|
96
|
+
const { context, inertiaOrbit } = this;
|
|
97
|
+
if (inertiaOrbit > 0) {
|
|
98
|
+
const inverseDeltaTime = inertiaOrbit / (evt.current.t - evt.previous.t);
|
|
99
|
+
const slowDown = evt.shiftKey;
|
|
100
|
+
const dx = inverseDeltaTime * (evt.current.x - evt.previous.x);
|
|
101
|
+
const dy = inverseDeltaTime * (evt.current.y - evt.previous.y);
|
|
102
|
+
let previousAlpha = 0;
|
|
103
|
+
this.animOrbit = {
|
|
104
|
+
duration: inertiaOrbit,
|
|
105
|
+
action: alpha => {
|
|
106
|
+
const t = alpha - previousAlpha;
|
|
107
|
+
previousAlpha = alpha;
|
|
108
|
+
this.orbit(dx * t, dy * t, slowDown);
|
|
109
|
+
},
|
|
110
|
+
easingFunction: tgdEasingFunctionOutQuad,
|
|
111
|
+
};
|
|
112
|
+
context.animSchedule(this.animOrbit);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
handlePan(evt) {
|
|
116
|
+
const { fixedTarget, speedPanning, context } = this;
|
|
117
|
+
const { camera } = context;
|
|
118
|
+
const inverseZoom = 1 / camera.zoom;
|
|
119
|
+
const panSpeed = 0.5 * speedPanning * inverseZoom;
|
|
120
|
+
const dx = (evt.current.x - evt.previous.x) *
|
|
121
|
+
panSpeed *
|
|
122
|
+
camera.spaceWidthAtTarget;
|
|
123
|
+
const dy = (evt.current.y - evt.previous.y) *
|
|
124
|
+
panSpeed *
|
|
125
|
+
camera.spaceHeightAtTarget;
|
|
126
|
+
if (fixedTarget) {
|
|
127
|
+
camera.moveShift(-dx, -dy, 0);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
camera.moveTarget(-dx, -dy, 0);
|
|
131
|
+
}
|
|
132
|
+
this.fireOrbitChange();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
handleRotateAroundZ(evt) {
|
|
136
|
+
const { camera } = this.context;
|
|
137
|
+
const x1 = evt.previous.x;
|
|
138
|
+
const y1 = evt.previous.y;
|
|
139
|
+
if (Math.abs(x1) + Math.abs(y1) === 0)
|
|
140
|
+
return;
|
|
141
|
+
const x2 = evt.current.x;
|
|
142
|
+
const y2 = evt.current.y;
|
|
143
|
+
if (Math.abs(x2) + Math.abs(y2) === 0)
|
|
144
|
+
return;
|
|
145
|
+
const x = x1 * x2 + y1 * y2;
|
|
146
|
+
const y = x1 * y2 - y1 * x2;
|
|
147
|
+
const ang = Math.atan2(y, x) * this.speedOrbit;
|
|
148
|
+
camera.orbitAroundZ(-ang);
|
|
149
|
+
this.fireOrbitChange();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
fireOrbitChange() {
|
|
153
|
+
this.context.paint();
|
|
154
|
+
this.eventChange.dispatch(this.context.camera);
|
|
155
|
+
}
|
|
156
|
+
handleZoom = (evt) => {
|
|
157
|
+
if (!this.enabled ||
|
|
158
|
+
this.speedZoom === 0 ||
|
|
159
|
+
!this.onZoomRequest({
|
|
160
|
+
altKey: evt.altKey,
|
|
161
|
+
ctrlKey: evt.ctrlKey,
|
|
162
|
+
metaKey: evt.metaKey,
|
|
163
|
+
shiftKey: evt.shiftKey,
|
|
164
|
+
x: evt.current.x,
|
|
165
|
+
y: evt.current.y,
|
|
166
|
+
}))
|
|
167
|
+
return;
|
|
168
|
+
const { context } = this;
|
|
169
|
+
const { camera } = context;
|
|
170
|
+
let speed = 0.1 * this.speedZoom;
|
|
171
|
+
if (this.context.inputs.keyboard.isDown("Shift"))
|
|
172
|
+
speed *= 0.1;
|
|
173
|
+
const dz = -evt.direction * speed;
|
|
174
|
+
camera.zoom = clamp(camera.zoom * (1 + dz), this.minZoom, this.maxZoom);
|
|
175
|
+
evt.preventDefault();
|
|
176
|
+
this.fireZoomChange();
|
|
177
|
+
};
|
|
178
|
+
fireZoomChange() {
|
|
179
|
+
this.context.paint();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Default function for `onZoomRequest`.
|
|
184
|
+
*/
|
|
185
|
+
const alwaysTrue = () => true;
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJvbGxlci9jYW1lcmEvb3JiaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU92QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0RyQyxNQUFNLE9BQU8sd0JBQXdCO0lBcUNaO0lBcENMLFdBQVcsR0FBRyxJQUFJLFFBQVEsRUFBYSxDQUFBO0lBQ2hELE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDZCxPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3pCOztPQUVHO0lBQ0ksT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNkLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDYixVQUFVLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixjQUFjLEdBQUcsQ0FBQyxDQUFBO0lBQ3pCOzs7T0FHRztJQUNJLFdBQVcsR0FBRyxLQUFLLENBQUE7SUFDMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYSxDQUdSO0lBRUosU0FBUyxHQUF3QixJQUFJLENBQUE7SUFFN0MsWUFDcUIsT0FBNEIsRUFDN0MsRUFDSSxPQUFPLEdBQUcsSUFBSSxFQUNkLE9BQU8sR0FBRyxRQUFRLEVBQ2xCLFNBQVMsR0FBRyxDQUFDLEVBQ2IsVUFBVSxHQUFHLENBQUMsRUFDZCxZQUFZLEdBQUcsQ0FBQyxFQUNoQixXQUFXLEdBQUcsQ0FBQyxFQUNmLFlBQVksR0FBRyxDQUFDLEVBQ2hCLGNBQWMsR0FBRyxDQUFDLEVBQ2xCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLGFBQWEsR0FBRyxVQUFVLE1BQ2dCLEVBQUU7UUFaL0Is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
|
|
File without changes
|
|
File without changes
|
|
@@ -6,18 +6,86 @@ export interface TgdDatasetOptions {
|
|
|
6
6
|
target: TgdBufferOptionTarget;
|
|
7
7
|
usage: TgdBufferOptionUsage;
|
|
8
8
|
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
private readonly
|
|
12
|
-
private readonly
|
|
13
|
-
private
|
|
14
|
-
|
|
9
|
+
export type TgdDatasetTypeRecord = Record<string, TgdDatasetType>;
|
|
10
|
+
export declare class TgdDataset {
|
|
11
|
+
private readonly attributesDefinition;
|
|
12
|
+
private readonly options;
|
|
13
|
+
private stride;
|
|
14
|
+
private definitions;
|
|
15
|
+
private _data;
|
|
16
|
+
private _count;
|
|
15
17
|
target: TgdBufferOptionTarget;
|
|
16
18
|
usage: TgdBufferOptionUsage;
|
|
17
|
-
constructor(attributesDefinition:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
constructor(attributesDefinition: TgdDatasetTypeRecord, options?: Partial<TgdDatasetOptions>);
|
|
20
|
+
private initialize;
|
|
21
|
+
addAttributes(attributesDefinition: TgdDatasetTypeRecord): void;
|
|
22
|
+
clone(): TgdDataset;
|
|
23
|
+
/**
|
|
24
|
+
* Warning!
|
|
25
|
+
*
|
|
26
|
+
* This ArrayBuffer will be detached as soon as its
|
|
27
|
+
* size is changed!
|
|
28
|
+
*/
|
|
29
|
+
get data(): Readonly<ArrayBuffer>;
|
|
30
|
+
/** Get number of attributes. */
|
|
31
|
+
get count(): number;
|
|
32
|
+
/** Set number of attributes (reallocate data accordingly) */
|
|
33
|
+
set count(count: number);
|
|
34
|
+
get attributesNames(): string[];
|
|
35
|
+
getAttribAccessor(attribName: string): {
|
|
36
|
+
get: (index: number, dimension?: number) => number;
|
|
37
|
+
set: (value: number, index: number, dimension?: number) => void;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Set the data for one attribute.
|
|
41
|
+
*
|
|
42
|
+
* If you try to set more element that the current buffer
|
|
43
|
+
* can hold, the buffer will be expanded.
|
|
44
|
+
* And the property `count` will change accordingly.
|
|
45
|
+
*
|
|
46
|
+
* @param attribName If the attribute does not exist,
|
|
47
|
+
* you will get an exception.
|
|
48
|
+
* @param value The ArrayBuffer holding the data you
|
|
49
|
+
* want to set to this attribute
|
|
50
|
+
* @param param2
|
|
51
|
+
*/
|
|
52
|
+
set(attribName: string, value: ArrayBuffer | Float32Array | {
|
|
53
|
+
buffer: ArrayBuffer;
|
|
54
|
+
}, { byteOffset, byteStride, first, count, targetFirst, }?: Partial<{
|
|
55
|
+
/**
|
|
56
|
+
* First byte of meaningful data in this buffer.
|
|
57
|
+
*/
|
|
58
|
+
byteOffset: number;
|
|
59
|
+
/**
|
|
60
|
+
* Number of bytes between two elements.
|
|
61
|
+
* If data is packed, you can leave it undefined.
|
|
62
|
+
*/
|
|
63
|
+
byteStride: number;
|
|
64
|
+
/**
|
|
65
|
+
* Index if the first source element.
|
|
66
|
+
* Default to 0.
|
|
67
|
+
*/
|
|
68
|
+
first: number;
|
|
69
|
+
/**
|
|
70
|
+
* Maximum number of elements to store.
|
|
71
|
+
* Default to Infinity.
|
|
72
|
+
*/
|
|
73
|
+
count: number;
|
|
74
|
+
/**
|
|
75
|
+
* Index if the first destination element.
|
|
76
|
+
* Default to 0.
|
|
77
|
+
*/
|
|
78
|
+
targetFirst: number;
|
|
79
|
+
}>): void;
|
|
80
|
+
private getDef;
|
|
81
|
+
/**
|
|
82
|
+
* Enable the vertex attrib array, and set
|
|
83
|
+
* the vertex attrib pointer for every declared
|
|
84
|
+
* attribute.
|
|
85
|
+
*/
|
|
21
86
|
defineAttributes(gl: WebGL2RenderingContext, prg: TgdProgram): void;
|
|
87
|
+
toCode({ indent }?: Partial<{
|
|
88
|
+
indent: string;
|
|
89
|
+
}>): string;
|
|
22
90
|
}
|
|
23
91
|
//# sourceMappingURL=dataset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/dataset/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/dataset/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEzE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/D,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAEjE,qBAAa,UAAU;IAUf,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAI;IAEX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;gBAGb,oBAAoB,EAAE,oBAAoB,EAC1C,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAO7D,OAAO,CAAC,UAAU;IAgClB,aAAa,CAAC,oBAAoB,EAAE,oBAAoB;IAiCxD,KAAK,IAAI,UAAU;IAWnB;;;;;OAKG;IACH,IAAI,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,CAEhC;IAED,gCAAgC;IAChC,IAAI,KAAK,IAIQ,MAAM,CAFtB;IACD,6DAA6D;IAC7D,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAKtB;IAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;QACnC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;QAClD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAClE;IAsBD;;;;;;;;;;;;OAYG;IACH,GAAG,CACC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAC3D,EACI,UAAc,EACd,UAAU,EACV,KAAS,EACT,KAAgB,EAChB,WAAe,GAClB,GAAE,OAAO,CAAC;QACP;;WAEG;QACH,UAAU,EAAE,MAAM,CAAA;QAClB;;;WAGG;QACH,UAAU,EAAE,MAAM,CAAA;QAClB;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAA;QACb;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAA;QACb;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAA;KACtB,CAAM;IAoCX,OAAO,CAAC,MAAM;IAed;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,UAAU;IAuB5D,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;CAyB3D"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
export class TgdDataset {
|
|
2
|
+
attributesDefinition;
|
|
3
|
+
options;
|
|
4
|
+
stride = 0;
|
|
5
|
+
definitions = {};
|
|
6
|
+
_data = new ArrayBuffer(0);
|
|
7
|
+
_count = 0;
|
|
8
|
+
target;
|
|
9
|
+
usage;
|
|
10
|
+
constructor(attributesDefinition, options = {}) {
|
|
11
|
+
this.attributesDefinition = attributesDefinition;
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.target = options.target ?? "ARRAY_BUFFER";
|
|
14
|
+
this.usage = options.usage ?? "STATIC_DRAW";
|
|
15
|
+
this.initialize(attributesDefinition, options);
|
|
16
|
+
}
|
|
17
|
+
initialize(attributesDefinition, options = {}) {
|
|
18
|
+
const divisor = options.divisor ?? 0;
|
|
19
|
+
let stride = 0;
|
|
20
|
+
const data = {};
|
|
21
|
+
const definitions = {};
|
|
22
|
+
for (const name of Object.keys(attributesDefinition)) {
|
|
23
|
+
data[name] = new ArrayBuffer(0);
|
|
24
|
+
const def = {
|
|
25
|
+
dimension: DIMS[attributesDefinition[name]],
|
|
26
|
+
byteOffset: stride,
|
|
27
|
+
bytesPerElement: Float32Array.BYTES_PER_ELEMENT,
|
|
28
|
+
divisor,
|
|
29
|
+
getter(view, byteOffset) {
|
|
30
|
+
if (byteOffset >= view.byteLength) {
|
|
31
|
+
byteOffset %= view.byteLength;
|
|
32
|
+
}
|
|
33
|
+
return view.getFloat32(byteOffset, true);
|
|
34
|
+
},
|
|
35
|
+
setter(view, byteOffset, value) {
|
|
36
|
+
view.setFloat32(byteOffset, value, true);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
definitions[name] = def;
|
|
40
|
+
stride += def.bytesPerElement * def.dimension;
|
|
41
|
+
}
|
|
42
|
+
this.definitions = definitions;
|
|
43
|
+
this.stride = stride;
|
|
44
|
+
}
|
|
45
|
+
addAttributes(attributesDefinition) {
|
|
46
|
+
const oldDataset = this.clone();
|
|
47
|
+
for (const key of Object.keys(attributesDefinition)) {
|
|
48
|
+
const oldType = this.attributesDefinition[key];
|
|
49
|
+
const newType = attributesDefinition[key];
|
|
50
|
+
if (oldType && oldType !== newType) {
|
|
51
|
+
throw Error(`It is not allowed to change the type of attribute "${key}" from "${oldType}" to "${newType}"! Prefer removing the attribute first.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
this.initialize({
|
|
55
|
+
...this.attributesDefinition,
|
|
56
|
+
...attributesDefinition,
|
|
57
|
+
}, this.options);
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
59
|
+
const newDataset = this;
|
|
60
|
+
newDataset.count = oldDataset.count;
|
|
61
|
+
for (const attribName of oldDataset.attributesNames) {
|
|
62
|
+
const { get } = oldDataset.getAttribAccessor(attribName);
|
|
63
|
+
const { set } = newDataset.getAttribAccessor(attribName);
|
|
64
|
+
for (let idx = 0; idx < oldDataset.count; idx++) {
|
|
65
|
+
const def = this.getDef(attribName);
|
|
66
|
+
for (let dim = 0; dim < def.dimension; dim++) {
|
|
67
|
+
set(get(idx, dim), idx, dim);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
clone() {
|
|
73
|
+
const ds = new TgdDataset(this.attributesDefinition, this.options);
|
|
74
|
+
ds.count = this.count;
|
|
75
|
+
const src = new DataView(this._data);
|
|
76
|
+
const dst = new DataView(ds._data);
|
|
77
|
+
for (let offset = 0; offset < src.byteLength; offset++) {
|
|
78
|
+
dst.setUint8(offset, src.getUint8(offset));
|
|
79
|
+
}
|
|
80
|
+
return ds;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Warning!
|
|
84
|
+
*
|
|
85
|
+
* This ArrayBuffer will be detached as soon as its
|
|
86
|
+
* size is changed!
|
|
87
|
+
*/
|
|
88
|
+
get data() {
|
|
89
|
+
return this._data;
|
|
90
|
+
}
|
|
91
|
+
/** Get number of attributes. */
|
|
92
|
+
get count() {
|
|
93
|
+
return this._count;
|
|
94
|
+
}
|
|
95
|
+
/** Set number of attributes (reallocate data accordingly) */
|
|
96
|
+
set count(count) {
|
|
97
|
+
if (this._count === count)
|
|
98
|
+
return;
|
|
99
|
+
this._count = count;
|
|
100
|
+
this._data = resize(this._data, count * this.stride);
|
|
101
|
+
}
|
|
102
|
+
get attributesNames() {
|
|
103
|
+
return Object.keys(this.attributesDefinition);
|
|
104
|
+
}
|
|
105
|
+
getAttribAccessor(attribName) {
|
|
106
|
+
const def = this.getDef(attribName);
|
|
107
|
+
const view = new DataView(this.data);
|
|
108
|
+
const stride = this.stride;
|
|
109
|
+
return {
|
|
110
|
+
get(index, dimension = 0) {
|
|
111
|
+
const byteOffset = def.byteOffset +
|
|
112
|
+
stride * index +
|
|
113
|
+
dimension * def.bytesPerElement;
|
|
114
|
+
return def.getter(view, byteOffset);
|
|
115
|
+
},
|
|
116
|
+
set(value, index, dimension = 0) {
|
|
117
|
+
const byteOffset = def.byteOffset +
|
|
118
|
+
stride * index +
|
|
119
|
+
dimension * def.bytesPerElement;
|
|
120
|
+
def.setter(view, byteOffset, value);
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Set the data for one attribute.
|
|
126
|
+
*
|
|
127
|
+
* If you try to set more element that the current buffer
|
|
128
|
+
* can hold, the buffer will be expanded.
|
|
129
|
+
* And the property `count` will change accordingly.
|
|
130
|
+
*
|
|
131
|
+
* @param attribName If the attribute does not exist,
|
|
132
|
+
* you will get an exception.
|
|
133
|
+
* @param value The ArrayBuffer holding the data you
|
|
134
|
+
* want to set to this attribute
|
|
135
|
+
* @param param2
|
|
136
|
+
*/
|
|
137
|
+
set(attribName, value, { byteOffset = 0, byteStride, first = 0, count = Infinity, targetFirst = 0, } = {}) {
|
|
138
|
+
const { bytesPerElement, dimension, byteOffset: attribByteOffset, } = this.getDef(attribName);
|
|
139
|
+
const buffer = value instanceof ArrayBuffer ? value : value.buffer;
|
|
140
|
+
const chunkLength = bytesPerElement * dimension;
|
|
141
|
+
const srcStride = byteStride ?? chunkLength;
|
|
142
|
+
let srcOffset = byteOffset + srcStride * first;
|
|
143
|
+
const dstStride = this.stride;
|
|
144
|
+
let dstOffset = targetFirst * dstStride + attribByteOffset;
|
|
145
|
+
this.count = Math.max(this.count, Math.min(count, Math.floor((buffer.byteLength - srcOffset) / srcStride)));
|
|
146
|
+
const srcStop = buffer.byteLength - srcStride + 1;
|
|
147
|
+
const dstStop = this._data.byteLength + attribByteOffset - dstStride + 1;
|
|
148
|
+
const srcBuffer = new Uint8Array(buffer);
|
|
149
|
+
const dstBuffer = new Uint8Array(this._data);
|
|
150
|
+
let index = 0;
|
|
151
|
+
while (index < count && srcOffset < srcStop && dstOffset < dstStop) {
|
|
152
|
+
dstBuffer.set(srcBuffer.subarray(srcOffset, srcOffset + chunkLength), dstOffset);
|
|
153
|
+
index++;
|
|
154
|
+
srcOffset += srcStride;
|
|
155
|
+
dstOffset += dstStride;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
getDef(attribName) {
|
|
159
|
+
const def = this.definitions[attribName];
|
|
160
|
+
if (!def)
|
|
161
|
+
throw Error(`[TgdDataset] Attribute "${String(attribName)}" not found in this DataSet!\nAvailable names are: ${Object.keys(this.definitions)
|
|
162
|
+
.map(name => JSON.stringify(name))
|
|
163
|
+
.join(", ")}.`);
|
|
164
|
+
return def;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Enable the vertex attrib array, and set
|
|
168
|
+
* the vertex attrib pointer for every declared
|
|
169
|
+
* attribute.
|
|
170
|
+
*/
|
|
171
|
+
defineAttributes(gl, prg) {
|
|
172
|
+
let offsetDestination = 0;
|
|
173
|
+
const { definitions } = this;
|
|
174
|
+
for (const name of Object.keys(definitions)) {
|
|
175
|
+
const def = definitions[name];
|
|
176
|
+
if (prg.hasAttribute(name)) {
|
|
177
|
+
const att = prg.getAttribLocation(name);
|
|
178
|
+
gl.enableVertexAttribArray(att);
|
|
179
|
+
gl.vertexAttribPointer(att, def.dimension, gl.FLOAT, false, this.stride, offsetDestination);
|
|
180
|
+
gl.vertexAttribDivisor(att, def.divisor);
|
|
181
|
+
}
|
|
182
|
+
const bytes = def.dimension * def.bytesPerElement;
|
|
183
|
+
offsetDestination += bytes;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
toCode({ indent = "" } = {}) {
|
|
187
|
+
const lines = [];
|
|
188
|
+
let offsetDestination = 0;
|
|
189
|
+
const { definitions } = this;
|
|
190
|
+
for (const name of Object.keys(definitions)) {
|
|
191
|
+
const def = definitions[name];
|
|
192
|
+
const att = `$${name}`;
|
|
193
|
+
lines.push(`const ${att} = gl.getAttribLocation(prg, "${name}")`, `gl.enableVertexAttribArray(${att})`, `gl.vertexAttribPointer(`, ` ${att},`, ` ${def.dimension}, // Dimension`, ` gl.FLOAT,`, ` false,`, ` ${this.stride}, // Stride`, ` ${offsetDestination} // Offset`, `)`, `gl.vertexAttribDivisor(${att}, ${def.divisor})`);
|
|
194
|
+
const bytes = def.dimension * def.bytesPerElement;
|
|
195
|
+
offsetDestination += bytes;
|
|
196
|
+
}
|
|
197
|
+
return lines.map(line => `${indent}${line}`).join("\n");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
const DIMS = {
|
|
201
|
+
float: 1,
|
|
202
|
+
vec2: 2,
|
|
203
|
+
vec3: 3,
|
|
204
|
+
vec4: 4,
|
|
205
|
+
};
|
|
206
|
+
function resizeFast(buff, newSize) {
|
|
207
|
+
return buff.transfer(newSize);
|
|
208
|
+
}
|
|
209
|
+
function resizeSlow(inBuff, newSize) {
|
|
210
|
+
const outBuff = new ArrayBuffer(newSize ?? inBuff.byteLength);
|
|
211
|
+
new Uint8Array(outBuff).set(new Uint8Array(inBuff));
|
|
212
|
+
return outBuff;
|
|
213
|
+
}
|
|
214
|
+
const resize = typeof ArrayBuffer.prototype.transfer === "function"
|
|
215
|
+
? resizeFast
|
|
216
|
+
: resizeSlow;
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhc2V0L2RhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLFVBQVU7SUFVRTtJQUNBO0lBVmIsTUFBTSxHQUFXLENBQUMsQ0FBQTtJQUNsQixXQUFXLEdBQW9ELEVBQUUsQ0FBQTtJQUNqRSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUIsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUVYLE1BQU0sQ0FBdUI7SUFDN0IsS0FBSyxDQUFzQjtJQUVsQyxZQUNxQixvQkFBMEMsRUFDMUMsVUFBc0MsRUFBRTtRQUR4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQWlDO1FBRXpELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUE7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQTtRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFTyxVQUFVLENBQ2Qsb0JBQTBDLEVBQzFDLFVBQXNDLEVBQUU7UUFFeEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUE7UUFDcEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsTUFBTSxJQUFJLEdBQW1DLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLFdBQVcsR0FBb0QsRUFBRSxDQUFBO1FBQ3ZFLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9CLE1BQU0sR0FB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
|
|
File without changes
|
|
File without changes
|
package/lib/dist/debug.d.ts
CHANGED
|
File without changes
|
package/lib/dist/debug.d.ts.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function padColOfNumbers(values, decimals = 6) {
|
|
2
|
+
const p = Math.pow(10, decimals);
|
|
3
|
+
const out = [];
|
|
4
|
+
let max = 0;
|
|
5
|
+
for (const val of values) {
|
|
6
|
+
const n = Math.round(val * p) / p;
|
|
7
|
+
const txt = n.toFixed(decimals);
|
|
8
|
+
max = Math.max(max, txt.length);
|
|
9
|
+
out.push(txt);
|
|
10
|
+
}
|
|
11
|
+
return out.map(txt => txt.padStart(max, " "));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFnQixFQUFFLFFBQVEsR0FBRyxDQUFDO0lBQzFELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtJQUN4QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDWCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUNqRCxDQUFDIn0=
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class TgdEvent {
|
|
2
|
+
listeners = new Set();
|
|
3
|
+
addListener(listener) {
|
|
4
|
+
this.listeners.add(listener);
|
|
5
|
+
}
|
|
6
|
+
removeListener(listener) {
|
|
7
|
+
this.listeners.delete(listener);
|
|
8
|
+
}
|
|
9
|
+
dispatch(value) {
|
|
10
|
+
this.listeners.forEach(listener => listener(value));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFDQSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQTtJQUVuRCxXQUFXLENBQUMsUUFBcUI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFxQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVE7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7Q0FDSiJ9
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TgdVec2 } from "../math";
|
|
2
|
+
import { TgdFilter } from "./filter";
|
|
3
|
+
export interface TgdFilterBlurOptions {
|
|
4
|
+
size: number;
|
|
5
|
+
direction: Readonly<TgdVec2>;
|
|
6
|
+
}
|
|
7
|
+
export declare class TgdFilterBlur extends TgdFilter {
|
|
8
|
+
constructor(options?: Partial<TgdFilterBlurOptions>);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=blur.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../src/filter/blur.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC/B;AAID,qBAAa,aAAc,SAAQ,SAAS;gBAC5B,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;CA+C1D"}
|