From d9914fe272261efe032d7ad03fcc9758fc91ad63 Mon Sep 17 00:00:00 2001 From: Adnane Belmadiaf Date: Wed, 15 Jun 2022 01:02:19 +0200 Subject: [PATCH] feat(GLTFImporter): add GLTFImporter --- .../content/docs/gallery/GLTFImporter.jpg | Bin 0 -> 30479 bytes Documentation/content/examples/index.md | 778 +++++++++--------- .../IO/Geometry/GLTFImporter/Animations.js | 256 ++++++ Sources/IO/Geometry/GLTFImporter/Constants.js | 85 ++ Sources/IO/Geometry/GLTFImporter/Decoder.js | 78 ++ .../IO/Geometry/GLTFImporter/Extensions.js | 103 +++ .../GLTFImporter/ORMTexture.worker.js | 35 + Sources/IO/Geometry/GLTFImporter/Parser.js | 505 ++++++++++++ Sources/IO/Geometry/GLTFImporter/Reader.js | 613 ++++++++++++++ Sources/IO/Geometry/GLTFImporter/Utils.js | 195 +++++ .../GLTFImporter/example/controller.html | 89 ++ .../IO/Geometry/GLTFImporter/example/index.js | 347 ++++++++ Sources/IO/Geometry/GLTFImporter/index.d.ts | 266 ++++++ Sources/IO/Geometry/GLTFImporter/index.js | 277 +++++++ Sources/IO/Geometry/index.js | 2 + 15 files changed, 3241 insertions(+), 388 deletions(-) create mode 100644 Documentation/content/docs/gallery/GLTFImporter.jpg create mode 100644 Sources/IO/Geometry/GLTFImporter/Animations.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Constants.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Decoder.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Extensions.js create mode 100644 Sources/IO/Geometry/GLTFImporter/ORMTexture.worker.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Parser.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Reader.js create mode 100644 Sources/IO/Geometry/GLTFImporter/Utils.js create mode 100644 Sources/IO/Geometry/GLTFImporter/example/controller.html create mode 100644 Sources/IO/Geometry/GLTFImporter/example/index.js create mode 100644 Sources/IO/Geometry/GLTFImporter/index.d.ts create mode 100644 Sources/IO/Geometry/GLTFImporter/index.js diff --git a/Documentation/content/docs/gallery/GLTFImporter.jpg b/Documentation/content/docs/gallery/GLTFImporter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b7b6be47900f951706a8d3c02dae96562f224cd GIT binary patch literal 30479 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 w6 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 Rjs - .categories { - columns: 2 200px; - column-gap: 1rem; - } - - .category { - break-inside: avoid; - display: inline-block; - width: 100%; - } - - .categories br { - display: none; - } - - .category ul { - margin-top: 0; - } - - .gallery img { - width: 32%; - display: inline-block; - padding: 2px; - } - - .gallery br { - display: none; - } - - -This will allow you to see the some live code running in your browser. Just pick a class on the left menu or in the category grouping below. The [Simple Cone](SimpleCone.html) is a good example to start with if you are new to VTK. - - - -[MultiSliceImageMapper]: ../docs/gallery/MultiSliceImageMapper.jpg -[PiecewiseGaussianWidget]: ../docs/gallery/PiecewiseGaussianWidget.jpg -[VolumeContour]: ../docs/gallery/VolumeContour.jpg - -# Applications - - - -[GeometryViewerBrainBloodVessels]: ../docs/gallery/GeometryViewerBrainBloodVessels2.jpg -[OBJViewerFerrari]: ../docs/gallery/OBJViewerFerrari.jpg -[SceneExplorerVesselWithStreamlines]: ../docs/gallery/SceneExplorerVesselWithStreamlines.jpg -[SkyboxViewer]: ../docs/gallery/SkyboxViewer.jpg -[VolumeViewer]: ../docs/gallery/VolumeViewer.jpg -[QuadView]: ../docs/gallery/QuadView.jpg - -# Geometry - -