From 75bf92a67ff8c7d5b7eedf68addfc167426ca6cb Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Mon, 11 Sep 2017 23:24:21 +1200 Subject: [PATCH] Added map image to lobby screen - Lobby screen has map of the course - Map resizes with window Tags: #story[1245] --- .../LICENSE-3dsModelImporterJFX.txt | 52 +- .../LICENSE-ColModelImporterJFX.txt | 52 +- .../LICENSE-FxmlModelImporterJFX.txt | 52 +- .../LICENSE-ObjModelImporterJFX.txt | 52 +- .../LICENSE-StlMeshImporterJFX.txt | 52 +- .../LICENSE-X3dModelImporterJFX.txt | 52 +- .../apidoc/allclasses-frame.html | 82 +- .../apidoc/allclasses-noframe.html | 82 +- .../jfx/importer/FilePath.html | 644 ++-- .../jfx/importer/ImportException.html | 598 ++-- .../jfx/importer/Importer.html | 816 ++--- .../jfx/importer/ModelImporter.html | 714 ++-- .../jfx/importer/Viewpoint.html | 1366 +++---- .../importer/col/ColAsset.Contributor.html | 748 ++-- .../col/ColAsset.GeographicLocation.html | 630 ++-- .../jfx/importer/col/ColAsset.UpAxis.html | 746 ++-- .../jfx/importer/col/ColAsset.html | 1030 +++--- .../jfx/importer/col/ColImportOption.html | 892 ++--- .../jfx/importer/col/ColModelImporter.html | 1752 ++++----- .../jfx/importer/col/package-frame.html | 56 +- .../jfx/importer/col/package-summary.html | 1792 +++++----- .../jfx/importer/col/package-tree.html | 308 +- .../jfx/importer/fxml/FxmlImportOption.html | 858 ++--- .../jfx/importer/fxml/FxmlModelImporter.html | 1704 ++++----- .../jfx/importer/fxml/package-frame.html | 48 +- .../jfx/importer/fxml/package-summary.html | 482 +-- .../jfx/importer/fxml/package-tree.html | 300 +- .../jfx/importer/obj/ObjImportOption.html | 782 ++-- .../jfx/importer/obj/ObjModelImporter.html | 1616 ++++----- .../jfx/importer/obj/package-frame.html | 48 +- .../jfx/importer/obj/package-summary.html | 724 ++-- .../jfx/importer/obj/package-tree.html | 300 +- .../jfx/importer/package-frame.html | 60 +- .../jfx/importer/package-summary.html | 414 +-- .../jfx/importer/package-tree.html | 320 +- .../jfx/importer/stl/StlImportOption.html | 742 ++-- .../jfx/importer/stl/StlMeshImporter.html | 1306 +++---- .../jfx/importer/stl/package-frame.html | 48 +- .../jfx/importer/stl/package-summary.html | 362 +- .../jfx/importer/stl/package-tree.html | 300 +- .../jfx/importer/tds/TdsImportOption.html | 782 ++-- .../jfx/importer/tds/TdsModelImporter.html | 1622 ++++----- .../jfx/importer/tds/package-frame.html | 48 +- .../jfx/importer/tds/package-summary.html | 376 +- .../jfx/importer/tds/package-tree.html | 300 +- .../jfx/importer/x3d/X3dHead.UnitCat.html | 766 ++-- .../jfx/importer/x3d/X3dHead.html | 706 ++-- .../jfx/importer/x3d/X3dImportOption.html | 862 ++--- .../jfx/importer/x3d/X3dModelImporter.html | 1808 +++++----- .../jfx/importer/x3d/package-frame.html | 52 +- .../jfx/importer/x3d/package-summary.html | 3174 ++++++++--------- .../jfx/importer/x3d/package-tree.html | 304 +- .../apidoc/constant-values.html | 250 +- .../apidoc/deprecated-list.html | 250 +- .../apidoc/help-doc.html | 452 +-- .../apidoc/index-files/index-1.html | 486 +-- .../apidoc/index-files/index-10.html | 416 +-- .../apidoc/index-files/index-11.html | 298 +- .../apidoc/index-files/index-2.html | 302 +- .../apidoc/index-files/index-3.html | 1030 +++--- .../apidoc/index-files/index-4.html | 308 +- .../apidoc/index-files/index-5.html | 266 +- .../apidoc/index-files/index-6.html | 336 +- .../apidoc/index-files/index-7.html | 424 +-- .../apidoc/index-files/index-8.html | 592 +-- .../apidoc/index-files/index-9.html | 280 +- .../apidoc/index.html | 148 +- .../apidoc/overview-frame.html | 56 +- .../apidoc/overview-summary.html | 784 ++-- .../apidoc/overview-tree.html | 390 +- .../apidoc/package-list | 14 +- .../apidoc/script.js | 60 +- .../apidoc/serialized-form.html | 284 +- .../java/seng302/visualiser/GameView.java | 20 +- .../controllers/LobbyController.java | 51 + src/main/resources/css/LobbyView.css | 7 +- src/main/resources/images/mapbg.jpg | Bin 0 -> 360105 bytes 77 files changed, 20678 insertions(+), 20608 deletions(-) create mode 100644 src/main/resources/images/mapbg.jpg diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt index d45a8aa5..c9111c50 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt @@ -1,26 +1,26 @@ - -3dsModelImporterJFX - jim3dsModelImporterJFX.jar - -Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +3dsModelImporterJFX - jim3dsModelImporterJFX.jar + +Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ColModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ColModelImporterJFX.txt index 37a3b3b8..ca16709c 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ColModelImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ColModelImporterJFX.txt @@ -1,26 +1,26 @@ - -ColModelImporterJFX - jimColModelImporterJFX.jar - -Copyright (c) 2013-2014 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +ColModelImporterJFX - jimColModelImporterJFX.jar + +Copyright (c) 2013-2014 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-FxmlModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-FxmlModelImporterJFX.txt index f75c5dcc..45a773b5 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-FxmlModelImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-FxmlModelImporterJFX.txt @@ -1,26 +1,26 @@ - -FXMLModelImporterJFX - jimFxmlModelImporterJFX.jar - -Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +FXMLModelImporterJFX - jimFxmlModelImporterJFX.jar + +Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ObjModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ObjModelImporterJFX.txt index 7bf42eaa..aaa2332d 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ObjModelImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ObjModelImporterJFX.txt @@ -1,26 +1,26 @@ - -ObjModelImporterJFX - jimObjModelImporterJFX.jar - -Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +ObjModelImporterJFX - jimObjModelImporterJFX.jar + +Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-StlMeshImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-StlMeshImporterJFX.txt index 1911835a..886cbbc3 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-StlMeshImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-StlMeshImporterJFX.txt @@ -1,26 +1,26 @@ - -StlMeshImporterJFX - jimStlMeshImporterJFX.jar - -Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +StlMeshImporterJFX - jimStlMeshImporterJFX.jar + +Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-X3dModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-X3dModelImporterJFX.txt index 1ac72c0c..6b22d057 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-X3dModelImporterJFX.txt +++ b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-X3dModelImporterJFX.txt @@ -1,26 +1,26 @@ - -X3dModelImporterJFX - jimX3dModelImporterJFX.jar - -Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. - -InteractiveMesh e.K. -August Lammersdorf -Hauptstraße 28d -85737 Ismaning -Germany / Munich Area -www.InteractiveMesh.com/org - -License Agreement - -By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. - -The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. - -You may not remove any copyright, license, or other proprietary notice from the Software. - -No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. - -THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. - -IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - + +X3dModelImporterJFX - jimX3dModelImporterJFX.jar + +Copyright (c) 2013 August Lammersdorf, InteractiveMesh e.K.. All rights reserved. + +InteractiveMesh e.K. +August Lammersdorf +Hauptstraße 28d +85737 Ismaning +Germany / Munich Area +www.InteractiveMesh.com/org + +License Agreement + +By installing, copying, or otherwise using the Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not install or use the Software. + +The copyright holder grants to you a non-exclusive, perpetual, irrevocable, and worldwide right to use the Software. It is provided to you free of charge for academic, commercial, and personal use. + +You may not remove any copyright, license, or other proprietary notice from the Software. + +No parts of the Software may be reproduced in part or in whole. You may not reverse engineer, decompile, or disassemble the Software or prepare derivative works of it. + +THIS PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING THE PROGRAM AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE THE PROGRAM, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-frame.html index 271d8a21..1e663341 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-frame.html @@ -1,41 +1,41 @@ - - - - - -All Classes (JavaFX 3D Model Importers) - - - - - -

All Classes

-
- -
- - + + + + + +All Classes (JavaFX 3D Model Importers) + + + + + +

All Classes

+
+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-noframe.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-noframe.html index 51137bcd..9c43428a 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-noframe.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-noframe.html @@ -1,41 +1,41 @@ - - - - - -All Classes (JavaFX 3D Model Importers) - - - - - -

All Classes

-
- -
- - + + + + + +All Classes (JavaFX 3D Model Importers) + + + + + +

All Classes

