@tolokoban/tgd 2.0.0 → 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 +14 -12
- 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 +20 -16
- 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 +95 -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 +111 -12
- 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 +88 -8
- 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 +80 -11
- 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 +2 -0
- package/lib/dist/event/index.d.ts.map +1 -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 +9 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +21 -1
- package/lib/dist/input/index.d.ts +2 -0
- package/lib/dist/input/index.d.ts.map +1 -1
- package/lib/dist/input/index.js +4 -0
- package/lib/dist/input/inputs.d.ts +11 -0
- package/lib/dist/input/inputs.d.ts.map +1 -0
- package/lib/dist/input/inputs.js +23 -0
- package/lib/dist/input/keyboard.d.ts +6 -2
- 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 +24 -40
- 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 +26 -12
- 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 +26 -0
- package/lib/dist/painter/axis/axis.d.ts.map +1 -0
- 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 +2 -0
- package/lib/dist/painter/axis/index.d.ts.map +1 -0
- package/lib/dist/painter/axis/index.js +2 -0
- package/lib/dist/painter/background/background.d.ts +11 -8
- 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 +15 -10
- 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 +22 -0
- package/lib/dist/painter/depth.d.ts.map +1 -0
- 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 +16 -4
- 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 +10 -5
- 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 +4 -2
- 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 -1
- 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 +2 -0
- package/lib/dist/painter/segments/index.d.ts.map +1 -0
- package/lib/dist/painter/segments/index.js +2 -0
- package/lib/dist/painter/segments/segments.d.ts +85 -0
- package/lib/dist/painter/segments/segments.d.ts.map +1 -0
- 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 +11 -17
- 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 +17 -2
- 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 +2 -2
- 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 +10 -4
- 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 +8 -9
- 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 +7 -9
- 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 +14 -9
- 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 +4 -5
- 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 +25 -0
- package/lib/dist/types/context.d.ts.map +1 -0
- 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 +5 -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 +8 -0
- package/lib/dist/types/input-keyboard.d.ts.map +1 -0
- package/lib/dist/types/input-keyboard.js +2 -0
- package/lib/dist/types/input-pointer.d.ts +42 -0
- package/lib/dist/types/input-pointer.d.ts.map +1 -0
- 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 +2 -0
- package/lib/dist/types/painter.d.ts.map +1 -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 +20 -8
- 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 +42 -3
- 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 -0
- 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 +13 -0
- package/lib/dist/utils/canvas.d.ts.map +1 -0
- 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 +6 -0
- package/lib/dist/utils/index.d.ts.map +1 -0
- 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 +7 -3
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +67 -0
- package/package.json +6 -5
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/painter/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,MAAM,IAAI,IAAI,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAA;CACxD;AAED,qBAAa,cAAe,SAAQ,UAAU;IACnC,aAAa,EAAE,UAAU,CAAmB;IACnD,SAAgB,OAAO,aAAmB;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAEzC,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMxD,MAAM,IAAI,IAAI;IASd,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;IAU5D,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;IAY/D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CA2B3C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { TgdMat4 } from "./../math/index.js";
|
|
2
|
+
import { TgdPainter } from "./painter.js";
|
|
3
|
+
import { TgdTransfo } from "../math/transfo.js";
|
|
4
|
+
export class TgdPainterNode extends TgdPainter {
|
|
5
|
+
parentTransfo = new TgdTransfo();
|
|
6
|
+
transfo = new TgdTransfo();
|
|
7
|
+
matrixTransfo = new TgdMat4();
|
|
8
|
+
parentUpdateCount = 0;
|
|
9
|
+
updateCount = 0;
|
|
10
|
+
childrenNodes = [];
|
|
11
|
+
children = [];
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
super();
|
|
14
|
+
const { children = [] } = options;
|
|
15
|
+
children.forEach(child => this.add(child));
|
|
16
|
+
}
|
|
17
|
+
delete() {
|
|
18
|
+
for (const child of this.children) {
|
|
19
|
+
child.delete();
|
|
20
|
+
}
|
|
21
|
+
for (const child of this.childrenNodes) {
|
|
22
|
+
child.delete();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
add(...children) {
|
|
26
|
+
for (const child of children) {
|
|
27
|
+
if (child instanceof TgdPainterNode) {
|
|
28
|
+
this.childrenNodes.push(child);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.children.push(child);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
remove(...children) {
|
|
36
|
+
for (const child of children) {
|
|
37
|
+
if (child instanceof TgdPainterNode) {
|
|
38
|
+
const idxNode = this.childrenNodes.indexOf(child);
|
|
39
|
+
if (idxNode > -1)
|
|
40
|
+
this.childrenNodes.splice(idxNode, 1);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const idx = this.children.indexOf(child);
|
|
44
|
+
if (idx > -1)
|
|
45
|
+
this.children.splice(idx, 1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
paint(time, delay) {
|
|
50
|
+
const { transfo, parentTransfo, matrixTransfo, parentUpdateCount, updateCount, children, childrenNodes, } = this;
|
|
51
|
+
if (transfo.updateCount > updateCount ||
|
|
52
|
+
parentTransfo.updateCount > parentUpdateCount) {
|
|
53
|
+
this.updateCount = transfo.updateCount;
|
|
54
|
+
this.parentUpdateCount = parentTransfo.updateCount;
|
|
55
|
+
matrixTransfo.from(parentTransfo.matrix).multiply(transfo.matrix);
|
|
56
|
+
}
|
|
57
|
+
for (const child of children) {
|
|
58
|
+
child.matrixTransfo = matrixTransfo;
|
|
59
|
+
child.paint(time, delay);
|
|
60
|
+
}
|
|
61
|
+
for (const child of childrenNodes) {
|
|
62
|
+
child.parentTransfo.matrix = matrixTransfo;
|
|
63
|
+
child.paint(time, delay);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQVk1QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFDbkMsYUFBYSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUE7SUFDbkMsT0FBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7SUFFekIsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7SUFDdEMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFBO0lBQ3JCLFdBQVcsR0FBRyxDQUFDLENBQUE7SUFDTixhQUFhLEdBQXFCLEVBQUUsQ0FBQTtJQUNwQyxRQUFRLEdBQTBCLEVBQUUsQ0FBQTtJQUVyRCxZQUFZLFVBQTBDLEVBQUU7UUFDcEQsS0FBSyxFQUFFLENBQUE7UUFDUCxNQUFNLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUNqQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxNQUFNO1FBQ0YsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2xCLENBQUM7UUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBRyxRQUFxRDtRQUN4RCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxZQUFZLGNBQWMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDN0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBcUQ7UUFDM0QsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2pELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztvQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUN4QyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QixNQUFNLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxRQUFRLEVBQ1IsYUFBYSxHQUNoQixHQUFHLElBQUksQ0FBQTtRQUNSLElBQ0ksT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXO1lBQ2pDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLEVBQy9DLENBQUM7WUFDQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUE7WUFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtZQUNuQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUE7WUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDNUIsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,8BAAsB,UAAU;
|
|
1
|
+
{"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,8BAAsB,UAAU;IACrB,MAAM,EAAE,OAAO,CAAO;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CACpD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export class TgdPainter {
|
|
2
|
+
active = true;
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL3BhaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixVQUFVO0lBQ3JCLE1BQU0sR0FBWSxJQUFJLENBQUE7Q0FLaEMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { TgdDataset } from "../../dataset";
|
|
2
|
+
import { TgdPainter } from "../painter";
|
|
3
|
+
import { ArrayNumber2, ArrayNumber4, TgdContextInterface, TgdTexture2D } from "../../types";
|
|
4
|
+
export type TgdPainterSegmentsOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* How round the tip will be?
|
|
7
|
+
* - **0** means that the tip is flat.
|
|
8
|
+
* - **1** will gives you a triangled tip.
|
|
9
|
+
* - **>1** starts to have a semi-circle shape.
|
|
10
|
+
*
|
|
11
|
+
* **0** is the fastest to render, but you will have
|
|
12
|
+
* a bad connection at joints between segments.
|
|
13
|
+
*
|
|
14
|
+
* Default to **3**.
|
|
15
|
+
*/
|
|
16
|
+
roundness: number;
|
|
17
|
+
/**
|
|
18
|
+
* With orthographic camera, this is a value in pixels.
|
|
19
|
+
*/
|
|
20
|
+
minRadius: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @example
|
|
24
|
+
* ```
|
|
25
|
+
* const factory = new TgdPainterSegmentsData()
|
|
26
|
+
* factory.add(
|
|
27
|
+
* [0, 0, 0, .2],
|
|
28
|
+
* [1, 0, 0, .1],
|
|
29
|
+
* )
|
|
30
|
+
* factory.add(
|
|
31
|
+
* [0, 0, 0, .2],
|
|
32
|
+
* [0, 1, 0, .1],
|
|
33
|
+
* )
|
|
34
|
+
* factory.add(
|
|
35
|
+
* [0, 0, 0, .2],
|
|
36
|
+
* [0, 0, 1, .1],
|
|
37
|
+
* )
|
|
38
|
+
* const segments = new TgdPainterSegments(
|
|
39
|
+
* segment, factory
|
|
40
|
+
* )
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class TgdPainterSegments extends TgdPainter {
|
|
44
|
+
protected readonly context: TgdContextInterface;
|
|
45
|
+
colorTexture: TgdTexture2D;
|
|
46
|
+
minRadius: number;
|
|
47
|
+
radiusMultiplier: number;
|
|
48
|
+
radiusConstant: number;
|
|
49
|
+
radiusSwitch: number;
|
|
50
|
+
light: number;
|
|
51
|
+
shiftZ: number;
|
|
52
|
+
private readonly vao;
|
|
53
|
+
private readonly prg;
|
|
54
|
+
private readonly vertexCount;
|
|
55
|
+
private readonly instanceCount;
|
|
56
|
+
constructor(context: TgdContextInterface, factory: {
|
|
57
|
+
makeDataset: () => InstanceDataset;
|
|
58
|
+
readonly count: number;
|
|
59
|
+
}, { roundness, minRadius, }?: Partial<TgdPainterSegmentsOptions>);
|
|
60
|
+
delete(): void;
|
|
61
|
+
paint(_time: number, _delay: number): void;
|
|
62
|
+
}
|
|
63
|
+
type InstanceDataset = TgdDataset;
|
|
64
|
+
export declare class TgdPainterSegmentsData {
|
|
65
|
+
private _count;
|
|
66
|
+
private readonly attAxyzr;
|
|
67
|
+
private readonly attAuv;
|
|
68
|
+
private readonly attAinfluence;
|
|
69
|
+
private readonly attBxyzr;
|
|
70
|
+
private readonly attBuv;
|
|
71
|
+
private readonly attBinfluence;
|
|
72
|
+
get count(): number;
|
|
73
|
+
/**
|
|
74
|
+
* @param Axyzr (x,y,z) and radius of point A.
|
|
75
|
+
* @param Bxyzr (x,y,z) and radius of point B.
|
|
76
|
+
* @param Auv
|
|
77
|
+
* @param Buv
|
|
78
|
+
* @param radiusMultiplierInfluenceA
|
|
79
|
+
* @param radiusMultiplierInfluenceB
|
|
80
|
+
*/
|
|
81
|
+
add(Axyzr: ArrayNumber4, Bxyzr: ArrayNumber4, Auv?: ArrayNumber2, Buv?: ArrayNumber2, radiusMultiplierInfluenceA?: number, radiusMultiplierInfluenceB?: number): void;
|
|
82
|
+
makeDataset(): InstanceDataset;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,mBAAmB,EAEnB,YAAY,EACf,MAAM,YAAY,CAAA;AAMnB,MAAM,MAAM,yBAAyB,GAAG;IACpC;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAe1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAd5C,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAI;IACrB,gBAAgB,SAAI;IACpB,cAAc,SAAI;IAClB,YAAY,SAAI;IAChB,KAAK,SAAI;IACT,MAAM,SAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGf,OAAO,EAAE,mBAAmB,EAC/C,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACvE,EACI,SAAa,EACb,SAAa,GAChB,GAAE,OAAO,CAAC,yBAAyB,CAAM;IA+B9C,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAqC7C;AAED,KAAK,eAAe,GAAG,UAAU,CAAA;AAEjC,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,IAAI,KAAK,WAER;IAED;;;;;;;OAOG;IACH,GAAG,CACC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,GAAG,GAAE,YAAqB,EAC1B,GAAG,GAAE,YAAqB,EAC1B,0BAA0B,SAAI,EAC9B,0BAA0B,SAAI;IAWlC,WAAW,IAAI,eAAe;CAsBjC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { TgdDataset } from "./../../dataset/index.js";
|
|
2
|
+
import { TgdPainter } from "./../painter.js";
|
|
3
|
+
import FRAG from "./segments.frag";
|
|
4
|
+
import VERT from "./segments.vert";
|
|
5
|
+
/**
|
|
6
|
+
* @example
|
|
7
|
+
* ```
|
|
8
|
+
* const factory = new TgdPainterSegmentsData()
|
|
9
|
+
* factory.add(
|
|
10
|
+
* [0, 0, 0, .2],
|
|
11
|
+
* [1, 0, 0, .1],
|
|
12
|
+
* )
|
|
13
|
+
* factory.add(
|
|
14
|
+
* [0, 0, 0, .2],
|
|
15
|
+
* [0, 1, 0, .1],
|
|
16
|
+
* )
|
|
17
|
+
* factory.add(
|
|
18
|
+
* [0, 0, 0, .2],
|
|
19
|
+
* [0, 0, 1, .1],
|
|
20
|
+
* )
|
|
21
|
+
* const segments = new TgdPainterSegments(
|
|
22
|
+
* segment, factory
|
|
23
|
+
* )
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class TgdPainterSegments extends TgdPainter {
|
|
27
|
+
context;
|
|
28
|
+
colorTexture;
|
|
29
|
+
minRadius = 0;
|
|
30
|
+
radiusMultiplier = 1;
|
|
31
|
+
radiusConstant = 1;
|
|
32
|
+
radiusSwitch = 0;
|
|
33
|
+
light = 1;
|
|
34
|
+
shiftZ = 0;
|
|
35
|
+
vao;
|
|
36
|
+
prg;
|
|
37
|
+
vertexCount;
|
|
38
|
+
instanceCount;
|
|
39
|
+
constructor(context, factory, { roundness = 3, minRadius = 0, } = {}) {
|
|
40
|
+
super();
|
|
41
|
+
this.context = context;
|
|
42
|
+
this.minRadius = minRadius;
|
|
43
|
+
if (roundness > 125) {
|
|
44
|
+
throw Error("[TgdPainterSegments] Max roundness is 125!");
|
|
45
|
+
}
|
|
46
|
+
if (roundness < 0) {
|
|
47
|
+
throw Error("[TgdPainterSegments] Min roundness is 0!");
|
|
48
|
+
}
|
|
49
|
+
const tex = context.textures2D.create({
|
|
50
|
+
magFilter: "NEAREST",
|
|
51
|
+
minFilter: "NEAREST",
|
|
52
|
+
wrapR: "CLAMP_TO_EDGE",
|
|
53
|
+
wrapS: "CLAMP_TO_EDGE",
|
|
54
|
+
wrapT: "CLAMP_TO_EDGE",
|
|
55
|
+
});
|
|
56
|
+
tex.makePalette(["#f00", "#0f0", "#00f"]);
|
|
57
|
+
this.colorTexture = tex;
|
|
58
|
+
const prg = context.programs.create({
|
|
59
|
+
vert: VERT,
|
|
60
|
+
frag: FRAG,
|
|
61
|
+
});
|
|
62
|
+
this.prg = prg;
|
|
63
|
+
const { capsule, elements } = makeCapsule(roundness);
|
|
64
|
+
const instance = factory.makeDataset();
|
|
65
|
+
this.vao = context.createVAO(prg, [capsule, instance], elements);
|
|
66
|
+
this.vertexCount = elements.length;
|
|
67
|
+
this.instanceCount = instance.count;
|
|
68
|
+
}
|
|
69
|
+
delete() {
|
|
70
|
+
this.vao.delete();
|
|
71
|
+
}
|
|
72
|
+
paint(_time, _delay) {
|
|
73
|
+
const { context, prg, vao, colorTexture, vertexCount, instanceCount, light, radiusMultiplier, radiusConstant, radiusSwitch, shiftZ, } = this;
|
|
74
|
+
const { gl, camera } = context;
|
|
75
|
+
prg.use();
|
|
76
|
+
const minRadius = (this.minRadius * camera.spaceHeightAtTarget) /
|
|
77
|
+
(camera.zoom * camera.screenHeight);
|
|
78
|
+
prg.uniform1f("uniMinRadius", minRadius);
|
|
79
|
+
prg.uniform1f("uniLight", light);
|
|
80
|
+
prg.uniform1f("uniShiftZ", shiftZ);
|
|
81
|
+
prg.uniform1f("uniRadiusMultiplier", radiusMultiplier);
|
|
82
|
+
prg.uniform1f("uniRadiusConstant", radiusConstant);
|
|
83
|
+
prg.uniform1f("uniRadiusSwitch", radiusSwitch);
|
|
84
|
+
colorTexture.activate(prg, "uniTexture");
|
|
85
|
+
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
86
|
+
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
87
|
+
vao.bind();
|
|
88
|
+
gl.drawElementsInstanced(gl.TRIANGLES, vertexCount, gl.UNSIGNED_BYTE, 0, instanceCount);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export class TgdPainterSegmentsData {
|
|
92
|
+
_count = 0;
|
|
93
|
+
attAxyzr = [];
|
|
94
|
+
attAuv = [];
|
|
95
|
+
attAinfluence = [];
|
|
96
|
+
attBxyzr = [];
|
|
97
|
+
attBuv = [];
|
|
98
|
+
attBinfluence = [];
|
|
99
|
+
get count() {
|
|
100
|
+
return this._count;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @param Axyzr (x,y,z) and radius of point A.
|
|
104
|
+
* @param Bxyzr (x,y,z) and radius of point B.
|
|
105
|
+
* @param Auv
|
|
106
|
+
* @param Buv
|
|
107
|
+
* @param radiusMultiplierInfluenceA
|
|
108
|
+
* @param radiusMultiplierInfluenceB
|
|
109
|
+
*/
|
|
110
|
+
add(Axyzr, Bxyzr, Auv = [0, 0], Buv = [0, 0], radiusMultiplierInfluenceA = 1, radiusMultiplierInfluenceB = 1) {
|
|
111
|
+
this.attAxyzr.push(...Axyzr);
|
|
112
|
+
this.attAuv.push(...Auv);
|
|
113
|
+
this.attAinfluence.push(radiusMultiplierInfluenceA);
|
|
114
|
+
this.attBxyzr.push(...Bxyzr);
|
|
115
|
+
this.attBuv.push(...Buv);
|
|
116
|
+
this.attBinfluence.push(radiusMultiplierInfluenceB);
|
|
117
|
+
this._count++;
|
|
118
|
+
}
|
|
119
|
+
makeDataset() {
|
|
120
|
+
const dataset = new TgdDataset({
|
|
121
|
+
attAxyzr: "vec4",
|
|
122
|
+
attAuv: "vec2",
|
|
123
|
+
attAinfluence: "float",
|
|
124
|
+
attBxyzr: "vec4",
|
|
125
|
+
attBuv: "vec2",
|
|
126
|
+
attBinfluence: "float",
|
|
127
|
+
}, {
|
|
128
|
+
divisor: 1,
|
|
129
|
+
});
|
|
130
|
+
dataset.set("attAxyzr", new Float32Array(this.attAxyzr));
|
|
131
|
+
dataset.set("attAuv", new Float32Array(this.attAuv));
|
|
132
|
+
dataset.set("attAinfluence", new Float32Array(this.attAinfluence));
|
|
133
|
+
dataset.set("attBxyzr", new Float32Array(this.attBxyzr));
|
|
134
|
+
dataset.set("attBuv", new Float32Array(this.attBuv));
|
|
135
|
+
dataset.set("attBinfluence", new Float32Array(this.attBinfluence));
|
|
136
|
+
return dataset;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The capsule is a 2D shape (x,y) that will be uses
|
|
141
|
+
* as a pattern for the segment.
|
|
142
|
+
* The segment will expand this template along Y axis.
|
|
143
|
+
* The tip pointing toward +Y is called A.
|
|
144
|
+
* The tip pointing toward -Y is called B.
|
|
145
|
+
* The z coodinates indicates to which tip the point
|
|
146
|
+
* is attached: 0 for A and 1 for B.
|
|
147
|
+
*/
|
|
148
|
+
function makeCapsule(roundness) {
|
|
149
|
+
// prettier-ignore
|
|
150
|
+
const offset = [
|
|
151
|
+
0, 0, 0,
|
|
152
|
+
1, 0, 0,
|
|
153
|
+
-1, 0, 0,
|
|
154
|
+
0, 0, 1,
|
|
155
|
+
1, 0, 1,
|
|
156
|
+
-1, 0, 1,
|
|
157
|
+
];
|
|
158
|
+
// prettier-ignore
|
|
159
|
+
const elements = [
|
|
160
|
+
0, 3, 1,
|
|
161
|
+
3, 4, 1,
|
|
162
|
+
0, 2, 5,
|
|
163
|
+
3, 0, 5,
|
|
164
|
+
];
|
|
165
|
+
if (roundness > 0) {
|
|
166
|
+
let oldIndexA = 1;
|
|
167
|
+
let oldIndexB = 4;
|
|
168
|
+
let elemIndex = 6;
|
|
169
|
+
for (let i = 0; i < roundness; i++) {
|
|
170
|
+
const ang = (Math.PI * (i + 1)) / (roundness + 1);
|
|
171
|
+
const x = Math.cos(ang);
|
|
172
|
+
const y = Math.sin(ang);
|
|
173
|
+
// We set z to 0 because it's related to tip A.
|
|
174
|
+
offset.push(x, y, 0);
|
|
175
|
+
elements.push(0, oldIndexA, elemIndex);
|
|
176
|
+
oldIndexA = elemIndex;
|
|
177
|
+
elemIndex++;
|
|
178
|
+
// We set z to 1 because it's related to tip B.
|
|
179
|
+
offset.push(x, -y, 1);
|
|
180
|
+
elements.push(3, elemIndex, oldIndexB);
|
|
181
|
+
oldIndexB = elemIndex;
|
|
182
|
+
elemIndex++;
|
|
183
|
+
}
|
|
184
|
+
elements.push(0, oldIndexA, 2);
|
|
185
|
+
elements.push(3, 5, oldIndexB);
|
|
186
|
+
}
|
|
187
|
+
const capsule = new TgdDataset({
|
|
188
|
+
attOffset: "vec3",
|
|
189
|
+
});
|
|
190
|
+
capsule.set("attOffset", new Float32Array(offset));
|
|
191
|
+
return {
|
|
192
|
+
capsule,
|
|
193
|
+
elements: new Uint8Array(elements),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zZWdtZW50cy9zZWdtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQVVqRCxPQUFPLElBQUksTUFBTSxpQkFBaUIsQ0FBQTtBQUNsQyxPQUFPLElBQUksTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFVBQVU7SUFldkI7SUFkaEIsWUFBWSxDQUFjO0lBQzFCLFNBQVMsR0FBVyxDQUFDLENBQUE7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLGNBQWMsR0FBRyxDQUFDLENBQUE7SUFDbEIsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUVBLEdBQUcsQ0FBZ0I7SUFDbkIsR0FBRyxDQUFZO0lBQ2YsV0FBVyxDQUFRO0lBQ25CLGFBQWEsQ0FBUTtJQUV0QyxZQUN1QixPQUE0QixFQUMvQyxPQUF1RSxFQUN2RSxFQUNJLFNBQVMsR0FBRyxDQUFDLEVBQ2IsU0FBUyxHQUFHLENBQUMsTUFDdUIsRUFBRTtRQUUxQyxLQUFLLEVBQUUsQ0FBQTtRQVBZLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBUS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxDQUFDLDBDQUEw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
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#version 300 es
|
|
2
|
+
|
|
3
|
+
precision mediump float;
|
|
4
|
+
|
|
5
|
+
uniform sampler2D uniTexture;
|
|
6
|
+
uniform mat4 uniModelViewMatrix;
|
|
7
|
+
uniform mat4 uniProjectionMatrix;
|
|
8
|
+
// Minimal value for the radius.
|
|
9
|
+
uniform float uniMinRadius;
|
|
10
|
+
// Multiply all radii by this value.
|
|
11
|
+
uniform float uniRadiusMultiplier;
|
|
12
|
+
// When uniRadiusSwitch == 1.0,
|
|
13
|
+
// we use uniRadiusConstant as radius.
|
|
14
|
+
uniform float uniRadiusConstant;
|
|
15
|
+
// 0.0 means we will use the radius defined
|
|
16
|
+
// in the attribute attAxyzr or attBaxyz.
|
|
17
|
+
// 1.0 means we use uniRadiusConstant for
|
|
18
|
+
// all vertices.
|
|
19
|
+
uniform float uniRadiusSwitch;
|
|
20
|
+
// Multiply the color by this value;
|
|
21
|
+
uniform float uniLight;
|
|
22
|
+
// Push the segments away from camera of `uniShiftZ`.
|
|
23
|
+
// This can be used if you want contours on the segments:
|
|
24
|
+
// just increase `uniRadiusMultiplier`, set a low `uniLight`,
|
|
25
|
+
// and set a small positive `uniShiftZ`.
|
|
26
|
+
uniform float uniShiftZ;
|
|
27
|
+
|
|
28
|
+
//===================
|
|
29
|
+
// Vertex attributes
|
|
30
|
+
//-------------------
|
|
31
|
+
|
|
32
|
+
// Position of the vertex, relative to
|
|
33
|
+
// the current center and assuming a
|
|
34
|
+
// radius of 1.
|
|
35
|
+
// Z tells you what tip is your center: 0 for A and 1 for B.
|
|
36
|
+
in vec3 attOffset;
|
|
37
|
+
|
|
38
|
+
//=====================
|
|
39
|
+
// Instance attributes
|
|
40
|
+
//---------------------
|
|
41
|
+
|
|
42
|
+
// Coords and radious of tip A.
|
|
43
|
+
in vec4 attAxyzr;
|
|
44
|
+
// Coords and radious of tip B.
|
|
45
|
+
in vec4 attBxyzr;
|
|
46
|
+
// The color is taken from a texture.
|
|
47
|
+
in vec2 attAuv;
|
|
48
|
+
in vec2 attBuv;
|
|
49
|
+
// 0 means that nothing modifies the initial radius,
|
|
50
|
+
// except the minRadius.
|
|
51
|
+
in float attAinfluence;
|
|
52
|
+
in float attBinfluence;
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
out vec4 varColor;
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
vec3 worldToCamera(vec3 v);
|
|
59
|
+
float getRadius(float tip);
|
|
60
|
+
mat3 getTransfoMatrix(float tip, vec3 camA, vec3 camB);
|
|
61
|
+
|
|
62
|
+
void main() {
|
|
63
|
+
vec3 camA = worldToCamera(attAxyzr.xyz);
|
|
64
|
+
vec3 camB = worldToCamera(attBxyzr.xyz);
|
|
65
|
+
float tip = attOffset.z;
|
|
66
|
+
vec2 uv = mix(attAuv, attBuv, tip);
|
|
67
|
+
varColor = texture(uniTexture, uv)
|
|
68
|
+
* vec4(uniLight, uniLight, uniLight, 1.0);
|
|
69
|
+
float radius = getRadius(tip);
|
|
70
|
+
mat3 transfo = getTransfoMatrix(tip, camA, camB);
|
|
71
|
+
vec3 point = transfo * vec3(attOffset.xy * radius, 1.0);
|
|
72
|
+
point.z -= uniShiftZ;
|
|
73
|
+
gl_Position =
|
|
74
|
+
uniProjectionMatrix
|
|
75
|
+
* vec4(point, 1);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
float getRadius(float tip) {
|
|
79
|
+
float influence = mix(attAinfluence, attBinfluence, tip);
|
|
80
|
+
float originalRadius = mix(
|
|
81
|
+
attAxyzr.w,
|
|
82
|
+
attBxyzr.w,
|
|
83
|
+
tip
|
|
84
|
+
);
|
|
85
|
+
float modifiedRadius = mix(
|
|
86
|
+
originalRadius,
|
|
87
|
+
uniRadiusConstant,
|
|
88
|
+
uniRadiusSwitch
|
|
89
|
+
) * uniRadiusMultiplier;
|
|
90
|
+
float radius = mix(
|
|
91
|
+
originalRadius,
|
|
92
|
+
modifiedRadius,
|
|
93
|
+
influence
|
|
94
|
+
);
|
|
95
|
+
return max(uniMinRadius, radius);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
vec3 worldToCamera(vec3 v) {
|
|
99
|
+
vec4 result = uniModelViewMatrix * vec4(v, 1.0);
|
|
100
|
+
return result.xyz;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
mat3 getTransfoMatrix(float tip, vec3 camA, vec3 camB) {
|
|
104
|
+
// What is the current tip?
|
|
105
|
+
vec3 camO = mix(camA, camB, tip);
|
|
106
|
+
vec2 A = camA.xy;
|
|
107
|
+
vec2 B = camB.xy;
|
|
108
|
+
vec3 Y = vec3(
|
|
109
|
+
A == B ? vec2(0, 1) : normalize(A - B),
|
|
110
|
+
0
|
|
111
|
+
);
|
|
112
|
+
vec3 X = vec3(Y.y, -Y.x, 0);
|
|
113
|
+
return mat3(X, Y, camO);
|
|
114
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TgdContext } from "
|
|
3
|
-
import { TgdPainter } from "
|
|
4
|
-
import {
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
z: number;
|
|
10
|
-
}
|
|
11
|
-
export declare class TgdPainterSkybox implements TgdPainter {
|
|
1
|
+
import { TgdTextureCubeOptions } from "../../types";
|
|
2
|
+
import { TgdContext } from "../../context";
|
|
3
|
+
import { TgdPainter } from "../painter";
|
|
4
|
+
import { TgdCameraPerspective } from "../../camera";
|
|
5
|
+
export type TgdPainterSkyboxOptions = TgdTextureCubeOptions & {
|
|
6
|
+
camera?: TgdCameraPerspective;
|
|
7
|
+
};
|
|
8
|
+
export declare class TgdPainterSkybox extends TgdPainter {
|
|
12
9
|
private readonly context;
|
|
13
|
-
camera:
|
|
10
|
+
camera: TgdCameraPerspective;
|
|
14
11
|
private readonly texture;
|
|
15
12
|
private readonly program;
|
|
16
13
|
private readonly vao;
|
|
17
14
|
private readonly matrix;
|
|
18
15
|
private readonly tmpMat;
|
|
19
|
-
constructor(context: TgdContext, options:
|
|
20
|
-
camera: TgdCamera;
|
|
21
|
-
});
|
|
16
|
+
constructor(context: TgdContext, options: TgdPainterSkyboxOptions);
|
|
22
17
|
delete(): void;
|
|
23
|
-
paint(
|
|
24
|
-
update(time: number, delay: number): void;
|
|
18
|
+
paint(): void;
|
|
25
19
|
}
|
|
26
20
|
//# sourceMappingURL=skybox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skybox.d.ts","sourceRoot":"","sources":["../../../src/painter/skybox/skybox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"skybox.d.ts","sourceRoot":"","sources":["../../../src/painter/skybox/skybox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAMlD,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAC1D,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAChC,CAAA;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAUxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IATrB,MAAM,EAAE,oBAAoB,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGlB,OAAO,EAAE,UAAU,EACpC,OAAO,EAAE,uBAAuB;IAmBpC,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,IAAI;CA0BhB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#version 300 es
|
|
2
|
+
|
|
3
|
+
precision highp float;
|
|
4
|
+
|
|
5
|
+
uniform samplerCube uniTexture;
|
|
6
|
+
uniform mat4 uniMatrix;
|
|
7
|
+
|
|
8
|
+
in vec4 varPoint;
|
|
9
|
+
|
|
10
|
+
out vec4 FragColor;
|
|
11
|
+
|
|
12
|
+
void main() {
|
|
13
|
+
vec4 t = uniMatrix * varPoint;
|
|
14
|
+
FragColor = texture(uniTexture, normalize(t.xyz / t.w));
|
|
15
|
+
}
|