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
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
(function ()
|
|
1
|
+
(function (globalModule, globalRequire)
|
|
2
|
+
{
|
|
3
|
+
|
|
4
|
+
if (typeof __filename === "undefined")
|
|
5
|
+
{
|
|
6
|
+
globalModule = undefined;
|
|
7
|
+
globalRequire = undefined;
|
|
8
|
+
}
|
|
2
9
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require = X3D .require;
|
|
10
|
+
// Undefine global variables.
|
|
11
|
+
var module = { }, exports, process;
|
|
6
12
|
|
|
13
|
+
const
|
|
14
|
+
define = X3D .define,
|
|
15
|
+
require = X3D .require;
|
|
7
16
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
8
17
|
*******************************************************************************
|
|
9
18
|
*
|
|
@@ -59,12 +68,14 @@ define ('x_ite/Components/NURBS/Contour2D',[
|
|
|
59
68
|
"x_ite/Basic/FieldDefinitionArray",
|
|
60
69
|
"x_ite/Components/Core/X3DNode",
|
|
61
70
|
"x_ite/Bits/X3DConstants",
|
|
71
|
+
"x_ite/Bits/X3DCast",
|
|
62
72
|
],
|
|
63
73
|
function (Fields,
|
|
64
74
|
X3DFieldDefinition,
|
|
65
75
|
FieldDefinitionArray,
|
|
66
76
|
X3DNode,
|
|
67
|
-
X3DConstants
|
|
77
|
+
X3DConstants,
|
|
78
|
+
X3DCast)
|
|
68
79
|
{
|
|
69
80
|
"use strict";
|
|
70
81
|
|
|
@@ -73,6 +84,8 @@ function (Fields,
|
|
|
73
84
|
X3DNode .call (this, executionContext);
|
|
74
85
|
|
|
75
86
|
this .addType (X3DConstants .Contour2D);
|
|
87
|
+
|
|
88
|
+
this .childNodes = [ ];
|
|
76
89
|
}
|
|
77
90
|
|
|
78
91
|
Contour2D .prototype = Object .assign (Object .create (X3DNode .prototype),
|
|
@@ -96,6 +109,46 @@ function (Fields,
|
|
|
96
109
|
{
|
|
97
110
|
return "trimmingContour";
|
|
98
111
|
},
|
|
112
|
+
initialize: function ()
|
|
113
|
+
{
|
|
114
|
+
X3DNode .prototype .initialize .call (this);
|
|
115
|
+
|
|
116
|
+
this .children_ .addInterest ("set_children__", this);
|
|
117
|
+
|
|
118
|
+
this .set_children__ ();
|
|
119
|
+
},
|
|
120
|
+
set_children__: function ()
|
|
121
|
+
{
|
|
122
|
+
var childNodes = this .childNodes;
|
|
123
|
+
|
|
124
|
+
childNodes .length = 0;
|
|
125
|
+
|
|
126
|
+
for (var i = 0, length = this .children_ .length; i < length; ++ i)
|
|
127
|
+
{
|
|
128
|
+
var childNode = X3DCast (X3DConstants .NurbsCurve2D, this .children_ [i]);
|
|
129
|
+
|
|
130
|
+
if (childNode)
|
|
131
|
+
{
|
|
132
|
+
childNodes .push (childNode);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var childNode = X3DCast (X3DConstants .ContourPolyline2D, this .children_ [i]);
|
|
137
|
+
|
|
138
|
+
if (childNode)
|
|
139
|
+
{
|
|
140
|
+
childNodes .push (childNode);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
addTrimmingContour: function (trimmingContours)
|
|
146
|
+
{
|
|
147
|
+
var childNodes = this .childNodes;
|
|
148
|
+
|
|
149
|
+
for (var i = 0, length = childNodes .length; i < length; ++ i)
|
|
150
|
+
trimmingContours .push (childNodes [i] .tessellate (2));
|
|
151
|
+
}
|
|
99
152
|
});
|
|
100
153
|
|
|
101
154
|
return Contour2D;
|
|
@@ -233,12 +286,14 @@ define ('x_ite/Components/NURBS/ContourPolyline2D',[
|
|
|
233
286
|
"x_ite/Basic/FieldDefinitionArray",
|
|
234
287
|
"x_ite/Components/NURBS/X3DNurbsControlCurveNode",
|
|
235
288
|
"x_ite/Bits/X3DConstants",
|
|
289
|
+
"standard/Math/Numbers/Vector3",
|
|
236
290
|
],
|
|
237
291
|
function (Fields,
|
|
238
292
|
X3DFieldDefinition,
|
|
239
293
|
FieldDefinitionArray,
|
|
240
294
|
X3DNurbsControlCurveNode,
|
|
241
|
-
X3DConstants
|
|
295
|
+
X3DConstants,
|
|
296
|
+
Vector3)
|
|
242
297
|
{
|
|
243
298
|
"use strict";
|
|
244
299
|
|
|
@@ -270,41 +325,67 @@ function (Fields,
|
|
|
270
325
|
{
|
|
271
326
|
return "children";
|
|
272
327
|
},
|
|
273
|
-
tessellate: function (
|
|
328
|
+
tessellate: function (type)
|
|
274
329
|
{
|
|
275
|
-
|
|
276
|
-
controlPointArray = this .controlPoint_ .getValue (),
|
|
277
|
-
controlPoints = this .controlPoints;
|
|
278
|
-
|
|
279
|
-
if (spine)
|
|
330
|
+
switch (type)
|
|
280
331
|
{
|
|
281
|
-
|
|
332
|
+
case 0:
|
|
282
333
|
{
|
|
283
334
|
var
|
|
284
|
-
|
|
285
|
-
|
|
335
|
+
controlPointArray = this .controlPoint_ .getValue (),
|
|
336
|
+
controlPoints = this .controlPoints;
|
|
286
337
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
338
|
+
for (var i = 0, length = this .controlPoint_ .length; i < length; ++ i)
|
|
339
|
+
{
|
|
340
|
+
var i2 = i * 2;
|
|
341
|
+
|
|
342
|
+
controlPoints [i2 + 0] = controlPointArray [i2 + 0];
|
|
343
|
+
controlPoints [i2 + 1] = controlPointArray [i2 + 1];
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
controlPoints .length = length * 2;
|
|
291
347
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
{
|
|
296
|
-
for (var i = 0, length = this .controlPoint_ .length; i < length; ++ i)
|
|
348
|
+
return controlPoints;
|
|
349
|
+
}
|
|
350
|
+
case 1:
|
|
297
351
|
{
|
|
298
|
-
var
|
|
352
|
+
var
|
|
353
|
+
controlPointArray = this .controlPoint_ .getValue (),
|
|
354
|
+
controlPoints = this .controlPoints;
|
|
355
|
+
|
|
356
|
+
for (var i = 0, length = this .controlPoint_ .length; i < length; ++ i)
|
|
357
|
+
{
|
|
358
|
+
var
|
|
359
|
+
i2 = i * 2,
|
|
360
|
+
i3 = i * 3;
|
|
361
|
+
|
|
362
|
+
controlPoints [i3 + 0] = controlPointArray [i2 + 0];
|
|
363
|
+
controlPoints [i3 + 1] = 0;
|
|
364
|
+
controlPoints [i3 + 2] = controlPointArray [i2 + 1];
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
controlPoints .length = length * 3;
|
|
299
368
|
|
|
300
|
-
controlPoints
|
|
301
|
-
controlPoints [i2 + 1] = controlPointArray [i2 + 1];
|
|
369
|
+
return controlPoints;
|
|
302
370
|
}
|
|
371
|
+
case 3:
|
|
372
|
+
{
|
|
373
|
+
var
|
|
374
|
+
controlPointArray = this .controlPoint_ .getValue (),
|
|
375
|
+
controlPoints = this .controlPoints;
|
|
303
376
|
|
|
304
|
-
|
|
305
|
-
|
|
377
|
+
for (var i = 0, length = this .controlPoint_ .length; i < length; ++ i)
|
|
378
|
+
{
|
|
379
|
+
var i2 = i * 2;
|
|
306
380
|
|
|
307
|
-
|
|
381
|
+
controlPoints [i] = new Vector3 (controlPointArray [i2 + 0], controlPointArray [i2 + 1], 0);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
controlPoints .length = length;
|
|
385
|
+
|
|
386
|
+
return controlPoints;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
308
389
|
},
|
|
309
390
|
});
|
|
310
391
|
|
|
@@ -549,23 +630,23 @@ function (Vector2,
|
|
|
549
630
|
return function (uOrder, uDimension, vDimension, uKnot, weight, controlPointNode)
|
|
550
631
|
{
|
|
551
632
|
var haveWeights = weight .length === controlPointNode .getSize ();
|
|
552
|
-
|
|
633
|
+
|
|
553
634
|
for (var v = 0, length = vDimension; v < length; ++ v)
|
|
554
635
|
{
|
|
555
636
|
var
|
|
556
637
|
first = v * uDimension,
|
|
557
638
|
last = v * uDimension + uDimension - 1;
|
|
558
|
-
|
|
639
|
+
|
|
559
640
|
// Check if first and last weights are unitary.
|
|
560
|
-
|
|
641
|
+
|
|
561
642
|
if (haveWeights)
|
|
562
643
|
{
|
|
563
644
|
if (weight [first] !== weight [last])
|
|
564
645
|
return false;
|
|
565
646
|
}
|
|
566
|
-
|
|
647
|
+
|
|
567
648
|
// Check if first and last point are coincident.
|
|
568
|
-
|
|
649
|
+
|
|
569
650
|
if (! controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
|
|
570
651
|
return false;
|
|
571
652
|
}
|
|
@@ -574,7 +655,7 @@ function (Vector2,
|
|
|
574
655
|
|
|
575
656
|
if (! this .isPeriodic (uOrder, uDimension, uKnot))
|
|
576
657
|
return false;
|
|
577
|
-
|
|
658
|
+
|
|
578
659
|
return true;
|
|
579
660
|
};
|
|
580
661
|
})(),
|
|
@@ -587,32 +668,32 @@ function (Vector2,
|
|
|
587
668
|
return function (vOrder, uDimension, vDimension, vKnot, weight, controlPointNode)
|
|
588
669
|
{
|
|
589
670
|
var haveWeights = weight .length === controlPointNode .getSize ();
|
|
590
|
-
|
|
671
|
+
|
|
591
672
|
for (var u = 0, size = uDimension; u < size; ++ u)
|
|
592
673
|
{
|
|
593
674
|
var
|
|
594
675
|
first = u,
|
|
595
676
|
last = (vDimension - 1) * uDimension + u;
|
|
596
|
-
|
|
677
|
+
|
|
597
678
|
// Check if first and last weights are unitary.
|
|
598
|
-
|
|
679
|
+
|
|
599
680
|
if (haveWeights)
|
|
600
681
|
{
|
|
601
682
|
if (weight [first] !== weight [last])
|
|
602
683
|
return false;
|
|
603
684
|
}
|
|
604
|
-
|
|
685
|
+
|
|
605
686
|
// Check if first and last point are coincident.
|
|
606
|
-
|
|
687
|
+
|
|
607
688
|
if (! controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
|
|
608
689
|
return false;
|
|
609
690
|
}
|
|
610
|
-
|
|
691
|
+
|
|
611
692
|
// Check if knots are periodic.
|
|
612
|
-
|
|
693
|
+
|
|
613
694
|
if (! this .isPeriodic (vOrder, vDimension, vKnot))
|
|
614
695
|
return false;
|
|
615
|
-
|
|
696
|
+
|
|
616
697
|
return true;
|
|
617
698
|
};
|
|
618
699
|
})(),
|
|
@@ -660,118 +741,103 @@ function (Vector2,
|
|
|
660
741
|
|
|
661
742
|
// check the knot-vectors. If they are not according to standard
|
|
662
743
|
// default uniform knot vectors will be generated.
|
|
663
|
-
|
|
744
|
+
|
|
664
745
|
var generateUniform = true;
|
|
665
|
-
|
|
746
|
+
|
|
666
747
|
if (knots .length === dimension + order)
|
|
667
748
|
{
|
|
668
749
|
generateUniform = false;
|
|
669
|
-
|
|
750
|
+
|
|
670
751
|
var consecutiveKnots = 0;
|
|
671
|
-
|
|
752
|
+
|
|
672
753
|
for (var i = 1, length = knots .length; i < length; ++ i)
|
|
673
754
|
{
|
|
674
755
|
if (knots [i] == knots [i - 1])
|
|
675
756
|
++ consecutiveKnots;
|
|
676
757
|
else
|
|
677
758
|
consecutiveKnots = 0;
|
|
678
|
-
|
|
759
|
+
|
|
679
760
|
if (consecutiveKnots > order - 1)
|
|
680
761
|
generateUniform = true;
|
|
681
|
-
|
|
762
|
+
|
|
682
763
|
if (knots [i - 1] > knots [i])
|
|
683
764
|
generateUniform = true;
|
|
684
765
|
}
|
|
685
766
|
}
|
|
686
|
-
|
|
767
|
+
|
|
687
768
|
if (generateUniform)
|
|
688
769
|
{
|
|
689
770
|
for (var i = 0, length = dimension + order; i < length; ++ i)
|
|
690
771
|
knots [i] = i / (length - 1);
|
|
691
772
|
}
|
|
692
|
-
|
|
773
|
+
|
|
693
774
|
if (closed)
|
|
694
775
|
{
|
|
695
776
|
for (var i = 1, length = order - 1; i < length; ++ i)
|
|
696
|
-
knots .push (knots
|
|
777
|
+
knots .push (knots .at (-1) + (knots [i] - knots [i - 1]));
|
|
697
778
|
}
|
|
698
779
|
|
|
699
780
|
return knots;
|
|
700
781
|
},
|
|
701
|
-
getWeights: function (result,
|
|
782
|
+
getWeights: function (result, dimension, weight)
|
|
702
783
|
{
|
|
703
784
|
if (weight .length !== dimension)
|
|
704
785
|
return undefined;
|
|
705
786
|
|
|
706
787
|
var weights = result || [ ];
|
|
707
|
-
|
|
788
|
+
|
|
708
789
|
for (var i = 0; i < dimension; ++ i)
|
|
709
790
|
{
|
|
710
791
|
weights [i] = weight [i];
|
|
711
792
|
}
|
|
712
|
-
|
|
713
|
-
weights .length = dimension;
|
|
714
793
|
|
|
715
|
-
|
|
716
|
-
{
|
|
717
|
-
for (var i = 1, size = order - 1; i < size; ++ i)
|
|
718
|
-
weights .push (weights [i]);
|
|
719
|
-
}
|
|
794
|
+
weights .length = dimension;
|
|
720
795
|
|
|
721
796
|
return weights;
|
|
722
797
|
},
|
|
723
|
-
getUVWeights: function (result,
|
|
798
|
+
getUVWeights: function (result, uDimension, vDimension, weight)
|
|
724
799
|
{
|
|
725
|
-
|
|
800
|
+
var dimension = uDimension * vDimension;
|
|
801
|
+
|
|
802
|
+
if (weight .length !== dimension)
|
|
726
803
|
return undefined;
|
|
727
804
|
|
|
728
805
|
var weights = result || [ ];
|
|
729
806
|
|
|
730
|
-
for (var u = 0; u < uDimension; ++ u)
|
|
807
|
+
for (var u = 0, i = 0; u < uDimension; ++ u)
|
|
731
808
|
{
|
|
732
|
-
var
|
|
733
|
-
|
|
734
|
-
if (! w)
|
|
735
|
-
w = weights [u] = [ ];
|
|
736
|
-
|
|
737
|
-
for (var v = 0; v < vDimension; ++ v)
|
|
809
|
+
for (var v = 0; v < vDimension; ++ v, ++ i)
|
|
738
810
|
{
|
|
739
|
-
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
w .length = vDimension;
|
|
743
|
-
|
|
744
|
-
if (vClosed)
|
|
745
|
-
{
|
|
746
|
-
for (var i = 1, length = vOrder - 1; i < length; ++ i)
|
|
747
|
-
w .push (w [i]);
|
|
811
|
+
weights [i] = weight [i];
|
|
748
812
|
}
|
|
749
813
|
}
|
|
750
|
-
|
|
751
|
-
weights .length = uDimension;
|
|
752
814
|
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
for (var i = 1, length = uOrder - 1; i < length; ++ i)
|
|
756
|
-
weights .push (weights [i]);
|
|
757
|
-
}
|
|
758
|
-
|
|
815
|
+
weights .length = dimension;
|
|
816
|
+
|
|
759
817
|
return weights;
|
|
760
818
|
},
|
|
761
|
-
getControlPoints2D: function (result, closed, order, controlPoint)
|
|
819
|
+
getControlPoints2D: function (result, closed, order, weights, controlPoint)
|
|
762
820
|
{
|
|
763
821
|
var
|
|
764
822
|
controlPoints = result || [ ],
|
|
765
823
|
controlPointArray = controlPoint .getValue (),
|
|
766
|
-
dimension = controlPoint .length
|
|
767
|
-
|
|
824
|
+
dimension = controlPoint .length,
|
|
825
|
+
haveWeights = Boolean (weights),
|
|
826
|
+
Vector = haveWeights ? Vector3 : Vector2;
|
|
827
|
+
|
|
828
|
+
if (controlPoints .haveWeights !== haveWeights)
|
|
829
|
+
{
|
|
830
|
+
controlPoints .haveWeights = haveWeights;
|
|
831
|
+
controlPoints .length = 0;
|
|
832
|
+
}
|
|
833
|
+
|
|
768
834
|
for (var i = 0; i < dimension; ++ i)
|
|
769
835
|
{
|
|
770
836
|
var
|
|
771
837
|
i2 = i * 2,
|
|
772
|
-
p = controlPoints [i] || new
|
|
838
|
+
p = controlPoints [i] || new Vector (0, 0, 0);
|
|
773
839
|
|
|
774
|
-
controlPoints [i] = p .set (controlPointArray [i2 + 0], controlPointArray [i2 + 1])
|
|
840
|
+
controlPoints [i] = p .set (controlPointArray [i2 + 0], controlPointArray [i2 + 1], haveWeights ? weights [i] : 0);
|
|
775
841
|
}
|
|
776
842
|
|
|
777
843
|
controlPoints .length = dimension;
|
|
@@ -784,17 +850,28 @@ function (Vector2,
|
|
|
784
850
|
|
|
785
851
|
return controlPoints;
|
|
786
852
|
},
|
|
787
|
-
getControlPoints: function (result, closed, order, controlPointNode)
|
|
853
|
+
getControlPoints: function (result, closed, order, weights, controlPointNode)
|
|
788
854
|
{
|
|
789
855
|
var
|
|
790
856
|
controlPoints = result || [ ],
|
|
791
|
-
dimension = controlPointNode .getSize ()
|
|
792
|
-
|
|
857
|
+
dimension = controlPointNode .getSize (),
|
|
858
|
+
haveWeights = Boolean (weights),
|
|
859
|
+
Vector = haveWeights ? Vector4 : Vector3;
|
|
860
|
+
|
|
861
|
+
if (controlPoints .haveWeights !== haveWeights)
|
|
862
|
+
{
|
|
863
|
+
controlPoints .haveWeights = haveWeights;
|
|
864
|
+
controlPoints .length = 0;
|
|
865
|
+
}
|
|
866
|
+
|
|
793
867
|
for (var i = 0; i < dimension; ++ i)
|
|
794
868
|
{
|
|
795
|
-
controlPoints [i] = controlPointNode .get1Point (i, controlPoints [i] || new
|
|
869
|
+
var cp = controlPoints [i] = controlPointNode .get1Point (i, controlPoints [i] || new Vector (0, 0, 0, 0));
|
|
870
|
+
|
|
871
|
+
if (haveWeights)
|
|
872
|
+
cp .w = weights [i];
|
|
796
873
|
}
|
|
797
|
-
|
|
874
|
+
|
|
798
875
|
controlPoints .length = dimension;
|
|
799
876
|
|
|
800
877
|
if (closed)
|
|
@@ -805,9 +882,18 @@ function (Vector2,
|
|
|
805
882
|
|
|
806
883
|
return controlPoints;
|
|
807
884
|
},
|
|
808
|
-
getUVControlPoints: function (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, controlPointNode)
|
|
885
|
+
getUVControlPoints: function (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, weights, controlPointNode)
|
|
809
886
|
{
|
|
810
|
-
var
|
|
887
|
+
var
|
|
888
|
+
controlPoints = result || [ ],
|
|
889
|
+
haveWeights = Boolean (weights),
|
|
890
|
+
Vector = haveWeights ? Vector4 : Vector3;
|
|
891
|
+
|
|
892
|
+
if (controlPoints .haveWeights !== haveWeights)
|
|
893
|
+
{
|
|
894
|
+
controlPoints .haveWeights = haveWeights;
|
|
895
|
+
controlPoints .length = 0;
|
|
896
|
+
}
|
|
811
897
|
|
|
812
898
|
for (var u = 0; u < uDimension; ++ u)
|
|
813
899
|
{
|
|
@@ -818,7 +904,12 @@ function (Vector2,
|
|
|
818
904
|
|
|
819
905
|
for (var v = 0; v < vDimension; ++ v)
|
|
820
906
|
{
|
|
821
|
-
|
|
907
|
+
var index = v * uDimension + u;
|
|
908
|
+
|
|
909
|
+
cp [v] = controlPointNode .get1Point (index, cp [v] || new Vector (0, 0, 0, 0));
|
|
910
|
+
|
|
911
|
+
if (haveWeights)
|
|
912
|
+
cp [v] .w = weights [index];
|
|
822
913
|
}
|
|
823
914
|
|
|
824
915
|
cp .length = vDimension;
|
|
@@ -853,7 +944,9 @@ function (Vector2,
|
|
|
853
944
|
|
|
854
945
|
for (var v = 0; v < vDimension; ++ v)
|
|
855
946
|
{
|
|
856
|
-
|
|
947
|
+
var index = v * uDimension + u;
|
|
948
|
+
|
|
949
|
+
cp [v] = controlPointNode .get1Point (index, cp [v] || new Vector4 (0, 0, 0, 0));
|
|
857
950
|
}
|
|
858
951
|
|
|
859
952
|
cp .length = vDimension;
|
|
@@ -2048,45 +2141,16 @@ function (ndloop,
|
|
|
2048
2141
|
});
|
|
2049
2142
|
|
|
2050
2143
|
|
|
2051
|
-
define ('nurbs/extras/sample',[
|
|
2144
|
+
define ('nurbs/extras/sample',[
|
|
2145
|
+
"standard/Math/Numbers/Vector3",
|
|
2146
|
+
"standard/Math/Geometry/Triangle3",
|
|
2147
|
+
],
|
|
2148
|
+
function (Vector3,
|
|
2149
|
+
Triangle3)
|
|
2052
2150
|
{
|
|
2053
2151
|
'use strict';
|
|
2054
2152
|
|
|
2055
|
-
|
|
2056
|
-
{
|
|
2057
|
-
var
|
|
2058
|
-
x = a [0],
|
|
2059
|
-
y = a [1],
|
|
2060
|
-
z = a [2];
|
|
2061
|
-
|
|
2062
|
-
var l = Math .sqrt (x * x + y * y + z * z);
|
|
2063
|
-
|
|
2064
|
-
if (l > 0)
|
|
2065
|
-
{
|
|
2066
|
-
out [0] = a [0] / l;
|
|
2067
|
-
out [1] = a [1] / l;
|
|
2068
|
-
out [2] = a [2] / l;
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
return out
|
|
2072
|
-
}
|
|
2073
|
-
|
|
2074
|
-
function cross (out, a, b)
|
|
2075
|
-
{
|
|
2076
|
-
var
|
|
2077
|
-
ax = a [0], ay = a [1], az = a [2],
|
|
2078
|
-
bx = b [0], by = b [1], bz = b [2];
|
|
2079
|
-
|
|
2080
|
-
out [0] = ay * bz - az * by
|
|
2081
|
-
out [1] = az * bx - ax * bz
|
|
2082
|
-
out [2] = ax * by - ay * bx
|
|
2083
|
-
|
|
2084
|
-
return out
|
|
2085
|
-
}
|
|
2086
|
-
|
|
2087
|
-
var
|
|
2088
|
-
tmp1 = [ ],
|
|
2089
|
-
tmp2 = [ ];
|
|
2153
|
+
var tmp1 = [ ];
|
|
2090
2154
|
|
|
2091
2155
|
return function (mesh, surface, opts)
|
|
2092
2156
|
{
|
|
@@ -2094,11 +2158,11 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2094
2158
|
opts = opts || { };
|
|
2095
2159
|
|
|
2096
2160
|
var
|
|
2097
|
-
points
|
|
2098
|
-
|
|
2099
|
-
|
|
2161
|
+
points = mesh .points = mesh .points || [ ],
|
|
2162
|
+
faces = mesh .faces = mesh .faces || [ ],
|
|
2163
|
+
haveWeights = opts .haveWeights;
|
|
2100
2164
|
|
|
2101
|
-
var dimension = surface .dimension;
|
|
2165
|
+
var dimension = surface .dimension - haveWeights;
|
|
2102
2166
|
|
|
2103
2167
|
if (Array .isArray (opts .resolution))
|
|
2104
2168
|
{
|
|
@@ -2111,8 +2175,6 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2111
2175
|
resolution = new Array (surface .splineDimension) .fill (res);
|
|
2112
2176
|
}
|
|
2113
2177
|
|
|
2114
|
-
var generateNormals = dimension === 3 && (opts .generateNormals !== undefined ? opts .generateNormals : true);
|
|
2115
|
-
|
|
2116
2178
|
switch (surface .splineDimension)
|
|
2117
2179
|
{
|
|
2118
2180
|
case 1:
|
|
@@ -2122,7 +2184,6 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2122
2184
|
uClosed = surface .boundary [0] === 'closed',
|
|
2123
2185
|
nuBound = nu + ! uClosed,
|
|
2124
2186
|
nbVertices = nuBound * dimension,
|
|
2125
|
-
uDer = surface .evaluator ([1, 0]),
|
|
2126
2187
|
domain = opts .domain || surface .domain,
|
|
2127
2188
|
uDomain = domain [0],
|
|
2128
2189
|
uDistance = uDomain [1] - uDomain [0];
|
|
@@ -2135,10 +2196,20 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2135
2196
|
|
|
2136
2197
|
surface .evaluate (tmp1, u);
|
|
2137
2198
|
|
|
2138
|
-
|
|
2139
|
-
|
|
2199
|
+
if (haveWeights)
|
|
2200
|
+
{
|
|
2201
|
+
var w = tmp1 [dimension];
|
|
2202
|
+
|
|
2203
|
+
for (var d = 0; d < dimension; ++ d)
|
|
2204
|
+
points [ptr + d] = tmp1 [d] / w;
|
|
2205
|
+
}
|
|
2206
|
+
else
|
|
2207
|
+
{
|
|
2208
|
+
for (var d = 0; d < dimension; ++ d)
|
|
2209
|
+
points [ptr + d] = tmp1 [d];
|
|
2210
|
+
}
|
|
2140
2211
|
}
|
|
2141
|
-
|
|
2212
|
+
|
|
2142
2213
|
points .length = nbVertices;
|
|
2143
2214
|
break;
|
|
2144
2215
|
}
|
|
@@ -2151,20 +2222,19 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2151
2222
|
vClosed = surface .boundary [1] === 'closed',
|
|
2152
2223
|
nuBound = nu + ! uClosed,
|
|
2153
2224
|
nvBound = nv + ! vClosed,
|
|
2154
|
-
nbNormals = nuBound * nvBound * 3,
|
|
2155
2225
|
nbVertices = nuBound * nvBound * dimension,
|
|
2156
|
-
uDer = surface .evaluator ([1, 0]),
|
|
2157
|
-
vDer = surface .evaluator ([0, 1]),
|
|
2158
2226
|
domain = opts .domain || surface .domain,
|
|
2159
2227
|
uDomain = domain [0],
|
|
2160
2228
|
vDomain = domain [1],
|
|
2161
2229
|
uDistance = uDomain [1] - uDomain [0],
|
|
2162
2230
|
vDistance = vDomain [1] - vDomain [0];
|
|
2163
2231
|
|
|
2232
|
+
// Generate points.
|
|
2233
|
+
|
|
2164
2234
|
for (var i = 0; i < nuBound; ++ i)
|
|
2165
2235
|
{
|
|
2166
2236
|
var u = uDomain [0] + uDistance * i / nu;
|
|
2167
|
-
|
|
2237
|
+
|
|
2168
2238
|
for (var j = 0; j < nvBound; ++ j)
|
|
2169
2239
|
{
|
|
2170
2240
|
var
|
|
@@ -2172,57 +2242,137 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2172
2242
|
ptr = (i + nuBound * j) * dimension;
|
|
2173
2243
|
|
|
2174
2244
|
surface .evaluate (tmp1, u, v);
|
|
2175
|
-
|
|
2176
|
-
for (var d = 0; d < dimension; ++ d)
|
|
2177
|
-
points [ptr + d] = tmp1 [d];
|
|
2178
2245
|
|
|
2179
|
-
if (
|
|
2246
|
+
if (haveWeights)
|
|
2180
2247
|
{
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2248
|
+
var w = tmp1 [dimension];
|
|
2249
|
+
|
|
2250
|
+
for (var d = 0; d < dimension; ++ d)
|
|
2251
|
+
points [ptr + d] = tmp1 [d] / w;
|
|
2252
|
+
}
|
|
2253
|
+
else
|
|
2254
|
+
{
|
|
2255
|
+
for (var d = 0; d < dimension; ++ d)
|
|
2256
|
+
points [ptr + d] = tmp1 [d];
|
|
2189
2257
|
}
|
|
2190
2258
|
}
|
|
2191
2259
|
}
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2260
|
+
|
|
2261
|
+
points .length = nbVertices;
|
|
2262
|
+
|
|
2263
|
+
// Generate faces.
|
|
2264
|
+
|
|
2265
|
+
var
|
|
2266
|
+
uClosed = opts .closed [0],
|
|
2267
|
+
vClosed = opts .closed [1];
|
|
2268
|
+
|
|
2196
2269
|
var c = 0;
|
|
2197
|
-
|
|
2270
|
+
|
|
2198
2271
|
for (var i = 0; i < nu; ++ i)
|
|
2199
2272
|
{
|
|
2200
2273
|
var
|
|
2201
2274
|
i0 = i,
|
|
2202
2275
|
i1 = i + 1;
|
|
2203
|
-
|
|
2276
|
+
|
|
2204
2277
|
if (uClosed)
|
|
2205
2278
|
i1 = i1 % nu;
|
|
2206
|
-
|
|
2279
|
+
|
|
2207
2280
|
for (var j = 0; j < nv; ++ j)
|
|
2208
2281
|
{
|
|
2209
2282
|
var j0 = j;
|
|
2210
2283
|
var j1 = j + 1;
|
|
2211
|
-
|
|
2284
|
+
|
|
2212
2285
|
if (vClosed)
|
|
2213
2286
|
j1 = j1 % nv;
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
faces [c ++] =
|
|
2218
|
-
|
|
2219
|
-
faces [c ++] =
|
|
2220
|
-
|
|
2221
|
-
|
|
2287
|
+
|
|
2288
|
+
// Triangle 1
|
|
2289
|
+
|
|
2290
|
+
faces [c ++] = i0 + nuBound * j0; // 1
|
|
2291
|
+
faces [c ++] = i1 + nuBound * j0; // 2
|
|
2292
|
+
faces [c ++] = i1 + nuBound * j1; // 3
|
|
2293
|
+
|
|
2294
|
+
// Triangle 2
|
|
2295
|
+
|
|
2296
|
+
faces [c ++] = i0 + nuBound * j0; // 1
|
|
2297
|
+
faces [c ++] = i1 + nuBound * j1; // 3
|
|
2298
|
+
faces [c ++] = i0 + nuBound * j1; // 4
|
|
2222
2299
|
}
|
|
2223
2300
|
}
|
|
2224
|
-
|
|
2301
|
+
|
|
2225
2302
|
faces .length = c;
|
|
2303
|
+
|
|
2304
|
+
/*
|
|
2305
|
+
// Trimming Contours
|
|
2306
|
+
|
|
2307
|
+
if (opts .trimmingContours)
|
|
2308
|
+
{
|
|
2309
|
+
var holes = [ ];
|
|
2310
|
+
|
|
2311
|
+
var trimmingContours = opts .trimmingContours;
|
|
2312
|
+
|
|
2313
|
+
for (var t = 0, iLength = trimmingContours .length; t < iLength; ++ t)
|
|
2314
|
+
{
|
|
2315
|
+
var
|
|
2316
|
+
trimmingContour = trimmingContours [t],
|
|
2317
|
+
hole = [ ];
|
|
2318
|
+
|
|
2319
|
+
for (var p = 0, pLength = trimmingContour .length; p < pLength; ++ p)
|
|
2320
|
+
{
|
|
2321
|
+
var point = trimmingContour [p];
|
|
2322
|
+
|
|
2323
|
+
surface .evaluate (tmp1, point .x, point .y);
|
|
2324
|
+
|
|
2325
|
+
for (var d = 0; d < dimension; ++ d)
|
|
2326
|
+
points .push (tmp1 [d]);
|
|
2327
|
+
|
|
2328
|
+
var vertex = new Vector3 (tmp1 [0], tmp1 [1], tmp1 [2]);
|
|
2329
|
+
|
|
2330
|
+
vertex .index = c ++;
|
|
2331
|
+
|
|
2332
|
+
hole .push (vertex);
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2335
|
+
holes .push (hole);
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
var
|
|
2339
|
+
curves = [ ],
|
|
2340
|
+
triangles = [ ],
|
|
2341
|
+
trimmed = [ ];
|
|
2342
|
+
|
|
2343
|
+
for (var v = 0, fLength = faces .length; v < fLength; v += 3)
|
|
2344
|
+
{
|
|
2345
|
+
curves .length = 0;
|
|
2346
|
+
triangles .length = 0;
|
|
2347
|
+
|
|
2348
|
+
var
|
|
2349
|
+
index1 = faces [v] * 3,
|
|
2350
|
+
index2 = faces [v + 1] * 3,
|
|
2351
|
+
index3 = faces [v + 2] * 3;
|
|
2352
|
+
|
|
2353
|
+
var
|
|
2354
|
+
vertex1 = new Vector3 (points [index1], points [index1 + 1], points [index1 + 2]),
|
|
2355
|
+
vertex2 = new Vector3 (points [index2], points [index2 + 1], points [index2 + 2]),
|
|
2356
|
+
vertex3 = new Vector3 (points [index3], points [index3 + 1], points [index3 + 2]);
|
|
2357
|
+
|
|
2358
|
+
vertex1 .index = v;
|
|
2359
|
+
vertex2 .index = v + 1;
|
|
2360
|
+
vertex3 .index = v + 2;
|
|
2361
|
+
|
|
2362
|
+
curves .push ([ vertex1, vertex2, vertex3 ]);
|
|
2363
|
+
curves .push .apply (curves, holes);
|
|
2364
|
+
curves .push (triangles);
|
|
2365
|
+
|
|
2366
|
+
Triangle3 .triangulatePolygon .apply (Triangle3, curves);
|
|
2367
|
+
|
|
2368
|
+
for (var t = 0, tLength = triangles .length; t < tLength; ++ t)
|
|
2369
|
+
trimmed .push (triangles [t] .index);
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
mesh .faces = trimmed;
|
|
2373
|
+
}
|
|
2374
|
+
*/
|
|
2375
|
+
|
|
2226
2376
|
break;
|
|
2227
2377
|
}
|
|
2228
2378
|
default:
|
|
@@ -2233,6 +2383,7 @@ define ('nurbs/extras/sample',[],function ()
|
|
|
2233
2383
|
};
|
|
2234
2384
|
});
|
|
2235
2385
|
|
|
2386
|
+
|
|
2236
2387
|
define ('nurbs/nurbs',[
|
|
2237
2388
|
'nurbs/src/utils/infer-type',
|
|
2238
2389
|
'nurbs/src/utils/cache-key',
|
|
@@ -2640,8 +2791,8 @@ function (X3DCast,
|
|
|
2640
2791
|
Fields,
|
|
2641
2792
|
X3DFieldDefinition,
|
|
2642
2793
|
FieldDefinitionArray,
|
|
2643
|
-
X3DParametricGeometryNode,
|
|
2644
|
-
X3DLineGeometryNode,
|
|
2794
|
+
X3DParametricGeometryNode,
|
|
2795
|
+
X3DLineGeometryNode,
|
|
2645
2796
|
X3DConstants,
|
|
2646
2797
|
NURBS,
|
|
2647
2798
|
nurbs)
|
|
@@ -2720,47 +2871,47 @@ function (X3DCast,
|
|
|
2720
2871
|
|
|
2721
2872
|
return NURBS .getClosed (order, knot, weight, controlPointNode);
|
|
2722
2873
|
},
|
|
2723
|
-
getWeights: function (result,
|
|
2874
|
+
getWeights: function (result, dimension, weight)
|
|
2724
2875
|
{
|
|
2725
|
-
return NURBS .getWeights (result,
|
|
2876
|
+
return NURBS .getWeights (result, dimension, weight);
|
|
2726
2877
|
},
|
|
2727
|
-
getControlPoints: function (result, closed, order, controlPointNode)
|
|
2878
|
+
getControlPoints: function (result, closed, order, weights, controlPointNode)
|
|
2728
2879
|
{
|
|
2729
|
-
return NURBS .getControlPoints (result, closed, order, controlPointNode);
|
|
2880
|
+
return NURBS .getControlPoints (result, closed, order, weights, controlPointNode);
|
|
2730
2881
|
},
|
|
2731
2882
|
tessellate: function ()
|
|
2732
2883
|
{
|
|
2733
2884
|
if (this .order_ .getValue () < 2)
|
|
2734
2885
|
return [ ];
|
|
2735
|
-
|
|
2886
|
+
|
|
2736
2887
|
if (! this .controlPointNode)
|
|
2737
2888
|
return [ ];
|
|
2738
|
-
|
|
2889
|
+
|
|
2739
2890
|
if (this .controlPointNode .getSize () < this .order_ .getValue ())
|
|
2740
2891
|
return [ ];
|
|
2741
2892
|
|
|
2742
2893
|
var
|
|
2743
2894
|
vertexArray = this .getVertices (),
|
|
2744
2895
|
array = [ ];
|
|
2745
|
-
|
|
2896
|
+
|
|
2746
2897
|
if (vertexArray .length)
|
|
2747
2898
|
{
|
|
2748
2899
|
for (var i = 0, length = vertexArray .length; i < length; i += 8)
|
|
2749
2900
|
array .push (vertexArray [i], vertexArray [i + 1], vertexArray [i + 2]);
|
|
2750
|
-
|
|
2901
|
+
|
|
2751
2902
|
array .push (vertexArray [length - 4], vertexArray [length - 3], vertexArray [length - 2]);
|
|
2752
2903
|
}
|
|
2753
|
-
|
|
2904
|
+
|
|
2754
2905
|
return array;
|
|
2755
2906
|
},
|
|
2756
2907
|
build: function ()
|
|
2757
2908
|
{
|
|
2758
2909
|
if (this .order_ .getValue () < 2)
|
|
2759
2910
|
return;
|
|
2760
|
-
|
|
2911
|
+
|
|
2761
2912
|
if (! this .controlPointNode)
|
|
2762
2913
|
return;
|
|
2763
|
-
|
|
2914
|
+
|
|
2764
2915
|
if (this .controlPointNode .getSize () < this .order_ .getValue ())
|
|
2765
2916
|
return;
|
|
2766
2917
|
|
|
@@ -2768,17 +2919,16 @@ function (X3DCast,
|
|
|
2768
2919
|
|
|
2769
2920
|
var
|
|
2770
2921
|
closed = this .getClosed (this .order_ .getValue (), this .knot_, this .weight_, this .controlPointNode),
|
|
2771
|
-
|
|
2772
|
-
|
|
2922
|
+
weights = this .getWeights (this .weights, this .controlPointNode .getSize (), this .weight_),
|
|
2923
|
+
controlPoints = this .getControlPoints (this .controlPoints, closed, this .order_ .getValue (), weights, this .controlPointNode);
|
|
2924
|
+
|
|
2773
2925
|
// Knots
|
|
2774
|
-
|
|
2926
|
+
|
|
2775
2927
|
var
|
|
2776
2928
|
knots = this .getKnots (this .knots, closed, this .order_ .getValue (), this .controlPointNode .getSize (), this .knot_),
|
|
2777
|
-
scale = knots
|
|
2778
|
-
|
|
2779
|
-
var weights = this .getWeights (this .weights, closed, this .order_ .getValue (), this .controlPointNode .getSize (), this .weight_);
|
|
2929
|
+
scale = knots .at (-1) - knots [0];
|
|
2780
2930
|
|
|
2781
|
-
// Initialize NURBS
|
|
2931
|
+
// Initialize NURBS tessellator
|
|
2782
2932
|
|
|
2783
2933
|
var degree = this .order_ .getValue () - 1;
|
|
2784
2934
|
|
|
@@ -2786,19 +2936,19 @@ function (X3DCast,
|
|
|
2786
2936
|
boundary: ["open"],
|
|
2787
2937
|
degree: [degree],
|
|
2788
2938
|
knots: [knots],
|
|
2789
|
-
weights: weights,
|
|
2790
2939
|
points: controlPoints,
|
|
2791
2940
|
debug: false,
|
|
2792
2941
|
});
|
|
2793
2942
|
|
|
2794
2943
|
this .sampleOptions .resolution [0] = this .getTessellation (knots .length);
|
|
2944
|
+
this .sampleOptions .haveWeights = Boolean (weights);
|
|
2795
2945
|
|
|
2796
2946
|
var
|
|
2797
2947
|
mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
|
|
2798
2948
|
points = mesh .points,
|
|
2799
2949
|
vertexArray = this .getVertices ();
|
|
2800
2950
|
|
|
2801
|
-
for (var i2= 3, length = points .length; i2 < length; i2 += 3)
|
|
2951
|
+
for (var i2 = 3, length = points .length; i2 < length; i2 += 3)
|
|
2802
2952
|
{
|
|
2803
2953
|
var i1 = i2 - 3;
|
|
2804
2954
|
|
|
@@ -2811,8 +2961,6 @@ function (X3DCast,
|
|
|
2811
2961
|
return NurbsCurve;
|
|
2812
2962
|
});
|
|
2813
2963
|
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
2964
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
2817
2965
|
*******************************************************************************
|
|
2818
2966
|
*
|
|
@@ -2869,14 +3017,16 @@ define ('x_ite/Components/NURBS/NurbsCurve2D',[
|
|
|
2869
3017
|
"x_ite/Components/NURBS/X3DNurbsControlCurveNode",
|
|
2870
3018
|
"x_ite/Bits/X3DConstants",
|
|
2871
3019
|
"x_ite/Browser/NURBS/NURBS",
|
|
3020
|
+
"standard/Math/Numbers/Vector3",
|
|
2872
3021
|
"nurbs",
|
|
2873
3022
|
],
|
|
2874
3023
|
function (Fields,
|
|
2875
3024
|
X3DFieldDefinition,
|
|
2876
3025
|
FieldDefinitionArray,
|
|
2877
|
-
X3DNurbsControlCurveNode,
|
|
3026
|
+
X3DNurbsControlCurveNode,
|
|
2878
3027
|
X3DConstants,
|
|
2879
3028
|
NURBS,
|
|
3029
|
+
Vector3,
|
|
2880
3030
|
nurbs)
|
|
2881
3031
|
{
|
|
2882
3032
|
"use strict";
|
|
@@ -2934,15 +3084,15 @@ function (Fields,
|
|
|
2934
3084
|
{
|
|
2935
3085
|
return NURBS .getKnots (result, closed, order, dimension, knot);
|
|
2936
3086
|
},
|
|
2937
|
-
getWeights: function (result,
|
|
3087
|
+
getWeights: function (result, dimension, weight)
|
|
2938
3088
|
{
|
|
2939
|
-
return NURBS .getWeights (result,
|
|
3089
|
+
return NURBS .getWeights (result, dimension, weight);
|
|
2940
3090
|
},
|
|
2941
|
-
getControlPoints: function (result, closed, order, controlPoint)
|
|
3091
|
+
getControlPoints: function (result, closed, order, weights, controlPoint)
|
|
2942
3092
|
{
|
|
2943
|
-
return NURBS .getControlPoints2D (result, closed, order, controlPoint);
|
|
3093
|
+
return NURBS .getControlPoints2D (result, closed, order, weights, controlPoint);
|
|
2944
3094
|
},
|
|
2945
|
-
tessellate: function (
|
|
3095
|
+
tessellate: function (type)
|
|
2946
3096
|
{
|
|
2947
3097
|
var array = this .array;
|
|
2948
3098
|
|
|
@@ -2950,7 +3100,7 @@ function (Fields,
|
|
|
2950
3100
|
|
|
2951
3101
|
if (this .order_ .getValue () < 2)
|
|
2952
3102
|
return array;
|
|
2953
|
-
|
|
3103
|
+
|
|
2954
3104
|
if (this .controlPoint_ .length < this .order_ .getValue ())
|
|
2955
3105
|
return array;
|
|
2956
3106
|
|
|
@@ -2958,17 +3108,16 @@ function (Fields,
|
|
|
2958
3108
|
|
|
2959
3109
|
var
|
|
2960
3110
|
closed = this .getClosed (this .order_ .getValue (), this .knot_, this .weight_, this .controlPoint_),
|
|
2961
|
-
|
|
2962
|
-
|
|
3111
|
+
weights = this .getWeights (this .weights, this .controlPoint_ .length, this .weight_),
|
|
3112
|
+
controlPoints = this .getControlPoints (this .controlPoints, closed, this .order_ .getValue (), weights, this .controlPoint_);
|
|
3113
|
+
|
|
2963
3114
|
// Knots
|
|
2964
|
-
|
|
3115
|
+
|
|
2965
3116
|
var
|
|
2966
3117
|
knots = this .getKnots (this .knots, closed, this .order_ .getValue (), this .controlPoint_ .length, this .knot_),
|
|
2967
|
-
scale = knots
|
|
3118
|
+
scale = knots .at (-1) - knots [0];
|
|
2968
3119
|
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
// Initialize NURBS tesselllator
|
|
3120
|
+
// Initialize NURBS tessellator
|
|
2972
3121
|
|
|
2973
3122
|
var degree = this .order_ .getValue () - 1;
|
|
2974
3123
|
|
|
@@ -2976,26 +3125,46 @@ function (Fields,
|
|
|
2976
3125
|
boundary: ["open"],
|
|
2977
3126
|
degree: [degree],
|
|
2978
3127
|
knots: [knots],
|
|
2979
|
-
weights: weights,
|
|
2980
3128
|
points: controlPoints,
|
|
2981
3129
|
debug: false,
|
|
2982
3130
|
});
|
|
2983
3131
|
|
|
2984
3132
|
this .sampleOptions .resolution [0] = this .getTessellation (knots .length);
|
|
3133
|
+
this .sampleOptions .haveWeights = Boolean (weights);
|
|
2985
3134
|
|
|
2986
3135
|
var
|
|
2987
3136
|
mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
|
|
2988
3137
|
points = mesh .points;
|
|
2989
3138
|
|
|
2990
|
-
|
|
3139
|
+
switch (type)
|
|
2991
3140
|
{
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
3141
|
+
case 0:
|
|
3142
|
+
{
|
|
3143
|
+
for (var i = 0, length = points .length; i < length; i += 2)
|
|
3144
|
+
{
|
|
3145
|
+
array .push (points [i], points [i + 1]);
|
|
3146
|
+
}
|
|
3147
|
+
|
|
3148
|
+
break;
|
|
3149
|
+
}
|
|
3150
|
+
case 1:
|
|
3151
|
+
{
|
|
3152
|
+
for (var i = 0, length = points .length; i < length; i += 2)
|
|
3153
|
+
{
|
|
3154
|
+
array .push (points [i], 0, points [i + 1]);
|
|
3155
|
+
}
|
|
3156
|
+
|
|
3157
|
+
break;
|
|
3158
|
+
}
|
|
3159
|
+
case 2:
|
|
3160
|
+
{
|
|
3161
|
+
for (var i = 0, length = points .length; i < length; i += 2)
|
|
3162
|
+
{
|
|
3163
|
+
array .push (new Vector3 (points [i], points [i + 1], 0));
|
|
3164
|
+
}
|
|
3165
|
+
|
|
3166
|
+
break;
|
|
3167
|
+
}
|
|
2999
3168
|
}
|
|
3000
3169
|
|
|
3001
3170
|
return array;
|
|
@@ -3005,8 +3174,6 @@ function (Fields,
|
|
|
3005
3174
|
return NurbsCurve2D;
|
|
3006
3175
|
});
|
|
3007
3176
|
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
3177
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
3011
3178
|
*******************************************************************************
|
|
3012
3179
|
*
|
|
@@ -3072,8 +3239,8 @@ define ('x_ite/Components/NURBS/NurbsOrientationInterpolator',[
|
|
|
3072
3239
|
function (Fields,
|
|
3073
3240
|
X3DFieldDefinition,
|
|
3074
3241
|
FieldDefinitionArray,
|
|
3075
|
-
X3DChildNode,
|
|
3076
|
-
OrientationInterpolator,
|
|
3242
|
+
X3DChildNode,
|
|
3243
|
+
OrientationInterpolator,
|
|
3077
3244
|
X3DConstants,
|
|
3078
3245
|
X3DCast,
|
|
3079
3246
|
NURBS,
|
|
@@ -3088,7 +3255,7 @@ function (Fields,
|
|
|
3088
3255
|
X3DChildNode .call (this, executionContext);
|
|
3089
3256
|
|
|
3090
3257
|
this .addType (X3DConstants .NurbsOrientationInterpolator);
|
|
3091
|
-
|
|
3258
|
+
|
|
3092
3259
|
this .addChildObjects ("rebuild", new Fields .SFTime ());
|
|
3093
3260
|
|
|
3094
3261
|
this .interpolator = new OrientationInterpolator (executionContext);
|
|
@@ -3133,7 +3300,7 @@ function (Fields,
|
|
|
3133
3300
|
this .controlPoint_ .addInterest ("set_controlPoint__", this);
|
|
3134
3301
|
|
|
3135
3302
|
this .rebuild_ .addInterest ("build", this);
|
|
3136
|
-
|
|
3303
|
+
|
|
3137
3304
|
this .set_fraction_ .addFieldInterest (this .interpolator .set_fraction_);
|
|
3138
3305
|
this .interpolator .value_changed_ .addFieldInterest (this .value_changed_);
|
|
3139
3306
|
|
|
@@ -3161,13 +3328,13 @@ function (Fields,
|
|
|
3161
3328
|
{
|
|
3162
3329
|
return NURBS .getKnots (result, closed, order, dimension, knot);
|
|
3163
3330
|
},
|
|
3164
|
-
getWeights: function (result,
|
|
3331
|
+
getWeights: function (result, dimension, weight)
|
|
3165
3332
|
{
|
|
3166
|
-
return NURBS .getWeights (result,
|
|
3333
|
+
return NURBS .getWeights (result, dimension, weight);
|
|
3167
3334
|
},
|
|
3168
|
-
getControlPoints: function (result, closed, order, controlPointNode)
|
|
3335
|
+
getControlPoints: function (result, closed, order, weights, controlPointNode)
|
|
3169
3336
|
{
|
|
3170
|
-
return NURBS .getControlPoints (result, closed, order, controlPointNode);
|
|
3337
|
+
return NURBS .getControlPoints (result, closed, order, weights, controlPointNode);
|
|
3171
3338
|
},
|
|
3172
3339
|
requestRebuild: function ()
|
|
3173
3340
|
{
|
|
@@ -3177,10 +3344,10 @@ function (Fields,
|
|
|
3177
3344
|
{
|
|
3178
3345
|
if (this .order_ .getValue () < 2)
|
|
3179
3346
|
return;
|
|
3180
|
-
|
|
3347
|
+
|
|
3181
3348
|
if (! this .controlPointNode)
|
|
3182
3349
|
return;
|
|
3183
|
-
|
|
3350
|
+
|
|
3184
3351
|
if (this .controlPointNode .getSize () < this .order_ .getValue ())
|
|
3185
3352
|
return;
|
|
3186
3353
|
|
|
@@ -3188,17 +3355,16 @@ function (Fields,
|
|
|
3188
3355
|
|
|
3189
3356
|
var
|
|
3190
3357
|
closed = this .getClosed (this .order_ .getValue (), this .knot_, this .weight_, this .controlPointNode),
|
|
3191
|
-
|
|
3192
|
-
|
|
3358
|
+
weights = this .getWeights (this .weights, this .controlPointNode .getSize (), this .weight_),
|
|
3359
|
+
controlPoints = this .getControlPoints (this .controlPoints, closed, this .order_ .getValue (), weights, this .controlPointNode);
|
|
3360
|
+
|
|
3193
3361
|
// Knots
|
|
3194
|
-
|
|
3362
|
+
|
|
3195
3363
|
var
|
|
3196
3364
|
knots = this .getKnots (this .knots, closed, this .order_ .getValue (), this .controlPointNode .getSize (), this .knot_),
|
|
3197
|
-
scale = knots
|
|
3365
|
+
scale = knots .at (-1) - knots [0];
|
|
3198
3366
|
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
// Initialize NURBS tesselllator
|
|
3367
|
+
// Initialize NURBS tessellator
|
|
3202
3368
|
|
|
3203
3369
|
var degree = this .order_ .getValue () - 1;
|
|
3204
3370
|
|
|
@@ -3206,11 +3372,12 @@ function (Fields,
|
|
|
3206
3372
|
boundary: ["open"],
|
|
3207
3373
|
degree: [degree],
|
|
3208
3374
|
knots: [knots],
|
|
3209
|
-
weights: weights,
|
|
3210
3375
|
points: controlPoints,
|
|
3211
3376
|
debug: false,
|
|
3212
3377
|
});
|
|
3213
3378
|
|
|
3379
|
+
this .sampleOptions .haveWeights = Boolean (weights);
|
|
3380
|
+
|
|
3214
3381
|
var
|
|
3215
3382
|
mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
|
|
3216
3383
|
points = mesh .points,
|
|
@@ -3223,7 +3390,7 @@ function (Fields,
|
|
|
3223
3390
|
{
|
|
3224
3391
|
var direction = new Vector3 (points [i + 3] - points [i + 0],
|
|
3225
3392
|
points [i + 4] - points [i + 1],
|
|
3226
|
-
points [i + 5] - points [i + 2])
|
|
3393
|
+
points [i + 5] - points [i + 2]);
|
|
3227
3394
|
|
|
3228
3395
|
interpolator .key_ .push (knots [0] + i / (length - 3 + (3 * closed)) * scale);
|
|
3229
3396
|
interpolator .keyValue_. push (new Rotation4 (Vector3 .zAxis, direction));
|
|
@@ -3240,8 +3407,6 @@ function (Fields,
|
|
|
3240
3407
|
return NurbsOrientationInterpolator;
|
|
3241
3408
|
});
|
|
3242
3409
|
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
3410
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
3246
3411
|
*******************************************************************************
|
|
3247
3412
|
*
|
|
@@ -3296,12 +3461,18 @@ define ('x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode',[
|
|
|
3296
3461
|
"x_ite/Bits/X3DConstants",
|
|
3297
3462
|
"x_ite/Bits/X3DCast",
|
|
3298
3463
|
"x_ite/Browser/NURBS/NURBS",
|
|
3464
|
+
"standard/Math/Algorithm",
|
|
3465
|
+
"standard/Math/Numbers/Vector3",
|
|
3466
|
+
"standard/Math/Geometry/Triangle3",
|
|
3299
3467
|
"nurbs",
|
|
3300
3468
|
],
|
|
3301
|
-
function (X3DParametricGeometryNode,
|
|
3469
|
+
function (X3DParametricGeometryNode,
|
|
3302
3470
|
X3DConstants,
|
|
3303
3471
|
X3DCast,
|
|
3304
3472
|
NURBS,
|
|
3473
|
+
Algorithm,
|
|
3474
|
+
Vector3,
|
|
3475
|
+
Triangle3,
|
|
3305
3476
|
nurbs)
|
|
3306
3477
|
{
|
|
3307
3478
|
"use strict";
|
|
@@ -3318,7 +3489,7 @@ function (X3DParametricGeometryNode,
|
|
|
3318
3489
|
this .weights = [ ];
|
|
3319
3490
|
this .controlPoints = [ ];
|
|
3320
3491
|
this .mesh = { };
|
|
3321
|
-
this .sampleOptions = { resolution: [ ] };
|
|
3492
|
+
this .sampleOptions = { resolution: [ ], closed: [ ] };
|
|
3322
3493
|
this .textUKnots = [ ];
|
|
3323
3494
|
this .textVKnots = [ ];
|
|
3324
3495
|
this .textWeights = [ ];
|
|
@@ -3394,32 +3565,36 @@ function (X3DParametricGeometryNode,
|
|
|
3394
3565
|
|
|
3395
3566
|
return false;
|
|
3396
3567
|
},
|
|
3397
|
-
getUVWeights: function (result,
|
|
3568
|
+
getUVWeights: function (result, uDimension, vDimension, weight)
|
|
3398
3569
|
{
|
|
3399
|
-
return NURBS .getUVWeights (result,
|
|
3570
|
+
return NURBS .getUVWeights (result, uDimension, vDimension, weight);
|
|
3400
3571
|
},
|
|
3401
3572
|
getTexControlPoints: function (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, texCoordNode)
|
|
3402
3573
|
{
|
|
3403
3574
|
return NURBS .getTexControlPoints (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, texCoordNode);
|
|
3404
3575
|
},
|
|
3405
|
-
getUVControlPoints: function (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, controlPointNode)
|
|
3576
|
+
getUVControlPoints: function (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, weights, controlPointNode)
|
|
3406
3577
|
{
|
|
3407
|
-
return NURBS .getUVControlPoints (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, controlPointNode);
|
|
3578
|
+
return NURBS .getUVControlPoints (result, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, weights, controlPointNode);
|
|
3579
|
+
},
|
|
3580
|
+
getTrimmingContours: function ()
|
|
3581
|
+
{
|
|
3582
|
+
return undefined;
|
|
3408
3583
|
},
|
|
3409
3584
|
build: function ()
|
|
3410
3585
|
{
|
|
3411
3586
|
if (this .uOrder_ .getValue () < 2)
|
|
3412
3587
|
return;
|
|
3413
|
-
|
|
3588
|
+
|
|
3414
3589
|
if (this .vOrder_ .getValue () < 2)
|
|
3415
3590
|
return;
|
|
3416
|
-
|
|
3591
|
+
|
|
3417
3592
|
if (this .uDimension_ .getValue () < this .uOrder_ .getValue ())
|
|
3418
3593
|
return;
|
|
3419
|
-
|
|
3594
|
+
|
|
3420
3595
|
if (this .vDimension_ .getValue () < this .vOrder_ .getValue ())
|
|
3421
3596
|
return;
|
|
3422
|
-
|
|
3597
|
+
|
|
3423
3598
|
if (! this .controlPointNode)
|
|
3424
3599
|
return;
|
|
3425
3600
|
|
|
@@ -3433,19 +3608,18 @@ function (X3DParametricGeometryNode,
|
|
|
3433
3608
|
var
|
|
3434
3609
|
uClosed = this .getUClosed (this .uOrder_ .getValue (), this .uDimension_ .getValue (), this .vDimension_ .getValue (), this .uKnot_, this .weight_, this .controlPointNode),
|
|
3435
3610
|
vClosed = this .getVClosed (this .vOrder_ .getValue (), this .uDimension_ .getValue (), this .vDimension_ .getValue (), this .vKnot_, this .weight_, this .controlPointNode),
|
|
3436
|
-
|
|
3611
|
+
weights = this .getUVWeights (this .weights, this .uDimension_ .getValue (), this .vDimension_ .getValue (), this .weight_),
|
|
3612
|
+
controlPoints = this .getUVControlPoints (this .controlPoints, uClosed, vClosed, this .uOrder_ .getValue (), this .vOrder_ .getValue (), this .uDimension_ .getValue (), this .vDimension_ .getValue (), weights, this .controlPointNode);
|
|
3437
3613
|
|
|
3438
3614
|
// Knots
|
|
3439
|
-
|
|
3615
|
+
|
|
3440
3616
|
var
|
|
3441
3617
|
uKnots = this .getKnots (this .uKnots, uClosed, this .uOrder_ .getValue (), this .uDimension_ .getValue (), this .uKnot_),
|
|
3442
3618
|
vKnots = this .getKnots (this .vKnots, vClosed, this .vOrder_ .getValue (), this .vDimension_ .getValue (), this .vKnot_),
|
|
3443
|
-
uScale = uKnots
|
|
3444
|
-
vScale = vKnots
|
|
3445
|
-
|
|
3446
|
-
var weights = this .getUVWeights (this .weights, uClosed, vClosed, this .uOrder_ .getValue (), this .vOrder_ .getValue (), this .uDimension_ .getValue (), this .vDimension_ .getValue (), this .weight_);
|
|
3619
|
+
uScale = uKnots .at (-1) - uKnots [0],
|
|
3620
|
+
vScale = vKnots .at (-1) - vKnots [0];
|
|
3447
3621
|
|
|
3448
|
-
// Initialize NURBS
|
|
3622
|
+
// Initialize NURBS tessellator
|
|
3449
3623
|
|
|
3450
3624
|
var
|
|
3451
3625
|
uDegree = this .uOrder_ .getValue () - 1,
|
|
@@ -3455,35 +3629,35 @@ function (X3DParametricGeometryNode,
|
|
|
3455
3629
|
boundary: ["open", "open"],
|
|
3456
3630
|
degree: [uDegree, vDegree],
|
|
3457
3631
|
knots: [uKnots, vKnots],
|
|
3458
|
-
weights: weights,
|
|
3459
3632
|
points: controlPoints,
|
|
3460
3633
|
debug: false,
|
|
3461
3634
|
});
|
|
3462
3635
|
|
|
3463
3636
|
var sampleOptions = this .sampleOptions;
|
|
3464
3637
|
|
|
3465
|
-
sampleOptions .resolution [0]
|
|
3466
|
-
sampleOptions .resolution [1]
|
|
3467
|
-
sampleOptions .
|
|
3468
|
-
sampleOptions .
|
|
3638
|
+
sampleOptions .resolution [0] = this .getUTessellation (uKnots .length);
|
|
3639
|
+
sampleOptions .resolution [1] = this .getVTessellation (vKnots .length);
|
|
3640
|
+
sampleOptions .closed [0] = uClosed;
|
|
3641
|
+
sampleOptions .closed [1] = vClosed;
|
|
3642
|
+
sampleOptions .domain = undefined;
|
|
3643
|
+
sampleOptions .haveWeights = Boolean (weights);
|
|
3644
|
+
sampleOptions .trimmingContours = this .getTrimmingContours ();
|
|
3469
3645
|
|
|
3470
3646
|
var
|
|
3471
3647
|
mesh = nurbs .sample (this .mesh, surface, sampleOptions),
|
|
3472
3648
|
faces = mesh .faces,
|
|
3473
|
-
normals = mesh .normals,
|
|
3474
3649
|
points = mesh .points,
|
|
3475
|
-
normalArray = this .getNormals (),
|
|
3476
3650
|
vertexArray = this .getVertices ();
|
|
3477
3651
|
|
|
3478
3652
|
for (var i = 0, length = faces .length; i < length; ++ i)
|
|
3479
3653
|
{
|
|
3480
3654
|
var index = faces [i] * 3;
|
|
3481
3655
|
|
|
3482
|
-
normalArray .push (normals [index], normals [index + 1], normals [index + 2]);
|
|
3483
3656
|
vertexArray .push (points [index], points [index + 1], points [index + 2], 1);
|
|
3484
3657
|
}
|
|
3485
3658
|
|
|
3486
3659
|
this .buildNurbsTexCoords (uClosed, vClosed, this .uOrder_ .getValue (), this .vOrder_ .getValue (), uKnots, vKnots, this .uDimension_ .getValue (), this .vDimension_ .getValue (), surface .domain);
|
|
3660
|
+
this .buildNormals (faces, points);
|
|
3487
3661
|
this .setSolid (this .solid_ .getValue ());
|
|
3488
3662
|
this .setCCW (true);
|
|
3489
3663
|
},
|
|
@@ -3497,14 +3671,14 @@ function (X3DParametricGeometryNode,
|
|
|
3497
3671
|
function getDefaultTexKnots (result, knots)
|
|
3498
3672
|
{
|
|
3499
3673
|
result [0] = result [1] = knots [0];
|
|
3500
|
-
result [2] = result [3] = knots
|
|
3674
|
+
result [2] = result [3] = knots .at (-1);
|
|
3501
3675
|
return result;
|
|
3502
3676
|
}
|
|
3503
3677
|
|
|
3504
3678
|
return function (uClosed, vClosed, uOrder, vOrder, uKnots, vKnots, uDimension, vDimension, domain)
|
|
3505
|
-
{
|
|
3679
|
+
{
|
|
3506
3680
|
var sampleOptions = this .sampleOptions;
|
|
3507
|
-
|
|
3681
|
+
|
|
3508
3682
|
if (this .texCoordNode && this .texCoordNode .getSize () === uDimension * vDimension)
|
|
3509
3683
|
{
|
|
3510
3684
|
var
|
|
@@ -3512,7 +3686,6 @@ function (X3DParametricGeometryNode,
|
|
|
3512
3686
|
texVDegree = vOrder - 1,
|
|
3513
3687
|
texUKnots = uKnots,
|
|
3514
3688
|
texVKnots = vKnots,
|
|
3515
|
-
texWeights = undefined,
|
|
3516
3689
|
texControlPoints = this .getTexControlPoints (this .texControlPoints, uClosed, vClosed, uOrder, vOrder, uDimension, vDimension, this .texCoordNode);
|
|
3517
3690
|
}
|
|
3518
3691
|
else if (this .nurbsTexCoordNode && this .nurbsTexCoordNode .isValid ())
|
|
@@ -3523,8 +3696,8 @@ function (X3DParametricGeometryNode,
|
|
|
3523
3696
|
texVDegree = node .vOrder_ .getValue () - 1,
|
|
3524
3697
|
texUKnots = this .getKnots (this .texUKnots, false, node .uOrder_ .getValue (), node .uDimension_ .getValue (), node .uKnot_),
|
|
3525
3698
|
texVKnots = this .getKnots (this .texVKnots, false, node .vOrder_ .getValue (), node .vDimension_ .getValue (), node .vKnot_),
|
|
3526
|
-
texWeights = this .getUVWeights (this .texWeights,
|
|
3527
|
-
texControlPoints = node .getControlPoints ();
|
|
3699
|
+
texWeights = this .getUVWeights (this .texWeights, node .uDimension_ .getValue (), node .vDimension_ .getValue (), node .weight_);
|
|
3700
|
+
texControlPoints = node .getControlPoints (texWeights);
|
|
3528
3701
|
}
|
|
3529
3702
|
else
|
|
3530
3703
|
{
|
|
@@ -3533,45 +3706,110 @@ function (X3DParametricGeometryNode,
|
|
|
3533
3706
|
texVDegree = 1,
|
|
3534
3707
|
texUKnots = getDefaultTexKnots (defaultTexUKnots, uKnots),
|
|
3535
3708
|
texVKnots = getDefaultTexKnots (defaultTexVKnots, vKnots),
|
|
3536
|
-
texWeights = undefined,
|
|
3537
3709
|
texControlPoints = defaultTexControlPoints;
|
|
3538
|
-
|
|
3710
|
+
|
|
3539
3711
|
sampleOptions .domain = domain;
|
|
3540
3712
|
}
|
|
3541
|
-
|
|
3713
|
+
|
|
3542
3714
|
var texSurface = this .texSurface = (this .texSurface || nurbs) ({
|
|
3543
3715
|
boundary: ["open", "open"],
|
|
3544
3716
|
degree: [texUDegree, texVDegree],
|
|
3545
3717
|
knots: [texUKnots, texVKnots],
|
|
3546
|
-
weights: texWeights,
|
|
3547
3718
|
points: texControlPoints,
|
|
3548
3719
|
});
|
|
3549
|
-
|
|
3550
|
-
sampleOptions .
|
|
3551
|
-
|
|
3720
|
+
|
|
3721
|
+
sampleOptions .closed [0] = false;
|
|
3722
|
+
sampleOptions .closed [1] = false;
|
|
3723
|
+
sampleOptions .haveWeights = false;
|
|
3724
|
+
|
|
3552
3725
|
var
|
|
3553
3726
|
texMesh = nurbs .sample (this .texMesh, texSurface, sampleOptions),
|
|
3554
3727
|
faces = texMesh .faces,
|
|
3555
3728
|
points = texMesh .points,
|
|
3556
3729
|
texCoordArray = this .getTexCoords ();
|
|
3557
|
-
|
|
3730
|
+
|
|
3558
3731
|
for (var i = 0, length = faces .length; i < length; ++ i)
|
|
3559
3732
|
{
|
|
3560
3733
|
var index = faces [i] * 4;
|
|
3561
|
-
|
|
3734
|
+
|
|
3562
3735
|
texCoordArray .push (points [index], points [index + 1], points [index + 2], points [index + 3]);
|
|
3563
3736
|
}
|
|
3564
|
-
|
|
3737
|
+
|
|
3565
3738
|
this .getMultiTexCoords () .push (this .getTexCoords ());
|
|
3566
3739
|
};
|
|
3567
3740
|
})(),
|
|
3741
|
+
buildNormals: function (faces, points)
|
|
3742
|
+
{
|
|
3743
|
+
var
|
|
3744
|
+
normals = this .createNormals (faces, points),
|
|
3745
|
+
normalArray = this .getNormals ();
|
|
3746
|
+
|
|
3747
|
+
for (var i = 0, length = normals .length; i < length; ++ i)
|
|
3748
|
+
{
|
|
3749
|
+
var normal = normals [i];
|
|
3750
|
+
|
|
3751
|
+
normalArray .push (normal .x, normal .y, normal .z);
|
|
3752
|
+
}
|
|
3753
|
+
},
|
|
3754
|
+
createNormals: function (faces, points)
|
|
3755
|
+
{
|
|
3756
|
+
var normals = this .createFaceNormals (faces, points);
|
|
3757
|
+
|
|
3758
|
+
var normalIndex = [ ];
|
|
3759
|
+
|
|
3760
|
+
for (var i = 0, length = faces .length; i < length; ++ i)
|
|
3761
|
+
{
|
|
3762
|
+
var
|
|
3763
|
+
index = faces [i],
|
|
3764
|
+
pointIndex = normalIndex [index];
|
|
3765
|
+
|
|
3766
|
+
if (! pointIndex)
|
|
3767
|
+
pointIndex = normalIndex [index] = [ ];
|
|
3768
|
+
|
|
3769
|
+
pointIndex .push (i);
|
|
3770
|
+
}
|
|
3771
|
+
|
|
3772
|
+
return this .refineNormals (normalIndex, normals, Algorithm .radians (85));
|
|
3773
|
+
},
|
|
3774
|
+
createFaceNormals: (function ()
|
|
3775
|
+
{
|
|
3776
|
+
var
|
|
3777
|
+
v1 = new Vector3 (0, 0, 0),
|
|
3778
|
+
v2 = new Vector3 (0, 0, 0),
|
|
3779
|
+
v3 = new Vector3 (0, 0, 0);
|
|
3780
|
+
|
|
3781
|
+
return function (faces, points)
|
|
3782
|
+
{
|
|
3783
|
+
var normals = this .faceNormals || [ ];
|
|
3784
|
+
|
|
3785
|
+
for (var i = 0, length = faces .length; i < length; i += 3)
|
|
3786
|
+
{
|
|
3787
|
+
var
|
|
3788
|
+
index1 = faces [i] * 3,
|
|
3789
|
+
index2 = faces [i + 1] * 3,
|
|
3790
|
+
index3 = faces [i + 2] * 3;
|
|
3791
|
+
|
|
3792
|
+
v1 .set (points [index1], points [index1 + 1], points [index1 + 2]);
|
|
3793
|
+
v2 .set (points [index2], points [index2 + 1], points [index2 + 2]);
|
|
3794
|
+
v3 .set (points [index3], points [index3 + 1], points [index3 + 2]);
|
|
3795
|
+
|
|
3796
|
+
var normal = Triangle3 .normal (v1, v2 ,v3, normals [i] || new Vector3 (0, 0, 0));
|
|
3797
|
+
|
|
3798
|
+
normals [i] = normal;
|
|
3799
|
+
normals [i + 1] = normal;
|
|
3800
|
+
normals [i + 2] = normal;
|
|
3801
|
+
}
|
|
3802
|
+
|
|
3803
|
+
normals .length = length;
|
|
3804
|
+
|
|
3805
|
+
return normals;
|
|
3806
|
+
};
|
|
3807
|
+
})(),
|
|
3568
3808
|
});
|
|
3569
3809
|
|
|
3570
3810
|
return X3DNurbsSurfaceGeometryNode;
|
|
3571
3811
|
});
|
|
3572
3812
|
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
3813
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
3576
3814
|
*******************************************************************************
|
|
3577
3815
|
*
|
|
@@ -3745,8 +3983,8 @@ define ('x_ite/Components/NURBS/NurbsPositionInterpolator',[
|
|
|
3745
3983
|
function (Fields,
|
|
3746
3984
|
X3DFieldDefinition,
|
|
3747
3985
|
FieldDefinitionArray,
|
|
3748
|
-
X3DChildNode,
|
|
3749
|
-
PositionInterpolator,
|
|
3986
|
+
X3DChildNode,
|
|
3987
|
+
PositionInterpolator,
|
|
3750
3988
|
X3DConstants,
|
|
3751
3989
|
X3DCast,
|
|
3752
3990
|
NURBS,
|
|
@@ -3759,7 +3997,7 @@ function (Fields,
|
|
|
3759
3997
|
X3DChildNode .call (this, executionContext);
|
|
3760
3998
|
|
|
3761
3999
|
this .addType (X3DConstants .NurbsPositionInterpolator);
|
|
3762
|
-
|
|
4000
|
+
|
|
3763
4001
|
this .addChildObjects ("rebuild", new Fields .SFTime ());
|
|
3764
4002
|
|
|
3765
4003
|
this .interpolator = new PositionInterpolator (executionContext);
|
|
@@ -3804,7 +4042,7 @@ function (Fields,
|
|
|
3804
4042
|
this .controlPoint_ .addInterest ("set_controlPoint__", this);
|
|
3805
4043
|
|
|
3806
4044
|
this .rebuild_ .addInterest ("build", this);
|
|
3807
|
-
|
|
4045
|
+
|
|
3808
4046
|
this .set_fraction_ .addFieldInterest (this .interpolator .set_fraction_);
|
|
3809
4047
|
this .interpolator .value_changed_ .addFieldInterest (this .value_changed_);
|
|
3810
4048
|
|
|
@@ -3832,13 +4070,13 @@ function (Fields,
|
|
|
3832
4070
|
{
|
|
3833
4071
|
return NURBS .getKnots (result, closed, order, dimension, knot);
|
|
3834
4072
|
},
|
|
3835
|
-
getWeights: function (result,
|
|
4073
|
+
getWeights: function (result, dimension, weight)
|
|
3836
4074
|
{
|
|
3837
|
-
return NURBS .getWeights (result,
|
|
4075
|
+
return NURBS .getWeights (result, dimension, weight);
|
|
3838
4076
|
},
|
|
3839
|
-
getControlPoints: function (result, closed, order, controlPointNode)
|
|
4077
|
+
getControlPoints: function (result, closed, order, weights, controlPointNode)
|
|
3840
4078
|
{
|
|
3841
|
-
return NURBS .getControlPoints (result, closed, order, controlPointNode);
|
|
4079
|
+
return NURBS .getControlPoints (result, closed, order, weights, controlPointNode);
|
|
3842
4080
|
},
|
|
3843
4081
|
requestRebuild: function ()
|
|
3844
4082
|
{
|
|
@@ -3848,10 +4086,10 @@ function (Fields,
|
|
|
3848
4086
|
{
|
|
3849
4087
|
if (this .order_ .getValue () < 2)
|
|
3850
4088
|
return;
|
|
3851
|
-
|
|
4089
|
+
|
|
3852
4090
|
if (! this .controlPointNode)
|
|
3853
4091
|
return;
|
|
3854
|
-
|
|
4092
|
+
|
|
3855
4093
|
if (this .controlPointNode .getSize () < this .order_ .getValue ())
|
|
3856
4094
|
return;
|
|
3857
4095
|
|
|
@@ -3859,17 +4097,16 @@ function (Fields,
|
|
|
3859
4097
|
|
|
3860
4098
|
var
|
|
3861
4099
|
closed = this .getClosed (this .order_ .getValue (), this .knot_, this .weight_, this .controlPointNode),
|
|
3862
|
-
|
|
3863
|
-
|
|
4100
|
+
weights = this .getWeights (this .weights, this .controlPointNode .getSize (), this .weight_),
|
|
4101
|
+
controlPoints = this .getControlPoints (this .controlPoints, closed, this .order_ .getValue (), weights, this .controlPointNode);
|
|
4102
|
+
|
|
3864
4103
|
// Knots
|
|
3865
|
-
|
|
4104
|
+
|
|
3866
4105
|
var
|
|
3867
4106
|
knots = this .getKnots (this .knots, closed, this .order_ .getValue (), this .controlPointNode .getSize (), this .knot_),
|
|
3868
|
-
scale = knots
|
|
4107
|
+
scale = knots .at (-1) - knots [0];
|
|
3869
4108
|
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
// Initialize NURBS tesselllator
|
|
4109
|
+
// Initialize NURBS tessellator
|
|
3873
4110
|
|
|
3874
4111
|
var degree = this .order_ .getValue () - 1;
|
|
3875
4112
|
|
|
@@ -3877,11 +4114,12 @@ function (Fields,
|
|
|
3877
4114
|
boundary: ["open"],
|
|
3878
4115
|
degree: [degree],
|
|
3879
4116
|
knots: [knots],
|
|
3880
|
-
weights: weights,
|
|
3881
4117
|
points: controlPoints,
|
|
3882
4118
|
debug: false,
|
|
3883
4119
|
});
|
|
3884
4120
|
|
|
4121
|
+
this .sampleOptions .haveWeights = Boolean (weights);
|
|
4122
|
+
|
|
3885
4123
|
var
|
|
3886
4124
|
mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
|
|
3887
4125
|
points = mesh .points,
|
|
@@ -3901,8 +4139,6 @@ function (Fields,
|
|
|
3901
4139
|
return NurbsPositionInterpolator;
|
|
3902
4140
|
});
|
|
3903
4141
|
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
4142
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
3907
4143
|
*******************************************************************************
|
|
3908
4144
|
*
|
|
@@ -3964,8 +4200,8 @@ define ('x_ite/Components/NURBS/NurbsSet',[
|
|
|
3964
4200
|
function (Fields,
|
|
3965
4201
|
X3DFieldDefinition,
|
|
3966
4202
|
FieldDefinitionArray,
|
|
3967
|
-
X3DChildNode,
|
|
3968
|
-
X3DBoundedObject,
|
|
4203
|
+
X3DChildNode,
|
|
4204
|
+
X3DBoundedObject,
|
|
3969
4205
|
X3DConstants,
|
|
3970
4206
|
X3DCast)
|
|
3971
4207
|
{
|
|
@@ -4000,6 +4236,8 @@ function (Fields,
|
|
|
4000
4236
|
fieldDefinitions: new FieldDefinitionArray ([
|
|
4001
4237
|
new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
|
|
4002
4238
|
new X3DFieldDefinition (X3DConstants .inputOutput, "tessellationScale", new Fields .SFFloat (1)),
|
|
4239
|
+
new X3DFieldDefinition (X3DConstants .inputOutput, "visible", new Fields .SFBool (true)),
|
|
4240
|
+
new X3DFieldDefinition (X3DConstants .inputOutput, "bboxDisplay", new Fields .SFBool ()),
|
|
4003
4241
|
new X3DFieldDefinition (X3DConstants .initializeOnly, "bboxSize", new Fields .SFVec3f (-1, -1, -1)),
|
|
4004
4242
|
new X3DFieldDefinition (X3DConstants .initializeOnly, "bboxCenter", new Fields .SFVec3f ()),
|
|
4005
4243
|
new X3DFieldDefinition (X3DConstants .inputOnly, "addGeometry", new Fields .MFNode ()),
|
|
@@ -4027,9 +4265,20 @@ function (Fields,
|
|
|
4027
4265
|
this .addGeometry_ .addInterest ("set_addGeometry__", this);
|
|
4028
4266
|
this .removeGeometry_ .addInterest ("set_removeGeometry__", this);
|
|
4029
4267
|
this .geometry_ .addInterest ("set_geometry__", this);
|
|
4030
|
-
|
|
4268
|
+
|
|
4031
4269
|
this .set_geometry__ ();
|
|
4032
4270
|
},
|
|
4271
|
+
getBBox: function (bbox, shadow)
|
|
4272
|
+
{
|
|
4273
|
+
// Add bounding boxes
|
|
4274
|
+
|
|
4275
|
+
for (var i = 0, length = this .geometryNodes .length; i < length; ++ i)
|
|
4276
|
+
{
|
|
4277
|
+
bbox .add (this .geometryNodes [i] .getBBox ());
|
|
4278
|
+
}
|
|
4279
|
+
|
|
4280
|
+
return bbox;
|
|
4281
|
+
},
|
|
4033
4282
|
set_tessellationScale__: function ()
|
|
4034
4283
|
{
|
|
4035
4284
|
var tessellationScale = Math .max (0, this .tessellationScale_ .getValue ());
|
|
@@ -4066,7 +4315,7 @@ function (Fields,
|
|
|
4066
4315
|
for (var i = 0, length = this .geometry_ .length; i < length; ++ i)
|
|
4067
4316
|
{
|
|
4068
4317
|
var geometryNode = X3DCast (X3DConstants .X3DNurbsSurfaceGeometryNode, this .geometry_ [i]);
|
|
4069
|
-
|
|
4318
|
+
|
|
4070
4319
|
if (geometryNode)
|
|
4071
4320
|
this .geometryNodes .push (geometryNode);
|
|
4072
4321
|
}
|
|
@@ -4078,8 +4327,6 @@ function (Fields,
|
|
|
4078
4327
|
return NurbsSet;
|
|
4079
4328
|
});
|
|
4080
4329
|
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
4330
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
4084
4331
|
*******************************************************************************
|
|
4085
4332
|
*
|
|
@@ -4138,26 +4385,26 @@ define ('standard/Math/Geometry/Triangle2',[],function ()
|
|
|
4138
4385
|
{
|
|
4139
4386
|
// https://en.wikipedia.org/wiki/Barycentric_coordinate_system
|
|
4140
4387
|
|
|
4141
|
-
|
|
4388
|
+
const det = (b.y - c.y) * (a.x - c.x) + (c.x - b.x) * (a.y - c.y);
|
|
4142
4389
|
|
|
4143
4390
|
if (det == 0)
|
|
4144
4391
|
return false;
|
|
4145
4392
|
|
|
4146
|
-
|
|
4393
|
+
const u = ((b.y - c.y) * (point .x - c.x) + (c.x - b.x) * (point .y - c.y)) / det;
|
|
4147
4394
|
|
|
4148
4395
|
if (u < 0 || u > 1)
|
|
4149
4396
|
return false;
|
|
4150
4397
|
|
|
4151
|
-
|
|
4398
|
+
const v = ((c.y - a.y) * (point .x - c.x) + (a.x - c.x) * (point .y - c.y)) / det;
|
|
4152
4399
|
|
|
4153
4400
|
if (v < 0 || v > 1)
|
|
4154
4401
|
return false;
|
|
4155
4402
|
|
|
4156
|
-
|
|
4403
|
+
const t = 1 - u - v;
|
|
4157
4404
|
|
|
4158
4405
|
if (t < 0 || t > 1)
|
|
4159
4406
|
return false;
|
|
4160
|
-
|
|
4407
|
+
|
|
4161
4408
|
return true;
|
|
4162
4409
|
},
|
|
4163
4410
|
};
|
|
@@ -4509,8 +4756,8 @@ function (Fields,
|
|
|
4509
4756
|
|
|
4510
4757
|
var extrusion = this .extrusion;
|
|
4511
4758
|
|
|
4512
|
-
extrusion .crossSection_ = this .crossSectionCurveNode .tessellate ();
|
|
4513
|
-
extrusion .spine_ = this .trajectoryCurveNode .tessellate ();
|
|
4759
|
+
extrusion .crossSection_ = this .crossSectionCurveNode .tessellate (0);
|
|
4760
|
+
extrusion .spine_ = this .trajectoryCurveNode .tessellate (0);
|
|
4514
4761
|
|
|
4515
4762
|
extrusion .rebuild ();
|
|
4516
4763
|
|
|
@@ -4692,8 +4939,8 @@ function (Fields,
|
|
|
4692
4939
|
|
|
4693
4940
|
var extrusion = this .extrusion;
|
|
4694
4941
|
|
|
4695
|
-
extrusion .crossSection_ = this .profileCurveNode .tessellate ();
|
|
4696
|
-
extrusion .spine_ = this .trajectoryCurveNode .tessellate (
|
|
4942
|
+
extrusion .crossSection_ = this .profileCurveNode .tessellate (0);
|
|
4943
|
+
extrusion .spine_ = this .trajectoryCurveNode .tessellate (1);
|
|
4697
4944
|
|
|
4698
4945
|
extrusion .rebuild ();
|
|
4699
4946
|
|
|
@@ -4782,8 +5029,8 @@ define ('x_ite/Components/NURBS/NurbsTextureCoordinate',[
|
|
|
4782
5029
|
function (Fields,
|
|
4783
5030
|
X3DFieldDefinition,
|
|
4784
5031
|
FieldDefinitionArray,
|
|
4785
|
-
X3DNode,
|
|
4786
|
-
X3DConstants,
|
|
5032
|
+
X3DNode,
|
|
5033
|
+
X3DConstants,
|
|
4787
5034
|
Vector4)
|
|
4788
5035
|
{
|
|
4789
5036
|
"use strict";
|
|
@@ -4794,7 +5041,7 @@ function (Fields,
|
|
|
4794
5041
|
|
|
4795
5042
|
this .addType (X3DConstants .NurbsTextureCoordinate);
|
|
4796
5043
|
|
|
4797
|
-
this .
|
|
5044
|
+
this .controlPoints = [ ];
|
|
4798
5045
|
}
|
|
4799
5046
|
|
|
4800
5047
|
NurbsTextureCoordinate .prototype = Object .assign (Object .create (X3DNode .prototype),
|
|
@@ -4827,42 +5074,43 @@ function (Fields,
|
|
|
4827
5074
|
{
|
|
4828
5075
|
X3DNode .prototype .initialize .call (this);
|
|
4829
5076
|
},
|
|
4830
|
-
getControlPoints: function ()
|
|
5077
|
+
getControlPoints: function (texWeights)
|
|
4831
5078
|
{
|
|
4832
5079
|
var
|
|
4833
5080
|
controlPointArray = this .controlPoint_ .getValue (),
|
|
4834
|
-
|
|
5081
|
+
controlPoints = this .controlPoints;
|
|
4835
5082
|
|
|
4836
5083
|
for (var u = 0, uDimension = this .uDimension_ .getValue (); u < uDimension; ++ u)
|
|
4837
5084
|
{
|
|
4838
|
-
var cp =
|
|
5085
|
+
var cp = controlPoints [u];
|
|
4839
5086
|
|
|
4840
5087
|
if (! cp)
|
|
4841
|
-
cp =
|
|
5088
|
+
cp = controlPoints [u] = [ ];
|
|
4842
5089
|
|
|
4843
5090
|
for (var v = 0, vDimension = this .vDimension_ .getValue (); v < vDimension; ++ v)
|
|
4844
5091
|
{
|
|
4845
5092
|
var
|
|
4846
|
-
|
|
4847
|
-
|
|
5093
|
+
index = v * uDimension + u,
|
|
5094
|
+
p = cp [v] || new Vector4 (),
|
|
5095
|
+
i = index * 2;
|
|
4848
5096
|
|
|
4849
|
-
cp [v] = p .set (controlPointArray [i], controlPointArray [i + 1], 0, 1);
|
|
5097
|
+
cp [v] = p .set (controlPointArray [i], controlPointArray [i + 1], 0, texWeights ? texWeights [index] : 1);
|
|
4850
5098
|
}
|
|
4851
5099
|
}
|
|
4852
5100
|
|
|
4853
|
-
return
|
|
5101
|
+
return controlPoints;
|
|
4854
5102
|
},
|
|
4855
5103
|
isValid: function ()
|
|
4856
5104
|
{
|
|
4857
5105
|
if (this .uOrder_ .getValue () < 2)
|
|
4858
5106
|
return false;
|
|
4859
|
-
|
|
5107
|
+
|
|
4860
5108
|
if (this .vOrder_ .getValue () < 2)
|
|
4861
5109
|
return false;
|
|
4862
|
-
|
|
5110
|
+
|
|
4863
5111
|
if (this .uDimension_ .getValue () < this .uOrder_ .getValue ())
|
|
4864
5112
|
return false;
|
|
4865
|
-
|
|
5113
|
+
|
|
4866
5114
|
if (this .vDimension_ .getValue () < this .vOrder_ .getValue ())
|
|
4867
5115
|
return false;
|
|
4868
5116
|
|
|
@@ -4876,8 +5124,6 @@ function (Fields,
|
|
|
4876
5124
|
return NurbsTextureCoordinate;
|
|
4877
5125
|
});
|
|
4878
5126
|
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
5127
|
/* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
|
|
4882
5128
|
*******************************************************************************
|
|
4883
5129
|
*
|
|
@@ -4933,12 +5179,14 @@ define ('x_ite/Components/NURBS/NurbsTrimmedSurface',[
|
|
|
4933
5179
|
"x_ite/Basic/FieldDefinitionArray",
|
|
4934
5180
|
"x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode",
|
|
4935
5181
|
"x_ite/Bits/X3DConstants",
|
|
5182
|
+
"x_ite/Bits/X3DCast",
|
|
4936
5183
|
],
|
|
4937
5184
|
function (Fields,
|
|
4938
5185
|
X3DFieldDefinition,
|
|
4939
5186
|
FieldDefinitionArray,
|
|
4940
5187
|
X3DNurbsSurfaceGeometryNode,
|
|
4941
|
-
X3DConstants
|
|
5188
|
+
X3DConstants,
|
|
5189
|
+
X3DCast)
|
|
4942
5190
|
{
|
|
4943
5191
|
"use strict";
|
|
4944
5192
|
|
|
@@ -4947,6 +5195,8 @@ function (Fields,
|
|
|
4947
5195
|
X3DNurbsSurfaceGeometryNode .call (this, executionContext);
|
|
4948
5196
|
|
|
4949
5197
|
this .addType (X3DConstants .NurbsTrimmedSurface);
|
|
5198
|
+
|
|
5199
|
+
this .trimmingContourNodes = [ ];
|
|
4950
5200
|
}
|
|
4951
5201
|
|
|
4952
5202
|
NurbsTrimmedSurface .prototype = Object .assign (Object .create (X3DNurbsSurfaceGeometryNode .prototype),
|
|
@@ -4984,6 +5234,39 @@ function (Fields,
|
|
|
4984
5234
|
{
|
|
4985
5235
|
return "geometry";
|
|
4986
5236
|
},
|
|
5237
|
+
initialize: function ()
|
|
5238
|
+
{
|
|
5239
|
+
X3DNurbsSurfaceGeometryNode .prototype .initialize .call (this);
|
|
5240
|
+
|
|
5241
|
+
this .trimmingContour_ .addInterest ("set_trimmingContour__", this);
|
|
5242
|
+
|
|
5243
|
+
this .set_trimmingContour__ ();
|
|
5244
|
+
},
|
|
5245
|
+
set_trimmingContour__: function ()
|
|
5246
|
+
{
|
|
5247
|
+
var trimmingContourNodes = this .trimmingContourNodes;
|
|
5248
|
+
|
|
5249
|
+
trimmingContourNodes .length = 0;
|
|
5250
|
+
|
|
5251
|
+
for (var i = 0, length = this .trimmingContour_ .length; i < length; ++ i)
|
|
5252
|
+
{
|
|
5253
|
+
var trimmingContourNode = X3DCast (X3DConstants .Contour2D, this .trimmingContour_ [i]);
|
|
5254
|
+
|
|
5255
|
+
if (trimmingContourNode)
|
|
5256
|
+
trimmingContourNodes .push (trimmingContourNode);
|
|
5257
|
+
}
|
|
5258
|
+
},
|
|
5259
|
+
getTrimmingContours: function ()
|
|
5260
|
+
{
|
|
5261
|
+
var
|
|
5262
|
+
trimmingContourNodes = this .trimmingContourNodes,
|
|
5263
|
+
trimmingContours = [ ];
|
|
5264
|
+
|
|
5265
|
+
for (var i = 0, length = trimmingContourNodes .length; i < length; ++ i)
|
|
5266
|
+
trimmingContourNodes [i] .addTrimmingContour (trimmingContours);
|
|
5267
|
+
|
|
5268
|
+
return trimmingContours;
|
|
5269
|
+
},
|
|
4987
5270
|
});
|
|
4988
5271
|
|
|
4989
5272
|
return NurbsTrimmedSurface;
|
|
@@ -5040,7 +5323,7 @@ function (Fields,
|
|
|
5040
5323
|
******************************************************************************/
|
|
5041
5324
|
|
|
5042
5325
|
|
|
5043
|
-
define ([
|
|
5326
|
+
define (require .getComponentUrl ("nurbs"), [
|
|
5044
5327
|
"x_ite/Components",
|
|
5045
5328
|
"x_ite/Components/NURBS/Contour2D",
|
|
5046
5329
|
"x_ite/Components/NURBS/ContourPolyline2D",
|
|
@@ -5111,4 +5394,5 @@ function (Components,
|
|
|
5111
5394
|
|
|
5112
5395
|
|
|
5113
5396
|
|
|
5114
|
-
}
|
|
5397
|
+
})
|
|
5398
|
+
(typeof module === "object" ? module : undefined, typeof require === "function" ? require : undefined);
|