+
+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/FilePath.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/FilePath.html index d4d77e17..21cd4c11 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/FilePath.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/FilePath.html @@ -1,322 +1,322 @@ - - - - - -FilePath (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class FilePath

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      FilePath(java.lang.String importedPath, - java.net.URL absolutePath) -
      A FilePath object represents the paths of a referenced file - by the string as read from the imported 3D model file and - by the corresponding absolute Uniform Resource Locator (URL) object.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.net.URLgetAbsolutePath() -
      Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
      -
      java.lang.StringgetImportedPath() -
      Gets the path string of a referenced file as read from the imported 3D model file.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        FilePath

        -
        public FilePath(java.lang.String importedPath,
        -                java.net.URL absolutePath)
        -
        A FilePath object represents the paths of a referenced file - by the string as read from the imported 3D model file and - by the corresponding absolute Uniform Resource Locator (URL) object.
        -
        -
        Parameters:
        -
        importedPath - the imported file path
        -
        absolutePath - the absolute file path
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getImportedPath

        -
        public java.lang.String getImportedPath()
        -
        Gets the path string of a referenced file as read from the imported 3D model file. - This is typically a relative path with each name separated from the next - by the separator character '/'.
        -
        -
        Returns:
        -
        the imported file path
        -
        -
      • -
      - - - -
        -
      • -

        getAbsolutePath

        -
        public java.net.URL getAbsolutePath()
        -
        Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
        -
        -
        Returns:
        -
        the absolute file path
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +FilePath (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer
+

Class FilePath

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      FilePath(java.lang.String importedPath, + java.net.URL absolutePath) +
      A FilePath object represents the paths of a referenced file + by the string as read from the imported 3D model file and + by the corresponding absolute Uniform Resource Locator (URL) object.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.net.URLgetAbsolutePath() +
      Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
      +
      java.lang.StringgetImportedPath() +
      Gets the path string of a referenced file as read from the imported 3D model file.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FilePath

        +
        public FilePath(java.lang.String importedPath,
        +                java.net.URL absolutePath)
        +
        A FilePath object represents the paths of a referenced file + by the string as read from the imported 3D model file and + by the corresponding absolute Uniform Resource Locator (URL) object.
        +
        +
        Parameters:
        +
        importedPath - the imported file path
        +
        absolutePath - the absolute file path
        +
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getImportedPath

        +
        public java.lang.String getImportedPath()
        +
        Gets the path string of a referenced file as read from the imported 3D model file. + This is typically a relative path with each name separated from the next + by the separator character '/'.
        +
        +
        Returns:
        +
        the imported file path
        +
        +
      • +
      + + + +
        +
      • +

        getAbsolutePath

        +
        public java.net.URL getAbsolutePath()
        +
        Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
        +
        +
        Returns:
        +
        the absolute file path
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ImportException.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ImportException.html index d2707cef..0f8bb4f7 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ImportException.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ImportException.html @@ -1,299 +1,299 @@ - - - - - -ImportException (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class ImportException

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.io.Serializable
    -
    -
    -
    -
    public final class ImportException
    -extends java.lang.RuntimeException
    -
    An ImportException is thrown if the importer encounters a problem - reading or parsing the specified file.
    -
    -
    See Also:
    -
    Serialized Form
    -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - - -
      Constructors 
      Constructor and Description
      ImportException(java.lang.String message) -
      Creates a new ImportException with the specified detail message.
      -
      ImportException(java.lang.String message, - java.lang.Throwable cause) -
      Creates a new ImportException with the specified detail message and cause.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class java.lang.Throwable

        -addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ImportException

        -
        public ImportException(java.lang.String message)
        -
        Creates a new ImportException with the specified detail message.
        -
        -
        Parameters:
        -
        message - the detail message
        -
        -
      • -
      - - - -
        -
      • -

        ImportException

        -
        public ImportException(java.lang.String message,
        -                       java.lang.Throwable cause)
        -
        Creates a new ImportException with the specified detail message and cause.
        -
        -
        Parameters:
        -
        message - the detail message
        -
        cause - the cause
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ImportException (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer
+

Class ImportException

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    +
    public final class ImportException
    +extends java.lang.RuntimeException
    +
    An ImportException is thrown if the importer encounters a problem + reading or parsing the specified file.
    +
    +
    See Also:
    +
    Serialized Form
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      ImportException(java.lang.String message) +
      Creates a new ImportException with the specified detail message.
      +
      ImportException(java.lang.String message, + java.lang.Throwable cause) +
      Creates a new ImportException with the specified detail message and cause.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ImportException

        +
        public ImportException(java.lang.String message)
        +
        Creates a new ImportException with the specified detail message.
        +
        +
        Parameters:
        +
        message - the detail message
        +
        +
      • +
      + + + +
        +
      • +

        ImportException

        +
        public ImportException(java.lang.String message,
        +                       java.lang.Throwable cause)
        +
        Creates a new ImportException with the specified detail message and cause.
        +
        +
        Parameters:
        +
        message - the detail message
        +
        cause - the cause
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Importer.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Importer.html index e7c8e81e..deec49c5 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Importer.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Importer.html @@ -1,408 +1,408 @@ - - - - - -Importer (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Interface Importer

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      java.lang.ObjectgetImport() -
      Gets the imported 3D data.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getCreaseAngle

        -
        double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Default value: 45

        -
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Parameters:
        -
        file - File object to import
        -
        Throws:
        -
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        Throws:
        -
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Parameters:
        -
        url - location of the file to import
        -
        Throws:
        -
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        void onFileImported()
        -
        Method is invoked upon completion of import.
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        java.lang.Object getImport()
        -
        Gets the imported 3D data. - Implementations return a more specific type (covariant return type).
        -
        -
        Returns:
        -
        imported 3D data
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
      • -
      - - - -
        -
      • -

        close

        -
        void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Importer (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer
+

Interface Importer

+
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      java.lang.ObjectgetImport() +
      Gets the imported 3D data.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getCreaseAngle

        +
        double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Default value: 45

        +
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Parameters:
        +
        file - File object to import
        +
        Throws:
        +
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        Throws:
        +
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Parameters:
        +
        url - location of the file to import
        +
        Throws:
        +
        ImportException - if the importer encounters a problem reading or parsing the specified file or if the importer is closed
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        void onFileImported()
        +
        Method is invoked upon completion of import.
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        java.lang.Object getImport()
        +
        Gets the imported 3D data. + Implementations return a more specific type (covariant return type).
        +
        +
        Returns:
        +
        imported 3D data
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
      • +
      + + + +
        +
      • +

        close

        +
        void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ModelImporter.html index da37c386..a84b1e2e 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ModelImporter.html @@ -1,357 +1,357 @@ - - - - - -ModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Interface ModelImporter

-
-
-
- -
-
-
    -
  • - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer
+

Interface ModelImporter

+
+
+
+ +
+
+
    +
  • + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Viewpoint.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Viewpoint.html index 4e80e09e..5925c6de 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Viewpoint.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Viewpoint.html @@ -1,683 +1,683 @@ - - - - - -Viewpoint (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class Viewpoint

-
-
- -
-
    -
  • -
    -
    -
    public class Viewpoint
    -extends java.lang.Object
    -
    A Viewpoint object provides viewing properties of a JavaFX Camera object. -

    Supported properties:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     C14ModelImporterFxmlModelImporterX3dModelImporterDefault value
    -   -     
    - Name - XXXnull
    - Projection mode - XXXPerspective
    - Near clipping distance -  X  0.1
    - Far clipping distance -  X 100.0
    - Field of view - XXX30
    - Field of view dimension - XXXVertical
    - Transformation - XXXIdentity
    - Center of rotation -   Xnull
    -
    -
    -
    See Also:
    -
    ParallelCamera, -PerspectiveCamera, -ColModelImporter.getViewpoints(), -FxmlModelImporter.getViewpoints(), -X3dModelImporter.getViewpoints()
    -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Viewpoint() -
      Constructs a perspective Viewpoint object with an identity transform.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      javafx.geometry.Point3DgetCenterOfRotation() -
      Gets the center of rotation.
      -
      doublegetFarClip() -
      Gets the far clipping plane distance.
      -
      doublegetFieldOfView() -
      Gets the field of view value.
      -
      java.lang.StringgetName() -
      Gets the name.
      -
      doublegetNearClip() -
      Gets the near clipping plane distance.
      -
      javafx.scene.transform.AffinegetTransform() -
      Gets the affine transform.
      -
      booleanisPerspective() -
      Gets the state whether the projection mode is perspective (default) or parallel.
      -
      booleanisVerticalFieldOfView() -
      Gets the state whether the field of view is measured vertically (default) or horizontally.
      -
      voidsetCenterOfRotation(javafx.geometry.Point3D value) -
      Set the center of rotation.
      -
      voidsetFarClip(double value) -
      Sets the far clipping plane distance.
      -
      voidsetFieldOfView(double value) -
      Sets the field of view value.
      -
      voidsetName(java.lang.String value) -
      Sets the name.
      -
      voidsetNearClip(double value) -
      Sets the near clipping plane distance.
      -
      voidsetPerspectiveProjection(boolean value) -
      Sets the projection mode.
      -
      voidsetTransform(javafx.scene.transform.Affine value) -
      Sets the affine transform.
      -
      voidsetVerticalFieldOfView(boolean value) -
      Sets the state whether the field of view is measured vertically or horizontally.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Viewpoint

        -
        public Viewpoint()
        -
        Constructs a perspective Viewpoint object with an identity transform.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getName

        -
        public java.lang.String getName()
        -
        Gets the name.
        -
        -
        Returns:
        -
        name or null if no name is set
        -
        -
      • -
      - - - -
        -
      • -

        setName

        -
        public void setName(java.lang.String value)
        -
        Sets the name.
        -
        -
        Parameters:
        -
        value - name
        -
        -
      • -
      - - - -
        -
      • -

        isPerspective

        -
        public boolean isPerspective()
        -
        Gets the state whether the projection mode is perspective (default) or parallel.
        -
        -
        Returns:
        -
        true if perspective projection or false if parallel projection mode
        -
        -
      • -
      - - - -
        -
      • -

        setPerspectiveProjection

        -
        public void setPerspectiveProjection(boolean value)
        -
        Sets the projection mode.
        -
        -
        Parameters:
        -
        value - true if perspective projection or false if parallel projection mode
        -
        -
      • -
      - - - -
        -
      • -

        getFarClip

        -
        public double getFarClip()
        -
        Gets the far clipping plane distance. The default value is 100.0.
        -
        -
        Returns:
        -
        far clipping plane distance
        -
        -
      • -
      - - - -
        -
      • -

        setFarClip

        -
        public void setFarClip(double value)
        -
        Sets the far clipping plane distance.
        -
        -
        Parameters:
        -
        value - far clipping plane distance
        -
        -
      • -
      - - - -
        -
      • -

        getNearClip

        -
        public double getNearClip()
        -
        Gets the near clipping plane distance. The default value is 0.1.
        -
        -
        Returns:
        -
        near clipping plane distance
        -
        -
      • -
      - - - -
        -
      • -

        setNearClip

        -
        public void setNearClip(double value)
        -
        Sets the near clipping plane distance.
        -
        -
        Parameters:
        -
        value - near clipping plane distance
        -
        -
      • -
      - - - -
        -
      • -

        getFieldOfView

        -
        public double getFieldOfView()
        -
        Gets the field of view value. The default value is 30.0.
        -
        -
        Returns:
        -
        field of view
        -
        -
      • -
      - - - -
        -
      • -

        setFieldOfView

        -
        public void setFieldOfView(double value)
        -
        Sets the field of view value.
        -
        -
        Parameters:
        -
        value - field of view
        -
        -
      • -
      - - - -
        -
      • -

        isVerticalFieldOfView

        -
        public boolean isVerticalFieldOfView()
        -
        Gets the state whether the field of view is measured vertically (default) or horizontally.
        -
        -
        Returns:
        -
        true if the field of view is vertical or false if horizontal
        -
        -
      • -
      - - - -
        -
      • -

        setVerticalFieldOfView

        -
        public void setVerticalFieldOfView(boolean value)
        -
        Sets the state whether the field of view is measured vertically or horizontally.
        -
        -
        Parameters:
        -
        value - true if the field of view is vertical or false if horizontal
        -
        -
      • -
      - - - -
        -
      • -

        getTransform

        -
        public javafx.scene.transform.Affine getTransform()
        -
        Gets the affine transform. The default value is the identity transform.
        -
        -
        Returns:
        -
        copy of the affine transform
        -
        -
      • -
      - - - -
        -
      • -

        setTransform

        -
        public void setTransform(javafx.scene.transform.Affine value)
        -
        Sets the affine transform.
        -
        -
        Parameters:
        -
        value - affine transform to be copied
        -
        -
      • -
      - - - -
        -
      • -

        getCenterOfRotation

        -
        public javafx.geometry.Point3D getCenterOfRotation()
        -
        Gets the center of rotation.
        -
        -
        Returns:
        -
        center of rotation or null if no center value is set
        -
        -
      • -
      - - - -
        -
      • -

        setCenterOfRotation

        -
        public void setCenterOfRotation(javafx.geometry.Point3D value)
        -
        Set the center of rotation.
        -
        -
        Parameters:
        -
        value - center of rotation
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Viewpoint (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer
+

Class Viewpoint

+
+
+ +
+
    +
  • +
    +
    +
    public class Viewpoint
    +extends java.lang.Object
    +
    A Viewpoint object provides viewing properties of a JavaFX Camera object. +

    Supported properties:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     C14ModelImporterFxmlModelImporterX3dModelImporterDefault value
    +   +     
    + Name + XXXnull
    + Projection mode + XXXPerspective
    + Near clipping distance +  X  0.1
    + Far clipping distance +  X 100.0
    + Field of view + XXX30
    + Field of view dimension + XXXVertical
    + Transformation + XXXIdentity
    + Center of rotation +   Xnull
    +
    +
    +
    See Also:
    +
    ParallelCamera, +PerspectiveCamera, +ColModelImporter.getViewpoints(), +FxmlModelImporter.getViewpoints(), +X3dModelImporter.getViewpoints()
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      Viewpoint() +
      Constructs a perspective Viewpoint object with an identity transform.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      javafx.geometry.Point3DgetCenterOfRotation() +
      Gets the center of rotation.
      +
      doublegetFarClip() +
      Gets the far clipping plane distance.
      +
      doublegetFieldOfView() +
      Gets the field of view value.
      +
      java.lang.StringgetName() +
      Gets the name.
      +
      doublegetNearClip() +
      Gets the near clipping plane distance.
      +
      javafx.scene.transform.AffinegetTransform() +
      Gets the affine transform.
      +
      booleanisPerspective() +
      Gets the state whether the projection mode is perspective (default) or parallel.
      +
      booleanisVerticalFieldOfView() +
      Gets the state whether the field of view is measured vertically (default) or horizontally.
      +
      voidsetCenterOfRotation(javafx.geometry.Point3D value) +
      Set the center of rotation.
      +
      voidsetFarClip(double value) +
      Sets the far clipping plane distance.
      +
      voidsetFieldOfView(double value) +
      Sets the field of view value.
      +
      voidsetName(java.lang.String value) +
      Sets the name.
      +
      voidsetNearClip(double value) +
      Sets the near clipping plane distance.
      +
      voidsetPerspectiveProjection(boolean value) +
      Sets the projection mode.
      +
      voidsetTransform(javafx.scene.transform.Affine value) +
      Sets the affine transform.
      +
      voidsetVerticalFieldOfView(boolean value) +
      Sets the state whether the field of view is measured vertically or horizontally.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Viewpoint

        +
        public Viewpoint()
        +
        Constructs a perspective Viewpoint object with an identity transform.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
        Gets the name.
        +
        +
        Returns:
        +
        name or null if no name is set
        +
        +
      • +
      + + + +
        +
      • +

        setName

        +
        public void setName(java.lang.String value)
        +
        Sets the name.
        +
        +
        Parameters:
        +
        value - name
        +
        +
      • +
      + + + +
        +
      • +

        isPerspective

        +
        public boolean isPerspective()
        +
        Gets the state whether the projection mode is perspective (default) or parallel.
        +
        +
        Returns:
        +
        true if perspective projection or false if parallel projection mode
        +
        +
      • +
      + + + +
        +
      • +

        setPerspectiveProjection

        +
        public void setPerspectiveProjection(boolean value)
        +
        Sets the projection mode.
        +
        +
        Parameters:
        +
        value - true if perspective projection or false if parallel projection mode
        +
        +
      • +
      + + + +
        +
      • +

        getFarClip

        +
        public double getFarClip()
        +
        Gets the far clipping plane distance. The default value is 100.0.
        +
        +
        Returns:
        +
        far clipping plane distance
        +
        +
      • +
      + + + +
        +
      • +

        setFarClip

        +
        public void setFarClip(double value)
        +
        Sets the far clipping plane distance.
        +
        +
        Parameters:
        +
        value - far clipping plane distance
        +
        +
      • +
      + + + +
        +
      • +

        getNearClip

        +
        public double getNearClip()
        +
        Gets the near clipping plane distance. The default value is 0.1.
        +
        +
        Returns:
        +
        near clipping plane distance
        +
        +
      • +
      + + + +
        +
      • +

        setNearClip

        +
        public void setNearClip(double value)
        +
        Sets the near clipping plane distance.
        +
        +
        Parameters:
        +
        value - near clipping plane distance
        +
        +
      • +
      + + + +
        +
      • +

        getFieldOfView

        +
        public double getFieldOfView()
        +
        Gets the field of view value. The default value is 30.0.
        +
        +
        Returns:
        +
        field of view
        +
        +
      • +
      + + + +
        +
      • +

        setFieldOfView

        +
        public void setFieldOfView(double value)
        +
        Sets the field of view value.
        +
        +
        Parameters:
        +
        value - field of view
        +
        +
      • +
      + + + +
        +
      • +

        isVerticalFieldOfView

        +
        public boolean isVerticalFieldOfView()
        +
        Gets the state whether the field of view is measured vertically (default) or horizontally.
        +
        +
        Returns:
        +
        true if the field of view is vertical or false if horizontal
        +
        +
      • +
      + + + +
        +
      • +

        setVerticalFieldOfView

        +
        public void setVerticalFieldOfView(boolean value)
        +
        Sets the state whether the field of view is measured vertically or horizontally.
        +
        +
        Parameters:
        +
        value - true if the field of view is vertical or false if horizontal
        +
        +
      • +
      + + + +
        +
      • +

        getTransform

        +
        public javafx.scene.transform.Affine getTransform()
        +
        Gets the affine transform. The default value is the identity transform.
        +
        +
        Returns:
        +
        copy of the affine transform
        +
        +
      • +
      + + + +
        +
      • +

        setTransform

        +
        public void setTransform(javafx.scene.transform.Affine value)
        +
        Sets the affine transform.
        +
        +
        Parameters:
        +
        value - affine transform to be copied
        +
        +
      • +
      + + + +
        +
      • +

        getCenterOfRotation

        +
        public javafx.geometry.Point3D getCenterOfRotation()
        +
        Gets the center of rotation.
        +
        +
        Returns:
        +
        center of rotation or null if no center value is set
        +
        +
      • +
      + + + +
        +
      • +

        setCenterOfRotation

        +
        public void setCenterOfRotation(javafx.geometry.Point3D value)
        +
        Set the center of rotation.
        +
        +
        Parameters:
        +
        value - center of rotation
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.Contributor.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.Contributor.html index 475940f0..5e1117b9 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.Contributor.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.Contributor.html @@ -1,374 +1,374 @@ - - - - - -ColAsset.Contributor (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset.Contributor

-
-
- -
-
    -
  • -
    -
    Enclosing class:
    -
    ColAsset
    -
    -
    -
    -
    public static final class ColAsset.Contributor
    -extends java.lang.Object
    -
    A Contributor object provides authoring information.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.lang.StringgetAuthor() -
      Gets the name of the author.
      -
      java.lang.StringgetAuthorEmail() -
      Gets the email address of the author.
      -
      java.lang.StringgetAuthoringTool() -
      Gets the name of the authoring tool.
      -
      java.lang.StringgetAuthorWebsite() -
      Gets the URL of the author's website.
      -
      java.lang.StringgetComments() -
      Gets the comments of the contributor.
      -
      java.lang.StringgetCopyright() -
      Gets the copyright information.
      -
      java.lang.StringgetSourceData() -
      Gets a URI reference to the source data
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getAuthor

        -
        public java.lang.String getAuthor()
        -
        Gets the name of the author.
        -
        -
        Returns:
        -
        author's name or null
        -
        -
      • -
      - - - -
        -
      • -

        getAuthorEmail

        -
        public java.lang.String getAuthorEmail()
        -
        Gets the email address of the author. -

        - Since COLLADA version 1.5.0.

        -
        -
        Returns:
        -
        author's email address or null
        -
        -
      • -
      - - - -
        -
      • -

        getAuthorWebsite

        -
        public java.lang.String getAuthorWebsite()
        -
        Gets the URL of the author's website. -

        - Since COLLADA version 1.5.0.

        -
        -
        Returns:
        -
        author's website or null
        -
        -
      • -
      - - - -
        -
      • -

        getAuthoringTool

        -
        public java.lang.String getAuthoringTool()
        -
        Gets the name of the authoring tool.
        -
        -
        Returns:
        -
        authoring tool's name or null
        -
        -
      • -
      - - - -
        -
      • -

        getComments

        -
        public java.lang.String getComments()
        -
        Gets the comments of the contributor.
        -
        -
        Returns:
        -
        contributor's comments or null
        -
        -
      • -
      - - - -
        -
      • -

        getCopyright

        -
        public java.lang.String getCopyright()
        -
        Gets the copyright information.
        -
        -
        Returns:
        -
        copyright information or null
        -
        -
      • -
      - - - -
        -
      • -

        getSourceData

        -
        public java.lang.String getSourceData()
        -
        Gets a URI reference to the source data
        -
        -
        Returns:
        -
        source data reference or null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColAsset.Contributor (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Class ColAsset.Contributor

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ColAsset
    +
    +
    +
    +
    public static final class ColAsset.Contributor
    +extends java.lang.Object
    +
    A Contributor object provides authoring information.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.lang.StringgetAuthor() +
      Gets the name of the author.
      +
      java.lang.StringgetAuthorEmail() +
      Gets the email address of the author.
      +
      java.lang.StringgetAuthoringTool() +
      Gets the name of the authoring tool.
      +
      java.lang.StringgetAuthorWebsite() +
      Gets the URL of the author's website.
      +
      java.lang.StringgetComments() +
      Gets the comments of the contributor.
      +
      java.lang.StringgetCopyright() +
      Gets the copyright information.
      +
      java.lang.StringgetSourceData() +
      Gets a URI reference to the source data
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getAuthor

        +
        public java.lang.String getAuthor()
        +
        Gets the name of the author.
        +
        +
        Returns:
        +
        author's name or null
        +
        +
      • +
      + + + +
        +
      • +

        getAuthorEmail

        +
        public java.lang.String getAuthorEmail()
        +
        Gets the email address of the author. +

        + Since COLLADA version 1.5.0.

        +
        +
        Returns:
        +
        author's email address or null
        +
        +
      • +
      + + + +
        +
      • +

        getAuthorWebsite

        +
        public java.lang.String getAuthorWebsite()
        +
        Gets the URL of the author's website. +

        + Since COLLADA version 1.5.0.

        +
        +
        Returns:
        +
        author's website or null
        +
        +
      • +
      + + + +
        +
      • +

        getAuthoringTool

        +
        public java.lang.String getAuthoringTool()
        +
        Gets the name of the authoring tool.
        +
        +
        Returns:
        +
        authoring tool's name or null
        +
        +
      • +
      + + + +
        +
      • +

        getComments

        +
        public java.lang.String getComments()
        +
        Gets the comments of the contributor.
        +
        +
        Returns:
        +
        contributor's comments or null
        +
        +
      • +
      + + + +
        +
      • +

        getCopyright

        +
        public java.lang.String getCopyright()
        +
        Gets the copyright information.
        +
        +
        Returns:
        +
        copyright information or null
        +
        +
      • +
      + + + +
        +
      • +

        getSourceData

        +
        public java.lang.String getSourceData()
        +
        Gets a URI reference to the source data
        +
        +
        Returns:
        +
        source data reference or null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.GeographicLocation.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.GeographicLocation.html index 0297a17d..aa60865e 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.GeographicLocation.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.GeographicLocation.html @@ -1,315 +1,315 @@ - - - - - -ColAsset.GeographicLocation (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset.GeographicLocation

-
-
- -
-
    -
  • -
    -
    Enclosing class:
    -
    ColAsset
    -
    -
    -
    -
    public static final class ColAsset.GeographicLocation
    -extends java.lang.Object
    -
    A GeographicLocation object provides geographic location information. -

    - Since COLLADA version 1.5.0.

    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      floatgetAltitude() -
      Gets the altitude value in meters.
      -
      java.lang.StringgetAltitudeMode() -
      Gets the mode of the altitude value.
      -
      floatgetLatitude() -
      Gets the latitude value in degrees.
      -
      floatgetLongitude() -
      Gets the longitude value in degrees.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getLongitude

        -
        public float getLongitude()
        -
        Gets the longitude value in degrees. The value ranges from -180.0 to 180.0.
        -
        -
        Returns:
        -
        longitude value
        -
        -
      • -
      - - - -
        -
      • -

        getLatitude

        -
        public float getLatitude()
        -
        Gets the latitude value in degrees. The value ranges from -90.0 to 90.0.
        -
        -
        Returns:
        -
        latitude value
        -
        -
      • -
      - - - -
        -
      • -

        getAltitude

        -
        public float getAltitude()
        -
        Gets the altitude value in meters.
        -
        -
        Returns:
        -
        altitude value
        -
        -
      • -
      - - - -
        -
      • -

        getAltitudeMode

        -
        public java.lang.String getAltitudeMode()
        -
        Gets the mode of the altitude value. The default mode "relativeToGround" - specifies that the value is the distance from the altitude - of the terrain at the latitude/longitude point. The mode "absolut" specifies - that the value is the distance from sea level.
        -
        -
        Returns:
        -
        "relativeToGround" or "absolut"
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColAsset.GeographicLocation (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Class ColAsset.GeographicLocation

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    ColAsset
    +
    +
    +
    +
    public static final class ColAsset.GeographicLocation
    +extends java.lang.Object
    +
    A GeographicLocation object provides geographic location information. +

    + Since COLLADA version 1.5.0.

    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      floatgetAltitude() +
      Gets the altitude value in meters.
      +
      java.lang.StringgetAltitudeMode() +
      Gets the mode of the altitude value.
      +
      floatgetLatitude() +
      Gets the latitude value in degrees.
      +
      floatgetLongitude() +
      Gets the longitude value in degrees.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getLongitude

        +
        public float getLongitude()
        +
        Gets the longitude value in degrees. The value ranges from -180.0 to 180.0.
        +
        +
        Returns:
        +
        longitude value
        +
        +
      • +
      + + + +
        +
      • +

        getLatitude

        +
        public float getLatitude()
        +
        Gets the latitude value in degrees. The value ranges from -90.0 to 90.0.
        +
        +
        Returns:
        +
        latitude value
        +
        +
      • +
      + + + +
        +
      • +

        getAltitude

        +
        public float getAltitude()
        +
        Gets the altitude value in meters.
        +
        +
        Returns:
        +
        altitude value
        +
        +
      • +
      + + + +
        +
      • +

        getAltitudeMode

        +
        public java.lang.String getAltitudeMode()
        +
        Gets the mode of the altitude value. The default mode "relativeToGround" + specifies that the value is the distance from the altitude + of the terrain at the latitude/longitude point. The mode "absolut" specifies + that the value is the distance from sea level.
        +
        +
        Returns:
        +
        "relativeToGround" or "absolut"
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.UpAxis.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.UpAxis.html index fd0cbcde..c877a39c 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.UpAxis.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.UpAxis.html @@ -1,373 +1,373 @@ - - - - - -ColAsset.UpAxis (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Enum ColAsset.UpAxis

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.io.Serializable, java.lang.Comparable<ColAsset.UpAxis>
    -
    -
    -
    Enclosing class:
    -
    ColAsset
    -
    -
    -
    -
    public static enum ColAsset.UpAxis
    -extends java.lang.Enum<ColAsset.UpAxis>
    -
    UpAxis describes the coordinate system of the geometric data. - All geometry coordinates of a COLLADA file are right-handed. -

    - X_UP, Y_UP, and Z_UP specify which axis is - considered upward, which is considered to the right, - and which is considered inward.

    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      X_UP -
      Upward axis: positive x, right axis: negative y, inward axis: positive z.
      -
      Y_UP -
      Upward axis: positive y, right axis: positive x, inward axis: positive z.
      -
      Z_UP -
      Upward axis: positive z, right axis: positive x, inward axis: negative y.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ColAsset.UpAxisvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static ColAsset.UpAxis[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        X_UP

        -
        public static final ColAsset.UpAxis X_UP
        -
        Upward axis: positive x, right axis: negative y, inward axis: positive z.
        -
      • -
      - - - -
        -
      • -

        Y_UP

        -
        public static final ColAsset.UpAxis Y_UP
        -
        Upward axis: positive y, right axis: positive x, inward axis: positive z.
        -
      • -
      - - - -
        -
      • -

        Z_UP

        -
        public static final ColAsset.UpAxis Z_UP
        -
        Upward axis: positive z, right axis: positive x, inward axis: negative y.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static ColAsset.UpAxis[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (ColAsset.UpAxis c : ColAsset.UpAxis.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static ColAsset.UpAxis valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColAsset.UpAxis (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Enum ColAsset.UpAxis

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ColAsset.UpAxis>
    +
    +
    +
    Enclosing class:
    +
    ColAsset
    +
    +
    +
    +
    public static enum ColAsset.UpAxis
    +extends java.lang.Enum<ColAsset.UpAxis>
    +
    UpAxis describes the coordinate system of the geometric data. + All geometry coordinates of a COLLADA file are right-handed. +

    + X_UP, Y_UP, and Z_UP specify which axis is + considered upward, which is considered to the right, + and which is considered inward.

    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      X_UP +
      Upward axis: positive x, right axis: negative y, inward axis: positive z.
      +
      Y_UP +
      Upward axis: positive y, right axis: positive x, inward axis: positive z.
      +
      Z_UP +
      Upward axis: positive z, right axis: positive x, inward axis: negative y.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ColAsset.UpAxisvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ColAsset.UpAxis[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        X_UP

        +
        public static final ColAsset.UpAxis X_UP
        +
        Upward axis: positive x, right axis: negative y, inward axis: positive z.
        +
      • +
      + + + +
        +
      • +

        Y_UP

        +
        public static final ColAsset.UpAxis Y_UP
        +
        Upward axis: positive y, right axis: positive x, inward axis: positive z.
        +
      • +
      + + + +
        +
      • +

        Z_UP

        +
        public static final ColAsset.UpAxis Z_UP
        +
        Upward axis: positive z, right axis: positive x, inward axis: negative y.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ColAsset.UpAxis[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ColAsset.UpAxis c : ColAsset.UpAxis.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ColAsset.UpAxis valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.html index 3f77950c..0d8fc03c 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.html @@ -1,515 +1,515 @@ - - - - - -ColAsset (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset

-
-
- -
-
    -
  • -
    -
    -
    public final class ColAsset
    -extends java.lang.Object
    -
    A ColAsset object provides the attributes of the asset child element and - the version number of the COLLADA root element.
    -
    -
    See Also:
    -
    ColModelImporter.getAsset()
    -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      - - - - - - - - - - - - - - - - - - -
      Nested Classes 
      Modifier and TypeClass and Description
      static class ColAsset.Contributor -
      A Contributor object provides authoring information.
      -
      static class ColAsset.GeographicLocation -
      A GeographicLocation object provides geographic location information.
      -
      static class ColAsset.UpAxis -
      UpAxis describes the coordinate system of the geometric data.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      ColAsset.Contributor[]getContributors() -
      Gets the contributors of the COLLADA file.
      -
      java.lang.StringgetCreatedDate() -
      Gets the date and time when the COLADA file was created (in an ISO 8601 format).
      -
      ColAsset.GeographicLocationgetGeographicLocation() -
      Gets the geographic location information of the COLLADA file.
      -
      java.lang.StringgetKeywords() -
      Gets a list of words used as search criteria.
      -
      java.lang.StringgetModifiedDate() -
      Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
      -
      java.lang.StringgetRevision() -
      Gets the revision information of the COLLADA file.
      -
      java.lang.StringgetSubject() -
      Gets a description of the topical subject of the COLLADA file.
      -
      java.lang.StringgetTitle() -
      Gets the title information of the COLLADA file.
      -
      floatgetUnitMeter() -
      Gets the real-world meters of one distance unit as a floating-point number.
      -
      java.lang.StringgetUnitName() -
      Gets the name of the distance unit used in the COLLADA file.
      -
      ColAsset.UpAxisgetUpAxis() -
      Gets the coordinate system of the geometric data.
      -
      java.lang.StringgetVersion() -
      Gets the version number of the COLLADA file.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getVersion

        -
        public java.lang.String getVersion()
        -
        Gets the version number of the COLLADA file.
        -
        -
        Returns:
        -
        version number
        -
        -
      • -
      - - - -
        -
      • -

        getContributors

        -
        public ColAsset.Contributor[] getContributors()
        -
        Gets the contributors of the COLLADA file.
        -
        -
        Returns:
        -
        contributors or null
        -
        -
      • -
      - - - -
        -
      • -

        getCreatedDate

        -
        public java.lang.String getCreatedDate()
        -
        Gets the date and time when the COLADA file was created (in an ISO 8601 format).
        -
        -
        Returns:
        -
        date and time of creation
        -
        -
      • -
      - - - -
        -
      • -

        getGeographicLocation

        -
        public ColAsset.GeographicLocation getGeographicLocation()
        -
        Gets the geographic location information of the COLLADA file. -

        - Since COLLADA version 1.5.0.

        -
        -
        Returns:
        -
        geographic location information or null
        -
        -
      • -
      - - - -
        -
      • -

        getKeywords

        -
        public java.lang.String getKeywords()
        -
        Gets a list of words used as search criteria.
        -
        -
        Returns:
        -
        search criteria or null
        -
        -
      • -
      - - - -
        -
      • -

        getModifiedDate

        -
        public java.lang.String getModifiedDate()
        -
        Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
        -
        -
        Returns:
        -
        date and time of last modification
        -
        -
      • -
      - - - -
        -
      • -

        getRevision

        -
        public java.lang.String getRevision()
        -
        Gets the revision information of the COLLADA file.
        -
        -
        Returns:
        -
        revision information or null
        -
        -
      • -
      - - - -
        -
      • -

        getSubject

        -
        public java.lang.String getSubject()
        -
        Gets a description of the topical subject of the COLLADA file.
        -
        -
        Returns:
        -
        topical subject or null
        -
        -
      • -
      - - - -
        -
      • -

        getTitle

        -
        public java.lang.String getTitle()
        -
        Gets the title information of the COLLADA file.
        -
        -
        Returns:
        -
        title information or null
        -
        -
      • -
      - - - -
        -
      • -

        getUnitName

        -
        public java.lang.String getUnitName()
        -
        Gets the name of the distance unit used in the COLLADA file. - For example, “meter”, “centimeter”, “inches”, or “parsec”. -

        - Default: meter

        -
        -
        Returns:
        -
        distance unit name or null
        -
        -
      • -
      - - - -
        -
      • -

        getUnitMeter

        -
        public float getUnitMeter()
        -
        Gets the real-world meters of one distance unit as a floating-point number. - For example, 1.0 for the unit name "meter", 1000 for "kilometer", or - 0.3048 for "foot". -

        - Default: 1.0

        -
        -
        Returns:
        -
        real-world meters of one distance unit or null
        -
        -
      • -
      - - - -
        -
      • -

        getUpAxis

        -
        public ColAsset.UpAxis getUpAxis()
        -
        Gets the coordinate system of the geometric data. -

        - Default: Y_UP

        -
        -
        Returns:
        -
        coordinate system or null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColAsset (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Class ColAsset

+
+
+ +
+
    +
  • +
    +
    +
    public final class ColAsset
    +extends java.lang.Object
    +
    A ColAsset object provides the attributes of the asset child element and + the version number of the COLLADA root element.
    +
    +
    See Also:
    +
    ColModelImporter.getAsset()
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      + + + + + + + + + + + + + + + + + + +
      Nested Classes 
      Modifier and TypeClass and Description
      static class ColAsset.Contributor +
      A Contributor object provides authoring information.
      +
      static class ColAsset.GeographicLocation +
      A GeographicLocation object provides geographic location information.
      +
      static class ColAsset.UpAxis +
      UpAxis describes the coordinate system of the geometric data.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      ColAsset.Contributor[]getContributors() +
      Gets the contributors of the COLLADA file.
      +
      java.lang.StringgetCreatedDate() +
      Gets the date and time when the COLADA file was created (in an ISO 8601 format).
      +
      ColAsset.GeographicLocationgetGeographicLocation() +
      Gets the geographic location information of the COLLADA file.
      +
      java.lang.StringgetKeywords() +
      Gets a list of words used as search criteria.
      +
      java.lang.StringgetModifiedDate() +
      Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
      +
      java.lang.StringgetRevision() +
      Gets the revision information of the COLLADA file.
      +
      java.lang.StringgetSubject() +
      Gets a description of the topical subject of the COLLADA file.
      +
      java.lang.StringgetTitle() +
      Gets the title information of the COLLADA file.
      +
      floatgetUnitMeter() +
      Gets the real-world meters of one distance unit as a floating-point number.
      +
      java.lang.StringgetUnitName() +
      Gets the name of the distance unit used in the COLLADA file.
      +
      ColAsset.UpAxisgetUpAxis() +
      Gets the coordinate system of the geometric data.
      +
      java.lang.StringgetVersion() +
      Gets the version number of the COLLADA file.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getVersion

        +
        public java.lang.String getVersion()
        +
        Gets the version number of the COLLADA file.
        +
        +
        Returns:
        +
        version number
        +
        +
      • +
      + + + +
        +
      • +

        getContributors

        +
        public ColAsset.Contributor[] getContributors()
        +
        Gets the contributors of the COLLADA file.
        +
        +
        Returns:
        +
        contributors or null
        +
        +
      • +
      + + + +
        +
      • +

        getCreatedDate

        +
        public java.lang.String getCreatedDate()
        +
        Gets the date and time when the COLADA file was created (in an ISO 8601 format).
        +
        +
        Returns:
        +
        date and time of creation
        +
        +
      • +
      + + + +
        +
      • +

        getGeographicLocation

        +
        public ColAsset.GeographicLocation getGeographicLocation()
        +
        Gets the geographic location information of the COLLADA file. +

        + Since COLLADA version 1.5.0.

        +
        +
        Returns:
        +
        geographic location information or null
        +
        +
      • +
      + + + +
        +
      • +

        getKeywords

        +
        public java.lang.String getKeywords()
        +
        Gets a list of words used as search criteria.
        +
        +
        Returns:
        +
        search criteria or null
        +
        +
      • +
      + + + +
        +
      • +

        getModifiedDate

        +
        public java.lang.String getModifiedDate()
        +
        Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
        +
        +
        Returns:
        +
        date and time of last modification
        +
        +
      • +
      + + + +
        +
      • +

        getRevision

        +
        public java.lang.String getRevision()
        +
        Gets the revision information of the COLLADA file.
        +
        +
        Returns:
        +
        revision information or null
        +
        +
      • +
      + + + +
        +
      • +

        getSubject

        +
        public java.lang.String getSubject()
        +
        Gets a description of the topical subject of the COLLADA file.
        +
        +
        Returns:
        +
        topical subject or null
        +
        +
      • +
      + + + +
        +
      • +

        getTitle

        +
        public java.lang.String getTitle()
        +
        Gets the title information of the COLLADA file.
        +
        +
        Returns:
        +
        title information or null
        +
        +
      • +
      + + + +
        +
      • +

        getUnitName

        +
        public java.lang.String getUnitName()
        +
        Gets the name of the distance unit used in the COLLADA file. + For example, “meter”, “centimeter”, “inches”, or “parsec”. +

        + Default: meter

        +
        +
        Returns:
        +
        distance unit name or null
        +
        +
      • +
      + + + +
        +
      • +

        getUnitMeter

        +
        public float getUnitMeter()
        +
        Gets the real-world meters of one distance unit as a floating-point number. + For example, 1.0 for the unit name "meter", 1000 for "kilometer", or + 0.3048 for "foot". +

        + Default: 1.0

        +
        +
        Returns:
        +
        real-world meters of one distance unit or null
        +
        +
      • +
      + + + +
        +
      • +

        getUpAxis

        +
        public ColAsset.UpAxis getUpAxis()
        +
        Gets the coordinate system of the geometric data. +

        + Default: Y_UP

        +
        +
        Returns:
        +
        coordinate system or null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColImportOption.html index ba96d022..4e04ea22 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColImportOption.html @@ -1,446 +1,446 @@ - - - - - -ColImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Enum ColImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS -
      Normals will be generated based on the given crease angle.
      -
      IGNORE_CAMERAS -
      No camera node will be created and added to the scene graph.
      -
      IGNORE_LIGHTS -
      No light node will be created and added to the scene graph.
      -
      MAP_WRITABLEIMAGE -
      The maps of a PhongMaterial object will be of type WritableImage.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      REVERSE_TRANSPARENCY -
      The transparency value will be reversed: t = 1.0 - t.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ColImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static ColImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        NONE

        -
        public static final ColImportOption NONE
        -
        No option is applied.
        -
      • -
      - - - -
        -
      • -

        GENERATE_NORMALS

        -
        public static final ColImportOption GENERATE_NORMALS
        -
        Normals will be generated based on the given crease angle. The normals - in the imported file will be ignored. - A new set of face smoothing groups will be created afterwards.
        -
        -
        See Also:
        -
        ColModelImporter.setCreaseAngle(double)
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_CAMERAS

        -
        public static final ColImportOption IGNORE_CAMERAS
        -
        No camera node will be created and added to the scene graph. -

        - Nevertheless, the camera library and instance elements (<library_cameras>, <instance_camera>) - will be read and Viewpoint objects will be created if camera instances are present.

        -
        -
        See Also:
        -
        ColModelImporter.getViewpoints(), -Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_LIGHTS

        -
        public static final ColImportOption IGNORE_LIGHTS
        -
        No light node will be created and added to the scene graph. - The light library and instance elements (<library_lights>, <instance_light>) - will be ignored.
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final ColImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        -
      • -
      - - - -
        -
      • -

        REVERSE_TRANSPARENCY

        -
        public static final ColImportOption REVERSE_TRANSPARENCY
        -
        The transparency value will be reversed: t = 1.0 - t.
        -
      • -
      - - - -
        -
      • -

        MAP_WRITABLEIMAGE

        -
        public static final ColImportOption MAP_WRITABLEIMAGE
        -
        The maps of a PhongMaterial object will be of type WritableImage.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static ColImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (ColImportOption c : ColImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static ColImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Enum ColImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS +
      Normals will be generated based on the given crease angle.
      +
      IGNORE_CAMERAS +
      No camera node will be created and added to the scene graph.
      +
      IGNORE_LIGHTS +
      No light node will be created and added to the scene graph.
      +
      MAP_WRITABLEIMAGE +
      The maps of a PhongMaterial object will be of type WritableImage.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      REVERSE_TRANSPARENCY +
      The transparency value will be reversed: t = 1.0 - t.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ColImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ColImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final ColImportOption NONE
        +
        No option is applied.
        +
      • +
      + + + +
        +
      • +

        GENERATE_NORMALS

        +
        public static final ColImportOption GENERATE_NORMALS
        +
        Normals will be generated based on the given crease angle. The normals + in the imported file will be ignored. + A new set of face smoothing groups will be created afterwards.
        +
        +
        See Also:
        +
        ColModelImporter.setCreaseAngle(double)
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_CAMERAS

        +
        public static final ColImportOption IGNORE_CAMERAS
        +
        No camera node will be created and added to the scene graph. +

        + Nevertheless, the camera library and instance elements (<library_cameras>, <instance_camera>) + will be read and Viewpoint objects will be created if camera instances are present.

        +
        +
        See Also:
        +
        ColModelImporter.getViewpoints(), +Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_LIGHTS

        +
        public static final ColImportOption IGNORE_LIGHTS
        +
        No light node will be created and added to the scene graph. + The light library and instance elements (<library_lights>, <instance_light>) + will be ignored.
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final ColImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        +
      • +
      + + + +
        +
      • +

        REVERSE_TRANSPARENCY

        +
        public static final ColImportOption REVERSE_TRANSPARENCY
        +
        The transparency value will be reversed: t = 1.0 - t.
        +
      • +
      + + + +
        +
      • +

        MAP_WRITABLEIMAGE

        +
        public static final ColImportOption MAP_WRITABLEIMAGE
        +
        The maps of a PhongMaterial object will be of type WritableImage.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ColImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ColImportOption c : ColImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ColImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColModelImporter.html index f2e79efe..12943052 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColModelImporter.html @@ -1,876 +1,876 @@ - - - - - -ColModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColModelImporter

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ColModelImporter() -
      Creates a COLLADA 1.4.1 and 1.5.0 model importer.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      ColAssetgetAsset() -
      Gets the asset attributes of the imported COLLADA root element.
      -
      FilePath[]getColladaFilePaths() -
      Gets the paths of included COLLADA files which are used for external referencing.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() -
      Gets the map which contains the FilePath objects for all imported texture images.
      -
      javafx.scene.Node[]getImport() -
      Gets the array of Nodes from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() -
      Gets the map which contains all named and used PhongMaterial objects - from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() -
      Gets the map which contains all named (id property) Nodes from the imported file.
      -
      java.util.EnumSet<ColImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetResourceBasePath() -
      Gets the path where files associated with the imported 3D model file are located.
      -
      java.net.URLgetResourceBaseUrl() -
      Gets the URL where files associated with the imported 3D model file are located.
      -
      Viewpoint[]getViewpoints() -
      Gets the viewpoints of the imported file.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(ColImportOption... options) -
      Sets the import options.
      -
      voidsetOptions(java.util.EnumSet<ColImportOption> options) -
      Sets the import options.
      -
      voidsetResourceBasePath(java.lang.String path) -
      Sets the path where files associated with the imported 3D model file are located.
      -
      voidsetResourceBaseUrl(java.net.URL url) -
      Sets the URL where files associated with the imported 3D model file are located.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ColModelImporter

        -
        public ColModelImporter()
        -
        Creates a COLLADA 1.4.1 and 1.5.0 model importer.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        public java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBasePath in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        public java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBaseUrl in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        public void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBasePath in interface ModelImporter
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        public void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBaseUrl in interface ModelImporter
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Normals are generated if the corresponding option - ColImportOption.NORMALS_GENERATION is set or - normals are not provided in the imported file. -

        Default value: 45

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        See Also:
        -
        setOptions(ColImportOption...), -ColImportOption.GENERATE_NORMALS
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<ColImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: ColImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(ColImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: ColImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - ColImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<ColImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: ColImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - ColImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getAsset

        -
        public ColAsset getAsset()
        -
        Gets the asset attributes of the imported COLLADA root element.
        -
        -
        Returns:
        -
        COLLADA's asset attributes
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.Node[] getImport()
        -
        Gets the array of Nodes from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported Nodes or null if no Nodes are imported
        -
        -
      • -
      - - - -
        -
      • -

        getNamedNodes

        -
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        -
        Gets the map which contains all named (id property) Nodes from the imported file.
        -
        -
        Returns:
        -
        named Nodes or null if no imported Node is named
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Specified by:
        -
        getNamedMaterials in interface ModelImporter
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Specified by:
        -
        getImageFilePaths in interface ModelImporter
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getColladaFilePaths

        -
        public FilePath[] getColladaFilePaths()
        -
        Gets the paths of included COLLADA files which are used for external referencing.
        -
        -
        Returns:
        -
        paths of included COLLADA files or null if COLLADA files aren't included
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getViewpoints

        -
        public Viewpoint[] getViewpoints()
        -
        Gets the viewpoints of the imported file.
        -
        -
        Returns:
        -
        imported viewpoints or null if no camera element is present in the imported file
        -
        See Also:
        -
        Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ColModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.col
+

Class ColModelImporter

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      ColModelImporter() +
      Creates a COLLADA 1.4.1 and 1.5.0 model importer.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      ColAssetgetAsset() +
      Gets the asset attributes of the imported COLLADA root element.
      +
      FilePath[]getColladaFilePaths() +
      Gets the paths of included COLLADA files which are used for external referencing.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() +
      Gets the map which contains the FilePath objects for all imported texture images.
      +
      javafx.scene.Node[]getImport() +
      Gets the array of Nodes from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() +
      Gets the map which contains all named and used PhongMaterial objects + from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() +
      Gets the map which contains all named (id property) Nodes from the imported file.
      +
      java.util.EnumSet<ColImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetResourceBasePath() +
      Gets the path where files associated with the imported 3D model file are located.
      +
      java.net.URLgetResourceBaseUrl() +
      Gets the URL where files associated with the imported 3D model file are located.
      +
      Viewpoint[]getViewpoints() +
      Gets the viewpoints of the imported file.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(ColImportOption... options) +
      Sets the import options.
      +
      voidsetOptions(java.util.EnumSet<ColImportOption> options) +
      Sets the import options.
      +
      voidsetResourceBasePath(java.lang.String path) +
      Sets the path where files associated with the imported 3D model file are located.
      +
      voidsetResourceBaseUrl(java.net.URL url) +
      Sets the URL where files associated with the imported 3D model file are located.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ColModelImporter

        +
        public ColModelImporter()
        +
        Creates a COLLADA 1.4.1 and 1.5.0 model importer.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        public java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBasePath in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        public java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBaseUrl in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        public void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBasePath in interface ModelImporter
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        public void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBaseUrl in interface ModelImporter
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Normals are generated if the corresponding option + ColImportOption.NORMALS_GENERATION is set or + normals are not provided in the imported file. +

        Default value: 45

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        See Also:
        +
        setOptions(ColImportOption...), +ColImportOption.GENERATE_NORMALS
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<ColImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: ColImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(ColImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: ColImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + ColImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<ColImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: ColImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + ColImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getAsset

        +
        public ColAsset getAsset()
        +
        Gets the asset attributes of the imported COLLADA root element.
        +
        +
        Returns:
        +
        COLLADA's asset attributes
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.Node[] getImport()
        +
        Gets the array of Nodes from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported Nodes or null if no Nodes are imported
        +
        +
      • +
      + + + +
        +
      • +

        getNamedNodes

        +
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        +
        Gets the map which contains all named (id property) Nodes from the imported file.
        +
        +
        Returns:
        +
        named Nodes or null if no imported Node is named
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Specified by:
        +
        getNamedMaterials in interface ModelImporter
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Specified by:
        +
        getImageFilePaths in interface ModelImporter
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getColladaFilePaths

        +
        public FilePath[] getColladaFilePaths()
        +
        Gets the paths of included COLLADA files which are used for external referencing.
        +
        +
        Returns:
        +
        paths of included COLLADA files or null if COLLADA files aren't included
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getViewpoints

        +
        public Viewpoint[] getViewpoints()
        +
        Gets the viewpoints of the imported file.
        +
        +
        Returns:
        +
        imported viewpoints or null if no camera element is present in the imported file
        +
        See Also:
        +
        Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-frame.html index 6fba5cba..9e195ea3 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-frame.html @@ -1,28 +1,28 @@ - - - - - -com.interactivemesh.jfx.importer.col (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.col

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.col (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.col

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-summary.html index 9850822d..43ad76d4 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-summary.html @@ -1,896 +1,896 @@ - - - - - -com.interactivemesh.jfx.importer.col (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.col

-
-
- ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.col Description

-
- ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files. - - -

Supported JavaFX 3D scene graph nodes and attributes -

-

-

    -
  • javafx.scene.AmbientLight
  • -
  • javafx.scene.Group
  • -
  • javafx.scene.ParallelCamera
  • -
  • javafx.scene.PerspectiveCamera
  • -
  • javafx.scene.PointLight
  • -
  • javafx.scene.image.Image
  • -
  • javafx.scene.image.WritableImage
  • -
  • javafx.scene.paint.Color
  • -
  • javafx.scene.paint.PhongMaterial
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.TriangleMesh
  • -
  • javafx.scene.transform.Affine
  • -
  • javafx.scene.transform.Rotate
  • -
  • javafx.scene.transform.Scale
  • -
  • javafx.scene.transform.Translate
  • -
-

- - - -

- Mapping COLLADA --> JavaFX 3D -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COLLADAJavaFX 3D
Element hierarchy (extract)  Scene graph node / attributeColModelImporter
       Option 
         
asset       ColAsset
         
sceneinstance_visual_scene    see visual_scene  
         
library_        
  animationsanimation    u. d.  
         
  animation_clipsanimation_clipinstance_animation   u. d.  
         
  camerascameraopticsorthographic  ParallelCameraignored 
   perspective  PerspectiveCameraignored 
         
  controllerscontrollerMorph   currently static  
  Skin   currently static  
         
  effectseffectprofile_COMMONblinn  see material  
   constant  see material  
   lambert  see material  
   phong  see material  
         
  geometriesmeshlines   n. a.  
  linestrips   n. a.  
  polygons   TriangleMesh  
  polylist   TriangleMesh  
  triangles   TriangleMesh  
  trifans   TriangleMesh  
  tristrips   TriangleMesh  
         
  imagesimage    ImageWritableImageFilePath
         
  lightslightambient   AmbientLightignored 
  directional   PointLightignored 
  point   PointLightignored 
  spot   PointLightignored 
         
  materialsmaterialinstance_effect   PhongMaterial  
         
  nodesnode    Group  
  lookat   Affine  
  matrix   Affine  
  rotate   Rotate  
  scale   Scale  
  skew   n. a.  
  translate   Translate  
  instance_camera   ParallelCamera,
PerspectiveCamera
ignoredViewpoint
  instance_controller   MeshView  
  instance_geometry   Group, MeshView  
  instance_light   AmbientLight, PointLightignored 
  instance_node   Group, MeshView  
         
  visual_scenesvisual_scene    Node[ ]  
         
-
-

- Further implementation details -

-

TODO

-
-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.col (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.col

+
+
+ ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.col Description

+
+ ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files. + + +

Supported JavaFX 3D scene graph nodes and attributes +

+

+

    +
  • javafx.scene.AmbientLight
  • +
  • javafx.scene.Group
  • +
  • javafx.scene.ParallelCamera
  • +
  • javafx.scene.PerspectiveCamera
  • +
  • javafx.scene.PointLight
  • +
  • javafx.scene.image.Image
  • +
  • javafx.scene.image.WritableImage
  • +
  • javafx.scene.paint.Color
  • +
  • javafx.scene.paint.PhongMaterial
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.TriangleMesh
  • +
  • javafx.scene.transform.Affine
  • +
  • javafx.scene.transform.Rotate
  • +
  • javafx.scene.transform.Scale
  • +
  • javafx.scene.transform.Translate
  • +
+

+ + + +

+ Mapping COLLADA --> JavaFX 3D +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
COLLADAJavaFX 3D
Element hierarchy (extract)  Scene graph node / attributeColModelImporter
       Option 
         
asset       ColAsset
         
sceneinstance_visual_scene    see visual_scene  
         
library_        
  animationsanimation    u. d.  
         
  animation_clipsanimation_clipinstance_animation   u. d.  
         
  camerascameraopticsorthographic  ParallelCameraignored 
   perspective  PerspectiveCameraignored 
         
  controllerscontrollerMorph   currently static  
  Skin   currently static  
         
  effectseffectprofile_COMMONblinn  see material  
   constant  see material  
   lambert  see material  
   phong  see material  
         
  geometriesmeshlines   n. a.  
  linestrips   n. a.  
  polygons   TriangleMesh  
  polylist   TriangleMesh  
  triangles   TriangleMesh  
  trifans   TriangleMesh  
  tristrips   TriangleMesh  
         
  imagesimage    ImageWritableImageFilePath
         
  lightslightambient   AmbientLightignored 
  directional   PointLightignored 
  point   PointLightignored 
  spot   PointLightignored 
         
  materialsmaterialinstance_effect   PhongMaterial  
         
  nodesnode    Group  
  lookat   Affine  
  matrix   Affine  
  rotate   Rotate  
  scale   Scale  
  skew   n. a.  
  translate   Translate  
  instance_camera   ParallelCamera,
PerspectiveCamera
ignoredViewpoint
  instance_controller   MeshView  
  instance_geometry   Group, MeshView  
  instance_light   AmbientLight, PointLightignored 
  instance_node   Group, MeshView  
         
  visual_scenesvisual_scene    Node[ ]  
         
+
+

+ Further implementation details +

+

TODO

+
+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-tree.html index 28b932ad..1d597dd5 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-tree.html @@ -1,154 +1,154 @@ - - - - - -com.interactivemesh.jfx.importer.col Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.col

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.col Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.col

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlImportOption.html index 14a5c0b5..50f129ed 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlImportOption.html @@ -1,429 +1,429 @@ - - - - - -FxmlImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.fxml
-

Enum FxmlImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS -
      Normals will be generated based on the given crease angle.
      -
      IGNORE_CAMERAS -
      No camera node will be created and added to the scene graph.
      -
      IGNORE_LIGHTS -
      No light node will be created and added to the scene graph.
      -
      MAP_WRITABLEIMAGE -
      The maps of a PhongMaterial object will be of type WritableImage.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static FxmlImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static FxmlImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - - - - - -
        -
      • -

        GENERATE_NORMALS

        -
        public static final FxmlImportOption GENERATE_NORMALS
        -
        Normals will be generated based on the given crease angle. - The smoothing groups in the imported file will be ignored. - A new set of smoothing groups will be created afterwards.
        -
        -
        See Also:
        -
        FxmlModelImporter.setCreaseAngle(double)
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_CAMERAS

        -
        public static final FxmlImportOption IGNORE_CAMERAS
        -
        No camera node will be created and added to the scene graph. -

        - Nevertheless, the camera elements will be read and Viewpoint objects will be created.

        -
        -
        See Also:
        -
        FxmlModelImporter.getViewpoints(), -Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_LIGHTS

        -
        public static final FxmlImportOption IGNORE_LIGHTS
        -
        No light node will be created and added to the scene graph. - The light elements will be ignored.
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final FxmlImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        -
      • -
      - - - -
        -
      • -

        MAP_WRITABLEIMAGE

        -
        public static final FxmlImportOption MAP_WRITABLEIMAGE
        -
        The maps of a PhongMaterial object will be of type WritableImage.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static FxmlImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (FxmlImportOption c : FxmlImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static FxmlImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +FxmlImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.fxml
+

Enum FxmlImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS +
      Normals will be generated based on the given crease angle.
      +
      IGNORE_CAMERAS +
      No camera node will be created and added to the scene graph.
      +
      IGNORE_LIGHTS +
      No light node will be created and added to the scene graph.
      +
      MAP_WRITABLEIMAGE +
      The maps of a PhongMaterial object will be of type WritableImage.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static FxmlImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static FxmlImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + + + + + +
        +
      • +

        GENERATE_NORMALS

        +
        public static final FxmlImportOption GENERATE_NORMALS
        +
        Normals will be generated based on the given crease angle. + The smoothing groups in the imported file will be ignored. + A new set of smoothing groups will be created afterwards.
        +
        +
        See Also:
        +
        FxmlModelImporter.setCreaseAngle(double)
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_CAMERAS

        +
        public static final FxmlImportOption IGNORE_CAMERAS
        +
        No camera node will be created and added to the scene graph. +

        + Nevertheless, the camera elements will be read and Viewpoint objects will be created.

        +
        +
        See Also:
        +
        FxmlModelImporter.getViewpoints(), +Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_LIGHTS

        +
        public static final FxmlImportOption IGNORE_LIGHTS
        +
        No light node will be created and added to the scene graph. + The light elements will be ignored.
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final FxmlImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        +
      • +
      + + + +
        +
      • +

        MAP_WRITABLEIMAGE

        +
        public static final FxmlImportOption MAP_WRITABLEIMAGE
        +
        The maps of a PhongMaterial object will be of type WritableImage.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static FxmlImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (FxmlImportOption c : FxmlImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static FxmlImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlModelImporter.html index 1e192194..b3c700b0 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlModelImporter.html @@ -1,852 +1,852 @@ - - - - - -FxmlModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.fxml
-

Class FxmlModelImporter

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      FxmlModelImporter() -
      Creates a model importer for JavaFX 3D FXML files.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() -
      Gets the map which contains the FilePath objects for all imported texture images.
      -
      javafx.scene.NodegetImport() -
      Gets the root Node from the imported file.
      -
      java.util.Map<javafx.scene.Node,FilePath>getIncludedFxmlFilePaths() -
      Gets the map which contains the FilePath objects for all included root nodes.
      -
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() -
      Gets the map which contains all named and used PhongMaterial objects - from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() -
      Gets the map which contains all named (id property) Nodes from the imported file.
      -
      java.util.EnumSet<FxmlImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetResourceBasePath() -
      Gets the path where files associated with the imported 3D model file are located.
      -
      java.net.URLgetResourceBaseUrl() -
      Gets the URL where files associated with the imported 3D model file are located.
      -
      Viewpoint[]getViewpoints() -
      Gets the viewpoints of the imported file.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(java.util.EnumSet<FxmlImportOption> options) -
      Sets the import options.
      -
      voidsetOptions(FxmlImportOption... options) -
      Sets the import options.
      -
      voidsetResourceBasePath(java.lang.String path) -
      Sets the path where files associated with the imported 3D model file are located.
      -
      voidsetResourceBaseUrl(java.net.URL url) -
      Sets the URL where files associated with the imported 3D model file are located.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        FxmlModelImporter

        -
        public FxmlModelImporter()
        -
        Creates a model importer for JavaFX 3D FXML files.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        public java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBasePath in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        public java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBaseUrl in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        public void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBasePath in interface ModelImporter
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        public void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBaseUrl in interface ModelImporter
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Normals are generated if the corresponding option - FxmlImportOption.NORMALS_GENERATION is set. -

        Default value: 45

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        See Also:
        -
        setOptions(FxmlImportOption...), -FxmlImportOption.GENERATE_NORMALS
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<FxmlImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: FxmlImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(FxmlImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: FxmlImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - FxmlImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<FxmlImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: FxmlImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - FxmlImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.Node getImport()
        -
        Gets the root Node from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported root Node or null if no root Node is imported
        -
        -
      • -
      - - - -
        -
      • -

        getNamedNodes

        -
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        -
        Gets the map which contains all named (id property) Nodes from the imported file.
        -
        -
        Returns:
        -
        named Nodes or null if no imported Node is named
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Specified by:
        -
        getNamedMaterials in interface ModelImporter
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Specified by:
        -
        getImageFilePaths in interface ModelImporter
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getIncludedFxmlFilePaths

        -
        public java.util.Map<javafx.scene.Node,FilePath> getIncludedFxmlFilePaths()
        -
        Gets the map which contains the FilePath objects for all included root nodes.
        -
        -
        Returns:
        -
        paths of included root nodes or null if no FXML file is included
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getViewpoints

        -
        public Viewpoint[] getViewpoints()
        -
        Gets the viewpoints of the imported file.
        -
        -
        Returns:
        -
        imported viewpoints or null if no camera element is present in the imported file
        -
        See Also:
        -
        Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +FxmlModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.fxml
+

Class FxmlModelImporter

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      FxmlModelImporter() +
      Creates a model importer for JavaFX 3D FXML files.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() +
      Gets the map which contains the FilePath objects for all imported texture images.
      +
      javafx.scene.NodegetImport() +
      Gets the root Node from the imported file.
      +
      java.util.Map<javafx.scene.Node,FilePath>getIncludedFxmlFilePaths() +
      Gets the map which contains the FilePath objects for all included root nodes.
      +
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() +
      Gets the map which contains all named and used PhongMaterial objects + from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() +
      Gets the map which contains all named (id property) Nodes from the imported file.
      +
      java.util.EnumSet<FxmlImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetResourceBasePath() +
      Gets the path where files associated with the imported 3D model file are located.
      +
      java.net.URLgetResourceBaseUrl() +
      Gets the URL where files associated with the imported 3D model file are located.
      +
      Viewpoint[]getViewpoints() +
      Gets the viewpoints of the imported file.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(java.util.EnumSet<FxmlImportOption> options) +
      Sets the import options.
      +
      voidsetOptions(FxmlImportOption... options) +
      Sets the import options.
      +
      voidsetResourceBasePath(java.lang.String path) +
      Sets the path where files associated with the imported 3D model file are located.
      +
      voidsetResourceBaseUrl(java.net.URL url) +
      Sets the URL where files associated with the imported 3D model file are located.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FxmlModelImporter

        +
        public FxmlModelImporter()
        +
        Creates a model importer for JavaFX 3D FXML files.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        public java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBasePath in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        public java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBaseUrl in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        public void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBasePath in interface ModelImporter
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        public void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBaseUrl in interface ModelImporter
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Normals are generated if the corresponding option + FxmlImportOption.NORMALS_GENERATION is set. +

        Default value: 45

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        See Also:
        +
        setOptions(FxmlImportOption...), +FxmlImportOption.GENERATE_NORMALS
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<FxmlImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: FxmlImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(FxmlImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: FxmlImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + FxmlImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<FxmlImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: FxmlImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + FxmlImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.Node getImport()
        +
        Gets the root Node from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported root Node or null if no root Node is imported
        +
        +
      • +
      + + + +
        +
      • +

        getNamedNodes

        +
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        +
        Gets the map which contains all named (id property) Nodes from the imported file.
        +
        +
        Returns:
        +
        named Nodes or null if no imported Node is named
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Specified by:
        +
        getNamedMaterials in interface ModelImporter
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Specified by:
        +
        getImageFilePaths in interface ModelImporter
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getIncludedFxmlFilePaths

        +
        public java.util.Map<javafx.scene.Node,FilePath> getIncludedFxmlFilePaths()
        +
        Gets the map which contains the FilePath objects for all included root nodes.
        +
        +
        Returns:
        +
        paths of included root nodes or null if no FXML file is included
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getViewpoints

        +
        public Viewpoint[] getViewpoints()
        +
        Gets the viewpoints of the imported file.
        +
        +
        Returns:
        +
        imported viewpoints or null if no camera element is present in the imported file
        +
        See Also:
        +
        Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-frame.html index 5e520369..ba1d64b7 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-frame.html @@ -1,24 +1,24 @@ - - - - - -com.interactivemesh.jfx.importer.fxml (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.fxml

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.fxml (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.fxml

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-summary.html index 9101e95d..6527addf 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-summary.html @@ -1,241 +1,241 @@ - - - - - -com.interactivemesh.jfx.importer.fxml (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.fxml

-
-
- FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.fxml Description

-
- FxmlModelImporterJFX 0.5 - Importer for 3D FXML files. - - -

Supported classes in JavaFX FXML files -

-

-

    -
  • java.lang.Boolean
  • -
  • java.lang.Double
  • -
  • java.lang.Float
  • -
  • java.lang.Integer
  • -
  • java.lang.String
  • -
  • javafx.geometry.Point3D
  • -
  • javafx.scene.AmbientLight
  • -
  • javafx.scene.Group
  • -
  • javafx.scene.ParallelCamera
  • -
  • javafx.scene.PerspectiveCamera
  • -
  • javafx.scene.PointLight
  • -
  • javafx.scene.image.Image
  • -
  • javafx.scene.paint.Color
  • -
  • javafx.scene.paint.PhongMaterial
  • -
  • javafx.scene.shape.Box
  • -
  • javafx.scene.shape.Cylinder
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.Sphere
  • -
  • javafx.scene.shape.TriangleMesh
  • -
  • javafx.scene.transform.Affine
  • -
  • javafx.scene.transform.Rotate
  • -
  • javafx.scene.transform.Scale
  • -
  • javafx.scene.transform.Translate
  • -
-

-

Supported root nodes in main and included FXML files -

-

-

    -
  • javafx.scene.AmbientLight
  • -
  • javafx.scene.Group
  • -
  • javafx.scene.ParallelCamera
  • -
  • javafx.scene.PerspectiveCamera
  • -
  • javafx.scene.PointLight
  • -
  • javafx.scene.shape.Box
  • -
  • javafx.scene.shape.Cylinder
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.Sphere
  • -
-

-

Supported javafx.scene.Node properties in JavaFX FXML files -

-

-

    -
  • id
  • -
  • opacity
  • -
  • rotate
  • -
  • rotationAxis
  • -
  • scaleX, scaleY, scaleZ
  • -
  • translateX, translateY, translateZ
  • -
  • visible
  • -
  • and the ObservableList of Transform objects
  • -
-

-

Supported FXML features -

-

-

    -
  • <fx:include source="mySubScene.fxml"> : including of a root node of another FXML file
  • -
  • <fx:reference source="myPhongMaterial"> : reference to an existing sharable element
  • -
-

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.fxml (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.fxml

+
+
+ FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.fxml Description

+
+ FxmlModelImporterJFX 0.5 - Importer for 3D FXML files. + + +

Supported classes in JavaFX FXML files +

+

+

    +
  • java.lang.Boolean
  • +
  • java.lang.Double
  • +
  • java.lang.Float
  • +
  • java.lang.Integer
  • +
  • java.lang.String
  • +
  • javafx.geometry.Point3D
  • +
  • javafx.scene.AmbientLight
  • +
  • javafx.scene.Group
  • +
  • javafx.scene.ParallelCamera
  • +
  • javafx.scene.PerspectiveCamera
  • +
  • javafx.scene.PointLight
  • +
  • javafx.scene.image.Image
  • +
  • javafx.scene.paint.Color
  • +
  • javafx.scene.paint.PhongMaterial
  • +
  • javafx.scene.shape.Box
  • +
  • javafx.scene.shape.Cylinder
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.Sphere
  • +
  • javafx.scene.shape.TriangleMesh
  • +
  • javafx.scene.transform.Affine
  • +
  • javafx.scene.transform.Rotate
  • +
  • javafx.scene.transform.Scale
  • +
  • javafx.scene.transform.Translate
  • +
+

+

Supported root nodes in main and included FXML files +

+

+

    +
  • javafx.scene.AmbientLight
  • +
  • javafx.scene.Group
  • +
  • javafx.scene.ParallelCamera
  • +
  • javafx.scene.PerspectiveCamera
  • +
  • javafx.scene.PointLight
  • +
  • javafx.scene.shape.Box
  • +
  • javafx.scene.shape.Cylinder
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.Sphere
  • +
+

+

Supported javafx.scene.Node properties in JavaFX FXML files +

+

+

    +
  • id
  • +
  • opacity
  • +
  • rotate
  • +
  • rotationAxis
  • +
  • scaleX, scaleY, scaleZ
  • +
  • translateX, translateY, translateZ
  • +
  • visible
  • +
  • and the ObservableList of Transform objects
  • +
+

+

Supported FXML features +

+

+

    +
  • <fx:include source="mySubScene.fxml"> : including of a root node of another FXML file
  • +
  • <fx:reference source="myPhongMaterial"> : reference to an existing sharable element
  • +
+

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-tree.html index 703db9bf..b347442d 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-tree.html @@ -1,150 +1,150 @@ - - - - - -com.interactivemesh.jfx.importer.fxml Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.fxml

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.fxml Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.fxml

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjImportOption.html index 7b9fe3f3..c4df3c97 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjImportOption.html @@ -1,391 +1,391 @@ - - - - - -ObjImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.obj
-

Enum ObjImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS -
      Normals will be generated based on the given crease angle.
      -
      MAP_WRITABLEIMAGE -
      The maps of a PhongMaterial object will be of type WritableImage.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ObjImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static ObjImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        NONE

        -
        public static final ObjImportOption NONE
        -
        No option is applied.
        -
      • -
      - - - -
        -
      • -

        GENERATE_NORMALS

        -
        public static final ObjImportOption GENERATE_NORMALS
        -
        Normals will be generated based on the given crease angle. The normals - or face smoothing groups in the imported file will be ignored. - A new set of face smoothing groups will be created afterwards.
        -
        -
        See Also:
        -
        ObjModelImporter.setCreaseAngle(double)
        -
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final ObjImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        -
      • -
      - - - -
        -
      • -

        MAP_WRITABLEIMAGE

        -
        public static final ObjImportOption MAP_WRITABLEIMAGE
        -
        The maps of a PhongMaterial object will be of type WritableImage.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static ObjImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (ObjImportOption c : ObjImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static ObjImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ObjImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.obj
+

Enum ObjImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS +
      Normals will be generated based on the given crease angle.
      +
      MAP_WRITABLEIMAGE +
      The maps of a PhongMaterial object will be of type WritableImage.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static ObjImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ObjImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final ObjImportOption NONE
        +
        No option is applied.
        +
      • +
      + + + +
        +
      • +

        GENERATE_NORMALS

        +
        public static final ObjImportOption GENERATE_NORMALS
        +
        Normals will be generated based on the given crease angle. The normals + or face smoothing groups in the imported file will be ignored. + A new set of face smoothing groups will be created afterwards.
        +
        +
        See Also:
        +
        ObjModelImporter.setCreaseAngle(double)
        +
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final ObjImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        +
      • +
      + + + +
        +
      • +

        MAP_WRITABLEIMAGE

        +
        public static final ObjImportOption MAP_WRITABLEIMAGE
        +
        The maps of a PhongMaterial object will be of type WritableImage.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ObjImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ObjImportOption c : ObjImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ObjImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjModelImporter.html index e4cd114b..5a365973 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjModelImporter.html @@ -1,808 +1,808 @@ - - - - - -ObjModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.obj
-

Class ObjModelImporter

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ObjModelImporter() -
      Creates an OBJ model importer.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() -
      Gets the map which contains the FilePath objects for all imported texture images.
      -
      javafx.scene.shape.MeshView[]getImport() -
      Gets the array of MeshViews from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() -
      Gets the map which contains all named and used PhongMaterial objects - from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.shape.MeshView>getNamedMeshViews() -
      Gets the map which contains all named (id property) MeshViews from the imported file.
      -
      java.util.EnumSet<ObjImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetResourceBasePath() -
      Gets the path where files associated with the imported 3D model file are located.
      -
      java.net.URLgetResourceBaseUrl() -
      Gets the URL where files associated with the imported 3D model file are located.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(java.util.EnumSet<ObjImportOption> options) -
      Sets the import options.
      -
      voidsetOptions(ObjImportOption... options) -
      Sets the import options.
      -
      voidsetResourceBasePath(java.lang.String path) -
      Sets the path where files associated with the imported 3D model file are located.
      -
      voidsetResourceBaseUrl(java.net.URL url) -
      Sets the URL where files associated with the imported 3D model file are located.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ObjModelImporter

        -
        public ObjModelImporter()
        -
        Creates an OBJ model importer.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        public java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBasePath in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        public java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBaseUrl in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        public void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBasePath in interface ModelImporter
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        public void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBaseUrl in interface ModelImporter
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45.

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Normals are generated if the corresponding option - ObjImportOption.NORMALS_GENERATION is set or - neither smoothing groups nor normals are given in the imported file. -

        Default value: 45.

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        See Also:
        -
        setOptions(ObjImportOption...), -ObjImportOption.GENERATE_NORMALS
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<ObjImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: ObjImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(ObjImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: ObjImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - ObjImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<ObjImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: ObjImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - ObjImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.shape.MeshView[] getImport()
        -
        Gets the array of MeshViews from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported MeshViews or null if no MeshViews are imported
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMeshViews

        -
        public java.util.Map<java.lang.String,javafx.scene.shape.MeshView> getNamedMeshViews()
        -
        Gets the map which contains all named (id property) MeshViews from the imported file. -

        - A MeshView's id is identical with the corresponding group name if exactly - one material is assigned to all faces of this group. - If more than one material is assigned to a group a MeshView for each material's faces - is created and its id is named with the concatenation of the group and material names: groupName_materialName.

        -
        -
        Returns:
        -
        named MeshViews or null if no imported MeshView is named
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Specified by:
        -
        getNamedMaterials in interface ModelImporter
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Specified by:
        -
        getImageFilePaths in interface ModelImporter
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +ObjModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.obj
+

Class ObjModelImporter

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      ObjModelImporter() +
      Creates an OBJ model importer.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() +
      Gets the map which contains the FilePath objects for all imported texture images.
      +
      javafx.scene.shape.MeshView[]getImport() +
      Gets the array of MeshViews from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() +
      Gets the map which contains all named and used PhongMaterial objects + from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.shape.MeshView>getNamedMeshViews() +
      Gets the map which contains all named (id property) MeshViews from the imported file.
      +
      java.util.EnumSet<ObjImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetResourceBasePath() +
      Gets the path where files associated with the imported 3D model file are located.
      +
      java.net.URLgetResourceBaseUrl() +
      Gets the URL where files associated with the imported 3D model file are located.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(java.util.EnumSet<ObjImportOption> options) +
      Sets the import options.
      +
      voidsetOptions(ObjImportOption... options) +
      Sets the import options.
      +
      voidsetResourceBasePath(java.lang.String path) +
      Sets the path where files associated with the imported 3D model file are located.
      +
      voidsetResourceBaseUrl(java.net.URL url) +
      Sets the URL where files associated with the imported 3D model file are located.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ObjModelImporter

        +
        public ObjModelImporter()
        +
        Creates an OBJ model importer.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        public java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBasePath in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        public java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBaseUrl in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        public void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBasePath in interface ModelImporter
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        public void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBaseUrl in interface ModelImporter
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45.

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Normals are generated if the corresponding option + ObjImportOption.NORMALS_GENERATION is set or + neither smoothing groups nor normals are given in the imported file. +

        Default value: 45.

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        See Also:
        +
        setOptions(ObjImportOption...), +ObjImportOption.GENERATE_NORMALS
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<ObjImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: ObjImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(ObjImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: ObjImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + ObjImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<ObjImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: ObjImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + ObjImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.shape.MeshView[] getImport()
        +
        Gets the array of MeshViews from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported MeshViews or null if no MeshViews are imported
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMeshViews

        +
        public java.util.Map<java.lang.String,javafx.scene.shape.MeshView> getNamedMeshViews()
        +
        Gets the map which contains all named (id property) MeshViews from the imported file. +

        + A MeshView's id is identical with the corresponding group name if exactly + one material is assigned to all faces of this group. + If more than one material is assigned to a group a MeshView for each material's faces + is created and its id is named with the concatenation of the group and material names: groupName_materialName.

        +
        +
        Returns:
        +
        named MeshViews or null if no imported MeshView is named
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Specified by:
        +
        getNamedMaterials in interface ModelImporter
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Specified by:
        +
        getImageFilePaths in interface ModelImporter
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-frame.html index 491ed2ae..eee2232c 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-frame.html @@ -1,24 +1,24 @@ - - - - - -com.interactivemesh.jfx.importer.obj (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.obj

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.obj (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.obj

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-summary.html index aca6d79e..eb161add 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-summary.html @@ -1,362 +1,362 @@ - - - - - -com.interactivemesh.jfx.importer.obj (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.obj

-
-
- ObjModelImporterJFX 0.8 - Importer for OBJ files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.obj Description

-
- ObjModelImporterJFX 0.8 - Importer for OBJ files. - -
-

Supported JavaFX 3D scene graph nodes and attributes -

-

-

    -
  • javafx.scene.image.Image
  • -
  • javafx.scene.image.WritableImage
  • -
  • javafx.scene.paint.Color
  • -
  • javafx.scene.paint.PhongMaterial
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.TriangleMesh
  • -
-

-

Point and line meshes are currently not available. -

-
-

- Mapping OBJ -> JavaFX -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OBJJavaFX
FeatureDescriptionNode/AttributeDescription
    
File *.obj   
    
oobject nameMeshViewid property string, if no group name is provided
ggroup nameMeshViewid property string, mesh property
    
vposition coordinates x, y, zTriangleMeshpoint
vnnormal vector x, y, zTriangleMeshsmoothing group
vttexture coordinates s, tTriangleMeshtexture coordinates
fv/vt/vn ...TriangleMeshface(s)
ssmoothing group numberTriangleMeshsmoothing group number
    
mtllibone or more material library files (*.mtl)  
usemtlreferenced material: 'newmtl' material name in mtl-file MeshViewmaterial property
    
File *.mtl   
    
newmtlmaterial name  
Kddiffuse colorPhongMaterialdiffuse color property
Ksspecular colorPhongMaterialspecular color property
NsshininessPhongMaterialspecular power property
ddissolve factor, transparencyPhongMaterial(waiting for final JavaFX transparency specification)
map_Kddiffuse mapPhongMaterialdiffuse map property
map_Ksspecular mapPhongMaterialspecular map property
map_Bump / bumpbump mapPhongMaterialbump map property
    
-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.obj (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.obj

+
+
+ ObjModelImporterJFX 0.8 - Importer for OBJ files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.obj Description

+
+ ObjModelImporterJFX 0.8 - Importer for OBJ files. + +
+

Supported JavaFX 3D scene graph nodes and attributes +

+

+

    +
  • javafx.scene.image.Image
  • +
  • javafx.scene.image.WritableImage
  • +
  • javafx.scene.paint.Color
  • +
  • javafx.scene.paint.PhongMaterial
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.TriangleMesh
  • +
+

+

Point and line meshes are currently not available. +

+
+

+ Mapping OBJ -> JavaFX +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OBJJavaFX
FeatureDescriptionNode/AttributeDescription
    
File *.obj   
    
oobject nameMeshViewid property string, if no group name is provided
ggroup nameMeshViewid property string, mesh property
    
vposition coordinates x, y, zTriangleMeshpoint
vnnormal vector x, y, zTriangleMeshsmoothing group
vttexture coordinates s, tTriangleMeshtexture coordinates
fv/vt/vn ...TriangleMeshface(s)
ssmoothing group numberTriangleMeshsmoothing group number
    
mtllibone or more material library files (*.mtl)  
usemtlreferenced material: 'newmtl' material name in mtl-file MeshViewmaterial property
    
File *.mtl   
    
newmtlmaterial name  
Kddiffuse colorPhongMaterialdiffuse color property
Ksspecular colorPhongMaterialspecular color property
NsshininessPhongMaterialspecular power property
ddissolve factor, transparencyPhongMaterial(waiting for final JavaFX transparency specification)
map_Kddiffuse mapPhongMaterialdiffuse map property
map_Ksspecular mapPhongMaterialspecular map property
map_Bump / bumpbump mapPhongMaterialbump map property
    
+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-tree.html index 94f1c556..617aebec 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-tree.html @@ -1,150 +1,150 @@ - - - - - -com.interactivemesh.jfx.importer.obj Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.obj

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.obj Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.obj

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-frame.html index dfe714c5..ae500e27 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-frame.html @@ -1,30 +1,30 @@ - - - - - -com.interactivemesh.jfx.importer (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer

-
-

Interfaces

- -

Classes

- -

Exceptions

- -
- - + + + + + +com.interactivemesh.jfx.importer (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer

+
+

Interfaces

+ +

Classes

+ +

Exceptions

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-summary.html index be34ffe6..1b8483db 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-summary.html @@ -1,207 +1,207 @@ - - - - - -com.interactivemesh.jfx.importer (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer

-
-
- Common classes for JavaFX 3D model importers.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer Description

-
- Common classes for JavaFX 3D model importers. -
-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer

+
+
+ Common classes for JavaFX 3D model importers.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer Description

+
+ Common classes for JavaFX 3D model importers. +
+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-tree.html index a890c4f5..88f56678 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-tree.html @@ -1,160 +1,160 @@ - - - - - -com.interactivemesh.jfx.importer Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Interface Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlImportOption.html index 60266547..b9527706 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlImportOption.html @@ -1,371 +1,371 @@ - - - - - -StlImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.stl
-

Enum StlImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      CALCULATE_FACET_NORMAL -
      The facet normals will be calculated.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static StlImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static StlImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        NONE

        -
        public static final StlImportOption NONE
        -
        No option is applied.
        -
      • -
      - - - -
        -
      • -

        CALCULATE_FACET_NORMAL

        -
        public static final StlImportOption CALCULATE_FACET_NORMAL
        -
        The facet normals will be calculated. - The facet normals in the imported file will be ignored.
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final StlImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static StlImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (StlImportOption c : StlImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static StlImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +StlImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.stl
+

Enum StlImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      CALCULATE_FACET_NORMAL +
      The facet normals will be calculated.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static StlImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static StlImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final StlImportOption NONE
        +
        No option is applied.
        +
      • +
      + + + +
        +
      • +

        CALCULATE_FACET_NORMAL

        +
        public static final StlImportOption CALCULATE_FACET_NORMAL
        +
        The facet normals will be calculated. + The facet normals in the imported file will be ignored.
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final StlImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static StlImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (StlImportOption c : StlImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static StlImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlMeshImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlMeshImporter.html index 2065113c..2074a3a1 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlMeshImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlMeshImporter.html @@ -1,653 +1,653 @@ - - - - - -StlMeshImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.stl
-

Class StlMeshImporter

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Importer
    -
    -
    -
    -
    public class StlMeshImporter
    -extends java.lang.Object
    -implements Importer
    -

    A JavaFX importer for ASCII and binary STL files.

    - -

    For further details see the package page.

    - -

    Import process

    - - - - - - - - - - - - - - - -
    - Prepare the importer (opt.) - - Read the file - - React (opt.) - - Access the imported data - - Clean up (recom'd) -
    - - - - - - - - - - - - - - - - - - - - - -
    - -

    Sample code

    -

    Following structure of the application-jar is assumed:

    -

    - ../app/MyApp.class
    - ../app/resources/MyModel.stl -

    -
    -StlMeshImporter stlImporter = new StlMeshImporter();
    -try {
    -    URL modelUrl = this.getClass().getResource("resources/MyModel.stl");
    -    stlImporter.read(modelUrl);            
    -}
    -catch (ImportException e) {
    -    // handle exception
    -}
    -TriangleMesh stlMesh = stlImporter.getImport();
    - 
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      StlMeshImporter() -
      Creates a STL mesh importer.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      javafx.scene.shape.TriangleMeshgetImport() -
      Gets the TriangleMesh from the imported file.
      -
      java.util.EnumSet<StlImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetSolidName() -
      Gets the solid name from the imported ASCII file or - the header from the imported binary file.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(java.util.EnumSet<StlImportOption> options) -
      Sets the import options.
      -
      voidsetOptions(StlImportOption... options) -
      Sets the import options.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        StlMeshImporter

        -
        public StlMeshImporter()
        -
        Creates a STL mesh importer.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Default value: 45

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<StlImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: StlImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(StlImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: StlImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - StlImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<StlImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: StlImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - StlImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.shape.TriangleMesh getImport()
        -
        Gets the TriangleMesh from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported TriangleMesh or null if no TriangleMesh is imported
        -
        -
      • -
      - - - -
        -
      • -

        getSolidName

        -
        public java.lang.String getSolidName()
        -
        Gets the solid name from the imported ASCII file or - the header from the imported binary file.
        -
        -
        Returns:
        -
        solid name or header, null if no TriangleMesh is imported
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +StlMeshImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.stl
+

Class StlMeshImporter

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    Importer
    +
    +
    +
    +
    public class StlMeshImporter
    +extends java.lang.Object
    +implements Importer
    +

    A JavaFX importer for ASCII and binary STL files.

    + +

    For further details see the package page.

    + +

    Import process

    + + + + + + + + + + + + + + + +
    + Prepare the importer (opt.) + + Read the file + + React (opt.) + + Access the imported data + + Clean up (recom'd) +
    + + + + + + + + + + + + + + + + + + + + + +
    + +

    Sample code

    +

    Following structure of the application-jar is assumed:

    +

    + ../app/MyApp.class
    + ../app/resources/MyModel.stl +

    +
    +StlMeshImporter stlImporter = new StlMeshImporter();
    +try {
    +    URL modelUrl = this.getClass().getResource("resources/MyModel.stl");
    +    stlImporter.read(modelUrl);            
    +}
    +catch (ImportException e) {
    +    // handle exception
    +}
    +TriangleMesh stlMesh = stlImporter.getImport();
    + 
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      StlMeshImporter() +
      Creates a STL mesh importer.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      javafx.scene.shape.TriangleMeshgetImport() +
      Gets the TriangleMesh from the imported file.
      +
      java.util.EnumSet<StlImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetSolidName() +
      Gets the solid name from the imported ASCII file or + the header from the imported binary file.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(java.util.EnumSet<StlImportOption> options) +
      Sets the import options.
      +
      voidsetOptions(StlImportOption... options) +
      Sets the import options.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        StlMeshImporter

        +
        public StlMeshImporter()
        +
        Creates a STL mesh importer.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Default value: 45

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<StlImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: StlImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(StlImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: StlImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + StlImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<StlImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: StlImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + StlImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.shape.TriangleMesh getImport()
        +
        Gets the TriangleMesh from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported TriangleMesh or null if no TriangleMesh is imported
        +
        +
      • +
      + + + +
        +
      • +

        getSolidName

        +
        public java.lang.String getSolidName()
        +
        Gets the solid name from the imported ASCII file or + the header from the imported binary file.
        +
        +
        Returns:
        +
        solid name or header, null if no TriangleMesh is imported
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-frame.html index 578366cf..79bcd6f6 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-frame.html @@ -1,24 +1,24 @@ - - - - - -com.interactivemesh.jfx.importer.stl (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.stl

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.stl (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.stl

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-summary.html index 8ec21625..0e9928de 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-summary.html @@ -1,181 +1,181 @@ - - - - - -com.interactivemesh.jfx.importer.stl (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.stl

-
-
- StlMeshImporterJFX 0.7 - Importer for STL files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.stl Description

-
- StlMeshImporterJFX 0.7 - Importer for STL files. - -

Supported JavaFX 3D scene graph attribute -

-

-

    -
  • javafx.scene.shape.TriangleMesh
  • -
-

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.stl (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.stl

+
+
+ StlMeshImporterJFX 0.7 - Importer for STL files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.stl Description

+
+ StlMeshImporterJFX 0.7 - Importer for STL files. + +

Supported JavaFX 3D scene graph attribute +

+

+

    +
  • javafx.scene.shape.TriangleMesh
  • +
+

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-tree.html index def710bb..691c9656 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-tree.html @@ -1,150 +1,150 @@ - - - - - -com.interactivemesh.jfx.importer.stl Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.stl

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.stl Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.stl

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsImportOption.html index 51501486..059ee632 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsImportOption.html @@ -1,391 +1,391 @@ - - - - - -TdsImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.tds
-

Enum TdsImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS -
      Normals will be generated based on the given crease angle.
      -
      MAP_WRITABLEIMAGE -
      The maps of a PhongMaterial object will be of type WritableImage.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static TdsImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static TdsImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        NONE

        -
        public static final TdsImportOption NONE
        -
        No option is applied.
        -
      • -
      - - - -
        -
      • -

        GENERATE_NORMALS

        -
        public static final TdsImportOption GENERATE_NORMALS
        -
        Normals will be generated based on the given crease angle. - The face smoothing groups in the imported file will be ignored. - A new set of face smoothing groups will be created afterwards.
        -
        -
        See Also:
        -
        TdsModelImporter.setCreaseAngle(double)
        -
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final TdsImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        -
      • -
      - - - -
        -
      • -

        MAP_WRITABLEIMAGE

        -
        public static final TdsImportOption MAP_WRITABLEIMAGE
        -
        The maps of a PhongMaterial object will be of type WritableImage.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static TdsImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (TdsImportOption c : TdsImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static TdsImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +TdsImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.tds
+

Enum TdsImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS +
      Normals will be generated based on the given crease angle.
      +
      MAP_WRITABLEIMAGE +
      The maps of a PhongMaterial object will be of type WritableImage.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static TdsImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static TdsImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final TdsImportOption NONE
        +
        No option is applied.
        +
      • +
      + + + +
        +
      • +

        GENERATE_NORMALS

        +
        public static final TdsImportOption GENERATE_NORMALS
        +
        Normals will be generated based on the given crease angle. + The face smoothing groups in the imported file will be ignored. + A new set of face smoothing groups will be created afterwards.
        +
        +
        See Also:
        +
        TdsModelImporter.setCreaseAngle(double)
        +
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final TdsImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise).
        +
      • +
      + + + +
        +
      • +

        MAP_WRITABLEIMAGE

        +
        public static final TdsImportOption MAP_WRITABLEIMAGE
        +
        The maps of a PhongMaterial object will be of type WritableImage.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static TdsImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (TdsImportOption c : TdsImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static TdsImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsModelImporter.html index ec35c9d0..ae4e7b73 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsModelImporter.html @@ -1,811 +1,811 @@ - - - - - -TdsModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.tds
-

Class TdsModelImporter

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      TdsModelImporter() -
      Creates a 3ds model importer.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() -
      Gets the map which contains the FilePath objects for all imported texture images.
      -
      javafx.scene.Node[]getImport() -
      Gets the array of Nodes from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() -
      Gets the map which contains all named and used PhongMaterial objects - from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() -
      Gets the map which contains all named (id property) Nodes from the imported file.
      -
      java.util.EnumSet<TdsImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetResourceBasePath() -
      Gets the path where files associated with the imported 3D model file are located.
      -
      java.net.URLgetResourceBaseUrl() -
      Gets the URL where files associated with the imported 3D model file are located.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(java.util.EnumSet<TdsImportOption> options) -
      Sets the import options.
      -
      voidsetOptions(TdsImportOption... options) -
      Sets the import options.
      -
      voidsetResourceBasePath(java.lang.String path) -
      Sets the path where files associated with the imported 3D model file are located.
      -
      voidsetResourceBaseUrl(java.net.URL url) -
      Sets the URL where files associated with the imported 3D model file are located.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TdsModelImporter

        -
        public TdsModelImporter()
        -
        Creates a 3ds model importer.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        public java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBasePath in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        public java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBaseUrl in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        public void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBasePath in interface ModelImporter
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        public void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBaseUrl in interface ModelImporter
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Normals are generated if the corresponding option - TdsImportOption.NORMALS_GENERATION is set or - smoothing groups are not supplied in the imported file. -

        Default value: 45

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        See Also:
        -
        setOptions(TdsImportOption...), -TdsImportOption.GENERATE_NORMALS
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<TdsImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: TdsImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(TdsImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: TdsImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - TdsImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<TdsImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: TdsImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - TdsImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.Node[] getImport()
        -
        Gets the array of Nodes from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported Nodes or null if no Nodes are imported
        -
        -
      • -
      - - - -
        -
      • -

        getNamedNodes

        -
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        -
        Gets the map which contains all named (id property) Nodes from the imported file.
        -
        -
        Returns:
        -
        named Nodes or null if no imported Node is named
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Specified by:
        -
        getNamedMaterials in interface ModelImporter
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Specified by:
        -
        getImageFilePaths in interface ModelImporter
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +TdsModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.tds
+

Class TdsModelImporter

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      TdsModelImporter() +
      Creates a 3ds model importer.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() +
      Gets the map which contains the FilePath objects for all imported texture images.
      +
      javafx.scene.Node[]getImport() +
      Gets the array of Nodes from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() +
      Gets the map which contains all named and used PhongMaterial objects + from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() +
      Gets the map which contains all named (id property) Nodes from the imported file.
      +
      java.util.EnumSet<TdsImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetResourceBasePath() +
      Gets the path where files associated with the imported 3D model file are located.
      +
      java.net.URLgetResourceBaseUrl() +
      Gets the URL where files associated with the imported 3D model file are located.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(java.util.EnumSet<TdsImportOption> options) +
      Sets the import options.
      +
      voidsetOptions(TdsImportOption... options) +
      Sets the import options.
      +
      voidsetResourceBasePath(java.lang.String path) +
      Sets the path where files associated with the imported 3D model file are located.
      +
      voidsetResourceBaseUrl(java.net.URL url) +
      Sets the URL where files associated with the imported 3D model file are located.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        TdsModelImporter

        +
        public TdsModelImporter()
        +
        Creates a 3ds model importer.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        public java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBasePath in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        public java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBaseUrl in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        public void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBasePath in interface ModelImporter
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        public void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBaseUrl in interface ModelImporter
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Normals are generated if the corresponding option + TdsImportOption.NORMALS_GENERATION is set or + smoothing groups are not supplied in the imported file. +

        Default value: 45

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        See Also:
        +
        setOptions(TdsImportOption...), +TdsImportOption.GENERATE_NORMALS
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<TdsImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: TdsImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(TdsImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: TdsImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + TdsImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<TdsImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: TdsImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + TdsImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.Node[] getImport()
        +
        Gets the array of Nodes from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported Nodes or null if no Nodes are imported
        +
        +
      • +
      + + + +
        +
      • +

        getNamedNodes

        +
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        +
        Gets the map which contains all named (id property) Nodes from the imported file.
        +
        +
        Returns:
        +
        named Nodes or null if no imported Node is named
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Specified by:
        +
        getNamedMaterials in interface ModelImporter
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Specified by:
        +
        getImageFilePaths in interface ModelImporter
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-frame.html index a4d845cd..46e6bfaa 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-frame.html @@ -1,24 +1,24 @@ - - - - - -com.interactivemesh.jfx.importer.tds (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.tds

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.tds (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.tds

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-summary.html index 10b019b0..5ece2423 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-summary.html @@ -1,188 +1,188 @@ - - - - - -com.interactivemesh.jfx.importer.tds (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.tds

-
-
- 3dsModelImporterJFX 0.7 - Importer for 3ds files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.tds Description

-
- 3dsModelImporterJFX 0.7 - Importer for 3ds files. - -
-

Supported JavaFX 3D scene graph nodes and attributes -

-

-

    -
  • javafx.scene.Group
  • -
  • javafx.scene.image.Image
  • -
  • javafx.scene.image.WritableImage
  • -
  • javafx.scene.paint.PhongMaterial
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.TriangleMesh
  • -
  • javafx.scene.transform.Affine
  • -
-

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.tds (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.tds

+
+
+ 3dsModelImporterJFX 0.7 - Importer for 3ds files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.tds Description

+
+ 3dsModelImporterJFX 0.7 - Importer for 3ds files. + +
+

Supported JavaFX 3D scene graph nodes and attributes +

+

+

    +
  • javafx.scene.Group
  • +
  • javafx.scene.image.Image
  • +
  • javafx.scene.image.WritableImage
  • +
  • javafx.scene.paint.PhongMaterial
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.TriangleMesh
  • +
  • javafx.scene.transform.Affine
  • +
+

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-tree.html index fcf531db..d216f07f 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-tree.html @@ -1,150 +1,150 @@ - - - - - -com.interactivemesh.jfx.importer.tds Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.tds

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.tds Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.tds

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.UnitCat.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.UnitCat.html index df9a0bfc..b9fdb386 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.UnitCat.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.UnitCat.html @@ -1,383 +1,383 @@ - - - - - -X3dHead.UnitCat (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Enum X3dHead.UnitCat

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.io.Serializable, java.lang.Comparable<X3dHead.UnitCat>
    -
    -
    -
    Enclosing class:
    -
    X3dHead
    -
    -
    -
    -
    public static enum X3dHead.UnitCat
    -extends java.lang.Enum<X3dHead.UnitCat>
    -
    Base unit category.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      ANGLE -
      Angle.
      -
      FORCE -
      Force.
      -
      LENGTH -
      Length.
      -
      MASS -
      Mass.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static X3dHead.UnitCatvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static X3dHead.UnitCat[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        ANGLE

        -
        public static final X3dHead.UnitCat ANGLE
        -
        Angle. Initial base unit: radian.
        -
      • -
      - - - -
        -
      • -

        FORCE

        -
        public static final X3dHead.UnitCat FORCE
        -
        Force. Initial base unit: newton.
        -
      • -
      - - - -
        -
      • -

        LENGTH

        -
        public static final X3dHead.UnitCat LENGTH
        -
        Length. Initial base unit: metre.
        -
      • -
      - - - -
        -
      • -

        MASS

        -
        public static final X3dHead.UnitCat MASS
        -
        Mass. Initial base unit: kilogram.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static X3dHead.UnitCat[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (X3dHead.UnitCat c : X3dHead.UnitCat.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static X3dHead.UnitCat valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +X3dHead.UnitCat (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.x3d
+

Enum X3dHead.UnitCat

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<X3dHead.UnitCat>
    +
    +
    +
    Enclosing class:
    +
    X3dHead
    +
    +
    +
    +
    public static enum X3dHead.UnitCat
    +extends java.lang.Enum<X3dHead.UnitCat>
    +
    Base unit category.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      ANGLE +
      Angle.
      +
      FORCE +
      Force.
      +
      LENGTH +
      Length.
      +
      MASS +
      Mass.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static X3dHead.UnitCatvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static X3dHead.UnitCat[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        ANGLE

        +
        public static final X3dHead.UnitCat ANGLE
        +
        Angle. Initial base unit: radian.
        +
      • +
      + + + +
        +
      • +

        FORCE

        +
        public static final X3dHead.UnitCat FORCE
        +
        Force. Initial base unit: newton.
        +
      • +
      + + + +
        +
      • +

        LENGTH

        +
        public static final X3dHead.UnitCat LENGTH
        +
        Length. Initial base unit: metre.
        +
      • +
      + + + +
        +
      • +

        MASS

        +
        public static final X3dHead.UnitCat MASS
        +
        Mass. Initial base unit: kilogram.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static X3dHead.UnitCat[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (X3dHead.UnitCat c : X3dHead.UnitCat.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static X3dHead.UnitCat valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.html index ca121c22..c97c3fde 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.html @@ -1,353 +1,353 @@ - - - - - -X3dHead (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Class X3dHead

-
-
- -
-
    -
  • -
    -
    -
    public final class X3dHead
    -extends java.lang.Object
    -
    An X3dHead object comprises attributes of the X3D root element and - the component, meta, and unit elements of its head child element. - Only the declarations of the main X3D file are provided.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      - - - - - - - - - - -
      Nested Classes 
      Modifier and TypeClass and Description
      static class X3dHead.UnitCat -
      Base unit category.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.util.List<javafx.util.Pair<java.lang.String,java.lang.Integer>>getComponents() -
      Gets the list which contains explicitly declared additional components.
      -
      java.util.List<javafx.util.Pair<java.lang.String,java.lang.String>>getMedadata() -
      Gets the list which contains metadata of the X3D file.
      -
      java.lang.StringgetProfile() -
      Gets the profile declaration specifying the set of components and their support levels.
      -
      java.util.Map<X3dHead.UnitCat,javafx.util.Pair<java.lang.String,java.lang.Double>>getUnits() -
      Gets the map which contains altered initial base units.
      -
      java.lang.StringgetVersion() -
      Gets the version number of the X3D standard being supported.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getVersion

        -
        public java.lang.String getVersion()
        -
        Gets the version number of the X3D standard being supported.
        -
        -
        Returns:
        -
        version number
        -
        -
      • -
      - - - -
        -
      • -

        getProfile

        -
        public java.lang.String getProfile()
        -
        Gets the profile declaration specifying the set of components and their support levels.
        -
        -
        Returns:
        -
        profile declaration
        -
        -
      • -
      - - - -
        -
      • -

        getComponents

        -
        public java.util.List<javafx.util.Pair<java.lang.String,java.lang.Integer>> getComponents()
        -
        Gets the list which contains explicitly declared additional components. - A Pair object provides the additional component name and its support level.
        -
        -
        Returns:
        -
        additional components
        -
        -
      • -
      - - - -
        -
      • -

        getMedadata

        -
        public java.util.List<javafx.util.Pair<java.lang.String,java.lang.String>> getMedadata()
        -
        Gets the list which contains metadata of the X3D file. - A Pair object provides a key and data pair.
        -
        -
        Returns:
        -
        metadata about the X3D file
        -
        -
      • -
      - - - -
        -
      • -

        getUnits

        -
        public java.util.Map<X3dHead.UnitCat,javafx.util.Pair<java.lang.String,java.lang.Double>> getUnits()
        -
        Gets the map which contains altered initial base units. - In case of an altered base unit a Pair object provides - the new unit name and the corresponding conversion factor.
        -
        -
        Returns:
        -
        altered base units
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +X3dHead (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.x3d
+

Class X3dHead

+
+
+ +
+
    +
  • +
    +
    +
    public final class X3dHead
    +extends java.lang.Object
    +
    An X3dHead object comprises attributes of the X3D root element and + the component, meta, and unit elements of its head child element. + Only the declarations of the main X3D file are provided.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      + + + + + + + + + + +
      Nested Classes 
      Modifier and TypeClass and Description
      static class X3dHead.UnitCat +
      Base unit category.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.util.List<javafx.util.Pair<java.lang.String,java.lang.Integer>>getComponents() +
      Gets the list which contains explicitly declared additional components.
      +
      java.util.List<javafx.util.Pair<java.lang.String,java.lang.String>>getMedadata() +
      Gets the list which contains metadata of the X3D file.
      +
      java.lang.StringgetProfile() +
      Gets the profile declaration specifying the set of components and their support levels.
      +
      java.util.Map<X3dHead.UnitCat,javafx.util.Pair<java.lang.String,java.lang.Double>>getUnits() +
      Gets the map which contains altered initial base units.
      +
      java.lang.StringgetVersion() +
      Gets the version number of the X3D standard being supported.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getVersion

        +
        public java.lang.String getVersion()
        +
        Gets the version number of the X3D standard being supported.
        +
        +
        Returns:
        +
        version number
        +
        +
      • +
      + + + +
        +
      • +

        getProfile

        +
        public java.lang.String getProfile()
        +
        Gets the profile declaration specifying the set of components and their support levels.
        +
        +
        Returns:
        +
        profile declaration
        +
        +
      • +
      + + + +
        +
      • +

        getComponents

        +
        public java.util.List<javafx.util.Pair<java.lang.String,java.lang.Integer>> getComponents()
        +
        Gets the list which contains explicitly declared additional components. + A Pair object provides the additional component name and its support level.
        +
        +
        Returns:
        +
        additional components
        +
        +
      • +
      + + + +
        +
      • +

        getMedadata

        +
        public java.util.List<javafx.util.Pair<java.lang.String,java.lang.String>> getMedadata()
        +
        Gets the list which contains metadata of the X3D file. + A Pair object provides a key and data pair.
        +
        +
        Returns:
        +
        metadata about the X3D file
        +
        +
      • +
      + + + +
        +
      • +

        getUnits

        +
        public java.util.Map<X3dHead.UnitCat,javafx.util.Pair<java.lang.String,java.lang.Double>> getUnits()
        +
        Gets the map which contains altered initial base units. + In case of an altered base unit a Pair object provides + the new unit name and the corresponding conversion factor.
        +
        +
        Returns:
        +
        altered base units
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dImportOption.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dImportOption.html index 626cc487..c11d038b 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dImportOption.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dImportOption.html @@ -1,431 +1,431 @@ - - - - - -X3dImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Enum X3dImportOption

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS -
      Normals will be generated based on the given crease angle.
      -
      IGNORE_CAMERAS -
      No camera node will be created and added to the scene graph.
      -
      IGNORE_LIGHTS -
      No light node will be created and added to the scene graph.
      -
      MAP_WRITABLEIMAGE -
      The maps of a PhongMaterial object will be of type WritableImage.
      -
      NONE -
      No option is applied.
      -
      REVERSE_GEOMETRY -
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static X3dImportOptionvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static X3dImportOption[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Detail

      - - - -
        -
      • -

        NONE

        -
        public static final X3dImportOption NONE
        -
        No option is applied.
        -
      • -
      - - - -
        -
      • -

        GENERATE_NORMALS

        -
        public static final X3dImportOption GENERATE_NORMALS
        -
        Normals will be generated based on the given crease angle. The normals - in the imported file will be ignored. - A new set of face smoothing groups will be created afterwards.
        -
        -
        See Also:
        -
        X3dModelImporter.setCreaseAngle(double)
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_CAMERAS

        -
        public static final X3dImportOption IGNORE_CAMERAS
        -
        No camera node will be created and added to the scene graph. -

        - Nevertheless, the Viewpoint nodes will be read - and Viewpoint objects will be created.

        -
        -
        See Also:
        -
        X3dModelImporter.getViewpoints(), -Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        IGNORE_LIGHTS

        -
        public static final X3dImportOption IGNORE_LIGHTS
        -
        No light node will be created and added to the scene graph. - The light nodes in the imported file will be ignored.
        -
      • -
      - - - -
        -
      • -

        REVERSE_GEOMETRY

        -
        public static final X3dImportOption REVERSE_GEOMETRY
        -
        The winding of the triangles will be reversed (counterclockwise <-> clockwise). - The triangles of the primitive shapes Box, Cylinder, and Sphere will not be reversed.
        -
      • -
      - - - -
        -
      • -

        MAP_WRITABLEIMAGE

        -
        public static final X3dImportOption MAP_WRITABLEIMAGE
        -
        The maps of a PhongMaterial object will be of type WritableImage.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static X3dImportOption[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (X3dImportOption c : X3dImportOption.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static X3dImportOption valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +X3dImportOption (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.x3d
+

Enum X3dImportOption

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      GENERATE_NORMALS +
      Normals will be generated based on the given crease angle.
      +
      IGNORE_CAMERAS +
      No camera node will be created and added to the scene graph.
      +
      IGNORE_LIGHTS +
      No light node will be created and added to the scene graph.
      +
      MAP_WRITABLEIMAGE +
      The maps of a PhongMaterial object will be of type WritableImage.
      +
      NONE +
      No option is applied.
      +
      REVERSE_GEOMETRY +
      The winding of the triangles will be reversed (counterclockwise <-> clockwise).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static X3dImportOptionvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static X3dImportOption[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final X3dImportOption NONE
        +
        No option is applied.
        +
      • +
      + + + +
        +
      • +

        GENERATE_NORMALS

        +
        public static final X3dImportOption GENERATE_NORMALS
        +
        Normals will be generated based on the given crease angle. The normals + in the imported file will be ignored. + A new set of face smoothing groups will be created afterwards.
        +
        +
        See Also:
        +
        X3dModelImporter.setCreaseAngle(double)
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_CAMERAS

        +
        public static final X3dImportOption IGNORE_CAMERAS
        +
        No camera node will be created and added to the scene graph. +

        + Nevertheless, the Viewpoint nodes will be read + and Viewpoint objects will be created.

        +
        +
        See Also:
        +
        X3dModelImporter.getViewpoints(), +Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        IGNORE_LIGHTS

        +
        public static final X3dImportOption IGNORE_LIGHTS
        +
        No light node will be created and added to the scene graph. + The light nodes in the imported file will be ignored.
        +
      • +
      + + + +
        +
      • +

        REVERSE_GEOMETRY

        +
        public static final X3dImportOption REVERSE_GEOMETRY
        +
        The winding of the triangles will be reversed (counterclockwise <-> clockwise). + The triangles of the primitive shapes Box, Cylinder, and Sphere will not be reversed.
        +
      • +
      + + + +
        +
      • +

        MAP_WRITABLEIMAGE

        +
        public static final X3dImportOption MAP_WRITABLEIMAGE
        +
        The maps of a PhongMaterial object will be of type WritableImage.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static X3dImportOption[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (X3dImportOption c : X3dImportOption.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static X3dImportOption valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dModelImporter.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dModelImporter.html index 6a2636c8..36995bce 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dModelImporter.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dModelImporter.html @@ -1,904 +1,904 @@ - - - - - -X3dModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Class X3dModelImporter

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      X3dModelImporter() -
      Creates an X3D model importer.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() -
      Disposes of the imported data.
      -
      voidclose() -
      Disposes of the imported data and closes the importer.
      -
      doublegetCreaseAngle() -
      Gets the crease angle for normals generation measured in degrees.
      -
      X3dHeadgetHead() -
      Gets the X3dHead object of the imported X3D file.
      -
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() -
      Gets the map which contains the FilePath objects for all imported texture images.
      -
      javafx.scene.Node[]getImport() -
      Gets the array of Nodes from the imported file.
      -
      java.util.Map<javafx.scene.Group,FilePath>getInlinedX3DFilePaths() -
      Gets the map which contains the FilePath objects for all imported inlined X3D files.
      -
      int[]getLayerOrder() -
      Gets the rendering order of the Layer nodes.
      -
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() -
      Gets the map which contains all named and used PhongMaterial objects - from the imported file.
      -
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() -
      Gets the map which contains all named (id property) Nodes from the imported file.
      -
      java.util.EnumSet<X3dImportOption>getOptions() -
      Gets a copy of the import options enum set.
      -
      java.lang.StringgetResourceBasePath() -
      Gets the path where files associated with the imported 3D model file are located.
      -
      java.net.URLgetResourceBaseUrl() -
      Gets the URL where files associated with the imported 3D model file are located.
      -
      Viewpoint[]getViewpoints() -
      Gets the viewpoints of the imported file.
      -
      voidonFileImported() -
      Method is invoked upon completion of import.
      -
      voidread(java.io.File file) -
      Imports a 3D model file passed as a File object.
      -
      voidread(java.lang.String filePath) -
      Imports a 3D model file with the passed file path.
      -
      voidread(java.net.URL url) -
      Imports a 3D model file from the passed location.
      -
      voidsetCreaseAngle(double degrees) -
      Sets the crease angle for normals generation measured in degrees.
      -
      voidsetOptions(java.util.EnumSet<X3dImportOption> options) -
      Sets the import options.
      -
      voidsetOptions(X3dImportOption... options) -
      Sets the import options.
      -
      voidsetResourceBasePath(java.lang.String path) -
      Sets the path where files associated with the imported 3D model file are located.
      -
      voidsetResourceBaseUrl(java.net.URL url) -
      Sets the URL where files associated with the imported 3D model file are located.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        X3dModelImporter

        -
        public X3dModelImporter()
        -
        Creates an X3D model importer.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getResourceBasePath

        -
        public java.lang.String getResourceBasePath()
        -
        Gets the path where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBasePath in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getResourceBaseUrl

        -
        public java.net.URL getResourceBaseUrl()
        -
        Gets the URL where files associated with the imported 3D model file are located. - Default value: null.
        -
        -
        Specified by:
        -
        getResourceBaseUrl in interface ModelImporter
        -
        Returns:
        -
        location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBasePath

        -
        public void setResourceBasePath(java.lang.String path)
        -
        Sets the path where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBasePath in interface ModelImporter
        -
        Parameters:
        -
        path - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        setResourceBaseUrl

        -
        public void setResourceBaseUrl(java.net.URL url)
        -
        Sets the URL where files associated with the imported 3D model file are located. - Only needs to be set if the base directory differs from that - containing the imported 3D model file. Default value: null.
        -
        -
        Specified by:
        -
        setResourceBaseUrl in interface ModelImporter
        -
        Parameters:
        -
        url - location of associated files
        -
        -
      • -
      - - - -
        -
      • -

        getCreaseAngle

        -
        public double getCreaseAngle()
        -
        Gets the crease angle for normals generation measured in degrees. -

        Default value: 45

        -
        -
        Specified by:
        -
        getCreaseAngle in interface Importer
        -
        Returns:
        -
        crease angle for normals generation
        -
        -
      • -
      - - - -
        -
      • -

        setCreaseAngle

        -
        public void setCreaseAngle(double degrees)
        -
        Sets the crease angle for normals generation measured in degrees. - The value will be clamped to [0, 180]. -

        - Normals are generated regarding the given crease angle only if the corresponding option - X3dImportOption.NORMALS_GENERATION is set. -

        - Otherwise, in case of missing normals in the imported file, normals are generated - according to the X3D specifications. -

        Default value: 45

        -
        -
        Specified by:
        -
        setCreaseAngle in interface Importer
        -
        Parameters:
        -
        degrees - crease angle for generating normals
        -
        See Also:
        -
        setOptions(X3dImportOption...), -X3dImportOption.GENERATE_NORMALS
        -
        -
      • -
      - - - -
        -
      • -

        getOptions

        -
        public java.util.EnumSet<X3dImportOption> getOptions()
        -
        Gets a copy of the import options enum set. Default options: X3dImportOption.NONE.
        -
        -
        Returns:
        -
        enum set of the import options
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(X3dImportOption... options)
        -
        Sets the import options. Currently set options are removed. Default options: X3dImportOption.NONE.
        -
        -
        Parameters:
        -
        options - a sequence or an array of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its length is 0, or - X3dImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        setOptions

        -
        public void setOptions(java.util.EnumSet<X3dImportOption> options)
        -
        Sets the import options. Currently set options are removed. Default options: X3dImportOption.NONE.
        -
        -
        Parameters:
        -
        options - enum set of import options
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if options is null, its size is 0, or - X3dImportOption.NONE is not the sole element
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.io.File file)
        -
        Imports a 3D model file passed as a File object. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        file - File object to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.lang.String filePath)
        -
        Imports a 3D model file with the passed file path. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        filePath - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        read

        -
        public void read(java.net.URL url)
        -
        Imports a 3D model file from the passed location. - The data of the last imported file will be disposed of. - The imported data is available as soon as this method returns.
        -
        -
        Specified by:
        -
        read in interface Importer
        -
        Parameters:
        -
        url - location of the file to import
        -
        -
      • -
      - - - -
        -
      • -

        onFileImported

        -
        public void onFileImported()
        -
        Method is invoked upon completion of import. - This implementation doesn't do anything, but may be customized in subclasses.
        -
        -
        Specified by:
        -
        onFileImported in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        getHead

        -
        public X3dHead getHead()
        -
        Gets the X3dHead object of the imported X3D file.
        -
        -
        Returns:
        -
        head data
        -
        See Also:
        -
        X3dHead
        -
        -
      • -
      - - - -
        -
      • -

        getImport

        -
        public javafx.scene.Node[] getImport()
        -
        Gets the array of Nodes from the imported file.
        -
        -
        Specified by:
        -
        getImport in interface Importer
        -
        Returns:
        -
        imported Nodes or null if no Nodes are imported
        -
        -
      • -
      - - - -
        -
      • -

        getLayerOrder

        -
        public int[] getLayerOrder()
        -
        Gets the rendering order of the Layer nodes.
        -
        -
        Returns:
        -
        Layer rendering order or null if the imported file doesn't include a LayerSet and Layer elements
        -
        -
      • -
      - - - -
        -
      • -

        getNamedNodes

        -
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        -
        Gets the map which contains all named (id property) Nodes from the imported file.
        -
        -
        Returns:
        -
        named Nodes or null if no imported Node is named
        -
        -
      • -
      - - - -
        -
      • -

        getNamedMaterials

        -
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        -
        Gets the map which contains all named and used PhongMaterial objects - from the imported file.
        -
        -
        Specified by:
        -
        getNamedMaterials in interface ModelImporter
        -
        Returns:
        -
        named and used PhongMaterials or null if no material is named and used
        -
        -
      • -
      - - - -
        -
      • -

        getImageFilePaths

        -
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported texture images.
        -
        -
        Specified by:
        -
        getImageFilePaths in interface ModelImporter
        -
        Returns:
        -
        paths of imported images or null if no image is imported
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getInlinedX3DFilePaths

        -
        public java.util.Map<javafx.scene.Group,FilePath> getInlinedX3DFilePaths()
        -
        Gets the map which contains the FilePath objects for all imported inlined X3D files.
        -
        -
        Returns:
        -
        paths of inlined X3D files or null if X3D files aren't inlined
        -
        See Also:
        -
        FilePath
        -
        -
      • -
      - - - -
        -
      • -

        getViewpoints

        -
        public Viewpoint[] getViewpoints()
        -
        Gets the viewpoints of the imported file.
        -
        -
        Returns:
        -
        imported viewpoints or null if the imported file doesn't include viewpoint elements
        -
        See Also:
        -
        Viewpoint
        -
        -
      • -
      - - - -
        -
      • -

        clear

        -
        public void clear()
        -
        Disposes of the imported data. - Imported data should be disposed of if the importer isn't used for some time. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        clear in interface Importer
        -
        -
      • -
      - - - -
        -
      • -

        close

        -
        public void close()
        -
        Disposes of the imported data and closes the importer. - The importer should be closed if it isn't used again. - The importer doesn't run the garbage collector.
        -
        -
        Specified by:
        -
        close in interface Importer
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +X3dModelImporter (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + + +
+
com.interactivemesh.jfx.importer.x3d
+

Class X3dModelImporter

+
+
+ +
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      X3dModelImporter() +
      Creates an X3D model importer.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidclear() +
      Disposes of the imported data.
      +
      voidclose() +
      Disposes of the imported data and closes the importer.
      +
      doublegetCreaseAngle() +
      Gets the crease angle for normals generation measured in degrees.
      +
      X3dHeadgetHead() +
      Gets the X3dHead object of the imported X3D file.
      +
      java.util.Map<javafx.scene.image.Image,FilePath>getImageFilePaths() +
      Gets the map which contains the FilePath objects for all imported texture images.
      +
      javafx.scene.Node[]getImport() +
      Gets the array of Nodes from the imported file.
      +
      java.util.Map<javafx.scene.Group,FilePath>getInlinedX3DFilePaths() +
      Gets the map which contains the FilePath objects for all imported inlined X3D files.
      +
      int[]getLayerOrder() +
      Gets the rendering order of the Layer nodes.
      +
      java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial>getNamedMaterials() +
      Gets the map which contains all named and used PhongMaterial objects + from the imported file.
      +
      java.util.Map<java.lang.String,javafx.scene.Node>getNamedNodes() +
      Gets the map which contains all named (id property) Nodes from the imported file.
      +
      java.util.EnumSet<X3dImportOption>getOptions() +
      Gets a copy of the import options enum set.
      +
      java.lang.StringgetResourceBasePath() +
      Gets the path where files associated with the imported 3D model file are located.
      +
      java.net.URLgetResourceBaseUrl() +
      Gets the URL where files associated with the imported 3D model file are located.
      +
      Viewpoint[]getViewpoints() +
      Gets the viewpoints of the imported file.
      +
      voidonFileImported() +
      Method is invoked upon completion of import.
      +
      voidread(java.io.File file) +
      Imports a 3D model file passed as a File object.
      +
      voidread(java.lang.String filePath) +
      Imports a 3D model file with the passed file path.
      +
      voidread(java.net.URL url) +
      Imports a 3D model file from the passed location.
      +
      voidsetCreaseAngle(double degrees) +
      Sets the crease angle for normals generation measured in degrees.
      +
      voidsetOptions(java.util.EnumSet<X3dImportOption> options) +
      Sets the import options.
      +
      voidsetOptions(X3dImportOption... options) +
      Sets the import options.
      +
      voidsetResourceBasePath(java.lang.String path) +
      Sets the path where files associated with the imported 3D model file are located.
      +
      voidsetResourceBaseUrl(java.net.URL url) +
      Sets the URL where files associated with the imported 3D model file are located.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        X3dModelImporter

        +
        public X3dModelImporter()
        +
        Creates an X3D model importer.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResourceBasePath

        +
        public java.lang.String getResourceBasePath()
        +
        Gets the path where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBasePath in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getResourceBaseUrl

        +
        public java.net.URL getResourceBaseUrl()
        +
        Gets the URL where files associated with the imported 3D model file are located. + Default value: null.
        +
        +
        Specified by:
        +
        getResourceBaseUrl in interface ModelImporter
        +
        Returns:
        +
        location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBasePath

        +
        public void setResourceBasePath(java.lang.String path)
        +
        Sets the path where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBasePath in interface ModelImporter
        +
        Parameters:
        +
        path - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        setResourceBaseUrl

        +
        public void setResourceBaseUrl(java.net.URL url)
        +
        Sets the URL where files associated with the imported 3D model file are located. + Only needs to be set if the base directory differs from that + containing the imported 3D model file. Default value: null.
        +
        +
        Specified by:
        +
        setResourceBaseUrl in interface ModelImporter
        +
        Parameters:
        +
        url - location of associated files
        +
        +
      • +
      + + + +
        +
      • +

        getCreaseAngle

        +
        public double getCreaseAngle()
        +
        Gets the crease angle for normals generation measured in degrees. +

        Default value: 45

        +
        +
        Specified by:
        +
        getCreaseAngle in interface Importer
        +
        Returns:
        +
        crease angle for normals generation
        +
        +
      • +
      + + + +
        +
      • +

        setCreaseAngle

        +
        public void setCreaseAngle(double degrees)
        +
        Sets the crease angle for normals generation measured in degrees. + The value will be clamped to [0, 180]. +

        + Normals are generated regarding the given crease angle only if the corresponding option + X3dImportOption.NORMALS_GENERATION is set. +

        + Otherwise, in case of missing normals in the imported file, normals are generated + according to the X3D specifications. +

        Default value: 45

        +
        +
        Specified by:
        +
        setCreaseAngle in interface Importer
        +
        Parameters:
        +
        degrees - crease angle for generating normals
        +
        See Also:
        +
        setOptions(X3dImportOption...), +X3dImportOption.GENERATE_NORMALS
        +
        +
      • +
      + + + +
        +
      • +

        getOptions

        +
        public java.util.EnumSet<X3dImportOption> getOptions()
        +
        Gets a copy of the import options enum set. Default options: X3dImportOption.NONE.
        +
        +
        Returns:
        +
        enum set of the import options
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(X3dImportOption... options)
        +
        Sets the import options. Currently set options are removed. Default options: X3dImportOption.NONE.
        +
        +
        Parameters:
        +
        options - a sequence or an array of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its length is 0, or + X3dImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        setOptions

        +
        public void setOptions(java.util.EnumSet<X3dImportOption> options)
        +
        Sets the import options. Currently set options are removed. Default options: X3dImportOption.NONE.
        +
        +
        Parameters:
        +
        options - enum set of import options
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if options is null, its size is 0, or + X3dImportOption.NONE is not the sole element
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.io.File file)
        +
        Imports a 3D model file passed as a File object. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        file - File object to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.lang.String filePath)
        +
        Imports a 3D model file with the passed file path. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        filePath - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        read

        +
        public void read(java.net.URL url)
        +
        Imports a 3D model file from the passed location. + The data of the last imported file will be disposed of. + The imported data is available as soon as this method returns.
        +
        +
        Specified by:
        +
        read in interface Importer
        +
        Parameters:
        +
        url - location of the file to import
        +
        +
      • +
      + + + +
        +
      • +

        onFileImported

        +
        public void onFileImported()
        +
        Method is invoked upon completion of import. + This implementation doesn't do anything, but may be customized in subclasses.
        +
        +
        Specified by:
        +
        onFileImported in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        getHead

        +
        public X3dHead getHead()
        +
        Gets the X3dHead object of the imported X3D file.
        +
        +
        Returns:
        +
        head data
        +
        See Also:
        +
        X3dHead
        +
        +
      • +
      + + + +
        +
      • +

        getImport

        +
        public javafx.scene.Node[] getImport()
        +
        Gets the array of Nodes from the imported file.
        +
        +
        Specified by:
        +
        getImport in interface Importer
        +
        Returns:
        +
        imported Nodes or null if no Nodes are imported
        +
        +
      • +
      + + + +
        +
      • +

        getLayerOrder

        +
        public int[] getLayerOrder()
        +
        Gets the rendering order of the Layer nodes.
        +
        +
        Returns:
        +
        Layer rendering order or null if the imported file doesn't include a LayerSet and Layer elements
        +
        +
      • +
      + + + +
        +
      • +

        getNamedNodes

        +
        public java.util.Map<java.lang.String,javafx.scene.Node> getNamedNodes()
        +
        Gets the map which contains all named (id property) Nodes from the imported file.
        +
        +
        Returns:
        +
        named Nodes or null if no imported Node is named
        +
        +
      • +
      + + + +
        +
      • +

        getNamedMaterials

        +
        public java.util.Map<java.lang.String,javafx.scene.paint.PhongMaterial> getNamedMaterials()
        +
        Gets the map which contains all named and used PhongMaterial objects + from the imported file.
        +
        +
        Specified by:
        +
        getNamedMaterials in interface ModelImporter
        +
        Returns:
        +
        named and used PhongMaterials or null if no material is named and used
        +
        +
      • +
      + + + +
        +
      • +

        getImageFilePaths

        +
        public java.util.Map<javafx.scene.image.Image,FilePath> getImageFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported texture images.
        +
        +
        Specified by:
        +
        getImageFilePaths in interface ModelImporter
        +
        Returns:
        +
        paths of imported images or null if no image is imported
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getInlinedX3DFilePaths

        +
        public java.util.Map<javafx.scene.Group,FilePath> getInlinedX3DFilePaths()
        +
        Gets the map which contains the FilePath objects for all imported inlined X3D files.
        +
        +
        Returns:
        +
        paths of inlined X3D files or null if X3D files aren't inlined
        +
        See Also:
        +
        FilePath
        +
        +
      • +
      + + + +
        +
      • +

        getViewpoints

        +
        public Viewpoint[] getViewpoints()
        +
        Gets the viewpoints of the imported file.
        +
        +
        Returns:
        +
        imported viewpoints or null if the imported file doesn't include viewpoint elements
        +
        See Also:
        +
        Viewpoint
        +
        +
      • +
      + + + +
        +
      • +

        clear

        +
        public void clear()
        +
        Disposes of the imported data. + Imported data should be disposed of if the importer isn't used for some time. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        clear in interface Importer
        +
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +
        Disposes of the imported data and closes the importer. + The importer should be closed if it isn't used again. + The importer doesn't run the garbage collector.
        +
        +
        Specified by:
        +
        close in interface Importer
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-frame.html index f4e3926c..2d8140bb 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-frame.html @@ -1,26 +1,26 @@ - - - - - -com.interactivemesh.jfx.importer.x3d (JavaFX 3D Model Importers) - - - - - -

com.interactivemesh.jfx.importer.x3d

-
-

Classes

- -

Enums

- -
- - + + + + + +com.interactivemesh.jfx.importer.x3d (JavaFX 3D Model Importers) + + + + + +

com.interactivemesh.jfx.importer.x3d

+
+

Classes

+ +

Enums

+ +
+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-summary.html index e97f0df7..77e7c139 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-summary.html @@ -1,1587 +1,1587 @@ - - - - - -com.interactivemesh.jfx.importer.x3d (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Package com.interactivemesh.jfx.importer.x3d

-
-
- X3dModelImporterJFX 0.4 - Importer for X3D™ files.
-
-

See: Description

-
-
- - - - -

Package com.interactivemesh.jfx.importer.x3d Description

-
- X3dModelImporterJFX 0.4 - Importer for X3D™ files. - -
-

Supported JavaFX 3D scene graph nodes and attributes -

-

-

    - -
  • javafx.scene.Group
  • -
  • javafx.scene.ParallelCamera
  • -
  • javafx.scene.PerspectiveCamera
  • -
  • javafx.scene.PointLight
  • -
  • javafx.scene.image.Image
  • -
  • javafx.scene.image.WritableImage
  • -
  • javafx.scene.paint.Color
  • -
  • javafx.scene.paint.PhongMaterial
  • -
  • javafx.scene.shape.MeshView
  • -
  • javafx.scene.shape.TriangleMesh
  • - -
  • javafx.scene.transform.Rotate
  • -
  • javafx.scene.transform.Scale
  • -
  • javafx.scene.transform.Translate
  • -
-

-
-

- Mapping X3D --> JavaFX 3D -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X3DJavaFX 3D
NodeVersionProfileComponentScene graph node / attributeX3dModelImporter
 3.03.13.23.3  Level Option 
Layering          
           
LayerSet  3.2 FullLayering1  order of layers
Layer  3.2 FullLayering1Group  
           
Inline          
           
Inline3.0   InteractiveNetworking3Group FilePath
           
Groups          
           
Billboard3.0   ImmersiveNavigation2Group  
Collision3.0   ImmersiveNavigation2Group  
Group3.0   InterchangeGrouping1Group  
LOD3.0   ImmersiveNavigation2Group  
PickableGroup   3.3ImmersivePicking1Group  
StaticGroup3.0   FullGrouping3Group  
Switch3.0   InteractiveGrouping2Group  
Transform3.0   InterchangeGrouping1Group/Rotate, Scale, Translate  
Viewport  3.2 FullLayering1Group  
           
CAD          
           
CADLayer 3.1  CADInterchangeCADGeometry2Group  
CADAssembly 3.1  CADInterchangeCADGeometry2Group  
CADPart 3.1  CADInterchangeCADGeometry2Group/Rotate, Scale, Translate  
CADFace 3.1  CADInterchangeCADGeometry2Group  
           
Shape          
           
Shape3.0   InterchangeShape1MeshView, Box, Cylinder, Sphere  
           
Appearance          
           
Appearance3.0   InterchangeShape1PhongMaterial  
           
LineProperties3.0   ImmersiveShape2n. a.  
Material3.0   InterchangeShape1PhongMaterial diffuse/specular color  
MultiTexture3.0   InterchangeTexturing2n. a.  
ImageTexture3.0   InterchangeTexturing1Image, PhongMaterial diffuse mapWritableImageFilePath
TextureProperties  3.2 InterchangeTexturing2n. a.  
ComposedCubeMapTexture 3.1  FullCubeMapTexturing 1n. a.  
ComposedTexture3D 3.1  FullTexturing3D1n. a.  
MultiTextureTransform3.0   InterchangeTexturing2n. a.  
TextureTransform3.0   InterchangeTexturing1n. a.  
TextureMatrixTransform  3.1  FullTexturing3D1n. a.  
TextureTransform3D 3.1  FullTexturing3D1n. a.  
           
Geometry           
           
PointSet3.0   InterchangeRendering1n. a.  
LineSet3.0   InterchangeRendering1n. a.  
TriangleSet3.0   InterchangeRendering3TriangleMesh  
TriangleFanSet3.0   InterchangeRendering3TriangleMesh  
TriangleStripSet3.0   InterchangeRendering3TriangleMesh  
QuadSet 3.1  CADInterchange CADGeometry1TriangleMesh  
           
IndexedLineSet3.0   InterchangeRendering1n. a.  
IndexedTriangleSet3.0   InterchangeRendering3TriangleMesh  
IndexedTriangleFanSet3.0   InterchangeRendering3TriangleMesh  
IndexedTriangleStripSet3.0   InterchangeRendering3TriangleMesh  
IndexedQuadSet 3.1  CADInterchange CADGeometry1TriangleMesh  
           
IndexedFaceSet3.0   InterchangeGeometry3D2TriangleMesh  
           
Box3.0   InterchangeGeometry3D1Box  
Cone3.0   InterchangeGeometry3D1MeshView/TriangleMesh  
Cylinder3.0   InterchangeGeometry3D1Cylinder, MeshView/TriangleMesh  
Sphere3.0   InterchangeGeometry3D1Sphere  
           
Color3.0   InterchangeRendering1n. a.  
ColorRGBA3.0   InterchangeRendering4n. a.  
Coordinate3.0   InterchangeRendering1TriangleMesh points  
CoordinateDouble 3.0   FullNURBS1TriangleMesh points  
Normal3.0   InterchangeRendering2TriangleMesh smoothing groups  
MultiTextureCoordinate3.0   InterchangeTexturing2n. a.  
TextureCoordinateGenerator3.0   InterchangeTexturing2n. a.  
TextureCoordinate3.0   InterchangeTexturing1TriangleMesh texture coordinates  
TextureCoordinate3D 3.1  FullTexturing3D1n. a.  
TextureCoordinate4D 3.1  FullTexturing3D1n. a.  
FloatVertexAttribute 3.1  FullShaders1n. a.  
           
Lighting          
           
DirectionalLight3.0   InterchangeLighting1PointLightignored 
PointLight3.0   InteractiveLighting2PointLight/Translateignored 
SpotLight3.0   InteractiveLighting2PointLight/Translateignored 
           
Viewing          
           
OrthoViewpoint  3.2 FullNavigation3ParallelCamera/Rotate, TranslateignoredViewpoint
Viewpoint3.0   InterchangeNavigation1PerspectveCamera/Rotate, TranslateignoredViewpoint
ViewpointGroup  3.2 FullNavigation3-ignored 
           
-
-

- Further implementation details -

-

TODO

-
-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.x3d (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Package com.interactivemesh.jfx.importer.x3d

+
+
+ X3dModelImporterJFX 0.4 - Importer for X3D™ files.
+
+

See: Description

+
+
+ + + + +

Package com.interactivemesh.jfx.importer.x3d Description

+
+ X3dModelImporterJFX 0.4 - Importer for X3D™ files. + +
+

Supported JavaFX 3D scene graph nodes and attributes +

+

+

    + +
  • javafx.scene.Group
  • +
  • javafx.scene.ParallelCamera
  • +
  • javafx.scene.PerspectiveCamera
  • +
  • javafx.scene.PointLight
  • +
  • javafx.scene.image.Image
  • +
  • javafx.scene.image.WritableImage
  • +
  • javafx.scene.paint.Color
  • +
  • javafx.scene.paint.PhongMaterial
  • +
  • javafx.scene.shape.MeshView
  • +
  • javafx.scene.shape.TriangleMesh
  • + +
  • javafx.scene.transform.Rotate
  • +
  • javafx.scene.transform.Scale
  • +
  • javafx.scene.transform.Translate
  • +
+

+
+

+ Mapping X3D --> JavaFX 3D +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
X3DJavaFX 3D
NodeVersionProfileComponentScene graph node / attributeX3dModelImporter
 3.03.13.23.3  Level Option 
Layering          
           
LayerSet  3.2 FullLayering1  order of layers
Layer  3.2 FullLayering1Group  
           
Inline          
           
Inline3.0   InteractiveNetworking3Group FilePath
           
Groups          
           
Billboard3.0   ImmersiveNavigation2Group  
Collision3.0   ImmersiveNavigation2Group  
Group3.0   InterchangeGrouping1Group  
LOD3.0   ImmersiveNavigation2Group  
PickableGroup   3.3ImmersivePicking1Group  
StaticGroup3.0   FullGrouping3Group  
Switch3.0   InteractiveGrouping2Group  
Transform3.0   InterchangeGrouping1Group/Rotate, Scale, Translate  
Viewport  3.2 FullLayering1Group  
           
CAD          
           
CADLayer 3.1  CADInterchangeCADGeometry2Group  
CADAssembly 3.1  CADInterchangeCADGeometry2Group  
CADPart 3.1  CADInterchangeCADGeometry2Group/Rotate, Scale, Translate  
CADFace 3.1  CADInterchangeCADGeometry2Group  
           
Shape          
           
Shape3.0   InterchangeShape1MeshView, Box, Cylinder, Sphere  
           
Appearance          
           
Appearance3.0   InterchangeShape1PhongMaterial  
           
LineProperties3.0   ImmersiveShape2n. a.  
Material3.0   InterchangeShape1PhongMaterial diffuse/specular color  
MultiTexture3.0   InterchangeTexturing2n. a.  
ImageTexture3.0   InterchangeTexturing1Image, PhongMaterial diffuse mapWritableImageFilePath
TextureProperties  3.2 InterchangeTexturing2n. a.  
ComposedCubeMapTexture 3.1  FullCubeMapTexturing 1n. a.  
ComposedTexture3D 3.1  FullTexturing3D1n. a.  
MultiTextureTransform3.0   InterchangeTexturing2n. a.  
TextureTransform3.0   InterchangeTexturing1n. a.  
TextureMatrixTransform  3.1  FullTexturing3D1n. a.  
TextureTransform3D 3.1  FullTexturing3D1n. a.  
           
Geometry           
           
PointSet3.0   InterchangeRendering1n. a.  
LineSet3.0   InterchangeRendering1n. a.  
TriangleSet3.0   InterchangeRendering3TriangleMesh  
TriangleFanSet3.0   InterchangeRendering3TriangleMesh  
TriangleStripSet3.0   InterchangeRendering3TriangleMesh  
QuadSet 3.1  CADInterchange CADGeometry1TriangleMesh  
           
IndexedLineSet3.0   InterchangeRendering1n. a.  
IndexedTriangleSet3.0   InterchangeRendering3TriangleMesh  
IndexedTriangleFanSet3.0   InterchangeRendering3TriangleMesh  
IndexedTriangleStripSet3.0   InterchangeRendering3TriangleMesh  
IndexedQuadSet 3.1  CADInterchange CADGeometry1TriangleMesh  
           
IndexedFaceSet3.0   InterchangeGeometry3D2TriangleMesh  
           
Box3.0   InterchangeGeometry3D1Box  
Cone3.0   InterchangeGeometry3D1MeshView/TriangleMesh  
Cylinder3.0   InterchangeGeometry3D1Cylinder, MeshView/TriangleMesh  
Sphere3.0   InterchangeGeometry3D1Sphere  
           
Color3.0   InterchangeRendering1n. a.  
ColorRGBA3.0   InterchangeRendering4n. a.  
Coordinate3.0   InterchangeRendering1TriangleMesh points  
CoordinateDouble 3.0   FullNURBS1TriangleMesh points  
Normal3.0   InterchangeRendering2TriangleMesh smoothing groups  
MultiTextureCoordinate3.0   InterchangeTexturing2n. a.  
TextureCoordinateGenerator3.0   InterchangeTexturing2n. a.  
TextureCoordinate3.0   InterchangeTexturing1TriangleMesh texture coordinates  
TextureCoordinate3D 3.1  FullTexturing3D1n. a.  
TextureCoordinate4D 3.1  FullTexturing3D1n. a.  
FloatVertexAttribute 3.1  FullShaders1n. a.  
           
Lighting          
           
DirectionalLight3.0   InterchangeLighting1PointLightignored 
PointLight3.0   InteractiveLighting2PointLight/Translateignored 
SpotLight3.0   InteractiveLighting2PointLight/Translateignored 
           
Viewing          
           
OrthoViewpoint  3.2 FullNavigation3ParallelCamera/Rotate, TranslateignoredViewpoint
Viewpoint3.0   InterchangeNavigation1PerspectveCamera/Rotate, TranslateignoredViewpoint
ViewpointGroup  3.2 FullNavigation3-ignored 
           
+
+

+ Further implementation details +

+

TODO

+
+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-tree.html index ff0f03c1..c6ee6d48 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-tree.html @@ -1,152 +1,152 @@ - - - - - -com.interactivemesh.jfx.importer.x3d Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer.x3d

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +com.interactivemesh.jfx.importer.x3d Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For Package com.interactivemesh.jfx.importer.x3d

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/constant-values.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/constant-values.html index 9d3cdc9a..07c1e0b2 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/constant-values.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/constant-values.html @@ -1,125 +1,125 @@ - - - - - -Constant Field Values (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Constant Field Values

-

Contents

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Constant Field Values (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Constant Field Values

+

Contents

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/deprecated-list.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/deprecated-list.html index 03a47b38..7a445ed4 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/deprecated-list.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/deprecated-list.html @@ -1,125 +1,125 @@ - - - - - -Deprecated List (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Deprecated API

-

Contents

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Deprecated List (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Deprecated API

+

Contents

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/help-doc.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/help-doc.html index be8b7d96..8ba0f699 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/help-doc.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/help-doc.html @@ -1,226 +1,226 @@ - - - - - -API Help (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

How This API Document Is Organized

-
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
-
-
- -This help file applies to API documentation generated using the standard doclet.
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +API Help (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ +This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-1.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-1.html index a491f1be..2a4fbac5 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-1.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-1.html @@ -1,243 +1,243 @@ - - - - - -C-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

C

-
-
clear() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Disposes of the imported data.
-
-
clear() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Disposes of the imported data.
-
-
clear() - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Disposes of the imported data.
-
-
clear() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Disposes of the imported data.
-
-
clear() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Disposes of the imported data.
-
-
clear() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Disposes of the imported data.
-
-
clear() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Disposes of the imported data.
-
-
close() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Disposes of the imported data and closes the importer.
-
-
close() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Disposes of the imported data and closes the importer.
-
-
ColAsset - Class in com.interactivemesh.jfx.importer.col
-
-
A ColAsset object provides the attributes of the asset child element and - the version number of the COLLADA root element.
-
-
ColAsset.Contributor - Class in com.interactivemesh.jfx.importer.col
-
-
A Contributor object provides authoring information.
-
-
ColAsset.GeographicLocation - Class in com.interactivemesh.jfx.importer.col
-
-
A GeographicLocation object provides geographic location information.
-
-
ColAsset.UpAxis - Enum in com.interactivemesh.jfx.importer.col
-
-
UpAxis describes the coordinate system of the geometric data.
-
-
ColImportOption - Enum in com.interactivemesh.jfx.importer.col
-
-
Import options for the JavaFX COLLADA model importer.
-
-
ColModelImporter - Class in com.interactivemesh.jfx.importer.col
-
-

A JavaFX model importer for COLLADA 1.4.1 and 1.5.0 files.

-
-
ColModelImporter() - Constructor for class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Creates a COLLADA 1.4.1 and 1.5.0 model importer.
-
-
com.interactivemesh.jfx.importer - package com.interactivemesh.jfx.importer
-
-
- Common classes for JavaFX 3D model importers.
-
-
com.interactivemesh.jfx.importer.fxml - package com.interactivemesh.jfx.importer.fxml
-
-
- FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
-
-
com.interactivemesh.jfx.importer.obj - package com.interactivemesh.jfx.importer.obj
-
-
- ObjModelImporterJFX 0.8 - Importer for OBJ files.
-
-
com.interactivemesh.jfx.importer.stl - package com.interactivemesh.jfx.importer.stl
-
-
- StlMeshImporterJFX 0.7 - Importer for STL files.
-
-
com.interactivemesh.jfx.importer.tds - package com.interactivemesh.jfx.importer.tds
-
-
- 3dsModelImporterJFX 0.7 - Importer for 3ds files.
-
-
com.interactivemesh.jfx.importer.x3d - package com.interactivemesh.jfx.importer.x3d
-
-
- X3dModelImporterJFX 0.4 - Importer for X3D™ files.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +C-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

C

+
+
clear() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Disposes of the imported data.
+
+
clear() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Disposes of the imported data.
+
+
clear() - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Disposes of the imported data.
+
+
clear() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Disposes of the imported data.
+
+
clear() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Disposes of the imported data.
+
+
clear() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Disposes of the imported data.
+
+
clear() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Disposes of the imported data.
+
+
close() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Disposes of the imported data and closes the importer.
+
+
close() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Disposes of the imported data and closes the importer.
+
+
ColAsset - Class in com.interactivemesh.jfx.importer.col
+
+
A ColAsset object provides the attributes of the asset child element and + the version number of the COLLADA root element.
+
+
ColAsset.Contributor - Class in com.interactivemesh.jfx.importer.col
+
+
A Contributor object provides authoring information.
+
+
ColAsset.GeographicLocation - Class in com.interactivemesh.jfx.importer.col
+
+
A GeographicLocation object provides geographic location information.
+
+
ColAsset.UpAxis - Enum in com.interactivemesh.jfx.importer.col
+
+
UpAxis describes the coordinate system of the geometric data.
+
+
ColImportOption - Enum in com.interactivemesh.jfx.importer.col
+
+
Import options for the JavaFX COLLADA model importer.
+
+
ColModelImporter - Class in com.interactivemesh.jfx.importer.col
+
+

A JavaFX model importer for COLLADA 1.4.1 and 1.5.0 files.

+
+
ColModelImporter() - Constructor for class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Creates a COLLADA 1.4.1 and 1.5.0 model importer.
+
+
com.interactivemesh.jfx.importer - package com.interactivemesh.jfx.importer
+
+
+ Common classes for JavaFX 3D model importers.
+
+
com.interactivemesh.jfx.importer.fxml - package com.interactivemesh.jfx.importer.fxml
+
+
+ FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
+
+
com.interactivemesh.jfx.importer.obj - package com.interactivemesh.jfx.importer.obj
+
+
+ ObjModelImporterJFX 0.8 - Importer for OBJ files.
+
+
com.interactivemesh.jfx.importer.stl - package com.interactivemesh.jfx.importer.stl
+
+
+ StlMeshImporterJFX 0.7 - Importer for STL files.
+
+
com.interactivemesh.jfx.importer.tds - package com.interactivemesh.jfx.importer.tds
+
+
+ 3dsModelImporterJFX 0.7 - Importer for 3ds files.
+
+
com.interactivemesh.jfx.importer.x3d - package com.interactivemesh.jfx.importer.x3d
+
+
+ X3dModelImporterJFX 0.4 - Importer for X3D™ files.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-10.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-10.html index bd87852a..735c2ea3 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-10.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-10.html @@ -1,208 +1,208 @@ - - - - - -V-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

V

-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.col.ColAsset.UpAxis
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.col.ColImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.fxml.FxmlImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.obj.ObjImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.stl.StlImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.tds.TdsImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dHead.UnitCat
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dImportOption
-
-
Returns the enum constant of this type with the specified name.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.col.ColAsset.UpAxis
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.col.ColImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.fxml.FxmlImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.obj.ObjImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.stl.StlImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.tds.TdsImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dHead.UnitCat
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dImportOption
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
Viewpoint - Class in com.interactivemesh.jfx.importer
-
-
A Viewpoint object provides viewing properties of a JavaFX Camera object.
-
-
Viewpoint() - Constructor for class com.interactivemesh.jfx.importer.Viewpoint
-
-
Constructs a perspective Viewpoint object with an identity transform.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +V-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

V

+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.col.ColAsset.UpAxis
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.col.ColImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.fxml.FxmlImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.obj.ObjImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.stl.StlImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.tds.TdsImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dHead.UnitCat
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dImportOption
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.col.ColAsset.UpAxis
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.col.ColImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.fxml.FxmlImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.obj.ObjImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.stl.StlImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.tds.TdsImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dHead.UnitCat
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.interactivemesh.jfx.importer.x3d.X3dImportOption
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
Viewpoint - Class in com.interactivemesh.jfx.importer
+
+
A Viewpoint object provides viewing properties of a JavaFX Camera object.
+
+
Viewpoint() - Constructor for class com.interactivemesh.jfx.importer.Viewpoint
+
+
Constructs a perspective Viewpoint object with an identity transform.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-11.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-11.html index 1e2a7761..9dbb03a6 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-11.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-11.html @@ -1,149 +1,149 @@ - - - - - -X-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

X

-
-
X3dHead - Class in com.interactivemesh.jfx.importer.x3d
-
-
An X3dHead object comprises attributes of the X3D root element and - the component, meta, and unit elements of its head child element.
-
-
X3dHead.UnitCat - Enum in com.interactivemesh.jfx.importer.x3d
-
-
Base unit category.
-
-
X3dImportOption - Enum in com.interactivemesh.jfx.importer.x3d
-
-
Import options for the JavaFX X3D model importer.
-
-
X3dModelImporter - Class in com.interactivemesh.jfx.importer.x3d
-
-

A JavaFX model importer for X3D files.

-
-
X3dModelImporter() - Constructor for class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Creates an X3D model importer.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +X-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

X

+
+
X3dHead - Class in com.interactivemesh.jfx.importer.x3d
+
+
An X3dHead object comprises attributes of the X3D root element and + the component, meta, and unit elements of its head child element.
+
+
X3dHead.UnitCat - Enum in com.interactivemesh.jfx.importer.x3d
+
+
Base unit category.
+
+
X3dImportOption - Enum in com.interactivemesh.jfx.importer.x3d
+
+
Import options for the JavaFX X3D model importer.
+
+
X3dModelImporter - Class in com.interactivemesh.jfx.importer.x3d
+
+

A JavaFX model importer for X3D files.

+
+
X3dModelImporter() - Constructor for class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Creates an X3D model importer.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-2.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-2.html index 8c7c6ddb..6f6dd562 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-2.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-2.html @@ -1,151 +1,151 @@ - - - - - -F-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

F

-
-
FilePath - Class in com.interactivemesh.jfx.importer
-
-
A FilePath object represents the paths of a resource file - associated with the imported 3D model file.
-
-
FilePath(String, URL) - Constructor for class com.interactivemesh.jfx.importer.FilePath
-
-
A FilePath object represents the paths of a referenced file - by the string as read from the imported 3D model file and - by the corresponding absolute Uniform Resource Locator (URL) object.
-
-
FxmlImportOption - Enum in com.interactivemesh.jfx.importer.fxml
-
-
Import options for the JavaFX FXML model importer.
-
-
FxmlModelImporter - Class in com.interactivemesh.jfx.importer.fxml
-
-

A JavaFX model importer for 3D FXML files.

-
-
FxmlModelImporter() - Constructor for class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Creates a model importer for JavaFX 3D FXML files.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +F-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

F

+
+
FilePath - Class in com.interactivemesh.jfx.importer
+
+
A FilePath object represents the paths of a resource file + associated with the imported 3D model file.
+
+
FilePath(String, URL) - Constructor for class com.interactivemesh.jfx.importer.FilePath
+
+
A FilePath object represents the paths of a referenced file + by the string as read from the imported 3D model file and + by the corresponding absolute Uniform Resource Locator (URL) object.
+
+
FxmlImportOption - Enum in com.interactivemesh.jfx.importer.fxml
+
+
Import options for the JavaFX FXML model importer.
+
+
FxmlModelImporter - Class in com.interactivemesh.jfx.importer.fxml
+
+

A JavaFX model importer for 3D FXML files.

+
+
FxmlModelImporter() - Constructor for class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Creates a model importer for JavaFX 3D FXML files.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-3.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-3.html index 0dec4919..9d29ba0f 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-3.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-3.html @@ -1,515 +1,515 @@ - - - - - -G-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

G

-
-
getAbsolutePath() - Method in class com.interactivemesh.jfx.importer.FilePath
-
-
Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
-
-
getAltitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
-
-
Gets the altitude value in meters.
-
-
getAltitudeMode() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
-
-
Gets the mode of the altitude value.
-
-
getAsset() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the asset attributes of the imported COLLADA root element.
-
-
getAuthor() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the name of the author.
-
-
getAuthorEmail() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the email address of the author.
-
-
getAuthoringTool() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the name of the authoring tool.
-
-
getAuthorWebsite() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the URL of the author's website.
-
-
getCenterOfRotation() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the center of rotation.
-
-
getColladaFilePaths() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the paths of included COLLADA files which are used for external referencing.
-
-
getComments() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the comments of the contributor.
-
-
getComponents() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
-
-
Gets the list which contains explicitly declared additional components.
-
-
getContributors() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the contributors of the COLLADA file.
-
-
getCopyright() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets the copyright information.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the crease angle for normals generation measured in degrees.
-
-
getCreatedDate() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the date and time when the COLADA file was created (in an ISO 8601 format).
-
-
getFarClip() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the far clipping plane distance.
-
-
getFieldOfView() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the field of view value.
-
-
getGeographicLocation() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the geographic location information of the COLLADA file.
-
-
getHead() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the X3dHead object of the imported X3D file.
-
-
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImageFilePaths() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the map which contains the FilePath objects for all imported texture images.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the array of Nodes from the imported file.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the root Node from the imported file.
-
-
getImport() - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Gets the imported 3D data.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the array of MeshViews from the imported file.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Gets the TriangleMesh from the imported file.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the array of Nodes from the imported file.
-
-
getImport() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the array of Nodes from the imported file.
-
-
getImportedPath() - Method in class com.interactivemesh.jfx.importer.FilePath
-
-
Gets the path string of a referenced file as read from the imported 3D model file.
-
-
getIncludedFxmlFilePaths() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the map which contains the FilePath objects for all included root nodes.
-
-
getInlinedX3DFilePaths() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the map which contains the FilePath objects for all imported inlined X3D files.
-
-
getKeywords() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets a list of words used as search criteria.
-
-
getLatitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
-
-
Gets the latitude value in degrees.
-
-
getLayerOrder() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the rendering order of the Layer nodes.
-
-
getLongitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
-
-
Gets the longitude value in degrees.
-
-
getMedadata() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
-
-
Gets the list which contains metadata of the X3D file.
-
-
getModifiedDate() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
-
-
getName() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the name.
-
-
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMaterials() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the map which contains all named and used PhongMaterial objects - from the imported file.
-
-
getNamedMeshViews() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the map which contains all named (id property) MeshViews from the imported file.
-
-
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the map which contains all named (id property) Nodes from the imported file.
-
-
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the map which contains all named (id property) Nodes from the imported file.
-
-
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the map which contains all named (id property) Nodes from the imported file.
-
-
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the map which contains all named (id property) Nodes from the imported file.
-
-
getNearClip() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the near clipping plane distance.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets a copy of the import options enum set.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets a copy of the import options enum set.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets a copy of the import options enum set.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Gets a copy of the import options enum set.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets a copy of the import options enum set.
-
-
getOptions() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets a copy of the import options enum set.
-
-
getProfile() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
-
-
Gets the profile declaration specifying the set of components and their support levels.
-
-
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBasePath() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the path where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the URL where files associated with the imported 3D model file are located.
-
-
getRevision() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the revision information of the COLLADA file.
-
-
getSolidName() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Gets the solid name from the imported ASCII file or - the header from the imported binary file.
-
-
getSourceData() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
-
-
Gets a URI reference to the source data
-
-
getSubject() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets a description of the topical subject of the COLLADA file.
-
-
getTitle() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the title information of the COLLADA file.
-
-
getTransform() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the affine transform.
-
-
getUnitMeter() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the real-world meters of one distance unit as a floating-point number.
-
-
getUnitName() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the name of the distance unit used in the COLLADA file.
-
-
getUnits() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
-
-
Gets the map which contains altered initial base units.
-
-
getUpAxis() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the coordinate system of the geometric data.
-
-
getVersion() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
-
-
Gets the version number of the COLLADA file.
-
-
getVersion() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
-
-
Gets the version number of the X3D standard being supported.
-
-
getViewpoints() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Gets the viewpoints of the imported file.
-
-
getViewpoints() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Gets the viewpoints of the imported file.
-
-
getViewpoints() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Gets the viewpoints of the imported file.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +G-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

G

+
+
getAbsolutePath() - Method in class com.interactivemesh.jfx.importer.FilePath
+
+
Gets the absolute path of a referenced file as a Uniform Resource Locator (URL) object.
+
+
getAltitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
+
+
Gets the altitude value in meters.
+
+
getAltitudeMode() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
+
+
Gets the mode of the altitude value.
+
+
getAsset() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the asset attributes of the imported COLLADA root element.
+
+
getAuthor() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the name of the author.
+
+
getAuthorEmail() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the email address of the author.
+
+
getAuthoringTool() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the name of the authoring tool.
+
+
getAuthorWebsite() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the URL of the author's website.
+
+
getCenterOfRotation() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the center of rotation.
+
+
getColladaFilePaths() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the paths of included COLLADA files which are used for external referencing.
+
+
getComments() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the comments of the contributor.
+
+
getComponents() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
+
+
Gets the list which contains explicitly declared additional components.
+
+
getContributors() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the contributors of the COLLADA file.
+
+
getCopyright() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets the copyright information.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreaseAngle() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the crease angle for normals generation measured in degrees.
+
+
getCreatedDate() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the date and time when the COLADA file was created (in an ISO 8601 format).
+
+
getFarClip() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the far clipping plane distance.
+
+
getFieldOfView() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the field of view value.
+
+
getGeographicLocation() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the geographic location information of the COLLADA file.
+
+
getHead() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the X3dHead object of the imported X3D file.
+
+
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImageFilePaths() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImageFilePaths() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the map which contains the FilePath objects for all imported texture images.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the array of Nodes from the imported file.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the root Node from the imported file.
+
+
getImport() - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Gets the imported 3D data.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the array of MeshViews from the imported file.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Gets the TriangleMesh from the imported file.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the array of Nodes from the imported file.
+
+
getImport() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the array of Nodes from the imported file.
+
+
getImportedPath() - Method in class com.interactivemesh.jfx.importer.FilePath
+
+
Gets the path string of a referenced file as read from the imported 3D model file.
+
+
getIncludedFxmlFilePaths() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the map which contains the FilePath objects for all included root nodes.
+
+
getInlinedX3DFilePaths() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the map which contains the FilePath objects for all imported inlined X3D files.
+
+
getKeywords() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets a list of words used as search criteria.
+
+
getLatitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
+
+
Gets the latitude value in degrees.
+
+
getLayerOrder() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the rendering order of the Layer nodes.
+
+
getLongitude() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.GeographicLocation
+
+
Gets the longitude value in degrees.
+
+
getMedadata() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
+
+
Gets the list which contains metadata of the X3D file.
+
+
getModifiedDate() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets date and time when the COLADA file was last modified (in an ISO 8601 format).
+
+
getName() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the name.
+
+
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMaterials() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMaterials() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the map which contains all named and used PhongMaterial objects + from the imported file.
+
+
getNamedMeshViews() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the map which contains all named (id property) MeshViews from the imported file.
+
+
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the map which contains all named (id property) Nodes from the imported file.
+
+
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the map which contains all named (id property) Nodes from the imported file.
+
+
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the map which contains all named (id property) Nodes from the imported file.
+
+
getNamedNodes() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the map which contains all named (id property) Nodes from the imported file.
+
+
getNearClip() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the near clipping plane distance.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets a copy of the import options enum set.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets a copy of the import options enum set.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets a copy of the import options enum set.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Gets a copy of the import options enum set.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets a copy of the import options enum set.
+
+
getOptions() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets a copy of the import options enum set.
+
+
getProfile() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
+
+
Gets the profile declaration specifying the set of components and their support levels.
+
+
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBasePath() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBasePath() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the path where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getResourceBaseUrl() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the URL where files associated with the imported 3D model file are located.
+
+
getRevision() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the revision information of the COLLADA file.
+
+
getSolidName() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Gets the solid name from the imported ASCII file or + the header from the imported binary file.
+
+
getSourceData() - Method in class com.interactivemesh.jfx.importer.col.ColAsset.Contributor
+
+
Gets a URI reference to the source data
+
+
getSubject() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets a description of the topical subject of the COLLADA file.
+
+
getTitle() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the title information of the COLLADA file.
+
+
getTransform() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the affine transform.
+
+
getUnitMeter() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the real-world meters of one distance unit as a floating-point number.
+
+
getUnitName() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the name of the distance unit used in the COLLADA file.
+
+
getUnits() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
+
+
Gets the map which contains altered initial base units.
+
+
getUpAxis() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the coordinate system of the geometric data.
+
+
getVersion() - Method in class com.interactivemesh.jfx.importer.col.ColAsset
+
+
Gets the version number of the COLLADA file.
+
+
getVersion() - Method in class com.interactivemesh.jfx.importer.x3d.X3dHead
+
+
Gets the version number of the X3D standard being supported.
+
+
getViewpoints() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Gets the viewpoints of the imported file.
+
+
getViewpoints() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Gets the viewpoints of the imported file.
+
+
getViewpoints() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Gets the viewpoints of the imported file.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-4.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-4.html index 3f8beebb..4a954626 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-4.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-4.html @@ -1,154 +1,154 @@ - - - - - -I-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

I

-
-
Importer - Interface in com.interactivemesh.jfx.importer
-
-
The Importer interface specifies the core import capabilities of the - JavaFX 3D importers.
-
-
ImportException - Exception in com.interactivemesh.jfx.importer
-
-
An ImportException is thrown if the importer encounters a problem - reading or parsing the specified file.
-
-
ImportException(String) - Constructor for exception com.interactivemesh.jfx.importer.ImportException
-
-
Creates a new ImportException with the specified detail message.
-
-
ImportException(String, Throwable) - Constructor for exception com.interactivemesh.jfx.importer.ImportException
-
-
Creates a new ImportException with the specified detail message and cause.
-
-
isPerspective() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the state whether the projection mode is perspective (default) or parallel.
-
-
isVerticalFieldOfView() - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Gets the state whether the field of view is measured vertically (default) or horizontally.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +I-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

I

+
+
Importer - Interface in com.interactivemesh.jfx.importer
+
+
The Importer interface specifies the core import capabilities of the + JavaFX 3D importers.
+
+
ImportException - Exception in com.interactivemesh.jfx.importer
+
+
An ImportException is thrown if the importer encounters a problem + reading or parsing the specified file.
+
+
ImportException(String) - Constructor for exception com.interactivemesh.jfx.importer.ImportException
+
+
Creates a new ImportException with the specified detail message.
+
+
ImportException(String, Throwable) - Constructor for exception com.interactivemesh.jfx.importer.ImportException
+
+
Creates a new ImportException with the specified detail message and cause.
+
+
isPerspective() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the state whether the projection mode is perspective (default) or parallel.
+
+
isVerticalFieldOfView() - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Gets the state whether the field of view is measured vertically (default) or horizontally.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-5.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-5.html index ddb30ecf..49f61c3b 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-5.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-5.html @@ -1,133 +1,133 @@ - - - - - -M-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

M

-
-
ModelImporter - Interface in com.interactivemesh.jfx.importer
-
-
The ModelImporter interface specifies the core import capabilities of the - JavaFX 3D model importers.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +M-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

M

+
+
ModelImporter - Interface in com.interactivemesh.jfx.importer
+
+
The ModelImporter interface specifies the core import capabilities of the + JavaFX 3D model importers.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-6.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-6.html index c58a95cc..8539b830 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-6.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-6.html @@ -1,168 +1,168 @@ - - - - - -O-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

O

-
-
ObjImportOption - Enum in com.interactivemesh.jfx.importer.obj
-
-
Import options for the JavaFX OBJ model importer.
-
-
ObjModelImporter - Class in com.interactivemesh.jfx.importer.obj
-
-

A JavaFX importer for OBJ files.

-
-
ObjModelImporter() - Constructor for class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Creates an OBJ model importer.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Method is invoked upon completion of import.
-
-
onFileImported() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Method is invoked upon completion of import.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +O-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

O

+
+
ObjImportOption - Enum in com.interactivemesh.jfx.importer.obj
+
+
Import options for the JavaFX OBJ model importer.
+
+
ObjModelImporter - Class in com.interactivemesh.jfx.importer.obj
+
+

A JavaFX importer for OBJ files.

+
+
ObjModelImporter() - Constructor for class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Creates an OBJ model importer.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Method is invoked upon completion of import.
+
+
onFileImported() - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Method is invoked upon completion of import.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-7.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-7.html index 8f100233..080ee9ee 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-7.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-7.html @@ -1,212 +1,212 @@ - - - - - -R-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

R

-
-
read(File) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Imports a 3D model file from the passed location.
-
-
read(File) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Imports a 3D model file passed as a File object.
-
-
read(String) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Imports a 3D model file with the passed file path.
-
-
read(URL) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Imports a 3D model file from the passed location.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +R-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

R

+
+
read(File) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Imports a 3D model file from the passed location.
+
+
read(File) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Imports a 3D model file passed as a File object.
+
+
read(String) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Imports a 3D model file with the passed file path.
+
+
read(URL) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Imports a 3D model file from the passed location.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-8.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-8.html index 01379719..5e72eb6e 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-8.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-8.html @@ -1,296 +1,296 @@ - - - - - -S-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

S

-
-
setCenterOfRotation(Point3D) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Set the center of rotation.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in interface com.interactivemesh.jfx.importer.Importer
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Sets the crease angle for normals generation measured in degrees.
-
-
setFarClip(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the far clipping plane distance.
-
-
setFieldOfView(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the field of view value.
-
-
setName(String) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the name.
-
-
setNearClip(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the near clipping plane distance.
-
-
setOptions(ColImportOption...) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<ColImportOption>) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Sets the import options.
-
-
setOptions(FxmlImportOption...) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<FxmlImportOption>) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Sets the import options.
-
-
setOptions(ObjImportOption...) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<ObjImportOption>) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Sets the import options.
-
-
setOptions(StlImportOption...) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<StlImportOption>) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Sets the import options.
-
-
setOptions(TdsImportOption...) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<TdsImportOption>) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Sets the import options.
-
-
setOptions(X3dImportOption...) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Sets the import options.
-
-
setOptions(EnumSet<X3dImportOption>) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Sets the import options.
-
-
setPerspectiveProjection(boolean) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the projection mode.
-
-
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBasePath(String) - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Sets the path where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in interface com.interactivemesh.jfx.importer.ModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
-
-
Sets the URL where files associated with the imported 3D model file are located.
-
-
setTransform(Affine) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the affine transform.
-
-
setVerticalFieldOfView(boolean) - Method in class com.interactivemesh.jfx.importer.Viewpoint
-
-
Sets the state whether the field of view is measured vertically or horizontally.
-
-
StlImportOption - Enum in com.interactivemesh.jfx.importer.stl
-
-
Import options for the JavaFX STL mesh importer.
-
-
StlMeshImporter - Class in com.interactivemesh.jfx.importer.stl
-
-

A JavaFX importer for ASCII and binary STL files.

-
-
StlMeshImporter() - Constructor for class com.interactivemesh.jfx.importer.stl.StlMeshImporter
-
-
Creates a STL mesh importer.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +S-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

S

+
+
setCenterOfRotation(Point3D) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Set the center of rotation.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in interface com.interactivemesh.jfx.importer.Importer
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setCreaseAngle(double) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Sets the crease angle for normals generation measured in degrees.
+
+
setFarClip(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the far clipping plane distance.
+
+
setFieldOfView(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the field of view value.
+
+
setName(String) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the name.
+
+
setNearClip(double) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the near clipping plane distance.
+
+
setOptions(ColImportOption...) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<ColImportOption>) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Sets the import options.
+
+
setOptions(FxmlImportOption...) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<FxmlImportOption>) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Sets the import options.
+
+
setOptions(ObjImportOption...) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<ObjImportOption>) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Sets the import options.
+
+
setOptions(StlImportOption...) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<StlImportOption>) - Method in class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Sets the import options.
+
+
setOptions(TdsImportOption...) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<TdsImportOption>) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Sets the import options.
+
+
setOptions(X3dImportOption...) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Sets the import options.
+
+
setOptions(EnumSet<X3dImportOption>) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Sets the import options.
+
+
setPerspectiveProjection(boolean) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the projection mode.
+
+
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBasePath(String) - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBasePath(String) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Sets the path where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.col.ColModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.fxml.FxmlModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in interface com.interactivemesh.jfx.importer.ModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.obj.ObjModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setResourceBaseUrl(URL) - Method in class com.interactivemesh.jfx.importer.x3d.X3dModelImporter
+
+
Sets the URL where files associated with the imported 3D model file are located.
+
+
setTransform(Affine) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the affine transform.
+
+
setVerticalFieldOfView(boolean) - Method in class com.interactivemesh.jfx.importer.Viewpoint
+
+
Sets the state whether the field of view is measured vertically or horizontally.
+
+
StlImportOption - Enum in com.interactivemesh.jfx.importer.stl
+
+
Import options for the JavaFX STL mesh importer.
+
+
StlMeshImporter - Class in com.interactivemesh.jfx.importer.stl
+
+

A JavaFX importer for ASCII and binary STL files.

+
+
StlMeshImporter() - Constructor for class com.interactivemesh.jfx.importer.stl.StlMeshImporter
+
+
Creates a STL mesh importer.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-9.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-9.html index d0f70ac7..7461d8f3 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-9.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-9.html @@ -1,140 +1,140 @@ - - - - - -T-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
C F G I M O R S T V X  - - -

T

-
-
TdsImportOption - Enum in com.interactivemesh.jfx.importer.tds
-
-
Import options for the JavaFX 3ds model importer.
-
-
TdsModelImporter - Class in com.interactivemesh.jfx.importer.tds
-
-

A JavaFX importer for 3ds files.

-
-
TdsModelImporter() - Constructor for class com.interactivemesh.jfx.importer.tds.TdsModelImporter
-
-
Creates a 3ds model importer.
-
-
-C F G I M O R S T V X 
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +T-Index (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
C F G I M O R S T V X  + + +

T

+
+
TdsImportOption - Enum in com.interactivemesh.jfx.importer.tds
+
+
Import options for the JavaFX 3ds model importer.
+
+
TdsModelImporter - Class in com.interactivemesh.jfx.importer.tds
+
+

A JavaFX importer for 3ds files.

+
+
TdsModelImporter() - Constructor for class com.interactivemesh.jfx.importer.tds.TdsModelImporter
+
+
Creates a 3ds model importer.
+
+
+C F G I M O R S T V X 
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index.html index 057a6376..dc3aad20 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index.html @@ -1,74 +1,74 @@ - - - - - -JavaFX 3D Model Importers - - - - - - - - - -<noscript> -<div>JavaScript is disabled on your browser.</div> -</noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> - - - + + + + + +JavaFX 3D Model Importers + + + + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-frame.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-frame.html index 36e9cedb..54e9892f 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-frame.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-frame.html @@ -1,28 +1,28 @@ - - - - - -Overview List (JavaFX 3D Model Importers) - - - - - -

JavaFX 3D Model Importers

-
All Classes
-
-

Packages

- -
-

 

- - + + + + + +Overview List (JavaFX 3D Model Importers) + + + + + +

JavaFX 3D Model Importers

+
All Classes
+
+

Packages

+ +
+

 

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-summary.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-summary.html index 5497408a..2e039b0f 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-summary.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-summary.html @@ -1,392 +1,392 @@ - - - - - -Overview (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

JavaFX™ 3D Model Importers

API Specifications

- Early Access -

-
-
-
-

- JavaFX 8 importers for 3D model files.

-
-

See: Description

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Packages 
PackageDescription
com.interactivemesh.jfx.importer -
- Common classes for JavaFX 3D model importers.
-
com.interactivemesh.jfx.importer.col -
- ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files.
-
com.interactivemesh.jfx.importer.fxml -
- FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
-
com.interactivemesh.jfx.importer.obj -
- ObjModelImporterJFX 0.8 - Importer for OBJ files.
-
com.interactivemesh.jfx.importer.stl -
- StlMeshImporterJFX 0.7 - Importer for STL files.
-
com.interactivemesh.jfx.importer.tds -
- 3dsModelImporterJFX 0.7 - Importer for 3ds files.
-
com.interactivemesh.jfx.importer.x3d -
- X3dModelImporterJFX 0.4 - Importer for X3D™ files.
-
-
-
- - -

- JavaFX 8 importers for 3D model files. -

-
- - - - - - - - - - - - - - - -
- 3D format - - Files - - 3D model importer - - Archive - - Release -
- 3ds
- COLLADA 1.4.1 & 1.5.0
- FXML 8
- OBJ
- STL
- X3D 3.3 -
- *.3ds
- *.dae *.zae
- *.fxml
- *.obj
- *.stl
- *.x3d *.x3dz -
- 3dsModelImporterJFX
- ColModelImporterJFX
- FxmlModelImporterJFX
- ObjModelImporterJFX
- StlModelImporterJFX
- X3dModelImporterJFX -
- jim3dsModelImporterJFX.jar
- jimColModelImporterJFX.jar
- jimFxmlModelImporterJFX.jar
- jimObjModelImporterJFX.jar
- jimStlModelImporterJFX.jar
- jimX3dModelImporterJFX.jar -
- 0.7
- 0.6
- 0.5
- 0.8
- 0.7
- 0.4 -
-
-

System requirements

-

- JRE 8 - release candidate build b128, February 1, 2014. (http://jdk8.java.net) -

-

JavaFX 8 restrictions/issues -

-

-

    -
  • Rendering of double-sided geometry with culling property set to CullFace.NONE - might fail due to not flipped normals (RT-30623).
  • -
  • Transparency/opacity support is still under development (RT-28874, RT-34356).
  • -
- See https://javafx-jira.kenai.com -

- -

Model importers restrictions/issues

-

-

    -
  • Converting normals to smoothing groups supports only a single group per face but not multiple groups per face. - See javafx.scene.shape.TriangleMesh.getFaceSmoothingGroups() for more details.
  • -
  • Smoothing groups are generated correctly only if the normals are non-redundant indexed.
  • -
  • Transparency is not active, see above.
  • -
-

- -

Mapping imported coordinate sytem onto JavaFX 3D coordinate sytem

-

- The imported geometric data will be converted to the JavaFX 3D coordinate sytem: - upward axis -Y, right axis +X, and inward axis +Z. - For instance, the Y-up right-handed coordinate system will be mapped as follows: +Y -> -Y, +X -> +X, +Z -> -Z. -

-

- Correspondingly, all imported transforms will be adapted so that the converted coordinates - will be rotated, scaled, and translated correctly. This is also valid for cameras and lights. -

- - - -

Supported image formats for PhongMaterial maps

-

- Type javafx.scene.image.Image -

    -
  • 'bmp', 'gif', 'jpeg', 'png'

    -

    JavaFX image loader (default)

  • -
-

-

- Type javafx.scene.image.WritableImage -

    -
  • 'bmp', 'gif', 'jpeg', 'png'

    - Java Image I/O API, import option MAP_WRITABLEIMAGE

  • -
  • 'tga'

    - data type 2 - true-color images, 24/32 bit, uncompressed; InteractiveMesh implementation

  • -
  • 'tif'

    - Requires installed Java Advanced Imaging (JAI) or the cross-platform packages "jai_codec.jar" and "jai_core.jar" on the classpath

    -

    - JAI 1.3.1 downloads: http://download.java.net/media/jai/builds/release/1_1_3/
    - JAI 1.3.1 cross-platform packages: jai-1_1_3-lib.zip -

    -
  • -
-

- -

Date -

-

2014/02/09 -

-

Copyright (C) 2013-2014 August Lammersdorf, InteractiveMesh e.K.. All rights reserved.

-

- InteractiveMesh e.K.
- August Lammersdorf
- Hauptstraße 28d
- 85737 Ismaning
- Germany / Munich Area
- District court Munich HRA 89887
- www.InteractiveMesh.com/org -

- -

License Agreement

- -

- By installing, copying, or otherwise using the Software, you agree to be bound - by the terms of this Agreement. If you do not agree to the terms of this - Agreement, do not install or use the Software. -

-

- The copyright holder grants to you a non-exclusive, perpetual, irrevocable, - and worldwide right to use the Software. It is provided to you free of charge - for academic, commercial, and personal use. -

-

- You may not remove any copyright, license, or other proprietary notice - from the Software. -

-

- No parts of the Software may be reproduced in part or in whole. You may not - reverse engineer, decompile, or disassemble the Software or prepare - derivative works of it. -

-

- THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR - CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS - FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING - THE APPROPRIATENESS OF USING THE SOFTWARE AND ASSUME ANY RISKS ASSOCIATED - WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. -

-

- IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, - UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL - THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, - INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER - ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE - THE SOFTWARE, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY - OF SUCH DAMAGES. -

- - -

Trademarks
-

- COLLADA is a trademark of Sony Computer Entertainment, Inc.
- Java and JavaFX are trademarks or registered trademarks of Oracle and/or its affiliates in the United States and other countries.
- X3D is a registered trademark of Web3D Consortium, Inc. in the United States and other countries.
- All other trademarks mentioned herein are the property of their respective owners. -

-
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Overview (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

JavaFX™ 3D Model Importers

API Specifications

- Early Access -

+
+
+
+

+ JavaFX 8 importers for 3D model files.

+
+

See: Description

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
com.interactivemesh.jfx.importer +
+ Common classes for JavaFX 3D model importers.
+
com.interactivemesh.jfx.importer.col +
+ ColModelImporterJFX 0.6 - Importer for COLLADA™ 1.4.1 & 1.5.0 files.
+
com.interactivemesh.jfx.importer.fxml +
+ FxmlModelImporterJFX 0.5 - Importer for 3D FXML files.
+
com.interactivemesh.jfx.importer.obj +
+ ObjModelImporterJFX 0.8 - Importer for OBJ files.
+
com.interactivemesh.jfx.importer.stl +
+ StlMeshImporterJFX 0.7 - Importer for STL files.
+
com.interactivemesh.jfx.importer.tds +
+ 3dsModelImporterJFX 0.7 - Importer for 3ds files.
+
com.interactivemesh.jfx.importer.x3d +
+ X3dModelImporterJFX 0.4 - Importer for X3D™ files.
+
+
+
+ + +

+ JavaFX 8 importers for 3D model files. +

+
+ + + + + + + + + + + + + + + +
+ 3D format + + Files + + 3D model importer + + Archive + + Release +
+ 3ds
+ COLLADA 1.4.1 & 1.5.0
+ FXML 8
+ OBJ
+ STL
+ X3D 3.3 +
+ *.3ds
+ *.dae *.zae
+ *.fxml
+ *.obj
+ *.stl
+ *.x3d *.x3dz +
+ 3dsModelImporterJFX
+ ColModelImporterJFX
+ FxmlModelImporterJFX
+ ObjModelImporterJFX
+ StlModelImporterJFX
+ X3dModelImporterJFX +
+ jim3dsModelImporterJFX.jar
+ jimColModelImporterJFX.jar
+ jimFxmlModelImporterJFX.jar
+ jimObjModelImporterJFX.jar
+ jimStlModelImporterJFX.jar
+ jimX3dModelImporterJFX.jar +
+ 0.7
+ 0.6
+ 0.5
+ 0.8
+ 0.7
+ 0.4 +
+
+

System requirements

+

+ JRE 8 - release candidate build b128, February 1, 2014. (http://jdk8.java.net) +

+

JavaFX 8 restrictions/issues +

+

+

    +
  • Rendering of double-sided geometry with culling property set to CullFace.NONE + might fail due to not flipped normals (RT-30623).
  • +
  • Transparency/opacity support is still under development (RT-28874, RT-34356).
  • +
+ See https://javafx-jira.kenai.com +

+ +

Model importers restrictions/issues

+

+

    +
  • Converting normals to smoothing groups supports only a single group per face but not multiple groups per face. + See javafx.scene.shape.TriangleMesh.getFaceSmoothingGroups() for more details.
  • +
  • Smoothing groups are generated correctly only if the normals are non-redundant indexed.
  • +
  • Transparency is not active, see above.
  • +
+

+ +

Mapping imported coordinate sytem onto JavaFX 3D coordinate sytem

+

+ The imported geometric data will be converted to the JavaFX 3D coordinate sytem: + upward axis -Y, right axis +X, and inward axis +Z. + For instance, the Y-up right-handed coordinate system will be mapped as follows: +Y -> -Y, +X -> +X, +Z -> -Z. +

+

+ Correspondingly, all imported transforms will be adapted so that the converted coordinates + will be rotated, scaled, and translated correctly. This is also valid for cameras and lights. +

+ + + +

Supported image formats for PhongMaterial maps

+

+ Type javafx.scene.image.Image +

    +
  • 'bmp', 'gif', 'jpeg', 'png'

    +

    JavaFX image loader (default)

  • +
+

+

+ Type javafx.scene.image.WritableImage +

    +
  • 'bmp', 'gif', 'jpeg', 'png'

    + Java Image I/O API, import option MAP_WRITABLEIMAGE

  • +
  • 'tga'

    + data type 2 - true-color images, 24/32 bit, uncompressed; InteractiveMesh implementation

  • +
  • 'tif'

    + Requires installed Java Advanced Imaging (JAI) or the cross-platform packages "jai_codec.jar" and "jai_core.jar" on the classpath

    +

    + JAI 1.3.1 downloads: http://download.java.net/media/jai/builds/release/1_1_3/
    + JAI 1.3.1 cross-platform packages: jai-1_1_3-lib.zip +

    +
  • +
+

+ +

Date +

+

2014/02/09 +

+

Copyright (C) 2013-2014 August Lammersdorf, InteractiveMesh e.K.. All rights reserved.

+

+ InteractiveMesh e.K.
+ August Lammersdorf
+ Hauptstraße 28d
+ 85737 Ismaning
+ Germany / Munich Area
+ District court Munich HRA 89887
+ www.InteractiveMesh.com/org +

+ +

License Agreement

+ +

+ By installing, copying, or otherwise using the Software, you agree to be bound + by the terms of this Agreement. If you do not agree to the terms of this + Agreement, do not install or use the Software. +

+

+ The copyright holder grants to you a non-exclusive, perpetual, irrevocable, + and worldwide right to use the Software. It is provided to you free of charge + for academic, commercial, and personal use. +

+

+ You may not remove any copyright, license, or other proprietary notice + from the Software. +

+

+ No parts of the Software may be reproduced in part or in whole. You may not + reverse engineer, decompile, or disassemble the Software or prepare + derivative works of it. +

+

+ THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + EIHTER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR + CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS + FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING + THE APPROPRIATENESS OF USING THE SOFTWARE AND ASSUME ANY RISKS ASSOCIATED + WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. +

+

+ IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT, CONTRACT, OR OTHERWISE, + UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL + THE COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, + INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER + ARISING AS A RESULT OF THIS LICENSE OR OUT THE USE OR INABILITY TO USE + THE SOFTWARE, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY + OF SUCH DAMAGES. +

+ + +

Trademarks
+

+ COLLADA is a trademark of Sony Computer Entertainment, Inc.
+ Java and JavaFX are trademarks or registered trademarks of Oracle and/or its affiliates in the United States and other countries.
+ X3D is a registered trademark of Web3D Consortium, Inc. in the United States and other countries.
+ All other trademarks mentioned herein are the property of their respective owners. +

+
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-tree.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-tree.html index a1a6e1c6..1afb6d34 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-tree.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-tree.html @@ -1,195 +1,195 @@ - - - - - -Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For All Packages

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Interface Hierarchy

- -

Enum Hierarchy

- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Class Hierarchy (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/package-list b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/package-list index bbbf469b..c289aed8 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/package-list +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/package-list @@ -1,7 +1,7 @@ -com.interactivemesh.jfx.importer -com.interactivemesh.jfx.importer.col -com.interactivemesh.jfx.importer.fxml -com.interactivemesh.jfx.importer.obj -com.interactivemesh.jfx.importer.stl -com.interactivemesh.jfx.importer.tds -com.interactivemesh.jfx.importer.x3d +com.interactivemesh.jfx.importer +com.interactivemesh.jfx.importer.col +com.interactivemesh.jfx.importer.fxml +com.interactivemesh.jfx.importer.obj +com.interactivemesh.jfx.importer.stl +com.interactivemesh.jfx.importer.tds +com.interactivemesh.jfx.importer.x3d diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/script.js b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/script.js index b3463569..c3a1cae4 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/script.js +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/script.js @@ -1,30 +1,30 @@ -function show(type) -{ - count = 0; - for (var key in methods) { - var row = document.getElementById(key); - if ((methods[key] & type) != 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateTabs(type); -} - -function updateTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/serialized-form.html b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/serialized-form.html index df9c5497..cbeef1ad 100644 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/serialized-form.html +++ b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/serialized-form.html @@ -1,142 +1,142 @@ - - - - - -Serialized Form (JavaFX 3D Model Importers) - - - - - - - - -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -
-

Serialized Form

-
-
- -
- -
- - - - - - - -
JavaFX 3D Model Importers
-
- - -

Copyright (C) 2013-2014 InteractiveMesh e.K.

- - + + + + + +Serialized Form (JavaFX 3D Model Importers) + + + + + + + + +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +
+

Serialized Form

+
+
+ +
+ +
+ + + + + + + +
JavaFX 3D Model Importers
+
+ + +

Copyright (C) 2013-2014 InteractiveMesh e.K.

+ + diff --git a/src/main/java/seng302/visualiser/GameView.java b/src/main/java/seng302/visualiser/GameView.java index 0ce36267..eb42c8e7 100644 --- a/src/main/java/seng302/visualiser/GameView.java +++ b/src/main/java/seng302/visualiser/GameView.java @@ -41,8 +41,10 @@ import java.util.*; public class GameView extends Pane { private double bufferSize = 50; + private double horizontalBuffer = 0; private double panelWidth = 1280; private double panelHeight = 960; + private double canvasWidth = 1100; private double canvasHeight = 920; private boolean horizontalInversion = false; @@ -479,6 +481,9 @@ public class GameView extends Pane { borderPoints = border; rescaleRace(new ArrayList<>(borderPoints)); } + + rescaleRace(new ArrayList<>(border)); + List boundaryPoints = new ArrayList<>(); for (Limit limit : border) { Point2D location = findScaledXY(limit.getLat(), limit.getLng()); @@ -549,7 +554,7 @@ public class GameView extends Pane { * * @param limitingCoordinates the set of geo points that contains the extremities of the race. */ - private void rescaleRace(List limitingCoordinates) { + public void rescaleRace(List limitingCoordinates) { //Check is called once to avoid unnecessarily change the course limits once the race is running findMinMaxPoint(limitingCoordinates); double minLonToMaxLon = scaleRaceExtremities(); @@ -707,6 +712,7 @@ public class GameView extends Pane { referencePointX += ((canvasWidth - (bufferSize + bufferSize)) - (minLonToMaxLon * distanceScaleFactor)) / 2; + referencePointX += horizontalBuffer; } if (horizontalInversion) { referencePointX = canvasWidth - bufferSize - (referencePointX - bufferSize); @@ -942,4 +948,16 @@ public class GameView extends Pane { this.fpsDisplay = null; this.fpsDisplay = fpsDisplay; } + + public void setSize(Double width, Double height){ + this.canvasWidth = width; + this.canvasHeight = height; + + this.panelWidth = width; + this.panelHeight = height; + } + + public void setHorizontalBuffer(Double buff){ + this.horizontalBuffer = buff; + } } diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index e060a088..00ae8f5c 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -6,6 +6,7 @@ import com.jfoenix.controls.JFXDialog; import java.io.IOException; import java.net.URL; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.ResourceBundle; @@ -16,14 +17,21 @@ import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; +import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import seng302.gameServer.GameStages; import seng302.gameServer.GameState; import seng302.model.Colors; +import seng302.model.Limit; import seng302.model.RaceState; +import seng302.model.mark.CompoundMark; +import seng302.model.mark.Corner; +import seng302.model.stream.xml.parser.RaceXMLData; import seng302.utilities.Sounds; +import seng302.utilities.XMLGenerator; +import seng302.visualiser.GameView; import seng302.visualiser.controllers.cells.PlayerCell; public class LobbyController implements Initializable { @@ -41,12 +49,16 @@ public class LobbyController implements Initializable { private Label serverName; @FXML private Label mapName; + @FXML + private Pane serverMap; //---------FXML END---------// private List lobbyListeners = new ArrayList<>(); private RaceState raceState; private JFXDialog customizationDialog; public Color playersColor; + private Double mapWidth, mapHeight; + private GameView gameView; @Override public void initialize(URL location, ResourceBundle resources) { @@ -93,6 +105,45 @@ public class LobbyController implements Initializable { customizeButton.setOnMouseEntered(e -> Sounds.playHoverSound()); beginRaceButton.setOnMouseEntered(e -> Sounds.playHoverSound()); + initMapPreview(); + } + + private void refreshMapView(){ + RaceXMLData raceData = ViewManager.getInstance().getGameClient().getCourseData(); + List border = raceData.getCourseLimit(); + List marks = new ArrayList(raceData.getCompoundMarks().values()); + List corners = raceData.getMarkSequence(); + + gameView.setSize(mapWidth, mapHeight); + + // Update game view + gameView.updateBorder(border); + gameView.updateCourse(marks, corners); + } + + /** + * + */ + private void initMapPreview() { + gameView = new GameView(); + gameView.setHorizontalBuffer(330d); + + mapWidth = 770d; + mapHeight = 574d; + + // Add game view + serverMap.getChildren().clear(); + serverMap.getChildren().add(gameView); + + serverMap.widthProperty().addListener((observable, oldValue, newValue) -> { + mapWidth = newValue.doubleValue(); + refreshMapView(); + }); + + serverMap.heightProperty().addListener((observable, oldValue, newValue) -> { + mapHeight = newValue.doubleValue(); + refreshMapView(); + }); } /** diff --git a/src/main/resources/css/LobbyView.css b/src/main/resources/css/LobbyView.css index 46dd12ba..5325c8ea 100644 --- a/src/main/resources/css/LobbyView.css +++ b/src/main/resources/css/LobbyView.css @@ -60,7 +60,8 @@ } #serverMap { - -fx-background-image: url("/images/bg.jpg"); - -fx-background-repeat: no-repeat; - -fx-background-size: cover; + /*-fx-background-image: url("/images/mapbg.jpg");*/ + /*-fx-background-repeat: no-repeat;*/ + /*-fx-background-size: cover;*/ + -fx-background-color: dodgerblue; } \ No newline at end of file diff --git a/src/main/resources/images/mapbg.jpg b/src/main/resources/images/mapbg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca6f294d0fc7c536e5133aa99472420efc2cc408 GIT binary patch literal 360105 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 z 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

)0%Ve5>Rn5=pq5O_oV( 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 Z4dl~KAVPRXYJ3J`=YSiO;*sPZ|JiaRs#gF2 literal 0 HcmV?d00001