x_ite 4.2.17 → 4.7.7
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/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.vscode/launch.json +15 -0
- package/.vscode/settings.json +12 -0
- package/.vscode/tasks.json +25 -0
- package/Makefile +27 -10
- package/README.md +13 -145
- package/build/bin/dist.pl +65 -8
- package/build/bin/version-number.pl +25 -0
- package/build/bin/version.pl +54 -14
- package/build/components/annotation.build.js +15 -0
- package/build/components/cad-geometry.build.js +15 -0
- package/build/components/cube-map-texturing.build.js +15 -0
- package/build/components/dis.build.js +15 -0
- package/build/components/event-utilities.build.js +15 -0
- package/build/components/geometry2d.build.js +15 -0
- package/build/components/geospatial.build.js +15 -0
- package/build/components/h-anim.build.js +15 -0
- package/build/components/key-device-sensor.build.js +15 -0
- package/build/components/layout.build.js +15 -0
- package/build/components/nurbs.build.js +15 -0
- package/build/components/particle-systems.build.js +15 -0
- package/build/components/picking.build.js +15 -0
- package/build/components/projective-texture-mapping.build.js +15 -0
- package/build/components/rigid-body-physics.build.js +15 -0
- package/build/components/scripting.build.js +15 -0
- package/build/components/texturing-3d.build.js +15 -0
- package/build/components/volume-rendering.build.js +15 -0
- package/build/components/x_ite.build.js +15 -0
- package/build/parts/default.end.frag.js +3 -0
- package/build/parts/default.start.frag.js +15 -0
- package/build/parts/x_ite.end.frag.js +25 -0
- package/build/parts/x_ite.start.frag.js +16 -0
- package/build/x_ite.build.js +5 -2
- package/dist/{components/texturing-3d.js → assets/components/annotation.js} +341 -263
- package/dist/assets/components/annotation.min.js +1 -0
- package/dist/{components → assets/components}/cad-geometry.js +180 -76
- package/dist/assets/components/cad-geometry.min.js +1 -0
- package/dist/assets/components/cube-map-texturing.js +1222 -0
- package/dist/assets/components/cube-map-texturing.min.js +1 -0
- package/dist/assets/components/dis.js +918 -0
- package/dist/assets/components/dis.min.js +1 -0
- package/dist/assets/components/event-utilities.js +1124 -0
- package/dist/assets/components/event-utilities.min.js +1 -0
- package/dist/assets/components/geometry2d.js +2200 -0
- package/dist/assets/components/geometry2d.min.js +1 -0
- package/dist/{components → assets/components}/geospatial.js +364 -269
- package/dist/assets/components/geospatial.min.js +2 -0
- package/dist/{components → assets/components}/h-anim.js +224 -62
- package/dist/assets/components/h-anim.min.js +1 -0
- package/dist/assets/components/key-device-sensor.js +860 -0
- package/dist/assets/components/key-device-sensor.min.js +1 -0
- package/dist/assets/components/layout.js +2018 -0
- package/dist/assets/components/layout.min.js +1 -0
- package/dist/{components → assets/components}/nurbs.js +632 -348
- package/dist/assets/components/nurbs.min.js +2 -0
- package/dist/{components → assets/components}/particle-systems.js +514 -476
- package/dist/assets/components/particle-systems.min.js +2 -0
- package/dist/assets/components/picking.js +2491 -0
- package/dist/assets/components/picking.min.js +1 -0
- package/dist/assets/components/projective-texture-mapping.js +823 -0
- package/dist/assets/components/projective-texture-mapping.min.js +1 -0
- package/dist/assets/components/rigid-body-physics.js +4579 -0
- package/dist/assets/components/rigid-body-physics.min.js +59 -0
- package/dist/assets/components/scripting.js +816 -0
- package/dist/assets/components/scripting.min.js +1 -0
- package/dist/assets/components/texturing-3d.js +10064 -0
- package/dist/assets/components/texturing-3d.min.js +48 -0
- package/dist/assets/components/volume-rendering.js +3976 -0
- package/dist/assets/components/volume-rendering.min.js +3 -0
- package/dist/assets/components/x_ite.js +295 -0
- package/dist/assets/components/x_ite.min.js +1 -0
- package/{fonts → dist/assets/fonts}/DroidSerif-Bold.ttf +0 -0
- package/{fonts → dist/assets/fonts}/DroidSerif-BoldItalic.ttf +0 -0
- package/{fonts → dist/assets/fonts}/DroidSerif-Italic.ttf +0 -0
- package/{fonts → dist/assets/fonts}/DroidSerif-Regular.ttf +0 -0
- package/{fonts → dist/assets/fonts}/Ubuntu-B.ttf +0 -0
- package/{fonts → dist/assets/fonts}/Ubuntu-BI.ttf +0 -0
- package/{fonts → dist/assets/fonts}/Ubuntu-R.ttf +0 -0
- package/{fonts → dist/assets/fonts}/Ubuntu-RI.ttf +0 -0
- package/{fonts → dist/assets/fonts}/UbuntuMono-B.ttf +0 -0
- package/{fonts → dist/assets/fonts}/UbuntuMono-BI.ttf +0 -0
- package/{fonts → dist/assets/fonts}/UbuntuMono-R.ttf +0 -0
- package/{fonts → dist/assets/fonts}/UbuntuMono-RI.ttf +0 -0
- package/dist/assets/hatching/0.png +0 -0
- package/dist/assets/hatching/1.png +0 -0
- package/dist/assets/hatching/10.png +0 -0
- package/dist/assets/hatching/11.png +0 -0
- package/dist/assets/hatching/12.png +0 -0
- package/dist/assets/hatching/13.png +0 -0
- package/dist/assets/hatching/14.png +0 -0
- package/dist/assets/hatching/15.png +0 -0
- package/dist/assets/hatching/16.png +0 -0
- package/dist/assets/hatching/17.png +0 -0
- package/dist/assets/hatching/18.png +0 -0
- package/dist/assets/hatching/19.png +0 -0
- package/dist/assets/hatching/2.png +0 -0
- package/dist/assets/hatching/3.png +0 -0
- package/dist/assets/hatching/4.png +0 -0
- package/dist/assets/hatching/5.png +0 -0
- package/dist/assets/hatching/6.png +0 -0
- package/dist/assets/hatching/7.png +0 -0
- package/dist/assets/hatching/8.png +0 -0
- package/dist/assets/hatching/9.png +0 -0
- package/dist/{images → assets/images}/ExamineViewer.png +0 -0
- package/dist/{images → assets/images}/FlyViewer.png +0 -0
- package/dist/{images → assets/images}/NoneViewer.png +0 -0
- package/dist/{images → assets/images}/PlaneViewer.png +0 -0
- package/dist/{images → assets/images}/PrimitiveQuality.png +0 -0
- package/dist/{images → assets/images}/TextureQuality.png +0 -0
- package/dist/{images → assets/images}/Time.png +0 -0
- package/dist/{images → assets/images}/Viewpoint.png +0 -0
- package/dist/{images → assets/images}/WalkViewer.png +0 -0
- package/dist/assets/images/go-next.png +0 -0
- package/dist/{images → assets/images}/gtk-fullscreen.png +0 -0
- package/dist/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
- package/dist/{images → assets/images}/gtk-zoom-fit.png +0 -0
- package/dist/{images → assets/images}/gtk-zoom-in.png +0 -0
- package/dist/{images → assets/images}/help-about.png +0 -0
- package/dist/{images → assets/images}/icon.bw.png +0 -0
- package/dist/{images → assets/images}/icon.png +0 -0
- package/dist/assets/images/logo.128.png +0 -0
- package/dist/{images → assets/images}/logo.bw.png +0 -0
- package/dist/{images → assets/images}/logo.png +0 -0
- package/dist/assets/linetype/0.png +0 -0
- package/dist/assets/linetype/1.png +0 -0
- package/dist/assets/linetype/10.png +0 -0
- package/dist/assets/linetype/11.png +0 -0
- package/dist/assets/linetype/12.png +0 -0
- package/dist/assets/linetype/13.png +0 -0
- package/dist/assets/linetype/14.png +0 -0
- package/dist/assets/linetype/15.png +0 -0
- package/dist/assets/linetype/16.png +0 -0
- package/dist/assets/linetype/2.png +0 -0
- package/dist/assets/linetype/3.png +0 -0
- package/dist/assets/linetype/4.png +0 -0
- package/dist/assets/linetype/5.png +0 -0
- package/dist/assets/linetype/6.png +0 -0
- package/dist/assets/linetype/7.png +0 -0
- package/dist/assets/linetype/8.png +0 -0
- package/dist/assets/linetype/9.png +0 -0
- package/dist/assets/shaders/webgl1/Background.fs +23 -0
- package/dist/assets/shaders/webgl1/Background.vs +16 -0
- package/dist/assets/shaders/webgl1/Depth.fs +60 -0
- package/dist/assets/shaders/webgl1/Depth.vs +13 -0
- package/dist/assets/shaders/webgl1/Fallback.fs +28 -0
- package/dist/assets/shaders/webgl1/Fallback.vs +24 -0
- package/dist/assets/shaders/webgl1/FallbackUnlit.fs +15 -0
- package/dist/assets/shaders/webgl1/FallbackUnlit.vs +18 -0
- package/dist/assets/shaders/webgl1/Gouraud.fs +529 -0
- package/dist/assets/shaders/webgl1/Gouraud.vs +107 -0
- package/dist/assets/shaders/webgl1/Phong.fs +837 -0
- package/dist/assets/shaders/webgl1/Phong.vs +52 -0
- package/dist/assets/shaders/webgl1/PointSet.fs +541 -0
- package/dist/assets/shaders/webgl1/PointSet.vs +48 -0
- package/dist/assets/shaders/webgl1/Unlit.fs +538 -0
- package/dist/assets/shaders/webgl1/Unlit.vs +52 -0
- package/dist/assets/shaders/webgl1/Wireframe.fs +93 -0
- package/dist/assets/shaders/webgl1/Wireframe.vs +47 -0
- package/dist/assets/shaders/webgl2/Background.fs +25 -0
- package/dist/assets/shaders/webgl2/Background.vs +17 -0
- package/dist/assets/shaders/webgl2/Depth.fs +62 -0
- package/dist/assets/shaders/webgl2/Depth.vs +14 -0
- package/dist/assets/shaders/webgl2/Gouraud.fs +684 -0
- package/dist/assets/shaders/webgl2/Gouraud.vs +108 -0
- package/dist/assets/shaders/webgl2/Phong.fs +1013 -0
- package/dist/assets/shaders/webgl2/Phong.vs +53 -0
- package/dist/assets/shaders/webgl2/PointSet.fs +696 -0
- package/dist/assets/shaders/webgl2/PointSet.vs +49 -0
- package/dist/assets/shaders/webgl2/Unlit.fs +693 -0
- package/dist/assets/shaders/webgl2/Unlit.vs +53 -0
- package/dist/assets/shaders/webgl2/Wireframe.fs +102 -0
- package/dist/assets/shaders/webgl2/Wireframe.vs +48 -0
- package/dist/example.html +8 -7
- package/dist/x_ite.css +167 -49
- package/dist/x_ite.js +66263 -60020
- package/dist/x_ite.min.js +41 -41
- package/dist/x_ite.zip +0 -0
- package/docs/404.md +5 -0
- package/docs/Accessing-the-External-Browser.md +319 -0
- package/docs/Browser-Support.md +47 -0
- package/docs/Custom-Shaders.md +896 -0
- package/docs/Features.md +49 -0
- package/docs/Glossary.md +339 -0
- package/docs/How-To-Configure-Your-Web-Server.md +56 -0
- package/docs/Supported-Nodes.md +370 -0
- package/docs/What's-New.md +1295 -0
- package/docs/XHTML-DOM-Integration.md +82 -0
- package/docs/_config.yml +140 -0
- package/docs/_data/navigation.yml +137 -0
- package/docs/assets/css/main.scss +100 -0
- package/docs/assets/images/logo.png +0 -0
- package/docs/google3696ee938394d7b6.html +1 -0
- package/docs/index.md +1033 -0
- package/docs/reference/Browser-Services.md +361 -0
- package/docs/reference/Constants-Services.md +376 -0
- package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +128 -0
- package/docs/reference/Field-Services-and-Objects.md +1006 -0
- package/docs/reference/Prototype-Services.md +121 -0
- package/docs/reference/Route-Services.md +49 -0
- package/docs/reference/Scene-Services.md +360 -0
- package/docs/reference/Script-Node-Authoring-Interface.md +342 -0
- package/docs/tutorials/Adding-backgrounds.md +268 -0
- package/docs/tutorials/Adding-fog.md +67 -0
- package/docs/tutorials/Adding-sound.md +326 -0
- package/docs/tutorials/Animating-transforms.md +385 -0
- package/docs/tutorials/Basic-Nodes.md +317 -0
- package/docs/tutorials/Building-a-X3D-world.md +152 -0
- package/docs/tutorials/Building-elevation-grids.md +170 -0
- package/docs/tutorials/Building-extruded-shapes.md +145 -0
- package/docs/tutorials/Building-primitive-shapes.md +204 -0
- package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +311 -0
- package/docs/tutorials/Controlling-appearance-with-materials.md +186 -0
- package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +208 -0
- package/docs/tutorials/Controlling-detail.md +130 -0
- package/docs/tutorials/Controlling-how-textures-are-mapped.md +277 -0
- package/docs/tutorials/Controlling-navigation.md +70 -0
- package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +180 -0
- package/docs/tutorials/Controlling-the-viewpoint.md +49 -0
- package/docs/tutorials/Creating-new-node-types.md +313 -0
- package/docs/tutorials/Grouping-nodes.md +237 -0
- package/docs/tutorials/Hello,-World!.md +204 -0
- package/docs/tutorials/Improving-Performance.md +227 -0
- package/docs/tutorials/Increasing-Rendering-Speed.md +110 -0
- package/docs/tutorials/Introducing-X3D.md +94 -0
- package/docs/tutorials/Introducing-animation.md +211 -0
- package/docs/tutorials/Introducing-script-use.md +127 -0
- package/docs/tutorials/Lighting-your-world.md +139 -0
- package/docs/tutorials/Mapping-textures.md +212 -0
- package/docs/tutorials/Naming-nodes.md +161 -0
- package/docs/tutorials/Providing-information-about-your-world.md +30 -0
- package/docs/tutorials/Sensing-the-viewer.md +205 -0
- package/docs/tutorials/Sensing-viewer-actions.md +214 -0
- package/docs/tutorials/Transforming-Shapes.md +270 -0
- package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +631 -0
- package/docs/tutorials/index.md +78 -0
- package/meta/logo/logo.png +0 -0
- package/meta/logo/logo.svg +216 -217
- package/meta/web3d.html +3 -3
- package/package.json +43 -28
- package/src/assets/components/annotation.js +87 -0
- package/src/{components → assets/components}/cad-geometry.js +0 -0
- package/src/{x_ite/Components/CubeMapTexturing.js → assets/components/cube-map-texturing.js} +15 -21
- package/src/assets/components/dis.js +84 -0
- package/src/{x_ite/Components/EventUtilities.js → assets/components/event-utilities.js} +20 -26
- package/src/{x_ite/Components/Geometry2D.js → assets/components/geometry2d.js} +22 -25
- package/src/{components → assets/components}/geospatial.js +0 -0
- package/src/{components → assets/components}/h-anim.js +9 -7
- package/src/{x_ite/Components/KeyDeviceSensor.js → assets/components/key-device-sensor.js} +17 -20
- package/src/{x_ite/Components/Layout.js → assets/components/layout.js} +20 -23
- package/src/{components → assets/components}/nurbs.js +0 -0
- package/src/{components → assets/components}/particle-systems.js +1 -1
- package/src/assets/components/picking.js +87 -0
- package/src/assets/components/projective-texture-mapping.js +75 -0
- package/src/{components → assets/components}/rigid-body-physics.js +7 -2
- package/src/{x_ite/Components/Scripting.js → assets/components/scripting.js} +13 -19
- package/src/{components → assets/components}/texturing-3d.js +12 -13
- package/src/assets/components/volume-rendering.js +118 -0
- package/src/{x_ite/Components/X_ITE.js → assets/components/x_ite.js} +12 -30
- package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
- package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
- package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
- package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
- package/src/assets/fonts/Ubuntu-B.ttf +0 -0
- package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
- package/src/assets/fonts/Ubuntu-R.ttf +0 -0
- package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
- package/src/assets/hatching/0.png +0 -0
- package/src/assets/hatching/1.png +0 -0
- package/src/assets/hatching/10.png +0 -0
- package/src/assets/hatching/11.png +0 -0
- package/src/assets/hatching/12.png +0 -0
- package/src/assets/hatching/13.png +0 -0
- package/src/assets/hatching/14.png +0 -0
- package/src/assets/hatching/15.png +0 -0
- package/src/assets/hatching/16.png +0 -0
- package/src/assets/hatching/17.png +0 -0
- package/src/assets/hatching/18.png +0 -0
- package/src/assets/hatching/19.png +0 -0
- package/src/assets/hatching/2.png +0 -0
- package/src/assets/hatching/3.png +0 -0
- package/src/assets/hatching/4.png +0 -0
- package/src/assets/hatching/5.png +0 -0
- package/src/assets/hatching/6.png +0 -0
- package/src/assets/hatching/7.png +0 -0
- package/src/assets/hatching/8.png +0 -0
- package/src/assets/hatching/9.png +0 -0
- package/src/{images → assets/images}/ExamineViewer.png +0 -0
- package/src/{images → assets/images}/FlyViewer.png +0 -0
- package/src/{images → assets/images}/NoneViewer.png +0 -0
- package/src/{images → assets/images}/PlaneViewer.png +0 -0
- package/src/{images → assets/images}/PrimitiveQuality.png +0 -0
- package/src/{images → assets/images}/TextureQuality.png +0 -0
- package/src/{images → assets/images}/Time.png +0 -0
- package/src/{images → assets/images}/Viewpoint.png +0 -0
- package/src/{images → assets/images}/WalkViewer.png +0 -0
- package/src/assets/images/go-next.png +0 -0
- package/src/{images → assets/images}/gtk-fullscreen.png +0 -0
- package/src/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
- package/src/{images → assets/images}/gtk-zoom-fit.png +0 -0
- package/src/{images → assets/images}/gtk-zoom-in.png +0 -0
- package/src/{images → assets/images}/help-about.png +0 -0
- package/src/{images → assets/images}/icon.bw.png +0 -0
- package/src/{images → assets/images}/icon.png +0 -0
- package/src/assets/images/logo.128.png +0 -0
- package/src/{images → assets/images}/logo.bw.png +0 -0
- package/src/{images → assets/images}/logo.png +0 -0
- package/src/assets/linetype/0.png +0 -0
- package/src/assets/linetype/1.png +0 -0
- package/src/assets/linetype/10.png +0 -0
- package/src/assets/linetype/11.png +0 -0
- package/src/assets/linetype/12.png +0 -0
- package/src/assets/linetype/13.png +0 -0
- package/src/assets/linetype/14.png +0 -0
- package/src/assets/linetype/15.png +0 -0
- package/src/assets/linetype/16.png +0 -0
- package/src/assets/linetype/2.png +0 -0
- package/src/assets/linetype/3.png +0 -0
- package/src/assets/linetype/4.png +0 -0
- package/src/assets/linetype/5.png +0 -0
- package/src/assets/linetype/6.png +0 -0
- package/src/assets/linetype/7.png +0 -0
- package/src/assets/linetype/8.png +0 -0
- package/src/assets/linetype/9.png +0 -0
- package/src/assets/shaders/Types.glsl +102 -0
- package/src/assets/shaders/webgl1/Background.fs +16 -0
- package/src/assets/shaders/webgl1/Background.vs +22 -0
- package/src/assets/shaders/webgl1/Depth.fs +16 -0
- package/src/assets/shaders/webgl1/Depth.vs +20 -0
- package/src/assets/shaders/webgl1/Fallback.fs +38 -0
- package/src/assets/shaders/webgl1/Fallback.vs +30 -0
- package/src/assets/shaders/webgl1/FallbackUnlit.fs +21 -0
- package/src/assets/shaders/webgl1/FallbackUnlit.vs +24 -0
- package/src/assets/shaders/webgl1/Gouraud.fs +66 -0
- package/src/assets/shaders/webgl1/Gouraud.vs +147 -0
- package/src/assets/shaders/webgl1/Phong.fs +172 -0
- package/src/assets/shaders/webgl1/Phong.vs +67 -0
- package/src/assets/shaders/webgl1/PointSet.fs +100 -0
- package/src/assets/shaders/webgl1/PointSet.vs +70 -0
- package/src/assets/shaders/webgl1/Unlit.fs +86 -0
- package/src/assets/shaders/webgl1/Unlit.vs +67 -0
- package/src/assets/shaders/webgl1/Wireframe.fs +74 -0
- package/src/assets/shaders/webgl1/Wireframe.vs +63 -0
- package/src/assets/shaders/webgl1/include/ClipPlanes.glsl +16 -0
- package/src/assets/shaders/webgl1/include/Fog.glsl +38 -0
- package/src/assets/shaders/webgl1/include/Hatch.glsl +18 -0
- package/src/{x_ite/Browser/Shaders/Include/Pack.h → assets/shaders/webgl1/include/Pack.glsl} +0 -1
- package/src/assets/shaders/webgl1/include/Perlin.glsl +40 -0
- package/src/{x_ite/Browser/Shaders/Include/Shadow.h → assets/shaders/webgl1/include/Shadow.glsl} +33 -33
- package/src/assets/shaders/webgl1/include/Texture.glsl +488 -0
- package/src/assets/shaders/webgl2/Background.fs +19 -0
- package/src/assets/shaders/webgl2/Background.vs +23 -0
- package/src/assets/shaders/webgl2/Depth.fs +19 -0
- package/src/assets/shaders/webgl2/Depth.vs +21 -0
- package/src/assets/shaders/webgl2/Gouraud.fs +64 -0
- package/src/assets/shaders/webgl2/Gouraud.vs +148 -0
- package/src/assets/shaders/webgl2/Phong.fs +170 -0
- package/src/assets/shaders/webgl2/Phong.vs +68 -0
- package/src/assets/shaders/webgl2/PointSet.fs +99 -0
- package/src/assets/shaders/webgl2/PointSet.vs +71 -0
- package/src/assets/shaders/webgl2/Unlit.fs +85 -0
- package/src/assets/shaders/webgl2/Unlit.vs +68 -0
- package/src/assets/shaders/webgl2/Wireframe.fs +73 -0
- package/src/assets/shaders/webgl2/Wireframe.vs +64 -0
- package/src/assets/shaders/webgl2/include/ClipPlanes.glsl +16 -0
- package/src/assets/shaders/webgl2/include/Fog.glsl +46 -0
- package/src/assets/shaders/webgl2/include/Hatch.glsl +18 -0
- package/src/assets/shaders/webgl2/include/Pack.glsl +51 -0
- package/src/assets/shaders/webgl2/include/Perlin.glsl +40 -0
- package/src/assets/shaders/webgl2/include/Shadow.glsl +324 -0
- package/src/assets/shaders/webgl2/include/Texture.glsl +623 -0
- package/src/bookmarks.js +33 -12
- package/src/dummy.js +1 -0
- package/src/example.html +8 -7
- package/src/examples.js +21 -3
- package/src/lib/ammojs/AmmoJS.js +58 -0
- package/src/lib/ammojs/Makefile +4 -0
- package/src/lib/ammojs/ammo.idl +72 -1
- package/src/lib/ammojs/ammo.js +25 -21
- package/src/lib/jpeg/jpeg.js +1019 -0
- package/src/lib/nurbs/extras/sample.js +137 -80
- package/src/locale/de.po +18 -73
- package/src/locale/fr.po +18 -74
- package/src/spinner.css +18 -6
- package/src/standard/Geospatial/Geodetic.js +43 -43
- package/src/standard/Geospatial/ReferenceEllipsoids.js +1 -1
- package/src/standard/Geospatial/UniversalTransverseMercator.js +42 -42
- package/src/standard/Math/Algorithm.js +22 -39
- package/src/standard/Math/Algorithms/Bezier.js +147 -0
- package/src/standard/Math/Algorithms/MergeSort.js +2 -2
- package/src/standard/Math/Algorithms/PartialSort.js +6 -6
- package/src/standard/Math/Algorithms/QuickSort.js +8 -6
- package/src/standard/Math/Algorithms/SAT.js +4 -8
- package/src/standard/Math/Algorithms/eigendecomposition.js +37 -33
- package/src/standard/Math/Geometry/Box2.js +84 -56
- package/src/standard/Math/Geometry/Box3.js +400 -358
- package/src/standard/Math/Geometry/Camera.js +19 -16
- package/src/standard/Math/Geometry/Cylinder3.js +13 -13
- package/src/standard/Math/Geometry/Line3.js +34 -34
- package/src/standard/Math/Geometry/Plane3.js +15 -15
- package/src/standard/Math/Geometry/Sphere3.js +122 -105
- package/src/standard/Math/Geometry/Spheroid3.js +1 -1
- package/src/standard/Math/Geometry/Triangle2.js +5 -5
- package/src/standard/Math/Geometry/Triangle3.js +12 -14
- package/src/standard/Math/Geometry/ViewVolume.js +303 -106
- package/src/standard/Math/Numbers/Color3.js +26 -23
- package/src/standard/Math/Numbers/Color4.js +9 -9
- package/src/standard/Math/Numbers/Complex.js +13 -17
- package/src/standard/Math/Numbers/Matrix2.js +20 -13
- package/src/standard/Math/Numbers/Matrix3.js +129 -205
- package/src/standard/Math/Numbers/Matrix4.js +136 -257
- package/src/standard/Math/Numbers/Quaternion.js +49 -138
- package/src/standard/Math/Numbers/Rotation4.js +42 -55
- package/src/standard/Math/Numbers/Vector2.js +32 -115
- package/src/standard/Math/Numbers/Vector3.js +46 -151
- package/src/standard/Math/Numbers/Vector4.js +44 -163
- package/src/standard/Math/Utility/BVH.js +21 -20
- package/src/standard/Math/Utility/MatrixStack.js +4 -4
- package/src/standard/Networking/BinaryTransport.js +8 -8
- package/src/standard/Time/MicroTime.js +81 -0
- package/src/standard/Utility/DataStorage.js +11 -14
- package/src/standard/Utility/MapUtilities.js +69 -0
- package/src/standard/Utility/ObjectCache.js +2 -3
- package/src/standard/Utility/Shuffle.js +5 -6
- package/src/tests.js +84 -5
- package/src/x_ite/Base/Events.js +9 -10
- package/src/x_ite/Base/X3DChildObject.js +20 -16
- package/src/x_ite/Base/X3DEventObject.js +3 -7
- package/src/x_ite/Base/X3DObject.js +44 -27
- package/src/x_ite/Basic/FieldDefinitionArray.js +11 -4
- package/src/x_ite/Basic/X3DBaseNode.js +427 -246
- package/src/x_ite/Basic/X3DField.js +48 -69
- package/src/x_ite/Basic/X3DFieldDefinition.js +0 -4
- package/src/x_ite/Basic/X3DObjectArrayField.js +102 -108
- package/src/x_ite/Basic/X3DTypedArrayField.js +194 -163
- package/src/x_ite/Bits/TraverseType.js +2 -5
- package/src/x_ite/Bits/X3DConstants.js +11 -2
- package/src/x_ite/Browser/Core/BrowserOptions.js +89 -68
- package/src/x_ite/Browser/Core/BrowserTimings.js +21 -29
- package/src/x_ite/Browser/Core/ContextMenu.js +139 -60
- package/src/x_ite/Browser/Core/Notification.js +3 -3
- package/src/x_ite/Browser/Core/PrimitiveQuality.js +3 -7
- package/src/x_ite/Browser/Core/Shading.js +3 -7
- package/src/x_ite/Browser/Core/TextureQuality.js +3 -7
- package/src/x_ite/Browser/Core/X3DCoreContext.js +398 -58
- package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +714 -0
- package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +17 -28
- package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +5 -14
- package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +81 -28
- package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +53 -44
- package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +51 -12
- package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -9
- package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +98 -0
- package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +14 -206
- package/src/x_ite/Browser/Layout/ScreenText.js +226 -254
- package/src/x_ite/Browser/Layout/X3DLayoutContext.js +13 -11
- package/src/x_ite/Browser/Lighting/X3DLightingContext.js +15 -9
- package/src/x_ite/Browser/NURBS/NURBS.js +84 -72
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +125 -83
- package/src/x_ite/Browser/Navigation/FlyViewer.js +14 -9
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +60 -40
- package/src/x_ite/Browser/Navigation/NoneViewer.js +12 -1
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +39 -20
- package/src/x_ite/Browser/Navigation/WalkViewer.js +21 -6
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +110 -85
- package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +11 -6
- package/src/x_ite/Browser/Navigation/X3DViewer.js +73 -48
- package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +18 -24
- package/src/x_ite/Browser/Networking/urls.js +31 -16
- package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +5 -6
- package/src/x_ite/Browser/Picking/IntersectionType.js +63 -0
- package/src/x_ite/Browser/Picking/MatchCriterion.js +64 -0
- package/src/x_ite/Browser/Picking/SortOrder.js +65 -0
- package/src/x_ite/Browser/Picking/VolumePicker.js +197 -0
- package/src/x_ite/Browser/Picking/X3DPickingContext.js +130 -0
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +26 -20
- package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +17 -10
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +38 -27
- package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +70 -0
- package/src/x_ite/Browser/Shaders/Shader.js +112 -92
- package/src/x_ite/Browser/Shaders/ShaderSource.js +140 -0
- package/src/x_ite/Browser/Shaders/ShaderTest.js +92 -77
- package/src/x_ite/Browser/Shaders/X3DShadersContext.js +134 -74
- package/src/x_ite/Browser/Shape/AlphaMode.js +65 -0
- package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
- package/src/x_ite/Browser/Shape/X3DShapeContext.js +108 -4
- package/src/x_ite/Browser/Text/PolygonText.js +153 -170
- package/src/x_ite/Browser/Text/TextAlignment.js +3 -7
- package/src/x_ite/Browser/Text/X3DTextContext.js +38 -30
- package/src/x_ite/Browser/Text/X3DTextGeometry.js +49 -74
- package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +64 -0
- package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +81 -0
- package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +65 -0
- package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +73 -0
- package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +147 -45
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1126 -0
- package/src/x_ite/Browser/Texturing3D/NRRDParser.js +686 -0
- package/src/x_ite/Browser/Time/X3DTimeContext.js +20 -17
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +120 -0
- package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +28 -0
- package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +114 -0
- package/src/x_ite/Browser/X3DBrowser.js +282 -224
- package/src/x_ite/Browser/X3DBrowserContext.js +60 -27
- package/src/x_ite/Components/Annotation/AnnotationLayer.js +108 -0
- package/src/x_ite/Components/Annotation/AnnotationTarget.js +101 -0
- package/src/x_ite/Components/Annotation/GroupAnnotation.js +112 -0
- package/src/x_ite/Components/Annotation/IconAnnotation.js +110 -0
- package/src/x_ite/Components/Annotation/TextAnnotation.js +102 -0
- package/src/x_ite/Components/Annotation/URLAnnotation.js +101 -0
- package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +76 -0
- package/src/x_ite/Components/CADGeometry/CADAssembly.js +4 -4
- package/src/x_ite/Components/CADGeometry/CADFace.js +135 -30
- package/src/x_ite/Components/CADGeometry/CADLayer.js +3 -18
- package/src/x_ite/Components/CADGeometry/CADPart.js +4 -8
- package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +18 -10
- package/src/x_ite/Components/Core/WorldInfo.js +16 -6
- package/src/x_ite/Components/Core/X3DBindableNode.js +4 -33
- package/src/x_ite/Components/Core/X3DChildNode.js +14 -1
- package/src/x_ite/Components/Core/X3DNode.js +0 -63
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +128 -168
- package/src/x_ite/Components/Core.js +6 -9
- package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +38 -46
- package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +31 -30
- package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +42 -57
- package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +36 -48
- package/src/x_ite/Components/DIS/EspduTransform.js +12 -6
- package/src/x_ite/Components/DIS/ReceiverPdu.js +12 -6
- package/src/x_ite/Components/DIS/SignalPdu.js +12 -6
- package/src/x_ite/Components/DIS/TransmitterPdu.js +12 -6
- package/src/x_ite/Components/EnvironmentalEffects/Fog.js +5 -16
- package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +55 -3
- package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +3 -5
- package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +116 -116
- package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +5 -6
- package/src/x_ite/Components/EnvironmentalEffects.js +6 -9
- package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +116 -117
- package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +169 -49
- package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +31 -27
- package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +12 -5
- package/src/x_ite/Components/EnvironmentalSensor.js +6 -9
- package/src/x_ite/Components/Followers/ColorChaser.js +1 -3
- package/src/x_ite/Components/Followers/ColorDamper.js +1 -3
- package/src/x_ite/Components/Followers/CoordinateChaser.js +1 -7
- package/src/x_ite/Components/Followers/CoordinateDamper.js +0 -6
- package/src/x_ite/Components/Followers/OrientationChaser.js +7 -3
- package/src/x_ite/Components/Followers/OrientationDamper.js +7 -3
- package/src/x_ite/Components/Followers/PositionChaser.js +1 -3
- package/src/x_ite/Components/Followers/PositionChaser2D.js +1 -3
- package/src/x_ite/Components/Followers/PositionDamper.js +1 -3
- package/src/x_ite/Components/Followers/PositionDamper2D.js +1 -3
- package/src/x_ite/Components/Followers/ScalarChaser.js +1 -3
- package/src/x_ite/Components/Followers/ScalarDamper.js +1 -3
- package/src/x_ite/Components/Followers/TexCoordChaser2D.js +1 -7
- package/src/x_ite/Components/Followers/TexCoordDamper2D.js +1 -7
- package/src/x_ite/Components/Followers/X3DChaserNode.js +20 -18
- package/src/x_ite/Components/Followers/X3DDamperNode.js +5 -7
- package/src/x_ite/Components/Followers/X3DFollowerNode.js +5 -7
- package/src/x_ite/Components/Followers.js +6 -9
- package/src/x_ite/Components/Geometry2D/Arc2D.js +10 -14
- package/src/x_ite/Components/Geometry2D/ArcClose2D.js +87 -86
- package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -3
- package/src/x_ite/Components/Geometry2D/Disk2D.js +43 -58
- package/src/x_ite/Components/Geometry2D/Polyline2D.js +4 -8
- package/src/x_ite/Components/Geometry2D/Polypoint2D.js +3 -5
- package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +20 -16
- package/src/x_ite/Components/Geometry3D/Cone.js +1 -3
- package/src/x_ite/Components/Geometry3D/Cylinder.js +3 -5
- package/src/x_ite/Components/Geometry3D/ElevationGrid.js +35 -17
- package/src/x_ite/Components/Geometry3D/Extrusion.js +125 -107
- package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +164 -142
- package/src/x_ite/Components/Geometry3D/Sphere.js +3 -5
- package/src/x_ite/Components/Geometry3D.js +6 -9
- package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -7
- package/src/x_ite/Components/Geospatial/GeoLOD.js +207 -124
- package/src/x_ite/Components/Geospatial/GeoLocation.js +6 -6
- package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +5 -3
- package/src/x_ite/Components/Geospatial/GeoTransform.js +9 -9
- package/src/x_ite/Components/Geospatial/GeoViewpoint.js +27 -27
- package/src/x_ite/Components/Grouping/Group.js +3 -3
- package/src/x_ite/Components/Grouping/StaticGroup.js +49 -56
- package/src/x_ite/Components/Grouping/Switch.js +171 -21
- package/src/x_ite/Components/Grouping/Transform.js +3 -3
- package/src/x_ite/Components/Grouping/X3DBoundedObject.js +68 -15
- package/src/x_ite/Components/Grouping/X3DGroupingNode.js +339 -180
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +51 -25
- package/src/x_ite/Components/Grouping/X3DTransformNode.js +2 -4
- package/src/x_ite/Components/Grouping.js +6 -9
- package/src/x_ite/Components/{H-Anim → HAnim}/HAnimDisplacer.js +4 -4
- package/src/x_ite/Components/{H-Anim → HAnim}/HAnimHumanoid.js +24 -14
- package/src/x_ite/Components/{H-Anim → HAnim}/HAnimJoint.js +44 -20
- package/src/x_ite/Components/HAnim/HAnimMotion.js +113 -0
- package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSegment.js +6 -4
- package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSite.js +4 -4
- package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +8 -7
- package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +4 -3
- package/src/x_ite/Components/Interpolation.js +6 -9
- package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +1 -3
- package/src/x_ite/Components/Layering/Layer.js +12 -2
- package/src/x_ite/Components/Layering/LayerSet.js +4 -6
- package/src/x_ite/Components/Layering/Viewport.js +8 -8
- package/src/x_ite/Components/Layering/X3DLayerNode.js +67 -62
- package/src/x_ite/Components/Layering.js +6 -9
- package/src/x_ite/Components/Layout/LayoutGroup.js +18 -15
- package/src/x_ite/Components/Layout/LayoutLayer.js +10 -5
- package/src/x_ite/Components/Layout/ScreenFontStyle.js +12 -14
- package/src/x_ite/Components/Layout/ScreenGroup.js +25 -31
- package/src/x_ite/Components/Lighting/DirectionalLight.js +27 -22
- package/src/x_ite/Components/Lighting/PointLight.js +26 -29
- package/src/x_ite/Components/Lighting/SpotLight.js +29 -24
- package/src/x_ite/Components/Lighting/X3DLightNode.js +85 -66
- package/src/x_ite/Components/Lighting.js +6 -9
- package/src/x_ite/Components/NURBS/Contour2D.js +45 -1
- package/src/x_ite/Components/NURBS/ContourPolyline2D.js +53 -25
- package/src/x_ite/Components/NURBS/NurbsCurve.js +21 -24
- package/src/x_ite/Components/NURBS/NurbsCurve2D.js +44 -25
- package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +19 -21
- package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +18 -20
- package/src/x_ite/Components/NURBS/NurbsSet.js +17 -6
- package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +2 -2
- package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +2 -2
- package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +15 -16
- package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +38 -1
- package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +116 -43
- package/src/x_ite/Components/Navigation/Billboard.js +12 -11
- package/src/x_ite/Components/Navigation/Collision.js +10 -8
- package/src/x_ite/Components/Navigation/LOD.js +207 -59
- package/src/x_ite/Components/Navigation/NavigationInfo.js +29 -43
- package/src/x_ite/Components/Navigation/OrthoViewpoint.js +99 -18
- package/src/x_ite/Components/Navigation/Viewpoint.js +15 -15
- package/src/x_ite/Components/Navigation/ViewpointGroup.js +12 -5
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +137 -148
- package/src/x_ite/Components/Navigation.js +6 -9
- package/src/x_ite/Components/Networking/Anchor.js +22 -24
- package/src/x_ite/Components/Networking/Inline.js +63 -44
- package/src/x_ite/Components/Networking/X3DUrlObject.js +88 -8
- package/src/x_ite/Components/Networking.js +6 -9
- package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +2 -2
- package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +215 -199
- package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +44 -39
- package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +48 -46
- package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +121 -117
- package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +21 -18
- package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +20 -22
- package/src/x_ite/Components/Picking/LinePickSensor.js +251 -6
- package/src/x_ite/Components/Picking/PickableGroup.js +120 -7
- package/src/x_ite/Components/Picking/PointPickSensor.js +260 -8
- package/src/x_ite/Components/Picking/PrimitivePickSensor.js +174 -4
- package/src/x_ite/Components/Picking/VolumePickSensor.js +150 -4
- package/src/x_ite/Components/Picking/X3DPickSensorNode.js +377 -4
- package/src/x_ite/Components/Picking/X3DPickableObject.js +21 -1
- package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +26 -11
- package/src/x_ite/Components/PointingDeviceSensor.js +6 -9
- package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +282 -0
- package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +227 -0
- package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +217 -0
- package/src/x_ite/Components/Rendering/ClipPlane.js +8 -10
- package/src/x_ite/Components/Rendering/Color.js +22 -13
- package/src/x_ite/Components/Rendering/ColorRGBA.js +28 -16
- package/src/x_ite/Components/Rendering/IndexedLineSet.js +52 -33
- package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +17 -14
- package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +9 -4
- package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +17 -17
- package/src/x_ite/Components/Rendering/LineSet.js +44 -27
- package/src/x_ite/Components/Rendering/Normal.js +20 -4
- package/src/x_ite/Components/Rendering/PointSet.js +38 -16
- package/src/x_ite/Components/Rendering/TriangleFanSet.js +7 -9
- package/src/x_ite/Components/Rendering/TriangleStripSet.js +6 -8
- package/src/x_ite/Components/Rendering/X3DColorNode.js +16 -1
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +80 -55
- package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +11 -13
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +622 -477
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +159 -90
- package/src/x_ite/Components/Rendering.js +6 -9
- package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +8 -10
- package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +142 -26
- package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +312 -128
- package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +91 -7
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +189 -4
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +82 -4
- package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +49 -37
- package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +45 -39
- package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +41 -34
- package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +25 -20
- package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +8 -10
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +15 -16
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +2 -4
- package/src/x_ite/Components/Scripting/Script.js +147 -101
- package/src/x_ite/Components/Scripting/X3DScriptNode.js +2 -4
- package/src/x_ite/Components/Shaders/ComposedShader.js +17 -19
- package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +9 -3
- package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +10 -3
- package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +10 -3
- package/src/x_ite/Components/Shaders/PackagedShader.js +18 -14
- package/src/x_ite/Components/Shaders/ShaderPart.js +30 -18
- package/src/x_ite/Components/Shaders/ShaderProgram.js +15 -11
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +681 -558
- package/src/x_ite/Components/Shaders/X3DShaderNode.js +48 -12
- package/src/x_ite/Components/Shaders.js +15 -18
- package/src/x_ite/Components/Shape/Appearance.js +153 -77
- package/src/x_ite/Components/Shape/FillProperties.js +63 -4
- package/src/x_ite/Components/Shape/LineProperties.js +27 -5
- package/src/x_ite/Components/Shape/Material.js +48 -62
- package/src/x_ite/Components/Shape/PointProperties.js +162 -0
- package/src/x_ite/Components/Shape/Shape.js +86 -39
- package/src/x_ite/Components/Shape/TwoSidedMaterial.js +53 -59
- package/src/x_ite/Components/Shape/UnlitMaterial.js +109 -0
- package/src/x_ite/Components/Shape/X3DAppearanceNode.js +9 -6
- package/src/x_ite/Components/Shape/X3DMaterialNode.js +16 -3
- package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +111 -0
- package/src/x_ite/Components/Shape/X3DShapeNode.js +41 -17
- package/src/x_ite/Components/Shape.js +22 -16
- package/src/x_ite/Components/Sound/AudioClip.js +36 -50
- package/src/x_ite/Components/Sound/Sound.js +36 -36
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +18 -6
- package/src/x_ite/Components/Sound.js +6 -9
- package/src/x_ite/Components/Text/FontStyle.js +10 -12
- package/src/x_ite/Components/Text/Text.js +6 -6
- package/src/x_ite/Components/Text/X3DFontStyleNode.js +56 -87
- package/src/x_ite/Components/Text.js +6 -9
- package/src/x_ite/Components/Texturing/ImageTexture.js +48 -63
- package/src/x_ite/Components/Texturing/MovieTexture.js +42 -56
- package/src/x_ite/Components/Texturing/MultiTexture.js +236 -11
- package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +73 -6
- package/src/x_ite/Components/Texturing/MultiTextureTransform.js +45 -4
- package/src/x_ite/Components/Texturing/PixelTexture.js +45 -11
- package/src/x_ite/Components/Texturing/TextureCoordinate.js +32 -17
- package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +68 -8
- package/src/x_ite/Components/Texturing/TextureProperties.js +96 -65
- package/src/x_ite/Components/Texturing/TextureTransform.js +55 -47
- package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +91 -0
- package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +183 -0
- package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +77 -0
- package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +42 -95
- package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +209 -0
- package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +3 -17
- package/src/x_ite/Components/Texturing/X3DTextureNode.js +6 -67
- package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +4 -11
- package/src/x_ite/Components/Texturing.js +31 -25
- package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +88 -4
- package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +105 -13
- package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +124 -4
- package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +35 -18
- package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +35 -18
- package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +41 -31
- package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +18 -11
- package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +110 -6
- package/src/x_ite/Components/Time/TimeSensor.js +23 -19
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +11 -7
- package/src/x_ite/Components/Time.js +6 -9
- package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +309 -8
- package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +58 -4
- package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +217 -6
- package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +132 -3
- package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +86 -5
- package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +309 -11
- package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +85 -3
- package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +134 -2
- package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +222 -9
- package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +191 -8
- package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +85 -6
- package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +95 -5
- package/src/x_ite/Components/VolumeRendering/VolumeData.js +153 -8
- package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +155 -3
- package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +62 -0
- package/src/x_ite/Components/X_ITE/BlendMode.js +51 -51
- package/src/x_ite/Components.js +11 -16
- package/src/x_ite/Configuration/ComponentInfo.js +12 -6
- package/src/x_ite/Configuration/ComponentInfoArray.js +4 -7
- package/src/x_ite/Configuration/ProfileInfo.js +10 -6
- package/src/x_ite/Configuration/SupportedComponents.js +66 -40
- package/src/x_ite/Configuration/SupportedNodes.js +22 -6
- package/src/x_ite/Configuration/SupportedProfiles.js +91 -89
- package/src/x_ite/Configuration/UnitInfo.js +12 -2
- package/src/x_ite/Configuration/X3DInfoArray.js +37 -18
- package/src/x_ite/Execution/BindableList.js +63 -38
- package/src/x_ite/Execution/BindableStack.js +63 -71
- package/src/x_ite/Execution/ExportedNode.js +25 -2
- package/src/x_ite/Execution/ImportedNode.js +122 -39
- package/src/x_ite/Execution/Scene.js +22 -14
- package/src/x_ite/Execution/World.js +22 -19
- package/src/x_ite/Execution/X3DExecutionContext.js +381 -221
- package/src/x_ite/Execution/X3DScene.js +213 -53
- package/src/x_ite/{Error.js → Fallback.js} +26 -29
- package/src/x_ite/Fields/ArrayFields.js +176 -57
- package/src/x_ite/Fields/SFBool.js +6 -5
- package/src/x_ite/Fields/SFColor.js +24 -21
- package/src/x_ite/Fields/SFColorRGBA.js +23 -23
- package/src/x_ite/Fields/SFDouble.js +6 -5
- package/src/x_ite/Fields/SFFloat.js +7 -6
- package/src/x_ite/Fields/SFImage.js +37 -36
- package/src/x_ite/Fields/SFInt32.js +5 -4
- package/src/x_ite/Fields/SFMatrix3.js +19 -15
- package/src/x_ite/Fields/SFMatrix4.js +19 -15
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +10 -2
- package/src/x_ite/Fields/SFNode.js +105 -53
- package/src/x_ite/Fields/SFNodeCache.js +93 -0
- package/src/x_ite/Fields/SFRotation.js +31 -27
- package/src/x_ite/Fields/SFString.js +9 -8
- package/src/x_ite/Fields/SFTime.js +6 -5
- package/src/x_ite/Fields/SFVec2.js +17 -13
- package/src/x_ite/Fields/SFVec3.js +21 -17
- package/src/x_ite/Fields/SFVec4.js +24 -20
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +8 -4
- package/src/x_ite/Fields.js +2 -6
- package/src/x_ite/InputOutput/FileLoader.js +174 -190
- package/src/x_ite/InputOutput/Generator.js +133 -104
- package/src/x_ite/Parser/HTMLSupport.js +3 -596
- package/src/x_ite/Parser/JSONParser.js +348 -245
- package/src/x_ite/Parser/Parser.js +314 -303
- package/src/x_ite/Parser/X3DParser.js +41 -20
- package/src/x_ite/Parser/XMLParser.js +178 -60
- package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +17 -0
- package/src/x_ite/Prototype/ProtoDeclarationArray.js +17 -0
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +104 -44
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +111 -42
- package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +16 -14
- package/src/x_ite/Rendering/DependentRenderer.js +7 -9
- package/src/x_ite/Rendering/TextureBuffer.js +24 -19
- package/src/x_ite/Rendering/X3DRenderObject.js +455 -428
- package/src/x_ite/Routing/RouteArray.js +34 -11
- package/src/x_ite/Routing/X3DRoute.js +60 -60
- package/src/x_ite/Routing/X3DRoutingContext.js +6 -6
- package/src/x_ite/X3D.js +30 -37
- package/src/x_ite.config.js +40 -5
- package/src/x_ite.css +165 -45
- package/src/x_ite.html +49 -29
- package/src/x_ite.js +86 -25
- package/x_ite.min.html +49 -22
- package/.bzrignore +0 -3
- package/AUTHORS.md +0 -6
- package/STYLE_GUIDE.md +0 -51
- package/X_ITE.sln +0 -54
- package/X_ITE.userprefs +0 -14
- package/build/build.mdproj +0 -47
- package/build/cad-geometry.build.js +0 -15
- package/build/geospatial.build.js +0 -15
- package/build/h-anim.build.js +0 -15
- package/build/nurbs.build.js +0 -15
- package/build/particle-systems.build.js +0 -15
- package/build/parts/cad-geometry.end.frag +0 -2
- package/build/parts/cad-geometry.start.frag +0 -6
- package/build/parts/geospatial.end.frag +0 -2
- package/build/parts/geospatial.start.frag +0 -6
- package/build/parts/h-anim.end.frag +0 -2
- package/build/parts/h-anim.start.frag +0 -6
- package/build/parts/nurbs.end.frag +0 -2
- package/build/parts/nurbs.start.frag +0 -6
- package/build/parts/particle-systems.end.frag +0 -2
- package/build/parts/particle-systems.start.frag +0 -6
- package/build/parts/rigid-body-physics.end.frag +0 -2
- package/build/parts/rigid-body-physics.start.frag +0 -6
- package/build/parts/texturing-3d.end.frag +0 -2
- package/build/parts/texturing-3d.start.frag +0 -6
- package/build/parts/x_ite.end.frag +0 -9
- package/build/parts/x_ite.start.frag +0 -6
- package/build/rigid-body-physics.build.js +0 -15
- package/build/texturing-3d.build.js +0 -15
- package/dist/components/README +0 -3
- package/dist/components/cad-geometry.min.js +0 -1
- package/dist/components/geospatial.min.js +0 -2
- package/dist/components/h-anim.min.js +0 -1
- package/dist/components/nurbs.min.js +0 -2
- package/dist/components/particle-systems.min.js +0 -2
- package/dist/components/rigid-body-physics.js +0 -3761
- package/dist/components/rigid-body-physics.min.js +0 -56
- package/dist/components/texturing-3d.min.js +0 -1
- package/dist/dist.mdproj +0 -61
- package/dist/images/logo.128.png +0 -0
- package/fonts/fonts.mdproj +0 -29
- package/meta/meta.mdproj +0 -35
- package/src/components/cad-geometry.config.js +0 -56
- package/src/components/geospatial.config.js +0 -56
- package/src/components/h-anim.config.js +0 -56
- package/src/components/nurbs.config.js +0 -61
- package/src/components/particle-systems.config.js +0 -56
- package/src/components/rigid-body-physics.config.js +0 -61
- package/src/components/texturing-3d.config.js +0 -56
- package/src/images/logo.128.png +0 -0
- package/src/locale/de.mo +0 -0
- package/src/locale/fr.mo +0 -0
- package/src/src.mdproj +0 -698
- package/src/standard/Networking/URI.js +0 -785
- package/src/test.x3d +0 -225
- package/src/x_ite/Browser/Shaders/Background.fs +0 -31
- package/src/x_ite/Browser/Shaders/Background.vs +0 -23
- package/src/x_ite/Browser/Shaders/Depth.fs +0 -32
- package/src/x_ite/Browser/Shaders/Depth.vs +0 -21
- package/src/x_ite/Browser/Shaders/Gouraud.fs +0 -135
- package/src/x_ite/Browser/Shaders/Gouraud.vs +0 -145
- package/src/x_ite/Browser/Shaders/Phong.fs +0 -269
- package/src/x_ite/Browser/Shaders/Phong.vs +0 -47
- package/src/x_ite/Browser/Shaders/PointSet.fs +0 -86
- package/src/x_ite/Browser/Shaders/Types.h +0 -55
- package/src/x_ite/Browser/Shaders/Wireframe.fs +0 -82
- package/src/x_ite/Browser/Shaders/Wireframe.vs +0 -61
- package/src/x_ite/Components/DIS.js +0 -91
- package/src/x_ite/Components/Picking.js +0 -94
- package/src/x_ite/Components/VolumeRendering.js +0 -121
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
# Writing Program Scripts with ECMAScript
|
|
2
|
+
|
|
3
|
+
## Motivation
|
|
4
|
+
|
|
5
|
+
A program script implements the [Script](https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script) node using values from the interface:
|
|
6
|
+
|
|
7
|
+
- The script responds to inputs and sends outputs
|
|
8
|
+
|
|
9
|
+
A program script can be written in JavaScript, ECMAScript, and other languages
|
|
10
|
+
|
|
11
|
+
- JavaScript is easier to program
|
|
12
|
+
- ECMAScript is essentially JavaScript
|
|
13
|
+
|
|
14
|
+
## Declaring a program script interface
|
|
15
|
+
|
|
16
|
+
For a JavaScript program script, typically give the script in the Script node's url field:
|
|
17
|
+
|
|
18
|
+
### XML Encoding
|
|
19
|
+
|
|
20
|
+
```xml
|
|
21
|
+
<Script DEF='Bouncer'>
|
|
22
|
+
<field accessType='initializeOnly' type='SFFloat' name='bounceHeight' value='3'/>
|
|
23
|
+
<field accessType='inputOnly' type='SFFloat' name='set_fraction'/>
|
|
24
|
+
<field accessType='outputOnly' type='SFVec3f' name='value_changed'/>
|
|
25
|
+
<field accessType='inputOutput' type='SFBool' name='enabled' value='true'/>
|
|
26
|
+
<![CDATA[ecmascript:
|
|
27
|
+
...
|
|
28
|
+
]]>
|
|
29
|
+
</Script>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Classic Encoding
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
DEF Bouncer Script {
|
|
36
|
+
initializeOnly SFFloat bounceHeight 3.0
|
|
37
|
+
inputOnly SFFloat set_fraction
|
|
38
|
+
outputOnly SFVec3f value_changed
|
|
39
|
+
inputOutput SFBool enabled TRUE
|
|
40
|
+
url "ecmascript: ..."
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Initializing a program script
|
|
45
|
+
|
|
46
|
+
The optional **initialize** function is called when the script is loaded:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
function initialize ()
|
|
50
|
+
{
|
|
51
|
+
...
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Initialization occurs when:
|
|
56
|
+
|
|
57
|
+
- the [Script](https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script) node is created (typically when the browser loads the world)
|
|
58
|
+
|
|
59
|
+
## Shutting down a program script
|
|
60
|
+
|
|
61
|
+
The optional **shutdown** function is called when the script is unloaded:
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
function shutdown ()
|
|
65
|
+
{
|
|
66
|
+
...
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Shutdown occurs when:
|
|
71
|
+
|
|
72
|
+
- the [Script](https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/scripting.html#Script) node is deleted
|
|
73
|
+
- the browser loads a new world
|
|
74
|
+
|
|
75
|
+
## Responding to events
|
|
76
|
+
|
|
77
|
+
An input function can be declared for each input.
|
|
78
|
+
|
|
79
|
+
The input function is called each time an event is received, passing the event's:
|
|
80
|
+
|
|
81
|
+
- value
|
|
82
|
+
- time stamp
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
function set_fraction (value, time)
|
|
86
|
+
{
|
|
87
|
+
...
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Processing events in JavaScript
|
|
92
|
+
|
|
93
|
+
If multiple events arrive at once, then multiple input functions are called.
|
|
94
|
+
|
|
95
|
+
The optional **eventsProcessed** function is called after all (or some) input functions have been called:
|
|
96
|
+
|
|
97
|
+
```js
|
|
98
|
+
function eventsProcessed ()
|
|
99
|
+
{
|
|
100
|
+
...
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Accessing fields from JavaScript
|
|
105
|
+
|
|
106
|
+
Each interface field is a ECMAScript variable:
|
|
107
|
+
|
|
108
|
+
- Read a variable to access the field value
|
|
109
|
+
- Write a variable to change the field value
|
|
110
|
+
|
|
111
|
+
```js
|
|
112
|
+
lastval = bounceHeight; // get field
|
|
113
|
+
bounceHeight = newval; // set field
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Accessing outputs from ECMAScript
|
|
117
|
+
|
|
118
|
+
Each interface output field is a ECMAScript variable
|
|
119
|
+
|
|
120
|
+
- Read a variable to access the last output field value
|
|
121
|
+
- Write a variable to send an event on the output field
|
|
122
|
+
|
|
123
|
+
```js
|
|
124
|
+
if (!enabled)
|
|
125
|
+
return;
|
|
126
|
+
|
|
127
|
+
lastval = value_changed [0]; // get last event
|
|
128
|
+
value_changed [0] = newval; // send new event
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## A sample JavaScript script
|
|
132
|
+
|
|
133
|
+
Create a Bouncing ball interpolator that computes a gravity-like vertical bouncing motion from a fractional time input.
|
|
134
|
+
|
|
135
|
+
Nodes needed:
|
|
136
|
+
|
|
137
|
+
### XML Encoding
|
|
138
|
+
|
|
139
|
+
```xml
|
|
140
|
+
<Transform DEF='Ball'>
|
|
141
|
+
<!-- children ... -->
|
|
142
|
+
</Transform>
|
|
143
|
+
|
|
144
|
+
<TimeSensor DEF='Clock' ... />
|
|
145
|
+
|
|
146
|
+
<Script DEF='Bouncer ... />
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Classic Encoding
|
|
150
|
+
|
|
151
|
+
```js
|
|
152
|
+
DEF Ball Transform {
|
|
153
|
+
children [ ... ]
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
DEF Clock TimeSensor {
|
|
157
|
+
...
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
DEF Bouncer Script {
|
|
161
|
+
...
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Script fields needed:
|
|
166
|
+
|
|
167
|
+
- Bounce height
|
|
168
|
+
|
|
169
|
+
### XML Encoding
|
|
170
|
+
|
|
171
|
+
```xml
|
|
172
|
+
<Script DEF='Bouncer'>
|
|
173
|
+
<field accessType='initializeOnly' type='SFFloat' name='bounceHeight' value='3'/>
|
|
174
|
+
<!-- ... -->
|
|
175
|
+
</Script>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Classic Encoding
|
|
179
|
+
|
|
180
|
+
```js
|
|
181
|
+
DEF Bouncer Script {
|
|
182
|
+
initializeOnly SFFloat bounceHeight 3.0
|
|
183
|
+
...
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Inputs and outputs needed:
|
|
188
|
+
|
|
189
|
+
- Fractional time input
|
|
190
|
+
- Position value output
|
|
191
|
+
- Enabled input/output
|
|
192
|
+
|
|
193
|
+
### XML Encoding
|
|
194
|
+
|
|
195
|
+
```xml
|
|
196
|
+
<Script DEF='Bouncer'>
|
|
197
|
+
<!-- ... -->
|
|
198
|
+
<field accessType='inputOnly' type='SFFloat' name='set_fraction'/>
|
|
199
|
+
<field accessType='outputOnly' type='SFVec3f' name='value_changed'/>
|
|
200
|
+
<field accessType='inputOutput' type='SFBool' name='enabled' value='true'/>
|
|
201
|
+
<!-- ... -->
|
|
202
|
+
</Script>
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Classic Encoding
|
|
206
|
+
|
|
207
|
+
```js
|
|
208
|
+
DEF Bouncer Script {
|
|
209
|
+
...
|
|
210
|
+
inputOnly SFFloat set_fraction
|
|
211
|
+
outputOnly SFVec3f value_changed
|
|
212
|
+
inputOutput SFBool enabled TRUE
|
|
213
|
+
...
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Initialization and shutdown actions needed:
|
|
218
|
+
|
|
219
|
+
- None - all work done in input function
|
|
220
|
+
|
|
221
|
+
Event processing actions needed:
|
|
222
|
+
|
|
223
|
+
- *set\_fraction* input function
|
|
224
|
+
- No need for *eventsProcessed* function
|
|
225
|
+
|
|
226
|
+
### XML Encoding
|
|
227
|
+
|
|
228
|
+
```xml
|
|
229
|
+
<Script DEF='Bouncer'>
|
|
230
|
+
<!-- ... -->
|
|
231
|
+
<![CDATA[ecmascript:
|
|
232
|
+
function set_fraction (fraction, time)
|
|
233
|
+
{
|
|
234
|
+
...
|
|
235
|
+
}
|
|
236
|
+
]]>
|
|
237
|
+
</Script>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Classic Encoding
|
|
241
|
+
|
|
242
|
+
```js
|
|
243
|
+
DEF Bouncer Script {
|
|
244
|
+
...
|
|
245
|
+
url "ecmascript:
|
|
246
|
+
function set_fraction (fraction, time)
|
|
247
|
+
{
|
|
248
|
+
...
|
|
249
|
+
}
|
|
250
|
+
"
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Calculations needed:
|
|
255
|
+
|
|
256
|
+
- Compute new ball position
|
|
257
|
+
- Send new position event
|
|
258
|
+
|
|
259
|
+
Use a ball position equation roughly based upon Physics:
|
|
260
|
+
|
|
261
|
+
- See comments in the X3D file for the derivation of the equation
|
|
262
|
+
|
|
263
|
+
### XML Encoding
|
|
264
|
+
|
|
265
|
+
```xml
|
|
266
|
+
<Script DEF='Bouncer'>
|
|
267
|
+
<field accessType='initializeOnly' type='SFFloat' name='bounceHeight' value='3'/>
|
|
268
|
+
<field accessType='inputOnly' type='SFFloat' name='set_fraction'/>
|
|
269
|
+
<field accessType='outputOnly' type='SFVec3f' name='value_changed'/>
|
|
270
|
+
<field accessType='inputOutput' type='SFBool' name='enabled' value='true'/>
|
|
271
|
+
<![CDATA[ecmascript:
|
|
272
|
+
function set_fraction (fraction, time)
|
|
273
|
+
{
|
|
274
|
+
if (!enabled)
|
|
275
|
+
return;
|
|
276
|
+
|
|
277
|
+
var y = 4.0 * bounceHeight * fraction * (1.0 - fraction);
|
|
278
|
+
|
|
279
|
+
value_changed [0] = 0.0;
|
|
280
|
+
value_changed [1] = y;
|
|
281
|
+
value_changed [2] = 0.0;
|
|
282
|
+
}
|
|
283
|
+
]]>
|
|
284
|
+
</Script>
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Classic Encoding
|
|
288
|
+
|
|
289
|
+
```js
|
|
290
|
+
DEF Bouncer Script {
|
|
291
|
+
initializeOnly SFFloat bounceHeight 3
|
|
292
|
+
inputOnly SFFloat set_fraction
|
|
293
|
+
outputOnly SFVec3f value_changed
|
|
294
|
+
inputOutput SFBool enabled TRUE
|
|
295
|
+
|
|
296
|
+
url "ecmascript:
|
|
297
|
+
function set_fraction (fraction, time)
|
|
298
|
+
{
|
|
299
|
+
if (!enabled)
|
|
300
|
+
return;
|
|
301
|
+
|
|
302
|
+
const y = 4.0 * bounceHeight * fraction * (1.0 - fraction);
|
|
303
|
+
|
|
304
|
+
value_changed [0] = 0.0;
|
|
305
|
+
value_changed [1] = y;
|
|
306
|
+
value_changed [2] = 0.0;
|
|
307
|
+
}
|
|
308
|
+
"
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Routes needed:
|
|
313
|
+
|
|
314
|
+
- Clock into script's *set\_fraction*
|
|
315
|
+
- Script's *value\_changed* into transform
|
|
316
|
+
|
|
317
|
+
### XML Encoding
|
|
318
|
+
|
|
319
|
+
```xml
|
|
320
|
+
<ROUTE fromNode='Clock' fromField='fraction_changed' toNode='Bouncer' toField='set_fraction'/>
|
|
321
|
+
<ROUTE fromNode='Bouncer' fromField='value_changed' toNode='Ball' toField='set_translation'/>
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Classic Encoding
|
|
325
|
+
|
|
326
|
+
```js
|
|
327
|
+
ROUTE Clock.fraction_changed TO Bouncer.set_fraction
|
|
328
|
+
ROUTE Bouncer.value_changed TO Ball.set_translation
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### XML Encoding
|
|
332
|
+
|
|
333
|
+
```xml
|
|
334
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
335
|
+
|
|
336
|
+
<X3D profile='Full' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.3.xsd'>
|
|
337
|
+
<Scene>
|
|
338
|
+
<Transform DEF='Ball'>
|
|
339
|
+
<Shape>
|
|
340
|
+
<Appearance>
|
|
341
|
+
<Material
|
|
342
|
+
ambientIntensity='0.5'
|
|
343
|
+
diffuseColor='1 1 1'
|
|
344
|
+
specularColor='0.7 0.7 0.7'
|
|
345
|
+
shininess='0.4'/>
|
|
346
|
+
<ImageTexture
|
|
347
|
+
url='"beach.jpg"'/>
|
|
348
|
+
<TextureTransform
|
|
349
|
+
scale='2 1'/>
|
|
350
|
+
</Appearance>
|
|
351
|
+
<Sphere/>
|
|
352
|
+
</Shape>
|
|
353
|
+
</Transform>
|
|
354
|
+
|
|
355
|
+
<TimeSensor DEF='Clock'
|
|
356
|
+
cycleInterval='2'
|
|
357
|
+
loop='true'
|
|
358
|
+
startTime='1'/>
|
|
359
|
+
|
|
360
|
+
<Script DEF='Bouncer'>
|
|
361
|
+
<field accessType='initializeOnly' type='SFFloat' name='bounceHeight' value='3'/>
|
|
362
|
+
<field accessType='inputOnly' type='SFFloat' name='set_fraction'/>
|
|
363
|
+
<field accessType='outputOnly' type='SFVec3f' name='value_changed'/>
|
|
364
|
+
<field accessType='inputOutput' type='SFBool' name='enabled' value='true'/>
|
|
365
|
+
<![CDATA[ecmascript:
|
|
366
|
+
function set_fraction (fraction, time)
|
|
367
|
+
{
|
|
368
|
+
if (!enabled)
|
|
369
|
+
return;
|
|
370
|
+
|
|
371
|
+
var y = 4.0 * bounceHeight * fraction * (1.0 - fraction);
|
|
372
|
+
|
|
373
|
+
value_changed [0] = 0.0;
|
|
374
|
+
value_changed [1] = y;
|
|
375
|
+
value_changed [2] = 0.0;
|
|
376
|
+
}
|
|
377
|
+
]]>
|
|
378
|
+
</Script>
|
|
379
|
+
|
|
380
|
+
<ROUTE fromNode='Clock' fromField='fraction_changed' toNode='Bouncer' toField='set_fraction'/>
|
|
381
|
+
<ROUTE fromNode='Bouncer' fromField='value_changed' toNode='Ball' toField='set_translation'/>
|
|
382
|
+
</Scene>
|
|
383
|
+
</X3D>
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Classic Encoding
|
|
387
|
+
|
|
388
|
+
```js
|
|
389
|
+
#X3D V3.3 utf8 Titania V4.3.0
|
|
390
|
+
|
|
391
|
+
DEF Ball Transform {
|
|
392
|
+
children [
|
|
393
|
+
Shape {
|
|
394
|
+
appearance Appearance {
|
|
395
|
+
material Material {
|
|
396
|
+
ambientIntensity 0.5
|
|
397
|
+
diffuseColor 1.0 1.0 1.0
|
|
398
|
+
specularColor 0.7 0.7 0.7
|
|
399
|
+
shininess 0.4
|
|
400
|
+
}
|
|
401
|
+
texture ImageTexture {
|
|
402
|
+
url "beach.jpg"
|
|
403
|
+
}
|
|
404
|
+
textureTransform TextureTransform {
|
|
405
|
+
scale 2.0 1.0
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
geometry Sphere { }
|
|
409
|
+
}
|
|
410
|
+
]
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
DEF Clock TimeSensor {
|
|
414
|
+
cycleInterval 2.0
|
|
415
|
+
startTime 1.0
|
|
416
|
+
stopTime 0.0
|
|
417
|
+
loop TRUE
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
DEF Bouncer Script {
|
|
421
|
+
initializeOnly SFFloat bounceHeight 3.0
|
|
422
|
+
inputOnly SFFloat set_fraction
|
|
423
|
+
outputOnly SFVec3f value_changed
|
|
424
|
+
inputOutput SFBool enabled TRUE
|
|
425
|
+
|
|
426
|
+
url "ecmascript:
|
|
427
|
+
function set_fraction (fraction, time)
|
|
428
|
+
{
|
|
429
|
+
if (!enabled)
|
|
430
|
+
return;
|
|
431
|
+
|
|
432
|
+
const y = 4.0 * bounceHeight * fraction * (1.0 - fraction);
|
|
433
|
+
|
|
434
|
+
value_changed [0] = 0.0;
|
|
435
|
+
value_changed [1] = y;
|
|
436
|
+
value_changed [2] = 0.0;
|
|
437
|
+
}
|
|
438
|
+
"
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
ROUTE Clock.fraction_changed TO Bouncer.set_fraction
|
|
442
|
+
ROUTE Bouncer.value_changed TO Ball.set_translation
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
[](https://create3000.github.io/media/tutorials/scenes/bouncer/example.html)
|
|
446
|
+
|
|
447
|
+
[View scene in this window.](https://create3000.github.io/media/tutorials/scenes/bouncer/example.html)
|
|
448
|
+
|
|
449
|
+
[Download ZIP Archive](https://create3000.github.io/media/tutorials/scenes/bouncer/bouncer.zip)
|
|
450
|
+
|
|
451
|
+
## Building user interfaces
|
|
452
|
+
|
|
453
|
+
Program scripts can be used to help create 3D user interface widgets:
|
|
454
|
+
|
|
455
|
+
- Toggle buttons
|
|
456
|
+
- Radio buttons
|
|
457
|
+
- Rotary dials
|
|
458
|
+
- Scrollbars
|
|
459
|
+
- Text prompts
|
|
460
|
+
- Debug message text
|
|
461
|
+
|
|
462
|
+
## Building a toggle switch
|
|
463
|
+
|
|
464
|
+
A toggle script turns on at 1st touch, off at 2nd:
|
|
465
|
+
|
|
466
|
+
- A [TouchSensor](https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/pointingsensor.html#TouchSensor) node can supply touch events
|
|
467
|
+
|
|
468
|
+
### XML Encoding
|
|
469
|
+
|
|
470
|
+
```xml
|
|
471
|
+
<Script DEF='Toggle'>
|
|
472
|
+
<field accessType='inputOutput' type='SFBool' name='on' value='true'/>
|
|
473
|
+
<field accessType='inputOnly' type='SFBool' name='set_active'/>
|
|
474
|
+
<field accessType='outputOnly' type='SFBool' name='on_changed'/>
|
|
475
|
+
<![CDATA[ecmascript:
|
|
476
|
+
function set_active (value, time)
|
|
477
|
+
{
|
|
478
|
+
if (value == false)
|
|
479
|
+
return;
|
|
480
|
+
|
|
481
|
+
if (on == TRUE)
|
|
482
|
+
on = FALSE;
|
|
483
|
+
else
|
|
484
|
+
on = TRUE;
|
|
485
|
+
|
|
486
|
+
on_changed = on;
|
|
487
|
+
}
|
|
488
|
+
]]>
|
|
489
|
+
</Script>
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### Classic Encoding
|
|
493
|
+
|
|
494
|
+
```js
|
|
495
|
+
DEF Toggle Script {
|
|
496
|
+
inputOutput SFBool on TRUE
|
|
497
|
+
inputOnly SFBool set_active
|
|
498
|
+
outputOnly SFBool on_changed
|
|
499
|
+
|
|
500
|
+
url "ecmascript:
|
|
501
|
+
function set_active (value, time)
|
|
502
|
+
{
|
|
503
|
+
if (value == false)
|
|
504
|
+
return;
|
|
505
|
+
|
|
506
|
+
if (on == TRUE)
|
|
507
|
+
on = FALSE;
|
|
508
|
+
else
|
|
509
|
+
on = TRUE;
|
|
510
|
+
|
|
511
|
+
on_changed = on;
|
|
512
|
+
}
|
|
513
|
+
"
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Using a toggle switch
|
|
518
|
+
|
|
519
|
+
Use the toggle switch to make a lamp turn on and off
|
|
520
|
+
|
|
521
|
+
### XML Encoding
|
|
522
|
+
|
|
523
|
+
```xml
|
|
524
|
+
<TouchSensor DEF='LightSwitch'/>
|
|
525
|
+
<SpotLight DEF='LampLight' ... />
|
|
526
|
+
|
|
527
|
+
<Script DEF='Toggle' ... />
|
|
528
|
+
|
|
529
|
+
<ROUTE fromNode='LightSwitch' fromField='isActive' toNode='Toggle' toField='set_active'/>
|
|
530
|
+
<ROUTE fromNode='Toggle' fromField='on_changed' toNode='LampLight' toField='set_on'/>
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### Classic Encoding
|
|
534
|
+
|
|
535
|
+
```js
|
|
536
|
+
DEF LightSwitch TouchSensor { }
|
|
537
|
+
DEF LampLight SpotLight { ... }
|
|
538
|
+
|
|
539
|
+
DEF Toggle Script { ... }
|
|
540
|
+
|
|
541
|
+
ROUTE LightSwitch.isActive TO Toggle.set_active
|
|
542
|
+
ROUTE Toggle.on_changed TO LampLight.set_on
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
## Building a color selector
|
|
546
|
+
|
|
547
|
+
The lamp on and off, but the light bulb doesn't change color!
|
|
548
|
+
|
|
549
|
+
A color selector script sends an on color on a **TRUE** input, and an off color on a **FALSE** input.
|
|
550
|
+
|
|
551
|
+
### XML Encoding
|
|
552
|
+
|
|
553
|
+
```xml
|
|
554
|
+
<Script DEF='ColorSelector'>
|
|
555
|
+
<field accessType='initializeOnly' type='SFColor' name='onColor' value='1 1 1'/>
|
|
556
|
+
<field accessType='initializeOnly' type='SFColor' name='offColor'/>
|
|
557
|
+
<field accessType='inputOnly' type='SFBool' name='set_selection'/>
|
|
558
|
+
<field accessType='outputOnly' type='SFColor' name='color_changed'/>
|
|
559
|
+
<![CDATA[ecmascript:
|
|
560
|
+
function set_selection (value, time)
|
|
561
|
+
{
|
|
562
|
+
if (value == true) color_changed = onColor;
|
|
563
|
+
else color_changed = offColor;
|
|
564
|
+
}
|
|
565
|
+
]]>
|
|
566
|
+
</Script>
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
### Classic Encoding
|
|
570
|
+
|
|
571
|
+
```js
|
|
572
|
+
DEF ColorSelector Script {
|
|
573
|
+
initializeOnly SFColor onColor 1.0 1.0 1.0
|
|
574
|
+
initializeOnly SFColor offColor 0.0 0.0 0.0
|
|
575
|
+
inputOnly SFBool set_selection
|
|
576
|
+
outputOnly SFColor color_changed
|
|
577
|
+
|
|
578
|
+
url "ecmascript:
|
|
579
|
+
function set_selection (value, time)
|
|
580
|
+
{
|
|
581
|
+
if (value == true) color_changed = onColor;
|
|
582
|
+
else color_changed = offColor;
|
|
583
|
+
}
|
|
584
|
+
"
|
|
585
|
+
}
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### Using a color selector
|
|
589
|
+
|
|
590
|
+
### XML Encoding
|
|
591
|
+
|
|
592
|
+
```xml
|
|
593
|
+
<TouchSensor DEF='LightSwitch'/>
|
|
594
|
+
<SpotLight DEF='LampLight' ... />
|
|
595
|
+
|
|
596
|
+
<Material DEF='BulbMaterial' ... />
|
|
597
|
+
|
|
598
|
+
<Script DEF='Toggle' ... />
|
|
599
|
+
|
|
600
|
+
<Script DEF='ColorSelector' ... />
|
|
601
|
+
|
|
602
|
+
<ROUTE fromNode='LightSwitch' fromField='isActive' toNode='Toggle' toField='set_active'/>
|
|
603
|
+
<ROUTE fromNode='Toggle' fromField='on_changed' toNode='LampLight' toField='set_on'/>
|
|
604
|
+
<ROUTE fromNode='Toggle' fromField='on_changed' toNode='ColorSelector' toField='set_selection'/>
|
|
605
|
+
<ROUTE fromNode='ColorSelector' fromField='color_changed' toNode='BulbMaterial' toField='set_emissiveColor'/>
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
### Classic Encoding
|
|
609
|
+
|
|
610
|
+
```js
|
|
611
|
+
DEF LightSwitch TouchSensor { }
|
|
612
|
+
DEF LampLight SpotLight { ... }
|
|
613
|
+
|
|
614
|
+
DEF BulbMaterial Material { ... }
|
|
615
|
+
|
|
616
|
+
DEF Toggle Script { ... }
|
|
617
|
+
|
|
618
|
+
DEF ColorSelector Script { ... }
|
|
619
|
+
|
|
620
|
+
ROUTE LightSwitch.isActive TO Toggle.set_active
|
|
621
|
+
ROUTE Toggle.on_changed TO LampLight.set_on
|
|
622
|
+
ROUTE Toggle.on_changed TO ColorSelector.set_selection
|
|
623
|
+
ROUTE ColorSelector.color_changed TO BulbMaterial.set_emissiveColor
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
## Summary
|
|
627
|
+
|
|
628
|
+
- The **initialize** and **shutdown** functions are called at load and unload
|
|
629
|
+
- An input function is called when an event is received
|
|
630
|
+
- The **eventsProcessed** function is called after all (or some) events have been received
|
|
631
|
+
- Functions can get field values and send event outputs
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Tutorials
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
We offer here a couple of introductory X3D tutorials on X3D concepts. It serves as background material for Titania and X\_ITE.
|
|
6
|
+
|
|
7
|
+
The only hardware and software requirement for most of the tutorials is a computer with the latest version of Titania or your favorite text editor and X\_ITE. Titania has extensive documentation. It is the perfect environment to get started in creating sensational X3D scenes.
|
|
8
|
+
|
|
9
|
+
## Let’s See What We Can Do…
|
|
10
|
+
|
|
11
|
+
Simple, fast and efficient, our X3D tutorials give you all the tips and tricks to advance in the construction of your project.
|
|
12
|
+
|
|
13
|
+
- [Hello, World](/x_ite/tutorials/Hello,-World!.html)
|
|
14
|
+
- First let's go over to the »Hello World« tutorial, which displays a simple earth and the text »Hello World!«.
|
|
15
|
+
- [A Quick Overview: Basic Nodes](/x_ite/tutorials/Basic-Nodes.html)
|
|
16
|
+
- Here are the basic nodes described, which are often used in an X3D world.
|
|
17
|
+
|
|
18
|
+
Shapes, Geometry, and Appearance
|
|
19
|
+
|
|
20
|
+
- [Introducing X3D](/x_ite/tutorials/Introducing-X3D.html)
|
|
21
|
+
- [Building a X3D World](/x_ite/tutorials/Building-a-X3D-world.html)
|
|
22
|
+
- [Building Primitive Shapes ](/x_ite/tutorials/Building-primitive-shapes.html)
|
|
23
|
+
- [Transforming Shapes](/x_ite/tutorials/Transforming-Shapes.html)
|
|
24
|
+
- [Controlling Appearance with Materials ](/x_ite/tutorials/Controlling-appearance-with-materials.html)
|
|
25
|
+
- [Grouping Nodes ](/x_ite/tutorials/Grouping-nodes.html)
|
|
26
|
+
- [Naming Nodes](/x_ite/tutorials/Naming-nodes.html)
|
|
27
|
+
|
|
28
|
+
Animation, Sensors, and Geometry
|
|
29
|
+
|
|
30
|
+
- [Introducing Animation](/x_ite/tutorials/Introducing-animation.html)
|
|
31
|
+
- [Animating Transforms](/x_ite/tutorials/Animating-transforms.html)
|
|
32
|
+
- [Sensing Viewer Actions](/x_ite/tutorials/Sensing-viewer-actions.html)
|
|
33
|
+
- [Building Ahapes out of Points, Lines, and Faces](/x_ite/tutorials/Building-shapes-out-of-points,-lines,-and-faces.html)
|
|
34
|
+
- [Building Elevation Grids](/x_ite/tutorials/Building-elevation-grids.html)
|
|
35
|
+
- [Building Extruded Shapes](/x_ite/tutorials/Building-extruded-shapes.html)
|
|
36
|
+
- [Controlling Color on Coordinate-Based Geometry](/x_ite/tutorials/Controlling-color-on-coordinate-based-geometry.html)
|
|
37
|
+
- [Controlling Shading on Coordinate-Based Geometry](/x_ite/tutorials/Controlling-shading-on-coordinate-based-geometry.html)
|
|
38
|
+
|
|
39
|
+
Textures, Lights, and Environment
|
|
40
|
+
|
|
41
|
+
- [Mapping Textures](/x_ite/tutorials/Mapping-textures.html)
|
|
42
|
+
- [Controlling How Textures are Mapped](/x_ite/tutorials/Controlling-how-textures-are-mapped.html)
|
|
43
|
+
- [Lighting Your World](/x_ite/tutorials/Lighting-your-world.html)
|
|
44
|
+
- [Adding Backgrounds](/x_ite/tutorials/Adding-backgrounds.html)
|
|
45
|
+
- [Adding Fog](/x_ite/tutorials/Adding-fog.html)
|
|
46
|
+
- [Adding Sound](/x_ite/tutorials/Adding-sound.html)
|
|
47
|
+
- [Controlling the Viewpoint](/x_ite/tutorials/Controlling-the-viewpoint.html)
|
|
48
|
+
- [Controlling Navigation](/x_ite/tutorials/Controlling-navigation.html)
|
|
49
|
+
- [Sensing the Viewer](/x_ite/tutorials/Sensing-the-viewer.html)
|
|
50
|
+
|
|
51
|
+
Scripts and Prototypes
|
|
52
|
+
|
|
53
|
+
- [Controlling Detail](/x_ite/tutorials/Controlling-detail.html)
|
|
54
|
+
- [Introducing Script Use](/x_ite/tutorials/Introducing-script-use.html)
|
|
55
|
+
- [Writing Program Scripts with ECMAScript](/x_ite/tutorials/Writing-program-scripts-with-ECMAScript.html)
|
|
56
|
+
- [Creating New Node Types](/x_ite/tutorials/Creating-new-node-types.html)
|
|
57
|
+
- [Providing Tnformation About Your wWorld](/x_ite/tutorials/Providing-information-about-your-world.html)
|
|
58
|
+
|
|
59
|
+
Some words about optimizing a scene
|
|
60
|
+
|
|
61
|
+
- [Improve Performance](/x_ite/tutorials/Improving-Performance.html)
|
|
62
|
+
- To optimize a scene is an important task when creating an X3D scene. There are several ways to improve performance.
|
|
63
|
+
- [Increasing Rendering Speed](/x_ite/tutorials/Increasing-Rendering-Speed.html)
|
|
64
|
+
- Using WebGL and JavaScript needs to look at speed all the time. Learn ways to increase rendering speed.
|
|
65
|
+
|
|
66
|
+
### See Also
|
|
67
|
+
|
|
68
|
+
- [Script Node Authoring Interface](/x_ite/reference/Script-Node-Authoring-Interface.html)
|
|
69
|
+
- [ECMAScript Object and Function Definitions](/x_ite/reference/ECMAScript-Object-and-Function-Definitions.html)
|
|
70
|
+
- [Custom Shaders](/x_ite/Custom-Shaders.html)
|
|
71
|
+
|
|
72
|
+
## There are also Books for Further Reading
|
|
73
|
+
|
|
74
|
+
[X3D: Extensible 3D Graphics for Web Authors](http://www.amazon.com/gp/product/012088500X?ie=UTF8&tag=x3dext3dgrafo-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=012088500X) by Don Brutzman and Leonard Daly
|
|
75
|
+
|
|
76
|
+
## Don't Compromise on Development Experience
|
|
77
|
+
|
|
78
|
+
Use the full power of the modern X3D ecosystem – Titania’s got you covered! Enjoy the intelligent build system, powerful navigation and support for JavaScript, on-the-fly error detection, integrated Route Graph Editor, and X\_ITE compatibility.
|
|
Binary file
|